@astrojs/language-server 0.20.3 → 0.22.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 (35) hide show
  1. package/CHANGELOG.md +29 -0
  2. package/README.md +1 -2
  3. package/dist/check.js +4 -1
  4. package/dist/core/config/ConfigManager.d.ts +1 -2
  5. package/dist/core/config/ConfigManager.js +0 -7
  6. package/dist/importPackage.d.ts +4 -1
  7. package/dist/importPackage.js +22 -9
  8. package/dist/plugins/PluginHost.d.ts +1 -0
  9. package/dist/plugins/PluginHost.js +4 -0
  10. package/dist/plugins/astro/AstroPlugin.d.ts +5 -3
  11. package/dist/plugins/astro/AstroPlugin.js +35 -3
  12. package/dist/plugins/css/language-service.d.ts +1 -1
  13. package/dist/plugins/html/HTMLPlugin.d.ts +1 -2
  14. package/dist/plugins/html/HTMLPlugin.js +0 -18
  15. package/dist/plugins/interfaces.d.ts +5 -2
  16. package/dist/plugins/typescript/TypeScriptPlugin.d.ts +8 -5
  17. package/dist/plugins/typescript/TypeScriptPlugin.js +12 -8
  18. package/dist/plugins/typescript/astro2tsx.d.ts +1 -2
  19. package/dist/plugins/typescript/astro2tsx.js +0 -4
  20. package/dist/plugins/typescript/features/DiagnosticsProvider.js +0 -5
  21. package/dist/plugins/typescript/features/FoldingRangesProvider.js +1 -1
  22. package/dist/plugins/typescript/features/TypeDefinitionsProvider.d.ts +9 -0
  23. package/dist/plugins/typescript/features/TypeDefinitionsProvider.js +55 -0
  24. package/dist/plugins/typescript/language-service.js +12 -38
  25. package/dist/plugins/typescript/snapshots/utils.d.ts +1 -0
  26. package/dist/plugins/typescript/snapshots/utils.js +2 -1
  27. package/dist/server.js +22 -5
  28. package/dist/utils.d.ts +9 -7
  29. package/dist/utils.js +25 -16
  30. package/package.json +4 -1
  31. package/types/README.md +5 -0
  32. package/types/astro-jsx.d.ts +854 -477
  33. package/types/env.d.ts +22 -0
  34. package/dist/plugins/typescript/features/FormattingProvider.d.ts +0 -11
  35. package/dist/plugins/typescript/features/FormattingProvider.js +0 -132
@@ -1,16 +1,15 @@
1
1
  /// <reference lib="dom" />
2
2
  /* eslint @typescript-eslint/no-unused-vars: off */
3
3
  /**
4
- * Adapted from jsx-dom
5
- * @see https://github.com/proteriax/jsx-dom/blob/be06937ba16908d87bf8aa4372a3583133e02b8a/index.d.ts
4
+ * Adapted from babel-plugin-react-html-attrs's TypeScript definition from DefinitelyTyped.
5
+ * @see https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/types/babel-plugin-react-html-attrs/index.d.ts
6
6
  *
7
- * which was adapted from
7
+ * and
8
8
  *
9
9
  * Adapted from React’s TypeScript definition from DefinitelyTyped.
10
10
  * @see https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/types/react/index.d.ts
11
11
  */
