cotomy 0.2.1 → 0.3.1

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.
package/README.md CHANGED
@@ -91,8 +91,8 @@ The View layer provides thin wrappers around DOM elements and window events.
91
91
  - `rect(): { top, left, width, height }`
92
92
  - `innerRect()` — Subtracts padding
93
93
  - Events
94
- - Generic: `on(event, handler, options?)`, `off(event, handler?, options?)`, `once(event, handler, options?)`, `trigger(event[, Event])`
95
- - Delegation: `onChild(event, selector, handler, options?)`
94
+ - Generic: `on(event, handler, options?)`, `off(event, handler?, options?)`, `once(event, handler, options?)`, `trigger(event[, Event])` — `trigger` emits bubbling events by default and can be customized by passing an `Event`
95
+ - Delegation: `onSubTree(event, selector, handler, options?)`
96
96
  - Mouse: `click`, `dblclick`, `mouseover`, `mouseout`, `mousedown`, `mouseup`, `mousemove`, `mouseenter`, `mouseleave`
97
97
  - Keyboard: `keydown`, `keyup`, `keypress`
98
98
  - Inputs: `change`, `input`
@@ -114,7 +114,7 @@ const panel = new CotomyElement({
114
114
  `,
115
115
  });
116
116
 
117
- panel.onChild("click", ".ok", () => console.log("clicked!"));
117
+ panel.onSubTree("click", ".ok", () => console.log("clicked!"));
118
118
  document.body.appendChild(panel.element);
119
119
  ```
120
120
 
@@ -134,7 +134,7 @@ document.body.appendChild(panel.element);
134
134
  - `append(element: CotomyElement)`
135
135
  - `moveNext(focused: CotomyElement, shift = false)` — Move focus to next/previous focusable
136
136
  - Window events
137
- - `on(event, handler)` / `off(event, handler?)` / `trigger(event)`
137
+ - `on(event, handler)` / `off(event, handler?)` / `trigger(event[, Event])` — CotomyWindow’s `trigger` also bubbles by default and accepts an `Event` to override the behavior
138
138
  - `load(handler)` / `ready(handler)`
139
139
  - `resize([handler])` / `scroll([handler])` / `changeLayout([handler])` / `pageshow([handler])`
140
140
  - Window state
@@ -1421,7 +1421,7 @@ class CotomyElement {
1421
1421
  return this;
1422
1422
  }
1423
1423
  trigger(event, e) {
1424
- this.element.dispatchEvent(e ?? new Event(event));
1424
+ this.element.dispatchEvent(e ?? new Event(event, { bubbles: true }));
1425
1425
  return this;
1426
1426
  }
1427
1427
  on(event, handle, options) {
@@ -1429,7 +1429,7 @@ class CotomyElement {
1429
1429
  EventRegistry.instance.on(event, this, entry);
1430
1430
  return this;
1431
1431
  }
1432
- onChild(event, selector, handle, options) {
1432
+ onSubTree(event, selector, handle, options) {
1433
1433
  const delegate = (e) => {
1434
1434
  const target = e.target;
1435
1435
  if (target && target.closest(selector)) {
@@ -1853,8 +1853,8 @@ class CotomyWindow {
1853
1853
  focusableElements[nextIndex].setFocus();
1854
1854
  }
1855
1855
  }
1856
- trigger(event) {
1857
- window.dispatchEvent(new Event(event));
1856
+ trigger(event, e) {
1857
+ window.dispatchEvent(e ?? new Event(event, { bubbles: true }));
1858
1858
  }
1859
1859
  on(event, handle) {
1860
1860
  if (!this._eventHandlers[event])