@k37z3r/jbase 2.0.1 β†’ 2.0.3

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 (167) hide show
  1. package/CHANGELOG.md +50 -0
  2. package/README.md +59 -43
  3. package/dist/browser.d.ts +5 -6
  4. package/dist/browser.d.ts.map +1 -1
  5. package/dist/core.d.ts +9 -14
  6. package/dist/core.d.ts.map +1 -1
  7. package/dist/index.cjs +577 -452
  8. package/dist/index.cjs.map +7 -0
  9. package/dist/index.d.ts +304 -603
  10. package/dist/index.d.ts.map +1 -1
  11. package/dist/index.mjs +575 -452
  12. package/dist/index.mjs.map +7 -0
  13. package/dist/jbase.browser.js +338 -281
  14. package/dist/jbase.browser.js.map +7 -0
  15. package/dist/jbase.min.js +3 -2
  16. package/dist/jbase.min.js.map +7 -0
  17. package/dist/modules/css/classes.d.ts +15 -29
  18. package/dist/modules/css/classes.d.ts.map +1 -1
  19. package/dist/modules/css/index.d.ts +5 -9
  20. package/dist/modules/css/index.d.ts.map +1 -1
  21. package/dist/modules/css/styles.d.ts +7 -13
  22. package/dist/modules/css/styles.d.ts.map +1 -1
  23. package/dist/modules/data/arrays.d.ts +96 -64
  24. package/dist/modules/data/arrays.d.ts.map +1 -1
  25. package/dist/modules/data/index.d.ts +5 -9
  26. package/dist/modules/data/index.d.ts.map +1 -1
  27. package/dist/modules/data/objects.d.ts +86 -54
  28. package/dist/modules/data/objects.d.ts.map +1 -1
  29. package/dist/modules/data/types.d.ts +3 -22
  30. package/dist/modules/data/types.d.ts.map +1 -1
  31. package/dist/modules/dom/attributes.d.ts +10 -19
  32. package/dist/modules/dom/attributes.d.ts.map +1 -1
  33. package/dist/modules/dom/content.d.ts +9 -17
  34. package/dist/modules/dom/content.d.ts.map +1 -1
  35. package/dist/modules/dom/index.d.ts +8 -15
  36. package/dist/modules/dom/index.d.ts.map +1 -1
  37. package/dist/modules/dom/manipulation.d.ts +41 -81
  38. package/dist/modules/dom/manipulation.d.ts.map +1 -1
  39. package/dist/modules/dom/states.d.ts +12 -23
  40. package/dist/modules/dom/states.d.ts.map +1 -1
  41. package/dist/modules/dom/traversal.d.ts +64 -127
  42. package/dist/modules/dom/traversal.d.ts.map +1 -1
  43. package/dist/modules/effects/fade.d.ts +13 -31
  44. package/dist/modules/effects/fade.d.ts.map +1 -1
  45. package/dist/modules/effects/index.d.ts +15 -23
  46. package/dist/modules/effects/index.d.ts.map +1 -1
  47. package/dist/modules/effects/slide.d.ts +13 -31
  48. package/dist/modules/effects/slide.d.ts.map +1 -1
  49. package/dist/modules/effects/types.d.ts +33 -0
  50. package/dist/modules/effects/types.d.ts.map +1 -0
  51. package/dist/modules/effects/vertical.d.ts +13 -31
  52. package/dist/modules/effects/vertical.d.ts.map +1 -1
  53. package/dist/modules/events/binding.d.ts +11 -21
  54. package/dist/modules/events/binding.d.ts.map +1 -1
  55. package/dist/modules/events/form.d.ts +18 -35
  56. package/dist/modules/events/form.d.ts.map +1 -1
  57. package/dist/modules/events/index.d.ts +9 -17
  58. package/dist/modules/events/index.d.ts.map +1 -1
  59. package/dist/modules/events/keyboard.d.ts +16 -31
  60. package/dist/modules/events/keyboard.d.ts.map +1 -1
  61. package/dist/modules/events/lifecycle.d.ts +6 -11
  62. package/dist/modules/events/lifecycle.d.ts.map +1 -1
  63. package/dist/modules/events/mouse.d.ts +30 -59
  64. package/dist/modules/events/mouse.d.ts.map +1 -1
  65. package/dist/modules/events/touch.d.ts +15 -29
  66. package/dist/modules/events/touch.d.ts.map +1 -1
  67. package/dist/modules/http/get.d.ts +18 -25
  68. package/dist/modules/http/get.d.ts.map +1 -1
  69. package/dist/modules/http/index.d.ts +11 -15
  70. package/dist/modules/http/index.d.ts.map +1 -1
  71. package/dist/modules/http/post.d.ts +13 -19
  72. package/dist/modules/http/post.d.ts.map +1 -1
  73. package/dist/server.d.ts +15 -0
  74. package/dist/server.d.ts.map +1 -0
  75. package/dist/server.js +2246 -0
  76. package/dist/server.js.map +7 -0
  77. package/dist/types.d.ts +11 -21
  78. package/dist/types.d.ts.map +1 -1
  79. package/dist/utils.d.ts +20 -23
  80. package/dist/utils.d.ts.map +1 -1
  81. package/package.json +14 -4
  82. package/wiki/CSS-Classes-&-Styles.md +128 -0
  83. package/wiki/DATA-Utilities-(Arrays).md +332 -0
  84. package/wiki/DATA-Utilities-(Objects).md +263 -0
  85. package/wiki/DOM-Attributes.md +56 -0
  86. package/wiki/DOM-Content.md +48 -0
  87. package/wiki/DOM-Manipulation.md +272 -0
  88. package/wiki/DOM-States.md +73 -0
  89. package/wiki/DOM-Traversal.md +529 -0
  90. package/wiki/EFFECTS-Fade.md +76 -0
  91. package/wiki/EFFECTS-Slide-(horizontal).md +70 -0
  92. package/wiki/EFFECTS-Slide-(vertical).md +75 -0
  93. package/wiki/EVENTS-Bindings.md +55 -0
  94. package/wiki/EVENTS-Form.md +122 -0
  95. package/wiki/EVENTS-Keyboard.md +98 -0
  96. package/wiki/EVENTS-Lifecycle.md +25 -0
  97. package/wiki/EVENTS-Mouse.md +218 -0
  98. package/wiki/EVENTS-Touch.md +98 -0
  99. package/wiki/HTTP-Requests.md +93 -0
  100. package/wiki/Home.md +118 -0
  101. package/wiki/Installation.md +44 -0
  102. package/wiki/Quick-Start.md +139 -0
  103. package/dist/browser.js +0 -29
  104. package/dist/browser.js.map +0 -1
  105. package/dist/core.js +0 -78
  106. package/dist/core.js.map +0 -1
  107. package/dist/index.js +0 -100
  108. package/dist/index.js.map +0 -1
  109. package/dist/jbase.js +0 -1898
  110. package/dist/modules/css/classes.js +0 -88
  111. package/dist/modules/css/classes.js.map +0 -1
  112. package/dist/modules/css/index.js +0 -33
  113. package/dist/modules/css/index.js.map +0 -1
  114. package/dist/modules/css/styles.js +0 -49
  115. package/dist/modules/css/styles.js.map +0 -1
  116. package/dist/modules/data/arrays.js +0 -177
  117. package/dist/modules/data/arrays.js.map +0 -1
  118. package/dist/modules/data/index.js +0 -33
  119. package/dist/modules/data/index.js.map +0 -1
  120. package/dist/modules/data/objects.js +0 -168
  121. package/dist/modules/data/objects.js.map +0 -1
  122. package/dist/modules/data/types.js +0 -43
  123. package/dist/modules/data/types.js.map +0 -1
  124. package/dist/modules/dom/attributes.js +0 -69
  125. package/dist/modules/dom/attributes.js.map +0 -1
  126. package/dist/modules/dom/content.js +0 -63
  127. package/dist/modules/dom/content.js.map +0 -1
  128. package/dist/modules/dom/index.js +0 -48
  129. package/dist/modules/dom/index.js.map +0 -1
  130. package/dist/modules/dom/manipulation.js +0 -343
  131. package/dist/modules/dom/manipulation.js.map +0 -1
  132. package/dist/modules/dom/states.js +0 -89
  133. package/dist/modules/dom/states.js.map +0 -1
  134. package/dist/modules/dom/traversal.js +0 -527
  135. package/dist/modules/dom/traversal.js.map +0 -1
  136. package/dist/modules/effects/fade.js +0 -104
  137. package/dist/modules/effects/fade.js.map +0 -1
  138. package/dist/modules/effects/index.js +0 -38
  139. package/dist/modules/effects/index.js.map +0 -1
  140. package/dist/modules/effects/slide.js +0 -103
  141. package/dist/modules/effects/slide.js.map +0 -1
  142. package/dist/modules/effects/vertical.js +0 -118
  143. package/dist/modules/effects/vertical.js.map +0 -1
  144. package/dist/modules/events/binding.js +0 -60
  145. package/dist/modules/events/binding.js.map +0 -1
  146. package/dist/modules/events/form.js +0 -106
  147. package/dist/modules/events/form.js.map +0 -1
  148. package/dist/modules/events/index.js +0 -53
  149. package/dist/modules/events/index.js.map +0 -1
  150. package/dist/modules/events/keyboard.js +0 -83
  151. package/dist/modules/events/keyboard.js.map +0 -1
  152. package/dist/modules/events/lifecycle.js +0 -40
  153. package/dist/modules/events/lifecycle.js.map +0 -1
  154. package/dist/modules/events/mouse.js +0 -172
  155. package/dist/modules/events/mouse.js.map +0 -1
  156. package/dist/modules/events/touch.js +0 -74
  157. package/dist/modules/events/touch.js.map +0 -1
  158. package/dist/modules/http/get.js +0 -65
  159. package/dist/modules/http/get.js.map +0 -1
  160. package/dist/modules/http/index.js +0 -42
  161. package/dist/modules/http/index.js.map +0 -1
  162. package/dist/modules/http/post.js +0 -54
  163. package/dist/modules/http/post.js.map +0 -1
  164. package/dist/types.js +0 -15
  165. package/dist/types.js.map +0 -1
  166. package/dist/utils.js +0 -71
  167. package/dist/utils.js.map +0 -1
package/dist/index.mjs CHANGED
@@ -1,6 +1,6 @@
1
1
  /**
2
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.1
3
+ * @version 2.0.3
4
4
  * @homepage https://github.com/k37z3r/jBase-2.0
5
5
  * @author Sven Minio (https://github.com/k37z3r/jBase-2.0)
6
6
  * @license GPL-3.0-or-later
@@ -15,15 +15,21 @@ var __export = (target, all) => {
15
15
  // src/core.ts
16
16
  var jBase = class extends Array {
17
17
  selectorSource = "";
18
+ doc;
18
19
  /**
19
- * * πŸ‡¬πŸ‡§: Initializes a new jBase instance. Analyzes the provided selector and populates the internal array with found or created DOM elements.
20
- * * πŸ‡©πŸ‡ͺ: Initialisiert eine neue jBase-Instanz. Analysiert den ΓΌbergebenen Selektor und fΓΌllt das interne Array mit den gefundenen oder erstellten DOM-Elementen.
20
+ * * Initializes a new jBase instance. Analyzes the provided selector and populates the internal array with found or created DOM elements.
21
21
  * @param selector
22
- * * πŸ‡¬πŸ‡§: The input selector (CSS selector, HTML string, DOM element, or collection).
23
- * * πŸ‡©πŸ‡ͺ: Der Eingabe-Selektor (CSS-Selektor, HTML-String, DOM-Element oder Sammlung).
22
+ * * The input selector (CSS selector, HTML string, DOM element, or collection).
24
23
  */
