@k37z3r/jbase 2.0.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.
Files changed (136) hide show
  1. package/LICENSE +621 -0
  2. package/README.md +124 -0
  3. package/dist/browser.d.ts +30 -0
  4. package/dist/browser.d.ts.map +1 -0
  5. package/dist/browser.js +29 -0
  6. package/dist/browser.js.map +1 -0
  7. package/dist/core.d.ts +42 -0
  8. package/dist/core.d.ts.map +1 -0
  9. package/dist/core.js +78 -0
  10. package/dist/core.js.map +1 -0
  11. package/dist/index.cjs +2150 -0
  12. package/dist/index.d.ts +1158 -0
  13. package/dist/index.d.ts.map +1 -0
  14. package/dist/index.js +100 -0
  15. package/dist/index.js.map +1 -0
  16. package/dist/index.mjs +2118 -0
  17. package/dist/jbase.browser.js +1906 -0
  18. package/dist/jbase.js +1898 -0
  19. package/dist/jbase.min.js +9 -0
  20. package/dist/modules/css/classes.d.ts +61 -0
  21. package/dist/modules/css/classes.d.ts.map +1 -0
  22. package/dist/modules/css/classes.js +88 -0
  23. package/dist/modules/css/classes.js.map +1 -0
  24. package/dist/modules/css/index.d.ts +30 -0
  25. package/dist/modules/css/index.d.ts.map +1 -0
  26. package/dist/modules/css/index.js +33 -0
  27. package/dist/modules/css/index.js.map +1 -0
  28. package/dist/modules/css/styles.d.ts +31 -0
  29. package/dist/modules/css/styles.d.ts.map +1 -0
  30. package/dist/modules/css/styles.js +49 -0
  31. package/dist/modules/css/styles.js.map +1 -0
  32. package/dist/modules/data/arrays.d.ts +131 -0
  33. package/dist/modules/data/arrays.d.ts.map +1 -0
  34. package/dist/modules/data/arrays.js +177 -0
  35. package/dist/modules/data/arrays.js.map +1 -0
  36. package/dist/modules/data/index.d.ts +29 -0
  37. package/dist/modules/data/index.d.ts.map +1 -0
  38. package/dist/modules/data/index.js +33 -0
  39. package/dist/modules/data/index.js.map +1 -0
  40. package/dist/modules/data/objects.d.ts +108 -0
  41. package/dist/modules/data/objects.d.ts.map +1 -0
  42. package/dist/modules/data/objects.js +168 -0
  43. package/dist/modules/data/objects.js.map +1 -0
  44. package/dist/modules/data/types.d.ts +35 -0
  45. package/dist/modules/data/types.d.ts.map +1 -0
  46. package/dist/modules/data/types.js +43 -0
  47. package/dist/modules/data/types.js.map +1 -0
  48. package/dist/modules/dom/attributes.d.ts +42 -0
  49. package/dist/modules/dom/attributes.d.ts.map +1 -0
  50. package/dist/modules/dom/attributes.js +69 -0
  51. package/dist/modules/dom/attributes.js.map +1 -0
  52. package/dist/modules/dom/content.d.ts +39 -0
  53. package/dist/modules/dom/content.d.ts.map +1 -0
  54. package/dist/modules/dom/content.js +63 -0
  55. package/dist/modules/dom/content.js.map +1 -0
  56. package/dist/modules/dom/index.d.ts +78 -0
  57. package/dist/modules/dom/index.d.ts.map +1 -0
  58. package/dist/modules/dom/index.js +48 -0
  59. package/dist/modules/dom/index.js.map +1 -0
  60. package/dist/modules/dom/manipulation.d.ts +159 -0
  61. package/dist/modules/dom/manipulation.d.ts.map +1 -0
  62. package/dist/modules/dom/manipulation.js +343 -0
  63. package/dist/modules/dom/manipulation.js.map +1 -0
  64. package/dist/modules/dom/states.d.ts +50 -0
  65. package/dist/modules/dom/states.d.ts.map +1 -0
  66. package/dist/modules/dom/states.js +89 -0
  67. package/dist/modules/dom/states.js.map +1 -0
  68. package/dist/modules/dom/traversal.d.ts +246 -0
  69. package/dist/modules/dom/traversal.d.ts.map +1 -0
  70. package/dist/modules/dom/traversal.js +527 -0
  71. package/dist/modules/dom/traversal.js.map +1 -0
  72. package/dist/modules/effects/fade.d.ts +58 -0
  73. package/dist/modules/effects/fade.d.ts.map +1 -0
  74. package/dist/modules/effects/fade.js +104 -0
  75. package/dist/modules/effects/fade.js.map +1 -0
  76. package/dist/modules/effects/index.d.ts +40 -0
  77. package/dist/modules/effects/index.d.ts.map +1 -0
  78. package/dist/modules/effects/index.js +38 -0
  79. package/dist/modules/effects/index.js.map +1 -0
  80. package/dist/modules/effects/slide.d.ts +58 -0
  81. package/dist/modules/effects/slide.d.ts.map +1 -0
  82. package/dist/modules/effects/slide.js +103 -0
  83. package/dist/modules/effects/slide.js.map +1 -0
  84. package/dist/modules/effects/vertical.d.ts +58 -0
  85. package/dist/modules/effects/vertical.d.ts.map +1 -0
  86. package/dist/modules/effects/vertical.js +118 -0
  87. package/dist/modules/effects/vertical.js.map +1 -0
  88. package/dist/modules/events/binding.d.ts +47 -0
  89. package/dist/modules/events/binding.d.ts.map +1 -0
  90. package/dist/modules/events/binding.js +60 -0
  91. package/dist/modules/events/binding.js.map +1 -0
  92. package/dist/modules/events/form.d.ts +72 -0
  93. package/dist/modules/events/form.d.ts.map +1 -0
  94. package/dist/modules/events/form.js +106 -0
  95. package/dist/modules/events/form.js.map +1 -0
  96. package/dist/modules/events/index.d.ts +62 -0
  97. package/dist/modules/events/index.d.ts.map +1 -0
  98. package/dist/modules/events/index.js +53 -0
  99. package/dist/modules/events/index.js.map +1 -0
  100. package/dist/modules/events/keyboard.d.ts +65 -0
  101. package/dist/modules/events/keyboard.d.ts.map +1 -0
  102. package/dist/modules/events/keyboard.js +83 -0
  103. package/dist/modules/events/keyboard.js.map +1 -0
  104. package/dist/modules/events/lifecycle.d.ts +28 -0
  105. package/dist/modules/events/lifecycle.d.ts.map +1 -0
  106. package/dist/modules/events/lifecycle.js +40 -0
  107. package/dist/modules/events/lifecycle.js.map +1 -0
  108. package/dist/modules/events/mouse.d.ts +120 -0
  109. package/dist/modules/events/mouse.d.ts.map +1 -0
  110. package/dist/modules/events/mouse.js +172 -0
  111. package/dist/modules/events/mouse.js.map +1 -0
  112. package/dist/modules/events/touch.d.ts +61 -0
  113. package/dist/modules/events/touch.d.ts.map +1 -0
  114. package/dist/modules/events/touch.js +74 -0
  115. package/dist/modules/events/touch.js.map +1 -0
  116. package/dist/modules/http/get.d.ts +47 -0
  117. package/dist/modules/http/get.d.ts.map +1 -0
  118. package/dist/modules/http/get.js +65 -0
  119. package/dist/modules/http/get.js.map +1 -0
  120. package/dist/modules/http/index.d.ts +37 -0
  121. package/dist/modules/http/index.d.ts.map +1 -0
  122. package/dist/modules/http/index.js +42 -0
  123. package/dist/modules/http/index.js.map +1 -0
  124. package/dist/modules/http/post.d.ts +36 -0
  125. package/dist/modules/http/post.d.ts.map +1 -0
  126. package/dist/modules/http/post.js +54 -0
  127. package/dist/modules/http/post.js.map +1 -0
  128. package/dist/types.d.ts +61 -0
  129. package/dist/types.d.ts.map +1 -0
  130. package/dist/types.js +15 -0
  131. package/dist/types.js.map +1 -0
  132. package/dist/utils.d.ts +51 -0
  133. package/dist/utils.d.ts.map +1 -0
  134. package/dist/utils.js +71 -0
  135. package/dist/utils.js.map +1 -0
  136. package/package.json +58 -0
