@keenthemes/ktui 1.2.2 → 1.2.4
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 +1738 -986
- package/dist/ktui.min.js +1 -1
- package/dist/ktui.min.js.map +1 -1
- package/dist/styles.css +110 -197
- package/lib/cjs/components/context-menu/context-menu.d.ts +66 -0
- package/lib/cjs/components/context-menu/context-menu.d.ts.map +1 -0
- package/lib/cjs/components/context-menu/context-menu.js +423 -0
- package/lib/cjs/components/context-menu/context-menu.js.map +1 -0
- package/lib/cjs/components/context-menu/index.d.ts +7 -0
- package/lib/cjs/components/context-menu/index.d.ts.map +1 -0
- package/lib/cjs/components/context-menu/index.js +10 -0
- package/lib/cjs/components/context-menu/index.js.map +1 -0
- package/lib/cjs/components/context-menu/types.d.ts +30 -0
- package/lib/cjs/components/context-menu/types.d.ts.map +1 -0
- package/lib/cjs/components/context-menu/types.js +7 -0
- package/lib/cjs/components/context-menu/types.js.map +1 -0
- package/lib/cjs/components/datatable/datatable-contracts.d.ts +66 -0
- package/lib/cjs/components/datatable/datatable-contracts.d.ts.map +1 -0
- package/lib/cjs/components/datatable/datatable-contracts.js +7 -0
- package/lib/cjs/components/datatable/datatable-contracts.js.map +1 -0
- package/lib/cjs/components/datatable/datatable-event-adapter.d.ts +7 -0
- package/lib/cjs/components/datatable/datatable-event-adapter.d.ts.map +1 -0
- package/lib/cjs/components/datatable/datatable-event-adapter.js +16 -0
- package/lib/cjs/components/datatable/datatable-event-adapter.js.map +1 -0
- package/lib/cjs/components/datatable/datatable-local-provider.d.ts +25 -0
- package/lib/cjs/components/datatable/datatable-local-provider.d.ts.map +1 -0
- package/lib/cjs/components/datatable/datatable-local-provider.js +184 -0
- package/lib/cjs/components/datatable/datatable-local-provider.js.map +1 -0
- package/lib/cjs/components/datatable/datatable-pagination-renderer.d.ts +15 -0
- package/lib/cjs/components/datatable/datatable-pagination-renderer.d.ts.map +1 -0
- package/lib/cjs/components/datatable/datatable-pagination-renderer.js +128 -0
- package/lib/cjs/components/datatable/datatable-pagination-renderer.js.map +1 -0
- package/lib/cjs/components/datatable/datatable-remote-provider.d.ts +25 -0
- package/lib/cjs/components/datatable/datatable-remote-provider.d.ts.map +1 -0
- package/lib/cjs/components/datatable/datatable-remote-provider.js +188 -0
- package/lib/cjs/components/datatable/datatable-remote-provider.js.map +1 -0
- package/lib/cjs/components/datatable/datatable-state-store.d.ts +21 -0
- package/lib/cjs/components/datatable/datatable-state-store.d.ts.map +1 -0
- package/lib/cjs/components/datatable/datatable-state-store.js +81 -0
- package/lib/cjs/components/datatable/datatable-state-store.js.map +1 -0
- package/lib/cjs/components/datatable/datatable-table-renderer.d.ts +16 -0
- package/lib/cjs/components/datatable/datatable-table-renderer.d.ts.map +1 -0
- package/lib/cjs/components/datatable/datatable-table-renderer.js +133 -0
- package/lib/cjs/components/datatable/datatable-table-renderer.js.map +1 -0
- package/lib/cjs/components/datatable/datatable.d.ts +9 -87
- package/lib/cjs/components/datatable/datatable.d.ts.map +1 -1
- package/lib/cjs/components/datatable/datatable.js +115 -687
- package/lib/cjs/components/datatable/datatable.js.map +1 -1
- package/lib/cjs/components/modal/modal.d.ts.map +1 -1
- package/lib/cjs/components/modal/modal.js +19 -13
- package/lib/cjs/components/modal/modal.js.map +1 -1
- package/lib/cjs/components/select/index.d.ts +1 -1
- package/lib/cjs/components/select/index.d.ts.map +1 -1
- package/lib/cjs/components/theme-switch/theme-switch.d.ts +3 -0
- package/lib/cjs/components/theme-switch/theme-switch.d.ts.map +1 -1
- package/lib/cjs/components/theme-switch/theme-switch.js +17 -4
- package/lib/cjs/components/theme-switch/theme-switch.js.map +1 -1
- package/lib/cjs/components/toggle/toggle.d.ts +2 -0
- package/lib/cjs/components/toggle/toggle.d.ts.map +1 -1
- package/lib/cjs/components/toggle/toggle.js +11 -2
- package/lib/cjs/components/toggle/toggle.js.map +1 -1
- package/lib/cjs/index.d.ts +5 -1
- package/lib/cjs/index.d.ts.map +1 -1
- package/lib/cjs/index.js +7 -7
- package/lib/cjs/index.js.map +1 -1
- package/lib/cjs/init-all.d.ts +6 -0
- package/lib/cjs/init-all.d.ts.map +1 -0
- package/lib/cjs/init-all.js +17 -0
- package/lib/cjs/init-all.js.map +1 -0
- package/lib/cjs/legacy.d.ts +8 -0
- package/lib/cjs/legacy.d.ts.map +1 -0
- package/lib/cjs/legacy.js +26 -0
- package/lib/cjs/legacy.js.map +1 -0
- package/lib/esm/components/context-menu/context-menu.d.ts +66 -0
- package/lib/esm/components/context-menu/context-menu.d.ts.map +1 -0
- package/lib/esm/components/context-menu/context-menu.js +420 -0
- package/lib/esm/components/context-menu/context-menu.js.map +1 -0
- package/lib/esm/components/context-menu/index.d.ts +7 -0
- package/lib/esm/components/context-menu/index.d.ts.map +1 -0
- package/lib/esm/components/context-menu/index.js +6 -0
- package/lib/esm/components/context-menu/index.js.map +1 -0
- package/lib/esm/components/context-menu/types.d.ts +30 -0
- package/lib/esm/components/context-menu/types.d.ts.map +1 -0
- package/lib/esm/components/context-menu/types.js +6 -0
- package/lib/esm/components/context-menu/types.js.map +1 -0
- package/lib/esm/components/datatable/datatable-contracts.d.ts +66 -0
- package/lib/esm/components/datatable/datatable-contracts.d.ts.map +1 -0
- package/lib/esm/components/datatable/datatable-contracts.js +6 -0
- package/lib/esm/components/datatable/datatable-contracts.js.map +1 -0
- package/lib/esm/components/datatable/datatable-event-adapter.d.ts +7 -0
- package/lib/esm/components/datatable/datatable-event-adapter.d.ts.map +1 -0
- package/lib/esm/components/datatable/datatable-event-adapter.js +13 -0
- package/lib/esm/components/datatable/datatable-event-adapter.js.map +1 -0
- package/lib/esm/components/datatable/datatable-local-provider.d.ts +25 -0
- package/lib/esm/components/datatable/datatable-local-provider.d.ts.map +1 -0
- package/lib/esm/components/datatable/datatable-local-provider.js +181 -0
- package/lib/esm/components/datatable/datatable-local-provider.js.map +1 -0
- package/lib/esm/components/datatable/datatable-pagination-renderer.d.ts +15 -0
- package/lib/esm/components/datatable/datatable-pagination-renderer.d.ts.map +1 -0
- package/lib/esm/components/datatable/datatable-pagination-renderer.js +125 -0
- package/lib/esm/components/datatable/datatable-pagination-renderer.js.map +1 -0
- package/lib/esm/components/datatable/datatable-remote-provider.d.ts +25 -0
- package/lib/esm/components/datatable/datatable-remote-provider.d.ts.map +1 -0
- package/lib/esm/components/datatable/datatable-remote-provider.js +185 -0
- package/lib/esm/components/datatable/datatable-remote-provider.js.map +1 -0
- package/lib/esm/components/datatable/datatable-state-store.d.ts +21 -0
- package/lib/esm/components/datatable/datatable-state-store.d.ts.map +1 -0
- package/lib/esm/components/datatable/datatable-state-store.js +78 -0
- package/lib/esm/components/datatable/datatable-state-store.js.map +1 -0
- package/lib/esm/components/datatable/datatable-table-renderer.d.ts +16 -0
- package/lib/esm/components/datatable/datatable-table-renderer.d.ts.map +1 -0
- package/lib/esm/components/datatable/datatable-table-renderer.js +130 -0
- package/lib/esm/components/datatable/datatable-table-renderer.js.map +1 -0
- package/lib/esm/components/datatable/datatable.d.ts +9 -87
- package/lib/esm/components/datatable/datatable.d.ts.map +1 -1
- package/lib/esm/components/datatable/datatable.js +115 -687
- package/lib/esm/components/datatable/datatable.js.map +1 -1
- package/lib/esm/components/modal/modal.d.ts.map +1 -1
- package/lib/esm/components/modal/modal.js +19 -13
- package/lib/esm/components/modal/modal.js.map +1 -1
- package/lib/esm/components/select/index.d.ts +1 -1
- package/lib/esm/components/select/index.d.ts.map +1 -1
- package/lib/esm/components/theme-switch/theme-switch.d.ts +3 -0
- package/lib/esm/components/theme-switch/theme-switch.d.ts.map +1 -1
- package/lib/esm/components/theme-switch/theme-switch.js +17 -4
- package/lib/esm/components/theme-switch/theme-switch.js.map +1 -1
- package/lib/esm/components/toggle/toggle.d.ts +2 -0
- package/lib/esm/components/toggle/toggle.d.ts.map +1 -1
- package/lib/esm/components/toggle/toggle.js +11 -2
- package/lib/esm/components/toggle/toggle.js.map +1 -1
- package/lib/esm/index.d.ts +5 -1
- package/lib/esm/index.d.ts.map +1 -1
- package/lib/esm/index.js +4 -5
- package/lib/esm/index.js.map +1 -1
- package/lib/esm/init-all.d.ts +6 -0
- package/lib/esm/init-all.d.ts.map +1 -0
- package/lib/esm/init-all.js +13 -0
- package/lib/esm/init-all.js.map +1 -0
- package/lib/esm/legacy.d.ts +8 -0
- package/lib/esm/legacy.d.ts.map +1 -0
- package/lib/esm/legacy.js +8 -0
- package/lib/esm/legacy.js.map +1 -0
- package/package.json +34 -4
- package/src/__tests__/entrypoints.test.ts +71 -0
- package/src/components/context-menu/__tests__/context-menu.test.ts +117 -0
- package/src/components/context-menu/context-menu.css +32 -0
- package/src/components/context-menu/context-menu.ts +529 -0
- package/src/components/context-menu/index.ts +10 -0
- package/src/components/context-menu/types.ts +32 -0
- package/src/components/datatable/__tests__/architecture-boundaries.test.ts +259 -0
- package/src/components/datatable/datatable-contracts.ts +96 -0
- package/src/components/datatable/datatable-event-adapter.ts +21 -0
- package/src/components/datatable/datatable-local-provider.ts +194 -0
- package/src/components/datatable/datatable-pagination-renderer.ts +211 -0
- package/src/components/datatable/datatable-remote-provider.ts +175 -0
- package/src/components/datatable/datatable-state-store.ts +94 -0
- package/src/components/datatable/datatable-table-renderer.ts +206 -0
- package/src/components/datatable/datatable.ts +128 -839
- package/src/components/modal/modal.ts +22 -14
- package/src/components/select/index.ts +1 -1
- package/src/components/theme-switch/theme-switch.ts +22 -4
- package/src/components/toggle/toggle.ts +12 -2
- package/src/index.ts +9 -5
- package/src/init-all.ts +15 -0
- package/src/legacy.ts +9 -0
- package/styles.css +1 -0
|
@@ -49,18 +49,17 @@ export class KTModal extends KTComponent implements KTModalInterface {
|
|
|
49
49
|
protected _handlers() {
|
|
50
50
|
this._element.addEventListener('click', (event: Event) => {
|
|
51
51
|
const target = event.target as HTMLElement;
|
|
52
|
-
const
|
|
53
|
-
|
|
54
|
-
//
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
}
|
|
52
|
+
const modalContent = this._element.querySelector('.kt-modal-content');
|
|
53
|
+
|
|
54
|
+
// Stop propagation for clicks inside dropdowns rendered within modal content.
|
|
55
|
+
const dropdownElement = target.closest('[data-kt-select-dropdown]');
|
|
56
|
+
if (dropdownElement) {
|
|
57
|
+
event.stopPropagation();
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
// Dismiss when clicking anywhere outside modal content.
|
|
62
|
+
if (modalContent && modalContent.contains(target)) {
|
|
64
63
|
return;
|
|
65
64
|
}
|
|
66
65
|
|
|
@@ -205,6 +204,14 @@ export class KTModal extends KTComponent implements KTModalInterface {
|
|
|
205
204
|
const zindex: number = parseInt(KTDom.getCssProp(this._element, 'z-index'));
|
|
206
205
|
this._backdropElement = document.createElement('DIV');
|
|
207
206
|
this._backdropElement.setAttribute('data-kt-modal-backdrop', 'true');
|
|
207
|
+
this._backdropElement.addEventListener('click', () => {
|
|
208
|
+
if (
|
|
209
|
+
this._getOption('backdropStatic') === false &&
|
|
210
|
+
KTUtils.stringToBoolean(this._getOption('persistent')) === false
|
|
211
|
+
) {
|
|
212
|
+
this._hide();
|
|
213
|
+
}
|
|
214
|
+
});
|
|
208
215
|
this._backdropElement.style.zIndex = (zindex - 1).toString();
|
|
209
216
|
document.body.append(this._backdropElement);
|
|
210
217
|
KTDom.reflow(this._backdropElement);
|
|
@@ -280,8 +287,9 @@ export class KTModal extends KTComponent implements KTModalInterface {
|
|
|
280
287
|
}
|
|
281
288
|
|
|
282
289
|
public static handleToggle(): void {
|
|
290
|
+
// wire:navigate / morph can replace document.body; <html> stays stable.
|
|
283
291
|
KTEventHandler.on(
|
|
284
|
-
document.
|
|
292
|
+
document.documentElement,
|
|
285
293
|
'[data-kt-modal-toggle]',
|
|
286
294
|
'click',
|
|
287
295
|
(event: Event, target: HTMLElement) => {
|
|
@@ -301,7 +309,7 @@ export class KTModal extends KTComponent implements KTModalInterface {
|
|
|
301
309
|
|
|
302
310
|
public static handleDismiss(): void {
|
|
303
311
|
KTEventHandler.on(
|
|
304
|
-
document.
|
|
312
|
+
document.documentElement,
|
|
305
313
|
'[data-kt-modal-dismiss]',
|
|
306
314
|
'click',
|
|
307
315
|
(event: Event, target: HTMLElement) => {
|
|
@@ -20,12 +20,14 @@ export class KTThemeSwitch
|
|
|
20
20
|
extends KTComponent
|
|
21
21
|
implements KTThemeSwitchInterface
|
|
22
22
|
{
|
|
23
|
-
protected override _name: string = 'theme-
|
|
23
|
+
protected override _name: string = 'theme-switch';
|
|
24
24
|
protected override _defaultConfig: KTThemeSwitchConfigInterface = {
|
|
25
25
|
mode: 'light',
|
|
26
26
|
};
|
|
27
27
|
protected _mode: KTThemeSwitchModeType | null = null;
|
|
28
28
|
protected _currentMode: KTThemeSwitchModeType | null = null;
|
|
29
|
+
protected _themeSwitchToggleEventId: string = '';
|
|
30
|
+
protected _themeSwitchSetEventId: string = '';
|
|
29
31
|
|
|
30
32
|
constructor(
|
|
31
33
|
element: HTMLElement | HTMLHtmlElement,
|
|
@@ -48,7 +50,7 @@ export class KTThemeSwitch
|
|
|
48
50
|
protected _handlers(): void {
|
|
49
51
|
if (!this._element) return;
|
|
50
52
|
|
|
51
|
-
KTEventHandler.on(
|
|
53
|
+
this._themeSwitchToggleEventId = KTEventHandler.on(
|
|
52
54
|
document.body,
|
|
53
55
|
'[data-kt-theme-switch-toggle]',
|
|
54
56
|
'click',
|
|
@@ -57,7 +59,7 @@ export class KTThemeSwitch
|
|
|
57
59
|
},
|
|
58
60
|
);
|
|
59
61
|
|
|
60
|
-
KTEventHandler.on(
|
|
62
|
+
this._themeSwitchSetEventId = KTEventHandler.on(
|
|
61
63
|
document.body,
|
|
62
64
|
'[data-kt-theme-switch-set]',
|
|
63
65
|
'click',
|
|
@@ -141,7 +143,23 @@ export class KTThemeSwitch
|
|
|
141
143
|
}
|
|
142
144
|
|
|
143
145
|
public setMode(mode: KTThemeSwitchModeType) {
|
|
144
|
-
this.
|
|
146
|
+
this._setMode(mode);
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
public override dispose(): void {
|
|
150
|
+
if (this._themeSwitchToggleEventId) {
|
|
151
|
+
KTEventHandler.off(
|
|
152
|
+
document.body,
|
|
153
|
+
'click',
|
|
154
|
+
this._themeSwitchToggleEventId,
|
|
155
|
+
);
|
|
156
|
+
this._themeSwitchToggleEventId = '';
|
|
157
|
+
}
|
|
158
|
+
if (this._themeSwitchSetEventId) {
|
|
159
|
+
KTEventHandler.off(document.body, 'click', this._themeSwitchSetEventId);
|
|
160
|
+
this._themeSwitchSetEventId = '';
|
|
161
|
+
}
|
|
162
|
+
super.dispose();
|
|
145
163
|
}
|
|
146
164
|
|
|
147
165
|
public static getInstance(): KTThemeSwitch {
|
|
@@ -25,6 +25,7 @@ export class KTToggle extends KTComponent implements KTToggleInterface {
|
|
|
25
25
|
};
|
|
26
26
|
protected override _config: KTToggleConfigInterface = this._defaultConfig;
|
|
27
27
|
protected _targetElement: HTMLElement;
|
|
28
|
+
protected _clickHandler: (() => void) | null = null;
|
|
28
29
|
|
|
29
30
|
constructor(
|
|
30
31
|
element: HTMLElement,
|
|
@@ -48,9 +49,18 @@ export class KTToggle extends KTComponent implements KTToggleInterface {
|
|
|
48
49
|
protected _handlers(): void {
|
|
49
50
|
if (!this._element) return;
|
|
50
51
|
|
|
51
|
-
this.
|
|
52
|
+
this._clickHandler = () => {
|
|
52
53
|
this._toggle();
|
|
53
|
-
}
|
|
54
|
+
};
|
|
55
|
+
this._element.addEventListener('click', this._clickHandler);
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
public override dispose(): void {
|
|
59
|
+
if (this._element && this._clickHandler) {
|
|
60
|
+
this._element.removeEventListener('click', this._clickHandler);
|
|
61
|
+
this._clickHandler = null;
|
|
62
|
+
}
|
|
63
|
+
super.dispose();
|
|
54
64
|
}
|
|
55
65
|
|
|
56
66
|
private _getTargetElement(): HTMLElement | null {
|
package/src/index.ts
CHANGED
|
@@ -8,6 +8,7 @@ import KTUtils from './helpers/utils';
|
|
|
8
8
|
import KTEventHandler from './helpers/event-handler';
|
|
9
9
|
import KTData from './helpers/data';
|
|
10
10
|
import { KTDropdown } from './components/dropdown';
|
|
11
|
+
import { KTContextMenu } from './components/context-menu';
|
|
11
12
|
import { KTModal } from './components/modal';
|
|
12
13
|
import { KTDrawer } from './components/drawer';
|
|
13
14
|
import { KTCollapse } from './components/collapse';
|
|
@@ -36,6 +37,7 @@ import { KTPinInput } from './components/pin-input';
|
|
|
36
37
|
import { KTCarousel } from './components/carousel';
|
|
37
38
|
|
|
38
39
|
export { KTDropdown } from './components/dropdown';
|
|
40
|
+
export { KTContextMenu } from './components/context-menu';
|
|
39
41
|
export { KTModal } from './components/modal';
|
|
40
42
|
export { KTDrawer } from './components/drawer';
|
|
41
43
|
export { KTCollapse } from './components/collapse';
|
|
@@ -96,6 +98,10 @@ export type {
|
|
|
96
98
|
KTDropdownConfigInterface,
|
|
97
99
|
KTDropdownInterface,
|
|
98
100
|
} from './components/dropdown';
|
|
101
|
+
export type {
|
|
102
|
+
KTContextMenuConfigInterface,
|
|
103
|
+
KTContextMenuInterface,
|
|
104
|
+
} from './components/context-menu';
|
|
99
105
|
export type {
|
|
100
106
|
KTImageInputConfigInterface,
|
|
101
107
|
KTImageInputInterface,
|
|
@@ -182,9 +188,10 @@ export type {
|
|
|
182
188
|
KTTooltipInterface,
|
|
183
189
|
} from './components/tooltip';
|
|
184
190
|
|
|
185
|
-
const KTComponents = {
|
|
191
|
+
export const KTComponents = {
|
|
186
192
|
init(): void {
|
|
187
193
|
KTDropdown.init();
|
|
194
|
+
KTContextMenu.init();
|
|
188
195
|
KTModal.init();
|
|
189
196
|
KTDrawer.init();
|
|
190
197
|
KTCollapse.init();
|
|
@@ -221,6 +228,7 @@ declare global {
|
|
|
221
228
|
KTEventHandler: typeof KTEventHandler;
|
|
222
229
|
KTData: typeof KTData;
|
|
223
230
|
KTDropdown: typeof KTDropdown;
|
|
231
|
+
KTContextMenu: typeof KTContextMenu;
|
|
224
232
|
KTModal: typeof KTModal;
|
|
225
233
|
KTDrawer: typeof KTDrawer;
|
|
226
234
|
KTCollapse: typeof KTCollapse;
|
|
@@ -252,7 +260,3 @@ declare global {
|
|
|
252
260
|
}
|
|
253
261
|
|
|
254
262
|
export default KTComponents;
|
|
255
|
-
|
|
256
|
-
KTDom.ready(() => {
|
|
257
|
-
KTComponents.init();
|
|
258
|
-
});
|
package/src/init-all.ts
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* KTUI - Free & Open-Source Tailwind UI Components by Keenthemes
|
|
3
|
+
* Copyright 2025 by Keenthemes Inc
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
import KTDom from './helpers/dom';
|
|
7
|
+
import { KTComponents } from './index';
|
|
8
|
+
|
|
9
|
+
export const initAllComponents = (): void => {
|
|
10
|
+
KTDom.ready(() => {
|
|
11
|
+
KTComponents.init();
|
|
12
|
+
});
|
|
13
|
+
};
|
|
14
|
+
|
|
15
|
+
initAllComponents();
|
package/src/legacy.ts
ADDED
package/styles.css
CHANGED
|
@@ -17,6 +17,7 @@
|
|
|
17
17
|
@import './src/components/drawer/drawer.css';
|
|
18
18
|
@import './src/components/dropdown/dropdown.css';
|
|
19
19
|
@import './src/components/dropdown/dropdown-menu.css';
|
|
20
|
+
@import './src/components/context-menu/context-menu.css';
|
|
20
21
|
@import './src/components/image-input/image-input.css';
|
|
21
22
|
@import './src/components/input/input.css';
|
|
22
23
|
@import './src/components/input/input-group.css';
|