tiny-essentials 1.21.3 → 1.21.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -2806,6 +2806,27 @@ class TinyHtml {
2806
2806
  return TinyHtml.blur(this);
2807
2807
  }
2808
2808
 
2809
+ /**
2810
+ * Select the text content of an input or textarea element.
2811
+ *
2812
+ * @param {TinyHtml|HTMLInputElement|HTMLTextAreaElement} el - The element or a selector string.
2813
+ * @returns {TinyHtml|HTMLInputElement|HTMLTextAreaElement}
2814
+ */
2815
+ static select(el) {
2816
+ const elem = TinyHtml._preHtmlElem(el, 'select');
2817
+ if (elem instanceof HTMLInputElement || elem instanceof HTMLTextAreaElement) elem.select();
2818
+ else throw new Error('Element must be an <input> or <textarea> to use select().');
2819
+ return el;
2820
+ }
2821
+
2822
+ /**
2823
+ * Select the text content of an input or textarea element.
2824
+ * @returns {TinyHtml|HTMLInputElement|HTMLTextAreaElement}
2825
+ */
2826
+ select() {
2827
+ return TinyHtml.select(this);
2828
+ }
2829
+
2809
2830
  /**
2810
2831
  * Interprets a value as a boolean `true` if it matches a common truthy representation.
2811
2832
  *
@@ -4501,141 +4522,169 @@ class TinyHtml {
4501
4522
  * Registers an event listener on the specified element.
4502
4523
  *
4503
4524
  * @param {TinyEventTarget|TinyEventTarget[]} el - The target to listen on.
4504
- * @param {string} event - The event type (e.g. 'click', 'keydown').
4525
+ * @param {string|string[]} events - The event type (e.g. 'click', 'keydown').
4505
4526
  * @param {EventListenerOrEventListenerObject|null} handler - The callback function to run on event.
4506
4527
  * @param {EventRegistryOptions} [options] - Optional event listener options.
4507
4528
  * @returns {TinyEventTarget|TinyEventTarget[]}
4508
4529
  */