package/dist/index.cjs ADDED
@@ -0,0 +1,2150 @@
1
+ /**
2
+ * @k37z3r/jbase - A modern micro-framework for the web: jBase offers the familiar syntax of classic DOM libraries, but without their baggage. Fully typed, modular, and optimized for modern browser engines.
3
+ * @version 2.0.0
4
+ * @homepage https://github.com/k37z3r/jBase-2.0
5
+ * @author Sven Minio (https://github.com/k37z3r/jBase-2.0)
6
+ * @license GPL-3.0-or-later
7
+ * @copyright 2026 Sven Minio (https://github.com/k37z3r/jBase-2.0)
8
+ */
9
+ "use strict";
10
+ var __defProp = Object.defineProperty;
11
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
12
+ var __getOwnPropNames = Object.getOwnPropertyNames;
13
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
14
+ var __export = (target, all) => {
15
+ for (var name in all)
16
+ __defProp(target, name, { get: all[name], enumerable: true });
17
+ };
18
+ var __copyProps = (to, from, except, desc) => {
19
+ if (from && typeof from === "object" || typeof from === "function") {
20
+ for (let key of __getOwnPropNames(from))
21
+ if (!__hasOwnProp.call(to, key) && key !== except)
22
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
23
+ }
24
+ return to;
25
+ };
26
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
27
+
28
+ // src/index.ts
29
+ var index_exports = {};
30
+ __export(index_exports, {
31
+ $: () => $,
32
+ JBaseClass: () => jBase,
33
+ __jB: () => __jB,
34
+ __jBase: () => __jBase,
35
+ _jB: () => _jB,
36
+ _jBase: () => _jBase,
37
+ data: () => data,
38
+ debounce: () => debounce,
39
+ http: () => http,
40
+ jB: () => jB,
41
+ jBase: () => jBase2,
42
+ throttle: () => throttle
43
+ });
44
+ module.exports = __toCommonJS(index_exports);
45
+
46
+ // src/core.ts
47
+ var jBase = class extends Array {
48
+ selectorSource = "";
49
+ /**
50
+ * * πŸ‡¬πŸ‡§: Initializes a new jBase instance. Analyzes the provided selector and populates the internal array with found or created DOM elements.
51
+ * * πŸ‡©πŸ‡ͺ: Initialisiert eine neue jBase-Instanz. Analysiert den ΓΌbergebenen Selektor und fΓΌllt das interne Array mit den gefundenen oder erstellten DOM-Elementen.
52
+ * @param selector
53
+ * * πŸ‡¬πŸ‡§: The input selector (CSS selector, HTML string, DOM element, or collection).
54
+ * * πŸ‡©πŸ‡ͺ: Der Eingabe-Selektor (CSS-Selektor, HTML-String, DOM-Element oder Sammlung).
55
+ */
56
+ constructor(selector) {
57
+ super();
58
+ if (typeof document === "undefined") {
59
+ return;
60
+ }
61
+ this.selectorSource = typeof selector === "string" ? selector : "<DOM Object/Array>";
62
+ if (!selector)
63
+ return;
64
+ if (selector instanceof HTMLElement || selector === document || selector === window || selector instanceof Element) {
65
+ this.push(selector);
66
+ } else if (typeof selector === "string") {
67
+ const trimmed = selector.trim();
68
+ if (trimmed.startsWith("<") && trimmed.endsWith(">")) {
69
+ const tempDiv = document.createElement("div");
70
+ tempDiv.innerHTML = trimmed;
71
+ this.push(...Array.from(tempDiv.children));
72
+ } else if (trimmed.startsWith("#") && !trimmed.includes(" ") && !trimmed.includes(".")) {
73
+ const el = document.getElementById(trimmed.slice(1));
74
+ if (el)
75
+ this.push(el);
76
+ } else {
77
+ this.push(...Array.from(document.querySelectorAll(selector)));
78
+ }
79
+ } else if (selector instanceof NodeList || Array.isArray(selector)) {
80
+ this.push(...Array.from(selector));
81
+ }
82
+ }
83
+ /**
84
+ * * πŸ‡¬πŸ‡§: Custom serializer for JSON.stringify. Prevents circular references and huge outputs by returning a simplified preview.
85
+ * * πŸ‡©πŸ‡ͺ: Benutzerdefinierte Serialisierung fΓΌr JSON.stringify. Verhindert ZirkelbezΓΌge und riesige Ausgaben durch RΓΌckgabe einer vereinfachten Vorschau.
86
+ * @returns
87
+ * * πŸ‡¬πŸ‡§: A simplified object representation for debugging.
88
+ * * πŸ‡©πŸ‡ͺ: Eine vereinfachte ObjektreprΓ€sentation fΓΌr das Debugging.
89
+ */
90
+ toJSON() {
91
+ return {
92
+ meta: "jBase Wrapper",
93
+ query: this.selectorSource,
94
+ count: this.length,
95
+ preview: this.slice(0, 10).map((el) => {
96
+ if (el instanceof Element)
97
+ return el.tagName.toLowerCase();
98
+ return typeof el;
99
+ })
100
+ };
101
+ }
102
+ };
103
+
104
+ // src/modules/css/classes.ts
105
+ var classes_exports = {};
106
+ __export(classes_exports, {
107
+ addClass: () => addClass,
108
+ hasClass: () => hasClass,
109
+ removeClass: () => removeClass,
110
+ toggleClass: () => toggleClass
111
+ });
112
+ function addClass(...classNames) {
113
+ this.forEach((el) => {
114
+ if (el instanceof Element) el.classList.add(...classNames);
115
+ });
116
+ return this;
117
+ }
118
+ function removeClass(...classNames) {
119
+ this.forEach((el) => {
120
+ if (el instanceof Element) el.classList.remove(...classNames);
121
+ });
122
+ return this;
123
+ }
124
+ function toggleClass(className) {
125
+ this.forEach((el) => {
126
+ if (el instanceof Element) el.classList.toggle(className);
127
+ });
128
+ return this;
129
+ }
130
+ function hasClass(className) {
131
+ return this.some((el) => {
132
+ return el instanceof Element && el.classList.contains(className);
133
+ });
134
+ }
135
+
136
+ // src/modules/css/styles.ts
137
+ var styles_exports = {};
138
+ __export(styles_exports, {
139
+ css: () => css
140
+ });
141
+ function css(property, value) {
142
+ if (value === void 0) {
143
+ const el = this[0];
144
+ if (el instanceof HTMLElement || el instanceof SVGElement) {
145
+ return window.getComputedStyle(el)[property];
146
+ }
147
+ return "";
148
+ }
149
+ this.forEach((el) => {
150
+ if (el instanceof HTMLElement || el instanceof SVGElement) {
151
+ el.style[property] = value;
152
+ }
153
+ });
154
+ return this;
155
+ }
156
+
157
+ // src/modules/css/index.ts
158
+ var cssMethods = {
159
+ ...classes_exports,
160
+ ...styles_exports
161
+ };
162
+
163
+ // src/modules/events/binding.ts
164
+ var binding_exports = {};
165
+ __export(binding_exports, {
166
+ off: () => off,
167
+ on: () => on
168
+ });
169
+ function on(event, handler) {
170
+ this.forEach((el) => {
171
+ el.addEventListener(event, handler);
172
+ });
173
+ return this;
174
+ }
175
+ function off(event, handler) {
176
+ this.forEach((el) => {
177
+ el.removeEventListener(event, handler);
178
+ });
179
+ return this;
180
+ }
181
+
182
+ // src/modules/events/mouse.ts
183
+ var mouse_exports = {};
184
+ __export(mouse_exports, {
185
+ click: () => click,
186
+ dblclick: () => dblclick,
187
+ mousedown: () => mousedown,
188
+ mouseenter: () => mouseenter,
189
+ mouseleave: () => mouseleave,
190
+ mousemove: () => mousemove,
191
+ mouseout: () => mouseout,
192
+ mouseover: () => mouseover,
193
+ mouseup: () => mouseup
194
+ });
195
+ function click(handler) {
196
+ if (handler) {
197
+ return this.on("click", handler);
198
+ } else {
199
+ this.forEach((el) => {
200
+ if (el instanceof HTMLElement) el.click();
201
+ });
202
+ return this;
203
+ }
204
+ }
205
+ function mousemove(handler) {
206
+ return this.on("mousemove", handler);
207
+ }
208
+ function mouseleave(handler) {
209
+ return this.on("mouseleave", handler);
210
+ }
211
+ function mouseenter(handler) {
212
+ return this.on("mouseenter", handler);
213
+ }
214
+ function mousedown(handler) {
215
+ return this.on("mousedown", handler);
216
+ }
217
+ function mouseup(handler) {
218
+ return this.on("mouseup", handler);
219
+ }
220
+ function dblclick(handler) {
221
+ if (handler) {
222
+ return this.on("dblclick", handler);
223
+ } else {
224
+ this.forEach((el) => {
225
+ if (el instanceof HTMLElement) {
226
+ el.dispatchEvent(new MouseEvent("dblclick", {
227
+ bubbles: true,
228
+ cancelable: true,
229
+ view: window
230
+ }));
231
+ }
232
+ });
233
+ return this;
234
+ }
235
+ }
236
+ function mouseout(handler) {
237
+ return this.on("mouseout", handler);
238
+ }
239
+ function mouseover(handler) {
240
+ return this.on("mouseover", handler);
241
+ }
242
+
243
+ // src/modules/events/lifecycle.ts
244
+ var lifecycle_exports = {};
245
+ __export(lifecycle_exports, {
246
+ ready: () => ready
247
+ });
248
+ function ready(handler) {
249
+ if (document.readyState === "complete" || document.readyState === "interactive") {
250
+ handler();
251
+ } else {
252
+ this.on("DOMContentLoaded", handler);
253
+ }
254
+ return this;
255
+ }
256
+
257
+ // src/modules/events/keyboard.ts
258
+ var keyboard_exports = {};
259
+ __export(keyboard_exports, {
260
+ keydown: () => keydown,
261
+ keypress: () => keypress,
262
+ keyup: () => keyup,
263
+ pressedKey: () => pressedKey
264
+ });
265
+ function keydown(handler) {
266
+ return this.on("keydown", handler);
267
+ }
268
+ function keyup(handler) {
269
+ return this.on("keyup", handler);
270
+ }
271
+ function keypress(handler) {
272
+ return this.on("keypress", handler);
273
+ }
274
+ function pressedKey(targetKey, handler) {
275
+ return this.on("keydown", (e) => {
276
+ const event = e;
277
+ if (event.key.toLowerCase() === targetKey.toLowerCase()) {
278
+ handler(event);
279
+ }
280
+ });
281
+ }
282
+
283
+ // src/modules/events/form.ts
284
+ var form_exports = {};
285
+ __export(form_exports, {
286
+ blur: () => blur,
287
+ change: () => change,
288
+ focus: () => focus,
289
+ input: () => input,
290
+ submit: () => submit
291
+ });
292
+ function submit(handler) {
293
+ return this.on("submit", handler);
294
+ }
295
+ function change(handler) {
296
+ return this.on("change", handler);
297
+ }
298
+ function input(handler) {
299
+ return this.on("input", handler);
300
+ }
301
+ function focus(handler) {
302
+ if (handler) {
303
+ return this.on("focus", handler);
304
+ } else {
305
+ this.forEach((el) => {
306
+ if (el instanceof HTMLElement) el.focus();
307
+ });
308
+ return this;
309
+ }
310
+ }
311
+ function blur(handler) {
312
+ if (handler) {
313
+ return this.on("blur", handler);
314
+ } else {
315
+ this.forEach((el) => {
316
+ if (el instanceof HTMLElement) el.blur();
317
+ });
318
+ return this;
319
+ }
320
+ }
321
+
322
+ // src/modules/events/touch.ts
323
+ var touch_exports = {};
324
+ __export(touch_exports, {
325
+ touchcancel: () => touchcancel,
326
+ touchend: () => touchend,
327
+ touchmove: () => touchmove,
328
+ touchstart: () => touchstart
329
+ });
330
+ function touchstart(handler) {
331
+ return this.on("touchstart", handler);
332
+ }
333
+ function touchend(handler) {
334
+ return this.on("touchend", handler);
335
+ }
336
+ function touchmove(handler) {
337
+ return this.on("touchmove", handler);
338
+ }
339
+ function touchcancel(handler) {
340
+ return this.on("touchcancel", handler);
341
+ }
342
+
343
+ // src/modules/events/index.ts
344
+ var eventMethods = {
345
+ ...binding_exports,
346
+ ...mouse_exports,
347
+ ...lifecycle_exports,
348
+ ...keyboard_exports,
349
+ ...form_exports,
350
+ ...touch_exports
351
+ };
352
+
353
+ // src/modules/dom/attributes.ts
354
+ var attributes_exports = {};
355
+ __export(attributes_exports, {
356
+ attr: () => attr,
357
+ val: () => val
358
+ });
359
+ function attr(name, value) {
360
+ if (value === void 0) {
361
+ const el = this[0];
362
+ return el instanceof Element ? el.getAttribute(name) : null;
363
+ }
364
+ this.forEach((el) => {
365
+ if (el instanceof Element) el.setAttribute(name, value);
366
+ });
367
+ return this;
368
+ }
369
+ function val(value) {
370
+ if (value === void 0) {
371
+ const el = this[0];
372
+ if (el instanceof HTMLInputElement || el instanceof HTMLTextAreaElement || el instanceof HTMLSelectElement) {
373
+ return el.value;
374
+ }
375
+ return "";
376
+ }
377
+ this.forEach((el) => {
378
+ if (el instanceof HTMLInputElement || el instanceof HTMLTextAreaElement || el instanceof HTMLSelectElement) {
379
+ el.value = value;
380
+ }
381
+ });
382
+ return this;
383
+ }
384
+
385
+ // src/modules/dom/content.ts
386
+ var content_exports = {};
387
+ __export(content_exports, {
388
+ html: () => html,
389
+ text: () => text
390
+ });
391
+ function html(content) {
392
+ if (content === void 0) {
393
+ const el = this[0];
394
+ return el instanceof Element ? el.innerHTML : "";
395
+ }
396
+ this.forEach((el) => {
397
+ if (el instanceof Element) el.innerHTML = content;
398
+ });
399
+ return this;
400
+ }
401
+ function text(content) {
402
+ if (content === void 0) {
403
+ const el = this[0];
404
+ return el instanceof Node ? el.textContent || "" : "";
405
+ }
406
+ this.forEach((el) => {
407
+ if (el instanceof HTMLElement) {
408
+ el.textContent = content;
409
+ }
410
+ });
411
+ return this;
412
+ }
413
+
414
+ // src/modules/dom/manipulation.ts
415
+ var manipulation_exports = {};
416
+ __export(manipulation_exports, {
417
+ after: () => after,
418
+ append: () => append,
419
+ appendTo: () => appendTo,
420
+ before: () => before,
421
+ empty: () => empty,
422
+ insertAfter: () => insertAfter,
423
+ insertBefore: () => insertBefore,
424
+ prepend: () => prepend,
425
+ prependTo: () => prependTo,
426
+ remove: () => remove,
427
+ replaceWith: () => replaceWith,
428
+ replaceWithClone: () => replaceWithClone,
429
+ unwrap: () => unwrap,
430
+ wrap: () => wrap
431
+ });
432
+ function parseHTML(html2) {
433
+ const tmp = document.createElement("div");
434
+ tmp.innerHTML = html2.trim();
435
+ return tmp.firstElementChild;
436
+ }
437
+ function normalizeToFragment(content) {
438
+ const fragment = document.createDocumentFragment();
439
+ const add2 = (item) => {
440
+ if (typeof item === "string") {
441
+ const temp = document.createElement("div");
442
+ temp.innerHTML = item.trim();
443
+ while (temp.firstChild) {
444
+ fragment.appendChild(temp.firstChild);
445
+ }
446
+ } else if (item instanceof Node) {
447
+ fragment.appendChild(item);
448
+ } else if (item instanceof jBase || Array.isArray(item) || item instanceof NodeList) {
449
+ Array.from(item).forEach((child) => add2(child));
450
+ }
451
+ };
452
+ add2(content);
453
+ return fragment;
454
+ }
455
+ function remove() {
456
+ this.forEach((el) => {
457
+ if (el instanceof Element) el.remove();
458
+ });
459
+ return this;
460
+ }
461
+ function empty() {
462
+ this.forEach((el) => {
463
+ if (el instanceof Element) el.innerHTML = "";
464
+ });
465
+ return this;
466
+ }
467
+ function replaceWithClone() {
468
+ const newElements = [];
469
+ this.forEach((el) => {
470
+ if (el instanceof Element) {
471
+ const clone = el.cloneNode(true);
472
+ el.replaceWith(clone);
473
+ newElements.push(clone);
474
+ }
475
+ });
476
+ return new this.constructor(newElements);
477
+ }
478
+ function append(content) {
479
+ const fragment = normalizeToFragment(content);
480
+ this.forEach((el, i) => {
481
+ if (el instanceof Element) {
482
+ const contentToInsert = i < this.length - 1 ? fragment.cloneNode(true) : fragment;
483
+ el.appendChild(contentToInsert);
484
+ }
485
+ });
486
+ return this;
487
+ }
488
+ function prepend(content) {
489
+ const fragment = normalizeToFragment(content);
490
+ this.forEach((el, i) => {
491
+ if (el instanceof Element) {
492
+ const contentToInsert = i < this.length - 1 ? fragment.cloneNode(true) : fragment;
493
+ el.prepend(contentToInsert);
494
+ }
495
+ });
496
+ return this;
497
+ }
498
+ function before(content) {
499
+ const fragment = normalizeToFragment(content);
500
+ this.forEach((el, i) => {
501
+ if (el instanceof Element) {
502
+ const contentToInsert = i < this.length - 1 ? fragment.cloneNode(true) : fragment;
503
+ el.before(contentToInsert);
504
+ }
505
+ });
506
+ return this;
507
+ }
508
+ function after(content) {
509
+ const fragment = normalizeToFragment(content);
510
+ this.forEach((el, i) => {
511
+ if (el instanceof Element) {
512
+ const contentToInsert = i < this.length - 1 ? fragment.cloneNode(true) : fragment;
513
+ el.after(contentToInsert);
514
+ }
515
+ });
516
+ return this;
517
+ }
518
+ function replaceWith(content) {
519
+ const fragment = normalizeToFragment(content);
520
+ this.forEach((el, i) => {
521
+ if (el instanceof Element) {
522
+ const contentToInsert = i < this.length - 1 ? fragment.cloneNode(true) : fragment;
523
+ el.replaceWith(contentToInsert);
524
+ }
525
+ });
526
+ return this;
527
+ }
528
+ function appendTo(target) {
529
+ const parent2 = typeof target === "string" ? document.querySelector(target) : target;
530
+ if (parent2 instanceof Element) {
531
+ const fragment = document.createDocumentFragment();
532
+ this.forEach((el) => {
533
+ if (el instanceof Node) fragment.appendChild(el);
534
+ });
535
+ parent2.appendChild(fragment);
536
+ }
537
+ return this;
538
+ }
539
+ function prependTo(target) {
540
+ const parent2 = typeof target === "string" ? document.querySelector(target) : target;
541
+ if (parent2 instanceof Element) {
542
+ const fragment = document.createDocumentFragment();
543
+ this.forEach((el) => {
544
+ if (el instanceof Node) fragment.appendChild(el);
545
+ });
546
+ parent2.prepend(fragment);
547
+ }
548
+ return this;
549
+ }
550
+ function insertBefore(target) {
551
+ const targetEl = typeof target === "string" ? document.querySelector(target) : target;
552
+ if (targetEl instanceof Element) {
553
+ const fragment = document.createDocumentFragment();
554
+ this.forEach((el) => {
555
+ if (el instanceof Node) fragment.appendChild(el);
556
+ });
557
+ targetEl.before(fragment);
558
+ }
559
+ return this;
560
+ }
561
+ function insertAfter(target) {
562
+ const targetEl = typeof target === "string" ? document.querySelector(target) : target;
563
+ if (targetEl instanceof Element) {
564
+ const fragment = document.createDocumentFragment();
565
+ this.forEach((el) => {
566
+ if (el instanceof Node) fragment.appendChild(el);
567
+ });
568
+ targetEl.after(fragment);
569
+ }
570
+ return this;
571
+ }
572
+ function wrap(wrapperHtml) {
573
+ this.forEach((el) => {
574
+ if (el instanceof Element) {
575
+ const wrapper = parseHTML(wrapperHtml);
576
+ if (el.parentNode) {
577
+ el.parentNode.insertBefore(wrapper, el);
578
+ }
579
+ wrapper.appendChild(el);
580
+ }
581
+ });
582
+ return this;
583
+ }
584
+ function unwrap() {
585
+ this.forEach((el) => {
586
+ if (el instanceof Element && el.parentElement) {
587
+ const parent2 = el.parentElement;
588
+ const fragment = document.createDocumentFragment();
589
+ while (parent2.firstChild) {
590
+ fragment.appendChild(parent2.firstChild);
591
+ }
592
+ parent2.replaceWith(fragment);
593
+ }
594
+ });
595
+ return this;
596
+ }
597
+
598
+ // src/modules/dom/traversal.ts
599
+ var traversal_exports = {};
600
+ __export(traversal_exports, {
601
+ children: () => children,
602
+ closest: () => closest,
603
+ descendants: () => descendants,
604
+ descendantsUntil: () => descendantsUntil,
605
+ eq: () => eq,
606
+ filterBy: () => filterBy,
607
+ findAll: () => findAll,
608
+ first: () => first,
609
+ last: () => last,
610
+ next: () => next,
611
+ nextAll: () => nextAll,
612
+ nextSibling: () => nextSibling,
613
+ nextUntil: () => nextUntil,
614
+ not: () => not,
615
+ parent: () => parent,
616
+ parents: () => parents,
617
+ parentsUntil: () => parentsUntil,
618
+ prev: () => prev,
619
+ prevAll: () => prevAll,
620
+ prevSibling: () => prevSibling,
621
+ prevUntil: () => prevUntil,
622
+ sibling: () => sibling,
623
+ siblings: () => siblings
624
+ });
625
+ function closest(selector) {
626
+ const found = [];
627
+ this.forEach((el) => {
628
+ if (el instanceof Element) {
629
+ const match = el.closest(selector);
630
+ if (match) {
631
+ found.push(match);
632
+ }
633
+ }
634
+ });
635
+ const Construction = this.constructor;
636
+ return new Construction([...new Set(found)]);
637
+ }
638
+ function parent() {
639
+ const parents2 = [];
640
+ this.forEach((el) => {
641
+ if (el instanceof Element && el.parentElement) {
642
+ parents2.push(el.parentElement);
643
+ }
644
+ });
645
+ const Construction = this.constructor;
646
+ return new Construction([...new Set(parents2)]);
647
+ }
648
+ function children(selector) {
649
+ let allChildren = [];
650
+ this.forEach((el) => {
651
+ if (el instanceof Element) {
652
+ const kids = Array.from(el.children);
653
+ allChildren = allChildren.concat(kids);
654
+ }
655
+ });
656
+ if (selector) {
657
+ allChildren = allChildren.filter((child) => child.matches(selector));
658
+ }
659
+ const Construction = this.constructor;
660
+ return new Construction(allChildren);
661
+ }
662
+ function findAll(selector) {
663
+ const found = [];
664
+ this.forEach((el) => {
665
+ if (el instanceof Element || el instanceof Document) {
666
+ const matches = el.querySelectorAll(selector);
667
+ matches.forEach((m) => found.push(m));
668
+ }
669
+ });
670
+ const Construction = this.constructor;
671
+ return new Construction([...new Set(found)]);
672
+ }
673
+ function descendants() {
674
+ return this.findAll("*");
675
+ }
676
+ function parents(selector) {
677
+ const ancestors = [];
678
+ this.forEach((el) => {
679
+ if (el instanceof Element) {
680
+ let curr = el.parentElement;
681
+ while (curr) {
682
+ if (!selector || curr.matches(selector)) {
683
+ ancestors.push(curr);
684
+ }
685
+ curr = curr.parentElement;
686
+ }
687
+ }
688
+ });
689
+ const Construction = this.constructor;
690
+ return new Construction([...new Set(ancestors)]);
691
+ }
692
+ function parentsUntil(selector, filter) {
693
+ const ancestors = [];
694
+ this.forEach((el) => {
695
+ if (el instanceof Element) {
696
+ let curr = el.parentElement;
697
+ while (curr && !curr.matches(selector)) {
698
+ if (!filter || curr.matches(filter)) {
699
+ ancestors.push(curr);
700
+ }
701
+ curr = curr.parentElement;
702
+ }
703
+ }
704
+ });
705
+ const Construction = this.constructor;
706
+ return new Construction([...new Set(ancestors)]);
707
+ }
708
+ function descendantsUntil(untilSelector, filter) {
709
+ const found = [];
710
+ const traverse = (parent2) => {
711
+ const kids = parent2.children;
712
+ for (let i = 0; i < kids.length; i++) {
713
+ const child = kids[i];
714
+ if (child.matches(untilSelector)) {
715
+ continue;
716
+ }
717
+ if (!filter || child.matches(filter)) {
718
+ found.push(child);
719
+ }
720
+ traverse(child);
721
+ }
722
+ };
723
+ this.forEach((el) => {
724
+ if (el instanceof Element) traverse(el);
725
+ });
726
+ const Construction = this.constructor;
727
+ return new Construction([...new Set(found)]);
728
+ }
729
+ function next(selector) {
730
+ const found = [];
731
+ this.forEach((el) => {
732
+ if (el instanceof Element && el.nextElementSibling) {
733
+ const nextEl = el.nextElementSibling;
734
+ if (!selector || nextEl.matches(selector)) {
735
+ found.push(nextEl);
736
+ }
737
+ }
738
+ });
739
+ const Construction = this.constructor;
740
+ return new Construction([...new Set(found)]);
741
+ }
742
+ function prev(selector) {
743
+ const found = [];
744
+ this.forEach((el) => {
745
+ if (el instanceof Element && el.previousElementSibling) {
746
+ const prevEl = el.previousElementSibling;
747
+ if (!selector || prevEl.matches(selector)) {
748
+ found.push(prevEl);
749
+ }
750
+ }
751
+ });
752
+ const Construction = this.constructor;
753
+ return new Construction([...new Set(found)]);
754
+ }
755
+ function nextSibling(selector) {
756
+ return this.next(selector);
757
+ }
758
+ function prevSibling(selector) {
759
+ return this.prev(selector);
760
+ }
761
+ function sibling(selector) {
762
+ return this.next(selector);
763
+ }
764
+ function nextAll(selector) {
765
+ const found = [];
766
+ this.forEach((el) => {
767
+ if (el instanceof Element) {
768
+ let curr = el.nextElementSibling;
769
+ while (curr) {
770
+ if (!selector || curr.matches(selector)) {
771
+ found.push(curr);
772
+ }
773
+ curr = curr.nextElementSibling;
774
+ }
775
+ }
776
+ });
777
+ const Construction = this.constructor;
778
+ return new Construction([...new Set(found)]);
779
+ }
780
+ function prevAll(selector) {
781
+ const found = [];
782
+ this.forEach((el) => {
783
+ if (el instanceof Element) {
784
+ let curr = el.previousElementSibling;
785
+ while (curr) {
786
+ if (!selector || curr.matches(selector)) {
787
+ found.push(curr);
788
+ }
789
+ curr = curr.previousElementSibling;
790
+ }
791
+ }
792
+ });
793
+ const Construction = this.constructor;
794
+ return new Construction([...new Set(found)]);
795
+ }
796
+ function siblings(selector) {
797
+ const found = [];
798
+ this.forEach((el) => {
799
+ if (el instanceof Element && el.parentElement) {
800
+ const children2 = Array.from(el.parentElement.children);
801
+ children2.forEach((child) => {
802
+ if (child !== el) {
803
+ if (!selector || child.matches(selector)) {
804
+ found.push(child);
805
+ }
806
+ }
807
+ });
808
+ }
809
+ });
810
+ const Construction = this.constructor;
811
+ return new Construction([...new Set(found)]);
812
+ }
813
+ function nextUntil(untilSelector, filter) {
814
+ const found = [];
815
+ this.forEach((el) => {
816
+ if (el instanceof Element) {
817
+ let curr = el.nextElementSibling;
818
+ while (curr && !curr.matches(untilSelector)) {
819
+ if (!filter || curr.matches(filter)) {
820
+ found.push(curr);
821
+ }
822
+ curr = curr.nextElementSibling;
823
+ }
824
+ }
825
+ });
826
+ const Construction = this.constructor;
827
+ return new Construction([...new Set(found)]);
828
+ }
829
+ function prevUntil(untilSelector, filter) {
830
+ const found = [];
831
+ this.forEach((el) => {
832
+ if (el instanceof Element) {
833
+ let curr = el.previousElementSibling;
834
+ while (curr && !curr.matches(untilSelector)) {
835
+ if (!filter || curr.matches(filter)) {
836
+ found.push(curr);
837
+ }
838
+ curr = curr.previousElementSibling;
839
+ }
840
+ }
841
+ });
842
+ const Construction = this.constructor;
843
+ return new Construction([...new Set(found)]);
844
+ }
845
+ function eq(index) {
846
+ const len = this.length;
847
+ const idx = index < 0 ? len + index : index;
848
+ const el = this[idx];
849
+ const Construction = this.constructor;
850
+ return new Construction(el ? [el] : []);
851
+ }
852
+ function first() {
853
+ return this.eq(0);
854
+ }
855
+ function last() {
856
+ return this.eq(-1);
857
+ }
858
+ function filterBy(selectorOrFn) {
859
+ const found = [];
860
+ this.forEach((el, index) => {
861
+ if (el instanceof Element) {
862
+ if (typeof selectorOrFn === "string") {
863
+ if (el.matches(selectorOrFn)) {
864
+ found.push(el);
865
+ }
866
+ } else if (typeof selectorOrFn === "function") {
867
+ if (selectorOrFn.call(el, index, el)) {
868
+ found.push(el);
869
+ }
870
+ }
871
+ }
872
+ });
873
+ const Construction = this.constructor;
874
+ return new Construction(found);
875
+ }
876
+ function not(selectorOrFn) {
877
+ const found = [];
878
+ this.forEach((el, index) => {
879
+ if (el instanceof Element) {
880
+ if (typeof selectorOrFn === "string") {
881
+ if (!el.matches(selectorOrFn)) {
882
+ found.push(el);
883
+ }
884
+ } else if (typeof selectorOrFn === "function") {
885
+ if (!selectorOrFn.call(el, index, el)) {
886
+ found.push(el);
887
+ }
888
+ }
889
+ }
890
+ });
891
+ const Construction = this.constructor;
892
+ return new Construction(found);
893
+ }
894
+
895
+ // src/modules/dom/states.ts
896
+ var states_exports = {};
897
+ __export(states_exports, {
898
+ checked: () => checked,
899
+ disabled: () => disabled,
900
+ selected: () => selected
901
+ });
902
+ function checked(state) {
903
+ if (state === void 0) {
904
+ const el = this[0];
905
+ return el instanceof HTMLInputElement ? el.checked : false;
906
+ }
907
+ this.forEach((el) => {
908
+ if (el instanceof HTMLInputElement)
909
+ el.checked = state;
910
+ });
911
+ return this;
912
+ }
913
+ function selected(state) {
914
+ if (state === void 0) {
915
+ const el = this[0];
916
+ return el instanceof HTMLOptionElement ? el.selected : false;
917
+ }
918
+ this.forEach((el) => {
919
+ if (el instanceof HTMLOptionElement)
920
+ el.selected = state;
921
+ });
922
+ return this;
923
+ }
924
+ function disabled(state) {
925
+ if (state === void 0) {
926
+ const el = this[0];
927
+ return el instanceof HTMLElement && "disabled" in el ? el.disabled : false;
928
+ }
929
+ this.forEach((el) => {
930
+ if (el instanceof HTMLElement && "disabled" in el) {
931
+ el.disabled = state;
932
+ if (state)
933
+ el.classList.add("disabled");
934
+ else
935
+ el.classList.remove("disabled");
936
+ }
937
+ });
938
+ return this;
939
+ }
940
+
941
+ // src/modules/dom/index.ts
942
+ var domMethods = {
943
+ ...attributes_exports,
944
+ ...content_exports,
945
+ ...manipulation_exports,
946
+ ...traversal_exports,
947
+ ...states_exports
948
+ };
949
+
950
+ // src/modules/effects/slide.ts
951
+ var slide_exports = {};
952
+ __export(slide_exports, {
953
+ slideIn: () => slideIn,
954
+ slideOut: () => slideOut,
955
+ slideToggle: () => slideToggle
956
+ });
957
+ function slideIn(options = {}) {
958
+ const { duration = 300 } = options;
959
+ this.forEach((el) => {
960
+ if (el instanceof HTMLElement) {
961
+ el.style.willChange = "transform";
962
+ el.style.transition = `transform ${duration}ms cubic-bezier(0.4, 0.0, 0.2, 1)`;
963
+ requestAnimationFrame(() => {
964
+ el.style.transform = "translateX(0%)";
965
+ });
966
+ el.setAttribute("data-slide-state", "open");
967
+ }
968
+ });
969
+ return this;
970
+ }
971
+ function slideOut(options = {}) {
972
+ const { direction = "left", duration = 300 } = options;
973
+ const translateValue = direction === "left" ? "-100%" : "100%";
974
+ this.forEach((el) => {
975
+ if (el instanceof HTMLElement) {
976
+ el.style.willChange = "transform";
977
+ el.style.transition = `transform ${duration}ms cubic-bezier(0.4, 0.0, 0.2, 1)`;
978
+ requestAnimationFrame(() => {
979
+ el.style.transform = `translateX(${translateValue})`;
980
+ });
981
+ el.setAttribute("data-slide-state", "closed");
982
+ }
983
+ });
984
+ return this;
985
+ }
986
+ function slideToggle(options = {}) {
987
+ this.forEach((el) => {
988
+ if (el instanceof HTMLElement) {
989
+ const state = el.getAttribute("data-slide-state");
990
+ const currentTransform = el.style.transform;
991
+ if (state === "open" || currentTransform === "translateX(0%)" || window.getComputedStyle(el).display !== "none") {
992
+ const wrapper = new this.constructor(el);
993
+ wrapper.slideOut(options);
994
+ } else {
995
+ const wrapper = new this.constructor(el);
996
+ wrapper.slideIn(options);
997
+ }
998
+ }
999
+ });
1000
+ return this;
1001
+ }
1002
+
1003
+ // src/modules/effects/vertical.ts
1004
+ var vertical_exports = {};
1005
+ __export(vertical_exports, {
1006
+ slideDown: () => slideDown,
1007
+ slideToggleBox: () => slideToggleBox,
1008
+ slideUp: () => slideUp
1009
+ });
1010
+ function slideDown(options = {}) {
1011
+ const { duration = 300, displayType = "block" } = options;
1012
+ this.forEach((el) => {
1013
+ if (el instanceof HTMLElement) {
1014
+ if (window.getComputedStyle(el).display !== "none") return;
1015
+ el.style.display = displayType;
1016
+ const height = el.scrollHeight;
1017
+ el.style.height = "0px";
1018
+ el.style.overflow = "hidden";
1019
+ el.style.transition = `height ${duration}ms ease-in-out`;
1020
+ void el.offsetHeight;
1021
+ el.style.height = height + "px";
1022
+ setTimeout(() => {
1023
+ el.style.height = "auto";
1024
+ el.style.overflow = "visible";
1025
+ el.style.transition = "";
1026
+ }, duration);
1027
+ }
1028
+ });
1029
+ return this;
1030
+ }
1031
+ function slideUp(options = {}) {
1032
+ const { duration = 300 } = options;
1033
+ this.forEach((el) => {
1034
+ if (el instanceof HTMLElement) {
1035
+ el.style.height = el.scrollHeight + "px";
1036
+ el.style.overflow = "hidden";
1037
+ el.style.transition = `height ${duration}ms ease-in-out`;
1038
+ void el.offsetHeight;
1039
+ el.style.height = "0px";
1040
+ setTimeout(() => {
1041
+ el.style.display = "none";
1042
+ el.style.height = "";
1043
+ el.style.overflow = "";
1044
+ el.style.transition = "";
1045
+ }, duration);
1046
+ }
1047
+ });
1048
+ return this;
1049
+ }
1050
+ function slideToggleBox(options = {}) {
1051
+ this.forEach((el) => {
1052
+ if (el instanceof HTMLElement) {
1053
+ const display = window.getComputedStyle(el).display;
1054
+ const wrapper = new this.constructor(el);
1055
+ if (display === "none") {
1056
+ wrapper.slideDown(options);
1057
+ } else {
1058
+ wrapper.slideUp(options);
1059
+ }
1060
+ }
1061
+ });
1062
+ return this;
1063
+ }
1064
+
1065
+ // src/modules/effects/fade.ts
1066
+ var fade_exports = {};
1067
+ __export(fade_exports, {
1068
+ fadeIn: () => fadeIn,
1069
+ fadeOut: () => fadeOut,
1070
+ fadeToggle: () => fadeToggle
1071
+ });
1072
+ function fadeIn(options = {}) {
1073
+ const { duration = 300, displayType = "block" } = options;
1074
+ this.forEach((el) => {
1075
+ if (el instanceof HTMLElement) {
1076
+ el.style.opacity = "0";
1077
+ el.style.display = displayType;
1078
+ el.style.transition = `opacity ${duration}ms ease-in-out`;
1079
+ void el.offsetHeight;
1080
+ requestAnimationFrame(() => {
1081
+ el.style.opacity = "1";
1082
+ });
1083
+ setTimeout(() => {
1084
+ el.style.transition = "";
1085
+ }, duration);
1086
+ }
1087
+ });
1088
+ return this;
1089
+ }
1090
+ function fadeOut(options = {}) {
1091
+ const { duration = 300 } = options;
1092
+ this.forEach((el) => {
1093
+ if (el instanceof HTMLElement) {
1094
+ el.style.opacity = "1";
1095
+ el.style.transition = `opacity ${duration}ms ease-in-out`;
1096
+ void el.offsetHeight;
1097
+ requestAnimationFrame(() => {
1098
+ el.style.opacity = "0";
1099
+ });
1100
+ setTimeout(() => {
1101
+ el.style.display = "none";
1102
+ el.style.transition = "";
1103
+ }, duration);
1104
+ }
1105
+ });
1106
+ return this;
1107
+ }
1108
+ function fadeToggle(options = {}) {
1109
+ this.forEach((el) => {
1110
+ if (el instanceof HTMLElement) {
1111
+ const display = window.getComputedStyle(el).display;
1112
+ const wrapper = new this.constructor(el);
1113
+ if (display === "none") {
1114
+ wrapper.fadeIn(options);
1115
+ } else {
1116
+ wrapper.fadeOut(options);
1117
+ }
1118
+ }
1119
+ });
1120
+ return this;
1121
+ }
1122
+
1123
+ // src/modules/effects/index.ts
1124
+ var effectMethods = {
1125
+ ...slide_exports,
1126
+ ...vertical_exports,
1127
+ ...fade_exports
1128
+ };
1129
+
1130
+ // src/utils.ts
1131
+ function throttle(func, limit) {
1132
+ let inThrottle;
1133
+ return function(...args) {
1134
+ const context = this;
1135
+ if (!inThrottle) {
1136
+ func.apply(context, args);
1137
+ inThrottle = true;
1138
+ setTimeout(() => inThrottle = false, limit);
1139
+ }
1140
+ };
1141
+ }
1142
+ function debounce(func, delay) {
1143
+ let timer;
1144
+ return function(...args) {
1145
+ clearTimeout(timer);
1146
+ timer = setTimeout(() => func.apply(this, args), delay);
1147
+ };
1148
+ }
1149
+
1150
+ // src/modules/http/get.ts
1151
+ var get_exports = {};
1152
+ __export(get_exports, {
1153
+ get: () => get,
1154
+ getText: () => getText
1155
+ });
1156
+ async function get(url) {
1157
+ const response = await fetch(url, {
1158
+ signal: AbortSignal.timeout(5e3)
1159
+ });
1160
+ if (!response.ok) {
1161
+ throw new Error(`HTTP Error: ${response.status}`);
1162
+ }
1163
+ return await response.json();
1164
+ }
1165
+ async function getText(url) {
1166
+ const response = await fetch(url);
1167
+ if (!response.ok) {
1168
+ throw new Error(`HTTP Error: ${response.status}`);
1169
+ }
1170
+ return await response.text();
1171
+ }
1172
+
1173
+ // src/modules/http/post.ts
1174
+ var post_exports = {};
1175
+ __export(post_exports, {
1176
+ post: () => post
1177
+ });
1178
+ async function post(url, body = {}) {
1179
+ const response = await fetch(url, {
1180
+ method: "POST",
1181
+ headers: { "Content-Type": "application/json" },
1182
+ body: JSON.stringify(body)
1183
+ });
1184
+ if (response.status === 204) {
1185
+ const text2 = await response.text();
1186
+ return text2 ? JSON.parse(text2) : {};
1187
+ }
1188
+ if (!response.ok) {
1189
+ throw new Error(`HTTP Error: ${response.status}`);
1190
+ }
1191
+ return await response.json();
1192
+ }
1193
+
1194
+ // src/modules/http/index.ts
1195
+ var http = {
1196
+ ...get_exports,
1197
+ ...post_exports
1198
+ };
1199
+
1200
+ // src/modules/data/arrays.ts
1201
+ var arrays_exports = {};
1202
+ __export(arrays_exports, {
1203
+ add: () => add,
1204
+ chunk: () => chunk,
1205
+ find: () => find,
1206
+ mergeArray: () => mergeArray,
1207
+ remove: () => remove2
1208
+ });
1209
+
1210
+ // src/modules/data/types.ts
1211
+ function checkMatch(value, query, mode) {
1212
+ const valStr = String(value).toLowerCase();
1213
+ const queryStr = String(query).toLowerCase();
1214
+ switch (mode) {
1215
+ case "exact":
1216
+ return valStr === queryStr;
1217
+ case "startsWith":
1218
+ return valStr.startsWith(queryStr);
1219
+ case "endsWith":
1220
+ return valStr.endsWith(queryStr);
1221
+ case "contains":
1222
+ return valStr.includes(queryStr);
1223
+ default:
1224
+ return false;
1225
+ }
1226
+ }
1227
+
1228
+ // src/modules/data/arrays.ts
1229
+ function chunk(array, size) {
1230
+ const chunks = [];
1231
+ for (let i = 0; i < array.length; i += size) {
1232
+ chunks.push(array.slice(i, i + size));
1233
+ }
1234
+ return chunks;
1235
+ }
1236
+ function mergeArray(...arrays) {
1237
+ return [].concat(...arrays);
1238
+ }
1239
+ function add(array, item, index = array.length) {
1240
+ const copy = [...array];
1241
+ const idx = index < 0 ? array.length + index + 1 : index;
1242
+ copy.splice(idx, 0, item);
1243
+ return copy;
1244
+ }
1245
+ var remove2 = {
1246
+ /**
1247
+ * * πŸ‡¬πŸ‡§: Removes an element at a specific index.
1248
+ * * πŸ‡©πŸ‡ͺ: Entfernt ein Element an einem spezifischen Index.
1249
+ * @param array
1250
+ * * πŸ‡¬πŸ‡§: The array.
1251
+ * * πŸ‡©πŸ‡ͺ: Das Array.
1252
+ * @param index
1253
+ * * πŸ‡¬πŸ‡§: The index (negative values allowed).
1254
+ * * πŸ‡©πŸ‡ͺ: Der Index (negativ mΓΆglich).
1255
+ */
1256
+ at(array, index) {
1257
+ const copy = [...array];
1258
+ const idx = index < 0 ? array.length + index : index;
1259
+ if (idx >= 0 && idx < copy.length) {
1260
+ copy.splice(idx, 1);
1261
+ }
1262
+ return copy;
1263
+ },
1264
+ /**
1265
+ * * πŸ‡¬πŸ‡§: Removes the first element.
1266
+ * * πŸ‡©πŸ‡ͺ: Entfernt das erste Element.
1267
+ * @param array
1268
+ * * πŸ‡¬πŸ‡§: The array.
1269
+ * * πŸ‡©πŸ‡ͺ: Das Array.
1270
+ */
1271
+ first(array) {
1272
+ return array.slice(1);
1273
+ },
1274
+ /**
1275
+ * * πŸ‡¬πŸ‡§: Removes the last element.
1276
+ * * πŸ‡©πŸ‡ͺ: Entfernt das letzte Element.
1277
+ * @param array
1278
+ * * πŸ‡¬πŸ‡§: The array.
1279
+ * * πŸ‡©πŸ‡ͺ: Das Array.
1280
+ */
1281
+ last(array) {
1282
+ return array.slice(0, -1);
1283
+ },
1284
+ /**
1285
+ * * πŸ‡¬πŸ‡§: Removes all elements matching a query condition.
1286
+ * * πŸ‡©πŸ‡ͺ: Entfernt alle Elemente, die einer Suchbedingung entsprechen.
1287
+ * @example
1288
+ * remove.byMatch(users, 'Admin', 'exact', 'role')
1289
+ * @param array
1290
+ * * πŸ‡¬πŸ‡§: The array.
1291
+ * * πŸ‡©πŸ‡ͺ: Das Array.
1292
+ * @param query
1293
+ * * πŸ‡¬πŸ‡§: The search query.
1294
+ * * πŸ‡©πŸ‡ͺ: Der Suchbegriff.
1295
+ * @param mode
1296
+ * * πŸ‡¬πŸ‡§: The comparison mode ('exact', 'contains', 'startsWith', 'endsWith').
1297
+ * * πŸ‡©πŸ‡ͺ: Der Vergleichsmodus ('exact', 'contains', 'startsWith', 'endsWith').
1298
+ * @param key
1299
+ * * πŸ‡¬πŸ‡§: (Optional) The object key if it is an array of objects.
1300
+ * * πŸ‡©πŸ‡ͺ: (Optional) Der ObjektschlΓΌssel, falls es ein Array von Objekten ist.
1301
+ */
1302
+ byMatch(array, query, mode = "exact", key) {
1303
+ return array.filter((item) => {
1304
+ const val2 = key ? item[key] : item;
1305
+ return !checkMatch(val2, query, mode);
1306
+ });
1307
+ }
1308
+ };
1309
+ var find = {
1310
+ /**
1311
+ * * πŸ‡¬πŸ‡§: Finds the index of the first match.
1312
+ * * πŸ‡©πŸ‡ͺ: Findet den Index des ersten Treffers.
1313
+ * @param array
1314
+ * * πŸ‡¬πŸ‡§: The array.
1315
+ * * πŸ‡©πŸ‡ͺ: Das Array.
1316
+ * @param query
1317
+ * * πŸ‡¬πŸ‡§: The search query.
1318
+ * * πŸ‡©πŸ‡ͺ: Der Suchbegriff.
1319
+ * @param mode
1320
+ * * πŸ‡¬πŸ‡§: The comparison mode ('exact', 'contains', 'startsWith', 'endsWith').
1321
+ * * πŸ‡©πŸ‡ͺ: Der Vergleichsmodus ('exact', 'contains', 'startsWith', 'endsWith').
1322
+ * @param key
1323
+ * * πŸ‡¬πŸ‡§: (Optional) The object key if it is an array of objects.
1324
+ * * πŸ‡©πŸ‡ͺ: (Optional) Der ObjektschlΓΌssel, falls es ein Array von Objekten ist.
1325
+ * @returns
1326
+ * * πŸ‡¬πŸ‡§: Index or -1.
1327
+ * * πŸ‡©πŸ‡ͺ: Index oder -1.
1328
+ */
1329
+ at(array, query, mode = "exact", key) {
1330
+ return array.findIndex((item) => {
1331
+ const val2 = key ? item[key] : item;
1332
+ return checkMatch(val2, query, mode);
1333
+ });
1334
+ },
1335
+ /**
1336
+ * * πŸ‡¬πŸ‡§: Returns all elements matching the condition (Filter).
1337
+ * * πŸ‡©πŸ‡ͺ: Gibt alle Elemente zurΓΌck, die der Bedingung entsprechen (Filter).
1338
+ * @param array
1339
+ * * πŸ‡¬πŸ‡§: The array.
1340
+ * * πŸ‡©πŸ‡ͺ: Das Array.
1341
+ * @param query
1342
+ * * πŸ‡¬πŸ‡§: The search query.
1343
+ * * πŸ‡©πŸ‡ͺ: Der Suchbegriff.
1344
+ * @param mode
1345
+ * * πŸ‡¬πŸ‡§: The comparison mode ('exact', 'contains', 'startsWith', 'endsWith').
1346
+ * * πŸ‡©πŸ‡ͺ: Der Vergleichsmodus ('exact', 'contains', 'startsWith', 'endsWith').
1347
+ * @param key
1348
+ * * πŸ‡¬πŸ‡§: (Optional) The object key if it is an array of objects.
1349
+ * * πŸ‡©πŸ‡ͺ: (Optional) Der ObjektschlΓΌssel, falls es ein Array von Objekten ist.
1350
+ * @returns
1351
+ * * πŸ‡¬πŸ‡§: All matching elements or -1.
1352
+ * * πŸ‡©πŸ‡ͺ: Alle passenden Elemente oder -1.
1353
+ */
1354
+ all(array, query, mode = "exact", key) {
1355
+ return array.filter((item) => {
1356
+ const val2 = key ? item[key] : item;
1357
+ return checkMatch(val2, query, mode);
1358
+ });
1359
+ },
1360
+ /**
1361
+ * * πŸ‡¬πŸ‡§: Returns the first matching element (or undefined).
1362
+ * * πŸ‡©πŸ‡ͺ: Gibt das erste gefundene Element zurΓΌck (oder undefined).
1363
+ * @param array
1364
+ * * πŸ‡¬πŸ‡§: The array.
1365
+ * * πŸ‡©πŸ‡ͺ: Das Array.
1366
+ * @param query
1367
+ * * πŸ‡¬πŸ‡§: The search query.
1368
+ * * πŸ‡©πŸ‡ͺ: Der Suchbegriff.
1369
+ * @param mode
1370
+ * * πŸ‡¬πŸ‡§: The comparison mode ('exact', 'contains', 'startsWith', 'endsWith').
1371
+ * * πŸ‡©πŸ‡ͺ: Der Vergleichsmodus ('exact', 'contains', 'startsWith', 'endsWith').
1372
+ * @param key
1373
+ * * πŸ‡¬πŸ‡§: (Optional) The object key if it is an array of objects.
1374
+ * * πŸ‡©πŸ‡ͺ: (Optional) Der ObjektschlΓΌssel, falls es ein Array von Objekten ist.
1375
+ * @returns
1376
+ * * πŸ‡¬πŸ‡§: Index or -1.
1377
+ * * πŸ‡©πŸ‡ͺ: Index oder -1.
1378
+ */
1379
+ first(array, query, mode = "exact", key) {
1380
+ return array.find((item) => {
1381
+ const val2 = key ? item[key] : item;
1382
+ return checkMatch(val2, query, mode);
1383
+ });
1384
+ },
1385
+ /**
1386
+ * * πŸ‡¬πŸ‡§: Returns the last matching element (or undefined).
1387
+ * * πŸ‡©πŸ‡ͺ: Gibt das letzte gefundene Element zurΓΌck (oder undefined).
1388
+ * @param array
1389
+ * * πŸ‡¬πŸ‡§: The array.
1390
+ * * πŸ‡©πŸ‡ͺ: Das Array.
1391
+ * @param query
1392
+ * * πŸ‡¬πŸ‡§: The search query.
1393
+ * * πŸ‡©πŸ‡ͺ: Der Suchbegriff.
1394
+ * @param mode
1395
+ * * πŸ‡¬πŸ‡§: The comparison mode ('exact', 'contains', 'startsWith', 'endsWith').
1396
+ * * πŸ‡©πŸ‡ͺ: Der Vergleichsmodus ('exact', 'contains', 'startsWith', 'endsWith').
1397
+ * @param key
1398
+ * * πŸ‡¬πŸ‡§: (Optional) The object key if it is an array of objects.
1399
+ * * πŸ‡©πŸ‡ͺ: (Optional) Der ObjektschlΓΌssel, falls es ein Array von Objekten ist.
1400
+ * @returns
1401
+ * * πŸ‡¬πŸ‡§: Index or -1.
1402
+ * * πŸ‡©πŸ‡ͺ: Index oder -1.
1403
+ */
1404
+ last(array, query, mode = "exact", key) {
1405
+ return [...array].reverse().find((item) => {
1406
+ const val2 = key ? item[key] : item;
1407
+ return checkMatch(val2, query, mode);
1408
+ });
1409
+ },
1410
+ /**
1411
+ * * πŸ‡¬πŸ‡§: Removes all elements matching a query condition.
1412
+ * * πŸ‡©πŸ‡ͺ: Entfernt alle Elemente, die einer Suchbedingung entsprechen.
1413
+ * @example
1414
+ * find.byMatch(users, 'Admin', 'exact', 'role')
1415
+ * @param array
1416
+ * * πŸ‡¬πŸ‡§: The array.
1417
+ * * πŸ‡©πŸ‡ͺ: Das Array.
1418
+ * @param query
1419
+ * * πŸ‡¬πŸ‡§: The search query.
1420
+ * * πŸ‡©πŸ‡ͺ: Der Suchbegriff.
1421
+ * @param mode
1422
+ * * πŸ‡¬πŸ‡§: The comparison mode ('exact', 'contains', 'startsWith', 'endsWith').
1423
+ * * πŸ‡©πŸ‡ͺ: Der Vergleichsmodus ('exact', 'contains', 'startsWith', 'endsWith').
1424
+ * @param key
1425
+ * * πŸ‡¬πŸ‡§: (Optional) The object key if it is an array of objects.
1426
+ * * πŸ‡©πŸ‡ͺ: (Optional) Der ObjektschlΓΌssel, falls es ein Array von Objekten ist.
1427
+ * @returns
1428
+ * * πŸ‡¬πŸ‡§: Index or -1.
1429
+ * * πŸ‡©πŸ‡ͺ: Index oder -1.
1430
+ */
1431
+ byMatch(array, query, mode = "exact", key) {
1432
+ return array.findIndex((item) => {
1433
+ const val2 = key ? item[key] : item;
1434
+ return checkMatch(val2, query, mode);
1435
+ });
1436
+ }
1437
+ };
1438
+
1439
+ // src/modules/data/objects.ts
1440
+ var objects_exports = {};
1441
+ __export(objects_exports, {
1442
+ find: () => find2,
1443
+ get: () => get2,
1444
+ mergeObjects: () => mergeObjects,
1445
+ omit: () => omit,
1446
+ pick: () => pick,
1447
+ set: () => set
1448
+ });
1449
+ function mergeObjects(target, ...sources) {
1450
+ if (!sources.length) return target;
1451
+ const source = sources.shift();
1452
+ if (isObject(target) && isObject(source)) {
1453
+ for (const key in source) {
1454
+ if (key === "__proto__" || key === "constructor") continue;
1455
+ if (isObject(source[key])) {
1456
+ if (!target[key]) Object.assign(target, { [key]: {} });
1457
+ mergeObjects(target[key], source[key]);
1458
+ } else {
1459
+ Object.assign(target, { [key]: source[key] });
1460
+ }
1461
+ }
1462
+ }
1463
+ return mergeObjects(target, ...sources);
1464
+ }
1465
+ function pick(obj, keys) {
1466
+ const ret = {};
1467
+ keys.forEach((key) => {
1468
+ if (key in obj) ret[key] = obj[key];
1469
+ });
1470
+ return ret;
1471
+ }
1472
+ function omit(obj, keys) {
1473
+ const ret = { ...obj };
1474
+ keys.forEach((key) => {
1475
+ delete ret[key];
1476
+ });
1477
+ return ret;
1478
+ }
1479
+ function get2(obj, path) {
1480
+ return path.split(".").reduce((acc, part) => acc && acc[part], obj);
1481
+ }
1482
+ function set(obj, path, value) {
1483
+ const parts = path.split(".");
1484
+ let current = obj;
1485
+ for (let i = 0; i < parts.length - 1; i++) {
1486
+ const part = parts[i];
1487
+ if (!current[part]) current[part] = {};
1488
+ current = current[part];
1489
+ }
1490
+ current[parts[parts.length - 1]] = value;
1491
+ }
1492
+ var find2 = {
1493
+ /**
1494
+ * * πŸ‡¬πŸ‡§: Returns the n-th entry of an object as a [key, value] pair. Supports negative indices.
1495
+ * * πŸ‡©πŸ‡ͺ: Gibt den n-ten Eintrag eines Objekts als [Key, Value]-Paar zurΓΌck. UnterstΓΌtzt negative Indizes.
1496
+ * @example find.at({ a: 1, b: 2 }, 1) // => ['b', 2]
1497
+ * @param obj
1498
+ * * πŸ‡¬πŸ‡§: The object to search.
1499
+ * * πŸ‡©πŸ‡ͺ: Das zu durchsuchende Objekt.
1500
+ * @param index
1501
+ * * πŸ‡¬πŸ‡§: The index (0-based, negative counts from the back).
1502
+ * * πŸ‡©πŸ‡ͺ: Der Index (0-basiert, negativ zΓ€hlt von hinten).
1503
+ * @returns
1504
+ * * πŸ‡¬πŸ‡§: A [key, value] tuple or undefined.
1505
+ * * πŸ‡©πŸ‡ͺ: Ein [Key, Value]-Paar oder undefined.
1506
+ */
1507
+ at(obj, index) {
1508
+ const entries = Object.entries(obj);
1509
+ const idx = index < 0 ? entries.length + index : index;
1510
+ return entries[idx];
1511
+ },
1512
+ /**
1513
+ * * πŸ‡¬πŸ‡§: Finds the first entry where the key or value matches the query.
1514
+ * * πŸ‡©πŸ‡ͺ: Findet den ersten Eintrag, bei dem der SchlΓΌssel oder Wert dem Suchbegriff entspricht.
1515
+ * @example find.first(config, 'admin', 'exact', 'key')
1516
+ * @param obj
1517
+ * * πŸ‡¬πŸ‡§: The object to search.
1518
+ * * πŸ‡©πŸ‡ͺ: Das zu durchsuchende Objekt.
1519
+ * @param query
1520
+ * * πŸ‡¬πŸ‡§: The search query.
1521
+ * * πŸ‡©πŸ‡ͺ: Der Suchbegriff.
1522
+ * @param mode
1523
+ * * πŸ‡¬πŸ‡§: The comparison mode ('exact', 'contains', 'startsWith', 'endsWith').
1524
+ * * πŸ‡©πŸ‡ͺ: Der Vergleichsmodus ('exact', 'contains', 'startsWith', 'endsWith').
1525
+ * @param searchBy
1526
+ * * πŸ‡¬πŸ‡§: Whether to search by 'key' or 'value'.
1527
+ * * πŸ‡©πŸ‡ͺ: Ob nach 'key' oder 'value' gesucht werden soll.
1528
+ * @returns
1529
+ * * πŸ‡¬πŸ‡§: The first matching [key, value] pair or undefined.
1530
+ * * πŸ‡©πŸ‡ͺ: Das erste gefundene [key, value] Paar oder undefined.
1531
+ */
1532
+ first(obj, query, mode = "exact", searchBy = "key") {
1533
+ const entries = Object.entries(obj);
1534
+ return entries.find(([key, val2]) => {
1535
+ const target = searchBy === "key" ? key : val2;
1536
+ return checkMatch(target, query, mode);
1537
+ });
1538
+ },
1539
+ /**
1540
+ * * πŸ‡¬πŸ‡§: Finds the last entry where the key or value matches the query.
1541
+ * * πŸ‡©πŸ‡ͺ: Findet den letzten Eintrag, bei dem der SchlΓΌssel oder Wert dem Suchbegriff entspricht.
1542
+ * @example find.last(config, '.php', 'endsWith', 'key')
1543
+ * @param obj
1544
+ * * πŸ‡¬πŸ‡§: The object to search.
1545
+ * * πŸ‡©πŸ‡ͺ: Das zu durchsuchende Objekt.
1546
+ * @param query
1547
+ * * πŸ‡¬πŸ‡§: The search query.
1548
+ * * πŸ‡©πŸ‡ͺ: Der Suchbegriff.
1549
+ * @param mode
1550
+ * * πŸ‡¬πŸ‡§: The comparison mode ('exact', 'contains', 'startsWith', 'endsWith').
1551
+ * * πŸ‡©πŸ‡ͺ: Der Vergleichsmodus ('exact', 'contains', 'startsWith', 'endsWith').
1552
+ * @param searchBy
1553
+ * * πŸ‡¬πŸ‡§: Whether to search by 'key' or 'value'.
1554
+ * * πŸ‡©πŸ‡ͺ: Ob nach 'key' oder 'value' gesucht werden soll.
1555
+ * @returns
1556
+ * * πŸ‡¬πŸ‡§: The last matching [key, value] pair or undefined.
1557
+ * * πŸ‡©πŸ‡ͺ: Das letzte gefundene [key, value] Paar oder undefined.
1558
+ */
1559
+ last(obj, query, mode = "exact", searchBy = "key") {
1560
+ const entries = Object.entries(obj);
1561
+ return [...entries].reverse().find(([key, val2]) => {
1562
+ const target = searchBy === "key" ? key : val2;
1563
+ return checkMatch(target, query, mode);
1564
+ });
1565
+ },
1566
+ /**
1567
+ * * πŸ‡¬πŸ‡§: Finds all keys matching the query.
1568
+ * * πŸ‡©πŸ‡ͺ: Findet alle SchlΓΌssel (Keys), die auf den Suchbegriff passen.
1569
+ * @example find.key(config, 'api_', 'startsWith')
1570
+ * @param obj
1571
+ * * πŸ‡¬πŸ‡§: The object to search.
1572
+ * * πŸ‡©πŸ‡ͺ: Das zu durchsuchende Objekt.
1573
+ * @param query
1574
+ * * πŸ‡¬πŸ‡§: The search query.
1575
+ * * πŸ‡©πŸ‡ͺ: Der Suchbegriff.
1576
+ * @param mode
1577
+ * * πŸ‡¬πŸ‡§: The comparison mode ('exact', 'contains', 'startsWith', 'endsWith').
1578
+ * * πŸ‡©πŸ‡ͺ: Der Vergleichsmodus ('exact', 'contains', 'startsWith', 'endsWith').
1579
+ * @returns
1580
+ * * πŸ‡¬πŸ‡§: An array of matching keys.
1581
+ * * πŸ‡©πŸ‡ͺ: Ein Array mit den passenden SchlΓΌsseln.
1582
+ */
1583
+ key(obj, query, mode = "exact") {
1584
+ return Object.keys(obj).filter((key) => checkMatch(key, query, mode));
1585
+ },
1586
+ /**
1587
+ * * πŸ‡¬πŸ‡§: Finds all values matching the query.
1588
+ * * πŸ‡©πŸ‡ͺ: Findet alle Werte (Values), die auf den Suchbegriff passen.
1589
+ * @param obj
1590
+ * * πŸ‡¬πŸ‡§: The object to search.
1591
+ * * πŸ‡©πŸ‡ͺ: Das zu durchsuchende Objekt.
1592
+ * @param query
1593
+ * * πŸ‡¬πŸ‡§: The search query.
1594
+ * * πŸ‡©πŸ‡ͺ: Der Suchbegriff.
1595
+ * @param mode
1596
+ * * πŸ‡¬πŸ‡§: The comparison mode ('exact', 'contains', 'startsWith', 'endsWith').
1597
+ * * πŸ‡©πŸ‡ͺ: Der Vergleichsmodus ('exact', 'contains', 'startsWith', 'endsWith').
1598
+ * @returns
1599
+ * * πŸ‡¬πŸ‡§: An array of matching values.
1600
+ * * πŸ‡©πŸ‡ͺ: Ein Array mit den passenden Werten.
1601
+ */
1602
+ value(obj, query, mode = "exact") {
1603
+ return Object.values(obj).filter((val2) => checkMatch(val2, query, mode));
1604
+ }
1605
+ };
1606
+ function isObject(item) {
1607
+ return item && typeof item === "object" && !Array.isArray(item);
1608
+ }
1609
+
1610
+ // src/modules/data/index.ts
1611
+ var data = {
1612
+ arr: arrays_exports,
1613
+ obj: objects_exports
1614
+ };
1615
+
1616
+ // src/index.ts
1617
+ Object.assign(jBase.prototype, cssMethods);
1618
+ Object.assign(jBase.prototype, eventMethods);
1619
+ Object.assign(jBase.prototype, domMethods);
1620
+ Object.assign(jBase.prototype, effectMethods);
1621
+ var init = (selector) => new jBase(selector);
1622
+ var $ = init;
1623
+ var jB = init;
1624
+ var _jB = init;
1625
+ var __jB = init;
1626
+ var _jBase = init;
1627
+ var __jBase = init;
1628
+ var jBase2 = init;
1629
+ // Annotate the CommonJS export names for ESM import in node:
1630
+ 0 && (module.exports = {
1631
+ $,
1632
+ JBaseClass,
1633
+ __jB,
1634
+ __jBase,
1635
+ _jB,
1636
+ _jBase,
1637
+ data,
1638
+ debounce,
1639
+ http,
1640
+ jB,
1641
+ jBase,
1642
+ throttle
1643
+ });
1644
+ /**
1645
+ * @file src/core.ts
1646
+ * @version 2.0.0
1647
+ * @since 2.0.0
1648
+ * @license GPL-3.0-or-later
1649
+ * @copyright Sven Minio 2026
1650
+ * @author Sven Minio <https://sven-minio.de>
1651
+ * @category Core
1652
+ * @description
1653
+ * * πŸ‡¬πŸ‡§: The main jBase class. Handles the selection engine, initialization, and plugin architecture.
1654
+ * * πŸ‡©πŸ‡ͺ: Die Haupt-jBase-Klasse. Behandelt die Selektions-Engine, Initialisierung und Plugin-Architektur.
1655
+ */
1656
+ /**
1657
+ * @file src/modules/css/classes.ts
1658
+ * @version 2.0.0
1659
+ * @since 2.0.0
1660
+ * @license GPL-3.0-or-later
1661
+ * @copyright Sven Minio 2026
1662
+ * @author Sven Minio <https://sven-minio.de>
1663
+ * @category CSS
1664
+ * @description
1665
+ * * πŸ‡¬πŸ‡§: Methods for manipulating CSS classes (add, remove, toggle, has).
1666
+ * * πŸ‡©πŸ‡ͺ: Methoden zur Manipulation von CSS-Klassen (add, remove, toggle, has).
1667
+ * @requires ../../core
1668
+ * * πŸ‡¬πŸ‡§: Depends on the core jBase class for type definitions.
1669
+ * * πŸ‡©πŸ‡ͺ: HΓ€ngt von der Core-jBase-Klasse fΓΌr Typ-Definitionen ab.
1670
+ */
1671
+ /**
1672
+ * @file src/modules/css/styles.ts
1673
+ * @version 2.0.0
1674
+ * @since 2.0.0
1675
+ * @license GPL-3.0-or-later
1676
+ * @copyright Sven Minio 2026
1677
+ * @author Sven Minio <https://sven-minio.de>
1678
+ * @category CSS
1679
+ * @description
1680
+ * * πŸ‡¬πŸ‡§: Methods for getting and setting inline CSS styles.
1681
+ * * πŸ‡©πŸ‡ͺ: Methoden zum Lesen und Setzen von Inline-CSS-Styles.
1682
+ * @requires ../../core
1683
+ * * πŸ‡¬πŸ‡§: Depends on the core jBase class for type definitions.
1684
+ * * πŸ‡©πŸ‡ͺ: HΓ€ngt von der Core-jBase-Klasse fΓΌr Typ-Definitionen ab.
1685
+ */
1686
+ /**
1687
+ * @file src/modules/css/index.ts
1688
+ * @version 2.0.0
1689
+ * @since 2.0.0
1690
+ * @license GPL-3.0-or-later
1691
+ * @copyright Sven Minio 2026
1692
+ * @author Sven Minio <https://sven-minio.de>
1693
+ * @category CSS
1694
+ * @description
1695
+ * * πŸ‡¬πŸ‡§: Central entry point for CSS operations. Aggregates class and style manipulation methods.
1696
+ * * πŸ‡©πŸ‡ͺ: Zentraler Einstiegspunkt fΓΌr CSS-Operationen. Aggregiert Methoden zur Klassen- und Style-Manipulation.
1697
+ * @requires ./classes
1698
+ * * πŸ‡¬πŸ‡§: Class manipulation methods (addClass, removeClass, etc.).
1699
+ * * πŸ‡©πŸ‡ͺ: Methoden zur Klassen-Manipulation (addClass, removeClass, etc.).
1700
+ * @requires ./styles
1701
+ * * πŸ‡¬πŸ‡§: Style manipulation methods (css).
1702
+ * * πŸ‡©πŸ‡ͺ: Methoden zur Style-Manipulation (css).
1703
+ */
1704
+ /**
1705
+ * @file src/modules/events/binding.ts
1706
+ * @version 2.0.0
1707
+ * @since 2.0.0
1708
+ * @license GPL-3.0-or-later
1709
+ * @copyright Sven Minio 2026
1710
+ * @author Sven Minio <https://sven-minio.de>
1711
+ * @category Events
1712
+ * @description
1713
+ * * πŸ‡¬πŸ‡§: Core event binding methods (on, off, trigger). Handles event registration and removal.
1714
+ * * πŸ‡©πŸ‡ͺ: Kern-Methoden fΓΌr Event-Binding (on, off, trigger). Behandelt die Registrierung und Entfernung von Events.
1715
+ * @requires ../../core
1716
+ * * πŸ‡¬πŸ‡§: Depends on the core jBase class for type definitions.
1717
+ * * πŸ‡©πŸ‡ͺ: HΓ€ngt von der Core-jBase-Klasse fΓΌr Typ-Definitionen ab.
1718
+ */
1719
+ /**
1720
+ * @file src/modules/events/mouse.ts
1721
+ * @version 2.0.0
1722
+ * @since 2.0.0
1723
+ * @license GPL-3.0-or-later
1724
+ * @copyright Sven Minio 2026
1725
+ * @author Sven Minio <https://sven-minio.de>
1726
+ * @category Events
1727
+ * @description
1728
+ * * πŸ‡¬πŸ‡§: Methods for handling mouse events (click, dblclick, hover, mouseenter, mouseleave).
1729
+ * * πŸ‡©πŸ‡ͺ: Methoden zur Behandlung von Maus-Events (click, dblclick, hover, mouseenter, mouseleave).
1730
+ * @requires ../../core
1731
+ * * πŸ‡¬πŸ‡§: Depends on the core jBase class for type definitions.
1732
+ * * πŸ‡©πŸ‡ͺ: HΓ€ngt von der Core-jBase-Klasse fΓΌr Typ-Definitionen ab.
1733
+ */
1734
+ /**
1735
+ * @file src/modules/events/lifecycle.ts
1736
+ * @version 2.0.0
1737
+ * @since 2.0.0
1738
+ * @license GPL-3.0-or-later
1739
+ * @copyright Sven Minio 2026
1740
+ * @author Sven Minio <https://sven-minio.de>
1741
+ * @category Events
1742
+ * @description
1743
+ * * πŸ‡¬πŸ‡§: Methods for handling DOM lifecycle events (e.g., ready).
1744
+ * * πŸ‡©πŸ‡ͺ: Methoden zur Behandlung von DOM-Lebenszyklus-Events (z.B. ready).
1745
+ * @requires ../../core
1746
+ * * πŸ‡¬πŸ‡§: Depends on the core jBase class for type definitions.
1747
+ * * πŸ‡©πŸ‡ͺ: HΓ€ngt von der Core-jBase-Klasse fΓΌr Typ-Definitionen ab.
1748
+ */
1749
+ /**
1750
+ * @file src/modules/events/keyboard.ts
1751
+ * @version 2.0.0
1752
+ * @since 2.0.0
1753
+ * @license GPL-3.0-or-later
1754
+ * @copyright Sven Minio 2026
1755
+ * @author Sven Minio <https://sven-minio.de>
1756
+ * @category Events
1757
+ * @description
1758
+ * * πŸ‡¬πŸ‡§: Methods for handling keyboard events (keydown, keyup, keypress).
1759
+ * * πŸ‡©πŸ‡ͺ: Methoden zur Behandlung von Tastatur-Events (keydown, keyup, keypress).
1760
+ * @requires ../../core
1761
+ * * πŸ‡¬πŸ‡§: Depends on the core jBase class for type definitions.
1762
+ * * πŸ‡©πŸ‡ͺ: HΓ€ngt von der Core-jBase-Klasse fΓΌr Typ-Definitionen ab.
1763
+ */
1764
+ /**
1765
+ * @file src/modules/events/form.ts
1766
+ * @version 2.0.0
1767
+ * @since 2.0.0
1768
+ * @license GPL-3.0-or-later
1769
+ * @copyright Sven Minio 2026
1770
+ * @author Sven Minio <https://sven-minio.de>
1771
+ * @category Events
1772
+ * @description
1773
+ * * πŸ‡¬πŸ‡§: Methods for handling form events (submit, change, focus, blur, input).
1774
+ * * πŸ‡©πŸ‡ͺ: Methoden zur Behandlung von Formular-Events (submit, change, focus, blur, input).
1775
+ * @requires ../../core
1776
+ * * πŸ‡¬πŸ‡§: Depends on the core jBase class for type definitions.
1777
+ * * πŸ‡©πŸ‡ͺ: HΓ€ngt von der Core-jBase-Klasse fΓΌr Typ-Definitionen ab.
1778
+ */
1779
+ /**
1780
+ * @file src/modules/events/touch.ts
1781
+ * @version 2.0.0
1782
+ * @since 2.0.0
1783
+ * @license GPL-3.0-or-later
1784
+ * @copyright Sven Minio 2026
1785
+ * @author Sven Minio <https://sven-minio.de>
1786
+ * @category Events
1787
+ * @description
1788
+ * * πŸ‡¬πŸ‡§: Methods for handling touch events (touchstart, touchend, touchmove).
1789
+ * * πŸ‡©πŸ‡ͺ: Methoden zur Behandlung von Touch-Events (touchstart, touchend, touchmove).
1790
+ * @requires ../../core
1791
+ * * πŸ‡¬πŸ‡§: Depends on the core jBase class for type definitions.
1792
+ * * πŸ‡©πŸ‡ͺ: HΓ€ngt von der Core-jBase-Klasse fΓΌr Typ-Definitionen ab.
1793
+ */
1794
+ /**
1795
+ * @file src/modules/events/index.ts
1796
+ * @version 2.0.0
1797
+ * @since 2.0.0
1798
+ * @license GPL-3.0-or-later
1799
+ * @copyright Sven Minio 2026
1800
+ * @author Sven Minio <https://sven-minio.de>
1801
+ * @category Events
1802
+ * @description
1803
+ * * πŸ‡¬πŸ‡§: Central entry point for event handling. Aggregates binding, mouse, lifecycle, keyboard, form, and touch events.
1804
+ * * πŸ‡©πŸ‡ͺ: Zentraler Einstiegspunkt fΓΌr Event-Handling. Aggregiert Binding-, Maus-, Lebenszyklus-, Tastatur-, Formular- und Touch-Events.
1805
+ * @requires ./binding
1806
+ * * πŸ‡¬πŸ‡§: General event binding (on, off).
1807
+ * * πŸ‡©πŸ‡ͺ: Generelle Event-Bindung (on, off).
1808
+ * @requires ./mouse
1809
+ * * πŸ‡¬πŸ‡§: Mouse interaction events (click, hover, etc.).
1810
+ * * πŸ‡©πŸ‡ͺ: Maus-Interaktions-Events (click, hover, etc.).
1811
+ * @requires ./lifecycle
1812
+ * * πŸ‡¬πŸ‡§: DOM lifecycle events (ready).
1813
+ * * πŸ‡©πŸ‡ͺ: DOM-Lebenszyklus-Events (ready).
1814
+ * @requires ./keyboard
1815
+ * * πŸ‡¬πŸ‡§: Keyboard interaction events (keydown, keyup).
1816
+ * * πŸ‡©πŸ‡ͺ: Tastatur-Interaktions-Events (keydown, keyup).
1817
+ * @requires ./form
1818
+ * * πŸ‡¬πŸ‡§: Form handling events (submit, change, input).
1819
+ * * πŸ‡©πŸ‡ͺ: Formular-Verarbeitungs-Events (submit, change, input).
1820
+ * @requires ./touch
1821
+ * * πŸ‡¬πŸ‡§: Touch interaction events.
1822
+ * * πŸ‡©πŸ‡ͺ: Touch-Interaktions-Events.
1823
+ */
1824
+ /**
1825
+ * @file src/modules/dom/attributes.ts
1826
+ * @version 2.0.0
1827
+ * @since 2.0.0
1828
+ * @license GPL-3.0-or-later
1829
+ * @copyright Sven Minio 2026
1830
+ * @author Sven Minio <https://sven-minio.de>
1831
+ * @category DOM
1832
+ * @description
1833
+ * * πŸ‡¬πŸ‡§: Methods for getting and setting HTML attributes and properties (attr, data, val).
1834
+ * * πŸ‡©πŸ‡ͺ: Methoden zum Lesen und Setzen von HTML-Attributen und Eigenschaften (attr, data, val).
1835
+ * @requires ../../core
1836
+ * * πŸ‡¬πŸ‡§: Depends on the core jBase class for type definitions.
1837
+ * * πŸ‡©πŸ‡ͺ: HΓ€ngt von der Core-jBase-Klasse fΓΌr Typ-Definitionen ab.
1838
+ */
1839
+ /**
1840
+ * @file src/modules/dom/content.ts
1841
+ * @version 2.0.0
1842
+ * @since 2.0.0
1843
+ * @license GPL-3.0-or-later
1844
+ * @copyright Sven Minio 2026
1845
+ * @author Sven Minio <https://sven-minio.de>
1846
+ * @category DOM
1847
+ * @description
1848
+ * * πŸ‡¬πŸ‡§: Methods for getting and setting element content (html, text, empty, replaceWith).
1849
+ * * πŸ‡©πŸ‡ͺ: Methoden zum Lesen und Setzen von Elementinhalten (html, text, empty, replaceWith).
1850
+ * @requires ../../core
1851
+ * * πŸ‡¬πŸ‡§: Depends on the core jBase class for type definitions.
1852
+ * * πŸ‡©πŸ‡ͺ: HΓ€ngt von der Core-jBase-Klasse fΓΌr Typ-Definitionen ab.
1853
+ */
1854
+ /**
1855
+ * @file src/modules/dom/manipulation.ts
1856
+ * @version 2.0.0
1857
+ * @since 2.0.0
1858
+ * @license GPL-3.0-or-later
1859
+ * @copyright Sven Minio 2026
1860
+ * @author Sven Minio <https://sven-minio.de>
1861
+ * @category DOM
1862
+ * @description
1863
+ * * πŸ‡¬πŸ‡§: Methods for inserting, moving, and removing elements (append, prepend, remove).
1864
+ * * πŸ‡©πŸ‡ͺ: Methoden zum EinfΓΌgen, Verschieben und Entfernen von Elementen (append, prepend, remove).
1865
+ * @requires ../../core
1866
+ * * πŸ‡¬πŸ‡§: Depends on the core jBase class for type definitions.
1867
+ * * πŸ‡©πŸ‡ͺ: HΓ€ngt von der Core-jBase-Klasse fΓΌr Typ-Definitionen ab.
1868
+ */
1869
+ /**
1870
+ * @file src/modules/dom/traversal.ts
1871
+ * @version 2.0.0
1872
+ * @since 2.0.0
1873
+ * @license GPL-3.0-or-later
1874
+ * @copyright Sven Minio 2026
1875
+ * @author Sven Minio <https://sven-minio.de>
1876
+ * @category DOM
1877
+ * @description
1878
+ * * πŸ‡¬πŸ‡§: Methods for navigating the DOM tree (find, parent, children, siblings).
1879
+ * * πŸ‡©πŸ‡ͺ: Methoden zur Navigation im DOM-Baum (find, parent, children, siblings).
1880
+ * @requires ../../core
1881
+ * * πŸ‡¬πŸ‡§: Depends on the core jBase class for type definitions.
1882
+ * * πŸ‡©πŸ‡ͺ: HΓ€ngt von der Core-jBase-Klasse fΓΌr Typ-Definitionen ab.
1883
+ */
1884
+ /**
1885
+ * @file src/modules/dom/states.ts
1886
+ * @version 2.0.0
1887
+ * @since 2.0.0
1888
+ * @license GPL-3.0-or-later
1889
+ * @copyright Sven Minio 2026
1890
+ * @author Sven Minio <https://sven-minio.de>
1891
+ * @category DOM
1892
+ * @description
1893
+ * * πŸ‡¬πŸ‡§: Methods for checking element states (e.g., visibility, checked, disabled).
1894
+ * * πŸ‡©πŸ‡ͺ: Methoden zur PrΓΌfung von Element-ZustΓ€nden (z.B. Sichtbarkeit, checked, disabled).
1895
+ * @requires ../../core
1896
+ * * πŸ‡¬πŸ‡§: Depends on the core jBase class for type definitions.
1897
+ * * πŸ‡©πŸ‡ͺ: HΓ€ngt von der Core-jBase-Klasse fΓΌr Typ-Definitionen ab.
1898
+ */
1899
+ /**
1900
+ * @file src/modules/dom/index.ts
1901
+ * @version 2.0.0
1902
+ * @since 2.0.0
1903
+ * @license GPL-3.0-or-later
1904
+ * @copyright Sven Minio 2026
1905
+ * @author Sven Minio <https://sven-minio.de>
1906
+ * @category DOM
1907
+ * @description
1908
+ * * πŸ‡¬πŸ‡§: Central entry point for DOM operations. Aggregates methods for attributes, content, manipulation, traversal, and states.
1909
+ * * πŸ‡©πŸ‡ͺ: Zentraler Einstiegspunkt fΓΌr DOM-Operationen. Aggregiert Methoden fΓΌr Attribute, Inhalt, Manipulation, Traversierung und Status.
1910
+ * @requires ./attributes
1911
+ * * πŸ‡¬πŸ‡§: Attribute and value manipulation.
1912
+ * * πŸ‡©πŸ‡ͺ: Attribut- und Wert-Manipulation.
1913
+ * @requires ./content
1914
+ * * πŸ‡¬πŸ‡§: Content handling (html, text).
1915
+ * * πŸ‡©πŸ‡ͺ: Inhalts-Steuerung (html, text).
1916
+ * @requires ./manipulation
1917
+ * * πŸ‡¬πŸ‡§: DOM manipulation (append, remove, etc.).
1918
+ * * πŸ‡©πŸ‡ͺ: DOM-Manipulation (append, remove, etc.).
1919
+ * @requires ./traversal
1920
+ * * πŸ‡¬πŸ‡§: Tree traversal (find, parent, children).
1921
+ * * πŸ‡©πŸ‡ͺ: Baum-Durchquerung (find, parent, children).
1922
+ * @requires ./states
1923
+ * * πŸ‡¬πŸ‡§: State checks (checked, disabled).
1924
+ * * πŸ‡©πŸ‡ͺ: Status-PrΓΌfungen (checked, disabled).
1925
+ */
1926
+ /**
1927
+ * @file src/modules/effects/slide.ts
1928
+ * @version 2.0.0
1929
+ * @since 2.0.0
1930
+ * @license GPL-3.0-or-later
1931
+ * @copyright Sven Minio 2026
1932
+ * @author Sven Minio <https://sven-minio.de>
1933
+ * @category Effects
1934
+ * @description
1935
+ * * πŸ‡¬πŸ‡§: Methods for horizontal sliding effects (slideIn, slideOut, slideToggle).
1936
+ * * πŸ‡©πŸ‡ͺ: Methoden fΓΌr horizontale Slide-Effekte (slideIn, slideOut, slideToggle).
1937
+ * @requires ../../core
1938
+ * * πŸ‡¬πŸ‡§: Depends on the core jBase class for type definitions.
1939
+ * * πŸ‡©πŸ‡ͺ: HΓ€ngt von der Core-jBase-Klasse fΓΌr Typ-Definitionen ab.
1940
+ */
1941
+ /**
1942
+ * @file src/modules/effects/vertical.ts
1943
+ * @version 2.0.0
1944
+ * @since 2.0.0
1945
+ * @license GPL-3.0-or-later
1946
+ * @copyright Sven Minio 2026
1947
+ * @author Sven Minio <https://sven-minio.de>
1948
+ * @category Effects
1949
+ * @description
1950
+ * * πŸ‡¬πŸ‡§: Methods for vertical sliding effects (slideDown, slideUp, slideToggle).
1951
+ * * πŸ‡©πŸ‡ͺ: Methoden fΓΌr vertikale Slide-Effekte (slideDown, slideUp, slideToggle).
1952
+ * @requires ../../core
1953
+ * * πŸ‡¬πŸ‡§: Depends on the core jBase class for type definitions.
1954
+ * * πŸ‡©πŸ‡ͺ: HΓ€ngt von der Core-jBase-Klasse fΓΌr Typ-Definitionen ab.
1955
+ */
1956
+ /**
1957
+ * @file src/modules/effects/fade.ts
1958
+ * @version 2.0.0
1959
+ * @since 2.0.0
1960
+ * @license GPL-3.0-or-later
1961
+ * @copyright Sven Minio 2026
1962
+ * @author Sven Minio <https://sven-minio.de>
1963
+ * @category Effects
1964
+ * @description
1965
+ * * πŸ‡¬πŸ‡§: Methods for fading elements in and out (fadeIn, fadeOut, fadeToggle).
1966
+ * * πŸ‡©πŸ‡ͺ: Methoden zum Ein- und Ausblenden von Elementen (fadeIn, fadeOut, fadeToggle).
1967
+ * @requires ../../core
1968
+ * * πŸ‡¬πŸ‡§: Depends on the core jBase class for type definitions.
1969
+ * * πŸ‡©πŸ‡ͺ: HΓ€ngt von der Core-jBase-Klasse fΓΌr Typ-Definitionen ab.
1970
+ */
1971
+ /**
1972
+ * @file src/modules/effects/index.ts
1973
+ * @version 2.0.0
1974
+ * @since 2.0.0
1975
+ * @license GPL-3.0-or-later
1976
+ * @copyright Sven Minio 2026
1977
+ * @author Sven Minio <https://sven-minio.de>
1978
+ * @category Effects
1979
+ * @description
1980
+ * * πŸ‡¬πŸ‡§: Central entry point for visual effects. Aggregates slide, fade, and vertical animation modules.
1981
+ * * πŸ‡©πŸ‡ͺ: Zentraler Einstiegspunkt fΓΌr visuelle Effekte. Aggregiert Module fΓΌr Slide-, Fade- und vertikale Animationen.
1982
+ * @requires ./slide
1983
+ * * πŸ‡¬πŸ‡§: Horizontal slide effects (slideIn, slideOut).
1984
+ * * πŸ‡©πŸ‡ͺ: Horizontale Slide-Effekte (slideIn, slideOut).
1985
+ * @requires ./vertical
1986
+ * * πŸ‡¬πŸ‡§: Vertical slide effects / Accordion (slideDown, slideUp).
1987
+ * * πŸ‡©πŸ‡ͺ: Vertikale Slide-Effekte / Akkordeon (slideDown, slideUp).
1988
+ * @requires ./fade
1989
+ * * πŸ‡¬πŸ‡§: Opacity fade effects (fadeIn, fadeOut).
1990
+ * * πŸ‡©πŸ‡ͺ: OpazitΓ€ts-Fade-Effekte (fadeIn, fadeOut).
1991
+ */
1992
+ /**
1993
+ * @file src/utils.ts
1994
+ * @version 2.0.0
1995
+ * @since 2.0.0
1996
+ * @license GPL-3.0-or-later
1997
+ * @copyright Sven Minio 2026
1998
+ * @author Sven Minio <https://sven-minio.de>
1999
+ * @category Utilities
2000
+ * @description
2001
+ * * πŸ‡¬πŸ‡§: General utility functions and helpers (e.g., debounce, throttle, type checks).
2002
+ * * πŸ‡©πŸ‡ͺ: Allgemeine Hilfsfunktionen und Helfer (z.B. debounce, throttle, Typ-PrΓΌfungen).
2003
+ */
2004
+ /**
2005
+ * @file src/modules/http/get.ts
2006
+ * @version 2.0.0
2007
+ * @since 2.0.0
2008
+ * @license GPL-3.0-or-later
2009
+ * @copyright Sven Minio 2026
2010
+ * @author Sven Minio <https://sven-minio.de>
2011
+ * @category HTTP
2012
+ * @description
2013
+ * * πŸ‡¬πŸ‡§: Abstraction for HTTP GET requests.
2014
+ * * πŸ‡©πŸ‡ͺ: Abstraktion fΓΌr HTTP GET-Anfragen.
2015
+ * @requires ../../core
2016
+ * * πŸ‡¬πŸ‡§: Depends on the core jBase class for type definitions.
2017
+ * * πŸ‡©πŸ‡ͺ: HΓ€ngt von der Core-jBase-Klasse fΓΌr Typ-Definitionen ab.
2018
+ */
2019
+ /**
2020
+ * @file src/modules/http/post.ts
2021
+ * @version 2.0.0
2022
+ * @since 2.0.0
2023
+ * @license GPL-3.0-or-later
2024
+ * @copyright Sven Minio 2026
2025
+ * @author Sven Minio <https://sven-minio.de>
2026
+ * @category HTTP
2027
+ * * @description
2028
+ * * πŸ‡¬πŸ‡§: Abstraction for HTTP POST requests.
2029
+ * * πŸ‡©πŸ‡ͺ: Abstraktion fΓΌr HTTP POST-Anfragen.
2030
+ * @requires ../../core
2031
+ * * πŸ‡¬πŸ‡§: Depends on the core jBase class for type definitions.
2032
+ * * πŸ‡©πŸ‡ͺ: HΓ€ngt von der Core-jBase-Klasse fΓΌr Typ-Definitionen ab.
2033
+ */
2034
+ /**
2035
+ * @file src/modules/http/index.ts
2036
+ * @version 2.0.0
2037
+ * @since 2.0.0
2038
+ * @license GPL-3.0-or-later
2039
+ * @copyright Sven Minio 2026
2040
+ * @author Sven Minio <https://sven-minio.de>
2041
+ * @category HTTP
2042
+ * @description
2043
+ * * πŸ‡¬πŸ‡§: Central entry point for HTTP requests. Aggregates GET and POST methods.
2044
+ * * πŸ‡©πŸ‡ͺ: Zentraler Einstiegspunkt fΓΌr HTTP-Anfragen. Aggregiert GET- und POST-Methoden.
2045
+ * @requires ./get
2046
+ * * πŸ‡¬πŸ‡§: HTTP GET methods (get, getText).
2047
+ * * πŸ‡©πŸ‡ͺ: HTTP GET-Methoden (get, getText).
2048
+ * @requires ./post
2049
+ * * πŸ‡¬πŸ‡§: HTTP POST methods.
2050
+ * * πŸ‡©πŸ‡ͺ: HTTP POST-Methoden.
2051
+ */
2052
+ /**
2053
+ * @file src/modules/data/types.ts
2054
+ * @version 2.0.0
2055
+ * @since 2.0.0
2056
+ * @license GPL-3.0-or-later
2057
+ * @copyright Sven Minio 2026
2058
+ * @author Sven Minio <https://sven-minio.de>
2059
+ * @category Data
2060
+ * @description
2061
+ * * πŸ‡¬πŸ‡§: Type definitions and validation helpers for data structures.
2062
+ * * πŸ‡©πŸ‡ͺ: Typ-Definitionen und Validierungs-Hilfsmittel fΓΌr Datenstrukturen.
2063
+ */
2064
+ /**
2065
+ * @file src/modules/data/arrays.ts
2066
+ * @version 2.0.0
2067
+ * @since 2.0.0
2068
+ * @license GPL-3.0-or-later
2069
+ * @copyright Sven Minio 2026
2070
+ * @author Sven Minio <https://sven-minio.de>
2071
+ * @category Data
2072
+ * @description
2073
+ * * πŸ‡¬πŸ‡§: Utility functions for array manipulation and data processing.
2074
+ * * πŸ‡©πŸ‡ͺ: Hilfsfunktionen fΓΌr Array-Manipulation und Datenverarbeitung.
2075
+ * @requires ./types
2076
+ * * πŸ‡¬πŸ‡§: Depends on match logic and types.
2077
+ * * πŸ‡©πŸ‡ͺ: HΓ€ngt von Match-Logik und Typen ab.
2078
+ */
2079
+ /**
2080
+ * @file src/modules/data/objects.ts
2081
+ * @version 2.0.0
2082
+ * @since 2.0.0
2083
+ * @license GPL-3.0-or-later
2084
+ * @copyright Sven Minio 2026
2085
+ * @author Sven Minio <https://sven-minio.de>
2086
+ * @category Data
2087
+ * @description
2088
+ * * πŸ‡¬πŸ‡§: Utility functions for object manipulation (e.g., deep merging, extension).
2089
+ * * πŸ‡©πŸ‡ͺ: Hilfsfunktionen fΓΌr Objekt-Manipulation (z.B. Deep Merge, Erweiterung).
2090
+ * @requires ./types
2091
+ * * πŸ‡¬πŸ‡§: Depends on match logic and types.
2092
+ * * πŸ‡©πŸ‡ͺ: HΓ€ngt von Match-Logik und Typen ab.
2093
+ */
2094
+ /**
2095
+ * @file src/modules/data/index.ts
2096
+ * @version 2.0.0
2097
+ * @since 2.0.0
2098
+ * * @license GPL-3.0-or-later
2099
+ * @copyright Sven Minio 2026
2100
+ * @author Sven Minio <https://sven-minio.de>
2101
+ * @category Data
2102
+ * @description
2103
+ * * πŸ‡¬πŸ‡§: Central entry point for data manipulation modules. Aggregates array and object utilities.
2104
+ * * πŸ‡©πŸ‡ͺ: Zentraler Einstiegspunkt fΓΌr Datenmanipulations-Module. Aggregiert Array- und Objekt-Hilfsmethoden.
2105
+ * @requires ./arrays
2106
+ * * πŸ‡¬πŸ‡§: Array manipulation methods.
2107
+ * * πŸ‡©πŸ‡ͺ: Methoden zur Array-Manipulation.
2108
+ * @requires ./objects
2109
+ * * πŸ‡¬πŸ‡§: Object manipulation methods.
2110
+ * * πŸ‡©πŸ‡ͺ: Methoden zur Objekt-Manipulation.
2111
+ */
2112
+ /**
2113
+ * @file src/index.ts
2114
+ * @version 2.0.0
2115
+ * @since 2.0.0
2116
+ * @license GPL-3.0-or-later
2117
+ * @copyright Sven Minio 2026
2118
+ * @author Sven Minio <https://sven-minio.de>
2119
+ * @category Entry Point
2120
+ * @description
2121
+ * * πŸ‡¬πŸ‡§: Main library entry point. Aggregates Core, Types, Utils, and all functional modules into a single export.
2122
+ * * πŸ‡©πŸ‡ͺ: Haupt-Einstiegspunkt der Bibliothek. Aggregiert Core, Types, Utils und alle funktionalen Module in einen einzigen Export.
2123
+ * @requires ./core
2124
+ * * πŸ‡¬πŸ‡§: Core class logic and inheritance.
2125
+ * * πŸ‡©πŸ‡ͺ: Kern-Klassenlogik und Vererbung.
2126
+ * @requires ./types
2127
+ * * πŸ‡¬πŸ‡§: TypeScript type definitions and interfaces.
2128
+ * * πŸ‡©πŸ‡ͺ: TypeScript Typ-Definitionen und Interfaces.
2129
+ * @requires ./utils
2130
+ * * πŸ‡¬πŸ‡§: Helper functions (throttle, debounce).
2131
+ * * πŸ‡©πŸ‡ͺ: Hilfsfunktionen (throttle, debounce).
2132
+ * @requires ./modules/css
2133
+ * * πŸ‡¬πŸ‡§: Style manipulation methods.
2134
+ * * πŸ‡©πŸ‡ͺ: Style-Manipulations-Methoden.
2135
+ * @requires ./modules/events
2136
+ * * πŸ‡¬πŸ‡§: Event handling logic.
2137
+ * * πŸ‡©πŸ‡ͺ: Event-Handling-Logik.
2138
+ * @requires ./modules/dom
2139
+ * * πŸ‡¬πŸ‡§: DOM traversal and manipulation.
2140
+ * * πŸ‡©πŸ‡ͺ: DOM-Traversierung und -Manipulation.
2141
+ * @requires ./modules/effects
2142
+ * * πŸ‡¬πŸ‡§: Visual effects and animations.
2143
+ * * πŸ‡©πŸ‡ͺ: Visuelle Effekte und Animationen.
2144
+ * @requires ./modules/http
2145
+ * * πŸ‡¬πŸ‡§: HTTP client for AJAX requests.
2146
+ * * πŸ‡©πŸ‡ͺ: HTTP-Client fΓΌr AJAX-Anfragen.
2147
+ * @requires ./modules/data
2148
+ * * πŸ‡¬πŸ‡§: Data structure utilities.
2149
+ * * πŸ‡©πŸ‡ͺ: Datenstruktur-Utilities.
2150
+ */