25
- constructor(selector) {
24
+ constructor(selector, context) {
26
25
  super();
26
+ if (context instanceof Document) {
27
+ this.doc = context;
28
+ } else if (context && context.document) {
29
+ this.doc = context.document;
30
+ } else {
31
+ this.doc = typeof document !== "undefined" ? document : null;
32
+ }
27
33
  if (typeof document === "undefined") {
28
34
  return;
29
35
  }
@@ -42,19 +48,31 @@ var jBase = class extends Array {
42
48
  const el = document.getElementById(trimmed.slice(1));
43
49
  if (el)
44
50
  this.push(el);
51
+ } else if (trimmed.startsWith(".") && !trimmed.includes(" ") && !/[:\[#]/.test(trimmed)) {
52
+ const els = document.getElementsByClassName(trimmed.slice(1));
53
+ for (let i = 0; i < els.length; i++) {
54
+ this.push(els[i]);
55
+ }
56
+ } else if (/^[a-zA-Z0-9]+$/.test(trimmed)) {
57
+ const els = document.getElementsByTagName(trimmed);
58
+ for (let i = 0; i < els.length; i++) {
59
+ this.push(els[i]);
60
+ }
45
61
  } else {
46
- this.push(...Array.from(document.querySelectorAll(selector)));
62
+ try {
63
+ this.push(...Array.from(document.querySelectorAll(selector)));
64
+ } catch (e) {
65
+ console.warn(`jBase: Invalid selector "${selector}"`, e);
66
+ }
47
67
  }
48
68
  } else if (selector instanceof NodeList || Array.isArray(selector)) {
49
69
  this.push(...Array.from(selector));
50
70
  }
51
71
  }
52
72
  /**
53
- * * πŸ‡¬πŸ‡§: Custom serializer for JSON.stringify. Prevents circular references and huge outputs by returning a simplified preview.
54
- * * πŸ‡©πŸ‡ͺ: Benutzerdefinierte Serialisierung fΓΌr JSON.stringify. Verhindert ZirkelbezΓΌge und riesige Ausgaben durch RΓΌckgabe einer vereinfachten Vorschau.
73
+ * * Custom serializer for JSON.stringify. Prevents circular references and huge outputs by returning a simplified preview.
55
74
  * @returns
56
- * * πŸ‡¬πŸ‡§: A simplified object representation for debugging.
57
- * * πŸ‡©πŸ‡ͺ: Eine vereinfachte ObjektreprΓ€sentation fΓΌr das Debugging.
75
+ * * A simplified object representation for debugging.
58
76
  */
59
77
  toJSON() {
60
78
  return {
@@ -111,7 +129,13 @@ function css(property, value) {
111
129
  if (value === void 0) {
112
130
  const el = this[0];
113
131
  if (el instanceof HTMLElement || el instanceof SVGElement) {
114
- return window.getComputedStyle(el)[property];
132
+ const doc = el.ownerDocument;
133
+ const win = doc ? doc.defaultView : null;
134
+ if (win) {
135
+ return win.getComputedStyle(el)[property];
136
+ } else {
137
+ return el.style[property] || "";
138
+ }
115
139
  }
116
140
  return "";
117
141
  }
@@ -215,7 +239,8 @@ __export(lifecycle_exports, {
215
239
  ready: () => ready
216
240
  });
217
241
  function ready(handler) {
218
- if (document.readyState === "complete" || document.readyState === "interactive") {
242
+ const doc = window.document;
243
+ if (doc.readyState === "complete" || doc.readyState === "interactive") {
219
244
  handler();
220
245
  } else {
221
246
  this.on("DOMContentLoaded", handler);
@@ -398,16 +423,22 @@ __export(manipulation_exports, {
398
423
  unwrap: () => unwrap,
399
424
  wrap: () => wrap
400
425
  });
401
- function parseHTML(html2) {
402
- const tmp = document.createElement("div");
426
+ function parseHTML(html2, doc) {
427
+ const tmp = doc.createElement("div");
403
428
  tmp.innerHTML = html2.trim();
404
429
  return tmp.firstElementChild;
405
430
  }
406
- function normalizeToFragment(content) {
407
- const fragment = document.createDocumentFragment();
431
+ function getDoc(collection) {
432
+ if (collection.length > 0 && collection[0] instanceof Element) {
433
+ return collection[0].ownerDocument;
434
+ }
435
+ return typeof document !== "undefined" ? document : null;
436
+ }
437
+ function normalizeToFragment(content, doc) {
438
+ const fragment = doc.createDocumentFragment();
408
439
  const add2 = (item) => {
409
440
  if (typeof item === "string") {
410
- const temp = document.createElement("div");
441
+ const temp = doc.createElement("div");
411
442
  temp.innerHTML = item.trim();
412
443
  while (temp.firstChild) {
413
444
  fragment.appendChild(temp.firstChild);
@@ -445,7 +476,18 @@ function replaceWithClone() {
445
476
  return new this.constructor(newElements);
446
477
  }
447
478
  function append(content) {
448
- const fragment = normalizeToFragment(content);
479
+ if (typeof content === "string") {
480
+ this.forEach((el) => {
481
+ if (el instanceof Element) {
482
+ el.insertAdjacentHTML("beforeend", content);
483
+ }
484
+ });
485
+ return this;
486
+ }
487
+ const doc = getDoc(this);
488
+ if (!doc)
489
+ return this;
490
+ const fragment = normalizeToFragment(content, doc);
449
491
  this.forEach((el, i) => {
450
492
  if (el instanceof Element) {
451
493
  const contentToInsert = i < this.length - 1 ? fragment.cloneNode(true) : fragment;
@@ -455,7 +497,18 @@ function append(content) {
455
497
  return this;
456
498
  }
457
499
  function prepend(content) {
458
- const fragment = normalizeToFragment(content);
500
+ if (typeof content === "string") {
501
+ this.forEach((el) => {
502
+ if (el instanceof Element) {
503
+ el.insertAdjacentHTML("afterbegin", content);
504
+ }
505
+ });
506
+ return this;
507
+ }
508
+ const doc = getDoc(this);
509
+ if (!doc)
510
+ return this;
511
+ const fragment = normalizeToFragment(content, doc);
459
512
  this.forEach((el, i) => {
460
513
  if (el instanceof Element) {
461
514
  const contentToInsert = i < this.length - 1 ? fragment.cloneNode(true) : fragment;
@@ -465,7 +518,18 @@ function prepend(content) {
465
518
  return this;
466
519
  }
467
520
  function before(content) {
468
- const fragment = normalizeToFragment(content);
521
+ if (typeof content === "string") {
522
+ this.forEach((el) => {
523
+ if (el instanceof Element) {
524
+ el.insertAdjacentHTML("beforebegin", content);
525
+ }
526
+ });
527
+ return this;
528
+ }
529
+ const doc = getDoc(this);
530
+ if (!doc)
531
+ return this;
532
+ const fragment = normalizeToFragment(content, doc);
469
533
  this.forEach((el, i) => {
470
534
  if (el instanceof Element) {
471
535
  const contentToInsert = i < this.length - 1 ? fragment.cloneNode(true) : fragment;
@@ -475,7 +539,18 @@ function before(content) {
475
539
  return this;
476
540
  }
477
541
  function after(content) {
478
- const fragment = normalizeToFragment(content);
542
+ if (typeof content === "string") {
543
+ this.forEach((el) => {
544
+ if (el instanceof Element) {
545
+ el.insertAdjacentHTML("afterend", content);
546
+ }
547
+ });
548
+ return this;
549
+ }
550
+ const doc = getDoc(this);
551
+ if (!doc)
552
+ return this;
553
+ const fragment = normalizeToFragment(content, doc);
479
554
  this.forEach((el, i) => {
480
555
  if (el instanceof Element) {
481
556
  const contentToInsert = i < this.length - 1 ? fragment.cloneNode(true) : fragment;
@@ -485,7 +560,10 @@ function after(content) {
485
560
  return this;
486
561
  }
487
562
  function replaceWith(content) {
488
- const fragment = normalizeToFragment(content);
563
+ const doc = getDoc(this);
564
+ if (!doc)
565
+ return this;
566
+ const fragment = normalizeToFragment(content, doc);
489
567
  this.forEach((el, i) => {
490
568
  if (el instanceof Element) {
491
569
  const contentToInsert = i < this.length - 1 ? fragment.cloneNode(true) : fragment;
@@ -495,9 +573,12 @@ function replaceWith(content) {
495
573
  return this;
496
574
  }
497
575
  function appendTo(target) {
498
- const parent2 = typeof target === "string" ? document.querySelector(target) : target;
576
+ const doc = getDoc(this);
577
+ if (!doc)
578
+ return this;
579
+ const parent2 = typeof target === "string" ? doc.querySelector(target) : target;
499
580
  if (parent2 instanceof Element) {
500
- const fragment = document.createDocumentFragment();
581
+ const fragment = doc.createDocumentFragment();
501
582
  this.forEach((el) => {
502
583
  if (el instanceof Node) fragment.appendChild(el);
503
584
  });
@@ -506,9 +587,12 @@ function appendTo(target) {
506
587
  return this;
507
588
  }
508
589
  function prependTo(target) {
509
- const parent2 = typeof target === "string" ? document.querySelector(target) : target;
590
+ const doc = getDoc(this);
591
+ if (!doc)
592
+ return this;
593
+ const parent2 = typeof target === "string" ? doc.querySelector(target) : target;
510
594
  if (parent2 instanceof Element) {
511
- const fragment = document.createDocumentFragment();
595
+ const fragment = doc.createDocumentFragment();
512
596
  this.forEach((el) => {
513
597
  if (el instanceof Node) fragment.appendChild(el);
514
598
  });
@@ -517,9 +601,12 @@ function prependTo(target) {
517
601
  return this;
518
602
  }
519
603
  function insertBefore(target) {
520
- const targetEl = typeof target === "string" ? document.querySelector(target) : target;
604
+ const doc = getDoc(this);
605
+ if (!doc)
606
+ return this;
607
+ const targetEl = typeof target === "string" ? doc.querySelector(target) : target;
521
608
  if (targetEl instanceof Element) {
522
- const fragment = document.createDocumentFragment();
609
+ const fragment = doc.createDocumentFragment();
523
610
  this.forEach((el) => {
524
611
  if (el instanceof Node) fragment.appendChild(el);
525
612
  });
@@ -528,9 +615,12 @@ function insertBefore(target) {
528
615
  return this;
529
616
  }
530
617
  function insertAfter(target) {
531
- const targetEl = typeof target === "string" ? document.querySelector(target) : target;
618
+ const doc = getDoc(this);
619
+ if (!doc)
620
+ return this;
621
+ const targetEl = typeof target === "string" ? doc.querySelector(target) : target;
532
622
  if (targetEl instanceof Element) {
533
- const fragment = document.createDocumentFragment();
623
+ const fragment = doc.createDocumentFragment();
534
624
  this.forEach((el) => {
535
625
  if (el instanceof Node) fragment.appendChild(el);
536
626
  });
@@ -539,9 +629,12 @@ function insertAfter(target) {
539
629
  return this;
540
630
  }
541
631
  function wrap(wrapperHtml) {
632
+ const doc = getDoc(this);
633
+ if (!doc)
634
+ return this;
542
635
  this.forEach((el) => {
543
636
  if (el instanceof Element) {
544
- const wrapper = parseHTML(wrapperHtml);
637
+ const wrapper = parseHTML(wrapperHtml, doc);
545
638
  if (el.parentNode) {
546
639
  el.parentNode.insertBefore(wrapper, el);
547
640
  }
@@ -551,16 +644,22 @@ function wrap(wrapperHtml) {
551
644
  return this;
552
645
  }
553
646
  function unwrap() {
647
+ const doc = getDoc(this);
648
+ if (!doc)
649
+ return this;
650
+ const parents2 = /* @__PURE__ */ new Set();
554
651
  this.forEach((el) => {
555
652
  if (el instanceof Element && el.parentElement) {
556
- const parent2 = el.parentElement;
557
- const fragment = document.createDocumentFragment();
558
- while (parent2.firstChild) {
559
- fragment.appendChild(parent2.firstChild);
560
- }
561
- parent2.replaceWith(fragment);
653
+ parents2.add(el.parentElement);
562
654
  }
563
655
  });
656
+ parents2.forEach((parent2) => {
657
+ const fragment = doc.createDocumentFragment();
658
+ while (parent2.firstChild) {
659
+ fragment.appendChild(parent2.firstChild);
660
+ }
661
+ parent2.replaceWith(fragment);
662
+ });
564
663
  return this;
565
664
  }
566
665
 
@@ -923,7 +1022,34 @@ __export(slide_exports, {
923
1022
  slideOut: () => slideOut,
924
1023
  slideToggle: () => slideToggle
925
1024
  });
1025
+
1026
+ // src/utils.ts
1027
+ function throttle(func, limit) {
1028
+ let inThrottle;
1029
+ return function(...args) {
1030
+ const context = this;
1031
+ if (!inThrottle) {
1032
+ func.apply(context, args);
1033
+ inThrottle = true;
1034
+ setTimeout(() => inThrottle = false, limit);
1035
+ }
1036
+ };
1037
+ }
1038
+ function debounce(func, delay) {
1039
+ let timer;
1040
+ return function(...args) {
1041
+ clearTimeout(timer);
1042
+ timer = setTimeout(() => func.apply(this, args), delay);
1043
+ };
1044
+ }
1045
+ function isBrowser() {
1046
+ return typeof window !== "undefined" && typeof window.requestAnimationFrame !== "undefined";
1047
+ }
1048
+
1049
+ // src/modules/effects/slide.ts
926
1050
  function slideIn(options = {}) {
1051
+ if (!isBrowser())
1052
+ return this;
927
1053
  const { duration = 300 } = options;
928
1054
  this.forEach((el) => {
929
1055
  if (el instanceof HTMLElement) {
@@ -938,6 +1064,8 @@ function slideIn(options = {}) {
938
1064
  return this;
939
1065
  }
940
1066
  function slideOut(options = {}) {
1067
+ if (!isBrowser())
1068
+ return this;
941
1069
  const { direction = "left", duration = 300 } = options;
942
1070
  const translateValue = direction === "left" ? "-100%" : "100%";
943
1071
  this.forEach((el) => {
@@ -953,11 +1081,13 @@ function slideOut(options = {}) {
953
1081
  return this;
954
1082
  }
955
1083
  function slideToggle(options = {}) {
1084
+ if (!isBrowser())
1085
+ return this;
956
1086
  this.forEach((el) => {
957
1087
  if (el instanceof HTMLElement) {
958
1088
  const state = el.getAttribute("data-slide-state");
959
1089
  const currentTransform = el.style.transform;
960
- if (state === "open" || currentTransform === "translateX(0%)" || window.getComputedStyle(el).display !== "none") {
1090
+ if (state === "open" || currentTransform === "translateX(0%)") {
961
1091
  const wrapper = new this.constructor(el);
962
1092
  wrapper.slideOut(options);
963
1093
  } else {
@@ -977,17 +1107,20 @@ __export(vertical_exports, {
977
1107
  slideUp: () => slideUp
978
1108
  });
979
1109
  function slideDown(options = {}) {
1110
+ if (!isBrowser())
1111
+ return this;
980
1112
  const { duration = 300, displayType = "block" } = options;
981
1113
  this.forEach((el) => {
982
1114
  if (el instanceof HTMLElement) {
983
- if (window.getComputedStyle(el).display !== "none") return;
1115
+ if (window.getComputedStyle(el).display !== "none")
1116
+ return;
984
1117
  el.style.display = displayType;
985
1118
  const height = el.scrollHeight;
986
1119
  el.style.height = "0px";
987
1120
  el.style.overflow = "hidden";
988
1121
  el.style.transition = `height ${duration}ms ease-in-out`;
989
1122
  void el.offsetHeight;
990
- el.style.height = height + "px";
1123
+ el.style.height = `${height}px`;
991
1124
  setTimeout(() => {
992
1125
  el.style.height = "auto";
993
1126
  el.style.overflow = "visible";
@@ -998,10 +1131,12 @@ function slideDown(options = {}) {
998
1131
  return this;
999
1132
  }
1000
1133
  function slideUp(options = {}) {
1134
+ if (!isBrowser())
1135
+ return this;
1001
1136
  const { duration = 300 } = options;
1002
1137
  this.forEach((el) => {
1003
1138
  if (el instanceof HTMLElement) {
1004
- el.style.height = el.scrollHeight + "px";
1139
+ el.style.height = `${el.scrollHeight}px`;
1005
1140
  el.style.overflow = "hidden";
1006
1141
  el.style.transition = `height ${duration}ms ease-in-out`;
1007
1142
  void el.offsetHeight;
@@ -1017,6 +1152,8 @@ function slideUp(options = {}) {
1017
1152
  return this;
1018
1153
  }
1019
1154
  function slideToggleBox(options = {}) {
1155
+ if (!isBrowser())
1156
+ return this;
1020
1157
  this.forEach((el) => {
1021
1158
  if (el instanceof HTMLElement) {
1022
1159
  const display = window.getComputedStyle(el).display;
@@ -1039,6 +1176,8 @@ __export(fade_exports, {
1039
1176
  fadeToggle: () => fadeToggle
1040
1177
  });
1041
1178
  function fadeIn(options = {}) {
1179
+ if (!isBrowser())
1180
+ return this;
1042
1181
  const { duration = 300, displayType = "block" } = options;
1043
1182
  this.forEach((el) => {
1044
1183
  if (el instanceof HTMLElement) {
@@ -1057,6 +1196,8 @@ function fadeIn(options = {}) {
1057
1196
  return this;
1058
1197
  }
1059
1198
  function fadeOut(options = {}) {
1199
+ if (!isBrowser())
1200
+ return this;
1060
1201
  const { duration = 300 } = options;
1061
1202
  this.forEach((el) => {
1062
1203
  if (el instanceof HTMLElement) {
@@ -1075,6 +1216,8 @@ function fadeOut(options = {}) {
1075
1216
  return this;
1076
1217
  }
1077
1218
  function fadeToggle(options = {}) {
1219
+ if (!isBrowser())
1220
+ return this;
1078
1221
  this.forEach((el) => {
1079
1222
  if (el instanceof HTMLElement) {
1080
1223
  const display = window.getComputedStyle(el).display;
@@ -1096,47 +1239,45 @@ var effectMethods = {
1096
1239
  ...fade_exports
1097
1240
  };
1098
1241
 
1099
- // src/utils.ts
1100
- function throttle(func, limit) {
1101
- let inThrottle;
1102
- return function(...args) {
1103
- const context = this;
1104
- if (!inThrottle) {
1105
- func.apply(context, args);
1106
- inThrottle = true;
1107
- setTimeout(() => inThrottle = false, limit);
1108
- }
1109
- };
1110
- }
1111
- function debounce(func, delay) {
1112
- let timer;
1113
- return function(...args) {
1114
- clearTimeout(timer);
1115
- timer = setTimeout(() => func.apply(this, args), delay);
1116
- };
1117
- }
1118
-
1119
1242
  // src/modules/http/get.ts
1120
1243
  var get_exports = {};
1121
1244
  __export(get_exports, {
1122
1245
  get: () => get,
1123
1246
  getText: () => getText
1124
1247
  });
1125
- async function get(url) {
1248
+ async function get(url, option) {
1249
+ const fetchOptions = { ...option };
1250
+ if (fetchOptions.method?.toLowerCase() === "post") {
1251
+ fetchOptions.method = "GET";
1252
+ }
1253
+ if (!fetchOptions.signal) {
1254
+ fetchOptions.signal = AbortSignal.timeout(5e3);
1255
+ }
1126
1256
  const response = await fetch(url, {
1127
- signal: AbortSignal.timeout(5e3)
1257
+ ...fetchOptions
1128
1258
  });
1129
1259
  if (!response.ok) {
1130
1260
  throw new Error(`HTTP Error: ${response.status}`);
1131
1261
  }
1132
- return await response.json();
1262
+ const text2 = await response.text();
1263
+ return text2 ? JSON.parse(text2) : {};
1133
1264
  }
1134
- async function getText(url) {
1135
- const response = await fetch(url);
1265
+ async function getText(url, option) {
1266
+ const fetchOptions = { ...option };
1267
+ if (fetchOptions.method?.toLowerCase() !== "get") {
1268
+ fetchOptions.method = "GET";
1269
+ }
1270
+ if (!fetchOptions.signal) {
1271
+ fetchOptions.signal = AbortSignal.timeout(5e3);
1272
+ }
1273
+ const response = await fetch(url, {
1274
+ ...fetchOptions
1275
+ });
1136
1276
  if (!response.ok) {
1137
1277
  throw new Error(`HTTP Error: ${response.status}`);
1138
1278
  }
1139
- return await response.text();
1279
+ const text2 = await response.text();
1280
+ return text2 ? JSON.parse(text2) : {};
1140
1281
  }
1141
1282
 
1142
1283
  // src/modules/http/post.ts
@@ -1144,20 +1285,28 @@ var post_exports = {};
1144
1285
  __export(post_exports, {
1145
1286
  post: () => post
1146
1287
  });
1147
- async function post(url, body = {}) {
1288
+ async function post(url, body = {}, option) {
1289
+ const fetchOptions = { ...option };
1290
+ if (fetchOptions.method?.toLowerCase() !== "post") {
1291
+ fetchOptions.method = "post";
1292
+ }
1293
+ if (!fetchOptions.signal) {
1294
+ fetchOptions.signal = AbortSignal.timeout(5e3);
1295
+ }
1148
1296
  const response = await fetch(url, {
1149
- method: "POST",
1297
+ ...fetchOptions,
1150
1298
  headers: { "Content-Type": "application/json" },
1151
1299
  body: JSON.stringify(body)
1152
1300
  });
1153
1301
  if (response.status === 204) {
1154
- const text2 = await response.text();
1155
- return text2 ? JSON.parse(text2) : {};
1302
+ const text3 = await response.text();
1303
+ return text3 ? JSON.parse(text3) : {};
1156
1304
  }
1157
1305
  if (!response.ok) {
1158
1306
  throw new Error(`HTTP Error: ${response.status}`);
1159
1307
  }
1160
- return await response.json();
1308
+ const text2 = await response.text();
1309
+ return text2 ? JSON.parse(text2) : {};
1161
1310
  }
1162
1311
 
1163
1312
  // src/modules/http/index.ts
@@ -1175,26 +1324,6 @@ __export(arrays_exports, {
1175
1324
  mergeArray: () => mergeArray,
1176
1325
  remove: () => remove2
1177
1326
  });
1178
-
1179
- // src/modules/data/types.ts
1180
- function checkMatch(value, query, mode) {
1181
- const valStr = String(value).toLowerCase();
1182
- const queryStr = String(query).toLowerCase();
1183
- switch (mode) {
1184
- case "exact":
1185
- return valStr === queryStr;
1186
- case "startsWith":
1187
- return valStr.startsWith(queryStr);
1188
- case "endsWith":
1189
- return valStr.endsWith(queryStr);
1190
- case "contains":
1191
- return valStr.includes(queryStr);
1192
- default:
1193
- return false;
1194
- }
1195
- }
1196
-
1197
- // src/modules/data/arrays.ts
1198
1327
  function chunk(array, size) {
1199
1328
  const chunks = [];
1200
1329
  for (let i = 0; i < array.length; i += size) {
@@ -1213,14 +1342,11 @@ function add(array, item, index = array.length) {
1213
1342
  }
1214
1343
  var remove2 = {
1215
1344
  /**
1216
- * * πŸ‡¬πŸ‡§: Removes an element at a specific index.
1217
- * * πŸ‡©πŸ‡ͺ: Entfernt ein Element an einem spezifischen Index.
1345
+ * * Removes an element at a specific index.
1218
1346
  * @param array
1219
- * * πŸ‡¬πŸ‡§: The array.
1220
- * * πŸ‡©πŸ‡ͺ: Das Array.
1347
+ * * The array.
1221
1348
  * @param index
1222
- * * πŸ‡¬πŸ‡§: The index (negative values allowed).
1223
- * * πŸ‡©πŸ‡ͺ: Der Index (negativ mΓΆglich).
1349
+ * * The index (negative values allowed).
1224
1350
  */
1225
1351
  at(array, index) {
1226
1352
  const copy = [...array];
@@ -1231,176 +1357,215 @@ var remove2 = {
1231
1357
  return copy;
1232
1358
  },
1233
1359
  /**
1234
- * * πŸ‡¬πŸ‡§: Removes the first element.
1235
- * * πŸ‡©πŸ‡ͺ: Entfernt das erste Element.
1360
+ * * Removes the first element.
1236
1361
  * @param array
1237
- * * πŸ‡¬πŸ‡§: The array.
1238
- * * πŸ‡©πŸ‡ͺ: Das Array.
1362
+ * * The array.
1239
1363
  */
1240
1364
  first(array) {
1241
1365
  return array.slice(1);
1242
1366
  },
1243
1367
  /**
1244
- * * πŸ‡¬πŸ‡§: Removes the last element.
1245
- * * πŸ‡©πŸ‡ͺ: Entfernt das letzte Element.
1368
+ * * Removes the last element.
1246
1369
  * @param array
1247
- * * πŸ‡¬πŸ‡§: The array.
1248
- * * πŸ‡©πŸ‡ͺ: Das Array.
1370
+ * * The array.
1249
1371
  */
1250
1372
  last(array) {
1251
1373
  return array.slice(0, -1);
1252
1374
  },
1253
1375
  /**
1254
- * * πŸ‡¬πŸ‡§: Removes all elements matching a query condition.
1255
- * * πŸ‡©πŸ‡ͺ: Entfernt alle Elemente, die einer Suchbedingung entsprechen.
1376
+ * * Removes all elements matching a query condition.
1256
1377
  * @example
1257
1378
  * remove.byMatch(users, 'Admin', 'exact', 'role')
1258
1379
  * @param array
1259
- * * πŸ‡¬πŸ‡§: The array.
1260
- * * πŸ‡©πŸ‡ͺ: Das Array.
1380
+ * * The array.
1261
1381
  * @param query
1262
- * * πŸ‡¬πŸ‡§: The search query.
1263
- * * πŸ‡©πŸ‡ͺ: Der Suchbegriff.
1382
+ * * The search query.
1264
1383
  * @param mode
1265
- * * πŸ‡¬πŸ‡§: The comparison mode ('exact', 'contains', 'startsWith', 'endsWith').
1266
- * * πŸ‡©πŸ‡ͺ: Der Vergleichsmodus ('exact', 'contains', 'startsWith', 'endsWith').
1384
+ * * The comparison mode ('exact', 'contains', 'startsWith', 'endsWith').
1267
1385
  * @param key
1268
- * * πŸ‡¬πŸ‡§: (Optional) The object key if it is an array of objects.
1269
- * * πŸ‡©πŸ‡ͺ: (Optional) Der ObjektschlΓΌssel, falls es ein Array von Objekten ist.
1386
+ * * (Optional) The object key if it is an array of objects.
1270
1387
  */
1271
1388
  byMatch(array, query, mode = "exact", key) {
1389
+ const queryStr = String(query).toLowerCase();
1272
1390
  return array.filter((item) => {
1273
1391
  const val2 = key ? item[key] : item;
1274
- return !checkMatch(val2, query, mode);
1392
+ const valStr = String(val2).toLowerCase();
1393
+ switch (mode) {
1394
+ case "exact":
1395
+ return valStr === queryStr;
1396
+ case "startsWith":
1397
+ return valStr.startsWith(queryStr);
1398
+ case "endsWith":
1399
+ return valStr.endsWith(queryStr);
1400
+ case "contains":
1401
+ return valStr.includes(queryStr);
1402
+ default:
1403
+ return false;
1404
+ }
1275
1405
  });
1276
1406
  }
1277
1407
  };
1278
1408
  var find = {
1279
1409
  /**
1280
- * * πŸ‡¬πŸ‡§: Finds the index of the first match.
1281
- * * πŸ‡©πŸ‡ͺ: Findet den Index des ersten Treffers.
1410
+ * * Finds the index of the first match.
1282
1411
  * @param array
1283
- * * πŸ‡¬πŸ‡§: The array.
1284
- * * πŸ‡©πŸ‡ͺ: Das Array.
1412
+ * * The array.
1285
1413
  * @param query
1286
- * * πŸ‡¬πŸ‡§: The search query.
1287
- * * πŸ‡©πŸ‡ͺ: Der Suchbegriff.
1414
+ * * The search query.
1288
1415
  * @param mode
1289
- * * πŸ‡¬πŸ‡§: The comparison mode ('exact', 'contains', 'startsWith', 'endsWith').
1290
- * * πŸ‡©πŸ‡ͺ: Der Vergleichsmodus ('exact', 'contains', 'startsWith', 'endsWith').
1416
+ * * The comparison mode ('exact', 'contains', 'startsWith', 'endsWith').
1291
1417
  * @param key
1292
- * * πŸ‡¬πŸ‡§: (Optional) The object key if it is an array of objects.
1293
- * * πŸ‡©πŸ‡ͺ: (Optional) Der ObjektschlΓΌssel, falls es ein Array von Objekten ist.
1418
+ * * (Optional) The object key if it is an array of objects.
1294
1419
  * @returns
1295
- * * πŸ‡¬πŸ‡§: Index or -1.
1296
- * * πŸ‡©πŸ‡ͺ: Index oder -1.
1420
+ * * Index or -1.
1297
1421
  */
1298
1422
  at(array, query, mode = "exact", key) {
1423
+ const queryStr = String(query).toLowerCase();
1299
1424
  return array.findIndex((item) => {
1300
1425
  const val2 = key ? item[key] : item;
1301
- return checkMatch(val2, query, mode);
1426
+ const valStr = String(val2).toLowerCase();
1427
+ switch (mode) {
1428
+ case "exact":
1429
+ return valStr === queryStr;
1430
+ case "startsWith":
1431
+ return valStr.startsWith(queryStr);
1432
+ case "endsWith":
1433
+ return valStr.endsWith(queryStr);
1434
+ case "contains":
1435
+ return valStr.includes(queryStr);
1436
+ default:
1437
+ return false;
1438
+ }
1302
1439
  });
1303
1440
  },
1304
1441
  /**
1305
- * * πŸ‡¬πŸ‡§: Returns all elements matching the condition (Filter).
1306
- * * πŸ‡©πŸ‡ͺ: Gibt alle Elemente zurΓΌck, die der Bedingung entsprechen (Filter).
1442
+ * * Returns all elements matching the condition (Filter).
1307
1443
  * @param array
1308
- * * πŸ‡¬πŸ‡§: The array.
1309
- * * πŸ‡©πŸ‡ͺ: Das Array.
1444
+ * * The array.
1310
1445
  * @param query
1311
- * * πŸ‡¬πŸ‡§: The search query.
1312
- * * πŸ‡©πŸ‡ͺ: Der Suchbegriff.
1446
+ * * The search query.
1313
1447
  * @param mode
1314
- * * πŸ‡¬πŸ‡§: The comparison mode ('exact', 'contains', 'startsWith', 'endsWith').
1315
- * * πŸ‡©πŸ‡ͺ: Der Vergleichsmodus ('exact', 'contains', 'startsWith', 'endsWith').
1448
+ * * The comparison mode ('exact', 'contains', 'startsWith', 'endsWith').
1316
1449
  * @param key
1317
- * * πŸ‡¬πŸ‡§: (Optional) The object key if it is an array of objects.
1318
- * * πŸ‡©πŸ‡ͺ: (Optional) Der ObjektschlΓΌssel, falls es ein Array von Objekten ist.
1450
+ * * (Optional) The object key if it is an array of objects.
1319
1451
  * @returns
1320
- * * πŸ‡¬πŸ‡§: All matching elements or -1.
1321
- * * πŸ‡©πŸ‡ͺ: Alle passenden Elemente oder -1.
1452
+ * * All matching elements or -1.
1322
1453
  */
1323
1454
  all(array, query, mode = "exact", key) {
1455
+ const queryStr = String(query).toLowerCase();
1324
1456
  return array.filter((item) => {
1325
1457
  const val2 = key ? item[key] : item;
1326
- return checkMatch(val2, query, mode);
1458
+ const valStr = String(val2).toLowerCase();
1459
+ switch (mode) {
1460
+ case "exact":
1461
+ return valStr === queryStr;
1462
+ case "startsWith":
1463
+ return valStr.startsWith(queryStr);
1464
+ case "endsWith":
1465
+ return valStr.endsWith(queryStr);
1466
+ case "contains":
1467
+ return valStr.includes(queryStr);
1468
+ default:
1469
+ return false;
1470
+ }
1327
1471
  });
1328
1472
  },
1329
1473
  /**
1330
- * * πŸ‡¬πŸ‡§: Returns the first matching element (or undefined).
1331
- * * πŸ‡©πŸ‡ͺ: Gibt das erste gefundene Element zurΓΌck (oder undefined).
1474
+ * * Returns the first matching element (or undefined).
1332
1475
  * @param array
1333
- * * πŸ‡¬πŸ‡§: The array.
1334
- * * πŸ‡©πŸ‡ͺ: Das Array.
1476
+ * * The array.
1335
1477
  * @param query
1336
- * * πŸ‡¬πŸ‡§: The search query.
1337
- * * πŸ‡©πŸ‡ͺ: Der Suchbegriff.
1478
+ * * The search query.
1338
1479
  * @param mode
1339
- * * πŸ‡¬πŸ‡§: The comparison mode ('exact', 'contains', 'startsWith', 'endsWith').
1340
- * * πŸ‡©πŸ‡ͺ: Der Vergleichsmodus ('exact', 'contains', 'startsWith', 'endsWith').
1480
+ * * The comparison mode ('exact', 'contains', 'startsWith', 'endsWith').
1341
1481
  * @param key
1342
- * * πŸ‡¬πŸ‡§: (Optional) The object key if it is an array of objects.
1343
- * * πŸ‡©πŸ‡ͺ: (Optional) Der ObjektschlΓΌssel, falls es ein Array von Objekten ist.
1482
+ * * (Optional) The object key if it is an array of objects.
1344
1483
  * @returns
1345
- * * πŸ‡¬πŸ‡§: Index or -1.
1346
- * * πŸ‡©πŸ‡ͺ: Index oder -1.
1484
+ * * Index or -1.
1347
1485
  */
1348
1486
  first(array, query, mode = "exact", key) {
1487
+ const queryStr = String(query).toLowerCase();
1349
1488
  return array.find((item) => {
1350
1489
  const val2 = key ? item[key] : item;
1351
- return checkMatch(val2, query, mode);
1490
+ const valStr = String(val2).toLowerCase();
1491
+ switch (mode) {
1492
+ case "exact":
1493
+ return valStr === queryStr;
1494
+ case "startsWith":
1495
+ return valStr.startsWith(queryStr);
1496
+ case "endsWith":
1497
+ return valStr.endsWith(queryStr);
1498
+ case "contains":
1499
+ return valStr.includes(queryStr);
1500
+ default:
1501
+ return false;
1502
+ }
1352
1503
  });
1353
1504
  },
1354
1505
  /**
1355
- * * πŸ‡¬πŸ‡§: Returns the last matching element (or undefined).
1356
- * * πŸ‡©πŸ‡ͺ: Gibt das letzte gefundene Element zurΓΌck (oder undefined).
1506
+ * * Returns the last matching element (or undefined).
1357
1507
  * @param array
1358
- * * πŸ‡¬πŸ‡§: The array.
1359
- * * πŸ‡©πŸ‡ͺ: Das Array.
1508
+ * * The array.
1360
1509
  * @param query
1361
- * * πŸ‡¬πŸ‡§: The search query.
1362
- * * πŸ‡©πŸ‡ͺ: Der Suchbegriff.
1510
+ * * The search query.
1363
1511
  * @param mode
1364
- * * πŸ‡¬πŸ‡§: The comparison mode ('exact', 'contains', 'startsWith', 'endsWith').
1365
- * * πŸ‡©πŸ‡ͺ: Der Vergleichsmodus ('exact', 'contains', 'startsWith', 'endsWith').
1512
+ * * The comparison mode ('exact', 'contains', 'startsWith', 'endsWith').
1366
1513
  * @param key
1367
- * * πŸ‡¬πŸ‡§: (Optional) The object key if it is an array of objects.
1368
- * * πŸ‡©πŸ‡ͺ: (Optional) Der ObjektschlΓΌssel, falls es ein Array von Objekten ist.
1514
+ * * (Optional) The object key if it is an array of objects.
1369
1515
  * @returns
1370
- * * πŸ‡¬πŸ‡§: Index or -1.
1371
- * * πŸ‡©πŸ‡ͺ: Index oder -1.
1516
+ * * Index or -1.
1372
1517
  */
1373
1518
  last(array, query, mode = "exact", key) {
1519
+ const queryStr = String(query).toLowerCase();
1374
1520
  return [...array].reverse().find((item) => {
1375
1521
  const val2 = key ? item[key] : item;
1376
- return checkMatch(val2, query, mode);
1522
+ const valStr = String(val2).toLowerCase();
1523
+ switch (mode) {
1524
+ case "exact":
1525
+ return valStr === queryStr;
1526
+ case "startsWith":
1527
+ return valStr.startsWith(queryStr);
1528
+ case "endsWith":
1529
+ return valStr.endsWith(queryStr);
1530
+ case "contains":
1531
+ return valStr.includes(queryStr);
1532
+ default:
1533
+ return false;
1534
+ }
1377
1535
  });
1378
1536
  },
1379
1537
  /**
1380
- * * πŸ‡¬πŸ‡§: Removes all elements matching a query condition.
1381
- * * πŸ‡©πŸ‡ͺ: Entfernt alle Elemente, die einer Suchbedingung entsprechen.
1538
+ * * Removes all elements matching a query condition.
1382
1539
  * @example
1383
1540
  * find.byMatch(users, 'Admin', 'exact', 'role')
1384
1541
  * @param array
1385
- * * πŸ‡¬πŸ‡§: The array.
1386
- * * πŸ‡©πŸ‡ͺ: Das Array.
1542
+ * * The array.
1387
1543
  * @param query
1388
- * * πŸ‡¬πŸ‡§: The search query.
1389
- * * πŸ‡©πŸ‡ͺ: Der Suchbegriff.
1544
+ * * The search query.
1390
1545
  * @param mode
1391
- * * πŸ‡¬πŸ‡§: The comparison mode ('exact', 'contains', 'startsWith', 'endsWith').
1392
- * * πŸ‡©πŸ‡ͺ: Der Vergleichsmodus ('exact', 'contains', 'startsWith', 'endsWith').
1546
+ * * The comparison mode ('exact', 'contains', 'startsWith', 'endsWith').
1393
1547
  * @param key
1394
- * * πŸ‡¬πŸ‡§: (Optional) The object key if it is an array of objects.
1395
- * * πŸ‡©πŸ‡ͺ: (Optional) Der ObjektschlΓΌssel, falls es ein Array von Objekten ist.
1548
+ * * (Optional) The object key if it is an array of objects.
1396
1549
  * @returns
1397
- * * πŸ‡¬πŸ‡§: Index or -1.
1398
- * * πŸ‡©πŸ‡ͺ: Index oder -1.
1550
+ * * Index or -1.
1399
1551
  */
1400
1552
  byMatch(array, query, mode = "exact", key) {
1553
+ const queryStr = String(query).toLowerCase();
1401
1554
  return array.findIndex((item) => {
1402
1555
  const val2 = key ? item[key] : item;
1403
- return checkMatch(val2, query, mode);
1556
+ const valStr = String(val2).toLowerCase();
1557
+ switch (mode) {
1558
+ case "exact":
1559
+ return valStr === queryStr;
1560
+ case "startsWith":
1561
+ return valStr.startsWith(queryStr);
1562
+ case "endsWith":
1563
+ return valStr.endsWith(queryStr);
1564
+ case "contains":
1565
+ return valStr.includes(queryStr);
1566
+ default:
1567
+ return false;
1568
+ }
1404
1569
  });
1405
1570
  }
1406
1571
  };
@@ -1416,16 +1581,18 @@ __export(objects_exports, {
1416
1581
  set: () => set
1417
1582
  });
1418
1583
  function mergeObjects(target, ...sources) {
1419
- if (!sources.length) return target;
1584
+ if (!sources.length)
1585
+ return target;
1420
1586
  const source = sources.shift();
1421
1587
  if (isObject(target) && isObject(source)) {
1422
1588
  for (const key in source) {
1423
- if (key === "__proto__" || key === "constructor") continue;
1589
+ if (key === "__proto__" || key === "constructor")
1590
+ continue;
1424
1591
  if (isObject(source[key])) {
1425
- if (!target[key]) Object.assign(target, { [key]: {} });
1592
+ if (!target[key]) target[key] = {};
1426
1593
  mergeObjects(target[key], source[key]);
1427
1594
  } else {
1428
- Object.assign(target, { [key]: source[key] });
1595
+ target[key] = source[key];
1429
1596
  }
1430
1597
  }
1431
1598
  }
@@ -1460,18 +1627,14 @@ function set(obj, path, value) {
1460
1627
  }
1461
1628
  var find2 = {
1462
1629
  /**
1463
- * * πŸ‡¬πŸ‡§: Returns the n-th entry of an object as a [key, value] pair. Supports negative indices.
1464
- * * πŸ‡©πŸ‡ͺ: Gibt den n-ten Eintrag eines Objekts als [Key, Value]-Paar zurΓΌck. UnterstΓΌtzt negative Indizes.
1465
- * @example find.at({ a: 1, b: 2 }, 1) // => ['b', 2]
1630
+ * * Returns the n-th entry of an object as a [key, value] pair. Supports negative indices.
1631
+ * @example find.at({ a: 1, b: 2 }, 1) => ['b', 2]
1466
1632
  * @param obj
1467
- * * πŸ‡¬πŸ‡§: The object to search.
1468
- * * πŸ‡©πŸ‡ͺ: Das zu durchsuchende Objekt.
1633
+ * * The object to search.
1469
1634
  * @param index
1470
- * * πŸ‡¬πŸ‡§: The index (0-based, negative counts from the back).
1471
- * * πŸ‡©πŸ‡ͺ: Der Index (0-basiert, negativ zΓ€hlt von hinten).
1635
+ * * The index (0-based, negative counts from the back).
1472
1636
  * @returns
1473
- * * πŸ‡¬πŸ‡§: A [key, value] tuple or undefined.
1474
- * * πŸ‡©πŸ‡ͺ: Ein [Key, Value]-Paar oder undefined.
1637
+ * * A [key, value] tuple or undefined.
1475
1638
  */
1476
1639
  at(obj, index) {
1477
1640
  const entries = Object.entries(obj);
@@ -1479,97 +1642,131 @@ var find2 = {
1479
1642
  return entries[idx];
1480
1643
  },
1481
1644
  /**
1482
- * * πŸ‡¬πŸ‡§: Finds the first entry where the key or value matches the query.
1483
- * * πŸ‡©πŸ‡ͺ: Findet den ersten Eintrag, bei dem der SchlΓΌssel oder Wert dem Suchbegriff entspricht.
1645
+ * * Finds the first entry where the key or value matches the query.
1484
1646
  * @example find.first(config, 'admin', 'exact', 'key')
1485
1647
  * @param obj
1486
- * * πŸ‡¬πŸ‡§: The object to search.
1487
- * * πŸ‡©πŸ‡ͺ: Das zu durchsuchende Objekt.
1648
+ * * The object to search.
1488
1649
  * @param query
1489
- * * πŸ‡¬πŸ‡§: The search query.
1490
- * * πŸ‡©πŸ‡ͺ: Der Suchbegriff.
1650
+ * * The search query.
1491
1651
  * @param mode
1492
- * * πŸ‡¬πŸ‡§: The comparison mode ('exact', 'contains', 'startsWith', 'endsWith').
1493
- * * πŸ‡©πŸ‡ͺ: Der Vergleichsmodus ('exact', 'contains', 'startsWith', 'endsWith').
1652
+ * * The comparison mode ('exact', 'contains', 'startsWith', 'endsWith').
1494
1653
  * @param searchBy
1495
- * * πŸ‡¬πŸ‡§: Whether to search by 'key' or 'value'.
1496
- * * πŸ‡©πŸ‡ͺ: Ob nach 'key' oder 'value' gesucht werden soll.
1654
+ * * Whether to search by 'key' or 'value'.
1497
1655
  * @returns
1498
- * * πŸ‡¬πŸ‡§: The first matching [key, value] pair or undefined.
1499
- * * πŸ‡©πŸ‡ͺ: Das erste gefundene [key, value] Paar oder undefined.
1656
+ * * The first matching [key, value] pair or undefined.
1500
1657
  */
1501
1658
  first(obj, query, mode = "exact", searchBy = "key") {
1502
1659
  const entries = Object.entries(obj);
1660
+ const queryStr = String(query).toLowerCase();
1503
1661
  return entries.find(([key, val2]) => {
1504
1662
  const target = searchBy === "key" ? key : val2;
1505
- return checkMatch(target, query, mode);
1663
+ const valStr = String(target).toLowerCase();
1664
+ switch (mode) {
1665
+ case "exact":
1666
+ return valStr === queryStr;
1667
+ case "startsWith":
1668
+ return valStr.startsWith(queryStr);
1669
+ case "endsWith":
1670
+ return valStr.endsWith(queryStr);
1671
+ case "contains":
1672
+ return valStr.includes(queryStr);
1673
+ default:
1674
+ return false;
1675
+ }
1506
1676
  });
1507
1677
  },
1508
1678
  /**
1509
- * * πŸ‡¬πŸ‡§: Finds the last entry where the key or value matches the query.
1510
- * * πŸ‡©πŸ‡ͺ: Findet den letzten Eintrag, bei dem der SchlΓΌssel oder Wert dem Suchbegriff entspricht.
1679
+ * * Finds the last entry where the key or value matches the query.
1511
1680
  * @example find.last(config, '.php', 'endsWith', 'key')
1512
1681
  * @param obj
1513
- * * πŸ‡¬πŸ‡§: The object to search.
1514
- * * πŸ‡©πŸ‡ͺ: Das zu durchsuchende Objekt.
1682
+ * * The object to search.
1515
1683
  * @param query
1516
- * * πŸ‡¬πŸ‡§: The search query.
1517
- * * πŸ‡©πŸ‡ͺ: Der Suchbegriff.
1684
+ * * The search query.
1518
1685
  * @param mode
1519
- * * πŸ‡¬πŸ‡§: The comparison mode ('exact', 'contains', 'startsWith', 'endsWith').
1520
- * * πŸ‡©πŸ‡ͺ: Der Vergleichsmodus ('exact', 'contains', 'startsWith', 'endsWith').
1686
+ * * The comparison mode ('exact', 'contains', 'startsWith', 'endsWith').
1521
1687
  * @param searchBy
1522
- * * πŸ‡¬πŸ‡§: Whether to search by 'key' or 'value'.
1523
- * * πŸ‡©πŸ‡ͺ: Ob nach 'key' oder 'value' gesucht werden soll.
1688
+ * * Whether to search by 'key' or 'value'.
1524
1689
  * @returns
1525
- * * πŸ‡¬πŸ‡§: The last matching [key, value] pair or undefined.
1526
- * * πŸ‡©πŸ‡ͺ: Das letzte gefundene [key, value] Paar oder undefined.
1690
+ * * The last matching [key, value] pair or undefined.
1527
1691
  */
1528
1692
  last(obj, query, mode = "exact", searchBy = "key") {
1529
1693
  const entries = Object.entries(obj);
1694
+ const queryStr = String(query).toLowerCase();
1530
1695
  return [...entries].reverse().find(([key, val2]) => {
1531
1696
  const target = searchBy === "key" ? key : val2;
1532
- return checkMatch(target, query, mode);
1697
+ const valStr = String(target).toLowerCase();
1698
+ switch (mode) {
1699
+ case "exact":
1700
+ return valStr === queryStr;
1701
+ case "startsWith":
1702
+ return valStr.startsWith(queryStr);
1703
+ case "endsWith":
1704
+ return valStr.endsWith(queryStr);
1705
+ case "contains":
1706
+ return valStr.includes(queryStr);
1707
+ default:
1708
+ return false;
1709
+ }
1533
1710
  });
1534
1711
  },
1535
1712
  /**
1536
- * * πŸ‡¬πŸ‡§: Finds all keys matching the query.
1537
- * * πŸ‡©πŸ‡ͺ: Findet alle SchlΓΌssel (Keys), die auf den Suchbegriff passen.
1713
+ * * Finds all keys matching the query.
1538
1714
  * @example find.key(config, 'api_', 'startsWith')
1539
1715
  * @param obj
1540
- * * πŸ‡¬πŸ‡§: The object to search.
1541
- * * πŸ‡©πŸ‡ͺ: Das zu durchsuchende Objekt.
1716
+ * * The object to search.
1542
1717
  * @param query
1543
- * * πŸ‡¬πŸ‡§: The search query.
1544
- * * πŸ‡©πŸ‡ͺ: Der Suchbegriff.
1718
+ * * The search query.
1545
1719
  * @param mode
1546
- * * πŸ‡¬πŸ‡§: The comparison mode ('exact', 'contains', 'startsWith', 'endsWith').
1547
- * * πŸ‡©πŸ‡ͺ: Der Vergleichsmodus ('exact', 'contains', 'startsWith', 'endsWith').
1720
+ * * The comparison mode ('exact', 'contains', 'startsWith', 'endsWith').
1548
1721
  * @returns
1549
- * * πŸ‡¬πŸ‡§: An array of matching keys.
1550
- * * πŸ‡©πŸ‡ͺ: Ein Array mit den passenden SchlΓΌsseln.
1722
+ * * An array of matching keys.
1551
1723
  */
1552
1724
  key(obj, query, mode = "exact") {
1553
- return Object.keys(obj).filter((key) => checkMatch(key, query, mode));
1725
+ const queryStr = String(query).toLowerCase();
1726
+ return Object.keys(obj).filter((key) => {
1727
+ const valStr = String(key).toLowerCase();
1728
+ switch (mode) {
1729
+ case "exact":
1730
+ return valStr === queryStr;
1731
+ case "startsWith":
1732
+ return valStr.startsWith(queryStr);
1733
+ case "endsWith":
1734
+ return valStr.endsWith(queryStr);
1735
+ case "contains":
1736
+ return valStr.includes(queryStr);
1737
+ default:
1738
+ return false;
1739
+ }
1740
+ });
1554
1741
  },
1555
1742
  /**
1556
- * * πŸ‡¬πŸ‡§: Finds all values matching the query.
1557
- * * πŸ‡©πŸ‡ͺ: Findet alle Werte (Values), die auf den Suchbegriff passen.
1743
+ * * Finds all values matching the query.
1558
1744
  * @param obj
1559
- * * πŸ‡¬πŸ‡§: The object to search.
1560
- * * πŸ‡©πŸ‡ͺ: Das zu durchsuchende Objekt.
1745
+ * * The object to search.
1561
1746
  * @param query
1562
- * * πŸ‡¬πŸ‡§: The search query.
1563
- * * πŸ‡©πŸ‡ͺ: Der Suchbegriff.
1747
+ * * The search query.
1564
1748
  * @param mode
1565
- * * πŸ‡¬πŸ‡§: The comparison mode ('exact', 'contains', 'startsWith', 'endsWith').
1566
- * * πŸ‡©πŸ‡ͺ: Der Vergleichsmodus ('exact', 'contains', 'startsWith', 'endsWith').
1749
+ * * The comparison mode ('exact', 'contains', 'startsWith', 'endsWith').
1567
1750
  * @returns
1568
- * * πŸ‡¬πŸ‡§: An array of matching values.
1569
- * * πŸ‡©πŸ‡ͺ: Ein Array mit den passenden Werten.
1751
+ * * An array of matching values.
1570
1752
  */
1571
1753
  value(obj, query, mode = "exact") {
1572
- return Object.values(obj).filter((val2) => checkMatch(val2, query, mode));
1754
+ const queryStr = String(query).toLowerCase();
1755
+ return Object.values(obj).filter((val2) => {
1756
+ const valStr = String(val2).toLowerCase();
1757
+ switch (mode) {
1758
+ case "exact":
1759
+ return valStr === queryStr;
1760
+ case "startsWith":
1761
+ return valStr.startsWith(queryStr);
1762
+ case "endsWith":
1763
+ return valStr.endsWith(queryStr);
1764
+ case "contains":
1765
+ return valStr.includes(queryStr);
1766
+ default:
1767
+ return false;
1768
+ }
1769
+ });
1573
1770
  }
1574
1771
  };
1575
1772
  function isObject(item) {
@@ -1587,7 +1784,19 @@ Object.assign(jBase.prototype, cssMethods);
1587
1784
  Object.assign(jBase.prototype, eventMethods);
1588
1785
  Object.assign(jBase.prototype, domMethods);
1589
1786
  Object.assign(jBase.prototype, effectMethods);
1590
- var init = (selector) => new jBase(selector);
1787
+ var init = (selector) => {
1788
+ return new jBase(selector);
1789
+ };
1790
+ var bind = (window2) => {
1791
+ const doc = window2.document;
1792
+ const boundInit = (selector) => new jBase(selector, doc);
1793
+ Object.assign(boundInit, {
1794
+ fn: jBase.prototype,
1795
+ http,
1796
+ data
1797
+ });
1798
+ return boundInit;
1799
+ };
1591
1800
  var $ = init;
1592
1801
  var jB = init;
1593
1802
  var _jB = init;
@@ -1595,13 +1804,16 @@ var __jB = init;
1595
1804
  var _jBase = init;
1596
1805
  var __jBase = init;
1597
1806
  var jBase2 = init;
1807
+ var __ = init;
1598
1808
  export {
1599
1809
  $,
1600
1810
  jBase as JBaseClass,
1811
+ __,
1601
1812
  __jB,
1602
1813
  __jBase,
1603
1814
  _jB,
1604
1815
  _jBase,
1816
+ bind,
1605
1817
  data,
1606
1818
  debounce,
1607
1819
  http,
@@ -1611,508 +1823,419 @@ export {
1611
1823
  };
1612
1824
  /**
1613
1825
  * @file src/core.ts
1614
- * @version 2.0.1
1826
+ * @version 2.0.2
1615
1827
  * @since 2.0.0
1616
1828
  * @license GPL-3.0-or-later
1617
1829
  * @copyright Sven Minio 2026
1618
1830
  * @author Sven Minio <https://sven-minio.de>
1619
1831
  * @category Core
1620
1832
  * @description
1621
- * * πŸ‡¬πŸ‡§: The main jBase class. Handles the selection engine, initialization, and plugin architecture.
1622
- * * πŸ‡©πŸ‡ͺ: Die Haupt-jBase-Klasse. Behandelt die Selektions-Engine, Initialisierung und Plugin-Architektur.
1833
+ * * The main jBase class. Handles the selection engine, initialization, and plugin architecture.
1623
1834
  */
1624
1835
  /**
1625
1836
  * @file src/modules/css/classes.ts
1626
- * @version 2.0.1
1837
+ * @version 2.0.2
1627
1838
  * @since 2.0.0
1628
1839
  * @license GPL-3.0-or-later
1629
1840
  * @copyright Sven Minio 2026
1630
1841
  * @author Sven Minio <https://sven-minio.de>
1631
1842
  * @category CSS
1632
1843
  * @description
1633
- * * πŸ‡¬πŸ‡§: Methods for manipulating CSS classes (add, remove, toggle, has).
1634
- * * πŸ‡©πŸ‡ͺ: Methoden zur Manipulation von CSS-Klassen (add, remove, toggle, has).
1844
+ * * Methods for manipulating CSS classes (add, remove, toggle, has).
1635
1845
  * @requires ../../core
1636
- * * πŸ‡¬πŸ‡§: Depends on the core jBase class for type definitions.
1637
- * * πŸ‡©πŸ‡ͺ: HΓ€ngt von der Core-jBase-Klasse fΓΌr Typ-Definitionen ab.
1846
+ * * Depends on the core jBase class for type definitions.
1638
1847
  */
1639
1848
  /**
1640
1849
  * @file src/modules/css/styles.ts
1641
- * @version 2.0.1
1850
+ * @version 2.0.2
1642
1851
  * @since 2.0.0
1643
1852
  * @license GPL-3.0-or-later
1644
1853
  * @copyright Sven Minio 2026
1645
1854
  * @author Sven Minio <https://sven-minio.de>
1646
1855
  * @category CSS
1647
1856
  * @description
1648
- * * πŸ‡¬πŸ‡§: Methods for getting and setting inline CSS styles.
1649
- * * πŸ‡©πŸ‡ͺ: Methoden zum Lesen und Setzen von Inline-CSS-Styles.
1857
+ * * Methods for getting and setting inline CSS styles.
1650
1858
  * @requires ../../core
1651
- * * πŸ‡¬πŸ‡§: Depends on the core jBase class for type definitions.
1652
- * * πŸ‡©πŸ‡ͺ: HΓ€ngt von der Core-jBase-Klasse fΓΌr Typ-Definitionen ab.
1859
+ * * Depends on the core jBase class for type definitions.
1653
1860
  */
1654
1861
  /**
1655
1862
  * @file src/modules/css/index.ts
1656
- * @version 2.0.1
1863
+ * @version 2.0.2
1657
1864
  * @since 2.0.0
1658
1865
  * @license GPL-3.0-or-later
1659
1866
  * @copyright Sven Minio 2026
1660
1867
  * @author Sven Minio <https://sven-minio.de>
1661
1868
  * @category CSS
1662
1869
  * @description
1663
- * * πŸ‡¬πŸ‡§: Central entry point for CSS operations. Aggregates class and style manipulation methods.
1664
- * * πŸ‡©πŸ‡ͺ: Zentraler Einstiegspunkt fΓΌr CSS-Operationen. Aggregiert Methoden zur Klassen- und Style-Manipulation.
1870
+ * * Central entry point for CSS operations. Aggregates class and style manipulation methods.
1665
1871
  * @requires ./classes
1666
- * * πŸ‡¬πŸ‡§: Class manipulation methods (addClass, removeClass, etc.).
1667
- * * πŸ‡©πŸ‡ͺ: Methoden zur Klassen-Manipulation (addClass, removeClass, etc.).
1872
+ * * Class manipulation methods (addClass, removeClass, etc.).
1668
1873
  * @requires ./styles
1669
- * * πŸ‡¬πŸ‡§: Style manipulation methods (css).
1670
- * * πŸ‡©πŸ‡ͺ: Methoden zur Style-Manipulation (css).
1874
+ * * Style manipulation methods (css).
1671
1875
  */
1672
1876
  /**
1673
1877
  * @file src/modules/events/binding.ts
1674
- * @version 2.0.1
1878
+ * @version 2.0.2
1675
1879
  * @since 2.0.0
1676
1880
  * @license GPL-3.0-or-later
1677
1881
  * @copyright Sven Minio 2026
1678
1882
  * @author Sven Minio <https://sven-minio.de>
1679
1883
  * @category Events
1680
1884
  * @description
1681
- * * πŸ‡¬πŸ‡§: Core event binding methods (on, off, trigger). Handles event registration and removal.
1682
- * * πŸ‡©πŸ‡ͺ: Kern-Methoden fΓΌr Event-Binding (on, off, trigger). Behandelt die Registrierung und Entfernung von Events.
1885
+ * * Core event binding methods (on, off, trigger). Handles event registration and removal.
1683
1886
  * @requires ../../core
1684
- * * πŸ‡¬πŸ‡§: Depends on the core jBase class for type definitions.
1685
- * * πŸ‡©πŸ‡ͺ: HΓ€ngt von der Core-jBase-Klasse fΓΌr Typ-Definitionen ab.
1887
+ * * Depends on the core jBase class for type definitions.
1686
1888
  */
1687
1889
  /**
1688
1890
  * @file src/modules/events/mouse.ts
1689
- * @version 2.0.1
1891
+ * @version 2.0.2
1690
1892
  * @since 2.0.0
1691
1893
  * @license GPL-3.0-or-later
1692
1894
  * @copyright Sven Minio 2026
1693
1895
  * @author Sven Minio <https://sven-minio.de>
1694
1896
  * @category Events
1695
1897
  * @description
1696
- * * πŸ‡¬πŸ‡§: Methods for handling mouse events (click, dblclick, hover, mouseenter, mouseleave).
1697
- * * πŸ‡©πŸ‡ͺ: Methoden zur Behandlung von Maus-Events (click, dblclick, hover, mouseenter, mouseleave).
1898
+ * * Methods for handling mouse events (click, dblclick, hover, mouseenter, mouseleave).
1698
1899
  * @requires ../../core
1699
- * * πŸ‡¬πŸ‡§: Depends on the core jBase class for type definitions.
1700
- * * πŸ‡©πŸ‡ͺ: HΓ€ngt von der Core-jBase-Klasse fΓΌr Typ-Definitionen ab.
1900
+ * * Depends on the core jBase class for type definitions.
1701
1901
  */
1702
1902
  /**
1703
1903
  * @file src/modules/events/lifecycle.ts
1704
- * @version 2.0.1
1904
+ * @version 2.0.2
1705
1905
  * @since 2.0.0
1706
1906
  * @license GPL-3.0-or-later
1707
1907
  * @copyright Sven Minio 2026
1708
1908
  * @author Sven Minio <https://sven-minio.de>
1709
1909
  * @category Events
1710
1910
  * @description
1711
- * * πŸ‡¬πŸ‡§: Methods for handling DOM lifecycle events (e.g., ready).
1712
- * * πŸ‡©πŸ‡ͺ: Methoden zur Behandlung von DOM-Lebenszyklus-Events (z.B. ready).
1911
+ * * Methods for handling DOM lifecycle events (e.g., ready).
1713
1912
  * @requires ../../core
1714
- * * πŸ‡¬πŸ‡§: Depends on the core jBase class for type definitions.
1715
- * * πŸ‡©πŸ‡ͺ: HΓ€ngt von der Core-jBase-Klasse fΓΌr Typ-Definitionen ab.
1913
+ * * Depends on the core jBase class for type definitions.
1716
1914
  */
1717
1915
  /**
1718
1916
  * @file src/modules/events/keyboard.ts
1719
- * @version 2.0.1
1917
+ * @version 2.0.2
1720
1918
  * @since 2.0.0
1721
1919
  * @license GPL-3.0-or-later
1722
1920
  * @copyright Sven Minio 2026
1723
1921
  * @author Sven Minio <https://sven-minio.de>
1724
1922
  * @category Events
1725
1923
  * @description
1726
- * * πŸ‡¬πŸ‡§: Methods for handling keyboard events (keydown, keyup, keypress).
1727
- * * πŸ‡©πŸ‡ͺ: Methoden zur Behandlung von Tastatur-Events (keydown, keyup, keypress).
1924
+ * * Methods for handling keyboard events (keydown, keyup, keypress).
1728
1925
  * @requires ../../core
1729
- * * πŸ‡¬πŸ‡§: Depends on the core jBase class for type definitions.
1730
- * * πŸ‡©πŸ‡ͺ: HΓ€ngt von der Core-jBase-Klasse fΓΌr Typ-Definitionen ab.
1926
+ * * Depends on the core jBase class for type definitions.
1731
1927
  */
1732
1928
  /**
1733
1929
  * @file src/modules/events/form.ts
1734
- * @version 2.0.1
1930
+ * @version 2.0.2
1735
1931
  * @since 2.0.0
1736
1932
  * @license GPL-3.0-or-later
1737
1933
  * @copyright Sven Minio 2026
1738
1934
  * @author Sven Minio <https://sven-minio.de>
1739
1935
  * @category Events
1740
1936
  * @description
1741
- * * πŸ‡¬πŸ‡§: Methods for handling form events (submit, change, focus, blur, input).
1742
- * * πŸ‡©πŸ‡ͺ: Methoden zur Behandlung von Formular-Events (submit, change, focus, blur, input).
1937
+ * * Methods for handling form events (submit, change, focus, blur, input).
1743
1938
  * @requires ../../core
1744
- * * πŸ‡¬πŸ‡§: Depends on the core jBase class for type definitions.
1745
- * * πŸ‡©πŸ‡ͺ: HΓ€ngt von der Core-jBase-Klasse fΓΌr Typ-Definitionen ab.
1939
+ * * Depends on the core jBase class for type definitions.
1746
1940
  */
1747
1941
  /**
1748
1942
  * @file src/modules/events/touch.ts
1749
- * @version 2.0.1
1943
+ * @version 2.0.2
1750
1944
  * @since 2.0.0
1751
1945
  * @license GPL-3.0-or-later
1752
1946
  * @copyright Sven Minio 2026
1753
1947
  * @author Sven Minio <https://sven-minio.de>
1754
1948
  * @category Events
1755
1949
  * @description
1756
- * * πŸ‡¬πŸ‡§: Methods for handling touch events (touchstart, touchend, touchmove).
1757
- * * πŸ‡©πŸ‡ͺ: Methoden zur Behandlung von Touch-Events (touchstart, touchend, touchmove).
1950
+ * * Methods for handling touch events (touchstart, touchend, touchmove).
1758
1951
  * @requires ../../core
1759
- * * πŸ‡¬πŸ‡§: Depends on the core jBase class for type definitions.
1760
- * * πŸ‡©πŸ‡ͺ: HΓ€ngt von der Core-jBase-Klasse fΓΌr Typ-Definitionen ab.
1952
+ * * Depends on the core jBase class for type definitions.
1761
1953
  */
1762
1954
  /**
1763
1955
  * @file src/modules/events/index.ts
1764
- * @version 2.0.1
1956
+ * @version 2.0.2
1765
1957
  * @since 2.0.0
1766
1958
  * @license GPL-3.0-or-later
1767
1959
  * @copyright Sven Minio 2026
1768
1960
  * @author Sven Minio <https://sven-minio.de>
1769
1961
  * @category Events
1770
1962
  * @description
1771
- * * πŸ‡¬πŸ‡§: Central entry point for event handling. Aggregates binding, mouse, lifecycle, keyboard, form, and touch events.
1772
- * * πŸ‡©πŸ‡ͺ: Zentraler Einstiegspunkt fΓΌr Event-Handling. Aggregiert Binding-, Maus-, Lebenszyklus-, Tastatur-, Formular- und Touch-Events.
1963
+ * * Central entry point for event handling. Aggregates binding, mouse, lifecycle, keyboard, form, and touch events.
1773
1964
  * @requires ./binding
1774
- * * πŸ‡¬πŸ‡§: General event binding (on, off).
1775
- * * πŸ‡©πŸ‡ͺ: Generelle Event-Bindung (on, off).
1965
+ * * General event binding (on, off).
1776
1966
  * @requires ./mouse
1777
- * * πŸ‡¬πŸ‡§: Mouse interaction events (click, hover, etc.).
1778
- * * πŸ‡©πŸ‡ͺ: Maus-Interaktions-Events (click, hover, etc.).
1967
+ * * Mouse interaction events (click, hover, etc.).
1779
1968
  * @requires ./lifecycle
1780
- * * πŸ‡¬πŸ‡§: DOM lifecycle events (ready).
1781
- * * πŸ‡©πŸ‡ͺ: DOM-Lebenszyklus-Events (ready).
1969
+ * * DOM lifecycle events (ready).
1782
1970
  * @requires ./keyboard
1783
- * * πŸ‡¬πŸ‡§: Keyboard interaction events (keydown, keyup).
1784
- * * πŸ‡©πŸ‡ͺ: Tastatur-Interaktions-Events (keydown, keyup).
1971
+ * * Keyboard interaction events (keydown, keyup).
1785
1972
  * @requires ./form
1786
- * * πŸ‡¬πŸ‡§: Form handling events (submit, change, input).
1787
- * * πŸ‡©πŸ‡ͺ: Formular-Verarbeitungs-Events (submit, change, input).
1973
+ * * Form handling events (submit, change, input).
1788
1974
  * @requires ./touch
1789
- * * πŸ‡¬πŸ‡§: Touch interaction events.
1790
- * * πŸ‡©πŸ‡ͺ: Touch-Interaktions-Events.
1975
+ * * Touch interaction events.
1791
1976
  */
1792
1977
  /**
1793
1978
  * @file src/modules/dom/attributes.ts
1794
- * @version 2.0.1
1979
+ * @version 2.0.2
1795
1980
  * @since 2.0.0
1796
1981
  * @license GPL-3.0-or-later
1797
1982
  * @copyright Sven Minio 2026
1798
1983
  * @author Sven Minio <https://sven-minio.de>
1799
1984
  * @category DOM
1800
1985
  * @description
1801
- * * πŸ‡¬πŸ‡§: Methods for getting and setting HTML attributes and properties (attr, data, val).
1802
- * * πŸ‡©πŸ‡ͺ: Methoden zum Lesen und Setzen von HTML-Attributen und Eigenschaften (attr, data, val).
1986
+ * * Methods for getting and setting HTML attributes and properties (attr, data, val).
1803
1987
  * @requires ../../core
1804
- * * πŸ‡¬πŸ‡§: Depends on the core jBase class for type definitions.
1805
- * * πŸ‡©πŸ‡ͺ: HΓ€ngt von der Core-jBase-Klasse fΓΌr Typ-Definitionen ab.
1988
+ * * Depends on the core jBase class for type definitions.
1806
1989
  */
1807
1990
  /**
1808
1991
  * @file src/modules/dom/content.ts
1809
- * @version 2.0.1
1992
+ * @version 2.0.2
1810
1993
  * @since 2.0.0
1811
1994
  * @license GPL-3.0-or-later
1812
1995
  * @copyright Sven Minio 2026
1813
1996
  * @author Sven Minio <https://sven-minio.de>
1814
1997
  * @category DOM
1815
1998
  * @description
1816
- * * πŸ‡¬πŸ‡§: Methods for getting and setting element content (html, text, empty, replaceWith).
1817
- * * πŸ‡©πŸ‡ͺ: Methoden zum Lesen und Setzen von Elementinhalten (html, text, empty, replaceWith).
1999
+ * * Methods for getting and setting element content (html, text, empty, replaceWith).
1818
2000
  * @requires ../../core
1819
- * * πŸ‡¬πŸ‡§: Depends on the core jBase class for type definitions.
1820
- * * πŸ‡©πŸ‡ͺ: HΓ€ngt von der Core-jBase-Klasse fΓΌr Typ-Definitionen ab.
2001
+ * * Depends on the core jBase class for type definitions.
1821
2002
  */
1822
2003
  /**
1823
2004
  * @file src/modules/dom/manipulation.ts
1824
- * @version 2.0.1
2005
+ * @version 2.0.2
1825
2006
  * @since 2.0.0
1826
2007
  * @license GPL-3.0-or-later
1827
2008
  * @copyright Sven Minio 2026
1828
2009
  * @author Sven Minio <https://sven-minio.de>
1829
2010
  * @category DOM
1830
2011
  * @description
1831
- * * πŸ‡¬πŸ‡§: Methods for inserting, moving, and removing elements (append, prepend, remove).
1832
- * * πŸ‡©πŸ‡ͺ: Methoden zum EinfΓΌgen, Verschieben und Entfernen von Elementen (append, prepend, remove).
2012
+ * * Methods for inserting, moving, and removing elements (append, prepend, remove).
1833
2013
  * @requires ../../core
1834
- * * πŸ‡¬πŸ‡§: Depends on the core jBase class for type definitions.
1835
- * * πŸ‡©πŸ‡ͺ: HΓ€ngt von der Core-jBase-Klasse fΓΌr Typ-Definitionen ab.
2014
+ * * Depends on the core jBase class for type definitions.
1836
2015
  */
1837
2016
  /**
1838
2017
  * @file src/modules/dom/traversal.ts
1839
- * @version 2.0.1
2018
+ * @version 2.0.2
1840
2019
  * @since 2.0.0
1841
2020
  * @license GPL-3.0-or-later
1842
2021
  * @copyright Sven Minio 2026
1843
2022
  * @author Sven Minio <https://sven-minio.de>
1844
2023
  * @category DOM
1845
2024
  * @description
1846
- * * πŸ‡¬πŸ‡§: Methods for navigating the DOM tree (find, parent, children, siblings).
1847
- * * πŸ‡©πŸ‡ͺ: Methoden zur Navigation im DOM-Baum (find, parent, children, siblings).
2025
+ * * Methods for navigating the DOM tree (find, parent, children, siblings).
1848
2026
  * @requires ../../core
1849
- * * πŸ‡¬πŸ‡§: Depends on the core jBase class for type definitions.
1850
- * * πŸ‡©πŸ‡ͺ: HΓ€ngt von der Core-jBase-Klasse fΓΌr Typ-Definitionen ab.
2027
+ * * Depends on the core jBase class for type definitions.
1851
2028
  */
1852
2029
  /**
1853
2030
  * @file src/modules/dom/states.ts
1854
- * @version 2.0.1
2031
+ * @version 2.0.2
1855
2032
  * @since 2.0.0
1856
2033
  * @license GPL-3.0-or-later
1857
2034
  * @copyright Sven Minio 2026
1858
2035
  * @author Sven Minio <https://sven-minio.de>
1859
2036
  * @category DOM
1860
2037
  * @description
1861
- * * πŸ‡¬πŸ‡§: Methods for checking element states (e.g., visibility, checked, disabled).
1862
- * * πŸ‡©πŸ‡ͺ: Methoden zur PrΓΌfung von Element-ZustΓ€nden (z.B. Sichtbarkeit, checked, disabled).
2038
+ * * Methods for checking element states (e.g., visibility, checked, disabled).
1863
2039
  * @requires ../../core
1864
- * * πŸ‡¬πŸ‡§: Depends on the core jBase class for type definitions.
1865
- * * πŸ‡©πŸ‡ͺ: HΓ€ngt von der Core-jBase-Klasse fΓΌr Typ-Definitionen ab.
2040
+ * * Depends on the core jBase class for type definitions.
1866
2041
  */
1867
2042
  /**
1868
2043
  * @file src/modules/dom/index.ts
1869
- * @version 2.0.1
2044
+ * @version 2.0.2
1870
2045
  * @since 2.0.0
1871
2046
  * @license GPL-3.0-or-later
1872
2047
  * @copyright Sven Minio 2026
1873
2048
  * @author Sven Minio <https://sven-minio.de>
1874
2049
  * @category DOM
1875
2050
  * @description
1876
- * * πŸ‡¬πŸ‡§: Central entry point for DOM operations. Aggregates methods for attributes, content, manipulation, traversal, and states.
1877
- * * πŸ‡©πŸ‡ͺ: Zentraler Einstiegspunkt fΓΌr DOM-Operationen. Aggregiert Methoden fΓΌr Attribute, Inhalt, Manipulation, Traversierung und Status.
2051
+ * * Central entry point for DOM operations. Aggregates methods for attributes, content, manipulation, traversal, and states.
1878
2052
  * @requires ./attributes
1879
- * * πŸ‡¬πŸ‡§: Attribute and value manipulation.
1880
- * * πŸ‡©πŸ‡ͺ: Attribut- und Wert-Manipulation.
2053
+ * * Attribute and value manipulation.
1881
2054
  * @requires ./content
1882
- * * πŸ‡¬πŸ‡§: Content handling (html, text).
1883
- * * πŸ‡©πŸ‡ͺ: Inhalts-Steuerung (html, text).
2055
+ * * Content handling (html, text).
1884
2056
  * @requires ./manipulation
1885
- * * πŸ‡¬πŸ‡§: DOM manipulation (append, remove, etc.).
1886
- * * πŸ‡©πŸ‡ͺ: DOM-Manipulation (append, remove, etc.).
2057
+ * * DOM manipulation (append, remove, etc.).
1887
2058
  * @requires ./traversal
1888
- * * πŸ‡¬πŸ‡§: Tree traversal (find, parent, children).
1889
- * * πŸ‡©πŸ‡ͺ: Baum-Durchquerung (find, parent, children).
2059
+ * * Tree traversal (find, parent, children).
1890
2060
  * @requires ./states
1891
- * * πŸ‡¬πŸ‡§: State checks (checked, disabled).
1892
- * * πŸ‡©πŸ‡ͺ: Status-PrΓΌfungen (checked, disabled).
2061
+ * * State checks (checked, disabled).
2062
+ */
2063
+ /**
2064
+ * @file src/utils.ts
2065
+ * @version 2.0.2
2066
+ * @since 2.0.0
2067
+ * @license GPL-3.0-or-later
2068
+ * @copyright Sven Minio 2026
2069
+ * @author Sven Minio <https://sven-minio.de>
2070
+ * @category Utilities
2071
+ * @description
2072
+ * * General utility functions and helpers (e.g., debounce, throttle, type checks).
1893
2073
  */
1894
2074
  /**
1895
2075
  * @file src/modules/effects/slide.ts
1896
- * @version 2.0.1
2076
+ * @version 2.0.2
1897
2077
  * @since 2.0.0
1898
2078
  * @license GPL-3.0-or-later
1899
2079
  * @copyright Sven Minio 2026
1900
2080
  * @author Sven Minio <https://sven-minio.de>
1901
2081
  * @category Effects
1902
2082
  * @description
1903
- * * πŸ‡¬πŸ‡§: Methods for horizontal sliding effects (slideIn, slideOut, slideToggle).
1904
- * * πŸ‡©πŸ‡ͺ: Methoden fΓΌr horizontale Slide-Effekte (slideIn, slideOut, slideToggle).
2083
+ * * Methods for horizontal sliding effects (slideIn, slideOut, slideToggle).
1905
2084
  * @requires ../../core
1906
- * * πŸ‡¬πŸ‡§: Depends on the core jBase class for type definitions.
1907
- * * πŸ‡©πŸ‡ͺ: HΓ€ngt von der Core-jBase-Klasse fΓΌr Typ-Definitionen ab.
2085
+ * * Depends on the core jBase class for type definitions.
1908
2086
  */
1909
2087
  /**
1910
2088
  * @file src/modules/effects/vertical.ts
1911
- * @version 2.0.1
2089
+ * @version 2.0.2
1912
2090
  * @since 2.0.0
1913
2091
  * @license GPL-3.0-or-later
1914
2092
  * @copyright Sven Minio 2026
1915
2093
  * @author Sven Minio <https://sven-minio.de>
1916
2094
  * @category Effects
1917
2095
  * @description
1918
- * * πŸ‡¬πŸ‡§: Methods for vertical sliding effects (slideDown, slideUp, slideToggle).
1919
- * * πŸ‡©πŸ‡ͺ: Methoden fΓΌr vertikale Slide-Effekte (slideDown, slideUp, slideToggle).
2096
+ * * Methods for vertical sliding effects (slideDown, slideUp, slideToggle).
1920
2097
  * @requires ../../core
1921
- * * πŸ‡¬πŸ‡§: Depends on the core jBase class for type definitions.
1922
- * * πŸ‡©πŸ‡ͺ: HΓ€ngt von der Core-jBase-Klasse fΓΌr Typ-Definitionen ab.
2098
+ * * Depends on the core jBase class for type definitions.
1923
2099
  */
1924
2100
  /**
1925
2101
  * @file src/modules/effects/fade.ts
1926
- * @version 2.0.1
2102
+ * @version 2.0.2
1927
2103
  * @since 2.0.0
1928
2104
  * @license GPL-3.0-or-later
1929
2105
  * @copyright Sven Minio 2026
1930
2106
  * @author Sven Minio <https://sven-minio.de>
1931
2107
  * @category Effects
1932
2108
  * @description
1933
- * * πŸ‡¬πŸ‡§: Methods for fading elements in and out (fadeIn, fadeOut, fadeToggle).
1934
- * * πŸ‡©πŸ‡ͺ: Methoden zum Ein- und Ausblenden von Elementen (fadeIn, fadeOut, fadeToggle).
2109
+ * * Methods for fading elements in and out (fadeIn, fadeOut, fadeToggle).
1935
2110
  * @requires ../../core
1936
- * * πŸ‡¬πŸ‡§: Depends on the core jBase class for type definitions.
1937
- * * πŸ‡©πŸ‡ͺ: HΓ€ngt von der Core-jBase-Klasse fΓΌr Typ-Definitionen ab.
2111
+ * * Depends on the core jBase class for type definitions.
1938
2112
  */
1939
2113
  /**
1940
2114
  * @file src/modules/effects/index.ts
1941
- * @version 2.0.1
2115
+ * @version 2.0.2
1942
2116
  * @since 2.0.0
1943
2117
  * @license GPL-3.0-or-later
1944
2118
  * @copyright Sven Minio 2026
1945
2119
  * @author Sven Minio <https://sven-minio.de>
1946
2120
  * @category Effects
1947
2121
  * @description
1948
- * * πŸ‡¬πŸ‡§: Central entry point for visual effects. Aggregates slide, fade, and vertical animation modules.
1949
- * * πŸ‡©πŸ‡ͺ: Zentraler Einstiegspunkt fΓΌr visuelle Effekte. Aggregiert Module fΓΌr Slide-, Fade- und vertikale Animationen.
2122
+ * * Central entry point for visual effects. Aggregates slide, fade, and vertical animation modules.
1950
2123
  * @requires ./slide
1951
- * * πŸ‡¬πŸ‡§: Horizontal slide effects (slideIn, slideOut).
1952
- * * πŸ‡©πŸ‡ͺ: Horizontale Slide-Effekte (slideIn, slideOut).
2124
+ * * Horizontal slide effects (slideIn, slideOut).
1953
2125
  * @requires ./vertical
1954
- * * πŸ‡¬πŸ‡§: Vertical slide effects / Accordion (slideDown, slideUp).
1955
- * * πŸ‡©πŸ‡ͺ: Vertikale Slide-Effekte / Akkordeon (slideDown, slideUp).
2126
+ * * Vertical slide effects / Accordion (slideDown, slideUp).
1956
2127
  * @requires ./fade
1957
- * * πŸ‡¬πŸ‡§: Opacity fade effects (fadeIn, fadeOut).
1958
- * * πŸ‡©πŸ‡ͺ: OpazitΓ€ts-Fade-Effekte (fadeIn, fadeOut).
1959
- */
1960
- /**
1961
- * @file src/utils.ts
1962
- * @version 2.0.1
1963
- * @since 2.0.0
1964
- * @license GPL-3.0-or-later
1965
- * @copyright Sven Minio 2026
1966
- * @author Sven Minio <https://sven-minio.de>
1967
- * @category Utilities
1968
- * @description
1969
- * * πŸ‡¬πŸ‡§: General utility functions and helpers (e.g., debounce, throttle, type checks).
1970
- * * πŸ‡©πŸ‡ͺ: Allgemeine Hilfsfunktionen und Helfer (z.B. debounce, throttle, Typ-PrΓΌfungen).
2128
+ * * Opacity fade effects (fadeIn, fadeOut).
1971
2129
  */
1972
2130
  /**
1973
2131
  * @file src/modules/http/get.ts
1974
- * @version 2.0.1
2132
+ * @version 2.0.3
1975
2133
  * @since 2.0.0
1976
2134
  * @license GPL-3.0-or-later
1977
2135
  * @copyright Sven Minio 2026
1978
2136
  * @author Sven Minio <https://sven-minio.de>
1979
2137
  * @category HTTP
1980
2138
  * @description
1981
- * * πŸ‡¬πŸ‡§: Abstraction for HTTP GET requests.
1982
- * * πŸ‡©πŸ‡ͺ: Abstraktion fΓΌr HTTP GET-Anfragen.
2139
+ * * Abstraction for HTTP GET requests.
1983
2140
  * @requires ../../core
1984
- * * πŸ‡¬πŸ‡§: Depends on the core jBase class for type definitions.
1985
- * * πŸ‡©πŸ‡ͺ: HΓ€ngt von der Core-jBase-Klasse fΓΌr Typ-Definitionen ab.
2141
+ * * Depends on the core jBase class for type definitions.
1986
2142
  */
1987
2143
  /**
1988
2144
  * @file src/modules/http/post.ts
1989
- * @version 2.0.1
1990
- * @since 2.0.0
2145
+ * @version 2.0.3
2146
+ * @since 2.0.2
1991
2147
  * @license GPL-3.0-or-later
1992
2148
  * @copyright Sven Minio 2026
1993
2149
  * @author Sven Minio <https://sven-minio.de>
1994
2150
  * @category HTTP
1995
2151
  * * @description
1996
- * * πŸ‡¬πŸ‡§: Abstraction for HTTP POST requests.
1997
- * * πŸ‡©πŸ‡ͺ: Abstraktion fΓΌr HTTP POST-Anfragen.
2152
+ * * Abstraction for HTTP POST requests.
1998
2153
  * @requires ../../core
1999
- * * πŸ‡¬πŸ‡§: Depends on the core jBase class for type definitions.
2000
- * * πŸ‡©πŸ‡ͺ: HΓ€ngt von der Core-jBase-Klasse fΓΌr Typ-Definitionen ab.
2154
+ * * Depends on the core jBase class for type definitions.
2001
2155
  */
2002
2156
  /**
2003
2157
  * @file src/modules/http/index.ts
2004
- * @version 2.0.1
2158
+ * @version 2.0.2
2005
2159
  * @since 2.0.0
2006
2160
  * @license GPL-3.0-or-later
2007
2161
  * @copyright Sven Minio 2026
2008
2162
  * @author Sven Minio <https://sven-minio.de>
2009
2163
  * @category HTTP
2010
2164
  * @description
2011
- * * πŸ‡¬πŸ‡§: Central entry point for HTTP requests. Aggregates GET and POST methods.
2012
- * * πŸ‡©πŸ‡ͺ: Zentraler Einstiegspunkt fΓΌr HTTP-Anfragen. Aggregiert GET- und POST-Methoden.
2165
+ * * Central entry point for HTTP requests. Aggregates GET and POST methods.
2013
2166
  * @requires ./get
2014
- * * πŸ‡¬πŸ‡§: HTTP GET methods (get, getText).
2015
- * * πŸ‡©πŸ‡ͺ: HTTP GET-Methoden (get, getText).
2167
+ * * HTTP GET methods (get, getText).
2016
2168
  * @requires ./post
2017
- * * πŸ‡¬πŸ‡§: HTTP POST methods.
2018
- * * πŸ‡©πŸ‡ͺ: HTTP POST-Methoden.
2019
- */
2020
- /**
2021
- * @file src/modules/data/types.ts
2022
- * @version 2.0.1
2023
- * @since 2.0.0
2024
- * @license GPL-3.0-or-later
2025
- * @copyright Sven Minio 2026
2026
- * @author Sven Minio <https://sven-minio.de>
2027
- * @category Data
2028
- * @description
2029
- * * πŸ‡¬πŸ‡§: Type definitions and validation helpers for data structures.
2030
- * * πŸ‡©πŸ‡ͺ: Typ-Definitionen und Validierungs-Hilfsmittel fΓΌr Datenstrukturen.
2169
+ * * HTTP POST methods.
2031
2170
  */
2032
2171
  /**
2033
2172
  * @file src/modules/data/arrays.ts
2034
- * @version 2.0.1
2173
+ * @version 2.0.2
2035
2174
  * @since 2.0.0
2036
2175
  * @license GPL-3.0-or-later
2037
2176
  * @copyright Sven Minio 2026
2038
2177
  * @author Sven Minio <https://sven-minio.de>
2039
2178
  * @category Data
2040
2179
  * @description
2041
- * * πŸ‡¬πŸ‡§: Utility functions for array manipulation and data processing.
2042
- * * πŸ‡©πŸ‡ͺ: Hilfsfunktionen fΓΌr Array-Manipulation und Datenverarbeitung.
2180
+ * * Utility functions for array manipulation and data processing.
2043
2181
  * @requires ./types
2044
- * * πŸ‡¬πŸ‡§: Depends on match logic and types.
2045
- * * πŸ‡©πŸ‡ͺ: HΓ€ngt von Match-Logik und Typen ab.
2182
+ * * Depends on types.
2046
2183
  */
2047
2184
  /**
2048
2185
  * @file src/modules/data/objects.ts
2049
- * @version 2.0.1
2186
+ * @version 2.0.2
2050
2187
  * @since 2.0.0
2051
2188
  * @license GPL-3.0-or-later
2052
2189
  * @copyright Sven Minio 2026
2053
2190
  * @author Sven Minio <https://sven-minio.de>
2054
2191
  * @category Data
2055
2192
  * @description
2056
- * * πŸ‡¬πŸ‡§: Utility functions for object manipulation (e.g., deep merging, extension).
2057
- * * πŸ‡©πŸ‡ͺ: Hilfsfunktionen fΓΌr Objekt-Manipulation (z.B. Deep Merge, Erweiterung).
2193
+ * * Utility functions for object manipulation (e.g., deep merging, extension).
2058
2194
  * @requires ./types
2059
- * * πŸ‡¬πŸ‡§: Depends on match logic and types.
2060
- * * πŸ‡©πŸ‡ͺ: HΓ€ngt von Match-Logik und Typen ab.
2195
+ * * Depends on types.
2061
2196
  */
2062
2197
  /**
2063
2198
  * @file src/modules/data/index.ts
2064
- * @version 2.0.1
2199
+ * @version 2.0.2
2065
2200
  * @since 2.0.0
2066
2201
  * * @license GPL-3.0-or-later
2067
2202
  * @copyright Sven Minio 2026
2068
2203
  * @author Sven Minio <https://sven-minio.de>
2069
2204
  * @category Data
2070
2205
  * @description
2071
- * * πŸ‡¬πŸ‡§: Central entry point for data manipulation modules. Aggregates array and object utilities.
2072
- * * πŸ‡©πŸ‡ͺ: Zentraler Einstiegspunkt fΓΌr Datenmanipulations-Module. Aggregiert Array- und Objekt-Hilfsmethoden.
2206
+ * * Central entry point for data manipulation modules. Aggregates array and object utilities.
2073
2207
  * @requires ./arrays
2074
- * * πŸ‡¬πŸ‡§: Array manipulation methods.
2075
- * * πŸ‡©πŸ‡ͺ: Methoden zur Array-Manipulation.
2208
+ * * Array manipulation methods.
2076
2209
  * @requires ./objects
2077
- * * πŸ‡¬πŸ‡§: Object manipulation methods.
2078
- * * πŸ‡©πŸ‡ͺ: Methoden zur Objekt-Manipulation.
2210
+ * * Object manipulation methods.
2079
2211
  */
2080
2212
  /**
2081
2213
  * @file src/index.ts
2082
- * @version 2.0.1
2214
+ * @version 2.0.2
2083
2215
  * @since 2.0.0
2084
2216
  * @license GPL-3.0-or-later
2085
2217
  * @copyright Sven Minio 2026
2086
2218
  * @author Sven Minio <https://sven-minio.de>
2087
2219
  * @category Entry Point
2088
2220
  * @description
2089
- * * πŸ‡¬πŸ‡§: Main library entry point. Aggregates Core, Types, Utils, and all functional modules into a single export.
2090
- * * πŸ‡©πŸ‡ͺ: Haupt-Einstiegspunkt der Bibliothek. Aggregiert Core, Types, Utils und alle funktionalen Module in einen einzigen Export.
2221
+ * * Main library entry point. Aggregates Core, Types, Utils, and all functional modules into a single export.
2091
2222
  * @requires ./core
2092
- * * πŸ‡¬πŸ‡§: Core class logic and inheritance.
2093
- * * πŸ‡©πŸ‡ͺ: Kern-Klassenlogik und Vererbung.
2223
+ * * Core class logic and inheritance.
2094
2224
  * @requires ./types
2095
- * * πŸ‡¬πŸ‡§: TypeScript type definitions and interfaces.
2096
- * * πŸ‡©πŸ‡ͺ: TypeScript Typ-Definitionen und Interfaces.
2225
+ * * TypeScript type definitions and interfaces.
2097
2226
  * @requires ./utils
2098
- * * πŸ‡¬πŸ‡§: Helper functions (throttle, debounce).
2099
- * * πŸ‡©πŸ‡ͺ: Hilfsfunktionen (throttle, debounce).
2227
+ * * Helper functions (throttle, debounce).
2100
2228
  * @requires ./modules/css
2101
- * * πŸ‡¬πŸ‡§: Style manipulation methods.
2102
- * * πŸ‡©πŸ‡ͺ: Style-Manipulations-Methoden.
2229
+ * * Style manipulation methods.
2103
2230
  * @requires ./modules/events
2104
- * * πŸ‡¬πŸ‡§: Event handling logic.
2105
- * * πŸ‡©πŸ‡ͺ: Event-Handling-Logik.
2231
+ * * Event handling logic.
2106
2232
  * @requires ./modules/dom
2107
- * * πŸ‡¬πŸ‡§: DOM traversal and manipulation.
2108
- * * πŸ‡©πŸ‡ͺ: DOM-Traversierung und -Manipulation.
2233
+ * * DOM traversal and manipulation.
2109
2234
  * @requires ./modules/effects
2110
- * * πŸ‡¬πŸ‡§: Visual effects and animations.
2111
- * * πŸ‡©πŸ‡ͺ: Visuelle Effekte und Animationen.
2235
+ * * Visual effects and animations.
2112
2236
  * @requires ./modules/http
2113
- * * πŸ‡¬πŸ‡§: HTTP client for AJAX requests.
2114
- * * πŸ‡©πŸ‡ͺ: HTTP-Client fΓΌr AJAX-Anfragen.
2237
+ * * HTTP client for AJAX requests.
2115
2238
  * @requires ./modules/data
2116
- * * πŸ‡¬πŸ‡§: Data structure utilities.
2117
- * * πŸ‡©πŸ‡ͺ: Datenstruktur-Utilities.
2239
+ * * Data structure utilities.
2118
2240
  */
2241
+ //# sourceMappingURL=index.mjs.map