revojs 0.0.19 → 0.0.20

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.
@@ -1,4 +1,4 @@
1
- import { type HtmlAttributes } from "../jsx";
1
+ import { type EventListener, type HtmlAttributes } from "../jsx";
2
2
  import { type Descriptor, Hooks, Scope, type State, type Value } from "../signals";
3
3
  export type TypeOf<T> = {
4
4
  (): T;
@@ -11,7 +11,7 @@ export type Template = {
11
11
  children: Array<Slot>;
12
12
  };
13
13
  export type EventInput<T extends Events> = {
14
- [K in keyof T]?: (event: Infer<T[K]["type"]> extends Event ? Infer<T[K]["type"]> : CustomEvent<Infer<T[K]["type"]>>) => void;
14
+ [K in keyof T]?: EventListener<Infer<T[K]["type"]> extends Event ? Infer<T[K]["type"]> : CustomEvent<Infer<T[K]["type"]>>>;
15
15
  };
16
16
  export type AttributeInput<T extends Attributes> = {
17
17
  [K in keyof T]?: Value<Infer<T[K]["type"]> | undefined>;
package/dist/index.js CHANGED
@@ -324,7 +324,11 @@ const renderToNode = async (scope, slot) => {
324
324
  if (name.startsWith("on")) {
325
325
  const event = name.substring(2).toLowerCase();
326
326
  const controller = new AbortController();
327
- element.addEventListener(event, (event$1) => typeof value === "function" ? value(event$1) : void 0, { signal: controller.signal });
327
+ element.addEventListener(event, (event$1) => {
328
+ const invoke = value;
329
+ if (Array.isArray(invoke)) for (const target of invoke) target?.(event$1);
330
+ else invoke?.(event$1);
331
+ }, { signal: controller.signal });
328
332
  scope.dispose.push(() => controller.abort());
329
333
  } else createCompute(scope, () => {
330
334
  const set = toString(value);
@@ -1,127 +1,128 @@
1
1
  import { type Slot } from "../html";
2
+ export type EventListener<T extends Event> = ((event: T) => void) | Array<(event: T) => void>;
2
3
  export type EventAttributes = {
3
- onScroll?: (event: Event) => void;
4
- onScrollCapture?: (event: Event) => void;
5
- onScrollEnd?: (event: Event) => void;
6
- onScrollEndCapture?: (event: Event) => void;
7
- onWheel?: (event: WheelEvent) => void;
8
- onWheelCapture?: (event: WheelEvent) => void;
9
- onAnimationCancel?: (event: AnimationEvent) => void;
10
- onAnimationCancelCapture?: (event: AnimationEvent) => void;
11
- onAnimationEnd?: (event: AnimationEvent) => void;
12
- onAnimationEndCapture?: (event: AnimationEvent) => void;
13
- onAnimationIteration?: (event: AnimationEvent) => void;
14
- onAnimationIterationCapture?: (event: AnimationEvent) => void;
15
- onAnimationStart?: (event: AnimationEvent) => void;
16
- onAnimationStartCapture?: (event: AnimationEvent) => void;
17
- onCopy?: (event: ClipboardEvent) => void;
18
- onCopyCapture?: (event: ClipboardEvent) => void;
19
- onCut?: (event: ClipboardEvent) => void;
20
- onCutCapture?: (event: ClipboardEvent) => void;
21
- onPaste?: (event: ClipboardEvent) => void;
22
- onPasteCapture?: (event: ClipboardEvent) => void;
23
- onCompositionEnd?: (event: CompositionEvent) => void;
24
- onCompositionEndCapture?: (event: CompositionEvent) => void;
25
- onCompositionStart?: (event: CompositionEvent) => void;
26
- onCompositionStartCapture?: (event: CompositionEvent) => void;
27
- onCompositionUpdate?: (event: CompositionEvent) => void;
28
- onCompositionUpdateCapture?: (event: CompositionEvent) => void;
29
- onBlur?: (event: FocusEvent) => void;
30
- onBlurCapture?: (event: FocusEvent) => void;
31
- onFocus?: (event: FocusEvent) => void;
32
- onFocusCapture?: (event: FocusEvent) => void;
33
- onFocusIn?: (event: FocusEvent) => void;
34
- onFocusInCapture?: (event: FocusEvent) => void;
35
- onFocusOut?: (event: FocusEvent) => void;
36
- onFocusOutCapture?: (event: FocusEvent) => void;
37
- onFullscreenChange?: (event: Event) => void;
38
- onFullscreenChangeCapture?: (event: Event) => void;
39
- onFullscreenError?: (event: Event) => void;
40
- onFullscreenErrorCapture?: (event: Event) => void;
41
- onKeyDown?: (event: KeyboardEvent) => void;
42
- onKeyDownCapture?: (event: KeyboardEvent) => void;
43
- onKeyPress?: (event: KeyboardEvent) => void;
44
- onKeyPressCapture?: (event: KeyboardEvent) => void;
45
- onKeyUp?: (event: KeyboardEvent) => void;
46
- onKeyUpCapture?: (event: KeyboardEvent) => void;
47
- onAuxClick?: (event: MouseEvent) => void;
48
- onAuxClickCapture?: (event: MouseEvent) => void;
49
- onClick?: (event: MouseEvent) => void;
50
- onClickCapture?: (event: MouseEvent) => void;
51
- onContextMenu?: (event: MouseEvent) => void;
52
- onContextMenuCapture?: (event: MouseEvent) => void;
53
- onDoubleClick?: (event: MouseEvent) => void;
54
- onDoubleClickCapture?: (event: MouseEvent) => void;
55
- onMouseDown?: (event: MouseEvent) => void;
56
- onMouseDownCapture?: (event: MouseEvent) => void;
57
- onMouseEnter?: (event: MouseEvent) => void;
58
- onMouseEnterCapture?: (event: MouseEvent) => void;
59
- onMouseLeave?: (event: MouseEvent) => void;
60
- onMouseLeaveCapture?: (event: MouseEvent) => void;
61
- onMouseMove?: (event: MouseEvent) => void;
62
- onMouseMoveCapture?: (event: MouseEvent) => void;
63
- onMouseOut?: (event: MouseEvent) => void;
64
- onMouseOutCapture?: (event: MouseEvent) => void;
65
- onMouseOver?: (event: MouseEvent) => void;
66
- onMouseOverCapture?: (event: MouseEvent) => void;
67
- onMouseUp?: (event: MouseEvent) => void;
68
- onMouseUpCapture?: (event: MouseEvent) => void;
69
- onMouseWheel?: (event: WheelEvent) => void;
70
- onMouseWheelCapture?: (event: WheelEvent) => void;
71
- onGotPointerCapture?: (event: PointerEvent) => void;
72
- onGotPointerCaptureCapture?: (event: PointerEvent) => void;
73
- onLostPointerCapture?: (event: PointerEvent) => void;
74
- onLostPointerCaptureCapture?: (event: PointerEvent) => void;
75
- onPointerCancel?: (event: PointerEvent) => void;
76
- onPointerCancelCapture?: (event: PointerEvent) => void;
77
- onPointerDown?: (event: PointerEvent) => void;
78
- onPointerDownCapture?: (event: PointerEvent) => void;
79
- onPointerEnter?: (event: PointerEvent) => void;
80
- onPointerEnterCapture?: (event: PointerEvent) => void;
81
- onPointerLeave?: (event: PointerEvent) => void;
82
- onPointerLeaveCapture?: (event: PointerEvent) => void;
83
- onPointerMove?: (event: PointerEvent) => void;
84
- onPointerMoveCapture?: (event: PointerEvent) => void;
85
- onPointerOut?: (event: PointerEvent) => void;
86
- onPointerOutCapture?: (event: PointerEvent) => void;
87
- onPointerOver?: (event: PointerEvent) => void;
88
- onPointerOverCapture?: (event: PointerEvent) => void;
89
- onPointerUp?: (event: PointerEvent) => void;
90
- onPointerUpCapture?: (event: PointerEvent) => void;
91
- onTouchCancel?: (event: TouchEvent) => void;
92
- onTouchCancelCapture?: (event: TouchEvent) => void;
93
- onTouchEnd?: (event: TouchEvent) => void;
94
- onTouchEndCapture?: (event: TouchEvent) => void;
95
- onTouchMove?: (event: TouchEvent) => void;
96
- onTouchMoveCapture?: (event: TouchEvent) => void;
97
- onTouchStart?: (event: TouchEvent) => void;
98
- onTouchStartCapture?: (event: TouchEvent) => void;
99
- onTransitionCancel?: (event: TransitionEvent) => void;
100
- onTransitionCancelCapture?: (event: TransitionEvent) => void;
101
- onTransitionEnd?: (event: TransitionEvent) => void;
102
- onTransitionEndCapture?: (event: TransitionEvent) => void;
103
- onTransitionRun?: (event: TransitionEvent) => void;
104
- onTransitionRunCapture?: (event: TransitionEvent) => void;
105
- onTransitionStart?: (event: TransitionEvent) => void;
106
- onTransitionStartCapture?: (event: TransitionEvent) => void;
107
- onFormData?: (event: FormDataEvent) => void;
108
- onFormDataCapture?: (event: FormDataEvent) => void;
109
- onReset?: (event: Event) => void;
110
- onResetCapture?: (event: Event) => void;
111
- onSubmit?: (event: Event) => void;
112
- onSubmitCapture?: (event: Event) => void;
113
- onInvalid?: (event: Event) => void;
114
- onInvalidCapture?: (event: Event) => void;
115
- onSelect?: (event: Event) => void;
116
- onSelectCapture?: (event: Event) => void;
117
- onSelectChange?: (event: Event) => void;
118
- onSelectChangeCapture?: (event: Event) => void;
119
- onInput?: (event: InputEvent) => void;
120
- onInputCapture?: (event: InputEvent) => void;
121
- onBeforeInput?: (event: InputEvent) => void;
122
- onBeforeInputCapture?: (event: InputEvent) => void;
123
- onChange?: (event: Event) => void;
124
- onChangeCapture?: (event: Event) => void;
4
+ onScroll?: EventListener<Event>;
5
+ onScrollCapture?: EventListener<Event>;
6
+ onScrollEnd?: EventListener<Event>;
7
+ onScrollEndCapture?: EventListener<Event>;
8
+ onWheel?: EventListener<WheelEvent>;
9
+ onWheelCapture?: EventListener<WheelEvent>;
10
+ onAnimationCancel?: EventListener<AnimationEvent>;
11
+ onAnimationCancelCapture?: EventListener<AnimationEvent>;
12
+ onAnimationEnd?: EventListener<AnimationEvent>;
13
+ onAnimationEndCapture?: EventListener<AnimationEvent>;
14
+ onAnimationIteration?: EventListener<AnimationEvent>;
15
+ onAnimationIterationCapture?: EventListener<AnimationEvent>;
16
+ onAnimationStart?: EventListener<AnimationEvent>;
17
+ onAnimationStartCapture?: EventListener<AnimationEvent>;
18
+ onCopy?: EventListener<ClipboardEvent>;
19
+ onCopyCapture?: EventListener<ClipboardEvent>;
20
+ onCut?: EventListener<ClipboardEvent>;
21
+ onCutCapture?: EventListener<ClipboardEvent>;
22
+ onPaste?: EventListener<ClipboardEvent>;
23
+ onPasteCapture?: EventListener<ClipboardEvent>;
24
+ onCompositionEnd?: EventListener<CompositionEvent>;
25
+ onCompositionEndCapture?: EventListener<CompositionEvent>;
26
+ onCompositionStart?: EventListener<CompositionEvent>;
27
+ onCompositionStartCapture?: EventListener<CompositionEvent>;
28
+ onCompositionUpdate?: EventListener<CompositionEvent>;
29
+ onCompositionUpdateCapture?: EventListener<CompositionEvent>;
30
+ onBlur?: EventListener<FocusEvent>;
31
+ onBlurCapture?: EventListener<FocusEvent>;
32
+ onFocus?: EventListener<FocusEvent>;
33
+ onFocusCapture?: EventListener<FocusEvent>;
34
+ onFocusIn?: EventListener<FocusEvent>;
35
+ onFocusInCapture?: EventListener<FocusEvent>;
36
+ onFocusOut?: EventListener<FocusEvent>;
37
+ onFocusOutCapture?: EventListener<FocusEvent>;
38
+ onFullscreenChange?: EventListener<Event>;
39
+ onFullscreenChangeCapture?: EventListener<Event>;
40
+ onFullscreenError?: EventListener<Event>;
41
+ onFullscreenErrorCapture?: EventListener<Event>;
42
+ onKeyDown?: EventListener<KeyboardEvent>;
43
+ onKeyDownCapture?: EventListener<KeyboardEvent>;
44
+ onKeyPress?: EventListener<KeyboardEvent>;
45
+ onKeyPressCapture?: EventListener<KeyboardEvent>;
46
+ onKeyUp?: EventListener<KeyboardEvent>;
47
+ onKeyUpCapture?: EventListener<KeyboardEvent>;
48
+ onAuxClick?: EventListener<MouseEvent>;
49
+ onAuxClickCapture?: EventListener<MouseEvent>;
50
+ onClick?: EventListener<MouseEvent>;
51
+ onClickCapture?: EventListener<MouseEvent>;
52
+ onContextMenu?: EventListener<MouseEvent>;
53
+ onContextMenuCapture?: EventListener<MouseEvent>;
54
+ onDoubleClick?: EventListener<MouseEvent>;
55
+ onDoubleClickCapture?: EventListener<MouseEvent>;
56
+ onMouseDown?: EventListener<MouseEvent>;
57
+ onMouseDownCapture?: EventListener<MouseEvent>;
58
+ onMouseEnter?: EventListener<MouseEvent>;
59
+ onMouseEnterCapture?: EventListener<MouseEvent>;
60
+ onMouseLeave?: EventListener<MouseEvent>;
61
+ onMouseLeaveCapture?: EventListener<MouseEvent>;
62
+ onMouseMove?: EventListener<MouseEvent>;
63
+ onMouseMoveCapture?: EventListener<MouseEvent>;
64
+ onMouseOut?: EventListener<MouseEvent>;
65
+ onMouseOutCapture?: EventListener<MouseEvent>;
66
+ onMouseOver?: EventListener<MouseEvent>;
67
+ onMouseOverCapture?: EventListener<MouseEvent>;
68
+ onMouseUp?: EventListener<MouseEvent>;
69
+ onMouseUpCapture?: EventListener<MouseEvent>;
70
+ onMouseWheel?: EventListener<WheelEvent>;
71
+ onMouseWheelCapture?: EventListener<WheelEvent>;
72
+ onGotPointerCapture?: EventListener<PointerEvent>;
73
+ onGotPointerCaptureCapture?: EventListener<PointerEvent>;
74
+ onLostPointerCapture?: EventListener<PointerEvent>;
75
+ onLostPointerCaptureCapture?: EventListener<PointerEvent>;
76
+ onPointerCancel?: EventListener<PointerEvent>;
77
+ onPointerCancelCapture?: EventListener<PointerEvent>;
78
+ onPointerDown?: EventListener<PointerEvent>;
79
+ onPointerDownCapture?: EventListener<PointerEvent>;
80
+ onPointerEnter?: EventListener<PointerEvent>;
81
+ onPointerEnterCapture?: EventListener<PointerEvent>;
82
+ onPointerLeave?: EventListener<PointerEvent>;
83
+ onPointerLeaveCapture?: EventListener<PointerEvent>;
84
+ onPointerMove?: EventListener<PointerEvent>;
85
+ onPointerMoveCapture?: EventListener<PointerEvent>;
86
+ onPointerOut?: EventListener<PointerEvent>;
87
+ onPointerOutCapture?: EventListener<PointerEvent>;
88
+ onPointerOver?: EventListener<PointerEvent>;
89
+ onPointerOverCapture?: EventListener<PointerEvent>;
90
+ onPointerUp?: EventListener<PointerEvent>;
91
+ onPointerUpCapture?: EventListener<PointerEvent>;
92
+ onTouchCancel?: EventListener<TouchEvent>;
93
+ onTouchCancelCapture?: EventListener<TouchEvent>;
94
+ onTouchEnd?: EventListener<TouchEvent>;
95
+ onTouchEndCapture?: EventListener<TouchEvent>;
96
+ onTouchMove?: EventListener<TouchEvent>;
97
+ onTouchMoveCapture?: EventListener<TouchEvent>;
98
+ onTouchStart?: EventListener<TouchEvent>;
99
+ onTouchStartCapture?: EventListener<TouchEvent>;
100
+ onTransitionCancel?: EventListener<TransitionEvent>;
101
+ onTransitionCancelCapture?: EventListener<TransitionEvent>;
102
+ onTransitionEnd?: EventListener<TransitionEvent>;
103
+ onTransitionEndCapture?: EventListener<TransitionEvent>;
104
+ onTransitionRun?: EventListener<TransitionEvent>;
105
+ onTransitionRunCapture?: EventListener<TransitionEvent>;
106
+ onTransitionStart?: EventListener<TransitionEvent>;
107
+ onTransitionStartCapture?: EventListener<TransitionEvent>;
108
+ onFormData?: EventListener<FormDataEvent>;
109
+ onFormDataCapture?: EventListener<FormDataEvent>;
110
+ onReset?: EventListener<Event>;
111
+ onResetCapture?: EventListener<Event>;
112
+ onSubmit?: EventListener<Event>;
113
+ onSubmitCapture?: EventListener<Event>;
114
+ onInvalid?: EventListener<Event>;
115
+ onInvalidCapture?: EventListener<Event>;
116
+ onSelect?: EventListener<Event>;
117
+ onSelectCapture?: EventListener<Event>;
118
+ onSelectChange?: EventListener<Event>;
119
+ onSelectChangeCapture?: EventListener<Event>;
120
+ onInput?: EventListener<InputEvent>;
121
+ onInputCapture?: EventListener<InputEvent>;
122
+ onBeforeInput?: EventListener<InputEvent>;
123
+ onBeforeInputCapture?: EventListener<InputEvent>;
124
+ onChange?: EventListener<Event>;
125
+ onChangeCapture?: EventListener<Event>;
125
126
  };
126
127
  export type HtmlTags = Record<string, HtmlAttributes & EventAttributes>;
127
128
  export type HtmlAttributes = Record<string, unknown>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "revojs",
3
- "version": "0.0.19",
3
+ "version": "0.0.20",
4
4
  "type": "module",
5
5
  "repository": "coverbase/revojs",
6
6
  "license": "MIT",