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