4509
- static on(el, event, handler, options) {
4510
- if (typeof event !== 'string') throw new TypeError('The event name must be a string.');
4511
- TinyHtml._preEventTargetElems(el, 'on').forEach((elem) => {
4512
- elem.addEventListener(event, handler, options);
4513
-
4514
- if (!__eventRegistry.has(elem)) __eventRegistry.set(elem, {});
4515
- const events = __eventRegistry.get(elem);
4516
- if (!events) return;
4517
- if (!Array.isArray(events[event])) events[event] = [];
4518
- events[event].push({ handler, options });
4519
- });
4530
+ static on(el, events, handler, options) {
4531
+ if (
4532
+ typeof events !== 'string' &&
4533
+ (!Array.isArray(events) || !events.every((event) => typeof event === 'string'))
4534
+ )
4535
+ throw new TypeError('The events must be a string or array of strings.');
4536
+ for (const event of Array.isArray(events) ? Array.from(new Set(events)) : [events]) {
4537
+ if (typeof event !== 'string') throw new TypeError('The event name must be a string.');
4538
+ TinyHtml._preEventTargetElems(el, 'on').forEach((elem) => {
4539
+ elem.addEventListener(event, handler, options);
4540
+
4541
+ if (!__eventRegistry.has(elem)) __eventRegistry.set(elem, {});
4542
+ const events = __eventRegistry.get(elem);
4543
+ if (!events) return;
4544
+ if (!Array.isArray(events[event])) events[event] = [];
4545
+ events[event].push({ handler, options });
4546
+ });
4547
+ }
4520
4548
  return el;
4521
4549
  }
4522
4550
 
4523
4551
  /**
4524
4552
  * Registers an event listener on the specified element.
4525
4553
  *
4526
- * @param {string} event - The event type (e.g. 'click', 'keydown').
4554
+ * @param {string|string[]} events - The event type (e.g. 'click', 'keydown').
4527
4555
  * @param {EventListenerOrEventListenerObject|null} handler - The callback function to run on event.
4528
4556
  * @param {EventRegistryOptions} [options] - Optional event listener options.
4529
4557
  * @returns {TinyEventTarget|TinyEventTarget[]}
4530
4558
  */
4531
- on(event, handler, options) {
4532
- return TinyHtml.on(this, event, handler, options);
4559
+ on(events, handler, options) {
4560
+ return TinyHtml.on(this, events, handler, options);
4533
4561
  }
4534
4562
 
4535
4563
  /**
4536
4564
  * Registers an event listener that runs only once, then is removed.
4537
4565
  *
4538
4566
  * @param {TinyEventTarget|TinyEventTarget[]} el - The target to listen on.
4539
- * @param {string} event - The event type (e.g. 'click', 'keydown').
4567
+ * @param {string|string[]} events - The event type (e.g. 'click', 'keydown').
4540
4568
  * @param {EventListenerOrEventListenerObject} handler - The callback function to run on event.
4541
4569
  * @param {EventRegistryOptions} [options={}] - Optional event listener options.
4542
4570
  * @returns {TinyEventTarget|TinyEventTarget[]}
4543
4571
  */
4544
- static once(el, event, handler, options = {}) {
4545
- if (typeof event !== 'string') throw new TypeError('The event name must be a string.');
4546
- TinyHtml._preEventTargetElems(el, 'once').forEach((elem) => {
4547
- /** @type {EventListenerOrEventListenerObject} */
4548
- const wrapped = (e) => {
4549
- TinyHtml.off(elem, event, wrapped);
4550
- if (typeof handler === 'function') handler(e);
4551
- };
4552
-
4553
- TinyHtml.on(
4554
- elem,
4555
- event,
4556
- wrapped,
4557
- typeof options === 'boolean' ? options : { ...options, once: true },
4558
- );
4559
- });
4572
+ static once(el, events, handler, options = {}) {
4573
+ if (
4574
+ typeof events !== 'string' &&
4575
+ (!Array.isArray(events) || !events.every((event) => typeof event === 'string'))
4576
+ )
4577
+ throw new TypeError('The events must be a string or array of strings.');
4578
+ for (const event of Array.isArray(events) ? Array.from(new Set(events)) : [events]) {
4579
+ if (typeof event !== 'string') throw new TypeError('The event name must be a string.');
4580
+ TinyHtml._preEventTargetElems(el, 'once').forEach((elem) => {
4581
+ /** @type {EventListenerOrEventListenerObject} */
4582
+ const wrapped = (e) => {
4583
+ TinyHtml.off(elem, event, wrapped);
4584
+ if (typeof handler === 'function') handler(e);
4585
+ };
4586
+
4587
+ TinyHtml.on(
4588
+ elem,
4589
+ event,
4590
+ wrapped,
4591
+ typeof options === 'boolean' ? options : { ...options, once: true },
4592
+ );
4593
+ });
4594
+ }
4560
4595
  return el;
4561
4596
  }
4562
4597
 
4563
4598
  /**
4564
4599
  * Registers an event listener that runs only once, then is removed.
4565
4600
  *
4566
- * @param {string} event - The event type (e.g. 'click', 'keydown').
4601
+ * @param {string|string[]} events - The event type (e.g. 'click', 'keydown').
4567
4602
  * @param {EventListenerOrEventListenerObject} handler - The callback function to run on event.
4568
4603
  * @param {EventRegistryOptions} [options={}] - Optional event listener options.
4569
4604
  * @returns {TinyEventTarget|TinyEventTarget[]}
4570
4605
  */
4571
- once(event, handler, options = {}) {
4572
- return TinyHtml.once(this, event, handler, options);
4606
+ once(events, handler, options = {}) {
4607
+ return TinyHtml.once(this, events, handler, options);
4573
4608
  }
4574
4609
 
4575
4610
  /**
4576
4611
  * Removes a specific event listener from an element.
4577
4612
  *
4578
4613
  * @param {TinyEventTarget|TinyEventTarget[]} el - The target element.
4579
- * @param {string} event - The event type.
4614
+ * @param {string|string[]} events - The event type.
4580
4615
  * @param {EventListenerOrEventListenerObject|null} handler - The function originally bound to the event.
4581
4616
  * @param {boolean|EventListenerOptions} [options] - Optional listener options.
4582
4617
  * @returns {TinyEventTarget|TinyEventTarget[]}
4583
4618
  */
4584
- static off(el, event, handler, options) {
4585
- if (typeof event !== 'string') throw new TypeError('The event name must be a string.');
4586
- TinyHtml._preEventTargetElems(el, 'off').forEach((elem) => {
4587
- elem.removeEventListener(event, handler, options);
4588
-
4589
- const events = __eventRegistry.get(elem);
4590
- if (events && events[event]) {
4591
- events[event] = events[event].filter((entry) => entry.handler !== handler);
4592
- if (events[event].length === 0) delete events[event];
4593
- }
4594
- });
4619
+ static off(el, events, handler, options) {
4620
+ if (
4621
+ typeof events !== 'string' &&
4622
+ (!Array.isArray(events) || !events.every((event) => typeof event === 'string'))
4623
+ )
4624
+ throw new TypeError('The events must be a string or array of strings.');
4625
+ for (const event of Array.isArray(events) ? Array.from(new Set(events)) : [events]) {
4626
+ if (typeof event !== 'string') throw new TypeError('The event name must be a string.');
4627
+ TinyHtml._preEventTargetElems(el, 'off').forEach((elem) => {
4628
+ elem.removeEventListener(event, handler, options);
4629
+
4630
+ const events = __eventRegistry.get(elem);
4631
+ if (events && events[event]) {
4632
+ events[event] = events[event].filter((entry) => entry.handler !== handler);
4633
+ if (events[event].length === 0) delete events[event];
4634
+ }
4635
+ });
4636
+ }
4595
4637
  return el;
4596
4638
  }
4597
4639
 
4598
4640
  /**
4599
4641
  * Removes a specific event listener from an element.
4600
4642
  *
4601
- * @param {string} event - The event type.
4643
+ * @param {string|string[]} events - The event type.
4602
4644
  * @param {EventListenerOrEventListenerObject|null} handler - The function originally bound to the event.
4603
4645
  * @param {boolean|EventListenerOptions} [options] - Optional listener options.
4604
4646
  * @returns {TinyEventTarget|TinyEventTarget[]}
4605
4647
  */
4606
- off(event, handler, options) {
4607
- return TinyHtml.off(this, event, handler, options);
4648
+ off(events, handler, options) {
4649
+ return TinyHtml.off(this, events, handler, options);
4608
4650
  }
4609
4651
 
4610
4652
  /**
4611
4653
  * Removes all event listeners of a specific type from the element.
4612
4654
  *
4613
4655
  * @param {TinyEventTarget|TinyEventTarget[]} el - The target element.
4614
- * @param {string} event - The event type to remove (e.g. 'click').
4656
+ * @param {string|string[]} events - The event type to remove (e.g. 'click').
4615
4657
  * @returns {TinyEventTarget|TinyEventTarget[]}
4616
4658
  */
4617
- static offAll(el, event) {
4618
- if (typeof event !== 'string') throw new TypeError('The event name must be a string.');
4619
- TinyHtml._preEventTargetElems(el, 'offAll').forEach((elem) => {
4620
- const events = __eventRegistry.get(elem);
4621
- if (events && events[event]) {
4622
- for (const entry of events[event]) {
4623
- elem.removeEventListener(event, entry.handler, entry.options);
4659
+ static offAll(el, events) {
4660
+ if (
4661
+ typeof events !== 'string' &&
4662
+ (!Array.isArray(events) || !events.every((event) => typeof event === 'string'))
4663
+ )
4664
+ throw new TypeError('The events must be a string or array of strings.');
4665
+ for (const event of Array.isArray(events) ? Array.from(new Set(events)) : [events]) {
4666
+ if (typeof event !== 'string') throw new TypeError('The event name must be a string.');
4667
+ TinyHtml._preEventTargetElems(el, 'offAll').forEach((elem) => {
4668
+ const events = __eventRegistry.get(elem);
4669
+ if (events && events[event]) {
4670
+ for (const entry of events[event]) {
4671
+ elem.removeEventListener(event, entry.handler, entry.options);
4672
+ }
4673
+ delete events[event];
4624
4674
  }
4625
- delete events[event];
4626
- }
4627
- });
4675
+ });
4676
+ }
4628
4677
  return el;
4629
4678
  }
4630
4679
 
4631
4680
  /**
4632
4681
  * Removes all event listeners of a specific type from the element.
4633
4682
  *
4634
- * @param {string} event - The event type to remove (e.g. 'click').
4683
+ * @param {string|string[]} events - The event type to remove (e.g. 'click').
4635
4684
  * @returns {TinyEventTarget|TinyEventTarget[]}
4636
4685
  */
4637
- offAll(event) {
4638
- return TinyHtml.offAll(this, event);
4686
+ offAll(events) {
4687
+ return TinyHtml.offAll(this, events);
4639
4688
  }
4640
4689
 
4641
4690
  /**
@@ -4681,36 +4730,43 @@ class TinyHtml {
4681
4730
  * Triggers all handlers associated with a specific event on the given element.
4682
4731
  *
4683
4732
  * @param {TinyEventTarget|TinyEventTarget[]} el - Target element where the event should be triggered.
4684
- * @param {string} event - Name of the event to trigger.
4733
+ * @param {string|string[]} events - Name of the event to trigger.
4685
4734
  * @param {Event|CustomEvent|CustomEventInit} [payload] - Optional event object or data to pass.
4686
4735
  * @returns {TinyEventTarget|TinyEventTarget[]}
4687
4736
  */
4688
- static trigger(el, event, payload = {}) {
4689
- if (typeof event !== 'string') throw new TypeError('The event name must be a string.');
4690
- TinyHtml._preEventTargetElems(el, 'trigger').forEach((elem) => {
4691
- const evt =
4692
- payload instanceof Event || payload instanceof CustomEvent
4693
- ? payload
4694
- : new CustomEvent(event, {
4695
- bubbles: true,
4696
- cancelable: true,
4697
- detail: payload,
4698
- });
4699
-
4700
- elem.dispatchEvent(evt);
4701
- });
4737
+ static trigger(el, events, payload = {}) {
4738
+ if (
4739
+ typeof events !== 'string' &&
4740
+ (!Array.isArray(events) || !events.every((event) => typeof event === 'string'))
4741
+ )
4742
+ throw new TypeError('The events must be a string or array of strings.');
4743
+ for (const event of Array.isArray(events) ? Array.from(new Set(events)) : [events]) {
4744
+ if (typeof event !== 'string') throw new TypeError('The event name must be a string.');
4745
+ TinyHtml._preEventTargetElems(el, 'trigger').forEach((elem) => {
4746
+ const evt =
4747
+ payload instanceof Event || payload instanceof CustomEvent
4748
+ ? payload
4749
+ : new CustomEvent(event, {
4750
+ bubbles: true,
4751
+ cancelable: true,
4752
+ detail: payload,
4753
+ });
4754
+
4755
+ elem.dispatchEvent(evt);
4756
+ });
4757
+ }
4702
4758
  return el;
4703
4759
  }
4704
4760
 
4705
4761
  /**
4706
4762
  * Triggers all handlers associated with a specific event on the given element.
4707
4763
  *
4708
- * @param {string} event - Name of the event to trigger.
4764
+ * @param {string|string[]} events - Name of the event to trigger.
4709
4765
  * @param {Event|CustomEvent|CustomEventInit} [payload] - Optional event object or data to pass.
4710
4766
  * @returns {TinyEventTarget|TinyEventTarget[]}
4711
4767
  */
4712
- trigger(event, payload = {}) {
4713
- return TinyHtml.trigger(this, event, payload);
4768
+ trigger(events, payload = {}) {
4769
+ return TinyHtml.trigger(this, events, payload);
4714
4770
  }
4715
4771
 
4716
4772
  ///////////////////////////////////////////////////////////////
@@ -1171,6 +1171,13 @@ declare class TinyHtml {
1171
1171
  * @returns {TinyHtmlElement}
1172
1172
  */
1173
1173
  static blur(el: TinyHtmlElement): TinyHtmlElement;
1174
+ /**
1175
+ * Select the text content of an input or textarea element.
1176
+ *
1177
+ * @param {TinyHtml|HTMLInputElement|HTMLTextAreaElement} el - The element or a selector string.
1178
+ * @returns {TinyHtml|HTMLInputElement|HTMLTextAreaElement}
1179
+ */
1180
+ static select(el: TinyHtml | HTMLInputElement | HTMLTextAreaElement): TinyHtml | HTMLInputElement | HTMLTextAreaElement;
1174
1181
  /**
1175
1182
  * Interprets a value as a boolean `true` if it matches a common truthy representation.
1176
1183
  *
@@ -1710,40 +1717,40 @@ declare class TinyHtml {
1710
1717
  * Registers an event listener on the specified element.
1711
1718
  *
1712
1719
  * @param {TinyEventTarget|TinyEventTarget[]} el - The target to listen on.
1713
- * @param {string} event - The event type (e.g. 'click', 'keydown').
1720
+ * @param {string|string[]} events - The event type (e.g. 'click', 'keydown').
1714
1721
  * @param {EventListenerOrEventListenerObject|null} handler - The callback function to run on event.
1715
1722
  * @param {EventRegistryOptions} [options] - Optional event listener options.
1716
1723
  * @returns {TinyEventTarget|TinyEventTarget[]}
1717
1724
  */
1718
- static on(el: TinyEventTarget | TinyEventTarget[], event: string, handler: EventListenerOrEventListenerObject | null, options?: EventRegistryOptions): TinyEventTarget | TinyEventTarget[];
1725
+ static on(el: TinyEventTarget | TinyEventTarget[], events: string | string[], handler: EventListenerOrEventListenerObject | null, options?: EventRegistryOptions): TinyEventTarget | TinyEventTarget[];
1719
1726
  /**
1720
1727
  * Registers an event listener that runs only once, then is removed.
1721
1728
  *
1722
1729
  * @param {TinyEventTarget|TinyEventTarget[]} el - The target to listen on.
1723
- * @param {string} event - The event type (e.g. 'click', 'keydown').
1730
+ * @param {string|string[]} events - The event type (e.g. 'click', 'keydown').
1724
1731
  * @param {EventListenerOrEventListenerObject} handler - The callback function to run on event.
1725
1732
  * @param {EventRegistryOptions} [options={}] - Optional event listener options.
1726
1733
  * @returns {TinyEventTarget|TinyEventTarget[]}
1727
1734
  */
1728
- static once(el: TinyEventTarget | TinyEventTarget[], event: string, handler: EventListenerOrEventListenerObject, options?: EventRegistryOptions): TinyEventTarget | TinyEventTarget[];
1735
+ static once(el: TinyEventTarget | TinyEventTarget[], events: string | string[], handler: EventListenerOrEventListenerObject, options?: EventRegistryOptions): TinyEventTarget | TinyEventTarget[];
1729
1736
  /**
1730
1737
  * Removes a specific event listener from an element.
1731
1738
  *
1732
1739
  * @param {TinyEventTarget|TinyEventTarget[]} el - The target element.
1733
- * @param {string} event - The event type.
1740
+ * @param {string|string[]} events - The event type.
1734
1741
  * @param {EventListenerOrEventListenerObject|null} handler - The function originally bound to the event.
1735
1742
  * @param {boolean|EventListenerOptions} [options] - Optional listener options.
1736
1743
  * @returns {TinyEventTarget|TinyEventTarget[]}
1737
1744
  */
1738
- static off(el: TinyEventTarget | TinyEventTarget[], event: string, handler: EventListenerOrEventListenerObject | null, options?: boolean | EventListenerOptions): TinyEventTarget | TinyEventTarget[];
1745
+ static off(el: TinyEventTarget | TinyEventTarget[], events: string | string[], handler: EventListenerOrEventListenerObject | null, options?: boolean | EventListenerOptions): TinyEventTarget | TinyEventTarget[];
1739
1746
  /**
1740
1747
  * Removes all event listeners of a specific type from the element.
1741
1748
  *
1742
1749
  * @param {TinyEventTarget|TinyEventTarget[]} el - The target element.
1743
- * @param {string} event - The event type to remove (e.g. 'click').
1750
+ * @param {string|string[]} events - The event type to remove (e.g. 'click').
1744
1751
  * @returns {TinyEventTarget|TinyEventTarget[]}
1745
1752
  */
1746
- static offAll(el: TinyEventTarget | TinyEventTarget[], event: string): TinyEventTarget | TinyEventTarget[];
1753
+ static offAll(el: TinyEventTarget | TinyEventTarget[], events: string | string[]): TinyEventTarget | TinyEventTarget[];
1747
1754
  /**
1748
1755
  * Removes all event listeners of all types from the element.
1749
1756
  *
@@ -1757,11 +1764,11 @@ declare class TinyHtml {
1757
1764
  * Triggers all handlers associated with a specific event on the given element.
1758
1765
  *
1759
1766
  * @param {TinyEventTarget|TinyEventTarget[]} el - Target element where the event should be triggered.
1760
- * @param {string} event - Name of the event to trigger.
1767
+ * @param {string|string[]} events - Name of the event to trigger.
1761
1768
  * @param {Event|CustomEvent|CustomEventInit} [payload] - Optional event object or data to pass.
1762
1769
  * @returns {TinyEventTarget|TinyEventTarget[]}
1763
1770
  */
1764
- static trigger(el: TinyEventTarget | TinyEventTarget[], event: string, payload?: Event | CustomEvent | CustomEventInit): TinyEventTarget | TinyEventTarget[];
1771
+ static trigger(el: TinyEventTarget | TinyEventTarget[], events: string | string[], payload?: Event | CustomEvent | CustomEventInit): TinyEventTarget | TinyEventTarget[];
1765
1772
  /**
1766
1773
  * Internal property name normalization map (similar to jQuery's `propFix`).
1767
1774
  * Maps attribute-like names to their JavaScript DOM property equivalents.
@@ -2417,6 +2424,11 @@ declare class TinyHtml {
2417
2424
  * @returns {TinyHtmlElement}
2418
2425
  */
2419
2426
  blur(): TinyHtmlElement;
2427
+ /**
2428
+ * Select the text content of an input or textarea element.
2429
+ * @returns {TinyHtml|HTMLInputElement|HTMLTextAreaElement}
2430
+ */
2431
+ select(): TinyHtml | HTMLInputElement | HTMLTextAreaElement;
2420
2432
  /**
2421
2433
  * Gets the width or height of an element based on the box model.
2422
2434
  * @param {"width"|"height"} type - Dimension type.
@@ -2748,37 +2760,37 @@ declare class TinyHtml {
2748
2760
  /**
2749
2761
  * Registers an event listener on the specified element.
2750
2762
  *
2751
- * @param {string} event - The event type (e.g. 'click', 'keydown').
2763
+ * @param {string|string[]} events - The event type (e.g. 'click', 'keydown').
2752
2764
  * @param {EventListenerOrEventListenerObject|null} handler - The callback function to run on event.
2753
2765
  * @param {EventRegistryOptions} [options] - Optional event listener options.
2754
2766
  * @returns {TinyEventTarget|TinyEventTarget[]}
2755
2767
  */
2756
- on(event: string, handler: EventListenerOrEventListenerObject | null, options?: EventRegistryOptions): TinyEventTarget | TinyEventTarget[];
2768
+ on(events: string | string[], handler: EventListenerOrEventListenerObject | null, options?: EventRegistryOptions): TinyEventTarget | TinyEventTarget[];
2757
2769
  /**
2758
2770
  * Registers an event listener that runs only once, then is removed.
2759
2771
  *
2760
- * @param {string} event - The event type (e.g. 'click', 'keydown').
2772
+ * @param {string|string[]} events - The event type (e.g. 'click', 'keydown').
2761
2773
  * @param {EventListenerOrEventListenerObject} handler - The callback function to run on event.
2762
2774
  * @param {EventRegistryOptions} [options={}] - Optional event listener options.
2763
2775
  * @returns {TinyEventTarget|TinyEventTarget[]}
2764
2776
  */
2765
- once(event: string, handler: EventListenerOrEventListenerObject, options?: EventRegistryOptions): TinyEventTarget | TinyEventTarget[];
2777
+ once(events: string | string[], handler: EventListenerOrEventListenerObject, options?: EventRegistryOptions): TinyEventTarget | TinyEventTarget[];
2766
2778
  /**
2767
2779
  * Removes a specific event listener from an element.
2768
2780
  *
2769
- * @param {string} event - The event type.
2781
+ * @param {string|string[]} events - The event type.
2770
2782
  * @param {EventListenerOrEventListenerObject|null} handler - The function originally bound to the event.
2771
2783
  * @param {boolean|EventListenerOptions} [options] - Optional listener options.
2772
2784
  * @returns {TinyEventTarget|TinyEventTarget[]}
2773
2785
  */
2774
- off(event: string, handler: EventListenerOrEventListenerObject | null, options?: boolean | EventListenerOptions): TinyEventTarget | TinyEventTarget[];
2786
+ off(events: string | string[], handler: EventListenerOrEventListenerObject | null, options?: boolean | EventListenerOptions): TinyEventTarget | TinyEventTarget[];
2775
2787
  /**
2776
2788
  * Removes all event listeners of a specific type from the element.
2777
2789
  *
2778
- * @param {string} event - The event type to remove (e.g. 'click').
2790
+ * @param {string|string[]} events - The event type to remove (e.g. 'click').
2779
2791
  * @returns {TinyEventTarget|TinyEventTarget[]}
2780
2792
  */
2781
- offAll(event: string): TinyEventTarget | TinyEventTarget[];
2793
+ offAll(events: string | string[]): TinyEventTarget | TinyEventTarget[];
2782
2794
  /**
2783
2795
  * Removes all event listeners of all types from the element.
2784
2796
  *
@@ -2790,11 +2802,11 @@ declare class TinyHtml {
2790
2802
  /**
2791
2803
  * Triggers all handlers associated with a specific event on the given element.
2792
2804
  *
2793
- * @param {string} event - Name of the event to trigger.
2805
+ * @param {string|string[]} events - Name of the event to trigger.
2794
2806
  * @param {Event|CustomEvent|CustomEventInit} [payload] - Optional event object or data to pass.
2795
2807
  * @returns {TinyEventTarget|TinyEventTarget[]}
2796
2808
  */
2797
- trigger(event: string, payload?: Event | CustomEvent | CustomEventInit): TinyEventTarget | TinyEventTarget[];
2809
+ trigger(events: string | string[], payload?: Event | CustomEvent | CustomEventInit): TinyEventTarget | TinyEventTarget[];
2798
2810
  /**
2799
2811
  * Get an attribute on an element.
2800
2812
  * @param {string} name