@ghia/native 0.0.0 → 0.11.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 (211) hide show
  1. package/LICENSE +201 -0
  2. package/browser.mjs +7 -0
  3. package/dist/aria.d.ts +72 -0
  4. package/dist/aria.d.ts.map +1 -0
  5. package/dist/aria.js +2 -0
  6. package/dist/aria.js.map +1 -0
  7. package/dist/automation/client.d.ts +243 -0
  8. package/dist/automation/client.d.ts.map +1 -0
  9. package/dist/automation/client.js +801 -0
  10. package/dist/automation/client.js.map +1 -0
  11. package/dist/automation/index.d.ts +5 -0
  12. package/dist/automation/index.d.ts.map +1 -0
  13. package/dist/automation/index.js +4 -0
  14. package/dist/automation/index.js.map +1 -0
  15. package/dist/automation/protocol.d.ts +309 -0
  16. package/dist/automation/protocol.d.ts.map +1 -0
  17. package/dist/automation/protocol.js +320 -0
  18. package/dist/automation/protocol.js.map +1 -0
  19. package/dist/blob-images.d.ts +32 -0
  20. package/dist/blob-images.d.ts.map +1 -0
  21. package/dist/blob-images.js +55 -0
  22. package/dist/blob-images.js.map +1 -0
  23. package/dist/bounds.d.ts +61 -0
  24. package/dist/bounds.d.ts.map +1 -0
  25. package/dist/bounds.js +85 -0
  26. package/dist/bounds.js.map +1 -0
  27. package/dist/clipboard-global.d.ts +11 -0
  28. package/dist/clipboard-global.d.ts.map +1 -0
  29. package/dist/clipboard-global.js +2 -0
  30. package/dist/clipboard-global.js.map +1 -0
  31. package/dist/clipboard.d.ts +19 -0
  32. package/dist/clipboard.d.ts.map +1 -0
  33. package/dist/clipboard.js +41 -0
  34. package/dist/clipboard.js.map +1 -0
  35. package/dist/cpu-throttle.d.ts +6 -0
  36. package/dist/cpu-throttle.d.ts.map +1 -0
  37. package/dist/cpu-throttle.js +42 -0
  38. package/dist/cpu-throttle.js.map +1 -0
  39. package/dist/events/data-transfer.d.ts +23 -0
  40. package/dist/events/data-transfer.d.ts.map +1 -0
  41. package/dist/events/data-transfer.js +97 -0
  42. package/dist/events/data-transfer.js.map +1 -0
  43. package/dist/events/dispatch.d.ts +144 -0
  44. package/dist/events/dispatch.d.ts.map +1 -0
  45. package/dist/events/dispatch.js +241 -0
  46. package/dist/events/dispatch.js.map +1 -0
  47. package/dist/events/drag.d.ts +21 -0
  48. package/dist/events/drag.d.ts.map +1 -0
  49. package/dist/events/drag.js +111 -0
  50. package/dist/events/drag.js.map +1 -0
  51. package/dist/events/event-props.d.ts +19 -0
  52. package/dist/events/event-props.d.ts.map +1 -0
  53. package/dist/events/event-props.js +104 -0
  54. package/dist/events/event-props.js.map +1 -0
  55. package/dist/events/keyboard-defaults.d.ts +18 -0
  56. package/dist/events/keyboard-defaults.d.ts.map +1 -0
  57. package/dist/events/keyboard-defaults.js +121 -0
  58. package/dist/events/keyboard-defaults.js.map +1 -0
  59. package/dist/events/listeners.d.ts +18 -0
  60. package/dist/events/listeners.d.ts.map +1 -0
  61. package/dist/events/listeners.js +49 -0
  62. package/dist/events/listeners.js.map +1 -0
  63. package/dist/events/route.d.ts +17 -0
  64. package/dist/events/route.d.ts.map +1 -0
  65. package/dist/events/route.js +36 -0
  66. package/dist/events/route.js.map +1 -0
  67. package/dist/events/types.d.ts +269 -0
  68. package/dist/events/types.d.ts.map +1 -0
  69. package/dist/events/types.js +2 -0
  70. package/dist/events/types.js.map +1 -0
  71. package/dist/events/window-target.d.ts +120 -0
  72. package/dist/events/window-target.d.ts.map +1 -0
  73. package/dist/events/window-target.js +311 -0
  74. package/dist/events/window-target.js.map +1 -0
  75. package/dist/eyedropper.d.ts +33 -0
  76. package/dist/eyedropper.d.ts.map +1 -0
  77. package/dist/eyedropper.js +66 -0
  78. package/dist/eyedropper.js.map +1 -0
  79. package/dist/focus.d.ts +18 -0
  80. package/dist/focus.d.ts.map +1 -0
  81. package/dist/focus.js +26 -0
  82. package/dist/focus.js.map +1 -0
  83. package/dist/fonts.d.ts +12 -0
  84. package/dist/fonts.d.ts.map +1 -0
  85. package/dist/fonts.js +17 -0
  86. package/dist/fonts.js.map +1 -0
  87. package/dist/forms.d.ts +10 -0
  88. package/dist/forms.d.ts.map +1 -0
  89. package/dist/forms.js +9 -0
  90. package/dist/forms.js.map +1 -0
  91. package/dist/host-runtime.d.ts +108 -0
  92. package/dist/host-runtime.d.ts.map +1 -0
  93. package/dist/host-runtime.js +213 -0
  94. package/dist/host-runtime.js.map +1 -0
  95. package/dist/host.d.ts +2403 -0
  96. package/dist/host.d.ts.map +1 -0
  97. package/dist/host.js +30 -0
  98. package/dist/host.js.map +1 -0
  99. package/dist/idle-gc.d.ts +36 -0
  100. package/dist/idle-gc.d.ts.map +1 -0
  101. package/dist/idle-gc.js +70 -0
  102. package/dist/idle-gc.js.map +1 -0
  103. package/dist/keyframes.d.ts +108 -0
  104. package/dist/keyframes.d.ts.map +1 -0
  105. package/dist/keyframes.js +107 -0
  106. package/dist/keyframes.js.map +1 -0
  107. package/dist/layout-animation.d.ts +38 -0
  108. package/dist/layout-animation.d.ts.map +1 -0
  109. package/dist/layout-animation.js +41 -0
  110. package/dist/layout-animation.js.map +1 -0
  111. package/dist/match-media.d.ts +62 -0
  112. package/dist/match-media.d.ts.map +1 -0
  113. package/dist/match-media.js +272 -0
  114. package/dist/match-media.js.map +1 -0
  115. package/dist/media-query.d.ts +21 -0
  116. package/dist/media-query.d.ts.map +1 -0
  117. package/dist/media-query.js +599 -0
  118. package/dist/media-query.js.map +1 -0
  119. package/dist/motion-bindings.d.ts +36 -0
  120. package/dist/motion-bindings.d.ts.map +1 -0
  121. package/dist/motion-bindings.js +107 -0
  122. package/dist/motion-bindings.js.map +1 -0
  123. package/dist/motion-config.d.ts +20 -0
  124. package/dist/motion-config.d.ts.map +1 -0
  125. package/dist/motion-config.js +51 -0
  126. package/dist/motion-config.js.map +1 -0
  127. package/dist/motion-span.d.ts +57 -0
  128. package/dist/motion-span.d.ts.map +1 -0
  129. package/dist/motion-span.js +150 -0
  130. package/dist/motion-span.js.map +1 -0
  131. package/dist/motion-value.d.ts +269 -0
  132. package/dist/motion-value.d.ts.map +1 -0
  133. package/dist/motion-value.js +941 -0
  134. package/dist/motion-value.js.map +1 -0
  135. package/dist/motion-variants.d.ts +190 -0
  136. package/dist/motion-variants.d.ts.map +1 -0
  137. package/dist/motion-variants.js +249 -0
  138. package/dist/motion-variants.js.map +1 -0
  139. package/dist/mutations.d.ts +65 -0
  140. package/dist/mutations.d.ts.map +1 -0
  141. package/dist/mutations.js +320 -0
  142. package/dist/mutations.js.map +1 -0
  143. package/dist/nativeview.d.ts +10 -0
  144. package/dist/nativeview.d.ts.map +1 -0
  145. package/dist/nativeview.js +92 -0
  146. package/dist/nativeview.js.map +1 -0
  147. package/dist/observers.d.ts +92 -0
  148. package/dist/observers.d.ts.map +1 -0
  149. package/dist/observers.js +579 -0
  150. package/dist/observers.js.map +1 -0
  151. package/dist/presence.d.ts +63 -0
  152. package/dist/presence.d.ts.map +1 -0
  153. package/dist/presence.js +54 -0
  154. package/dist/presence.js.map +1 -0
  155. package/dist/renderer-state.d.ts +155 -0
  156. package/dist/renderer-state.d.ts.map +1 -0
  157. package/dist/renderer-state.js +302 -0
  158. package/dist/renderer-state.js.map +1 -0
  159. package/dist/reorder.d.ts +63 -0
  160. package/dist/reorder.d.ts.map +1 -0
  161. package/dist/reorder.js +303 -0
  162. package/dist/reorder.js.map +1 -0
  163. package/dist/runtime.d.ts +23 -0
  164. package/dist/runtime.d.ts.map +1 -0
  165. package/dist/runtime.js +157 -0
  166. package/dist/runtime.js.map +1 -0
  167. package/dist/screen.d.ts +8 -0
  168. package/dist/screen.d.ts.map +1 -0
  169. package/dist/screen.js +16 -0
  170. package/dist/screen.js.map +1 -0
  171. package/dist/scroll.d.ts +79 -0
  172. package/dist/scroll.d.ts.map +1 -0
  173. package/dist/scroll.js +170 -0
  174. package/dist/scroll.js.map +1 -0
  175. package/dist/style-images.d.ts +20 -0
  176. package/dist/style-images.d.ts.map +1 -0
  177. package/dist/style-images.js +57 -0
  178. package/dist/style-images.js.map +1 -0
  179. package/dist/svg.d.ts +16 -0
  180. package/dist/svg.d.ts.map +1 -0
  181. package/dist/svg.js +119 -0
  182. package/dist/svg.js.map +1 -0
  183. package/dist/testing.d.ts +811 -0
  184. package/dist/testing.d.ts.map +1 -0
  185. package/dist/testing.js +1187 -0
  186. package/dist/testing.js.map +1 -0
  187. package/dist/text-match.d.ts +8 -0
  188. package/dist/text-match.d.ts.map +1 -0
  189. package/dist/text-match.js +10 -0
  190. package/dist/text-match.js.map +1 -0
  191. package/dist/text-selection.d.ts +34 -0
  192. package/dist/text-selection.d.ts.map +1 -0
  193. package/dist/text-selection.js +23 -0
  194. package/dist/text-selection.js.map +1 -0
  195. package/dist/universal-style.d.ts +22 -0
  196. package/dist/universal-style.d.ts.map +1 -0
  197. package/dist/universal-style.js +58 -0
  198. package/dist/universal-style.js.map +1 -0
  199. package/dist/web-animations.d.ts +300 -0
  200. package/dist/web-animations.d.ts.map +1 -0
  201. package/dist/web-animations.js +1032 -0
  202. package/dist/web-animations.js.map +1 -0
  203. package/dist/webview.d.ts +39 -0
  204. package/dist/webview.d.ts.map +1 -0
  205. package/dist/webview.js +26 -0
  206. package/dist/webview.js.map +1 -0
  207. package/gpuix-native.darwin-arm64.node +4 -0
  208. package/index.cjs +789 -0
  209. package/index.d.ts +2603 -0
  210. package/index.js +729 -0
  211. package/package.json +96 -4