12
12
  declare namespace astroHTML.JSX {
13
- /* html jsx */
14
13
  export type Child = Node | Node[] | string | number | boolean | null | undefined | unknown;
15
14
  export type Children = Child | Child[];
16
15
 
@@ -27,8 +26,8 @@ declare namespace astroHTML.JSX {
27
26
  interface AstroBuiltinProps {
28
27
  'client:load'?: boolean;
29
28
  'client:idle'?: boolean;
30
- 'client:visible'?: boolean;
31
29
  'client:media'?: string;
30
+ 'client:visible'?: boolean;
32
31
  'client:only'?: boolean | string;
33
32
  }
34
33
 
@@ -36,186 +35,166 @@ declare namespace astroHTML.JSX {
36
35
  'class:list'?: Record<string, boolean> | Record<any, any> | Iterable<string> | Iterable<any> | string;
37
36
  'set:html'?: any;
38
37
  'set:text'?: any;
38
+ 'is:raw'?: boolean;
39
39
  }
40
40
 
41
- // Usable exclusively on script and style tags
42
- interface AstroDefineVars {
41
+ interface AstroDefineVarsAttribute {
43
42
  'define:vars'?: any;
44
43
  }
45
44
 
46
- // Usable exclusively on style tags
47
- interface AstroStyle {
45
+ interface AstroStyleAttributes extends AstroDefineVarsAttribute {
46
+ /** @deprecated Use `is:global` instead */
48
47
  global?: boolean;
49
48
  'is:global'?: boolean;
50
49
  'is:inline'?: boolean;
51
50
  }
52
51
 
53
- // Usable exclusively on script tags
54
- interface AstroScript {
52
+ interface AstroScriptAttributes extends AstroDefineVarsAttribute {
53
+ /** @deprecated Hoist is now the default behavior */
55
54
  hoist?: boolean;
56
55
  'is:inline'?: boolean;
57
56
  }
58
57
 
59
- type Element = HTMLElement;
58
+ // This is an unfortunate use of `any`, but unfortunately we can't make a type that works for every framework
59
+ // without importing every single framework's types (which comes with its own set of problems).
60
+ // Using any isn't that bad here however as in Astro files the return type of a component isn't relevant in most cases
61
+ type Element = HTMLElement | any;
60
62
 
61
- //
62
- // Event Handler Types
63
- // ----------------------------------------------------------------------
64
- type EventHandler<E extends Event = Event, T extends EventTarget = HTMLElement> = (
65
- event: E & { currentTarget: EventTarget & T }
66
- ) => any;
67
-
68
- type ClipboardEventHandler<T extends EventTarget> = EventHandler<ClipboardEvent, T>;
69
- type CompositionEventHandler<T extends EventTarget> = EventHandler<CompositionEvent, T>;
70
- type DragEventHandler<T extends EventTarget> = EventHandler<DragEvent, T>;
71
- type FocusEventHandler<T extends EventTarget> = EventHandler<FocusEvent, T>;
72
- type FormEventHandler<T extends EventTarget> = EventHandler<Event, T>;
73
- type ChangeEventHandler<T extends EventTarget> = EventHandler<Event, T>;
74
- type KeyboardEventHandler<T extends EventTarget> = EventHandler<KeyboardEvent, T>;
75
- type MouseEventHandler<T extends EventTarget> = EventHandler<MouseEvent, T>;
76
- type TouchEventHandler<T extends EventTarget> = EventHandler<TouchEvent, T>;
77
- type PointerEventHandler<T extends EventTarget> = EventHandler<PointerEvent, T>;
78
- type UIEventHandler<T extends EventTarget> = EventHandler<UIEvent, T>;
79
- type WheelEventHandler<T extends EventTarget> = EventHandler<WheelEvent, T>;
80
- type AnimationEventHandler<T extends EventTarget> = EventHandler<AnimationEvent, T>;
81
- type TransitionEventHandler<T extends EventTarget> = EventHandler<TransitionEvent, T>;
82
- type MessageEventHandler<T extends EventTarget> = EventHandler<MessageEvent, T>;
83
-
84
- interface DOMAttributes<T extends EventTarget> {
63
+ interface DOMAttributes {
85
64
  children?: Children;
86
65
 
87
66
  // Clipboard Events
88
- oncopy?: ClipboardEventHandler<T> | string | undefined | null;
89
- oncut?: ClipboardEventHandler<T> | string | undefined | null;
90
- onpaste?: ClipboardEventHandler<T> | string | undefined | null;
67
+ oncopy?: string | undefined | null;
68
+ oncut?: string | undefined | null;
69
+ onpaste?: string | undefined | null;
91
70
 
92
71
  // Composition Events
93
- oncompositionend?: CompositionEventHandler<T> | string | undefined | null;
94
- oncompositionstart?: CompositionEventHandler<T> | string | undefined | null;
95
- oncompositionupdate?: CompositionEventHandler<T> | string | undefined | null;
72
+ oncompositionend?: string | undefined | null;
73
+ oncompositionstart?: string | undefined | null;
74
+ oncompositionupdate?: string | undefined | null;
96
75
 
97
76
  // Focus Events
98
- onfocus?: FocusEventHandler<T> | string | undefined | null;
99
- onfocusin?: FocusEventHandler<T> | string | undefined | null;
100
- onfocusout?: FocusEventHandler<T> | string | undefined | null;
101
- onblur?: FocusEventHandler<T> | string | undefined | null;
77
+ onfocus?: string | undefined | null;
78
+ onfocusin?: string | undefined | null;
79
+ onfocusout?: string | undefined | null;
80
+ onblur?: string | undefined | null;
102
81
 
103
82
  // Form Events
104
- onchange?: FormEventHandler<T> | string | undefined | null;
105
- oninput?: FormEventHandler<T> | string | undefined | null;
106
- onreset?: FormEventHandler<T> | string | undefined | null;
107
- onsubmit?: EventHandler<SubmitEvent, T> | string | undefined | null;
108
- oninvalid?: EventHandler<Event, T> | string | undefined | null;
109
- onbeforeinput?: EventHandler<InputEvent, T> | string | undefined | null;
83
+ onchange?: string | undefined | null;
84
+ oninput?: string | undefined | null;
85
+ onreset?: string | undefined | null;
86
+ onsubmit?: string | undefined | null;
87
+ oninvalid?: string | undefined | null;
88
+ onbeforeinput?: string | undefined | null;
110
89
 
111
90
  // Image Events
112
- onload?: EventHandler | string | undefined | null;
113
- onerror?: EventHandler | string | undefined | null; // also a Media Event
91
+ onload?: string | undefined | null;
92
+ onerror?: string | undefined | null; // also a Media Event
114
93
 
115
94
  // Detail Events
116
- ontoggle?: EventHandler<Event, T> | string | undefined | null;
95
+ ontoggle?: string | undefined | null;
117
96
 
118
97
  // Keyboard Events
119
- onkeydown?: KeyboardEventHandler<T> | string | undefined | null;
120
- onkeypress?: KeyboardEventHandler<T> | string | undefined | null;
121
- onkeyup?: KeyboardEventHandler<T> | string | undefined | null;
98
+ onkeydown?: string | undefined | null;
99
+ onkeypress?: string | undefined | null;
100
+ onkeyup?: string | undefined | null;
122
101
 
123
102
  // Media Events
124
- onabort?: EventHandler<Event, T> | string | undefined | null;
125
- oncanplay?: EventHandler<Event, T> | string | undefined | null;
126
- oncanplaythrough?: EventHandler<Event, T> | string | undefined | null;
127
- oncuechange?: EventHandler<Event, T> | string | undefined | null;
128
- ondurationchange?: EventHandler<Event, T> | string | undefined | null;
129
- onemptied?: EventHandler<Event, T> | string | undefined | null;
130
- onencrypted?: EventHandler<Event, T> | string | undefined | null;
131
- onended?: EventHandler<Event, T> | string | undefined | null;
132
- onloadeddata?: EventHandler<Event, T> | string | undefined | null;
133
- onloadedmetadata?: EventHandler<Event, T> | string | undefined | null;
134
- onloadstart?: EventHandler<Event, T> | string | undefined | null;
135
- onpause?: EventHandler<Event, T> | string | undefined | null;
136
- onplay?: EventHandler<Event, T> | string | undefined | null;
137
- onplaying?: EventHandler<Event, T> | string | undefined | null;
138
- onprogress?: EventHandler<Event, T> | string | undefined | null;
139
- onratechange?: EventHandler<Event, T> | string | undefined | null;
140
- onseeked?: EventHandler<Event, T> | string | undefined | null;
141
- onseeking?: EventHandler<Event, T> | string | undefined | null;
142
- onstalled?: EventHandler<Event, T> | string | undefined | null;
143
- onsuspend?: EventHandler<Event, T> | string | undefined | null;
144
- ontimeupdate?: EventHandler<Event, T> | string | undefined | null;
145
- onvolumechange?: EventHandler<Event, T> | string | undefined | null;
146
- onwaiting?: EventHandler<Event, T> | string | undefined | null;
103
+ onabort?: string | undefined | null;
104
+ oncanplay?: string | undefined | null;
105
+ oncanplaythrough?: string | undefined | null;
106
+ oncuechange?: string | undefined | null;
107
+ ondurationchange?: string | undefined | null;
108
+ onemptied?: string | undefined | null;
109
+ onencrypted?: string | undefined | null;
110
+ onended?: string | undefined | null;
111
+ onloadeddata?: string | undefined | null;
112
+ onloadedmetadata?: string | undefined | null;
113
+ onloadstart?: string | undefined | null;
114
+ onpause?: string | undefined | null;
115
+ onplay?: string | undefined | null;
116
+ onplaying?: string | undefined | null;
117
+ onprogress?: string | undefined | null;
118
+ onratechange?: string | undefined | null;
119
+ onseeked?: string | undefined | null;
120
+ onseeking?: string | undefined | null;
121
+ onstalled?: string | undefined | null;
122
+ onsuspend?: string | undefined | null;
123
+ ontimeupdate?: string | undefined | null;
124
+ onvolumechange?: string | undefined | null;
125
+ onwaiting?: string | undefined | null;
147
126
 
148
127
  // MouseEvents
149
- onauxclick?: MouseEventHandler<T> | string | undefined | null;
150
- onclick?: MouseEventHandler<T> | string | undefined | null;
151
- oncontextmenu?: MouseEventHandler<T> | string | undefined | null;
152
- ondblclick?: MouseEventHandler<T> | string | undefined | null;
153
- ondrag?: DragEventHandler<T> | string | undefined | null;
154
- ondragend?: DragEventHandler<T> | string | undefined | null;
155
- ondragenter?: DragEventHandler<T> | string | undefined | null;
156
- ondragexit?: DragEventHandler<T> | string | undefined | null;
157
- ondragleave?: DragEventHandler<T> | string | undefined | null;
158
- ondragover?: DragEventHandler<T> | string | undefined | null;
159
- ondragstart?: DragEventHandler<T> | string | undefined | null;
160
- ondrop?: DragEventHandler<T> | string | undefined | null;
161
- onmousedown?: MouseEventHandler<T> | string | undefined | null;
162
- onmouseenter?: MouseEventHandler<T> | string | undefined | null;
163
- onmouseleave?: MouseEventHandler<T> | string | undefined | null;
164
- onmousemove?: MouseEventHandler<T> | string | undefined | null;
165
- onmouseout?: MouseEventHandler<T> | string | undefined | null;
166
- onmouseover?: MouseEventHandler<T> | string | undefined | null;
167
- onmouseup?: MouseEventHandler<T> | string | undefined | null;
128
+ onauxclick?: string | undefined | null;
129
+ onclick?: string | undefined | null;
130
+ oncontextmenu?: string | undefined | null;
131
+ ondblclick?: string | undefined | null;
132
+ ondrag?: string | undefined | null;
133
+ ondragend?: string | undefined | null;
134
+ ondragenter?: string | undefined | null;
135
+ ondragexit?: string | undefined | null;
136
+ ondragleave?: string | undefined | null;
137
+ ondragover?: string | undefined | null;
138
+ ondragstart?: string | undefined | null;
139
+ ondrop?: string | undefined | null;
140
+ onmousedown?: string | undefined | null;
141
+ onmouseenter?: string | undefined | null;
142
+ onmouseleave?: string | undefined | null;
143
+ onmousemove?: string | undefined | null;
144
+ onmouseout?: string | undefined | null;
145
+ onmouseover?: string | undefined | null;
146
+ onmouseup?: string | undefined | null;
168
147
 
169
148
  // Selection Events
170
- onselect?: EventHandler<Event, T> | string | undefined | null;
171
- onselectionchange?: EventHandler<Event, T> | string | undefined | null;
172
- onselectstart?: EventHandler<Event, T> | string | undefined | null;
149
+ onselect?: string | undefined | null;
150
+ onselectionchange?: string | undefined | null;
151
+ onselectstart?: string | undefined | null;
173
152
 
174
153
  // Touch Events
175
- ontouchcancel?: TouchEventHandler<T> | string | undefined | null;
176
- ontouchend?: TouchEventHandler<T> | string | undefined | null;
177
- ontouchmove?: TouchEventHandler<T> | string | undefined | null;
178
- ontouchstart?: TouchEventHandler<T> | string | undefined | null;
154
+ ontouchcancel?: string | undefined | null;
155
+ ontouchend?: string | undefined | null;
156
+ ontouchmove?: string | undefined | null;
157
+ ontouchstart?: string | undefined | null;
179
158
 
180
159
  // Pointer Events
181
- ongotpointercapture?: PointerEventHandler<T> | string | undefined | null;
182
- onpointercancel?: PointerEventHandler<T> | string | undefined | null;
183
- onpointerdown?: PointerEventHandler<T> | string | undefined | null;
184
- onpointerenter?: PointerEventHandler<T> | string | undefined | null;
185
- onpointerleave?: PointerEventHandler<T> | string | undefined | null;
186
- onpointermove?: PointerEventHandler<T> | string | undefined | null;
187
- onpointerout?: PointerEventHandler<T> | string | undefined | null;
188
- onpointerover?: PointerEventHandler<T> | string | undefined | null;
189
- onpointerup?: PointerEventHandler<T> | string | undefined | null;
190
- onlostpointercapture?: PointerEventHandler<T> | string | undefined | null;
160
+ ongotpointercapture?: string | undefined | null;
161
+ onpointercancel?: string | undefined | null;
162
+ onpointerdown?: string | undefined | null;
163
+ onpointerenter?: string | undefined | null;
164
+ onpointerleave?: string | undefined | null;
165
+ onpointermove?: string | undefined | null;
166
+ onpointerout?: string | undefined | null;
167
+ onpointerover?: string | undefined | null;
168
+ onpointerup?: string | undefined | null;
169
+ onlostpointercapture?: string | undefined | null;
191
170
 
192
171
  // UI Events
193
- onscroll?: UIEventHandler<T> | string | undefined | null;
194
- onresize?: UIEventHandler<T> | string | undefined | null;
172
+ onscroll?: string | undefined | null;
173
+ onresize?: string | undefined | null;
195
174
 
196
175
  // Wheel Events
197
- onwheel?: WheelEventHandler<T> | string | undefined | null;
176
+ onwheel?: string | undefined | null;
198
177
 
199
178
  // Animation Events
200
- onanimationstart?: AnimationEventHandler<T> | string | undefined | null;
201
- onanimationend?: AnimationEventHandler<T> | string | undefined | null;
202
- onanimationiteration?: AnimationEventHandler<T> | string | undefined | null;
179
+ onanimationstart?: string | undefined | null;
180
+ onanimationend?: string | undefined | null;
181
+ onanimationiteration?: string | undefined | null;
203
182
 
204
183
  // Transition Events
205
- ontransitionstart?: TransitionEventHandler<T> | string | undefined | null;
206
- ontransitionrun?: TransitionEventHandler<T> | string | undefined | null;
207
- ontransitionend?: TransitionEventHandler<T> | string | undefined | null;
208
- ontransitioncancel?: TransitionEventHandler<T> | string | undefined | null;
184
+ ontransitionstart?: string | undefined | null;
185
+ ontransitionrun?: string | undefined | null;
186
+ ontransitionend?: string | undefined | null;
187
+ ontransitioncancel?: string | undefined | null;
209
188
 
210
189
  // Message Events
211
- onmessage?: MessageEventHandler<T> | string | undefined | null;
212
- onmessageerror?: MessageEventHandler<T> | string | undefined | null;
190
+ onmessage?: string | undefined | null;
191
+ onmessageerror?: string | undefined | null;
213
192
 
214
193
  // Global Events
215
- oncancel?: EventHandler<Event, T> | string | undefined | null;
216
- onclose?: EventHandler<Event, T> | string | undefined | null;
217
- onfullscreenchange?: EventHandler<Event, T> | string | undefined | null;
218
- onfullscreenerror?: EventHandler<Event, T> | string | undefined | null;
194
+ oncancel?: string | undefined | null;
195
+ onclose?: string | undefined | null;
196
+ onfullscreenchange?: string | undefined | null;
197
+ onfullscreenerror?: string | undefined | null;
219
198
  }
220
199
 
221
200
  // All the WAI-ARIA 1.1 attributes from https://www.w3.org/TR/wai-aria-1.1/
@@ -240,17 +219,17 @@ declare namespace astroHTML.JSX {
240
219
  * Defines the total number of columns in a table, grid, or treegrid.
241
220
  * @see aria-colindex.
242
221
  */
243
- 'aria-colcount'?: number | undefined | null;
222
+ 'aria-colcount'?: number | string | undefined | null;
244
223
  /**
245
224
  * Defines an element's column index or position with respect to the total number of columns within a table, grid, or treegrid.
246
225
  * @see aria-colcount @see aria-colspan.
247
226
  */
248
- 'aria-colindex'?: number | undefined | null;
227
+ 'aria-colindex'?: number | string | undefined | null;
249
228
  /**
250
229
  * Defines the number of columns spanned by a cell or gridcell within a table, grid, or treegrid.
251
230
  * @see aria-colindex @see aria-rowspan.
252
231
  */
253
- 'aria-colspan'?: number | undefined | null;
232
+ 'aria-colspan'?: number | string | undefined | null;
254
233
  /**
255
234
  * Identifies the element (or elements) whose contents or presence are controlled by the current element.
256
235
  * @see aria-owns.
@@ -320,7 +299,7 @@ declare namespace astroHTML.JSX {
320
299
  */
321
300
  'aria-labelledby'?: string | undefined | null;
322
301
  /** Defines the hierarchical level of an element within a structure. */
323
- 'aria-level'?: number | undefined | null;
302
+ 'aria-level'?: number | string | undefined | null;
324
303
  /** Indicates that an element will be updated, and describes the types of updates the user agents, assistive technologies, and user can expect from the live region. */
325
304
  'aria-live'?: 'off' | 'assertive' | 'polite' | undefined | null;
326
305
  /** Indicates whether an element is modal when displayed. */
@@ -346,7 +325,7 @@ declare namespace astroHTML.JSX {
346
325
  * Defines an element's number or position in the current set of listitems or treeitems. Not required if all elements in the set are present in the DOM.
347
326
  * @see aria-setsize.
348
327
  */
349
- 'aria-posinset'?: number | undefined | null;
328
+ 'aria-posinset'?: number | string | undefined | null;
350
329
  /**
351
330
  * Indicates the current "pressed" state of toggle buttons.
352
331
  * @see aria-checked @see aria-selected.
@@ -382,17 +361,17 @@ declare namespace astroHTML.JSX {
382
361
  * Defines the total number of rows in a table, grid, or treegrid.
383
362
  * @see aria-rowindex.
384
363
  */
385
- 'aria-rowcount'?: number | undefined | null;
364
+ 'aria-rowcount'?: number | string | undefined | null;
386
365
  /**
387
366
  * Defines an element's row index or position with respect to the total number of rows within a table, grid, or treegrid.
388
367
  * @see aria-rowcount @see aria-rowspan.
389
368
  */
390
- 'aria-rowindex'?: number | undefined | null;
369
+ 'aria-rowindex'?: number | string | undefined | null;
391
370
  /**
392
371
  * Defines the number of rows spanned by a cell or gridcell within a table, grid, or treegrid.
393
372
  * @see aria-rowindex @see aria-colspan.
394
373
  */
395
- 'aria-rowspan'?: number | undefined | null;
374
+ 'aria-rowspan'?: number | string | undefined | null;
396
375
  /**
397
376
  * Indicates the current "selected" state of various widgets.
398
377
  * @see aria-checked @see aria-pressed.
@@ -402,205 +381,607 @@ declare namespace astroHTML.JSX {
402
381
  * Defines the number of items in the current set of listitems or treeitems. Not required if all elements in the set are present in the DOM.
403
382
  * @see aria-posinset.
404
383
  */
405
- 'aria-setsize'?: number | undefined | null;
384
+ 'aria-setsize'?: number | string | undefined | null;
406
385
  /** Indicates if items in a table or grid are sorted in ascending or descending order. */
407
386
  'aria-sort'?: 'none' | 'ascending' | 'descending' | 'other' | undefined | null;
408
387
  /** Defines the maximum allowed value for a range widget. */
409
- 'aria-valuemax'?: number | undefined | null;
388
+ 'aria-valuemax'?: number | string | undefined | null;
410
389
  /** Defines the minimum allowed value for a range widget. */
411
- 'aria-valuemin'?: number | undefined | null;
390
+ 'aria-valuemin'?: number | string | undefined | null;
412
391
  /**
413
392
  * Defines the current value for a range widget.
414
393
  * @see aria-valuetext.
415
394
  */
416
- 'aria-valuenow'?: number | undefined | null;
395
+ 'aria-valuenow'?: number | string | undefined | null;
417
396
  /** Defines the human readable text alternative of aria-valuenow for a range widget. */
418
397
  'aria-valuetext'?: string | undefined | null;
419
398
  }
420
399
 
421
- interface HTMLAttributes<T extends EventTarget> extends AriaAttributes, DOMAttributes<T>, AstroBuiltinAttributes {
400
+ // All the WAI-ARIA 1.1 role attribute values from https://www.w3.org/TR/wai-aria-1.1/#role_definitions
401
+ type AriaRole =
402
+ | 'alert'
403
+ | 'alertdialog'
404
+ | 'application'
405
+ | 'article'
406
+ | 'banner'
407
+ | 'button'
408
+ | 'cell'
409
+ | 'checkbox'
410
+ | 'columnheader'
411
+ | 'combobox'
412
+ | 'complementary'
413
+ | 'contentinfo'
414
+ | 'definition'
415
+ | 'dialog'
416
+ | 'directory'
417
+ | 'document'
418
+ | 'feed'
419
+ | 'figure'
420
+ | 'form'
421
+ | 'grid'
422
+ | 'gridcell'
423
+ | 'group'
424
+ | 'heading'
425
+ | 'img'
426
+ | 'link'
427
+ | 'list'
428
+ | 'listbox'
429
+ | 'listitem'
430
+ | 'log'
431
+ | 'main'
432
+ | 'marquee'
433
+ | 'math'
434
+ | 'menu'
435
+ | 'menubar'
436
+ | 'menuitem'
437
+ | 'menuitemcheckbox'
438
+ | 'menuitemradio'
439
+ | 'navigation'
440
+ | 'none'
441
+ | 'note'
442
+ | 'option'
443
+ | 'presentation'
444
+ | 'progressbar'
445
+ | 'radio'
446
+ | 'radiogroup'
447
+ | 'region'
448
+ | 'row'
449
+ | 'rowgroup'
450
+ | 'rowheader'
451
+ | 'scrollbar'
452
+ | 'search'
453
+ | 'searchbox'
454
+ | 'separator'
455
+ | 'slider'
456
+ | 'spinbutton'
457
+ | 'status'
458
+ | 'switch'
459
+ | 'tab'
460
+ | 'table'
461
+ | 'tablist'
462
+ | 'tabpanel'
463
+ | 'term'
464
+ | 'textbox'
465
+ | 'timer'
466
+ | 'toolbar'
467
+ | 'tooltip'
468
+ | 'tree'
469
+ | 'treegrid'
470
+ | 'treeitem';
471
+
472
+ interface HTMLAttributes extends AriaAttributes, DOMAttributes, AstroBuiltinAttributes {
422
473
  // Standard HTML Attributes
423
- class?: string | undefined | null;
424
- dataset?: object | undefined | null; // eslint-disable-line
425
- accept?: string | undefined | null;
426
- acceptcharset?: string | undefined | null;
427
474
  accesskey?: string | undefined | null;
428
- action?: string | undefined | null;
429
- allow?: string | undefined | null;
430
- allowfullscreen?: boolean | undefined | null;
431
- allowtransparency?: boolean | undefined | null;
432
- allowpaymentrequest?: boolean | undefined | null;
475
+ autocapitalize?: string | undefined | null;
476
+ autofocus?: boolean | string | undefined | null;
477
+ class?: string | undefined | null;
478
+ contenteditable?: 'true' | 'false' | boolean | 'inherit' | string | undefined | null;
479
+ dir?: string | undefined | null;
480
+ draggable?: 'true' | 'false' | boolean | undefined | null;
481
+ enterkeyhint?: 'enter' | 'done' | 'go' | 'next' | 'previous' | 'search' | 'send' | undefined | null;
482
+ hidden?: boolean | string | undefined | null;
483
+ id?: string | undefined | null;
484
+ inert?: boolean | string | undefined | null;
485
+ inputmode?: 'none' | 'text' | 'tel' | 'url' | 'email' | 'numeric' | 'decimal' | 'search' | undefined | null;
486
+ is?: string | undefined | null;
487
+ itemid?: string | undefined | null;
488
+ itemprop?: string | undefined | null;
489
+ itemref?: string | undefined | null;
490
+ itemscope?: boolean | string | undefined | null;
491
+ itemtype?: string | undefined | null;
492
+ lang?: string | undefined | null;
493
+ slot?: string | undefined | null;
494
+ spellcheck?: 'true' | 'false' | boolean | undefined | null;
495
+ style?: string | Record<string, any> | undefined | null;
496
+ tabindex?: number | string | undefined | null;
497
+ title?: string | undefined | null;
498
+ translate?: 'yes' | 'no' | undefined | null;
499
+
500
+ // <command>, <menuitem>
501
+ radiogroup?: string | undefined | null;
502
+
503
+ // WAI-ARIA
504
+ role?: AriaRole | undefined | null;
505
+
506
+ // RDFa Attributes
507
+ about?: string | undefined | null;
508
+ datatype?: string | undefined | null;
509
+ inlist?: any;
510
+ prefix?: string | undefined | null;
511
+ property?: string | undefined | null;
512
+ resource?: string | undefined | null;
513
+ typeof?: string | undefined | null;
514
+ vocab?: string | undefined | null;
515
+
516
+ // Non-standard Attributes
517
+ contextmenu?: string | undefined | null; // Obsolete
518
+ autosave?: string | undefined | null; // Apple exclusive
519
+ color?: string | undefined | null;
520
+ results?: number | string | undefined | null;
521
+ security?: string | undefined | null;
522
+ unselectable?: 'on' | 'off' | undefined | null; // Internet Explorer
523
+ }
524
+
525
+ type HTMLAttributeReferrerPolicy =
526
+ | ''
527
+ | 'no-referrer'
528
+ | 'no-referrer-when-downgrade'
529
+ | 'origin'
530
+ | 'origin-when-cross-origin'
531
+ | 'same-origin'
532
+ | 'strict-origin'
533
+ | 'strict-origin-when-cross-origin'
534
+ | 'unsafe-url';
535
+
536
+ type HTMLAttributeAnchorTarget = '_self' | '_blank' | '_parent' | '_top';
537
+
538
+ interface AnchorHTMLAttributes extends HTMLAttributes {
539
+ download?: string | boolean | undefined | null;
540
+ href?: string | URL | undefined | null;
541
+ hreflang?: string | undefined | null;
542
+ media?: string | undefined | null;
543
+ ping?: string | undefined | null;
544
+ rel?: string | undefined | null;
545
+ target?: HTMLAttributeAnchorTarget | undefined | null;
546
+ type?: string | undefined | null;
547
+ referrerpolicy?: HTMLAttributeReferrerPolicy | undefined | null;
548
+ }
549
+
550
+ // eslint-disable-next-line @typescript-eslint/no-empty-interface
551
+ interface AudioHTMLAttributes extends MediaHTMLAttributes {}
552
+
553
+ interface AreaHTMLAttributes extends HTMLAttributes {
433
554
  alt?: string | undefined | null;
434
- as?: string | undefined | null;
435
- async?: boolean | undefined | null;
436
- autocomplete?: string | undefined | null;
437
- autofocus?: boolean | undefined | null;
438
- autoplay?: boolean | undefined | null;
439
- capture?: 'environment' | 'user' | boolean | undefined | null;
440
- cellpadding?: number | string | undefined | null;
441
- cellspacing?: number | string | undefined | null;
442
- charset?: string | undefined | null;
443
- challenge?: string | undefined | null;
444
- checked?: boolean | undefined | null;
555
+ coords?: string | undefined | null;
556
+ download?: any;
557
+ href?: string | undefined | null;
558
+ hreflang?: string | undefined | null;
559
+ media?: string | undefined | null;
560
+ referrerpolicy?: HTMLAttributeReferrerPolicy | undefined | null;
561
+ rel?: string | undefined | null;
562
+ shape?: string | undefined | null;
563
+ target?: string | undefined | null;
564
+ }
565
+
566
+ interface BaseHTMLAttributes extends HTMLAttributes {
567
+ href?: string | undefined | null;
568
+ target?: string | undefined | null;
569
+ }
570
+
571
+ interface BlockquoteHTMLAttributes extends HTMLAttributes {
445
572
  cite?: string | undefined | null;
446
- classid?: string | undefined | null;
447
- cols?: number | undefined | null;
448
- colspan?: number | undefined | null;
449
- content?: string | URL | undefined | null;
450
- contenteditable?: 'true' | 'false' | boolean | undefined | null;
573
+ }
451
574
 
452
- // Doesn't work when used as HTML attribute
453
- /**
454
- * Elements with the contenteditable attribute support innerHTML and textContent bindings.
455
- */
456
- innerHTML?: string | undefined | null;
457
- // Doesn't work when used as HTML attribute
458
- /**
459
- * Elements with the contenteditable attribute support innerHTML and textContent bindings.
460
- */
575
+ interface ButtonHTMLAttributes extends HTMLAttributes {
576
+ disabled?: boolean | string | undefined | null;
577
+ form?: string | undefined | null;
578
+ formaction?: string | undefined | null;
579
+ formenctype?: string | undefined | null;
580
+ formmethod?: string | undefined | null;
581
+ formnovalidate?: boolean | string | undefined | null;
582
+ formtarget?: string | undefined | null;
583
+ name?: string | undefined | null;
584
+ type?: 'submit' | 'reset' | 'button' | undefined | null;
585
+ value?: string | string[] | number | undefined | null;
586
+ }
461
587
 
462
- textContent?: string | undefined | null;
588
+ interface CanvasHTMLAttributes extends HTMLAttributes {
589
+ height?: number | string | undefined | null;
590
+ width?: number | string | undefined | null;
591
+ }
463
592
 
464
- contextmenu?: string | undefined | null;
465
- controls?: boolean | undefined | null;
466
- coords?: string | undefined | null;
467
- crossorigin?: string | boolean | undefined | null;
468
- currenttime?: number | undefined | null;
469
- decoding?: 'async' | 'sync' | 'auto' | undefined | null;
470
- data?: string | undefined | null;
593
+ interface ColHTMLAttributes extends HTMLAttributes {
594
+ span?: number | string | undefined | null;
595
+ width?: number | string | undefined | null;
596
+ }
597
+
598
+ interface ColgroupHTMLAttributes extends HTMLAttributes {
599
+ span?: number | string | undefined | null;
600
+ }
601
+
602
+ interface DataHTMLAttributes extends HTMLAttributes {
603
+ value?: string | string[] | number | undefined | null;
604
+ }
605
+
606
+ interface DetailsHTMLAttributes extends HTMLAttributes {
607
+ open?: boolean | string | undefined | null;
608
+ }
609
+
610
+ interface DelHTMLAttributes extends HTMLAttributes {
611
+ cite?: string | undefined | null;
471
612
  datetime?: string | undefined | null;
472
- default?: boolean | undefined | null;
473
- defaultmuted?: boolean | undefined | null;
474
- defaultplaybackrate?: number | undefined | null;
475
- defer?: boolean | undefined | null;
476
- dir?: string | undefined | null;
477
- dirname?: string | undefined | null;
478
- disabled?: boolean | undefined | null;
479
- download?: any | undefined | null;
480
- draggable?: boolean | 'true' | 'false' | undefined | null;
613
+ }
614
+
615
+ interface DialogHTMLAttributes extends HTMLAttributes {
616
+ open?: boolean | string | undefined | null;
617
+ }
618
+
619
+ interface EmbedHTMLAttributes extends HTMLAttributes {
620
+ height?: number | string | undefined | null;
621
+ src?: string | undefined | null;
622
+ type?: string | undefined | null;
623
+ width?: number | string | undefined | null;
624
+ }
625
+
626
+ interface FieldsetHTMLAttributes extends HTMLAttributes {
627
+ disabled?: boolean | string | undefined | null;
628
+ form?: string | undefined | null;
629
+ name?: string | undefined | null;
630
+ }
631
+
632
+ interface FormHTMLAttributes extends HTMLAttributes {
633
+ 'accept-charset'?: string | undefined | null;
634
+ action?: string | undefined | null;
635
+ autocomplete?: string | undefined | null;
636
+ autocorrect?: string | undefined | null;
481
637
  enctype?: string | undefined | null;
482
- enterkeyhint?: 'enter' | 'done' | 'go' | 'next' | 'previous' | 'search' | 'send' | undefined | null;
483
- for?: string | undefined | null;
638
+ method?: string | undefined | null;
639
+ name?: string | undefined | null;
640
+ novalidate?: boolean | string | undefined | null;
641
+ target?: string | undefined | null;
642
+ }
643
+
644
+ interface HtmlHTMLAttributes extends HTMLAttributes {
645
+ manifest?: string | undefined | null;
646
+ }
647
+
648
+ interface IframeHTMLAttributes extends HTMLAttributes {
649
+ allow?: string | undefined | null;
650
+ allowfullscreen?: boolean | string | undefined | null;
651
+ allowtransparency?: boolean | string | undefined | null;
652
+ /** @deprecated */
653
+ frameborder?: number | string | undefined | null;
654
+ height?: number | string | undefined | null;
655
+ loading?: 'eager' | 'lazy' | undefined | null;
656
+ /** @deprecated */
657
+ marginheight?: number | string | undefined | null;
658
+ /** @deprecated */
659
+ marginwidth?: number | string | undefined | null;
660
+ name?: string | undefined | null;
661
+ referrerpolicy?: HTMLAttributeReferrerPolicy | undefined | null;
662
+ sandbox?: string | undefined | null;
663
+ /** @deprecated */
664
+ scrolling?: string | undefined | null;
665
+ seamless?: boolean | string | undefined | null;
666
+ src?: string | undefined | null;
667
+ srcdoc?: string | undefined | null;
668
+ width?: number | string | undefined | null;
669
+ }
670
+
671
+ interface ImgHTMLAttributes extends HTMLAttributes {
672
+ alt?: string | undefined | null;
673
+ crossorigin?: 'anonymous' | 'use-credentials' | '' | undefined | null;
674
+ decoding?: 'async' | 'auto' | 'sync' | undefined | null;
675
+ height?: number | string | undefined | null;
676
+ loading?: 'eager' | 'lazy' | undefined | null;
677
+ referrerpolicy?: HTMLAttributeReferrerPolicy | undefined | null;
678
+ sizes?: string | undefined | null;
679
+ src?: string | undefined | null;
680
+ srcset?: string | undefined | null;
681
+ usemap?: string | undefined | null;
682
+ width?: number | string | undefined | null;
683
+ }
684
+
685
+ interface InsHTMLAttributes extends HTMLAttributes {
686
+ cite?: string | undefined | null;
687
+ datetime?: string | undefined | null;
688
+ }
689
+
690
+ type HTMLInputTypeAttribute =
691
+ | 'button'
692
+ | 'checkbox'
693
+ | 'color'
694
+ | 'date'
695
+ | 'datetime-local'
696
+ | 'email'
697
+ | 'file'
698
+ | 'hidden'
699
+ | 'image'
700
+ | 'month'
701
+ | 'number'
702
+ | 'password'
703
+ | 'radio'
704
+ | 'range'
705
+ | 'reset'
706
+ | 'search'
707
+ | 'submit'
708
+ | 'tel'
709
+ | 'text'
710
+ | 'time'
711
+ | 'url'
712
+ | 'week';
713
+
714
+ interface InputHTMLAttributes extends HTMLAttributes {
715
+ accept?: string | undefined | null;
716
+ alt?: string | undefined | null;
717
+ autocomplete?: string | undefined | null;
718
+ autocorrect?: string | undefined | null;
719
+ capture?: boolean | string | undefined | null;
720
+ checked?: boolean | string | undefined | null;
721
+ crossorigin?: string | undefined | null;
722
+ dirname?: string | undefined | null;
723
+ disabled?: boolean | string | undefined | null;
484
724
  form?: string | undefined | null;
485
725
  formaction?: string | undefined | null;
486
726
  formenctype?: string | undefined | null;
487
727
  formmethod?: string | undefined | null;
488
- formnovalidate?: boolean | undefined | null;
728
+ formnovalidate?: boolean | string | undefined | null;
489
729
  formtarget?: string | undefined | null;
490
- frameborder?: number | string | undefined | null;
491
- headers?: string | undefined | null;
492
730
  height?: number | string | undefined | null;
493
- hidden?: boolean | undefined | null;
494
- high?: number | undefined | null;
495
- href?: string | URL | undefined | null;
496
- hreflang?: string | undefined | null;
497
- htmlfor?: string | undefined | null;
498
- httpequiv?: string | undefined | null;
499
- id?: string | undefined | null;
500
- inputmode?: string | undefined | null;
501
- integrity?: string | undefined | null;
502
- is?: string | undefined | null;
503
- ismap?: boolean | undefined | null;
504
- keyparams?: string | undefined | null;
505
- keytype?: string | undefined | null;
506
- kind?: string | undefined | null;
507
- label?: string | undefined | null;
508
- lang?: string | undefined | null;
509
731
  list?: string | undefined | null;
510
- loading?: string | undefined | null;
511
- loop?: boolean | undefined | null;
512
- low?: number | undefined | null;
513
- manifest?: string | undefined | null;
514
- marginheight?: number | undefined | null;
515
- marginwidth?: number | undefined | null;
516
732
  max?: number | string | undefined | null;
517
- maxlength?: number | undefined | null;
518
- media?: string | undefined | null;
519
- mediagroup?: string | undefined | null;
520
- method?: string | undefined | null;
733
+ maxlength?: number | string | undefined | null;
521
734
  min?: number | string | undefined | null;
522
- minlength?: number | undefined | null;
523
- multiple?: boolean | undefined | null;
524
- muted?: boolean | undefined | null;
735
+ minlength?: number | string | undefined | null;
736
+ multiple?: boolean | string | undefined | null;
525
737
  name?: string | undefined | null;
526
- nonce?: string | undefined | null;
527
- novalidate?: boolean | undefined | null;
528
- open?: boolean | undefined | null;
529
- optimum?: number | undefined | null;
530
- part?: string | undefined | null;
531
738
  pattern?: string | undefined | null;
532
739
  placeholder?: string | undefined | null;
533
- playsinline?: boolean | undefined | null;
534
- poster?: string | undefined | null;
535
- preload?: string | undefined | null;
536
- radiogroup?: string | undefined | null;
537
- readonly?: boolean | undefined | null;
538
- referrerpolicy?: string | undefined | null;
740
+ readonly?: boolean | string | undefined | null;
741
+ required?: boolean | string | undefined | null;
742
+ size?: number | string | undefined | null;
743
+ src?: string | undefined | null;
744
+ step?: number | string | undefined | null;
745
+ type?: HTMLInputTypeAttribute | string | undefined | null;
746
+ value?: string | string[] | number | undefined | null;
747
+ width?: number | string | undefined | null;
748
+ }
749
+
750
+ interface KeygenHTMLAttributes extends HTMLAttributes {
751
+ challenge?: string | undefined | null;
752
+ disabled?: boolean | string | undefined | null;
753
+ form?: string | undefined | null;
754
+ keytype?: string | undefined | null;
755
+ keyparams?: string | undefined | null;
756
+ name?: string | undefined | null;
757
+ }
758
+
759
+ interface LabelHTMLAttributes extends HTMLAttributes {
760
+ form?: string | undefined | null;
761
+ for?: string | undefined | null;
762
+ }
763
+
764
+ interface LiHTMLAttributes extends HTMLAttributes {
765
+ value?: string | number | undefined | null;
766
+ }
767
+
768
+ interface LinkHTMLAttributes extends HTMLAttributes {
769
+ as?: string | undefined | null;
770
+ crossorigin?: boolean | string | undefined | null;
771
+ href?: string | URL | undefined | null;
772
+ hreflang?: string | undefined | null;
773
+ integrity?: string | undefined | null;
774
+ media?: string | undefined | null;
775
+ imageSrcSet?: string | undefined | null;
776
+ imageSizes?: string | undefined | null;
777
+ referrerPolicy?: HTMLAttributeReferrerPolicy | undefined | null;
539
778
  rel?: string | undefined | null;
540
- required?: boolean | undefined | null;
541
- reversed?: boolean | undefined | null;
542
- role?: string | undefined | null;
543
- rows?: number | undefined | null;
544
- rowspan?: number | undefined | null;
545
- sandbox?: string | undefined | null;
546
- scope?: string | undefined | null;
547
- scoped?: boolean | undefined | null;
548
- scrolling?: string | undefined | null;
549
- seamless?: boolean | undefined | null;
550
- selected?: boolean | undefined | null;
551
- shape?: string | undefined | null;
552
- size?: number | undefined | null;
553
779
  sizes?: string | undefined | null;
554
- slot?: string | undefined | null;
555
- span?: number | undefined | null;
556
- spellcheck?: boolean | 'true' | 'false' | undefined | null;
780
+ type?: string | undefined | null;
781
+ charset?: string | undefined | null;
782
+ }
783
+
784
+ interface MapHTMLAttributes extends HTMLAttributes {
785
+ name?: string | undefined | null;
786
+ }
787
+
788
+ interface MenuHTMLAttributes extends HTMLAttributes {
789
+ type?: string | undefined | null;
790
+ }
791
+
792
+ interface MediaHTMLAttributes extends HTMLAttributes {
793
+ autoplay?: boolean | string | undefined | null;
794
+ controls?: boolean | string | undefined | null;
795
+ controlslist?: string | undefined | null;
796
+ crossorigin?: string | undefined | null;
797
+ loop?: boolean | string | undefined | null;
798
+ mediagroup?: string | undefined | null;
799
+ muted?: boolean | string | undefined | null;
800
+ playsinline?: boolean | string | undefined | null;
801
+ preload?: string | undefined | null;
557
802
  src?: string | undefined | null;
558
- srcdoc?: string | undefined | null;
559
- srclang?: string | undefined | null;
560
- srcset?: string | undefined | null;
561
- start?: number | undefined | null;
562
- step?: number | string | undefined | null;
563
- style?: string | undefined | null;
564
- summary?: string | undefined | null;
565
- tabindex?: number | undefined | null;
566
- target?: string | undefined | null;
567
- title?: string | undefined | null;
568
- translate?: 'yes' | 'no' | '' | undefined | null;
803
+ }
804
+
805
+ interface MetaHTMLAttributes extends HTMLAttributes {
806
+ charset?: string | undefined | null;
807
+ content?: string | URL | undefined | null;
808
+ 'http-equiv'?: string | undefined | null;
809
+ name?: string | undefined | null;
810
+ media?: string | undefined | null;
811
+ }
812
+
813
+ interface MeterHTMLAttributes extends HTMLAttributes {
814
+ form?: string | undefined | null;
815
+ high?: number | string | undefined | null;
816
+ low?: number | string | undefined | null;
817
+ max?: number | string | undefined | null;
818
+ min?: number | string | undefined | null;
819
+ optimum?: number | string | undefined | null;
820
+ value?: string | string[] | number | undefined | null;
821
+ }
822
+
823
+ interface QuoteHTMLAttributes extends HTMLAttributes {
824
+ cite?: string | undefined | null;
825
+ }
826
+
827
+ interface ObjectHTMLAttributes extends HTMLAttributes {
828
+ classid?: string | undefined | null;
829
+ data?: string | undefined | null;
830
+ form?: string | undefined | null;
831
+ height?: number | string | undefined | null;
832
+ name?: string | undefined | null;
569
833
  type?: string | undefined | null;
570
834
  usemap?: string | undefined | null;
571
- value?: any | undefined | null;
572
- /**
573
- * a value between 0 and 1
574
- */
575
- volume?: number | undefined | null;
576
835
  width?: number | string | undefined | null;
577
836
  wmode?: string | undefined | null;
578
- wrap?: string | undefined | null;
837
+ }
579
838
 
580
- // RDFa Attributes
581
- about?: string | undefined | null;
582
- datatype?: string | undefined | null;
583
- inlist?: any | undefined | null;
584
- prefix?: string | undefined | null;
585
- property?: string | undefined | null;
586
- resource?: string | undefined | null;
587
- typeof?: string | undefined | null;
588
- vocab?: string | undefined | null;
839
+ interface OlHTMLAttributes extends HTMLAttributes {
840
+ reversed?: boolean | string | undefined | null;
841
+ start?: number | string | undefined | null;
842
+ type?: '1' | 'a' | 'A' | 'i' | 'I' | undefined | null;
843
+ }
589
844
 
590
- // Non-standard Attributes
591
- autocapitalize?: string | undefined | null;
845
+ interface OptgroupHTMLAttributes extends HTMLAttributes {
846
+ disabled?: boolean | string | undefined | null;
847
+ label?: string | undefined | null;
848
+ }
849
+
850
+ interface OptionHTMLAttributes extends HTMLAttributes {
851
+ disabled?: boolean | string | undefined | null;
852
+ label?: string | undefined | null;
853
+ selected?: boolean | string | undefined | null;
854
+ value?: string | string[] | number | undefined | null;
855
+ }
856
+
857
+ interface OutputHTMLAttributes extends HTMLAttributes {
858
+ form?: string | undefined | null;
859
+ for?: string | undefined | null;
860
+ name?: string | undefined | null;
861
+ }
862
+
863
+ interface ParamHTMLAttributes extends HTMLAttributes {
864
+ name?: string | undefined | null;
865
+ value?: string | string[] | number | undefined | null;
866
+ }
867
+
868
+ interface ProgressHTMLAttributes extends HTMLAttributes {
869
+ max?: number | string | undefined | null;
870
+ value?: string | string[] | number | undefined | null;
871
+ }
872
+
873
+ interface SlotHTMLAttributes extends HTMLAttributes {
874
+ name?: string | undefined | null;
875
+ }
876
+
877
+ interface ScriptHTMLAttributes extends HTMLAttributes {
878
+ async?: boolean | string | undefined | null;
879
+ charset?: string | undefined | null;
880
+ crossorigin?: string | undefined | null;
881
+ defer?: boolean | string | undefined | null;
882
+ integrity?: string | undefined | null;
883
+ nomodule?: boolean | string | undefined | null;
884
+ nonce?: string | undefined | null;
885
+ src?: string | undefined | null;
886
+ type?: string | undefined | null;
887
+ }
888
+
889
+ interface SelectHTMLAttributes extends HTMLAttributes {
890
+ autocomplete?: string | undefined | null;
592
891
  autocorrect?: string | undefined | null;
593
- autosave?: string | undefined | null;
594
- color?: string | undefined | null;
595
- controlslist?: 'nodownload' | 'nofullscreen' | 'noplaybackrate' | 'noremoteplayback';
596
- itemprop?: string | undefined | null;
597
- itemscope?: boolean | undefined | null;
598
- itemtype?: string | undefined | null;
599
- itemid?: string | undefined | null;
600
- itemref?: string | undefined | null;
601
- results?: number | undefined | null;
602
- security?: string | undefined | null;
603
- unselectable?: boolean | undefined | null;
892
+ disabled?: boolean | string | undefined | null;
893
+ form?: string | undefined | null;
894
+ multiple?: boolean | string | undefined | null;
895
+ name?: string | undefined | null;
896
+ required?: boolean | string | undefined | null;
897
+ size?: number | string | undefined | null;
898
+ value?: string | string[] | number | undefined | null;
899
+ }
900
+
901
+ interface SourceHTMLAttributes extends HTMLAttributes {
902
+ height?: number | string | undefined | null;
903
+ media?: string | undefined | null;
904
+ sizes?: string | undefined | null;
905
+ src?: string | undefined | null;
906
+ srcset?: string | undefined | null;
907
+ type?: string | undefined | null;
908
+ width?: number | string | undefined | null;
909
+ }
910
+
911
+ interface StyleHTMLAttributes extends HTMLAttributes {
912
+ media?: string | undefined | null;
913
+ nonce?: string | undefined | null;
914
+ scoped?: boolean | string | undefined | null;
915
+ type?: string | undefined | null;
916
+ }
917
+
918
+ interface TableHTMLAttributes extends HTMLAttributes {
919
+ align?: 'left' | 'center' | 'right' | undefined | null;
920
+ bgcolor?: string | undefined | null;
921
+ border?: number | undefined | null;
922
+ cellpadding?: number | string | undefined | null;
923
+ cellspacing?: number | string | undefined | null;
924
+ frame?: boolean | undefined | null;
925
+ rules?: 'none' | 'groups' | 'rows' | 'columns' | 'all' | undefined | null;
926
+ summary?: string | undefined | null;
927
+ width?: number | string | undefined | null;
928
+ }
929
+
930
+ interface TextareaHTMLAttributes extends HTMLAttributes {
931
+ autocomplete?: string | undefined | null;
932
+ autocorrect?: string | undefined | null;
933
+ cols?: number | string | undefined | null;
934
+ dirname?: string | undefined | null;
935
+ disabled?: boolean | string | undefined | null;
936
+ form?: string | undefined | null;
937
+ maxlength?: number | string | undefined | null;
938
+ minlength?: number | string | undefined | null;
939
+ name?: string | undefined | null;
940
+ placeholder?: string | undefined | null;
941
+ readonly?: boolean | string | undefined | null;
942
+ required?: boolean | string | undefined | null;
943
+ rows?: number | string | undefined | null;
944
+ value?: string | string[] | number | undefined | null;
945
+ wrap?: string | undefined | null;
946
+ }
947
+
948
+ interface TdHTMLAttributes extends HTMLAttributes {
949
+ align?: 'left' | 'center' | 'right' | 'justify' | 'char' | undefined | null;
950
+ colspan?: number | string | undefined | null;
951
+ headers?: string | undefined | null;
952
+ rowspan?: number | string | undefined | null;
953
+ scope?: string | undefined | null;
954
+ abbr?: string | undefined | null;
955
+ valign?: 'top' | 'middle' | 'bottom' | 'baseline' | undefined | null;
956
+ }
957
+
958
+ interface ThHTMLAttributes extends HTMLAttributes {
959
+ align?: 'left' | 'center' | 'right' | 'justify' | 'char' | undefined | null;
960
+ colspan?: number | string | undefined | null;
961
+ headers?: string | undefined | null;
962
+ rowspan?: number | string | undefined | null;
963
+ scope?: string | undefined | null;
964
+ abbr?: string | undefined | null;
965
+ }
966
+
967
+ interface TimeHTMLAttributes extends HTMLAttributes {
968
+ datetime?: string | undefined | null;
969
+ }
970
+
971
+ interface TrackHTMLAttributes extends HTMLAttributes {
972
+ default?: boolean | string | undefined | null;
973
+ kind?: string | undefined | null;
974
+ label?: string | undefined | null;
975
+ src?: string | undefined | null;
976
+ srclang?: string | undefined | null;
977
+ }
978
+
979
+ interface VideoHTMLAttributes extends MediaHTMLAttributes {
980
+ height?: number | string | undefined | null;
981
+ playsinline?: boolean | string | undefined | null;
982
+ poster?: string | undefined | null;
983
+ width?: number | string | undefined | null;
984
+ disablepictureinpicture?: boolean | string | undefined | null;
604
985
  }
605
986
 
606
987
  // this list is "complete" in that it contains every SVG attribute
@@ -611,9 +992,8 @@ declare namespace astroHTML.JSX {
611
992
  // - "number | string"
612
993
  // - "string"
613
994
  // - union of string literals
614
- interface SVGAttributes<T extends EventTarget> extends AriaAttributes, DOMAttributes<T> {
995
+ interface SVGAttributes extends AriaAttributes, DOMAttributes, AstroBuiltinAttributes {
615
996
  // Attributes which also defined in HTMLAttributes
616
- className?: string | undefined | null;
617
997
  class?: string | undefined | null;
618
998
  color?: string | undefined | null;
619
999
  height?: number | string | undefined | null;
@@ -624,14 +1004,14 @@ declare namespace astroHTML.JSX {
624
1004
  method?: string | undefined | null;
625
1005
  min?: number | string | undefined | null;
626
1006
  name?: string | undefined | null;
627
- style?: string | undefined | null;
1007
+ style?: string | Record<string, any> | undefined | null;
628
1008
  target?: string | undefined | null;
629
1009
  type?: string | undefined | null;
630
1010
  width?: number | string | undefined | null;
631
1011
 
632
1012
  // Other HTML properties supported by SVG elements in browsers
633
- role?: string | undefined | null;
634
- tabindex?: number | undefined | null;
1013
+ role?: AriaRole | undefined | null;
1014
+ tabindex?: number | string | undefined | null;
635
1015
  crossorigin?: 'anonymous' | 'use-credentials' | '' | undefined | null;
636
1016
 
637
1017
  // SVG Specific attributes
@@ -893,184 +1273,181 @@ declare namespace astroHTML.JSX {
893
1273
  zoomAndPan?: string | undefined | null;
894
1274
  }
895
1275
 
896
- // eslint-disable-next-line @typescript-eslint/no-empty-interface
897
- interface HTMLProps<T extends EventTarget> extends HTMLAttributes<T> {}
898
- // eslint-disable-next-line @typescript-eslint/no-empty-interface
899
- interface SVGProps<T extends EventTarget> extends SVGAttributes<T> {}
900
-
901
1276
  interface IntrinsicElements {
902
1277
  // HTML
903
- a: HTMLProps<HTMLAnchorElement>;
904
- abbr: HTMLProps<HTMLElement>;
905
- address: HTMLProps<HTMLElement>;
906
- area: HTMLProps<HTMLAreaElement>;
907
- article: HTMLProps<HTMLElement>;
908
- aside: HTMLProps<HTMLElement>;
909
- audio: HTMLProps<HTMLAudioElement>;
910
- b: HTMLProps<HTMLElement>;
911
- base: HTMLProps<HTMLBaseElement>;
912
- bdi: HTMLProps<HTMLElement>;
913
- bdo: HTMLProps<HTMLElement>;
914
- big: HTMLProps<HTMLElement>;
915
- blockquote: HTMLProps<HTMLElement>;
916
- body: HTMLProps<HTMLBodyElement>;
917
- br: HTMLProps<HTMLBRElement>;
918
- button: HTMLProps<HTMLButtonElement>;
919
- canvas: HTMLProps<HTMLCanvasElement>;
920
- caption: HTMLProps<HTMLElement>;
921
- cite: HTMLProps<HTMLElement>;
922
- code: HTMLProps<HTMLElement>;
923
- col: HTMLProps<HTMLTableColElement>;
924
- colgroup: HTMLProps<HTMLTableColElement>;
925
- data: HTMLProps<HTMLElement>;
926
- datalist: HTMLProps<HTMLDataListElement>;
927
- dd: HTMLProps<HTMLElement>;
928
- del: HTMLProps<HTMLElement>;
929
- details: HTMLProps<HTMLElement>;
930
- dfn: HTMLProps<HTMLElement>;
931
- dialog: HTMLProps<HTMLElement>;
932
- div: HTMLProps<HTMLDivElement>;
933
- dl: HTMLProps<HTMLDListElement>;
934
- dt: HTMLProps<HTMLElement>;
935
- em: HTMLProps<HTMLElement>;
936
- embed: HTMLProps<HTMLEmbedElement>;
937
- fieldset: HTMLProps<HTMLFieldSetElement>;
938
- figcaption: HTMLProps<HTMLElement>;
939
- figure: HTMLProps<HTMLElement>;
940
- footer: HTMLProps<HTMLElement>;
941
- form: HTMLProps<HTMLFormElement>;
942
- h1: HTMLProps<HTMLHeadingElement>;
943
- h2: HTMLProps<HTMLHeadingElement>;
944
- h3: HTMLProps<HTMLHeadingElement>;
945
- h4: HTMLProps<HTMLHeadingElement>;
946
- h5: HTMLProps<HTMLHeadingElement>;
947
- h6: HTMLProps<HTMLHeadingElement>;
948
- head: HTMLProps<HTMLHeadElement>;
949
- header: HTMLProps<HTMLElement>;
950
- hgroup: HTMLProps<HTMLElement>;
951
- hr: HTMLProps<HTMLHRElement>;
952
- html: HTMLProps<HTMLHtmlElement>;
953
- i: HTMLProps<HTMLElement>;
954
- iframe: HTMLProps<HTMLIFrameElement>;
955
- img: HTMLProps<HTMLImageElement>;
956
- input: HTMLProps<HTMLInputElement>;
957
- ins: HTMLProps<HTMLModElement>;
958
- kbd: HTMLProps<HTMLElement>;
959
- keygen: HTMLProps<HTMLElement>;
960
- label: HTMLProps<HTMLLabelElement>;
961
- legend: HTMLProps<HTMLLegendElement>;
962
- li: HTMLProps<HTMLLIElement>;
963
- link: HTMLProps<HTMLLinkElement>;
964
- main: HTMLProps<HTMLElement>;
965
- map: HTMLProps<HTMLMapElement>;
966
- mark: HTMLProps<HTMLElement>;
967
- menu: HTMLProps<HTMLElement>;
968
- menuitem: HTMLProps<HTMLElement>;
969
- meta: HTMLProps<HTMLMetaElement>;
970
- meter: HTMLProps<HTMLElement>;
971
- nav: HTMLProps<HTMLElement>;
972
- noindex: HTMLProps<HTMLElement>;
973
- noscript: HTMLProps<HTMLElement>;
974
- object: HTMLProps<HTMLObjectElement>;
975
- ol: HTMLProps<HTMLOListElement>;
976
- optgroup: HTMLProps<HTMLOptGroupElement>;
977
- option: HTMLProps<HTMLOptionElement>;
978
- output: HTMLProps<HTMLElement>;
979
- p: HTMLProps<HTMLParagraphElement>;
980
- param: HTMLProps<HTMLParamElement>;
981
- picture: HTMLProps<HTMLElement>;
982
- pre: HTMLProps<HTMLPreElement>;
983
- progress: HTMLProps<HTMLProgressElement>;
984
- q: HTMLProps<HTMLQuoteElement>;
985
- rp: HTMLProps<HTMLElement>;
986
- rt: HTMLProps<HTMLElement>;
987
- ruby: HTMLProps<HTMLElement>;
988
- s: HTMLProps<HTMLElement>;
989
- samp: HTMLProps<HTMLElement>;
990
- script: HTMLProps<HTMLElement> & AstroDefineVars & AstroScript;
991
- section: HTMLProps<HTMLElement>;
992
- select: HTMLProps<HTMLSelectElement>;
993
- small: HTMLProps<HTMLElement>;
994
- source: HTMLProps<HTMLSourceElement>;
995
- span: HTMLProps<HTMLSpanElement>;
996
- strong: HTMLProps<HTMLElement>;
997
- style: HTMLProps<HTMLStyleElement> & AstroDefineVars & AstroStyle;
998
- sub: HTMLProps<HTMLElement>;
999
- summary: HTMLProps<HTMLElement>;
1000
- sup: HTMLProps<HTMLElement>;
1001
- table: HTMLProps<HTMLTableElement>;
1002
- tbody: HTMLProps<HTMLTableSectionElement>;
1003
- td: HTMLProps<HTMLTableCellElement>;
1004
- textarea: HTMLProps<HTMLTextAreaElement>;
1005
- tfoot: HTMLProps<HTMLTableSectionElement>;
1006
- th: HTMLProps<HTMLTableCellElement>;
1007
- thead: HTMLProps<HTMLTableSectionElement>;
1008
- time: HTMLProps<HTMLElement>;
1009
- title: HTMLProps<HTMLTitleElement>;
1010
- tr: HTMLProps<HTMLTableRowElement>;
1011
- track: HTMLProps<HTMLTrackElement>;
1012
- u: HTMLProps<HTMLElement>;
1013
- ul: HTMLProps<HTMLUListElement>;
1014
- var: HTMLProps<HTMLElement>;
1015
- video: HTMLProps<HTMLVideoElement>;
1016
- wbr: HTMLProps<HTMLElement>;
1017
-
1018
- svg: SVGProps<SVGSVGElement>;
1019
-
1020
- animate: SVGProps<SVGAnimateElement>;
1021
- circle: SVGProps<SVGCircleElement>;
1022
- clipPath: SVGProps<SVGClipPathElement>;
1023
- defs: SVGProps<SVGDefsElement>;
1024
- desc: SVGProps<SVGDescElement>;
1025
- ellipse: SVGProps<SVGEllipseElement>;
1026
- feBlend: SVGProps<SVGFEBlendElement>;
1027
- feColorMatrix: SVGProps<SVGFEColorMatrixElement>;
1028
- feComponentTransfer: SVGProps<SVGFEComponentTransferElement>;
1029
- feComposite: SVGProps<SVGFECompositeElement>;
1030
- feConvolveMatrix: SVGProps<SVGFEConvolveMatrixElement>;
1031
- feDiffuseLighting: SVGProps<SVGFEDiffuseLightingElement>;
1032
- feDisplacementMap: SVGProps<SVGFEDisplacementMapElement>;
1033
- feDistantLight: SVGProps<SVGFEDistantLightElement>;
1034
- feFlood: SVGProps<SVGFEFloodElement>;
1035
- feFuncA: SVGProps<SVGFEFuncAElement>;
1036
- feFuncB: SVGProps<SVGFEFuncBElement>;
1037
- feFuncG: SVGProps<SVGFEFuncGElement>;
1038
- feFuncR: SVGProps<SVGFEFuncRElement>;
1039
- feGaussianBlur: SVGProps<SVGFEGaussianBlurElement>;
1040
- feImage: SVGProps<SVGFEImageElement>;
1041
- feMerge: SVGProps<SVGFEMergeElement>;
1042
- feMergeNode: SVGProps<SVGFEMergeNodeElement>;
1043
- feMorphology: SVGProps<SVGFEMorphologyElement>;
1044
- feOffset: SVGProps<SVGFEOffsetElement>;
1045
- fePointLight: SVGProps<SVGFEPointLightElement>;
1046
- feSpecularLighting: SVGProps<SVGFESpecularLightingElement>;
1047
- feSpotLight: SVGProps<SVGFESpotLightElement>;
1048
- feTile: SVGProps<SVGFETileElement>;
1049
- feTurbulence: SVGProps<SVGFETurbulenceElement>;
1050
- filter: SVGProps<SVGFilterElement>;
1051
- foreignObject: SVGProps<SVGForeignObjectElement>;
1052
- g: SVGProps<SVGGElement>;
1053
- image: SVGProps<SVGImageElement>;
1054
- line: SVGProps<SVGLineElement>;
1055
- linearGradient: SVGProps<SVGLinearGradientElement>;
1056
- marker: SVGProps<SVGMarkerElement>;
1057
- mask: SVGProps<SVGMaskElement>;
1058
- metadata: SVGProps<SVGMetadataElement>;
1059
- path: SVGProps<SVGPathElement>;
1060
- pattern: SVGProps<SVGPatternElement>;
1061
- polygon: SVGProps<SVGPolygonElement>;
1062
- polyline: SVGProps<SVGPolylineElement>;
1063
- radialGradient: SVGProps<SVGRadialGradientElement>;
1064
- rect: SVGProps<SVGRectElement>;
1065
- stop: SVGProps<SVGStopElement>;
1066
- switch: SVGProps<SVGSwitchElement>;
1067
- symbol: SVGProps<SVGSymbolElement>;
1068
- text: SVGProps<SVGTextElement>;
1069
- textPath: SVGProps<SVGTextPathElement>;
1070
- tspan: SVGProps<SVGTSpanElement>;
1071
- use: SVGProps<SVGUseElement>;
1072
- view: SVGProps<SVGViewElement>;
1278
+ a: AnchorHTMLAttributes;
1279
+ abbr: HTMLAttributes;
1280
+ address: HTMLAttributes;
1281
+ area: AreaHTMLAttributes;
1282
+ article: HTMLAttributes;
1283
+ aside: HTMLAttributes;
1284
+ audio: AudioHTMLAttributes;
1285
+ b: HTMLAttributes;
1286
+ base: BaseHTMLAttributes;
1287
+ bdi: HTMLAttributes;
1288
+ bdo: HTMLAttributes;
1289
+ big: HTMLAttributes;
1290
+ blockquote: BlockquoteHTMLAttributes;
1291
+ body: HTMLAttributes;
1292
+ br: HTMLAttributes;
1293
+ button: ButtonHTMLAttributes;
1294
+ canvas: CanvasHTMLAttributes;
1295
+ caption: HTMLAttributes;
1296
+ cite: HTMLAttributes;
1297
+ code: HTMLAttributes;
1298
+ col: ColHTMLAttributes;
1299
+ colgroup: ColgroupHTMLAttributes;
1300
+ data: DataHTMLAttributes;
1301
+ datalist: HTMLAttributes;
1302
+ dd: HTMLAttributes;
1303
+ del: DelHTMLAttributes;
1304
+ details: DetailsHTMLAttributes;
1305
+ dfn: HTMLAttributes;
1306
+ dialog: DialogHTMLAttributes;
1307
+ div: HTMLAttributes;
1308
+ dl: HTMLAttributes;
1309
+ dt: HTMLAttributes;
1310
+ em: HTMLAttributes;
1311
+ embed: EmbedHTMLAttributes;
1312
+ fieldset: FieldsetHTMLAttributes;
1313
+ figcaption: HTMLAttributes;
1314
+ figure: HTMLAttributes;
1315
+ footer: HTMLAttributes;
1316
+ form: FormHTMLAttributes;
1317
+ h1: HTMLAttributes;
1318
+ h2: HTMLAttributes;
1319
+ h3: HTMLAttributes;
1320
+ h4: HTMLAttributes;
1321
+ h5: HTMLAttributes;
1322
+ h6: HTMLAttributes;
1323
+ head: HTMLAttributes;
1324
+ header: HTMLAttributes;
1325
+ hgroup: HTMLAttributes;
1326
+ hr: HTMLAttributes;
1327
+ html: HtmlHTMLAttributes;
1328
+ i: HTMLAttributes;
1329
+ iframe: IframeHTMLAttributes;
1330
+ img: ImgHTMLAttributes;
1331
+ input: InputHTMLAttributes;
1332
+ ins: InsHTMLAttributes;
1333
+ kbd: HTMLAttributes;
1334
+ keygen: KeygenHTMLAttributes;
1335
+ label: LabelHTMLAttributes;
1336
+ legend: HTMLAttributes;
1337
+ li: LiHTMLAttributes;
1338
+ link: LinkHTMLAttributes;
1339
+ main: HTMLAttributes;
1340
+ map: MapHTMLAttributes;
1341
+ mark: HTMLAttributes;
1342
+ menu: MenuHTMLAttributes;
1343
+ menuitem: HTMLAttributes;
1344
+ meta: MetaHTMLAttributes;
1345
+ meter: MeterHTMLAttributes;
1346
+ nav: HTMLAttributes;
1347
+ noindex: HTMLAttributes; // https://en.wikipedia.org/wiki/Noindex#%3Cnoindex%3E_tag
1348
+ noscript: HTMLAttributes;
1349
+ object: ObjectHTMLAttributes;
1350
+ ol: OlHTMLAttributes;
1351
+ optgroup: OptgroupHTMLAttributes;
1352
+ option: OptionHTMLAttributes;
1353
+ output: OutputHTMLAttributes;
1354
+ p: HTMLAttributes;
1355
+ param: ParamHTMLAttributes;
1356
+ picture: HTMLAttributes;
1357
+ pre: HTMLAttributes;
1358
+ progress: ProgressHTMLAttributes;
1359
+ q: QuoteHTMLAttributes;
1360
+ rp: HTMLAttributes;
1361
+ rt: HTMLAttributes;
1362
+ ruby: HTMLAttributes;
1363
+ s: HTMLAttributes;
1364
+ samp: HTMLAttributes;
1365
+ slot: SlotHTMLAttributes;
1366
+ script: ScriptHTMLAttributes & AstroScriptAttributes;
1367
+ section: HTMLAttributes;
1368
+ select: SelectHTMLAttributes;
1369
+ small: HTMLAttributes;
1370
+ source: SourceHTMLAttributes;
1371
+ span: HTMLAttributes;
1372
+ strong: HTMLAttributes;
1373
+ style: StyleHTMLAttributes & AstroStyleAttributes;
1374
+ sub: HTMLAttributes;
1375
+ summary: HTMLAttributes;
1376
+ sup: HTMLAttributes;
1377
+ table: TableHTMLAttributes;
1378
+ tbody: HTMLAttributes;
1379
+ td: TdHTMLAttributes;
1380
+ textarea: TextareaHTMLAttributes;
1381
+ tfoot: HTMLAttributes;
1382
+ th: ThHTMLAttributes;
1383
+ thead: HTMLAttributes;
1384
+ time: TimeHTMLAttributes;
1385
+ title: HTMLAttributes;
1386
+ tr: HTMLAttributes;
1387
+ track: TrackHTMLAttributes;
1388
+ u: HTMLAttributes;
1389
+ ul: HTMLAttributes;
1390
+ var: HTMLAttributes;
1391
+ video: VideoHTMLAttributes;
1392
+ wbr: HTMLAttributes;
1393
+
1394
+ // SVG
1395
+ svg: SVGAttributes;
1396
+ animate: SVGAttributes;
1397
+ circle: SVGAttributes;
1398
+ clipPath: SVGAttributes;
1399
+ defs: SVGAttributes;
1400
+ desc: SVGAttributes;
1401
+ ellipse: SVGAttributes;
1402
+ feBlend: SVGAttributes;
1403
+ feColorMatrix: SVGAttributes;
1404
+ feComponentTransfer: SVGAttributes;
1405
+ feComposite: SVGAttributes;
1406
+ feConvolveMatrix: SVGAttributes;
1407
+ feDiffuseLighting: SVGAttributes;
1408
+ feDisplacementMap: SVGAttributes;
1409
+ feDistantLight: SVGAttributes;
1410
+ feFlood: SVGAttributes;
1411
+ feFuncA: SVGAttributes;
1412
+ feFuncB: SVGAttributes;
1413
+ feFuncG: SVGAttributes;
1414
+ feFuncR: SVGAttributes;
1415
+ feGaussianBlur: SVGAttributes;
1416
+ feImage: SVGAttributes;
1417
+ feMerge: SVGAttributes;
1418
+ feMergeNode: SVGAttributes;
1419
+ feMorphology: SVGAttributes;
1420
+ feOffset: SVGAttributes;
1421
+ fePointLight: SVGAttributes;
1422
+ feSpecularLighting: SVGAttributes;
1423
+ feSpotLight: SVGAttributes;
1424
+ feTile: SVGAttributes;
1425
+ feTurbulence: SVGAttributes;
1426
+ filter: SVGAttributes;
1427
+ foreignObject: SVGAttributes;
1428
+ g: SVGAttributes;
1429
+ image: SVGAttributes;
1430
+ line: SVGAttributes;
1431
+ linearGradient: SVGAttributes;
1432
+ marker: SVGAttributes;
1433
+ mask: SVGAttributes;
1434
+ metadata: SVGAttributes;
1435
+ path: SVGAttributes;
1436
+ pattern: SVGAttributes;
1437
+ polygon: SVGAttributes;
1438
+ polyline: SVGAttributes;
1439
+ radialGradient: SVGAttributes;
1440
+ rect: SVGAttributes;
1441
+ stop: SVGAttributes;
1442
+ switch: SVGAttributes;
1443
+ symbol: SVGAttributes;
1444
+ text: SVGAttributes;
1445
+ textPath: SVGAttributes;
1446
+ tspan: SVGAttributes;
1447
+ use: SVGAttributes;
1448
+ view: SVGAttributes;
1073
1449
 
1450
+ // Allow for arbitrary elements
1074
1451
  [name: string]: { [name: string]: any };
1075
1452
  }
1076
1453
  }