-
Notifications
You must be signed in to change notification settings - Fork 6
/
Copy pathjsx.d.ts
455 lines (368 loc) · 14.1 KB
/
jsx.d.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
declare module "preact/jsx" {
import { Enum } from "System"
import { Ref } from "preact"
import { Bounds, BoundsInt, Color, Rect, RectInt, ScaleMode, Sprite, Texture, Texture2D, Vector2, Vector2Int, Vector3, Vector3Int, Vector4 } from "UnityEngine"
import { AttachToPanelEvent, BlurEvent, ClickEvent, InputEvent, FocusEvent, WheelEvent, DetachFromPanelEvent, DragEnterEvent, DragExitedEvent, DragLeaveEvent, DragPerformEvent, DragUpdatedEvent, ExecuteCommandEvent, FocusInEvent, FocusOutEvent, GeometryChangedEvent, KeyDownEvent, KeyUpEvent, MouseCaptureEvent, MouseCaptureOutEvent, MouseDownEvent, MouseEnterEvent, MouseEnterWindowEvent, MouseLeaveEvent, MouseLeaveWindowEvent, MouseMoveEvent, MouseOutEvent, MouseOverEvent, MouseUpEvent, PickingMode, PointerCancelEvent, PointerCaptureEvent, PointerCaptureOutEvent, PointerDownEvent, PointerEnterEvent, PointerLeaveEvent, PointerMoveEvent, PointerOutEvent, PointerOverEvent, PointerStationaryEvent, PointerUpEvent, ScrollViewMode, TooltipEvent, UxmlBoolAttributeDescription, UxmlDoubleAttributeDescription, UxmlFloatAttributeDescription, UxmlIntAttributeDescription, UxmlLongAttributeDescription, UxmlStringAttributeDescription, ValidateCommandEvent, ChangeEvent, ScrollerVisibility, PopupField, DropdownField, NavigationMoveEvent, NavigationTabEvent, NavigationCancelEvent, NavigationSubmitEvent, TransitionCancelEvent, TransitionEndEvent, TransitionRunEvent, TransitionStartEvent, VectorImage, TouchScrollBehavior } from "UnityEngine/UIElements"
namespace JSXInternal {
interface IntrinsicAttributes {
id?: string
}
/**
* Base elements
*/
type RecursiveElement = string | number | object | bigint | boolean | Element | null | undefined | RecursiveElement[]
interface CommonEvents {
onValidateCommand?: (e: ValidateCommandEvent) => void
onExecuteCommand?: (e: ExecuteCommandEvent) => void
onDragExited?: (e: DragExitedEvent) => void
onDragEnter?: (e: DragEnterEvent) => void
onDragLeave?: (e: DragLeaveEvent) => void
onDragUpdated?: (e: DragUpdatedEvent) => void
onDragPerform?: (e: DragPerformEvent) => void
onFocusOut?: (e: FocusOutEvent) => void
onBlur?: (e: BlurEvent) => void
onFocusIn?: (e: FocusInEvent) => void
onFocus?: (e: FocusEvent) => void
onInput?: (e: InputEvent) => void
onKeyDown?: (e: KeyDownEvent) => void
onKeyUp?: (e: KeyUpEvent) => void
onGeometryChanged?: (e: GeometryChangedEvent) => void
onMouseDown?: (e: MouseDownEvent) => void
onMouseUp?: (e: MouseUpEvent) => void
onMouseMove?: (e: MouseMoveEvent) => void
// onContextClick?: (e: ContextClickEvent) => void
onWheel?: (e: WheelEvent) => void
onMouseEnter?: (e: MouseEnterEvent) => void
onMouseLeave?: (e: MouseLeaveEvent) => void
onMouseEnterWindow?: (e: MouseEnterWindowEvent) => void
onMouseLeaveWindow?: (e: MouseLeaveWindowEvent) => void
onMouseOver?: (e: MouseOverEvent) => void
onMouseOut?: (e: MouseOutEvent) => void
// onContextualMenuPopulate?: (e: ContextualMenuPopulateEvent) => void
onNavigationMove?: (e: NavigationMoveEvent) => void
onNavigationTab?: (e: NavigationTabEvent) => void
onNavigationCancel?: (e: NavigationCancelEvent) => void
onNavigationSubmit?: (e: NavigationSubmitEvent) => void
onAttachToPanel?: (e: AttachToPanelEvent) => void
onDetachFromPanel?: (e: DetachFromPanelEvent) => void
onPointerDown?: (e: PointerDownEvent) => void
onPointerMove?: (e: PointerMoveEvent) => void
onPointerStationary?: (e: PointerStationaryEvent) => void
onPointerUp?: (e: PointerUpEvent) => void
onPointerCancel?: (e: PointerCancelEvent) => void
onClick?: (e: ClickEvent) => void
onPointerEnter?: (e: PointerEnterEvent) => void
onPointerLeave?: (e: PointerLeaveEvent) => void
onPointerOver?: (e: PointerOverEvent) => void
onPointerOut?: (e: PointerOutEvent) => void
// onCustomStyleResolved?: (e: CustomStyleResolvedEvent) => void
onTooltip?: (e: TooltipEvent) => void
onTransitionRun?: (e: TransitionRunEvent) => void
onTransitionStart?: (e: TransitionStartEvent) => void
onTransitionEnd?: (e: TransitionEndEvent) => void
onTransitionCancel?: (e: TransitionCancelEvent) => void
// onIMGUI?: (e: IMGUIEvent) => void
}
type AppendCapture<T> = {
[K in keyof T as `${Extract<K, string>}Capture`]: T[K]
};
export interface VisualElement extends CommonEvents, AppendCapture<CommonEvents> {
id?: string
ref?: Ref<any>
key?: string | number
disabled?: boolean
children?: RecursiveElement
dangerouslySetInnerHTML?: {
__html: string;
}
name?: string
class?: string
style?: Style
tooltip?: string
focusable?: boolean
tabindex?: number
"picking-mode"?: PickingMode
"view-data-key"?: string
onPointerCaptureOut?: (e: PointerCaptureOutEvent) => void
onPointerCapture?: (e: PointerCaptureEvent) => void
onMouseCaptureOut?: (e: MouseCaptureOutEvent) => void
onMouseCapture?: (e: MouseCaptureEvent) => void
}
type VisualElementNoChildren = Omit<VisualElement, "children">
type BindableElementNoChildren = Omit<BindableElement, "children">
interface BindableElement extends VisualElement {
"binding-path"?: string
}
/**
* Utilities
*/
interface Box extends VisualElement {
}
interface TextElement extends VisualElement {
text?: string
enableRichText?: boolean
}
interface Label extends TextElement {
}
interface Image extends VisualElementNoChildren {
image?: Texture
sprite?: Sprite
vectorImage?: VectorImage
sourceRect?: Rect
uv?: Rect
scaleMode?: ScaleMode
tintColor?: Color
}
interface IMGUIContainer extends VisualElementNoChildren {
}
interface Foldout extends BindableElement {
}
/**
* Templates
*/
interface Template extends BindableElementNoChildren {
name?: string
path?: string
}
interface Instance extends BindableElementNoChildren {
template?: string
}
interface TemplateContainer extends BindableElementNoChildren {
template?: string
}
/**
* Controls
*/
interface BaseField<T> extends BindableElementNoChildren {
label?: string
value?: T
onValueChanged?: (e: ChangeEvent<T>) => void
}
interface BaseBoolField extends BaseField<boolean> {
text?: string
}
interface Button extends TextElement {
}
interface RadioButton extends BaseBoolField {
}
interface RadioButtonGroup extends BindableElement {
label?: string
}
interface RepeatButton extends TextElement {
delay?: number
interva?: number
}
interface Toggle extends BaseBoolField {
}
interface Scroller extends VisualElementNoChildren {
"low-value"?: number
"high-value"?: number
direction?: "Horizontal" | "Vertical"
value?: number
}
enum SliderDirection {
Horizontal,
Vertical
}
interface Slider extends BaseField<float> {
"low-value"?: number
"high-value"?: number
direction?: SliderDirection
"page-size"?: number
}
interface SliderInt extends BaseField<int> {
"low-value"?: number
"high-value"?: number
direction?: SliderDirection
"page-size"?: number
}
interface MinMaxSlider extends BaseField<Vector2> {
"low-limit"?: number
"high-limit"?: number
"min-value"?: number
"max-value"?: number
}
interface EnumField extends BaseField<Enum> {
type?: string
value?: string
}
interface ProgressBar extends BindableElementNoChildren {
"low-value"?: number
"high-value"?: number
value?: number
title?: string
}
/**
* Text input
*/
interface TextInputBaseField<T> extends BaseField<T> {
text?: string
"max-length"?: number
"is-password-field"?: boolean
"mask-char"?: string
"is-read-only"?: boolean
}
interface TextField extends TextInputBaseField<string> {
multiline?: boolean
}
interface TextValueField<T> extends TextInputBaseField<T> {
formatString?: string
}
interface IntegerField extends TextValueField<number> {
}
interface LongField extends TextValueField<number> {
}
interface FloatField extends TextValueField<number> {
}
interface DoubleField extends TextValueField<number> {
}
interface Vector2Field extends BaseField<Vector2> {
x?: number
y?: number
}
interface Vector2IntField extends BaseField<Vector2Int> {
x?: number
y?: number
}
interface Vector3Field extends BaseField<Vector3> {
x?: number
y?: number
z?: number
}
interface Vector3IntField extends BaseField<Vector3Int> {
x?: number
y?: number
z?: number
}
interface Vector4Field extends BaseField<Vector4> {
x?: number
y?: number
z?: number
w?: number
}
interface RectField extends BaseField<Rect> {
x?: number
y?: number
w?: number
h?: number
}
interface RectIntField extends BaseField<RectInt> {
x?: number
y?: number
w?: number
h?: number
}
interface BoundsField extends BaseField<Bounds> {
cx?: number
cy?: number
cz?: number
ex?: number
ey?: number
ez?: number
}
interface BoundsIntField extends BaseField<BoundsInt> {
px?: number
py?: number
pz?: number
sx?: number
sy?: number
sz?: number
}
interface ListView extends VisualElementNoChildren {
"item-height"?: number
}
interface SimpleListView extends ListView {
make?: () => any
bind?: (e: any, i: number) => void
}
interface ScrollView extends VisualElement {
mode?: ScrollViewMode
"horizontal-scroller-visibility"?: ScrollerVisibility
"vertical-scroller-visibility"?: ScrollerVisibility
"horizontal-page-size"?: number
"vertical-page-size"?: number
"touch-scroll-behavior"?: TouchScrollBehavior
"scroll-deceleration-rate"?: number
"elasticity"?: number
}
interface TreeView extends VisualElement {
"item-height"?: number
}
interface PopupWindow extends TextElement {
}
interface DropdownField extends BaseField<string> {
text?: string
label?: string
index?: number
choices?: string[]
value?: string
}
/**
* OneJS Elements
*/
interface GradientRect extends VisualElement {
colors?: Color[]
}
interface Flipbook extends VisualElement {
src?: string | Texture2D
count?: number
interval?: number
"num-per-row"?: number
"random-rotation"?: boolean
}
/**
* All-in-one
*/
export interface IntrinsicElements {
div: VisualElement
box: Box
textelement: TextElement
label: Label
image: Image
foldout: Foldout
template: Template
instance: Instance
templatecontainer: TemplateContainer
button: Button
radiobutton: RadioButton
radiobuttongroup: RadioButtonGroup
repeatbutton: RepeatButton
toggle: Toggle
scroller: Scroller
slider: Slider
sliderint: SliderInt
minmaxslider: MinMaxSlider
enumfield: EnumField
progressbar: ProgressBar
textfield: TextField
integerfield: IntegerField
floatfield: FloatField
vector2field: Vector2Field
vector2intfield: Vector2IntField
vector3field: Vector3Field
vector3intfield: Vector3IntField
vector4field: Vector4Field
rectfield: RectField
rectintfield: RectIntField
boundsfield: BoundsField
boundsintfield: BoundsIntField
listview: ListView
scrollview: ScrollView
treeview: TreeView
popupwindow: PopupWindow
dropdownfield: DropdownField
/* OneJS Custom */
gradientrect: GradientRect
flipbook: Flipbook
simplelistview: SimpleListView
}
}
}
// declare namespace JSX {
// interface IntrinsicElements {
// label: any
// }
// // interface ElementAttributesProperty {
// // props;
// // }
// }