@@ -0,0 +1,269 @@
1
+ import type { RootEvent } from "./dispatch.js";
2
+ /** One entry of `DataTransfer.files`. Filled in by native on file drags. */
3
+ export type HostFile = {
4
+ path: string;
5
+ name: string;
6
+ size: number;
7
+ /** MIME type guessed from the extension, empty when unknown. */
8
+ type: string;
9
+ lastModified: number;
10
+ };
11
+ export type HostDropEffect = "none" | "copy" | "link" | "move";
12
+ export type HostEffectAllowed = "none" | "copy" | "copyLink" | "copyMove" | "link" | "linkMove" | "move" | "all" | "uninitialized";
13
+ /**
14
+ * The data of one drag, shared by every event of it. DOM protected mode
15
+ * applies: `getData` returns `""` and `setData` does nothing except in
16
+ * `dragstart` (where both work) and `drop` (where only `getData` does).
17
+ */
18
+ export type HostDataTransfer = {
19
+ /**
20
+ * What the drop will do. A `dragover` handler picks it; it must be allowed
21
+ * by `effectAllowed` and not `"none"` for the drop to be delivered. In
22
+ * `dragend` it is what the drop did, `"none"` when nothing was dropped.
23
+ */
24
+ dropEffect: HostDropEffect;
25
+ /** What the source allows. Writable in `dragstart` only. */
26
+ effectAllowed: HostEffectAllowed;
27
+ readonly files: readonly HostFile[];
28
+ readonly types: readonly string[];
29
+ getData(format: string): string;
30
+ setData(format: string, data: string): void;
31
+ clearData(format?: string): void;
32
+ /** Accepted and ignored: there is no drag image. */
33
+ setDragImage(element: unknown, x: number, y: number): void;
34
+ };
35
+ /**
36
+ * What every dispatched event carries, like the DOM `Event`. `target` is the
37
+ * element the event was aimed at and `currentTarget` the one whose handler is
38
+ * running (the `window` or `document` object during their phases). Both are
39
+ * the object a `ref` gives for the element, `relatedTarget` too; use
40
+ * `elementId` for the numeric id native knows it by.
41
+ */
42
+ export interface HostDomEvent extends RootEvent {
43
+ readonly type: string;
44
+ /** Never `null` for an element's handler: only `window` and `document` hear an event with no element. */
45
+ readonly target: object;
46
+ readonly currentTarget: object | null;
47
+ /** The elements on the propagation path, target first. */
48
+ composedPath(): object[];
49
+ /** 1 capturing, 2 at target, 3 bubbling. */
50
+ readonly eventPhase: number;
51
+ readonly bubbles: boolean;
52
+ readonly cancelable: boolean;
53
+ readonly timeStamp: number;
54
+ readonly defaultPrevented: boolean;
55
+ stopPropagation(): void;
56
+ stopImmediatePropagation(): void;
57
+ preventDefault(): void;
58
+ }
59
+ /**
60
+ * Coordinates and buttons of a mouse event. `clientX`/`clientY` are window
61
+ * coordinates; `offsetX`/`offsetY` are relative to the target's padding edge.
62
+ * Native fills in the coordinates as the pointer model lands, so each can be
63
+ * absent. `pointerId` and `pointerType` are always there, mouse event or not,
64
+ * as on a DOM `PointerEvent`.
65
+ */
66
+ export interface HostMouseEvent extends HostDomEvent {
67
+ clientX?: number;
68
+ clientY?: number;
69
+ offsetX?: number;
70
+ offsetY?: number;
71
+ /**
72
+ * How far the pointer moved since the previous move, in logical pixels: the
73
+ * real motion while the pointer is locked (`requestPointerLock()`), when
74
+ * `clientX`/`clientY` stand still. `0` on every event but `mousemove` and
75
+ * `pointermove`, as in the DOM, and on a platform that reports no relative
76
+ * motion (everything but macOS).
77
+ */
78
+ movementX: number;
79
+ movementY: number;
80
+ /** Buttons held right now, as a bitmask: 1 primary, 2 secondary, 4 auxiliary. */
81
+ buttons?: number;
82
+ /** Consecutive clicks: 1 single, 2 double. */
83
+ detail?: number;
84
+ /** 1 for the mouse, -1 for a click no pointer made (VoiceOver, Enter or Space on a button). */
85
+ pointerId: number;
86
+ /** `""` for a click no pointer made. */
87
+ pointerType: "mouse" | "pen" | "touch" | "";
88
+ }
89
+ export interface HostPointerEvent extends HostMouseEvent {
90
+ }
91
+ /**
92
+ * A drag fires `dragenter`, `dragover`, `dragleave` and `drop` at what is under
93
+ * the pointer, and all carry the drag's one `dataTransfer`. `drop` is delivered
94
+ * only after a `dragover` whose handler called `preventDefault()`.
95
+ *
96
+ * Files dragged from the OS fire only those four. Dragging an element that has
97
+ * `draggable` adds `dragstart`, `drag` and `dragend` at the dragged element,
98
+ * the source. No pointer or mouse event fires during either kind of drag.
99
+ */
100
+ export interface HostDragEvent extends HostMouseEvent {
101
+ dataTransfer?: HostDataTransfer;
102
+ }
103
+ /**
104
+ * `wheel`: one wheel or trackpad input, aimed at the element under the pointer
105
+ * (pointer capture does not redirect it). It bubbles and `preventDefault()` cancels
106
+ * the scroll that input would cause, but only where native can wait for the handler
107
+ * (macOS and the test renderer).
108
+ *
109
+ * `deltaX` and `deltaY` are pixels, positive for down and right, like the DOM.
110
+ * `deltaMode` is always `0`: a mouse wheel's lines are converted to pixels natively
111
+ * at 20 px a line. `precise` says a trackpad sent it, and `touchPhase` (`"started"`,
112
+ * `"moved"`, `"ended"` or `"cancelled"`) where it sits in a gesture. It fires
113
+ * whether or not anything scrolls.
114
+ */
115
+ export interface HostWheelEvent extends HostMouseEvent {
116
+ deltaX: number;
117
+ deltaY: number;
118
+ deltaMode: 0;
119
+ precise: boolean;
120
+ touchPhase: "started" | "moved" | "ended" | "cancelled";
121
+ }
122
+ export interface PointerEventHandlerProps {
123
+ /** Primary button only, like the DOM. Use `onAuxClick` for the others. */
124
+ onClick?: (event: HostPointerEvent) => void;
125
+ /** Non-primary click. */
126
+ onAuxClick?: (event: HostPointerEvent) => void;
127
+ onDoubleClick?: (event: HostMouseEvent) => void;
128
+ onContextMenu?: (event: HostPointerEvent) => void;
129
+ onMouseDown?: (event: HostMouseEvent) => void;
130
+ onMouseUp?: (event: HostMouseEvent) => void;
131
+ onMouseMove?: (event: HostMouseEvent) => void;
132
+ /** Does not bubble: fires on each element the pointer enters. */
133
+ onMouseEnter?: (event: HostMouseEvent) => void;
134
+ /** Does not bubble: fires on each element the pointer leaves. */
135
+ onMouseLeave?: (event: HostMouseEvent) => void;
136
+ onMouseOver?: (event: HostMouseEvent) => void;
137
+ onMouseOut?: (event: HostMouseEvent) => void;
138
+ onPointerDown?: (event: HostPointerEvent) => void;
139
+ onPointerMove?: (event: HostPointerEvent) => void;
140
+ onPointerUp?: (event: HostPointerEvent) => void;
141
+ onPointerEnter?: (event: HostPointerEvent) => void;
142
+ onPointerLeave?: (event: HostPointerEvent) => void;
143
+ onPointerOver?: (event: HostPointerEvent) => void;
144
+ onPointerOut?: (event: HostPointerEvent) => void;
145
+ onPointerCancel?: (event: HostPointerEvent) => void;
146
+ onGotPointerCapture?: (event: HostPointerEvent) => void;
147
+ onLostPointerCapture?: (event: HostPointerEvent) => void;
148
+ /** On a `draggable` source. `preventDefault()` cancels the drag. */
149
+ onDragStart?: (event: HostDragEvent) => void;
150
+ /** On the source, on each move. Only fires when something listens. */
151
+ onDrag?: (event: HostDragEvent) => void;
152
+ /** On the source. `dataTransfer.dropEffect` is `"none"` if nothing was dropped. */
153
+ onDragEnd?: (event: HostDragEvent) => void;
154
+ onDragEnter?: (event: HostDragEvent) => void;
155
+ /** `preventDefault()` makes the element a drop target. */
156
+ onDragOver?: (event: HostDragEvent) => void;
157
+ onDragLeave?: (event: HostDragEvent) => void;
158
+ onDrop?: (event: HostDragEvent) => void;
159
+ onWheel?: (event: HostWheelEvent) => void;
160
+ }
161
+ /**
162
+ * `transitionrun`, `transitionstart`, `transitionend` and `transitioncancel`.
163
+ * They bubble from the transitioning element (`target`) and cannot be cancelled.
164
+ * `propertyName` is the CSS name (`background-color`), `elapsedTime` is in
165
+ * seconds and `pseudoElement` is always `""`.
166
+ */
167
+ export interface HostTransitionEvent extends HostDomEvent {
168
+ propertyName: string;
169
+ elapsedTime: number;
170
+ pseudoElement: "";
171
+ }
172
+ /**
173
+ * `animationstart`, `animationiteration`, `animationend` and `animationcancel`.
174
+ * They bubble from the animating element (`target`) and cannot be cancelled.
175
+ * `animationName` is the name given to `defineKeyframes`, `elapsedTime` is in
176
+ * seconds and `pseudoElement` is always `""`.
177
+ */
178
+ export interface HostAnimationEvent extends HostDomEvent {
179
+ animationName: string;
180
+ elapsedTime: number;
181
+ pseudoElement: "";
182
+ }
183
+ export interface AnimationEventHandlerProps {
184
+ /** A transition was created, before its delay. */
185
+ onTransitionRun?: (event: HostTransitionEvent) => void;
186
+ /** A transition's delay ended and it started animating. */
187
+ onTransitionStart?: (event: HostTransitionEvent) => void;
188
+ /** A transition reached its end value. */
189
+ onTransitionEnd?: (event: HostTransitionEvent) => void;
190
+ /** A transition was interrupted: its property changed again, left the
191
+ * transition list, or became owned by `motion`. */
192
+ onTransitionCancel?: (event: HostTransitionEvent) => void;
193
+ /** An animation's delay ended and it started playing. */
194
+ onAnimationStart?: (event: HostAnimationEvent) => void;
195
+ /** An animation began another iteration. Not fired for the last one. */
196
+ onAnimationIteration?: (event: HostAnimationEvent) => void;
197
+ /** An animation finished its last iteration. */
198
+ onAnimationEnd?: (event: HostAnimationEvent) => void;
199
+ /** An animation was interrupted before it ended: its name left
200
+ * `animation-name` or the name changed. */
201
+ onAnimationCancel?: (event: HostAnimationEvent) => void;
202
+ }
203
+ /**
204
+ * `contentvisibilityautostatechange`: an element with `contentVisibility: "auto"` began or stopped
205
+ * skipping its content. It bubbles from the element (`target`) and can be cancelled, which does
206
+ * nothing. `skipped` is whether the content is skipped now.
207
+ */
208
+ export interface HostContentVisibilityAutoStateChangeEvent extends HostDomEvent {
209
+ skipped: boolean;
210
+ }
211
+ export interface ContentVisibilityEventHandlerProps {
212
+ /**
213
+ * An `auto` element is told once it has been decided whether it is near enough to the viewport to show its
214
+ * content, and again each time that changes, after the frame that applied it. A mounted element near the viewport
215
+ * is told `skipped: false` once.
216
+ */
217
+ onContentVisibilityAutoStateChange?: (event: HostContentVisibilityAutoStateChangeEvent) => void;
218
+ }
219
+ /**
220
+ * `compositionstart`, `compositionupdate` and `compositionend`: an input method
221
+ * composing text in an `<input>` or `<textarea>`. They bubble from the text
222
+ * input (`target`) and cannot be cancelled. `data` is the text the composition
223
+ * replaces on start (the selection, usually `""`), the composition's current
224
+ * text on update and the text it ended with on end. Only macOS composes.
225
+ */
226
+ export interface HostCompositionEvent extends HostDomEvent {
227
+ data: string;
228
+ }
229
+ /**
230
+ * The `onChange` event of an `<input>` or `<textarea>`: one edit of its text,
231
+ * which is what the DOM calls `input`. `inputType` and `data` are those of an
232
+ * `InputEvent` as Chrome fills them: `insertText`, `insertFromPaste` and
233
+ * `insertCompositionText` carry the inserted text in `data`; `insertLineBreak`,
234
+ * the `delete…` types (`deleteContentBackward`, `deleteContentForward`,
235
+ * `deleteWordBackward`, `deleteWordForward`, `deleteSoftLineBackward`,
236
+ * `deleteSoftLineForward`, `deleteByCut`, `deleteCompositionText`) and
237
+ * `historyUndo` / `historyRedo` have `data` `null`. The number stepper's edit
238
+ * has `inputType` `""`. `isComposing` is true for the edits of a composition,
239
+ * the last of which comes before its `compositionend`. Setting `value` from
240
+ * outside fires none.
241
+ */
242
+ export interface HostInputEvent extends Omit<HostDomEvent, "data"> {
243
+ /** The text after the edit. */
244
+ readonly value: string;
245
+ readonly inputType: string;
246
+ readonly data: string | null;
247
+ readonly isComposing: boolean;
248
+ }
249
+ export interface CompositionEventHandlerProps {
250
+ /** A composition began. Fires before its first `compositionupdate`. */
251
+ onCompositionStart?: (event: HostCompositionEvent) => void;
252
+ /** The composition's text changed. Fires before the `onChange` of that edit. */
253
+ onCompositionUpdate?: (event: HostCompositionEvent) => void;
254
+ /** The composition ended, committed or cancelled. Fires after the `onChange` of its final edit. */
255
+ onCompositionEnd?: (event: HostCompositionEvent) => void;
256
+ }
257
+ type CaptureProps<Props> = {
258
+ [Name in keyof Props & string as `${Name}Capture`]: Props[Name];
259
+ };
260
+ /** Each pointer, mouse and drag handler, plus its capture-phase `on…Capture` twin. */
261
+ export type PointerEventProps = PointerEventHandlerProps & Partial<CaptureProps<PointerEventHandlerProps>>;
262
+ /** Each transition and animation handler, plus its capture-phase `on…Capture` twin. */
263
+ export type AnimationEventProps = AnimationEventHandlerProps & Partial<CaptureProps<AnimationEventHandlerProps>>;
264
+ /** The `content-visibility` handler, plus its capture-phase `on…Capture` twin. */
265
+ export type ContentVisibilityEventProps = ContentVisibilityEventHandlerProps & Partial<CaptureProps<ContentVisibilityEventHandlerProps>>;
266
+ /** Each composition handler, plus its capture-phase `on…Capture` twin. */
267
+ export type CompositionEventProps = CompositionEventHandlerProps & Partial<CaptureProps<CompositionEventHandlerProps>>;
268
+ export {};
269
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../js/events/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../js/events/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,120 @@
1
+ import type { EventPayload } from "../../index.js";
2
+ import type { Animation } from "../web-animations.js";
3
+ import { type DomDispatchResult, type DomEvent, type DomEventRoot, type DomEventState } from "./dispatch.js";
4
+ export type WindowEventListener = (event: DomEvent) => void;
5
+ export interface AddEventListenerOptions {
6
+ /** Listen in the capture phase, before the element tree sees the event. */
7
+ capture?: boolean;
8
+ /** Remove the listener after its first call. */
9
+ once?: boolean;
10
+ }
11
+ /**
12
+ * The `window` and `document` of a GPUIX app: an `EventTarget` shaped like the
13
+ * DOM's, for events that reach the top of the tree.
14
+ *
15
+ * Event types are the DOM's lowercase names (`keydown`, `keyup`, `focusin`,
16
+ * `focusout`, `focus`, `blur`). `focus` and `blur` do not bubble, so only a
17
+ * capture listener hears them, as in the DOM.
18
+ */
19
+ export declare class GpuixEventTarget {
20
+ private readonly onTypesChange?;
21
+ private readonly registrations;
22
+ /** @param onTypesChange Called when a type gains its first listener or loses its last. */
23
+ constructor(onTypesChange?: (() => void) | undefined);
24
+ addEventListener(type: string, listener: WindowEventListener, options?: boolean | AddEventListenerOptions): void;
25
+ removeEventListener(type: string, listener: WindowEventListener, options?: boolean | Pick<AddEventListenerOptions, "capture">): void;
26
+ /** Whether any listener is registered for `type` in either phase. */
27
+ hasListeners(type: string): boolean;
28
+ /** @internal The types with a listener in either phase. */
29
+ listenedTypes(): string[];
30
+ /**
31
+ * @internal Calls the listeners of one phase. A listener that throws does not
32
+ * end the phase: its error goes to `fail`.
33
+ */
34
+ run(event: DomEvent, state: DomEventState, capture: boolean, phase: number, fail: (error: unknown) => void): void;
35
+ }
36
+ /**
37
+ * The `document` of a GPUIX app: the `window` target plus `activeElement` and
38
+ * `pointerLockElement`.
39
+ *
40
+ * `Element` is what the adapter hands out for an element: React's host
41
+ * instance, Solid's element.
42
+ */
43
+ export declare class GpuixDocument<Element = unknown> extends GpuixEventTarget {
44
+ /**
45
+ * The focused element, the same object a `ref` gives, or `null` when nothing
46
+ * is focused. With several windows (one root each), the window that holds
47
+ * focus decides: of the roots that have a focused element, the one that heard
48
+ * a focus event last.
49
+ */
50
+ get activeElement(): Element | null;
51
+ /**
52
+ * The element that holds the pointer lock, the same object a `ref` gives, or
53
+ * `null` while none does. Where the platform can lock (macOS) it is held as
54
+ * soon as `requestPointerLock()` returns, before `pointerlockchange` arrives.
55
+ */
56
+ get pointerLockElement(): Element | null;
57
+ /**
58
+ * The CSS transitions, then the CSS animations, of every window, as `Animation` objects: for
59
+ * each renderer in the order its root was installed, those of its elements in document order
60
+ * (every transition, then every animation). The same objects `element.getAnimations()` gives.
61
+ */
62
+ getAnimations(): Animation[];
63
+ }
64
+ /** @internal Called by `web-animations` once, with how to list the animations of one renderer's window. */
65
+ export declare function setDocumentAnimations(list: (renderer: object) => Animation[]): void;
66
+ export declare const window: GpuixEventTarget;
67
+ export declare const document: GpuixDocument<unknown>;
68
+ /**
69
+ * Lets the runtime see the elements of the root that drives `renderer`, through
70
+ * `elementById`: the object the adapter gives for an element id, as a `ref`
71
+ * does. `document.activeElement` and the `target`, `currentTarget` and
72
+ * `relatedTarget` of every event read it. The returned function takes the root
73
+ * out again. A renderer that cannot report focus still names its elements; it
74
+ * just never has an `activeElement`.
75
+ */
76
+ export declare function installElementSource(renderer: {
77
+ getFocusedElementId?: () => number | null;
78
+ pointerLockElement?: () => number | null;
79
+ }, elementById: (id: number) => object | undefined): () => void;
80
+ /** Drops the root of `renderer` whose window is gone, so nothing asks it for elements. */
81
+ export declare function forgetElementSource(renderer: object): void;
82
+ /**
83
+ * Stops asking `renderer` what is focused or animating, for a renderer whose
84
+ * window another took over or that was closed: its root still names its
85
+ * elements, but the window it would ask about is not its own any more.
86
+ */
87
+ export declare function forgetWindowSource(renderer: object): void;
88
+ /**
89
+ * @internal The element `renderer`'s root has for `id`, or `undefined` once it
90
+ * dropped it. Throws when no adapter installed a source for `renderer`: the
91
+ * ids of its events cannot be turned into elements.
92
+ */
93
+ export declare function elementOf(renderer: object, id: number): object | undefined;
94
+ /** @internal Records that `owner`'s window just moved focus, for the tie-break of `activeElement`. */
95
+ export declare function noteFocusEvent(owner: object): void;
96
+ /**
97
+ * Keeps `renderer` told which event types `window` or `document` listens for,
98
+ * so native produces them even when no element on the event's path does (the
99
+ * pointer over bare background). Sends the current set now and again whenever
100
+ * it changes. The returned function clears it on the renderer and stops.
101
+ */
102
+ export declare function syncWindowEventListeners(renderer: {
103
+ setWindowEventListeners?: (types: string[]) => void;
104
+ }): () => void;
105
+ /** Whether the DOM aims the event at `document` itself, with no element on the path. */
106
+ export declare function isDocumentEvent(eventType: string): boolean;
107
+ export interface PropagationResult extends DomDispatchResult {
108
+ /** The event the listeners saw. */
109
+ event: DomEvent;
110
+ }
111
+ /**
112
+ * Runs an event through the whole propagation: window capture, document
113
+ * capture, the element path, document bubble, window bubble. An event with no
114
+ * element path is aimed at the window and only those two targets hear it.
115
+ *
116
+ * `scoped` is a window-level target that belongs to one renderer, such as the
117
+ * `onKeyDown` option of its root. It hears the bubble phase after `window`.
118
+ */
119
+ export declare function dispatchPropagating(root: DomEventRoot, payload: EventPayload, scoped?: GpuixEventTarget): PropagationResult;
120
+ //# sourceMappingURL=window-target.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"window-target.d.ts","sourceRoot":"","sources":["../../js/events/window-target.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAClD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAA;AACrD,OAAO,EAOL,KAAK,iBAAiB,EACtB,KAAK,QAAQ,EACb,KAAK,YAAY,EACjB,KAAK,aAAa,EAEnB,MAAM,eAAe,CAAA;AAEtB,MAAM,MAAM,mBAAmB,GAAG,CAAC,KAAK,EAAE,QAAQ,KAAK,IAAI,CAAA;AAE3D,MAAM,WAAW,uBAAuB;IACtC,2EAA2E;IAC3E,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,gDAAgD;IAChD,IAAI,CAAC,EAAE,OAAO,CAAA;CACf;AAQD;;;;;;;GAOG;AACH,qBAAa,gBAAgB;IAIf,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC;IAH3C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAoC;IAElE,0FAA0F;gBAC7D,aAAa,CAAC,GAAE,MAAM,IAAI,aAAA;IAEvD,gBAAgB,CACd,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,mBAAmB,EAC7B,OAAO,CAAC,EAAE,OAAO,GAAG,uBAAuB,GAC1C,IAAI;IAaP,mBAAmB,CACjB,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,mBAAmB,EAC7B,OAAO,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC,uBAAuB,EAAE,SAAS,CAAC,GAC3D,IAAI;IAgBP,qEAAqE;IACrE,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAInC,2DAA2D;IAC3D,aAAa,IAAI,MAAM,EAAE;IAIzB;;;OAGG;IACH,GAAG,CACD,KAAK,EAAE,QAAQ,EACf,KAAK,EAAE,aAAa,EACpB,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,GAC7B,IAAI;CAkBR;AA4CD;;;;;;GAMG;AACH,qBAAa,aAAa,CAAC,OAAO,GAAG,OAAO,CAAE,SAAQ,gBAAgB;IACpE;;;;;OAKG;IACH,IAAI,aAAa,IAAI,OAAO,GAAG,IAAI,CAclC;IAED;;;;OAIG;IACH,IAAI,kBAAkB,IAAI,OAAO,GAAG,IAAI,CAYvC;IAED;;;;OAIG;IACH,aAAa,IAAI,SAAS,EAAE;CAK7B;AAQD,2GAA2G;AAC3G,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,SAAS,EAAE,GAAG,IAAI,CAEnF;AAED,eAAO,MAAM,MAAM,kBAA8C,CAAA;AACjE,eAAO,MAAM,QAAQ,wBAA2C,CAAA;AAEhE;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE;IAAE,mBAAmB,CAAC,EAAE,MAAM,MAAM,GAAG,IAAI,CAAC;IAAC,kBAAkB,CAAC,EAAE,MAAM,MAAM,GAAG,IAAI,CAAA;CAAE,EACjG,WAAW,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,GAC9C,MAAM,IAAI,CAgBZ;AAED,0FAA0F;AAC1F,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAE1D;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAGzD;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAQ1E;AAED,sGAAsG;AACtG,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAGlD;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE;IACjD,uBAAuB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,IAAI,CAAA;CACpD,GAAG,MAAM,IAAI,CAYb;AAID,wFAAwF;AACxF,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAE1D;AAED,MAAM,WAAW,iBAAkB,SAAQ,iBAAiB;IAC1D,mCAAmC;IACnC,KAAK,EAAE,QAAQ,CAAA;CAChB;AAED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,YAAY,EAClB,OAAO,EAAE,YAAY,EACrB,MAAM,CAAC,EAAE,gBAAgB,GACxB,iBAAiB,CA+CnB"}