@ktjs/mui 0.18.8 → 0.19.0

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.
@@ -1,6 +1,270 @@
1
- var __ktjs_mui__ = (function (exports, jsxRuntime, kt_js) {
1
+ var __ktjs_mui__ = (function (exports) {
2
2
  'use strict';
3
3
 
4
+ // Cached native methods for performance optimization
5
+ const $isArray = Array.isArray;
6
+ const $isThenable = (o) => typeof o === 'object' && o !== null && typeof o.then === 'function';
7
+
8
+ // Error handling utilities
9
+ const $throw = (message) => {
10
+ throw new Error('@ktjs/shared: ' + message);
11
+ };
12
+
13
+ // DOM manipulation utilities
14
+ /**
15
+ * & Remove `bind` because it is shockingly slower than wrapper
16
+ * & `window.document` is safe because it is not configurable and its setter is undefined
17
+ */
18
+ const $appendChild = HTMLElement.prototype.appendChild;
19
+ const originAppend = HTMLElement.prototype.append;
20
+ const $append = // for ie 9/10/11
21
+ typeof originAppend === 'function'
22
+ ? originAppend
23
+ : function (...nodes) {
24
+ if (nodes.length < 50) {
25
+ for (let i = 0; i < nodes.length; i++) {
26
+ const node = nodes[i];
27
+ if (typeof node === 'string') {
28
+ $appendChild.call(this, document.createTextNode(node));
29
+ }
30
+ else {
31
+ $appendChild.call(this, node);
32
+ }
33
+ }
34
+ }
35
+ else {
36
+ const fragment = document.createDocumentFragment();
37
+ for (let i = 0; i < nodes.length; i++) {
38
+ const node = nodes[i];
39
+ if (typeof node === 'string') {
40
+ $appendChild.call(fragment, document.createTextNode(node));
41
+ }
42
+ else {
43
+ $appendChild.call(fragment, node);
44
+ }
45
+ }
46
+ $appendChild.call(this, fragment);
47
+ }
48
+ };
49
+
50
+ // Shared utilities and cached native methods for kt.js framework
51
+ // Re-export all utilities
52
+ Object.defineProperty(window, '@ktjs/shared', { value: '0.19.0' });
53
+
54
+ const booleanHandler = (element, key, value) => {
55
+ if (key in element) {
56
+ element[key] = !!value;
57
+ }
58
+ else {
59
+ element.setAttribute(key, value);
60
+ }
61
+ };
62
+ const valueHandler = (element, key, value) => {
63
+ if (key in element) {
64
+ element[key] = value;
65
+ }
66
+ else {
67
+ element.setAttribute(key, value);
68
+ }
69
+ };
70
+ // Attribute handlers map for optimized lookup
71
+ const handlers = {
72
+ checked: booleanHandler,
73
+ selected: booleanHandler,
74
+ value: valueHandler,
75
+ valueAsDate: valueHandler,
76
+ valueAsNumber: valueHandler,
77
+ defaultValue: valueHandler,
78
+ defaultChecked: booleanHandler,
79
+ defaultSelected: booleanHandler,
80
+ disabled: booleanHandler,
81
+ readOnly: booleanHandler,
82
+ multiple: booleanHandler,
83
+ required: booleanHandler,
84
+ autofocus: booleanHandler,
85
+ open: booleanHandler,
86
+ controls: booleanHandler,
87
+ autoplay: booleanHandler,
88
+ loop: booleanHandler,
89
+ muted: booleanHandler,
90
+ defer: booleanHandler,
91
+ async: booleanHandler,
92
+ hidden: (element, _key, value) => (element.hidden = !!value),
93
+ };
94
+
95
+ const defaultHandler = (element, key, value) => element.setAttribute(key, value);
96
+ function attrIsObject(element, attr) {
97
+ const classValue = attr.class || attr.className;
98
+ if (classValue !== undefined) {
99
+ element.setAttribute('class', classValue);
100
+ }
101
+ const style = attr.style;
102
+ if (style) {
103
+ if (typeof style === 'string') {
104
+ element.setAttribute('style', style);
105
+ }
106
+ else if (typeof style === 'object') {
107
+ for (const key in style) {
108
+ element.style[key] = style[key];
109
+ }
110
+ }
111
+ }
112
+ for (const key in attr) {
113
+ if (key === 'class' ||
114
+ key === 'className' ||
115
+ key === 'style' ||
116
+ key === 'children' ||
117
+ key === 'k-if' ||
118
+ key === 'ref') {
119
+ continue;
120
+ }
121
+ const o = attr[key];
122
+ // normal event handler
123
+ if (key.startsWith('on:')) {
124
+ element.addEventListener(key.slice(3), o); // chop off the `on:`
125
+ }
126
+ // normal attributes
127
+ else {
128
+ (handlers[key] || defaultHandler)(element, key, o);
129
+ }
130
+ }
131
+ }
132
+ function applyAttr(element, attr) {
133
+ if (!attr) {
134
+ return;
135
+ }
136
+ if (typeof attr === 'object' && attr !== null) {
137
+ attrIsObject(element, attr);
138
+ }
139
+ else {
140
+ throw new Error('kt.js: attr must be an object.');
141
+ }
142
+ }
143
+
144
+ function apdSingle(element, c) {
145
+ // & JSX should ignore false, undefined, and null
146
+ if (c === false || c === undefined || c === null) {
147
+ return;
148
+ }
149
+ if (typeof c === 'object' && c !== null && 'isKT' in c) {
150
+ $append.call(element, c.value);
151
+ }
152
+ else {
153
+ $append.call(element, c);
154
+ // Handle KTFor anchor
155
+ const list = c.__kt_for_list__;
156
+ if ($isArray(list)) {
157
+ apd(element, list);
158
+ }
159
+ }
160
+ }
161
+ function apd(element, c) {
162
+ if ($isThenable(c)) {
163
+ c.then((r) => apd(element, r));
164
+ }
165
+ else if ($isArray(c)) {
166
+ for (let i = 0; i < c.length; i++) {
167
+ // & might be thenable here too
168
+ const ci = c[i];
169
+ if ($isThenable(ci)) {
170
+ const comment = document.createComment('ktjs-promise-placeholder');
171
+ $append.call(element, comment);
172
+ ci.then((awaited) => comment.replaceWith(awaited));
173
+ }
174
+ else {
175
+ apdSingle(element, ci);
176
+ }
177
+ }
178
+ }
179
+ else {
180
+ // & here is thened, so must be a simple elementj
181
+ apdSingle(element, c);
182
+ }
183
+ }
184
+ function applyContent(element, content) {
185
+ if ($isArray(content)) {
186
+ for (let i = 0; i < content.length; i++) {
187
+ apd(element, content[i]);
188
+ }
189
+ }
190
+ else {
191
+ apd(element, content);
192
+ }
193
+ }
194
+
195
+ const svgTempWrapper = document.createElement('div');
196
+ /**
197
+ * Create an enhanced HTMLElement.
198
+ * - Only supports HTMLElements, **NOT** SVGElements or other Elements.
199
+ * @param tag tag of an `HTMLElement`
200
+ * @param attr attribute object or className
201
+ * @param content a string or an array of HTMLEnhancedElement as child nodes
202
+ *
203
+ * ## About
204
+ * @package @ktjs/core
205
+ * @author Kasukabe Tsumugi <futami16237@gmail.com>
206
+ * @version 0.19.0 (Last Update: 2026.01.31 22:50:55.987)
207
+ * @license MIT
208
+ * @link https://github.com/baendlorel/kt.js
209
+ * @link https://baendlorel.github.io/ Welcome to my site!
210
+ * @description Core functionality for kt.js - DOM manipulation utilities with JSX/TSX support
211
+ * @copyright Copyright (c) 2026 Kasukabe Tsumugi. All rights reserved.
212
+ */
213
+ const h = (tag, attr, content) => {
214
+ if (typeof tag !== 'string') {
215
+ $throw('tagName must be a string.');
216
+ }
217
+ // * start creating the element
218
+ const element = document.createElement(tag);
219
+ // * Handle content
220
+ applyAttr(element, attr);
221
+ applyContent(element, content);
222
+ if (tag === 'svg') {
223
+ svgTempWrapper.innerHTML = element.outerHTML;
224
+ return svgTempWrapper.firstChild;
225
+ }
226
+ return element;
227
+ };
228
+
229
+ const dummyRef = { value: null };
230
+ /**
231
+ * @param tag html tag or function component
232
+ * @param props properties/attributes
233
+ */
234
+ function jsx(tag, props = {}) {
235
+ const ref = props.ref?.isKT ? props.ref : dummyRef;
236
+ let el;
237
+ const redraw = (newProps) => {
238
+ props = newProps ? { ...props, ...newProps } : props;
239
+ el = jsx(tag, props);
240
+ if (ref !== dummyRef) {
241
+ ref.value = el; // & ref setter automatically replaces old element in DOM
242
+ }
243
+ return el;
244
+ };
245
+ if ('k-if' in props && !props['k-if']) {
246
+ el = document.createComment('k-if');
247
+ ref.value = el; // & ref setter automatically replaces old element in DOM
248
+ el.redraw = redraw;
249
+ return el;
250
+ }
251
+ // Handle function components
252
+ if (typeof tag === 'function') {
253
+ el = tag(props);
254
+ }
255
+ else {
256
+ el = h(tag, props, props.children);
257
+ }
258
+ el.redraw ??= redraw;
259
+ ref.value = el;
260
+ return el;
261
+ }
262
+ /**
263
+ * JSX runtime for React 17+ automatic runtime
264
+ * This is called when using jsx: "react-jsx" or "react-jsxdev"
265
+ */
266
+ const jsxs = jsx;
267
+
4
268
  /**s
5
269
  * Alert component - mimics MUI Alert appearance and behavior
6
270
  */
@@ -29,33 +293,29 @@ var __ktjs_mui__ = (function (exports, jsxRuntime, kt_js) {
29
293
  const iconClass = 'mui-alert-icon';
30
294
  switch (severity) {
31
295
  case 'success':
32
- return (jsxRuntime.jsx("svg", { class: iconClass, viewBox: "0 0 24 24", width: iconSize, height: iconSize, children: jsxRuntime.jsx("path", { fill: "currentColor", d: "M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-2 15l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z" }) }));
296
+ return (jsx("svg", { class: iconClass, viewBox: "0 0 24 24", width: iconSize, height: iconSize, children: jsx("path", { fill: "currentColor", d: "M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-2 15l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z" }) }));
33
297
  case 'error':
34
- return (jsxRuntime.jsx("svg", { class: iconClass, viewBox: "0 0 24 24", width: iconSize, height: iconSize, children: jsxRuntime.jsx("path", { fill: "currentColor", d: "M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-2h2v2zm0-4h-2V7h2v6z" }) }));
298
+ return (jsx("svg", { class: iconClass, viewBox: "0 0 24 24", width: iconSize, height: iconSize, children: jsx("path", { fill: "currentColor", d: "M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-2h2v2zm0-4h-2V7h2v6z" }) }));
35
299
  case 'warning':
36
- return (jsxRuntime.jsx("svg", { class: iconClass, viewBox: "0 0 24 24", width: iconSize, height: iconSize, children: jsxRuntime.jsx("path", { fill: "currentColor", d: "M1 21h22L12 2 1 21zm12-3h-2v-2h2v2zm0-4h-2v-4h2v4z" }) }));
300
+ return (jsx("svg", { class: iconClass, viewBox: "0 0 24 24", width: iconSize, height: iconSize, children: jsx("path", { fill: "currentColor", d: "M1 21h22L12 2 1 21zm12-3h-2v-2h2v2zm0-4h-2v-4h2v4z" }) }));
37
301
  case 'info':
38
302
  default:
39
- return (jsxRuntime.jsx("svg", { class: iconClass, viewBox: "0 0 24 24", width: iconSize, height: iconSize, children: jsxRuntime.jsx("path", { fill: "currentColor", d: "M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-6h2v6zm0-8h-2V7h2v2z" }) }));
303
+ return (jsx("svg", { class: iconClass, viewBox: "0 0 24 24", width: iconSize, height: iconSize, children: jsx("path", { fill: "currentColor", d: "M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-6h2v6zm0-8h-2V7h2v2z" }) }));
40
304
  }
41
305
  };
42
306
  const alertIcon = getIcon();
43
- const alert = (jsxRuntime.jsxs("div", { class: classes, style: styleString, role: "alert", children: [alertIcon && jsxRuntime.jsx("div", { class: "mui-alert-icon-wrapper", children: alertIcon }), jsxRuntime.jsx("div", { class: "mui-alert-message", children: children }), onClose && (jsxRuntime.jsx("button", { class: "mui-alert-close", "on:click": onClose, "aria-label": "Close", children: jsxRuntime.jsx("svg", { viewBox: "0 0 24 24", width: "18px", height: "18px", children: jsxRuntime.jsx("path", { fill: "currentColor", d: "M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z" }) }) }))] }));
307
+ const alert = (jsxs("div", { class: classes, style: styleString, role: "alert", children: [alertIcon && jsx("div", { class: "mui-alert-icon-wrapper", children: alertIcon }), jsx("div", { class: "mui-alert-message", children: children }), onClose && (jsx("button", { class: "mui-alert-close", "on:click": onClose, "aria-label": "Close", children: jsx("svg", { viewBox: "0 0 24 24", width: "18px", height: "18px", children: jsx("path", { fill: "currentColor", d: "M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z" }) }) }))] }));
44
308
  return alert;
45
309
  }
46
310
 
47
- const emptyFn = () => { };
48
- const generateHandler = (props, key) => {
49
- const handler = props[key];
50
- if (typeof handler === 'function') {
51
- return handler;
52
- }
53
- else if (handler && typeof handler === 'object' && handler.isKT) {
54
- return (value) => (handler.value = value);
55
- }
56
- return emptyFn;
57
- };
311
+ // Cached native methods for performance optimization
58
312
 
313
+ // String manipulation utilities
314
+ /**
315
+ * Default empty function
316
+ */
317
+ const $emptyFn = (() => true);
318
+ // Style parsing utilities
59
319
  const parseStyle = (style) => {
60
320
  if (typeof style === 'string') {
61
321
  return style;
@@ -71,12 +331,26 @@ var __ktjs_mui__ = (function (exports, jsxRuntime, kt_js) {
71
331
  }
72
332
  return '';
73
333
  };
334
+ const generateHandler = (props, key) => {
335
+ const handler = props[key];
336
+ if (typeof handler === 'function') {
337
+ return handler;
338
+ }
339
+ else if (handler && typeof handler === 'object' && handler.isKT) {
340
+ return (value) => (handler.value = value);
341
+ }
342
+ return $emptyFn;
343
+ };
344
+
345
+ // Shared utilities and cached native methods for kt.js framework
346
+ // Re-export all utilities
347
+ Object.defineProperty(window, '@ktjs/shared', { value: '0.19.0' });
74
348
 
75
349
  /**
76
350
  * Button component - mimics MUI Button appearance and behavior
77
351
  */
78
352
  function Button(props) {
79
- const { children, variant = 'text', color = 'primary', size = 'medium', disabled = false, fullWidth = false, iconOnly = false, startIcon, endIcon, type = 'button', 'on:click': onClick = emptyFn, } = props;
353
+ const { children, variant = 'text', color = 'primary', size = 'medium', disabled = false, fullWidth = false, iconOnly = false, startIcon, endIcon, type = 'button', 'on:click': onClick = $emptyFn, } = props;
80
354
  const classes = [
81
355
  'mui-button',
82
356
  `mui-button-${variant}`,
@@ -115,7 +389,7 @@ var __ktjs_mui__ = (function (exports, jsxRuntime, kt_js) {
115
389
  }
116
390
  onClick(e);
117
391
  };
118
- return (jsxRuntime.jsxs("button", { class: classes, style: parseStyle(props.style), type: type, disabled: disabled, "on:click": handleClick, children: [startIcon && jsxRuntime.jsx("span", { class: "mui-button-start-icon", children: startIcon }), jsxRuntime.jsx("span", { class: "mui-button-label", children: children }), endIcon && jsxRuntime.jsx("span", { class: "mui-button-end-icon", children: endIcon }), jsxRuntime.jsx("span", { class: "mui-button-ripple" })] }));
392
+ return (jsxs("button", { class: classes, style: parseStyle(props.style), type: type, disabled: disabled, "on:click": handleClick, children: [startIcon && jsx("span", { class: "mui-button-start-icon", children: startIcon }), jsx("span", { class: "mui-button-label", children: children }), endIcon && jsx("span", { class: "mui-button-end-icon", children: endIcon }), jsx("span", { class: "mui-button-ripple" })] }));
119
393
  }
120
394
 
121
395
  /**
@@ -146,16 +420,16 @@ var __ktjs_mui__ = (function (exports, jsxRuntime, kt_js) {
146
420
  };
147
421
  let { checked = false, value = '', label = '', size = 'medium', disabled = false, color = 'primary', indeterminate = false, } = props;
148
422
  const onChange = generateHandler(props, 'kt:change');
149
- const inputEl = (jsxRuntime.jsx("input", { type: "checkbox", class: "mui-checkbox-input", checked: checked, value: value, disabled: disabled, "on:change": handleChange }));
423
+ const inputEl = (jsx("input", { type: "checkbox", class: "mui-checkbox-input", checked: checked, value: value, disabled: disabled, "on:change": handleChange }));
150
424
  // Unchecked icon
151
- const uncheckedIcon = (jsxRuntime.jsx("span", { class: "mui-checkbox-icon-unchecked", children: jsxRuntime.jsx("svg", { viewBox: "0 0 24 24", children: jsxRuntime.jsx("path", { d: "M19 5v14H5V5h14m0-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z" }) }) }));
425
+ const uncheckedIcon = (jsx("span", { class: "mui-checkbox-icon-unchecked", children: jsx("svg", { viewBox: "0 0 24 24", children: jsx("path", { d: "M19 5v14H5V5h14m0-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z" }) }) }));
152
426
  // Checked icon
153
- const checkedIcon = (jsxRuntime.jsx("span", { class: "mui-checkbox-icon-checked", children: jsxRuntime.jsx("svg", { viewBox: "0 0 24 24", children: jsxRuntime.jsx("path", { d: "M19 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.11 0 2-.9 2-2V5c0-1.1-.89-2-2-2zm-9 14l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z" }) }) }));
427
+ const checkedIcon = (jsx("span", { class: "mui-checkbox-icon-checked", children: jsx("svg", { viewBox: "0 0 24 24", children: jsx("path", { d: "M19 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.11 0 2-.9 2-2V5c0-1.1-.89-2-2-2zm-9 14l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z" }) }) }));
154
428
  // Indeterminate icon
155
- const indeterminateIcon = (jsxRuntime.jsx("span", { class: "mui-checkbox-icon-indeterminate", children: jsxRuntime.jsx("svg", { viewBox: "0 0 24 24", children: jsxRuntime.jsx("path", { d: "M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-2 10H7v-2h10v2z" }) }) }));
429
+ const indeterminateIcon = (jsx("span", { class: "mui-checkbox-icon-indeterminate", children: jsx("svg", { viewBox: "0 0 24 24", children: jsx("path", { d: "M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-2 10H7v-2h10v2z" }) }) }));
156
430
  // Initialize icon state
157
431
  toggleIcon(checked, indeterminate);
158
- const container = (jsxRuntime.jsxs("label", { class: `mui-checkbox-wrapper mui-checkbox-size-${size} ${disabled ? 'mui-checkbox-disabled' : ''} mui-checkbox-color-${color}`, children: [inputEl, jsxRuntime.jsxs("span", { class: "mui-checkbox-icon", children: [uncheckedIcon, checkedIcon, indeterminateIcon] }), jsxRuntime.jsx("span", { "k-if": label, class: "mui-checkbox-label", children: label })] }));
432
+ const container = (jsxs("label", { class: `mui-checkbox-wrapper mui-checkbox-size-${size} ${disabled ? 'mui-checkbox-disabled' : ''} mui-checkbox-color-${color}`, children: [inputEl, jsxs("span", { class: "mui-checkbox-icon", children: [uncheckedIcon, checkedIcon, indeterminateIcon] }), jsx("span", { "k-if": label, class: "mui-checkbox-label", children: label })] }));
159
433
  Object.defineProperties(container, {
160
434
  checked: {
161
435
  get() {
@@ -221,7 +495,7 @@ var __ktjs_mui__ = (function (exports, jsxRuntime, kt_js) {
221
495
  }
222
496
  return Checkbox(o);
223
497
  });
224
- const container = (jsxRuntime.jsx("div", { class: `mui-checkbox-group ${row ? 'mui-checkbox-group-row' : ''} ${props.class ? props.class : ''}`, style: props.style ? props.style : '', role: "group", children: checkboxes }));
498
+ const container = (jsx("div", { class: `mui-checkbox-group ${row ? 'mui-checkbox-group-row' : ''} ${props.class ? props.class : ''}`, style: props.style ? props.style : '', role: "group", children: checkboxes }));
225
499
  Object.defineProperties(container, {
226
500
  value: {
227
501
  get() {
@@ -269,7 +543,7 @@ var __ktjs_mui__ = (function (exports, jsxRuntime, kt_js) {
269
543
  * Only handles open/close state, title and content are passed as props
270
544
  */
271
545
  function Dialog(props) {
272
- let { open = false, 'kt:close': onClose = emptyFn, title, children, actions, maxWidth = 'sm', fullWidth = false, } = props;
546
+ let { open = false, 'kt:close': onClose = $emptyFn, title, children, actions, maxWidth = 'sm', fullWidth = false, } = props;
273
547
  // Handle ESC key - store handler for cleanup
274
548
  const keyDownHandler = (e) => {
275
549
  if (e.key === 'Escape') {
@@ -283,7 +557,7 @@ var __ktjs_mui__ = (function (exports, jsxRuntime, kt_js) {
283
557
  }
284
558
  };
285
559
  // Backdrop element
286
- const container = (jsxRuntime.jsx("div", { class: `kt-dialog-backdrop ${open ? 'kt-dialog-backdrop-open' : ''}`, "on:click": handleBackdropClick, style: { display: open ? 'flex' : 'none' }, children: jsxRuntime.jsxs("div", { class: `kt-dialog-paper ${maxWidth ? `kt-dialog-maxWidth-${maxWidth}` : ''} ${fullWidth ? 'kt-dialog-fullWidth' : ''}`, "on:click": (e) => e.stopPropagation(), children: [jsxRuntime.jsx("div", { "k-if": title, class: "kt-dialog-title", children: jsxRuntime.jsx("h2", { children: title }) }), jsxRuntime.jsx("div", { "k-if": children, class: "kt-dialog-content", children: children }), jsxRuntime.jsx("div", { "k-if": actions, class: "kt-dialog-actions", children: actions })] }) }));
560
+ const container = (jsx("div", { class: `kt-dialog-backdrop ${open ? 'kt-dialog-backdrop-open' : ''}`, "on:click": handleBackdropClick, style: { display: open ? 'flex' : 'none' }, children: jsxs("div", { class: `kt-dialog-paper ${maxWidth ? `kt-dialog-maxWidth-${maxWidth}` : ''} ${fullWidth ? 'kt-dialog-fullWidth' : ''}`, "on:click": (e) => e.stopPropagation(), children: [jsx("div", { "k-if": title, class: "kt-dialog-title", children: jsx("h2", { children: title }) }), jsx("div", { "k-if": children, class: "kt-dialog-content", children: children }), jsx("div", { "k-if": actions, class: "kt-dialog-actions", children: actions })] }) }));
287
561
  document.addEventListener('keydown', keyDownHandler);
288
562
  // Store cleanup function
289
563
  const originalRemove = container.remove;
@@ -338,58 +612,72 @@ var __ktjs_mui__ = (function (exports, jsxRuntime, kt_js) {
338
612
  if (htmlFor) {
339
613
  labelProps.for = htmlFor;
340
614
  }
341
- const element = component === 'legend' ? (jsxRuntime.jsxs("legend", { ...labelProps, children: [children, required && jsxRuntime.jsx("span", { class: "mui-form-label-asterisk", children: " *" })] })) : (jsxRuntime.jsxs("label", { ...labelProps, children: [children, required && jsxRuntime.jsx("span", { class: "mui-form-label-asterisk", children: " *" })] }));
615
+ const element = component === 'legend' ? (jsxs("legend", { ...labelProps, children: [children, required && jsx("span", { class: "mui-form-label-asterisk", children: " *" })] })) : (jsxs("label", { ...labelProps, children: [children, required && jsx("span", { class: "mui-form-label-asterisk", children: " *" })] }));
342
616
  return element;
343
617
  }
344
618
 
345
- const emptyPromiseHandler = () => ({});
346
- if (typeof Promise === 'undefined') {
347
- window.Promise = { resolve: emptyPromiseHandler, reject: emptyPromiseHandler };
348
- }
619
+ // Cached native methods for performance optimization
620
+
621
+ // Shared utilities and cached native methods for kt.js framework
622
+ // Re-export all utilities
623
+ Object.defineProperty(window, '@ktjs/shared', { value: '0.19.0' });
349
624
 
350
625
  document.createElement('div');
351
626
 
627
+ class KTRef {
628
+ /**
629
+ * Indicates that this is a KTRef instance
630
+ */
631
+ isKT = true;
632
+ _value;
633
+ _onChanges;
634
+ constructor(_value, _onChanges) {
635
+ this._value = _value;
636
+ this._onChanges = _onChanges;
637
+ }
638
+ /**
639
+ * If new value and old value are both nodes, the old one will be replaced in the DOM
640
+ */
641
+ get value() {
642
+ return this._value;
643
+ }
644
+ set value(newValue) {
645
+ if (newValue === this._value) {
646
+ return;
647
+ }
648
+ // replace the old node with the new one in the DOM if both are nodes
649
+ if (this._value instanceof Node && newValue instanceof Node) {
650
+ if (newValue.contains(this._value)) {
651
+ this._value.remove();
652
+ }
653
+ this._value.replaceWith(newValue);
654
+ }
655
+ const oldValue = this._value;
656
+ this._value = newValue;
657
+ for (let i = 0; i < this._onChanges.length; i++) {
658
+ this._onChanges[i](newValue, oldValue);
659
+ }
660
+ }
661
+ addOnChange(callback) {
662
+ this._onChanges.push(callback);
663
+ }
664
+ removeOnChange(callback) {
665
+ for (let i = this._onChanges.length - 1; i >= 0; i--) {
666
+ if (this._onChanges[i] === callback) {
667
+ this._onChanges.splice(i, 1);
668
+ return true;
669
+ }
670
+ }
671
+ return false;
672
+ }
673
+ }
352
674
  /**
353
675
  * Reference to the created HTML element.
354
676
  * - can alse be used to store normal values, but it is not reactive.
355
677
  * @param value mostly an HTMLElement
356
678
  */
357
679
  function ref(value, onChange) {
358
- let _value = value;
359
- let _onChanges = [];
360
- return {
361
- isKT: true,
362
- get value() {
363
- return _value;
364
- },
365
- set value(newValue) {
366
- if (newValue === _value) {
367
- return;
368
- }
369
- // replace the old node with the new one in the DOM if both are nodes
370
- if (_value instanceof Node && newValue instanceof Node) {
371
- if (newValue.contains(_value)) {
372
- _value.remove();
373
- }
374
- _value.replaceWith(newValue);
375
- }
376
- const oldValue = _value;
377
- _value = newValue;
378
- for (let i = 0; i < _onChanges.length; i++) {
379
- _onChanges[i](newValue, oldValue);
380
- }
381
- },
382
- addOnChange: (callback) => _onChanges.push(callback),
383
- removeOnChange: (callback) => {
384
- for (let i = _onChanges.length - 1; i >= 0; i--) {
385
- if (_onChanges[i] === callback) {
386
- _onChanges.splice(i, 1);
387
- return true;
388
- }
389
- }
390
- return false;
391
- },
392
- };
680
+ return new KTRef(value, []);
393
681
  }
394
682
  /**
395
683
  * A helper to create redrawable elements
@@ -432,7 +720,7 @@ var __ktjs_mui__ = (function (exports, jsxRuntime, kt_js) {
432
720
  // Calculate progress percentage
433
721
  let progressValue = Math.min(Math.max(value, 0), 100);
434
722
  const barRef = ref();
435
- const container = (jsxRuntime.jsx("div", { class: classes, style: styleString, role: "progressbar", "aria-valuenow": progressValue, children: jsxRuntime.jsx("div", { ref: barRef, class: "mui-linear-progress-bar", style: variant === 'determinate' ? `width: ${progressValue}%` : '' }) }));
723
+ const container = (jsx("div", { class: classes, style: styleString, role: "progressbar", "aria-valuenow": progressValue, children: jsx("div", { ref: barRef, class: "mui-linear-progress-bar", style: variant === 'determinate' ? `width: ${progressValue}%` : '' }) }));
436
724
  Object.defineProperty(container, 'progress', {
437
725
  get() {
438
726
  return progressValue;
@@ -507,11 +795,11 @@ var __ktjs_mui__ = (function (exports, jsxRuntime, kt_js) {
507
795
  const getPlaceholder = () => (label && !isFocused && !value ? '' : placeholder);
508
796
  let isFocused = false;
509
797
  const inputEl = multiline
510
- ? (jsxRuntime.jsx("textarea", { class: "mui-textfield-input", placeholder: getPlaceholder(), value: value, disabled: disabled, readOnly: readonly, required: required, rows: rows, "on:input": handleInput, "on:change": handleChange, "on:focus": handleFocus, "on:blur": handleBlur }))
511
- : (jsxRuntime.jsx("input", { type: type, class: "mui-textfield-input", placeholder: getPlaceholder(), value: value, disabled: disabled, readOnly: readonly, required: required, "on:input": handleInput, "on:change": handleChange, "on:focus": handleFocus, "on:blur": handleBlur }));
512
- const helperTextEl = jsxRuntime.jsx("p", { class: "mui-textfield-helper-text", children: helperText });
513
- const wrapperRef = createRedrawable(() => (jsxRuntime.jsxs("div", { class: "mui-textfield-wrapper", children: [jsxRuntime.jsxs("label", { "k-if": label, class: "mui-textfield-label", children: [label, required && jsxRuntime.jsx("span", { class: "mui-textfield-required", children: "*" })] }), jsxRuntime.jsx("div", { class: "mui-textfield-input-wrapper", children: inputEl }), jsxRuntime.jsx("fieldset", { class: "mui-textfield-fieldset", children: jsxRuntime.jsx("legend", { "k-if": label, class: "mui-textfield-legend", children: jsxRuntime.jsxs("span", { children: [label, required && '*'] }) }) })] })));
514
- const container = (jsxRuntime.jsxs("div", { class: 'mui-textfield-root ' + (props.class ? props.class : ''), style: parseStyle(props.style), children: [wrapperRef, helperTextEl] }));
798
+ ? (jsx("textarea", { class: "mui-textfield-input", placeholder: getPlaceholder(), value: value, disabled: disabled, readOnly: readonly, required: required, rows: rows, "on:input": handleInput, "on:change": handleChange, "on:focus": handleFocus, "on:blur": handleBlur }))
799
+ : (jsx("input", { type: type, class: "mui-textfield-input", placeholder: getPlaceholder(), value: value, disabled: disabled, readOnly: readonly, required: required, "on:input": handleInput, "on:change": handleChange, "on:focus": handleFocus, "on:blur": handleBlur }));
800
+ const helperTextEl = jsx("p", { class: "mui-textfield-helper-text", children: helperText });
801
+ const wrapperRef = createRedrawable(() => (jsxs("div", { class: "mui-textfield-wrapper", children: [jsxs("label", { "k-if": label, class: "mui-textfield-label", children: [label, required && jsx("span", { class: "mui-textfield-required", children: "*" })] }), jsx("div", { class: "mui-textfield-input-wrapper", children: inputEl }), jsx("fieldset", { class: "mui-textfield-fieldset", children: jsx("legend", { "k-if": label, class: "mui-textfield-legend", children: jsxs("span", { children: [label, required && '*'] }) }) })] })));
802
+ const container = (jsxs("div", { class: 'mui-textfield-root ' + (props.class ? props.class : ''), style: parseStyle(props.style), children: [wrapperRef, helperTextEl] }));
515
803
  // Initialize classes
516
804
  setTimeout(() => updateContainerClass(), 0);
517
805
  Object.defineProperties(container, {
@@ -612,12 +900,12 @@ var __ktjs_mui__ = (function (exports, jsxRuntime, kt_js) {
612
900
  onChange(checked, value);
613
901
  };
614
902
  let { checked = false, value = '', label: text = '', size = 'small', disabled = false, color = 'primary' } = props;
615
- const input = (jsxRuntime.jsx("input", { type: "radio", class: "mui-radio-input", checked: checked, value: value, disabled: disabled, "on:change": handleChange }));
616
- const uncheckedIcon = (jsxRuntime.jsx("span", { class: "mui-radio-icon-unchecked", children: jsxRuntime.jsx("svg", { viewBox: "0 0 24 24", children: jsxRuntime.jsx("path", { d: "M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z" }) }) }));
617
- const checkedIcon = (jsxRuntime.jsx("span", { class: "mui-radio-icon-checked", children: jsxRuntime.jsx("svg", { viewBox: "0 0 24 24", children: jsxRuntime.jsx("path", { d: "M12 7c-2.76 0-5 2.24-5 5s2.24 5 5 5 5-2.24 5-5-2.24-5-5-5zm0-5C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z" }) }) }));
903
+ const input = (jsx("input", { type: "radio", class: "mui-radio-input", checked: checked, value: value, disabled: disabled, "on:change": handleChange }));
904
+ const uncheckedIcon = (jsx("span", { class: "mui-radio-icon-unchecked", children: jsx("svg", { viewBox: "0 0 24 24", children: jsx("path", { d: "M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z" }) }) }));
905
+ const checkedIcon = (jsx("span", { class: "mui-radio-icon-checked", children: jsx("svg", { viewBox: "0 0 24 24", children: jsx("path", { d: "M12 7c-2.76 0-5 2.24-5 5s2.24 5 5 5 5-2.24 5-5-2.24-5-5-5zm0-5C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z" }) }) }));
618
906
  // initialize icon state
619
907
  toggleIcon(checked);
620
- const container = (jsxRuntime.jsxs("label", { class: `mui-radio-wrapper ${props.class ?? ''} mui-radio-size-${size} ${disabled ? 'mui-radio-disabled' : ''} mui-radio-color-${color}`, style: parseStyle(props.style), children: [input, jsxRuntime.jsxs("span", { class: "mui-radio-icon", children: [uncheckedIcon, checkedIcon] }), jsxRuntime.jsx("span", { class: "mui-radio-label", children: text })] }));
908
+ const container = (jsxs("label", { class: `mui-radio-wrapper ${props.class ?? ''} mui-radio-size-${size} ${disabled ? 'mui-radio-disabled' : ''} mui-radio-color-${color}`, style: parseStyle(props.style), children: [input, jsxs("span", { class: "mui-radio-icon", children: [uncheckedIcon, checkedIcon] }), jsx("span", { class: "mui-radio-label", children: text })] }));
621
909
  Object.defineProperties(container, {
622
910
  value: {
623
911
  get() {
@@ -629,7 +917,7 @@ var __ktjs_mui__ = (function (exports, jsxRuntime, kt_js) {
629
917
  return checked;
630
918
  },
631
919
  set(newChecked) {
632
- checked = newChecked === value;
920
+ checked = newChecked;
633
921
  input.checked = checked;
634
922
  toggleIcon(checked);
635
923
  },
@@ -664,7 +952,7 @@ var __ktjs_mui__ = (function (exports, jsxRuntime, kt_js) {
664
952
  }
665
953
  return Radio(o);
666
954
  });
667
- const container = (jsxRuntime.jsx("div", { class: `mui-radio-group ${row ? 'mui-radio-group-row' : ''} ${props.class ?? ''}`, style: parseStyle(props.style), role: "radiogroup", children: radios }));
955
+ const container = (jsx("div", { class: `mui-radio-group ${row ? 'mui-radio-group-row' : ''} ${props.class ?? ''}`, style: parseStyle(props.style), role: "radiogroup", children: radios }));
668
956
  Object.defineProperties(container, {
669
957
  value: {
670
958
  get() {
@@ -687,7 +975,7 @@ var __ktjs_mui__ = (function (exports, jsxRuntime, kt_js) {
687
975
  const onChange = generateHandler(props, 'kt:change');
688
976
  let isOpen = false;
689
977
  let isFocused = false;
690
- const selectRef = kt_js.ref();
978
+ const selectRef = ref();
691
979
  // Toggle dropdown
692
980
  const toggleMenu = () => {
693
981
  if (disabled) {
@@ -701,7 +989,7 @@ var __ktjs_mui__ = (function (exports, jsxRuntime, kt_js) {
701
989
  if (isOpen) {
702
990
  menu.value.style.display = 'block';
703
991
  // Trigger reflow to enable animation
704
- menu.value.offsetHeight;
992
+ void menu.value.offsetHeight;
705
993
  menu.value.classList.add('mui-select-menu-open');
706
994
  }
707
995
  else {
@@ -756,22 +1044,22 @@ var __ktjs_mui__ = (function (exports, jsxRuntime, kt_js) {
756
1044
  }
757
1045
  }
758
1046
  };
759
- const valueDisplay = kt_js.createRedrawable(() => {
1047
+ const valueDisplay = createRedrawable(() => {
760
1048
  const o = options.find((opt) => opt.value === value);
761
1049
  let inner;
762
1050
  if (o === undefined) {
763
- inner = jsxRuntime.jsx("span", { class: "mui-select-placeholder", children: placeholder || '\u00a0' });
1051
+ inner = jsx("span", { class: "mui-select-placeholder", children: placeholder || '\u00a0' });
764
1052
  }
765
1053
  else {
766
1054
  inner = o.label;
767
1055
  }
768
- return jsxRuntime.jsx("div", { class: "mui-select-display", children: inner });
1056
+ return jsx("div", { class: "mui-select-display", children: inner });
769
1057
  });
770
- const menu = kt_js.createRedrawable(() => {
771
- return (jsxRuntime.jsx("div", { class: "mui-select-menu", style: { display: 'none' }, children: options.map((option) => (jsxRuntime.jsx("div", { class: `mui-select-option ${option.value === value ? 'selected' : ''}`, "on:click": () => handleOptionClick(option.value), children: option.label }))) }));
1058
+ const menu = createRedrawable(() => {
1059
+ return (jsx("div", { class: "mui-select-menu", style: { display: 'none' }, children: options.map((option) => (jsx("div", { class: `mui-select-option ${option.value === value ? 'selected' : ''}`, "on:click": () => handleOptionClick(option.value), children: option.label }))) }));
772
1060
  });
773
1061
  // Create container
774
- const container = (jsxRuntime.jsxs("div", { ref: selectRef, class: `mui-select-wrapper mui-select-size-${size} ${props.class ?? ''} ${fullWidth ? 'mui-select-fullWidth' : ''} ${disabled ? 'mui-select-disabled' : ''}`, style: parseStyle(props.style), children: [label && jsxRuntime.jsx("label", { class: `mui-select-label ${value || isFocused ? 'focused' : ''}`, children: label }), jsxRuntime.jsxs("div", { class: "mui-select-control mui-select-outlined", "on:click": toggleMenu, "on:focus": handleFocus, "on:blur": handleBlur, tabIndex: disabled ? -1 : 0, children: [valueDisplay, jsxRuntime.jsx("input", { type: "hidden", value: value }), jsxRuntime.jsx("fieldset", { class: "mui-select-fieldset", children: jsxRuntime.jsx("legend", { children: jsxRuntime.jsx("span", { children: label }) }) }), jsxRuntime.jsx("svg", { class: "mui-select-icon", focusable: "false", "aria-hidden": "true", viewBox: "0 0 24 24", width: "24", height: "24", children: jsxRuntime.jsx("path", { d: "M7 10l5 5 5-5Z", fill: "currentColor" }) })] }), menu] }));
1062
+ const container = (jsxs("div", { ref: selectRef, class: `mui-select-wrapper mui-select-size-${size} ${props.class ?? ''} ${fullWidth ? 'mui-select-fullWidth' : ''} ${disabled ? 'mui-select-disabled' : ''}`, style: parseStyle(props.style), children: [label && jsx("label", { class: `mui-select-label ${value || isFocused ? 'focused' : ''}`, children: label }), jsxs("div", { class: "mui-select-control mui-select-outlined", "on:click": toggleMenu, "on:focus": handleFocus, "on:blur": handleBlur, tabIndex: disabled ? -1 : 0, children: [valueDisplay, jsx("input", { type: "hidden", value: value }), jsx("fieldset", { class: "mui-select-fieldset", children: jsx("legend", { children: jsx("span", { children: label }) }) }), jsx("svg", { class: "mui-select-icon", focusable: "false", "aria-hidden": "true", viewBox: "0 0 24 24", width: "24", height: "24", children: jsx("path", { d: "M7 10l5 5 5-5Z", fill: "currentColor" }) })] }), menu] }));
775
1063
  // Add global click listener
776
1064
  setTimeout(() => {
777
1065
  document.removeEventListener('click', handleClickOutside);
@@ -782,91 +1070,91 @@ var __ktjs_mui__ = (function (exports, jsxRuntime, kt_js) {
782
1070
  }
783
1071
 
784
1072
  function DownloadIcon(props) {
785
- return (jsxRuntime.jsx("svg", { viewBox: "0 0 24 24", fill: "currentColor", width: "1em", height: "1em", ...props, children: jsxRuntime.jsx("path", { d: "M19 9h-4V3H9v6H5l7 7 7-7zM5 18v2h14v-2H5z" }) }));
1073
+ return (jsx("svg", { viewBox: "0 0 24 24", fill: "currentColor", width: "1em", height: "1em", ...props, children: jsx("path", { d: "M19 9h-4V3H9v6H5l7 7 7-7zM5 18v2h14v-2H5z" }) }));
786
1074
  }
787
1075
 
788
1076
  function CompressIcon(props) {
789
- return (jsxRuntime.jsx("svg", { viewBox: "0 0 24 24", fill: "currentColor", width: "1em", height: "1em", ...props, children: jsxRuntime.jsx("path", { d: "M4 9h16v2H4zm0 4h16v2H4zm8-9 4 4H8zm0 14 4-4H8z" }) }));
1077
+ return (jsx("svg", { viewBox: "0 0 24 24", fill: "currentColor", width: "1em", height: "1em", ...props, children: jsx("path", { d: "M4 9h16v2H4zm0 4h16v2H4zm8-9 4 4H8zm0 14 4-4H8z" }) }));
790
1078
  }
791
1079
 
792
1080
  function SubtitlesIcon(props) {
793
- return (jsxRuntime.jsx("svg", { viewBox: "0 0 24 24", fill: "currentColor", width: "1em", height: "1em", ...props, children: jsxRuntime.jsx("path", { d: "M20 4H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zM4 12h4v2H4v-2zm10 6H4v-2h10v2zm6 0h-4v-2h4v2zm0-4H10v-2h10v2z" }) }));
1081
+ return (jsx("svg", { viewBox: "0 0 24 24", fill: "currentColor", width: "1em", height: "1em", ...props, children: jsx("path", { d: "M20 4H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zM4 12h4v2H4v-2zm10 6H4v-2h10v2zm6 0h-4v-2h4v2zm0-4H10v-2h10v2z" }) }));
794
1082
  }
795
1083
 
796
1084
  function SettingsIcon(props) {
797
- return (jsxRuntime.jsx("svg", { viewBox: "0 0 24 24", fill: "currentColor", width: "1em", height: "1em", ...props, children: jsxRuntime.jsx("path", { d: "M19.14 12.94c.04-.3.06-.61.06-.94 0-.32-.02-.64-.07-.94l2.03-1.58c.18-.14.23-.41.12-.61l-1.92-3.32c-.12-.22-.37-.29-.59-.22l-2.39.96c-.5-.38-1.03-.7-1.62-.94l-.36-2.54c-.04-.24-.24-.41-.48-.41h-3.84c-.24 0-.43.17-.47.41l-.36 2.54c-.59.24-1.13.57-1.62.94l-2.39-.96c-.22-.08-.47 0-.59.22L2.74 8.87c-.12.21-.08.47.12.61l2.03 1.58c-.05.3-.07.62-.07.94s.02.64.07.94l-2.03 1.58c-.18.14-.23.41-.12.61l1.92 3.32c.12.22.37.29.59.22l2.39-.96c.5.38 1.03.7 1.62.94l.36 2.54c.05.24.24.41.48.41h3.84c.24 0 .44-.17.47-.41l.36-2.54c.59-.24 1.13-.56 1.62-.94l2.39.96c.22.08.47 0 .59-.22l1.92-3.32c.12-.22.07-.47-.12-.61l-2.01-1.58zM12 15.6c-1.98 0-3.6-1.62-3.6-3.6s1.62-3.6 3.6-3.6 3.6 1.62 3.6 3.6-1.62 3.6-3.6 3.6z" }) }));
1085
+ return (jsx("svg", { viewBox: "0 0 24 24", fill: "currentColor", width: "1em", height: "1em", ...props, children: jsx("path", { d: "M19.14 12.94c.04-.3.06-.61.06-.94 0-.32-.02-.64-.07-.94l2.03-1.58c.18-.14.23-.41.12-.61l-1.92-3.32c-.12-.22-.37-.29-.59-.22l-2.39.96c-.5-.38-1.03-.7-1.62-.94l-.36-2.54c-.04-.24-.24-.41-.48-.41h-3.84c-.24 0-.43.17-.47.41l-.36 2.54c-.59.24-1.13.57-1.62.94l-2.39-.96c-.22-.08-.47 0-.59.22L2.74 8.87c-.12.21-.08.47.12.61l2.03 1.58c-.05.3-.07.62-.07.94s.02.64.07.94l-2.03 1.58c-.18.14-.23.41-.12.61l1.92 3.32c.12.22.37.29.59.22l2.39-.96c.5.38 1.03.7 1.62.94l.36 2.54c.05.24.24.41.48.41h3.84c.24 0 .44-.17.47-.41l.36-2.54c.59-.24 1.13-.56 1.62-.94l2.39.96c.22.08.47 0 .59-.22l1.92-3.32c.12-.22.07-.47-.12-.61l-2.01-1.58zM12 15.6c-1.98 0-3.6-1.62-3.6-3.6s1.62-3.6 3.6-3.6 3.6 1.62 3.6 3.6-1.62 3.6-3.6 3.6z" }) }));
798
1086
  }
799
1087
 
800
1088
  function NewReleasesIcon(props) {
801
- return (jsxRuntime.jsx("svg", { viewBox: "0 0 24 24", fill: "currentColor", width: "1em", height: "1em", ...props, children: jsxRuntime.jsx("path", { d: "m23 12-2.44-2.79.34-3.69-3.61-.82-1.89-3.2L12 2.96 8.6 1.5 6.71 4.69 3.1 5.5l.34 3.7L1 12l2.44 2.79-.34 3.7 3.61.82L8.6 22.5l3.4-1.47 3.4 1.46 1.89-3.19 3.61-.82-.34-3.69L23 12zm-12.91 4.72-3.8-3.81 1.48-1.48 2.32 2.33 5.85-5.87 1.48 1.48-7.33 7.35z" }) }));
1089
+ return (jsx("svg", { viewBox: "0 0 24 24", fill: "currentColor", width: "1em", height: "1em", ...props, children: jsx("path", { d: "m23 12-2.44-2.79.34-3.69-3.61-.82-1.89-3.2L12 2.96 8.6 1.5 6.71 4.69 3.1 5.5l.34 3.7L1 12l2.44 2.79-.34 3.7 3.61.82L8.6 22.5l3.4-1.47 3.4 1.46 1.89-3.19 3.61-.82-.34-3.69L23 12zm-12.91 4.72-3.8-3.81 1.48-1.48 2.32 2.33 5.85-5.87 1.48 1.48-7.33 7.35z" }) }));
802
1090
  }
803
1091
 
804
1092
  function FolderOpenIcon(props) {
805
- return (jsxRuntime.jsx("svg", { viewBox: "0 0 24 24", fill: "currentColor", width: "1em", height: "1em", ...props, children: jsxRuntime.jsx("path", { d: "M20 6h-8l-2-2H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2zm0 12H4V8h16v10z" }) }));
1093
+ return (jsx("svg", { viewBox: "0 0 24 24", fill: "currentColor", width: "1em", height: "1em", ...props, children: jsx("path", { d: "M20 6h-8l-2-2H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2zm0 12H4V8h16v10z" }) }));
806
1094
  }
807
1095
 
808
1096
  function PlayArrowIcon(props) {
809
- return (jsxRuntime.jsx("svg", { viewBox: "0 0 24 24", fill: "currentColor", width: "1em", height: "1em", ...props, children: jsxRuntime.jsx("path", { d: "M8 5v14l11-7z" }) }));
1097
+ return (jsx("svg", { viewBox: "0 0 24 24", fill: "currentColor", width: "1em", height: "1em", ...props, children: jsx("path", { d: "M8 5v14l11-7z" }) }));
810
1098
  }
811
1099
 
812
1100
  function ContentPasteIcon(props) {
813
- return (jsxRuntime.jsx("svg", { viewBox: "0 0 24 24", fill: "currentColor", width: "1em", height: "1em", ...props, children: jsxRuntime.jsx("path", { d: "M19 2h-4.18C14.4.84 13.3 0 12 0c-1.3 0-2.4.84-2.82 2H5c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-7 0c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm7 18H5V4h2v3h10V4h2v16z" }) }));
1101
+ return (jsx("svg", { viewBox: "0 0 24 24", fill: "currentColor", width: "1em", height: "1em", ...props, children: jsx("path", { d: "M19 2h-4.18C14.4.84 13.3 0 12 0c-1.3 0-2.4.84-2.82 2H5c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-7 0c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm7 18H5V4h2v3h10V4h2v16z" }) }));
814
1102
  }
815
1103
 
816
1104
  function DeleteIcon(props) {
817
- return (jsxRuntime.jsx("svg", { viewBox: "0 0 24 24", fill: "currentColor", width: "1em", height: "1em", ...props, children: jsxRuntime.jsx("path", { d: "M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6v12zM19 4h-3.5l-1-1h-5l-1 1H5v2h14V4z" }) }));
1105
+ return (jsx("svg", { viewBox: "0 0 24 24", fill: "currentColor", width: "1em", height: "1em", ...props, children: jsx("path", { d: "M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6v12zM19 4h-3.5l-1-1h-5l-1 1H5v2h14V4z" }) }));
818
1106
  }
819
1107
 
820
1108
  function StopIcon(props) {
821
- return (jsxRuntime.jsx("svg", { viewBox: "0 0 24 24", fill: "currentColor", width: "1em", height: "1em", ...props, children: jsxRuntime.jsx("path", { d: "M6 6h12v12H6z" }) }));
1109
+ return (jsx("svg", { viewBox: "0 0 24 24", fill: "currentColor", width: "1em", height: "1em", ...props, children: jsx("path", { d: "M6 6h12v12H6z" }) }));
822
1110
  }
823
1111
 
824
1112
  function FileOpenIcon(props) {
825
- return (jsxRuntime.jsx("svg", { viewBox: "0 0 24 24", fill: "currentColor", width: "1em", height: "1em", ...props, children: jsxRuntime.jsx("path", { d: "M14 2H6c-1.1 0-1.99.9-1.99 2L4 20c0 1.1.89 2 1.99 2H15l6-6V4c0-1.1-.9-2-2-2zm-1 7V3.5L18.5 9H13z" }) }));
1113
+ return (jsx("svg", { viewBox: "0 0 24 24", fill: "currentColor", width: "1em", height: "1em", ...props, children: jsx("path", { d: "M14 2H6c-1.1 0-1.99.9-1.99 2L4 20c0 1.1.89 2 1.99 2H15l6-6V4c0-1.1-.9-2-2-2zm-1 7V3.5L18.5 9H13z" }) }));
826
1114
  }
827
1115
 
828
1116
  function ColorLensIcon(props) {
829
- return (jsxRuntime.jsx("svg", { viewBox: "0 0 24 24", fill: "currentColor", width: "1em", height: "1em", ...props, children: jsxRuntime.jsx("path", { d: "M12 3c-4.97 0-9 4.03-9 9s4.03 9 9 9c.83 0 1.5-.67 1.5-1.5 0-.39-.15-.74-.39-1.01-.23-.26-.38-.61-.38-.99 0-.83.67-1.5 1.5-1.5H16c2.76 0 5-2.24 5-5 0-4.42-4.03-8-9-8zm-5.5 9c-.83 0-1.5-.67-1.5-1.5S5.67 9 6.5 9 8 9.67 8 10.5 7.33 12 6.5 12zm3-4C8.67 8 8 7.33 8 6.5S8.67 5 9.5 5s1.5.67 1.5 1.5S10.33 8 9.5 8zm5 0c-.83 0-1.5-.67-1.5-1.5S13.67 5 14.5 5s1.5.67 1.5 1.5S15.33 8 14.5 8zm3 4c-.83 0-1.5-.67-1.5-1.5S16.67 9 17.5 9s1.5.67 1.5 1.5-.67 1.5-1.5 1.5z" }) }));
1117
+ return (jsx("svg", { viewBox: "0 0 24 24", fill: "currentColor", width: "1em", height: "1em", ...props, children: jsx("path", { d: "M12 3c-4.97 0-9 4.03-9 9s4.03 9 9 9c.83 0 1.5-.67 1.5-1.5 0-.39-.15-.74-.39-1.01-.23-.26-.38-.61-.38-.99 0-.83.67-1.5 1.5-1.5H16c2.76 0 5-2.24 5-5 0-4.42-4.03-8-9-8zm-5.5 9c-.83 0-1.5-.67-1.5-1.5S5.67 9 6.5 9 8 9.67 8 10.5 7.33 12 6.5 12zm3-4C8.67 8 8 7.33 8 6.5S8.67 5 9.5 5s1.5.67 1.5 1.5S10.33 8 9.5 8zm5 0c-.83 0-1.5-.67-1.5-1.5S13.67 5 14.5 5s1.5.67 1.5 1.5S15.33 8 14.5 8zm3 4c-.83 0-1.5-.67-1.5-1.5S16.67 9 17.5 9s1.5.67 1.5 1.5-.67 1.5-1.5 1.5z" }) }));
830
1118
  }
831
1119
 
832
1120
  function WallpaperIcon(props) {
833
- return (jsxRuntime.jsx("svg", { viewBox: "0 0 24 24", fill: "currentColor", width: "1em", height: "1em", ...props, children: jsxRuntime.jsx("path", { d: "M4 4h7V2H4c-1.1 0-2 .9-2 2v7h2V4zm6 9-4 5h12l-3-4-2.03 2.71L10 13zm7-4.5c0-.83-.67-1.5-1.5-1.5S14 7.67 14 8.5s.67 1.5 1.5 1.5S17 9.33 17 8.5zM20 2h-7v2h7v7h2V4c0-1.1-.9-2-2-2zm0 18h-7v2h7c1.1 0 2-.9 2-2v-7h-2v7zM4 13H2v7c0 1.1.9 2 2 2h7v-2H4v-7z" }) }));
1121
+ return (jsx("svg", { viewBox: "0 0 24 24", fill: "currentColor", width: "1em", height: "1em", ...props, children: jsx("path", { d: "M4 4h7V2H4c-1.1 0-2 .9-2 2v7h2V4zm6 9-4 5h12l-3-4-2.03 2.71L10 13zm7-4.5c0-.83-.67-1.5-1.5-1.5S14 7.67 14 8.5s.67 1.5 1.5 1.5S17 9.33 17 8.5zM20 2h-7v2h7v7h2V4c0-1.1-.9-2-2-2zm0 18h-7v2h7c1.1 0 2-.9 2-2v-7h-2v7zM4 13H2v7c0 1.1.9 2 2 2h7v-2H4v-7z" }) }));
834
1122
  }
835
1123
 
836
1124
  function ExpandMoreIcon(props) {
837
- return (jsxRuntime.jsx("svg", { viewBox: "0 0 24 24", fill: "currentColor", width: "1em", height: "1em", ...props, children: jsxRuntime.jsx("path", { d: "M16.59 8.59 12 13.17 7.41 8.59 6 10l6 6 6-6z" }) }));
1125
+ return (jsx("svg", { viewBox: "0 0 24 24", fill: "currentColor", width: "1em", height: "1em", ...props, children: jsx("path", { d: "M16.59 8.59 12 13.17 7.41 8.59 6 10l6 6 6-6z" }) }));
838
1126
  }
839
1127
 
840
1128
  function SaveIcon(props) {
841
- return (jsxRuntime.jsx("svg", { viewBox: "0 0 24 24", fill: "currentColor", width: "1em", height: "1em", ...props, children: jsxRuntime.jsx("path", { d: "M17 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V7l-4-4zm-5 16c-1.66 0-3-1.34-3-3s1.34-3 3-3 3 1.34 3 3-1.34 3-3 3zm3-10H5V5h10v4z" }) }));
1129
+ return (jsx("svg", { viewBox: "0 0 24 24", fill: "currentColor", width: "1em", height: "1em", ...props, children: jsx("path", { d: "M17 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V7l-4-4zm-5 16c-1.66 0-3-1.34-3-3s1.34-3 3-3 3 1.34 3 3-1.34 3-3 3zm3-10H5V5h10v4z" }) }));
842
1130
  }
843
1131
 
844
1132
  function UploadFileIcon(props) {
845
- return (jsxRuntime.jsx("svg", { viewBox: "0 0 24 24", fill: "currentColor", width: "1em", height: "1em", ...props, children: jsxRuntime.jsx("path", { d: "M14 2H6c-1.1 0-1.99.9-1.99 2L4 20c0 1.1.89 2 1.99 2H18c1.1 0 2-.9 2-2V8l-6-6zm4 18H6V4h7v5h5v11zM8 15.01l1.41 1.41L11 14.84V19h2v-4.16l1.59 1.59L16 15.01 12.01 11z" }) }));
1133
+ return (jsx("svg", { viewBox: "0 0 24 24", fill: "currentColor", width: "1em", height: "1em", ...props, children: jsx("path", { d: "M14 2H6c-1.1 0-1.99.9-1.99 2L4 20c0 1.1.89 2 1.99 2H18c1.1 0 2-.9 2-2V8l-6-6zm4 18H6V4h7v5h5v11zM8 15.01l1.41 1.41L11 14.84V19h2v-4.16l1.59 1.59L16 15.01 12.01 11z" }) }));
846
1134
  }
847
1135
 
848
1136
  function VideoFileIcon(props) {
849
- return (jsxRuntime.jsx("svg", { viewBox: "0 0 24 24", fill: "currentColor", width: "1em", height: "1em", ...props, children: jsxRuntime.jsx("path", { d: "M14 2H6c-1.1 0-1.99.9-1.99 2L4 20c0 1.1.89 2 1.99 2H18c1.1 0 2-.9 2-2V8l-6-6zM6 20V4h7v5h5v11H6zm10-7v-1.5l2 1.5-2 1.5V13H8v-2h8z" }) }));
1137
+ return (jsx("svg", { viewBox: "0 0 24 24", fill: "currentColor", width: "1em", height: "1em", ...props, children: jsx("path", { d: "M14 2H6c-1.1 0-1.99.9-1.99 2L4 20c0 1.1.89 2 1.99 2H18c1.1 0 2-.9 2-2V8l-6-6zM6 20V4h7v5h5v11H6zm10-7v-1.5l2 1.5-2 1.5V13H8v-2h8z" }) }));
850
1138
  }
851
1139
 
852
1140
  function QueuePlayNextIcon(props) {
853
- return (jsxRuntime.jsx("svg", { viewBox: "0 0 24 24", fill: "currentColor", width: "1em", height: "1em", ...props, children: jsxRuntime.jsx("path", { d: "M21 3H3c-1.11 0-2 .89-2 2v12c0 1.1.89 2 2 2h5v2h8v-2h2v-2H3V5h18v8h2V5c0-1.11-.9-2-2-2zm-8 7V7h-2v3H8v2h3v3h2v-3h3v-2h-3zm11 8-4.5 4.5L18 21l3-3-3-3 1.5-1.5L24 18z" }) }));
1141
+ return (jsx("svg", { viewBox: "0 0 24 24", fill: "currentColor", width: "1em", height: "1em", ...props, children: jsx("path", { d: "M21 3H3c-1.11 0-2 .89-2 2v12c0 1.1.89 2 2 2h5v2h8v-2h2v-2H3V5h18v8h2V5c0-1.11-.9-2-2-2zm-8 7V7h-2v3H8v2h3v3h2v-3h3v-2h-3zm11 8-4.5 4.5L18 21l3-3-3-3 1.5-1.5L24 18z" }) }));
854
1142
  }
855
1143
 
856
1144
  function MenuIcon(props) {
857
- return (jsxRuntime.jsx("svg", { viewBox: "0 0 24 24", fill: "currentColor", width: "1em", height: "1em", ...props, children: jsxRuntime.jsx("path", { d: "M3 18h18v-2H3v2zm0-5h18v-2H3v2zm0-7v2h18V6H3z" }) }));
1145
+ return (jsx("svg", { viewBox: "0 0 24 24", fill: "currentColor", width: "1em", height: "1em", ...props, children: jsx("path", { d: "M3 18h18v-2H3v2zm0-5h18v-2H3v2zm0-7v2h18V6H3z" }) }));
858
1146
  }
859
1147
 
860
1148
  function HomeIcon(props) {
861
- return (jsxRuntime.jsx("svg", { viewBox: "0 0 24 24", fill: "currentColor", width: "1em", height: "1em", ...props, children: jsxRuntime.jsx("path", { d: "M10 20v-6h4v6h5v-8h3L12 3 2 12h3v8z" }) }));
1149
+ return (jsx("svg", { viewBox: "0 0 24 24", fill: "currentColor", width: "1em", height: "1em", ...props, children: jsx("path", { d: "M10 20v-6h4v6h5v-8h3L12 3 2 12h3v8z" }) }));
862
1150
  }
863
1151
 
864
1152
  function ContentCopyIcon(props) {
865
- return (jsxRuntime.jsx("svg", { viewBox: "0 0 24 24", fill: "currentColor", width: "1em", height: "1em", ...props, children: jsxRuntime.jsx("path", { d: "M16 1H4c-1.1 0-2 .9-2 2v14h2V3h12V1zm3 4H8c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h11c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm0 16H8V7h11v14z" }) }));
1153
+ return (jsx("svg", { viewBox: "0 0 24 24", fill: "currentColor", width: "1em", height: "1em", ...props, children: jsx("path", { d: "M16 1H4c-1.1 0-2 .9-2 2v14h2V3h12V1zm3 4H8c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h11c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm0 16H8V7h11v14z" }) }));
866
1154
  }
867
1155
 
868
1156
  function SelectAllIcon(props) {
869
- return (jsxRuntime.jsx("svg", { viewBox: "0 0 24 24", fill: "currentColor", width: "1em", height: "1em", ...props, children: jsxRuntime.jsx("path", { d: "M3 5h2V3c-1.1 0-2 .9-2 2zm0 8h2v-2H3v2zm4 8h2v-2H7v2zM3 9h2V7H3v2zm10-6h-2v2h2V3zm6 0v2h2c0-1.1-.9-2-2-2zM5 21v-2H3c0 1.1.9 2 2 2zm-2-4h2v-2H3v2zM9 3H7v2h2V3zm2 18h2v-2h-2v2zm8-8h2v-2h-2v2zm0 8c1.1 0 2-.9 2-2h-2v2zm0-12h2V7h-2v2zm0 8h2v-2h-2v2zm-4 4h2v-2h-2v2zm0-16h2V3h-2v2zM7 17h10V7H7v10zm2-8h6v6H9V9z" }) }));
1157
+ return (jsx("svg", { viewBox: "0 0 24 24", fill: "currentColor", width: "1em", height: "1em", ...props, children: jsx("path", { d: "M3 5h2V3c-1.1 0-2 .9-2 2zm0 8h2v-2H3v2zm4 8h2v-2H7v2zM3 9h2V7H3v2zm10-6h-2v2h2V3zm6 0v2h2c0-1.1-.9-2-2-2zM5 21v-2H3c0 1.1.9 2 2 2zm-2-4h2v-2H3v2zM9 3H7v2h2V3zm2 18h2v-2h-2v2zm8-8h2v-2h-2v2zm0 8c1.1 0 2-.9 2-2h-2v2zm0-12h2V7h-2v2zm0 8h2v-2h-2v2zm-4 4h2v-2h-2v2zm0-16h2V3h-2v2zM7 17h10V7H7v10zm2-8h6v6H9V9z" }) }));
870
1158
  }
871
1159
 
872
1160
  exports.Alert = Alert;
@@ -906,4 +1194,4 @@ var __ktjs_mui__ = (function (exports, jsxRuntime, kt_js) {
906
1194
 
907
1195
  return exports;
908
1196
 
909
- })({}, jsxRuntime, kt_js);
1197
+ })({});