@tamagui/dom 0.0.0-bootstrap.0 → 3.0.0-beta.643.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/dist/cjs/events.cjs +17 -0
- package/dist/cjs/events.native.cjs +19 -0
- package/dist/cjs/events.native.js +21 -0
- package/dist/cjs/events.native.js.map +1 -0
- package/dist/cjs/index.cjs +26 -0
- package/dist/cjs/index.native.cjs +28 -0
- package/dist/cjs/index.native.js +30 -0
- package/dist/cjs/index.native.js.map +1 -0
- package/dist/cjs/props.cjs +17 -0
- package/dist/cjs/props.native.cjs +19 -0
- package/dist/cjs/props.native.js +21 -0
- package/dist/cjs/props.native.js.map +1 -0
- package/dist/cjs/tables/attributes.cjs +850 -0
- package/dist/cjs/tables/attributes.native.cjs +862 -0
- package/dist/cjs/tables/attributes.native.js +864 -0
- package/dist/cjs/tables/attributes.native.js.map +1 -0
- package/dist/cjs/tables/compatibility.cjs +338 -0
- package/dist/cjs/tables/compatibility.native.cjs +340 -0
- package/dist/cjs/tables/compatibility.native.js +342 -0
- package/dist/cjs/tables/compatibility.native.js.map +1 -0
- package/dist/cjs/tables/events.cjs +169 -0
- package/dist/cjs/tables/events.native.cjs +175 -0
- package/dist/cjs/tables/events.native.js +177 -0
- package/dist/cjs/tables/events.native.js.map +1 -0
- package/dist/cjs/tables/nativeBacking.cjs +133 -0
- package/dist/cjs/tables/nativeBacking.native.cjs +135 -0
- package/dist/cjs/tables/nativeBacking.native.js +137 -0
- package/dist/cjs/tables/nativeBacking.native.js.map +1 -0
- package/dist/cjs/tables/tags.cjs +576 -0
- package/dist/cjs/tables/tags.native.cjs +578 -0
- package/dist/cjs/tables/tags.native.js +580 -0
- package/dist/cjs/tables/tags.native.js.map +1 -0
- package/dist/cjs/tables/types.cjs +17 -0
- package/dist/cjs/tables/types.native.cjs +19 -0
- package/dist/cjs/tables/types.native.js +21 -0
- package/dist/cjs/tables/types.native.js.map +1 -0
- package/dist/esm/events.mjs +0 -0
- package/dist/esm/events.native.js +0 -0
- package/dist/esm/index.mjs +15 -0
- package/dist/esm/index.native.js +15 -0
- package/dist/esm/props.mjs +0 -0
- package/dist/esm/props.native.js +0 -0
- package/dist/esm/tables/attributes.mjs +821 -0
- package/dist/esm/tables/attributes.mjs.map +1 -0
- package/dist/esm/tables/attributes.native.js +831 -0
- package/dist/esm/tables/attributes.native.js.map +1 -0
- package/dist/esm/tables/compatibility.mjs +314 -0
- package/dist/esm/tables/compatibility.mjs.map +1 -0
- package/dist/esm/tables/compatibility.native.js +314 -0
- package/dist/esm/tables/compatibility.native.js.map +1 -0
- package/dist/esm/tables/events.mjs +145 -0
- package/dist/esm/tables/events.mjs.map +1 -0
- package/dist/esm/tables/events.native.js +149 -0
- package/dist/esm/tables/events.native.js.map +1 -0
- package/dist/esm/tables/nativeBacking.mjs +106 -0
- package/dist/esm/tables/nativeBacking.mjs.map +1 -0
- package/dist/esm/tables/nativeBacking.native.js +106 -0
- package/dist/esm/tables/nativeBacking.native.js.map +1 -0
- package/dist/esm/tables/tags.mjs +550 -0
- package/dist/esm/tables/tags.mjs.map +1 -0
- package/dist/esm/tables/tags.native.js +550 -0
- package/dist/esm/tables/tags.native.js.map +1 -0
- package/dist/esm/tables/types.mjs +0 -0
- package/dist/esm/tables/types.native.js +0 -0
- package/package.json +57 -7
- package/src/events.ts +58 -0
- package/src/index.ts +19 -0
- package/src/props.ts +699 -0
- package/src/tables/attributes.ts +863 -0
- package/src/tables/compatibility.ts +360 -0
- package/src/tables/events.ts +176 -0
- package/src/tables/nativeBacking.ts +132 -0
- package/src/tables/tags.ts +557 -0
- package/src/tables/types.ts +202 -0
- package/types/events.d.ts +58 -0
- package/types/events.d.ts.map +11 -0
- package/types/index.d.ts +20 -0
- package/types/index.d.ts.map +11 -0
- package/types/props.d.ts +499 -0
- package/types/props.d.ts.map +11 -0
- package/types/tables/attributes.d.ts +21 -0
- package/types/tables/attributes.d.ts.map +11 -0
- package/types/tables/compatibility.d.ts +28 -0
- package/types/tables/compatibility.d.ts.map +11 -0
- package/types/tables/events.d.ts +5 -0
- package/types/tables/events.d.ts.map +11 -0
- package/types/tables/nativeBacking.d.ts +28 -0
- package/types/tables/nativeBacking.d.ts.map +11 -0
- package/types/tables/tags.d.ts +36 -0
- package/types/tables/tags.d.ts.map +11 -0
- package/types/tables/types.d.ts +135 -0
- package/types/tables/types.d.ts.map +11 -0
- package/README.md +0 -1
package/src/props.ts
ADDED
|
@@ -0,0 +1,699 @@
|
|
|
1
|
+
// Generated by scripts/generate-props.ts from the tables in src/tables.
|
|
2
|
+
// Run `bun run generate:props` after changing a table. Do not edit by hand.
|
|
3
|
+
|
|
4
|
+
import type { ReactNode } from 'react'
|
|
5
|
+
|
|
6
|
+
import type {
|
|
7
|
+
DOMChangeEvent,
|
|
8
|
+
DOMClickEvent,
|
|
9
|
+
DOMImageErrorEvent,
|
|
10
|
+
DOMImageLoadEvent,
|
|
11
|
+
DOMInputEvent,
|
|
12
|
+
DOMKeyEvent,
|
|
13
|
+
} from './events'
|
|
14
|
+
|
|
15
|
+
/** the aria roles an author may set, excluding the abstract roles */
|
|
16
|
+
export type AriaRole =
|
|
17
|
+
| 'alert'
|
|
18
|
+
| 'alertdialog'
|
|
19
|
+
| 'application'
|
|
20
|
+
| 'article'
|
|
21
|
+
| 'banner'
|
|
22
|
+
| 'blockquote'
|
|
23
|
+
| 'button'
|
|
24
|
+
| 'caption'
|
|
25
|
+
| 'cell'
|
|
26
|
+
| 'checkbox'
|
|
27
|
+
| 'code'
|
|
28
|
+
| 'columnheader'
|
|
29
|
+
| 'combobox'
|
|
30
|
+
| 'complementary'
|
|
31
|
+
| 'contentinfo'
|
|
32
|
+
| 'definition'
|
|
33
|
+
| 'deletion'
|
|
34
|
+
| 'dialog'
|
|
35
|
+
| 'document'
|
|
36
|
+
| 'emphasis'
|
|
37
|
+
| 'feed'
|
|
38
|
+
| 'figure'
|
|
39
|
+
| 'form'
|
|
40
|
+
| 'grid'
|
|
41
|
+
| 'gridcell'
|
|
42
|
+
| 'group'
|
|
43
|
+
| 'heading'
|
|
44
|
+
| 'img'
|
|
45
|
+
| 'input'
|
|
46
|
+
| 'insertion'
|
|
47
|
+
| 'link'
|
|
48
|
+
| 'list'
|
|
49
|
+
| 'listbox'
|
|
50
|
+
| 'listitem'
|
|
51
|
+
| 'log'
|
|
52
|
+
| 'main'
|
|
53
|
+
| 'marquee'
|
|
54
|
+
| 'math'
|
|
55
|
+
| 'menu'
|
|
56
|
+
| 'menubar'
|
|
57
|
+
| 'menuitem'
|
|
58
|
+
| 'menuitemcheckbox'
|
|
59
|
+
| 'menuitemradio'
|
|
60
|
+
| 'meter'
|
|
61
|
+
| 'navigation'
|
|
62
|
+
| 'none'
|
|
63
|
+
| 'note'
|
|
64
|
+
| 'option'
|
|
65
|
+
| 'paragraph'
|
|
66
|
+
| 'progressbar'
|
|
67
|
+
| 'radio'
|
|
68
|
+
| 'radiogroup'
|
|
69
|
+
| 'region'
|
|
70
|
+
| 'row'
|
|
71
|
+
| 'rowgroup'
|
|
72
|
+
| 'rowheader'
|
|
73
|
+
| 'scrollbar'
|
|
74
|
+
| 'search'
|
|
75
|
+
| 'searchbox'
|
|
76
|
+
| 'separator'
|
|
77
|
+
| 'slider'
|
|
78
|
+
| 'spinbutton'
|
|
79
|
+
| 'status'
|
|
80
|
+
| 'strong'
|
|
81
|
+
| 'subscript'
|
|
82
|
+
| 'superscript'
|
|
83
|
+
| 'switch'
|
|
84
|
+
| 'tab'
|
|
85
|
+
| 'table'
|
|
86
|
+
| 'tablist'
|
|
87
|
+
| 'tabpanel'
|
|
88
|
+
| 'term'
|
|
89
|
+
| 'textbox'
|
|
90
|
+
| 'time'
|
|
91
|
+
| 'timer'
|
|
92
|
+
| 'toolbar'
|
|
93
|
+
| 'tooltip'
|
|
94
|
+
| 'tree'
|
|
95
|
+
| 'treegrid'
|
|
96
|
+
| 'treeitem'
|
|
97
|
+
|
|
98
|
+
/** the autofill hints web and react native both understand */
|
|
99
|
+
export type AutoComplete =
|
|
100
|
+
| 'additional-name'
|
|
101
|
+
| 'address-line1'
|
|
102
|
+
| 'address-line2'
|
|
103
|
+
| 'birthdate-day'
|
|
104
|
+
| 'birthdate-full'
|
|
105
|
+
| 'birthdate-month'
|
|
106
|
+
| 'birthdate-year'
|
|
107
|
+
| 'cc-csc'
|
|
108
|
+
| 'cc-exp'
|
|
109
|
+
| 'cc-exp-day'
|
|
110
|
+
| 'cc-exp-month'
|
|
111
|
+
| 'cc-exp-year'
|
|
112
|
+
| 'cc-number'
|
|
113
|
+
| 'cc-name'
|
|
114
|
+
| 'cc-given-name'
|
|
115
|
+
| 'cc-middle-name'
|
|
116
|
+
| 'cc-family-name'
|
|
117
|
+
| 'cc-type'
|
|
118
|
+
| 'country'
|
|
119
|
+
| 'current-password'
|
|
120
|
+
| 'email'
|
|
121
|
+
| 'family-name'
|
|
122
|
+
| 'gender'
|
|
123
|
+
| 'given-name'
|
|
124
|
+
| 'honorific-prefix'
|
|
125
|
+
| 'honorific-suffix'
|
|
126
|
+
| 'name'
|
|
127
|
+
| 'name-family'
|
|
128
|
+
| 'name-given'
|
|
129
|
+
| 'name-middle'
|
|
130
|
+
| 'name-middle-initial'
|
|
131
|
+
| 'name-prefix'
|
|
132
|
+
| 'name-suffix'
|
|
133
|
+
| 'new-password'
|
|
134
|
+
| 'nickname'
|
|
135
|
+
| 'on'
|
|
136
|
+
| 'one-time-code'
|
|
137
|
+
| 'organization'
|
|
138
|
+
| 'organization-title'
|
|
139
|
+
| 'password'
|
|
140
|
+
| 'password-new'
|
|
141
|
+
| 'postal-address'
|
|
142
|
+
| 'postal-address-country'
|
|
143
|
+
| 'postal-address-extended'
|
|
144
|
+
| 'postal-address-extended-postal-code'
|
|
145
|
+
| 'postal-address-locality'
|
|
146
|
+
| 'postal-address-region'
|
|
147
|
+
| 'postal-code'
|
|
148
|
+
| 'street-address'
|
|
149
|
+
| 'sms-otp'
|
|
150
|
+
| 'tel'
|
|
151
|
+
| 'tel-country-code'
|
|
152
|
+
| 'tel-national'
|
|
153
|
+
| 'tel-device'
|
|
154
|
+
| 'url'
|
|
155
|
+
| 'username'
|
|
156
|
+
| 'username-new'
|
|
157
|
+
| 'off'
|
|
158
|
+
|
|
159
|
+
/** every html input type; the ones native cannot render are a native build error */
|
|
160
|
+
export type InputType =
|
|
161
|
+
| 'checkbox'
|
|
162
|
+
| 'color'
|
|
163
|
+
| 'date'
|
|
164
|
+
| 'datetime-local'
|
|
165
|
+
| 'email'
|
|
166
|
+
| 'file'
|
|
167
|
+
| 'hidden'
|
|
168
|
+
| 'month'
|
|
169
|
+
| 'number'
|
|
170
|
+
| 'password'
|
|
171
|
+
| 'radio'
|
|
172
|
+
| 'range'
|
|
173
|
+
| 'search'
|
|
174
|
+
| 'submit'
|
|
175
|
+
| 'tel'
|
|
176
|
+
| 'text'
|
|
177
|
+
| 'time'
|
|
178
|
+
| 'url'
|
|
179
|
+
| 'week'
|
|
180
|
+
|
|
181
|
+
/**
|
|
182
|
+
* `data-*` passthrough. Only `data-testid` reaches native, as `testID`; the
|
|
183
|
+
* rest are web attributes.
|
|
184
|
+
*/
|
|
185
|
+
export interface StrictDOMDataProps {
|
|
186
|
+
[key: `data-${string}`]: string | number | boolean | undefined
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
/**
|
|
190
|
+
* Everything every tag accepts. Element interfaces extend this rather than
|
|
191
|
+
* restating it, so a tag costs one interface to instantiate.
|
|
192
|
+
*/
|
|
193
|
+
export interface StrictDOMPropsBase extends StrictDOMDataProps {
|
|
194
|
+
/** @platform web */
|
|
195
|
+
'aria-activedescendant'?: string
|
|
196
|
+
/** @platform web */
|
|
197
|
+
'aria-atomic'?: boolean
|
|
198
|
+
/** @platform web */
|
|
199
|
+
'aria-autocomplete'?: 'none' | 'inline' | 'list' | 'both'
|
|
200
|
+
'aria-busy'?: boolean
|
|
201
|
+
'aria-checked'?: boolean | 'mixed'
|
|
202
|
+
/** @platform web */
|
|
203
|
+
'aria-colcount'?: number
|
|
204
|
+
/** @platform web */
|
|
205
|
+
'aria-colindex'?: number
|
|
206
|
+
/** @platform web */
|
|
207
|
+
'aria-colindextext'?: string
|
|
208
|
+
/** @platform web */
|
|
209
|
+
'aria-colspan'?: number
|
|
210
|
+
/** @platform web */
|
|
211
|
+
'aria-controls'?: string
|
|
212
|
+
/** @platform web */
|
|
213
|
+
'aria-current'?: boolean | 'page' | 'step' | 'location' | 'date' | 'time'
|
|
214
|
+
/**
|
|
215
|
+
* react native has no described-by relationship; put the description in aria-label instead
|
|
216
|
+
* @platform web
|
|
217
|
+
*/
|
|
218
|
+
'aria-describedby'?: string
|
|
219
|
+
/** @platform web */
|
|
220
|
+
'aria-details'?: string
|
|
221
|
+
'aria-disabled'?: boolean
|
|
222
|
+
/** @platform web */
|
|
223
|
+
'aria-errormessage'?: string
|
|
224
|
+
'aria-expanded'?: boolean
|
|
225
|
+
/** @platform web */
|
|
226
|
+
'aria-flowto'?: string
|
|
227
|
+
/** @platform web */
|
|
228
|
+
'aria-haspopup'?: 'menu' | 'listbox' | 'tree' | 'grid' | 'dialog'
|
|
229
|
+
/** also sets importantForAccessibility on android so descendants are hidden */
|
|
230
|
+
'aria-hidden'?: boolean
|
|
231
|
+
/** @platform web */
|
|
232
|
+
'aria-invalid'?: boolean | 'grammar' | 'spelling'
|
|
233
|
+
/** @platform web */
|
|
234
|
+
'aria-keyshortcuts'?: string
|
|
235
|
+
'aria-label'?: string
|
|
236
|
+
'aria-labelledby'?: string
|
|
237
|
+
/** @platform web */
|
|
238
|
+
'aria-level'?: number
|
|
239
|
+
'aria-live'?: 'off' | 'assertive' | 'polite'
|
|
240
|
+
'aria-modal'?: boolean
|
|
241
|
+
/** @platform web */
|
|
242
|
+
'aria-multiline'?: boolean
|
|
243
|
+
/** @platform web */
|
|
244
|
+
'aria-multiselectable'?: boolean
|
|
245
|
+
/** @platform web */
|
|
246
|
+
'aria-orientation'?: 'horizontal' | 'vertical'
|
|
247
|
+
/** @platform web */
|
|
248
|
+
'aria-owns'?: string
|
|
249
|
+
/** @platform web */
|
|
250
|
+
'aria-placeholder'?: string
|
|
251
|
+
/** @platform web */
|
|
252
|
+
'aria-posinset'?: number
|
|
253
|
+
/** @platform web */
|
|
254
|
+
'aria-pressed'?: boolean | 'mixed'
|
|
255
|
+
/** @platform web */
|
|
256
|
+
'aria-readonly'?: boolean
|
|
257
|
+
/** @platform web */
|
|
258
|
+
'aria-required'?: boolean
|
|
259
|
+
/** @platform web */
|
|
260
|
+
'aria-roledescription'?: string
|
|
261
|
+
/** @platform web */
|
|
262
|
+
'aria-rowcount'?: number
|
|
263
|
+
/** @platform web */
|
|
264
|
+
'aria-rowindex'?: number
|
|
265
|
+
/** @platform web */
|
|
266
|
+
'aria-rowindextext'?: string
|
|
267
|
+
/** @platform web */
|
|
268
|
+
'aria-rowspan'?: number
|
|
269
|
+
'aria-selected'?: boolean
|
|
270
|
+
/** @platform web */
|
|
271
|
+
'aria-setsize'?: number
|
|
272
|
+
/** @platform web */
|
|
273
|
+
'aria-sort'?: 'none' | 'ascending' | 'descending' | 'other'
|
|
274
|
+
'aria-valuemax'?: number
|
|
275
|
+
'aria-valuemin'?: number
|
|
276
|
+
'aria-valuenow'?: number
|
|
277
|
+
'aria-valuetext'?: string
|
|
278
|
+
/**
|
|
279
|
+
* focus a native element through a ref in an effect instead
|
|
280
|
+
* @platform web
|
|
281
|
+
*/
|
|
282
|
+
autoFocus?: boolean
|
|
283
|
+
dir?: 'auto' | 'ltr' | 'rtl'
|
|
284
|
+
/**
|
|
285
|
+
* element timing is a browser performance api
|
|
286
|
+
* @platform web
|
|
287
|
+
*/
|
|
288
|
+
elementTiming?: string
|
|
289
|
+
/** native applies display none and has no until-found reveal */
|
|
290
|
+
hidden?: true | 'hidden' | 'until-found'
|
|
291
|
+
id?: string
|
|
292
|
+
/** @platform web */
|
|
293
|
+
inert?: boolean
|
|
294
|
+
/** @platform web */
|
|
295
|
+
lang?: string
|
|
296
|
+
role?: AriaRole
|
|
297
|
+
tabIndex?: 0 | -1
|
|
298
|
+
/** @platform web */
|
|
299
|
+
suppressHydrationWarning?: boolean
|
|
300
|
+
'data-testid'?: string
|
|
301
|
+
onPointerCancel?: (event: unknown) => void
|
|
302
|
+
onPointerDown?: (event: unknown) => void
|
|
303
|
+
onPointerEnter?: (event: unknown) => void
|
|
304
|
+
onPointerLeave?: (event: unknown) => void
|
|
305
|
+
onPointerMove?: (event: unknown) => void
|
|
306
|
+
onPointerOut?: (event: unknown) => void
|
|
307
|
+
onPointerOver?: (event: unknown) => void
|
|
308
|
+
onPointerUp?: (event: unknown) => void
|
|
309
|
+
onGotPointerCapture?: (event: unknown) => void
|
|
310
|
+
onLostPointerCapture?: (event: unknown) => void
|
|
311
|
+
onTouchCancel?: (event: unknown) => void
|
|
312
|
+
onTouchEnd?: (event: unknown) => void
|
|
313
|
+
onTouchMove?: (event: unknown) => void
|
|
314
|
+
onTouchStart?: (event: unknown) => void
|
|
315
|
+
/** native builds the click payload from the press event; preventDefault and stopPropagation are no-ops because there is nothing to cancel */
|
|
316
|
+
onClick?: (event: DOMClickEvent) => void
|
|
317
|
+
/**
|
|
318
|
+
* native has no secondary pointer button
|
|
319
|
+
* @platform web
|
|
320
|
+
*/
|
|
321
|
+
onAuxClick?: (event: unknown) => void
|
|
322
|
+
/**
|
|
323
|
+
* native has no context menu event; use a long press
|
|
324
|
+
* @platform web
|
|
325
|
+
*/
|
|
326
|
+
onContextMenu?: (event: unknown) => void
|
|
327
|
+
/** native focus events only fire on elements that can hold focus, which is text entry and pressable elements */
|
|
328
|
+
onBlur?: (event: unknown) => void
|
|
329
|
+
/** native focus events only fire on elements that can hold focus, which is text entry and pressable elements */
|
|
330
|
+
onFocus?: (event: unknown) => void
|
|
331
|
+
/**
|
|
332
|
+
* native has no bubbling focus event; use onFocus
|
|
333
|
+
* @platform web
|
|
334
|
+
*/
|
|
335
|
+
onFocusIn?: (event: unknown) => void
|
|
336
|
+
/**
|
|
337
|
+
* native has no bubbling blur event; use onBlur
|
|
338
|
+
* @platform web
|
|
339
|
+
*/
|
|
340
|
+
onFocusOut?: (event: unknown) => void
|
|
341
|
+
/** native only reports key presses inside a text-entry control, and reports the submit key as Enter */
|
|
342
|
+
onKeyDown?: (event: DOMKeyEvent) => void
|
|
343
|
+
/**
|
|
344
|
+
* react native reports key presses, not key releases
|
|
345
|
+
* @platform web
|
|
346
|
+
*/
|
|
347
|
+
onKeyUp?: (event: unknown) => void
|
|
348
|
+
/**
|
|
349
|
+
* native has no clipboard events
|
|
350
|
+
* @platform web
|
|
351
|
+
*/
|
|
352
|
+
onCopy?: (event: unknown) => void
|
|
353
|
+
/**
|
|
354
|
+
* native has no clipboard events
|
|
355
|
+
* @platform web
|
|
356
|
+
*/
|
|
357
|
+
onCut?: (event: unknown) => void
|
|
358
|
+
/**
|
|
359
|
+
* native has no clipboard events
|
|
360
|
+
* @platform web
|
|
361
|
+
*/
|
|
362
|
+
onPaste?: (event: unknown) => void
|
|
363
|
+
/**
|
|
364
|
+
* fullscreen is a browser api
|
|
365
|
+
* @platform web
|
|
366
|
+
*/
|
|
367
|
+
onFullscreenChange?: (event: unknown) => void
|
|
368
|
+
/**
|
|
369
|
+
* fullscreen is a browser api
|
|
370
|
+
* @platform web
|
|
371
|
+
*/
|
|
372
|
+
onFullscreenError?: (event: unknown) => void
|
|
373
|
+
onScroll?: (event: unknown) => void
|
|
374
|
+
/**
|
|
375
|
+
* native has no wheel input
|
|
376
|
+
* @platform web
|
|
377
|
+
*/
|
|
378
|
+
onWheel?: (event: unknown) => void
|
|
379
|
+
onMouseDown?: (event: unknown) => void
|
|
380
|
+
onMouseEnter?: (event: unknown) => void
|
|
381
|
+
onMouseLeave?: (event: unknown) => void
|
|
382
|
+
/**
|
|
383
|
+
* use onPointerMove for cross-platform pointer input
|
|
384
|
+
* @platform web
|
|
385
|
+
*/
|
|
386
|
+
onMouseMove?: (event: unknown) => void
|
|
387
|
+
onMouseOut?: (event: unknown) => void
|
|
388
|
+
onMouseOver?: (event: unknown) => void
|
|
389
|
+
onMouseUp?: (event: unknown) => void
|
|
390
|
+
}
|
|
391
|
+
|
|
392
|
+
export interface StrictDOMAnchorProps extends StrictDOMPropsBase {
|
|
393
|
+
/** @platform web */
|
|
394
|
+
download?: string
|
|
395
|
+
/**
|
|
396
|
+
* native has no navigation; handle onClick and call your router or Linking
|
|
397
|
+
* @platform web
|
|
398
|
+
*/
|
|
399
|
+
href?: string
|
|
400
|
+
/** native honours it for image requests only */
|
|
401
|
+
referrerPolicy?:
|
|
402
|
+
| 'no-referrer'
|
|
403
|
+
| 'no-referrer-when-downgrade'
|
|
404
|
+
| 'origin'
|
|
405
|
+
| 'origin-when-cross-origin'
|
|
406
|
+
| 'same-origin'
|
|
407
|
+
| 'strict-origin'
|
|
408
|
+
| 'strict-origin-when-cross-origin'
|
|
409
|
+
| 'unsafe-url'
|
|
410
|
+
/** @platform web */
|
|
411
|
+
rel?: string
|
|
412
|
+
/** @platform web */
|
|
413
|
+
target?: '_self' | '_blank' | '_parent' | '_top'
|
|
414
|
+
children?: ReactNode
|
|
415
|
+
}
|
|
416
|
+
|
|
417
|
+
export interface StrictDOMProps extends StrictDOMPropsBase {
|
|
418
|
+
children?: ReactNode
|
|
419
|
+
}
|
|
420
|
+
|
|
421
|
+
/** the common interface for a tag that takes no children: br and hr */
|
|
422
|
+
export interface StrictDOMVoidProps extends StrictDOMPropsBase {
|
|
423
|
+
children?: never
|
|
424
|
+
}
|
|
425
|
+
|
|
426
|
+
export interface StrictDOMButtonProps extends StrictDOMPropsBase {
|
|
427
|
+
/** native also clears focusable, and editable on a text-entry control */
|
|
428
|
+
disabled?: boolean
|
|
429
|
+
type?: 'button' | 'submit'
|
|
430
|
+
children?: ReactNode
|
|
431
|
+
}
|
|
432
|
+
|
|
433
|
+
export interface StrictDOMImageProps extends StrictDOMPropsBase {
|
|
434
|
+
alt?: string
|
|
435
|
+
crossOrigin?: 'anonymous' | 'use-credentials'
|
|
436
|
+
/** @platform web */
|
|
437
|
+
decoding?: 'async' | 'auto' | 'sync'
|
|
438
|
+
/** @platform web */
|
|
439
|
+
draggable?: boolean
|
|
440
|
+
/** @platform web */
|
|
441
|
+
fetchPriority?: 'high' | 'low' | 'auto'
|
|
442
|
+
height?: number
|
|
443
|
+
/** @platform web */
|
|
444
|
+
loading?: 'eager' | 'lazy'
|
|
445
|
+
/** native honours it for image requests only */
|
|
446
|
+
referrerPolicy?:
|
|
447
|
+
| 'no-referrer'
|
|
448
|
+
| 'no-referrer-when-downgrade'
|
|
449
|
+
| 'origin'
|
|
450
|
+
| 'origin-when-cross-origin'
|
|
451
|
+
| 'same-origin'
|
|
452
|
+
| 'strict-origin'
|
|
453
|
+
| 'strict-origin-when-cross-origin'
|
|
454
|
+
| 'unsafe-url'
|
|
455
|
+
src?: string
|
|
456
|
+
srcSet?: string
|
|
457
|
+
width?: number
|
|
458
|
+
onError?: (event: DOMImageErrorEvent) => void
|
|
459
|
+
/** native reports naturalWidth and naturalHeight from the decoded source */
|
|
460
|
+
onLoad?: (event: DOMImageLoadEvent) => void
|
|
461
|
+
children?: never
|
|
462
|
+
}
|
|
463
|
+
|
|
464
|
+
export interface StrictDOMInputProps extends StrictDOMPropsBase {
|
|
465
|
+
autoCapitalize?: 'none' | 'sentences' | 'words' | 'characters'
|
|
466
|
+
autoComplete?: AutoComplete
|
|
467
|
+
/**
|
|
468
|
+
* checkbox and radio inputs have no native rendering
|
|
469
|
+
* @platform web
|
|
470
|
+
*/
|
|
471
|
+
checked?: boolean | 'mixed'
|
|
472
|
+
/**
|
|
473
|
+
* checkbox and radio inputs have no native rendering
|
|
474
|
+
* @platform web
|
|
475
|
+
*/
|
|
476
|
+
defaultChecked?: boolean
|
|
477
|
+
defaultValue?: string
|
|
478
|
+
/** native also clears focusable, and editable on a text-entry control */
|
|
479
|
+
disabled?: boolean
|
|
480
|
+
enterKeyHint?: 'enter' | 'done' | 'go' | 'next' | 'previous' | 'search' | 'send'
|
|
481
|
+
inputMode?: 'none' | 'text' | 'tel' | 'url' | 'email' | 'numeric' | 'decimal' | 'search'
|
|
482
|
+
/** @platform web */
|
|
483
|
+
max?: string | number
|
|
484
|
+
maxLength?: number
|
|
485
|
+
/** @platform web */
|
|
486
|
+
min?: string | number
|
|
487
|
+
/** @platform web */
|
|
488
|
+
minLength?: number
|
|
489
|
+
/** @platform web */
|
|
490
|
+
multiple?: boolean
|
|
491
|
+
/**
|
|
492
|
+
* form field names only matter to a form submission, which native does not have
|
|
493
|
+
* @platform web
|
|
494
|
+
*/
|
|
495
|
+
name?: string
|
|
496
|
+
placeholder?: string
|
|
497
|
+
readOnly?: boolean
|
|
498
|
+
/**
|
|
499
|
+
* native has no form validation
|
|
500
|
+
* @platform web
|
|
501
|
+
*/
|
|
502
|
+
required?: boolean
|
|
503
|
+
/** ios only on native */
|
|
504
|
+
spellCheck?: boolean
|
|
505
|
+
/** @platform web */
|
|
506
|
+
step?: number | 'any'
|
|
507
|
+
/** on native the type selects the keyboard and secure entry rather than reaching one prop, and the types with no text-entry control are a build error */
|
|
508
|
+
type?: InputType
|
|
509
|
+
value?: string
|
|
510
|
+
/**
|
|
511
|
+
* native text entry reports changes only after they are applied
|
|
512
|
+
* @platform web
|
|
513
|
+
*/
|
|
514
|
+
onBeforeInput?: (event: unknown) => void
|
|
515
|
+
/** native fires on every keystroke like onInput, because there is no commit-on-blur change event */
|
|
516
|
+
onChange?: (event: DOMChangeEvent) => void
|
|
517
|
+
onInput?: (event: DOMInputEvent) => void
|
|
518
|
+
/**
|
|
519
|
+
* native has no form validation
|
|
520
|
+
* @platform web
|
|
521
|
+
*/
|
|
522
|
+
onInvalid?: (event: unknown) => void
|
|
523
|
+
/**
|
|
524
|
+
* read the selection through the element ref instead
|
|
525
|
+
* @platform web
|
|
526
|
+
*/
|
|
527
|
+
onSelect?: (event: unknown) => void
|
|
528
|
+
children?: never
|
|
529
|
+
}
|
|
530
|
+
|
|
531
|
+
export interface StrictDOMLabelProps extends StrictDOMPropsBase {
|
|
532
|
+
/**
|
|
533
|
+
* native has no label association; wrap the control or drive it from your own state
|
|
534
|
+
* @platform web
|
|
535
|
+
*/
|
|
536
|
+
for?: string
|
|
537
|
+
children?: ReactNode
|
|
538
|
+
}
|
|
539
|
+
|
|
540
|
+
export interface StrictDOMListItemProps extends StrictDOMPropsBase {
|
|
541
|
+
/** the list counter is not rendered on either platform, matching the list-style reset */
|
|
542
|
+
value?: number
|
|
543
|
+
children?: ReactNode
|
|
544
|
+
}
|
|
545
|
+
|
|
546
|
+
export interface StrictDOMOptionGroupProps extends StrictDOMPropsBase {
|
|
547
|
+
/** native also clears focusable, and editable on a text-entry control */
|
|
548
|
+
disabled?: boolean
|
|
549
|
+
/** @platform web */
|
|
550
|
+
label?: string
|
|
551
|
+
children?: ReactNode
|
|
552
|
+
}
|
|
553
|
+
|
|
554
|
+
export interface StrictDOMOptionProps extends StrictDOMPropsBase {
|
|
555
|
+
/** native also clears focusable, and editable on a text-entry control */
|
|
556
|
+
disabled?: boolean
|
|
557
|
+
/** @platform web */
|
|
558
|
+
label?: string
|
|
559
|
+
value?: string
|
|
560
|
+
children?: string | number
|
|
561
|
+
}
|
|
562
|
+
|
|
563
|
+
export interface StrictDOMSelectProps extends StrictDOMPropsBase {
|
|
564
|
+
autoComplete?: AutoComplete
|
|
565
|
+
defaultValue?: string | readonly string[]
|
|
566
|
+
/** @platform web */
|
|
567
|
+
multiple?: boolean
|
|
568
|
+
/**
|
|
569
|
+
* form field names only matter to a form submission, which native does not have
|
|
570
|
+
* @platform web
|
|
571
|
+
*/
|
|
572
|
+
name?: string
|
|
573
|
+
/**
|
|
574
|
+
* native has no form validation
|
|
575
|
+
* @platform web
|
|
576
|
+
*/
|
|
577
|
+
required?: boolean
|
|
578
|
+
value?: string | readonly string[]
|
|
579
|
+
/**
|
|
580
|
+
* native text entry reports changes only after they are applied
|
|
581
|
+
* @platform web
|
|
582
|
+
*/
|
|
583
|
+
onBeforeInput?: (event: unknown) => void
|
|
584
|
+
/** native fires on every keystroke like onInput, because there is no commit-on-blur change event */
|
|
585
|
+
onChange?: (event: DOMChangeEvent) => void
|
|
586
|
+
onInput?: (event: DOMInputEvent) => void
|
|
587
|
+
/**
|
|
588
|
+
* native has no form validation
|
|
589
|
+
* @platform web
|
|
590
|
+
*/
|
|
591
|
+
onInvalid?: (event: unknown) => void
|
|
592
|
+
/**
|
|
593
|
+
* read the selection through the element ref instead
|
|
594
|
+
* @platform web
|
|
595
|
+
*/
|
|
596
|
+
onSelect?: (event: unknown) => void
|
|
597
|
+
children?: ReactNode
|
|
598
|
+
}
|
|
599
|
+
|
|
600
|
+
export interface StrictDOMTextAreaProps extends StrictDOMPropsBase {
|
|
601
|
+
autoCapitalize?: 'none' | 'sentences' | 'words' | 'characters'
|
|
602
|
+
autoComplete?: AutoComplete
|
|
603
|
+
defaultValue?: string
|
|
604
|
+
/** native also clears focusable, and editable on a text-entry control */
|
|
605
|
+
disabled?: boolean
|
|
606
|
+
enterKeyHint?: 'enter' | 'done' | 'go' | 'next' | 'previous' | 'search' | 'send'
|
|
607
|
+
inputMode?: 'none' | 'text' | 'tel' | 'url' | 'email' | 'numeric' | 'decimal' | 'search'
|
|
608
|
+
maxLength?: number
|
|
609
|
+
/** @platform web */
|
|
610
|
+
minLength?: number
|
|
611
|
+
/**
|
|
612
|
+
* form field names only matter to a form submission, which native does not have
|
|
613
|
+
* @platform web
|
|
614
|
+
*/
|
|
615
|
+
name?: string
|
|
616
|
+
placeholder?: string
|
|
617
|
+
readOnly?: boolean
|
|
618
|
+
/**
|
|
619
|
+
* native has no form validation
|
|
620
|
+
* @platform web
|
|
621
|
+
*/
|
|
622
|
+
required?: boolean
|
|
623
|
+
rows?: number
|
|
624
|
+
/** ios only on native */
|
|
625
|
+
spellCheck?: boolean
|
|
626
|
+
value?: string
|
|
627
|
+
/**
|
|
628
|
+
* native text entry reports changes only after they are applied
|
|
629
|
+
* @platform web
|
|
630
|
+
*/
|
|
631
|
+
onBeforeInput?: (event: unknown) => void
|
|
632
|
+
/** native fires on every keystroke like onInput, because there is no commit-on-blur change event */
|
|
633
|
+
onChange?: (event: DOMChangeEvent) => void
|
|
634
|
+
onInput?: (event: DOMInputEvent) => void
|
|
635
|
+
/**
|
|
636
|
+
* native has no form validation
|
|
637
|
+
* @platform web
|
|
638
|
+
*/
|
|
639
|
+
onInvalid?: (event: unknown) => void
|
|
640
|
+
/**
|
|
641
|
+
* read the selection through the element ref instead
|
|
642
|
+
* @platform web
|
|
643
|
+
*/
|
|
644
|
+
onSelect?: (event: unknown) => void
|
|
645
|
+
children?: never
|
|
646
|
+
}
|
|
647
|
+
|
|
648
|
+
/** the props interface for each tag in the DOM contract */
|
|
649
|
+
export type StrictDOMPropsByTag = {
|
|
650
|
+
a: StrictDOMAnchorProps
|
|
651
|
+
article: StrictDOMProps
|
|
652
|
+
aside: StrictDOMProps
|
|
653
|
+
b: StrictDOMProps
|
|
654
|
+
bdi: StrictDOMProps
|
|
655
|
+
bdo: StrictDOMProps
|
|
656
|
+
blockquote: StrictDOMProps
|
|
657
|
+
br: StrictDOMVoidProps
|
|
658
|
+
button: StrictDOMButtonProps
|
|
659
|
+
code: StrictDOMProps
|
|
660
|
+
del: StrictDOMProps
|
|
661
|
+
div: StrictDOMProps
|
|
662
|
+
em: StrictDOMProps
|
|
663
|
+
fieldset: StrictDOMProps
|
|
664
|
+
footer: StrictDOMProps
|
|
665
|
+
form: StrictDOMProps
|
|
666
|
+
h1: StrictDOMProps
|
|
667
|
+
h2: StrictDOMProps
|
|
668
|
+
h3: StrictDOMProps
|
|
669
|
+
h4: StrictDOMProps
|
|
670
|
+
h5: StrictDOMProps
|
|
671
|
+
h6: StrictDOMProps
|
|
672
|
+
header: StrictDOMProps
|
|
673
|
+
hr: StrictDOMVoidProps
|
|
674
|
+
i: StrictDOMProps
|
|
675
|
+
img: StrictDOMImageProps
|
|
676
|
+
input: StrictDOMInputProps
|
|
677
|
+
ins: StrictDOMProps
|
|
678
|
+
kbd: StrictDOMProps
|
|
679
|
+
label: StrictDOMLabelProps
|
|
680
|
+
li: StrictDOMListItemProps
|
|
681
|
+
main: StrictDOMProps
|
|
682
|
+
mark: StrictDOMProps
|
|
683
|
+
nav: StrictDOMProps
|
|
684
|
+
ol: StrictDOMProps
|
|
685
|
+
optgroup: StrictDOMOptionGroupProps
|
|
686
|
+
option: StrictDOMOptionProps
|
|
687
|
+
p: StrictDOMProps
|
|
688
|
+
pre: StrictDOMProps
|
|
689
|
+
s: StrictDOMProps
|
|
690
|
+
section: StrictDOMProps
|
|
691
|
+
select: StrictDOMSelectProps
|
|
692
|
+
span: StrictDOMProps
|
|
693
|
+
strong: StrictDOMProps
|
|
694
|
+
sub: StrictDOMProps
|
|
695
|
+
sup: StrictDOMProps
|
|
696
|
+
textarea: StrictDOMTextAreaProps
|
|
697
|
+
u: StrictDOMProps
|
|
698
|
+
ul: StrictDOMProps
|
|
699
|
+
}
|