@arcgis/lumina 4.31.0-next.84

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.
@@ -0,0 +1,2004 @@
1
+ /**
2
+ * This reference directive is removed by tsup at compile time. It is only
3
+ * needed to correctly type-check this package. For consumers of this package,
4
+ * they should have an `./src/lumina.ts` file like so:
5
+ * ```ts
6
+ * /// <reference types="@arcgis/lumina/typings" />
7
+ * ```
8
+ */
9
+ /// <reference path="../typings/jsxGlobals.d.ts" />
10
+ import type { Properties as CssProperties } from "csstype";
11
+ import type { TemplateResult } from "lit-html";
12
+ import type { DirectiveResult } from "lit-html/directive.js";
13
+ import type { ClassMapDirective } from "lit-html/directives/class-map.js";
14
+ import type { StyleMapDirective } from "lit-html/directives/style-map.js";
15
+ import type { Ref } from "lit-html/directives/ref.js";
16
+ import type { ClassInfo } from "lit/directives/class-map.js";
17
+ import type { DirectiveClass } from "lit/directive.js";
18
+ /**
19
+ * The "h" namespace is used to import JSX types for elements and attributes.
20
+ * It is imported in order to avoid conflicting global JSX issues.
21
+ */
22
+ export declare namespace h {
23
+ export function h(sel: any, data?: any, text?: any): TemplateResult;
24
+ export type { LitJsx as JSX };
25
+ }
26
+ /**
27
+ * Fragment
28
+ *
29
+ * @remarks
30
+ * This function is not actually defined in the code since references to it will
31
+ * be removed at build time by the jsxToLitHtml plugin.
32
+ */
33
+ export declare function Fragment(props: {
34
+ children?: JsxNode;
35
+ }): TemplateResult;
36
+ /**
37
+ * @remarks
38
+ * This function is not actually defined in the code since references to it will
39
+ * be removed at build time by the jsxToLitHtml plugin.
40
+ */
41
+ export declare function h(sel: any, data?: any, text?: any): TemplateResult;
42
+ /**
43
+ * @remarks
44
+ * This function is not actually defined in the code since references to it will
45
+ * be removed at build time by the jsxToLitHtml plugin.
46
+ */
47
+ export declare function jsx(type: string, props: unknown, key?: unknown): JsxNode;
48
+ /**
49
+ * @remarks
50
+ * This function is not actually defined in the code since references to it will
51
+ * be removed at build time by the jsxToLitHtml plugin.
52
+ */
53
+ export declare function jsxs(type: string, props: unknown, key?: unknown): JsxNode;
54
+ /**
55
+ * The JSX to lit-html conversion has a heuristic to determine whether a prop
56
+ * should be converted to a property or attribute at runtime. In cases where
57
+ * that heuristic is not sufficient, you can use the `bindAttribute()` function to
58
+ * explicitly tell the conversion to treat the prop as an attribute.
59
+ *
60
+ * This function call will be erased at build-time, thus it has no runtime
61
+ * impact. But that also means you should not call this function anywhere other
62
+ * than at the top level of a JSX prop value
63
+ *
64
+ * @example
65
+ * ```tsx
66
+ * <my-component
67
+ * name={bindAttribute("Pass name as attribute rather than property")}
68
+ * />
69
+ * ```
70
+ *
71
+ * Will be converted at build time into:
72
+ * ```ts
73
+ * html`<my-component name="Pass name as attribute rather than property"></my-component>`
74
+ * ```
75
+ *
76
+ * @remarks
77
+ * If you often encounter cases where the JSX to lit-html incorrectly converts
78
+ * the prop to a property necessitating the use of `bindAttribute()`, please open
79
+ * an issue for Lumina.
80
+ */
81
+ export declare const bindAttribute: <T>(value: T) => T;
82
+ /**
83
+ * The JSX to lit-html conversion has a heuristic to determine whether a prop
84
+ * should be converted to a property, attribute or boolean attribute at runtime.
85
+ * In cases where that heuristic is not sufficient, you can use the
86
+ * `bindBooleanAttribute()` function to explicitly tell the conversion to treat the
87
+ * prop as a boolean attribute.
88
+ *
89
+ * This function call will be erased at build-time, thus it has no runtime
90
+ * impact. But that also means you should not call this function anywhere other
91
+ * than at the top level of a JSX prop value
92
+ *
93
+ * @see https://lit.dev/docs/templates/expressions/#boolean-attribute-expressions
94
+ *
95
+ * @example
96
+ * ```tsx
97
+ * <my-component
98
+ * checked={bindBooleanAttribute(myBoolean)}
99
+ * />
100
+ * ```
101
+ *
102
+ * Will be converted at build time into:
103
+ * ```ts
104
+ * html`<my-component ?checked=${myBoolean}></my-component>`
105
+ * ```
106
+ *
107
+ * @remarks
108
+ * If you often encounter cases where the JSX to lit-html incorrectly converts
109
+ * the prop necessitating the use of `bindBooleanAttribute()`, please open
110
+ * an issue for Lumina.
111
+ */
112
+ export declare const bindBooleanAttribute: <T>(value: T) => T;
113
+ /**
114
+ * The JSX to lit-html conversion has a heuristic to determine whether a prop
115
+ * should be converted to a property or attribute at runtime. In cases where
116
+ * that heuristic is not sufficient, you can use the `bindProperty()` function to
117
+ * explicitly tell the conversion to treat the prop as a property.
118
+ *
119
+ * This function call will be erased at build-time, thus it has no runtime
120
+ * impact. But that also means you should not call this function anywhere other
121
+ * than at the top level of a JSX prop value
122
+ *
123
+ * @example
124
+ * ```tsx
125
+ * <my-component
126
+ * my-prop={bindProperty("Pass my-prop as a property rather than attribute")}
127
+ * />
128
+ * ```
129
+ *
130
+ * Will be converted at build time into:
131
+ * ```ts
132
+ * html`<my-component .my-prop="Pass my-prop as a property rather than attribute"></my-component>`
133
+ * ```
134
+ *
135
+ * @remarks
136
+ * If you often encounter cases where the JSX to lit-html incorrectly converts
137
+ * the prop to an attribute necessitating the use of `bindProperty()`, please open
138
+ * an issue for Lumina.
139
+ *
140
+ * @remarks
141
+ * This function is not named `property()` because that is already taken by
142
+ * Lit's \@property() decorator
143
+ */
144
+ export declare const bindProperty: <T>(value: T) => T;
145
+ /**
146
+ * The `bindEvent()` function lets you customize the event binding behavior by
147
+ * providing options like passive, capture, once and other options that you
148
+ * normally can provide to `addEventListener`
149
+ *
150
+ * This function call will be erased at build-time, thus it has no runtime
151
+ * impact.
152
+ *
153
+ * @example
154
+ * ```tsx
155
+ * <my-component
156
+ * onScroll={bindEvent({ handleEvent: console.log, passive:true })}
157
+ * />
158
+ * ```tsx
159
+ *
160
+ * ```ts
161
+ * html`<my-component onScroll=${{ handleEvent: console.log, passive:true }}></my-component>`
162
+ * ```
163
+ *
164
+ * @remarks
165
+ * This function is a _JSX to lit-html_ adaptation of the Lit's event listener
166
+ * customization syntax.
167
+ * See https://lit.dev/docs/components/events/#event-options-decorator
168
+ *
169
+ *
170
+ * @remarks
171
+ * This function is not named `event` because there is a legacy `window.event`
172
+ * global that was interfering with auto-imports of this function.
173
+ */
174
+ export declare const bindEvent: <T>(descriptor: T | (AddEventListenerOptions & {
175
+ handleEvent: T;
176
+ })) => T;
177
+ export type JsxNode = DirectiveResult<any> | JsxNodeArray | Node | TemplateResult | boolean | number | (NonNullable<unknown> & string) | null | undefined;
178
+ /**
179
+ * Equivalent to Lit's "nothing", but has type "never" to allow it to be set as a
180
+ * value for any JSX attribute.
181
+ *
182
+ * By default in Lit, nullish attribute value renders to an attribute without a
183
+ * value (which is interpreted by HTML as "true"). To tell Lit that you don't
184
+ * want the attribute to be present, use the `nothing` value.
185
+ *
186
+ * @example
187
+ * ```tsx
188
+ * <a href={this.href ?? nothing}>{this.label}</a>
189
+ * ```
190
+ *
191
+ * @remarks
192
+ * This is not a concern for properties as they are passed as is without
193
+ * serialization. For this reason, during _JSX to lit-html_ conversion, most JSX
194
+ * props are converted properties, except for the few cases when an attribute
195
+ * has no equivalent property.
196
+ */
197
+ export declare const nothing: never;
198
+ /**
199
+ * A sentinel value that signals that a value was handled by a directive and
200
+ * should not be written to the DOM.
201
+ *
202
+ * @remarks
203
+ * This is equivalent to Lit's native "noChange", but has type "never" to allow
204
+ * it be set as a value for any JSX attribute.
205
+ */
206
+ export declare const noChange: never;
207
+ /**
208
+ * Creates a user-facing directive function from a Directive class. This
209
+ * function has the same parameters as the directive's render() method.
210
+ *
211
+ * @remarks
212
+ * This is equivalent to Lit's native "directive()", but has return type
213
+ * "never" to allow it be set as a value for any JSX attribute.
214
+ */
215
+ export declare const directive: <C extends DirectiveClass>(c: C) => (...values: Parameters<InstanceType<C>["render"]>) => never;
216
+ interface JsxNodeArray extends Array<JsxNode> {
217
+ }
218
+ /**
219
+ * These typings are based on dom-expressions typings:
220
+ * https://github.com/ryansolid/dom-expressions/blob/main/packages/dom-expressions/src/jsx.d.ts
221
+ *
222
+ * They in turn based the typings on Surplus and Inferno:
223
+ * - https://github.com/adamhaile/surplus/blob/master/index.d.ts
224
+ * - https://github.com/infernojs/inferno/blob/master/packages/inferno/src/core/types.ts
225
+ *
226
+ * Documentation about how to type JSX in TypeScript:
227
+ * https://www.typescriptlang.org/docs/handbook/jsx.html
228
+ */
229
+ type DOMElement = Element;
230
+ export declare namespace LitJsx {
231
+ /**
232
+ * Whether to pick TemplateResult or JsxNode here is a compromise.
233
+ *
234
+ * - If I tell it Lit JSX type is JsxNode, then even <a /> expression will
235
+ * have a very broad JsxNode type (union of template results, null,
236
+ * undefined, false, and more). This may slow down type-checking and may be
237
+ * too-broad for certain use cases.
238
+ * - Since <a /> would be typed very broad, you won't be able to declare
239
+ * your function as receiving just TemplateResult
240
+ * - Also, this makes TypeScript not allow you to return undefined from
241
+ * your functional component
242
+ * - This is what React did and what I am going with
243
+ * - If I tell TypeScript that JSX type is TemplateResult, then my function
244
+ * component is no longer allowed to return undefined or string or etc.
245
+ *
246
+ * This is mainly a TypeScript limitation. Issues tracking this:
247
+ * - https://github.com/microsoft/TypeScript/issues/21699
248
+ * - https://github.com/DefinitelyTyped/DefinitelyTyped/issues/18912
249
+ *
250
+ */
251
+ type Element = TemplateResult;
252
+ interface ElementClass {
253
+ }
254
+ interface ElementAttributesProperty {
255
+ }
256
+ interface IntrinsicClassAttributes {
257
+ }
258
+ interface ElementChildrenAttribute {
259
+ children: JsxNode;
260
+ }
261
+ interface IntrinsicAttributes {
262
+ /**
263
+ * The `key` is a special attribute that can be set on any element.
264
+ *
265
+ * At build-time it is translated into the `keyed()` directive:
266
+ * https://lit.dev/docs/templates/directives/#keyed
267
+ *
268
+ * @remarks
269
+ * Unlike in React or Stencil, any JavaScript value is acceptable as a key
270
+ */
271
+ key?: unknown;
272
+ }
273
+ interface IntrinsicElements extends HTMLElementTags, SVGElementTags, ReMappedComponents<globalThis.DeclareElements>, Omit<ReMapStencilComponents<globalThis.ImportStencilElements>, keyof HTMLElementTags | keyof SVGElementTags> {
274
+ }
275
+ /**
276
+ * By not requiring to have some sort of typings generation watcher to run
277
+ * in the background and generate types for the components based on the
278
+ * exposed properties, we improve developer experience a lot.
279
+ * (no need to run a watcher in the background, no need to commit an
280
+ * autogenerated file, fewer merge conflicts...)
281
+ *
282
+ * The trade-off is that we can't tell in TypeScript if component's public
283
+ * properties have a `@property()` decorator or not, so have to expose them
284
+ * all. To reduce the noise, we exclude some properties that we know are
285
+ * definitely not props (as they are coming from LitElement)
286
+ *
287
+ * An ESLint rule that mandates all properties to be private/protected or else
288
+ * to have a `@property()` decorator would mitigate the issue to a large
289
+ * extent.
290
+ *
291
+ * This does not impact the typings we publish - at build time we have all the
292
+ * information and can generate the typings that expose only the actual
293
+ * properties component declared.
294
+ */
295
+ type ExcludedProperties = "renderRoot" | "isUpdatePending" | "hasUpdated" | "addController" | "removeController" | "connectedCallback" | "disconnectedCallback" | "attributeChangedCallback" | "requestUpdate" | "updateComplete" | "el" | "manager" | "componentOnReady" | "listen" | "load" | "loaded" | "willUpdate" | "updated" | "render" | "renderOptions";
296
+ type ReMappedComponents<Components> = {
297
+ [Key in keyof Components]: ComponentProps<Components[Key]>;
298
+ };
299
+ /**
300
+ * * A utility type for getting the JSX prop types for a given component
301
+ *
302
+ * - Exclude LitElement properties that should not be exposed to the end-user
303
+ * - Convert event .emit() properties into event callbacks
304
+ * - Replace original HTMLElement property typings with the ones we provide for
305
+ * greater type-safety and control
306
+ * - For native events listeners, make currentTarget equal to the component's
307
+ * HTML instance
308
+ *
309
+ * We mark all component properties as optional because there is no easy
310
+ * way for us to differentiate between public component properties and just
311
+ * regular members that don't have `@property()` decorator (presence or
312
+ * absence of decorator does not change the type). Thus, if we don't mark all
313
+ * properties as optional, TypeScript will force us to provide a value for all
314
+ * methods, and regular properties component may have.
315
+ */
316
+ type ComponentProps<Component> = Partial<Omit<Component, FindEventProperties<Component> | ExcludedProperties | keyof HTMLElement>> & {
317
+ [Key in FindEventProperties<Component> as `on${Key & string}`]?: (event: Omit<Component[Key], "emit"> & {
318
+ currentTarget: Component;
319
+ }) => void;
320
+ } & HTMLAttributes<Component>;
321
+ type FindEventProperties<Component> = {
322
+ [Key in keyof Component]: Component[Key] extends CustomEvent ? unknown extends Component[Key] ? never : Key : never;
323
+ }[keyof Component];
324
+ /**
325
+ * - Make ref prop return HTMLElement rather than Stencil element type
326
+ * - Uncapitalize the event properties to match the syntax of React 19,
327
+ * Preact and Lumina
328
+ * - Replace Stencil's HTMLElement property typings with the ones we provide
329
+ * for greater type-safety, better documentation and more control
330
+ */
331
+ type ReMapStencilComponents<Components> = {
332
+ [Key in keyof Pick<Components, keyof Components & keyof HTMLElementTagNameMap>]: ReMapStencilComponent<Components[Key]> & HTMLAttributes<HTMLElementTagNameMap[Key]>;
333
+ };
334
+ type ReMapStencilComponent<Component> = {
335
+ [Key in keyof Component as Key extends "ref" | keyof HTMLElement ? never : FixupStencilEventCasing<Key>]: Component[Key];
336
+ };
337
+ type FixupStencilEventCasing<PropertyName extends PropertyKey> = PropertyName extends `on${infer EventName}` ? `on${Uncapitalize<EventName>}` : PropertyName;
338
+ type EventHandlerUnion<T, E extends Event> = (e: E & {
339
+ currentTarget: T;
340
+ target: DOMElement;
341
+ }) => void;
342
+ type InputEventHandlerUnion<T, E extends InputEvent> = (e: E & {
343
+ currentTarget: T;
344
+ target: T extends HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement ? T : DOMElement;
345
+ }) => void;
346
+ type ChangeEventHandlerUnion<T, E extends Event> = (e: E & {
347
+ currentTarget: T;
348
+ target: T extends HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement ? T : DOMElement;
349
+ }) => void;
350
+ type FocusEventHandlerUnion<T, E extends FocusEvent> = (e: E & {
351
+ currentTarget: T;
352
+ target: T extends HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement ? T : DOMElement;
353
+ }) => void;
354
+ type RefCallback<T> = {
355
+ bivarianceHack(instance: T | undefined): void;
356
+ }["bivarianceHack"];
357
+ interface CustomAttributes<T = HTMLElement> {
358
+ /**
359
+ * The `key` is a special attribute that can be set on any element.
360
+ *
361
+ * At build-time it is translated into the `keyed()` directive:
362
+ * https://lit.dev/docs/templates/directives/#keyed
363
+ *
364
+ * @remarks
365
+ * Unlike in React or Stencil, any JavaScript value is acceptable as a key
366
+ */
367
+ key?: unknown;
368
+ ref?: RefCallback<T> | Ref<T>;
369
+ directives?: readonly DirectiveResult[];
370
+ }
371
+ interface DOMAttributes<T = HTMLElement> extends CustomAttributes<T>, GlobalEventHandlersCamelCase<T> {
372
+ children?: JsxNode;
373
+ innerHTML?: string;
374
+ innerText?: string | number;
375
+ textContent?: string | number;
376
+ class?: string | ClassInfo | DirectiveResult<typeof ClassMapDirective>;
377
+ }
378
+ interface GlobalEventHandlersCamelCase<T = HTMLElement> {
379
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/animationcancel_event) */
380
+ onAnimationCancel?: EventHandlerUnion<T, AnimationEvent>;
381
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/animationend_event) */
382
+ onAnimationEnd?: EventHandlerUnion<T, AnimationEvent>;
383
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/animationiteration_event) */
384
+ onAnimationIteration?: EventHandlerUnion<T, AnimationEvent>;
385
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/animationstart_event) */
386
+ onAnimationStart?: EventHandlerUnion<T, AnimationEvent>;
387
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/auxclick_event) */
388
+ onAuxClick?: EventHandlerUnion<T, MouseEvent>;
389
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/beforeinput_event) */
390
+ onBeforeInput?: InputEventHandlerUnion<T, InputEvent>;
391
+ /**
392
+ * Fires when the object loses the input focus.
393
+ *
394
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/blur_event)
395
+ */
396
+ onBlur?: FocusEventHandlerUnion<T, FocusEvent>;
397
+ /**
398
+ * Fires when the contents of the object or selection have changed.
399
+ *
400
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/change_event)
401
+ */
402
+ onChange?: ChangeEventHandlerUnion<T, Event>;
403
+ /**
404
+ * Fires when the user clicks the left mouse button on the object
405
+ *
406
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/click_event)
407
+ */
408
+ onClick?: EventHandlerUnion<T, MouseEvent>;
409
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/compositionend_event) */
410
+ onCompositionEnd?: EventHandlerUnion<T, CompositionEvent>;
411
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/compositionstart_event) */
412
+ onCompositionStart?: EventHandlerUnion<T, CompositionEvent>;
413
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/compositionupdate_event) */
414
+ onCompositionUpdate?: EventHandlerUnion<T, CompositionEvent>;
415
+ /**
416
+ * Fires when the user clicks the right mouse button in the client area, opening the context menu.
417
+ *
418
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/contextmenu_event)
419
+ */
420
+ onContextMenu?: EventHandlerUnion<T, MouseEvent>;
421
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/copy_event) */
422
+ onCopy?: EventHandlerUnion<T, ClipboardEvent>;
423
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/cut_event) */
424
+ onCut?: EventHandlerUnion<T, ClipboardEvent>;
425
+ /**
426
+ * Fires when the user double-clicks the object.
427
+ *
428
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/dblclick_event)
429
+ */
430
+ onDblClick?: EventHandlerUnion<T, MouseEvent>;
431
+ /**
432
+ * Fires on the source object continuously during a drag operation.
433
+ *
434
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/drag_event)
435
+ */
436
+ onDrag?: EventHandlerUnion<T, DragEvent>;
437
+ /**
438
+ * Fires on the source object when the user releases the mouse at the close of a drag operation.
439
+ *
440
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/dragend_event)
441
+ */
442
+ onDragEnd?: EventHandlerUnion<T, DragEvent>;
443
+ /**
444
+ * Fires on the target element when the user drags the object to a valid drop target.
445
+ *
446
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/dragenter_event)
447
+ */
448
+ onDragEnter?: EventHandlerUnion<T, DragEvent>;
449
+ /**
450
+ * Fires on the target object when the user moves the mouse out of a valid drop target during a drag operation.
451
+ *
452
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/dragleave_event)
453
+ */
454
+ onDragLeave?: EventHandlerUnion<T, DragEvent>;
455
+ /**
456
+ * Fires on the target element continuously while the user drags the object over a valid drop target.
457
+ *
458
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/dragover_event)
459
+ */
460
+ onDragOver?: EventHandlerUnion<T, DragEvent>;
461
+ /**
462
+ * Fires on the source object when the user starts to drag a text selection or selected object.
463
+ *
464
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/dragstart_event)
465
+ */
466
+ onDragStart?: EventHandlerUnion<T, DragEvent>;
467
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/drop_event) */
468
+ onDrop?: EventHandlerUnion<T, DragEvent>;
469
+ onEncrypted?: EventHandlerUnion<T, Event>;
470
+ /**
471
+ * Fires when an error occurs during object loading.
472
+ *
473
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/error_event)
474
+ */
475
+ onError?: EventHandlerUnion<T, Event>;
476
+ /**
477
+ * Fires when the object receives focus.
478
+ *
479
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/focus_event)
480
+ */
481
+ onFocus?: FocusEventHandlerUnion<T, FocusEvent>;
482
+ /** [MDN Reference](https://developer.mozilla.org/en-US/docs/Web/API/Element/focusout_event) */
483
+ onFocusOut?: FocusEventHandlerUnion<T, FocusEvent>;
484
+ /** [MDN Reference](https://developer.mozilla.org/en-US/docs/Web/API/Element/focusin_event) */
485
+ onFocusIn?: FocusEventHandlerUnion<T, FocusEvent>;
486
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/fullscreenchange_event) */
487
+ onFullscreenChange?: EventHandlerUnion<T, Event>;
488
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/fullscreenerror_event) */
489
+ onFullscreenError?: EventHandlerUnion<T, Event>;
490
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/gotpointercapture_event) */
491
+ onGotPointerCapture?: EventHandlerUnion<T, PointerEvent>;
492
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/input_event) */
493
+ onInput?: InputEventHandlerUnion<T, InputEvent>;
494
+ /**
495
+ * Fires when the user presses a key.
496
+ *
497
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/keydown_event)
498
+ */
499
+ onKeyDown?: EventHandlerUnion<T, KeyboardEvent>;
500
+ /**
501
+ * Fires when the user releases a key.
502
+ *
503
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/keyup_event)
504
+ */
505
+ onKeyUp?: EventHandlerUnion<T, KeyboardEvent>;
506
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/lostpointercapture_event) */
507
+ onLostPointerCapture?: EventHandlerUnion<T, PointerEvent>;
508
+ /**
509
+ * Fires when the user clicks the object with either mouse button.
510
+ *
511
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/mousedown_event)
512
+ */
513
+ onMouseDown?: EventHandlerUnion<T, MouseEvent>;
514
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/mouseenter_event) */
515
+ onMouseEnter?: EventHandlerUnion<T, MouseEvent>;
516
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/mouseleave_event) */
517
+ onMouseLeave?: EventHandlerUnion<T, MouseEvent>;
518
+ /**
519
+ * Fires when the user moves the mouse over the object.
520
+ *
521
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/mousemove_event)
522
+ */
523
+ onMouseMove?: EventHandlerUnion<T, MouseEvent>;
524
+ /**
525
+ * Fires when the user moves the mouse pointer outside the boundaries of the object.
526
+ *
527
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/mouseout_event)
528
+ */
529
+ onMouseOut?: EventHandlerUnion<T, MouseEvent>;
530
+ /**
531
+ * Fires when the user moves the mouse pointer into the object.
532
+ *
533
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/mouseover_event)
534
+ */
535
+ onMouseOver?: EventHandlerUnion<T, MouseEvent>;
536
+ /**
537
+ * Fires when the user releases a mouse button while the mouse is over the object.
538
+ *
539
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/mouseup_event)
540
+ */
541
+ onMouseUp?: EventHandlerUnion<T, MouseEvent>;
542
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/paste_event) */
543
+ onPaste?: EventHandlerUnion<T, ClipboardEvent>;
544
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/pointercancel_event) */
545
+ onPointerCancel?: EventHandlerUnion<T, PointerEvent>;
546
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/pointerdown_event) */
547
+ onPointerDown?: EventHandlerUnion<T, PointerEvent>;
548
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/pointerenter_event) */
549
+ onPointerEnter?: EventHandlerUnion<T, PointerEvent>;
550
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/pointerleave_event) */
551
+ onPointerLeave?: EventHandlerUnion<T, PointerEvent>;
552
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/pointermove_event) */
553
+ onPointerMove?: EventHandlerUnion<T, PointerEvent>;
554
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/pointerout_event) */
555
+ onPointerOut?: EventHandlerUnion<T, PointerEvent>;
556
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/pointerover_event) */
557
+ onPointerOver?: EventHandlerUnion<T, PointerEvent>;
558
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/pointerup_event) */
559
+ onPointerUp?: EventHandlerUnion<T, PointerEvent>;
560
+ /**
561
+ * Fires when the user repositions the scroll box in the scroll bar on the object.
562
+ *
563
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/scroll_event)
564
+ */
565
+ onScroll?: EventHandlerUnion<T, Event>;
566
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/scrollend_event) */
567
+ onScrollEnd?: EventHandlerUnion<T, Event>;
568
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/securitypolicyviolation_event) */
569
+ onSecurityPolicyViolation?: EventHandlerUnion<T, SecurityPolicyViolationEvent>;
570
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Node/selectstart_event) */
571
+ onSelectStart?: EventHandlerUnion<T, Event>;
572
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/touchcancel_event) */
573
+ onTouchCancel?: EventHandlerUnion<T, TouchEvent>;
574
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/touchend_event) */
575
+ onTouchEnd?: EventHandlerUnion<T, TouchEvent>;
576
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/touchmove_event) */
577
+ onTouchMove?: EventHandlerUnion<T, TouchEvent>;
578
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/touchstart_event) */
579
+ onTouchStart?: EventHandlerUnion<T, TouchEvent>;
580
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/transitioncancel_event) */
581
+ onTransitionCancel?: EventHandlerUnion<T, TransitionEvent>;
582
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/transitionend_event) */
583
+ onTransitionEnd?: EventHandlerUnion<T, TransitionEvent>;
584
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/transitionrun_event) */
585
+ onTransitionRun?: EventHandlerUnion<T, TransitionEvent>;
586
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/transitionstart_event) */
587
+ onTransitionStart?: EventHandlerUnion<T, TransitionEvent>;
588
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/wheel_event) */
589
+ onWheel?: EventHandlerUnion<T, WheelEvent>;
590
+ }
591
+ type HTMLAutocapitalize = "off" | "none" | "on" | "sentences" | "words" | "characters";
592
+ type HTMLDir = "ltr" | "rtl" | "auto";
593
+ type HTMLFormEncType = "application/x-www-form-urlencoded" | "multipart/form-data" | "text/plain";
594
+ type HTMLFormMethod = "post" | "get" | "dialog";
595
+ type HTMLCrossOrigin = "anonymous" | "use-credentials" | "";
596
+ type HTMLReferrerPolicy = "no-referrer" | "no-referrer-when-downgrade" | "origin" | "origin-when-cross-origin" | "same-origin" | "strict-origin" | "strict-origin-when-cross-origin" | "unsafe-url";
597
+ type HTMLIframeSandbox = "allow-downloads-without-user-activation" | "allow-downloads" | "allow-forms" | "allow-modals" | "allow-orientation-lock" | "allow-pointer-lock" | "allow-popups" | "allow-popups-to-escape-sandbox" | "allow-presentation" | "allow-same-origin" | "allow-scripts" | "allow-storage-access-by-user-activation" | "allow-top-navigation" | "allow-top-navigation-by-user-activation" | "allow-top-navigation-to-custom-protocols";
598
+ type HTMLLinkAs = "audio" | "document" | "embed" | "fetch" | "font" | "image" | "object" | "script" | "style" | "track" | "video" | "worker";
599
+ /**
600
+ * All the WAI-ARIA 1.1 attributes from https://www.w3.org/TR/wai-aria-1.1/
601
+ *
602
+ * @remarks
603
+ * If attribute is settable as a property, that is preferred - such aria
604
+ * attributes are in camelCase in this interface. Some are settable as
605
+ * DOM attribute only - such names are in kebab-case.
606
+ */
607
+ interface AriaAttributes {
608
+ /**
609
+ * Identifies the currently active element when DOM focus is on a composite widget, textbox, group, or application.
610
+ *
611
+ * @remarks
612
+ * While HTML attributes on regular HTML elements are case-insensitive, when
613
+ * the same common attributes are set on a foreign HTML elements (SVG/Math),
614
+ * they are case sensitive. Thus, we can't author this as
615
+ * "aria-activeDescendant"
616
+ */
617
+ ["aria-activedescendant"]?: string;
618
+ ariaActiveDescendantElement?: HTMLElement;
619
+ /** Indicates whether assistive technologies will present all, or only parts of, the changed region based on the change notifications defined by the aria-relevant attribute. */
620
+ ariaAtomic?: boolean | "false" | "true";
621
+ /**
622
+ * Indicates whether inputting text could trigger display of one or more predictions of the user's intended value for an input and specifies how predictions would be
623
+ * presented if they are made.
624
+ */
625
+ ariaAutoComplete?: "none" | "inline" | "list" | "both";
626
+ /** Indicates an element is being modified and that assistive technologies MAY want to wait until the modifications are complete before exposing them to the user. */
627
+ ariaBusy?: boolean | "false" | "true";
628
+ /**
629
+ * Indicates the current "checked" state of checkboxes, radio buttons, and other widgets.
630
+ * @see ariaPressed
631
+ * @see ariaSelected
632
+ */
633
+ ariaChecked?: boolean | "false" | "mixed" | "true";
634
+ /**
635
+ * Defines the total number of columns in a table, grid, or treegrid.
636
+ * @see ariaColIndex
637
+ */
638
+ ariaColCount?: number | string;
639
+ /**
640
+ * Defines an element's column index or position with respect to the total number of columns within a table, grid, or treegrid.
641
+ * @see ariaColCount
642
+ * @see ariaColSpan
643
+ */
644
+ ariaColIndex?: number | string;
645
+ /**
646
+ * Defines the number of columns spanned by a cell or gridcell within a table, grid, or treegrid.
647
+ * @see ariaColIndex
648
+ * @see ariaRowSpan
649
+ */
650
+ ariaColSpan?: number | string;
651
+ /**
652
+ * Identifies the element (or elements) whose contents or presence are controlled by the current element.
653
+ * @see ariaOwns.
654
+ */
655
+ ["aria-controls"]?: string;
656
+ ariaControlsElements?: HTMLElement[];
657
+ /** Indicates the element that represents the current item within a container or set of related elements. */
658
+ ariaCurrent?: boolean | "false" | "true" | "page" | "step" | "location" | "date" | "time";
659
+ /**
660
+ * Identifies the element (or elements) that describes the object.
661
+ * @see aria-labelledby
662
+ */
663
+ ["aria-describedby"]?: string;
664
+ ariaDescribedByElements?: HTMLElement;
665
+ /**
666
+ * Identifies the element that provides a detailed, extended description for the object.
667
+ * @see aria-describedby
668
+ */
669
+ ["aria-details"]?: string;
670
+ ariaDetailsElements?: HTMLElement;
671
+ /**
672
+ * Indicates that the element is perceivable but disabled, so it is not editable or otherwise operable.
673
+ * @see ariaHidden
674
+ * @see ariaReadonly
675
+ */
676
+ ariaDisabled?: boolean | "false" | "true";
677
+ /**
678
+ * Identifies the element that provides an error message for the object.
679
+ * @see ariaInvalid
680
+ * @see aria-describedby
681
+ */
682
+ ["aria-errormessage"]?: string;
683
+ ariaErrorMessageElements?: HTMLElement;
684
+ /** Indicates whether the element, or another grouping element it controls, is currently expanded or collapsed. */
685
+ ariaExpanded?: boolean | "false" | "true";
686
+ /**
687
+ * Identifies the next element (or elements) in an alternate reading order of content which, at the user's discretion,
688
+ * allows assistive technology to override the general default of reading in document source order.
689
+ */
690
+ ["aria-flowto"]?: string;
691
+ ariaFlowToElements?: HTMLElement;
692
+ /** Indicates the availability and type of interactive popup element, such as menu or dialog, that can be triggered by an element. */
693
+ ariaHasPopup?: boolean | "false" | "true" | "menu" | "listbox" | "tree" | "grid" | "dialog";
694
+ /**
695
+ * Indicates whether the element is exposed to an accessibility API.
696
+ * @see ariaDisabled
697
+ */
698
+ ariaHidden?: boolean | "false" | "true";
699
+ /**
700
+ * Indicates the entered value does not conform to the format expected by the application.
701
+ * @see aria-errormessage
702
+ */
703
+ ariaInvalid?: boolean | "false" | "true" | "grammar" | "spelling";
704
+ /** Indicates keyboard shortcuts that an author has implemented to activate or give focus to an element. */
705
+ ariaKeyShortcuts?: string;
706
+ /**
707
+ * Defines a string value that labels the current element.
708
+ * @see aria-labelledby
709
+ */
710
+ ariaLabel?: string;
711
+ /**
712
+ * Identifies the element (or elements) that labels the current element.
713
+ * @see aria-describedby
714
+ */
715
+ ["aria-labelledby"]?: string;
716
+ ariaLabelledByElements?: HTMLElement;
717
+ /** Defines the hierarchical level of an element within a structure. */
718
+ ariaLevel?: number | string;
719
+ /** 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. */
720
+ ariaLive?: "off" | "assertive" | "polite";
721
+ /** Indicates whether an element is modal when displayed. */
722
+ ariaModal?: boolean | "false" | "true";
723
+ /** Indicates whether a text box accepts multiple lines of input or only a single line. */
724
+ ariaMultiLine?: boolean | "false" | "true";
725
+ /** Indicates that the user may select more than one item from the current selectable descendants. */
726
+ ariaMultiSelectable?: boolean | "false" | "true";
727
+ /** Indicates whether the element's orientation is horizontal, vertical, or unknown/ambiguous. */
728
+ ariaOrientation?: "horizontal" | "vertical";
729
+ /**
730
+ * Identifies an element (or elements) in order to define a visual, functional, or contextual parent/child relationship
731
+ * between DOM elements where the DOM hierarchy cannot be used to represent the relationship.
732
+ * @see aria-controls
733
+ */
734
+ ["aria-owns"]?: string;
735
+ ariaOwnsElements?: HTMLElement;
736
+ /**
737
+ * Defines a short hint (a word or short phrase) intended to aid the user with data entry when the control has no value.
738
+ * A hint could be a sample value or a brief description of the expected format.
739
+ */
740
+ ariaPlaceholder?: string;
741
+ /**
742
+ * 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.
743
+ * @see ariaSetSize.
744
+ */
745
+ ariaPosInSet?: number | string;
746
+ /**
747
+ * Indicates the current "pressed" state of toggle buttons.
748
+ * @see ariaChecked
749
+ * @see ariaSelected
750
+ */
751
+ ariaPressed?: boolean | "false" | "mixed" | "true";
752
+ /**
753
+ * Indicates that the element is not editable, but is otherwise operable.
754
+ * @see ariaDisabled
755
+ */
756
+ ariaReadOnly?: boolean | "false" | "true";
757
+ /**
758
+ * Indicates what notifications the user agent will trigger when the accessibility tree within a live region is modified.
759
+ * @see ariaAtomic
760
+ */
761
+ ariaRelevant?: "additions" | "additions removals" | "additions text" | "all" | "removals" | "removals additions" | "removals text" | "text" | "text additions" | "text removals";
762
+ /** Indicates that user input is required on the element before a form may be submitted. */
763
+ ariaRequired?: boolean | "false" | "true";
764
+ /** Defines a human-readable, author-localized description for the role of an element. */
765
+ ariaRoleDescription?: string;
766
+ /**
767
+ * Defines the total number of rows in a table, grid, or treegrid.
768
+ * @see ariaRowIndex
769
+ */
770
+ ariaRowCount?: number | string;
771
+ /**
772
+ * Defines an element's row index or position with respect to the total number of rows within a table, grid, or treegrid.
773
+ * @see ariaRowCount
774
+ * @see ariaRowSpan
775
+ */
776
+ ariaRowIndex?: number | string;
777
+ /**
778
+ * Defines the number of rows spanned by a cell or gridcell within a table, grid, or treegrid.
779
+ * @see ariaRowIndex
780
+ * @see ariaColSpan
781
+ */
782
+ ariaRowSpan?: number | string;
783
+ /**
784
+ * Indicates the current "selected" state of various widgets.
785
+ * @see ariaChecked
786
+ * @see ariaPressed
787
+ */
788
+ ariaSelected?: boolean | "false" | "true";
789
+ /**
790
+ * 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.
791
+ * @see ariaPosInSet
792
+ */
793
+ ariaSetSize?: number | string;
794
+ /** Indicates if items in a table or grid are sorted in ascending or descending order. */
795
+ ariaSort?: "none" | "ascending" | "descending" | "other";
796
+ /** Defines the maximum allowed value for a range widget. */
797
+ ariaValueMax?: number | string;
798
+ /** Defines the minimum allowed value for a range widget. */
799
+ ariaValueMin?: number | string;
800
+ /**
801
+ * Defines the current value for a range widget.
802
+ * @see ariaValueText.
803
+ */
804
+ ariaValueNow?: number | string;
805
+ /** Defines the human readable text alternative of ariaValueNow for a range widget. */
806
+ ariaValueText?: string;
807
+ role?: "alert" | "alertdialog" | "application" | "article" | "banner" | "button" | "cell" | "checkbox" | "columnheader" | "combobox" | "complementary" | "contentinfo" | "definition" | "dialog" | "directory" | "document" | "feed" | "figure" | "form" | "grid" | "gridcell" | "group" | "heading" | "img" | "link" | "list" | "listbox" | "listitem" | "log" | "main" | "marquee" | "math" | "menu" | "menubar" | "menuitem" | "menuitemcheckbox" | "menuitemradio" | "meter" | "navigation" | "none" | "note" | "option" | "presentation" | "progressbar" | "radio" | "radiogroup" | "region" | "row" | "rowgroup" | "rowheader" | "scrollbar" | "search" | "searchbox" | "separator" | "slider" | "spinbutton" | "status" | "switch" | "tab" | "table" | "tablist" | "tabpanel" | "term" | "textbox" | "timer" | "toolbar" | "tooltip" | "tree" | "treegrid" | "treeitem";
808
+ }
809
+ interface HTMLAttributes<T = HTMLElement> extends AriaAttributes, DOMAttributes<T>, RdfaAttributes {
810
+ accessKey?: string;
811
+ dir?: HTMLDir;
812
+ draggable?: boolean;
813
+ hidden?: boolean | "hidden" | "until-found";
814
+ id?: string;
815
+ inert?: boolean;
816
+ lang?: string;
817
+ spellcheck?: boolean;
818
+ style?: CssProperties | string | DirectiveResult<typeof StyleMapDirective>;
819
+ title?: string;
820
+ translate?: boolean;
821
+ popover?: boolean | "manual" | "auto";
822
+ slot?: string;
823
+ part?: string;
824
+ contentEditable?: boolean | "plaintext-only" | "inherit";
825
+ tabIndex?: number | string;
826
+ autocapitalize?: HTMLAutocapitalize;
827
+ itemProp?: string;
828
+ itemScope?: boolean;
829
+ itemType?: string;
830
+ itemId?: string;
831
+ itemRef?: string;
832
+ exportParts?: string;
833
+ inputMode?: "none" | "text" | "tel" | "url" | "email" | "numeric" | "decimal" | "search";
834
+ }
835
+ interface RdfaAttributes {
836
+ about?: string;
837
+ datatype?: string;
838
+ inList?: string;
839
+ prefix?: string;
840
+ property?: string;
841
+ rel?: string;
842
+ resource?: string;
843
+ rev?: string;
844
+ typeof?: string;
845
+ vocab?: string;
846
+ }
847
+ interface AnchorHTMLAttributes<T> extends HTMLAttributes<T> {
848
+ /**
849
+ * Provide empty string, or file name
850
+ *
851
+ * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a#download
852
+ */
853
+ download?: string;
854
+ href?: string;
855
+ hreflang?: string;
856
+ media?: string;
857
+ ping?: string;
858
+ rel?: string;
859
+ target?: string;
860
+ type?: string;
861
+ referrerPolicy?: HTMLReferrerPolicy;
862
+ }
863
+ interface AudioHTMLAttributes<T> extends MediaHTMLAttributes<T> {
864
+ }
865
+ interface AreaHTMLAttributes<T> extends HTMLAttributes<T> {
866
+ alt?: string;
867
+ coords?: string;
868
+ /**
869
+ * Provide empty string, or file name
870
+ *
871
+ * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a#download
872
+ */
873
+ download?: string;
874
+ href?: string;
875
+ hreflang?: string;
876
+ ping?: string;
877
+ rel?: string;
878
+ shape?: "rect" | "circle" | "poly" | "default";
879
+ target?: string;
880
+ referrerPolicy?: HTMLReferrerPolicy;
881
+ }
882
+ interface BaseHTMLAttributes<T> extends HTMLAttributes<T> {
883
+ href?: string;
884
+ target?: string;
885
+ }
886
+ interface BlockquoteHTMLAttributes<T> extends HTMLAttributes<T> {
887
+ cite?: string;
888
+ }
889
+ interface ButtonHTMLAttributes<T> extends HTMLAttributes<T> {
890
+ autofocus?: boolean;
891
+ disabled?: boolean;
892
+ form?: string;
893
+ name?: string;
894
+ type?: "submit" | "reset" | "button";
895
+ value?: string;
896
+ formAction?: string;
897
+ formEnctype?: HTMLFormEncType;
898
+ formMethod?: HTMLFormMethod;
899
+ formNoValidate?: boolean;
900
+ formTarget?: string;
901
+ popoverTarget?: string;
902
+ popoverTargetElement?: HTMLElement;
903
+ popoverTargetAction?: "hide" | "show" | "toggle";
904
+ }
905
+ interface CanvasHTMLAttributes<T> extends HTMLAttributes<T> {
906
+ width?: number | string;
907
+ height?: number | string;
908
+ }
909
+ interface ColHTMLAttributes<T> extends HTMLAttributes<T> {
910
+ span?: number | string;
911
+ width?: number | string;
912
+ }
913
+ interface ColgroupHTMLAttributes<T> extends HTMLAttributes<T> {
914
+ span?: number | string;
915
+ }
916
+ interface DataHTMLAttributes<T> extends HTMLAttributes<T> {
917
+ value?: string | number;
918
+ }
919
+ interface DetailsHTMLAttributes<T> extends HTMLAttributes<T> {
920
+ open?: boolean;
921
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLDetailsElement/toggle_event) */
922
+ onToggle?: EventHandlerUnion<T, Event>;
923
+ }
924
+ interface DialogHTMLAttributes<T> extends HTMLAttributes<T> {
925
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLDialogElement/open) */
926
+ open?: boolean;
927
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLDialogElement/returnValue) */
928
+ returnValue?: string;
929
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLDialogElement/cancel_event) */
930
+ onCancel?: EventHandlerUnion<T, Event>;
931
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLDialogElement/close_event) */
932
+ onClose?: EventHandlerUnion<T, Event>;
933
+ }
934
+ interface EmbedHTMLAttributes<T> extends HTMLAttributes<T> {
935
+ height?: number | string;
936
+ src?: string;
937
+ type?: string;
938
+ width?: number | string;
939
+ }
940
+ interface FieldsetHTMLAttributes<T> extends HTMLAttributes<T> {
941
+ disabled?: boolean;
942
+ form?: string;
943
+ name?: string;
944
+ }
945
+ interface FormHTMLAttributes<T> extends HTMLAttributes<T> {
946
+ acceptCharset?: string;
947
+ action?: string;
948
+ encoding?: HTMLFormEncType;
949
+ enctype?: HTMLFormEncType;
950
+ method?: HTMLFormMethod;
951
+ name?: string;
952
+ target?: string;
953
+ noValidate?: boolean;
954
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLFormElement/formdata_event) */
955
+ onFormData?: EventHandlerUnion<T, FormDataEvent>;
956
+ /**
957
+ * Fires when the user resets a form.
958
+ *
959
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLFormElement/reset_event)
960
+ */
961
+ onReset?: EventHandlerUnion<T, Event>;
962
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLFormElement/submit_event) */
963
+ onSubmit?: EventHandlerUnion<T, Event & {
964
+ submitter: HTMLElement;
965
+ }>;
966
+ }
967
+ interface IframeHTMLAttributes<T> extends HTMLAttributes<T> {
968
+ allow?: string;
969
+ allowFullscreen?: boolean;
970
+ height?: number | string;
971
+ loading?: "eager" | "lazy";
972
+ name?: string;
973
+ sandbox?: HTMLIframeSandbox | string;
974
+ src?: string;
975
+ srcdoc?: string;
976
+ width?: number | string;
977
+ referrerPolicy?: HTMLReferrerPolicy;
978
+ }
979
+ interface ImgHTMLAttributes<T> extends HTMLAttributes<T> {
980
+ alt?: string;
981
+ decoding?: "sync" | "async" | "auto";
982
+ height?: number | string;
983
+ isMap?: boolean;
984
+ loading?: "eager" | "lazy";
985
+ referrerPolicy?: HTMLReferrerPolicy;
986
+ sizes?: string;
987
+ src?: string;
988
+ srcset?: string;
989
+ useMap?: string;
990
+ width?: number | string;
991
+ crossOrigin?: HTMLCrossOrigin;
992
+ elementTiming?: string;
993
+ fetchPriority?: "high" | "low" | "auto";
994
+ }
995
+ interface InputHTMLAttributes<T> extends HTMLAttributes<T> {
996
+ accept?: string;
997
+ alt?: string;
998
+ autofocus?: boolean;
999
+ capture?: boolean | string;
1000
+ checked?: boolean;
1001
+ disabled?: boolean;
1002
+ enterKeyHint?: "enter" | "done" | "go" | "next" | "previous" | "search" | "send";
1003
+ form?: string;
1004
+ height?: number | string;
1005
+ incremental?: boolean;
1006
+ list?: string;
1007
+ max?: number | string;
1008
+ min?: number | string;
1009
+ multiple?: boolean;
1010
+ name?: string;
1011
+ pattern?: string;
1012
+ placeholder?: string;
1013
+ readOnly?: boolean;
1014
+ results?: number;
1015
+ required?: boolean;
1016
+ size?: number | string;
1017
+ src?: string;
1018
+ step?: number | string;
1019
+ type?: string;
1020
+ value?: string | number;
1021
+ defaultValue?: string | number;
1022
+ width?: number | string;
1023
+ formAction?: string;
1024
+ formEnctype?: HTMLFormEncType;
1025
+ formMethod?: HTMLFormMethod;
1026
+ formNoValidate?: boolean;
1027
+ formTarget?: string;
1028
+ maxLength?: number | string;
1029
+ minLength?: number | string;
1030
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLInputElement/invalid_event) */
1031
+ onInvalid?: EventHandlerUnion<T, Event>;
1032
+ /**
1033
+ * Fires when the current selection changes.
1034
+ *
1035
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLInputElement/select_event)
1036
+ */
1037
+ onSelect?: EventHandlerUnion<T, UIEvent>;
1038
+ }
1039
+ interface InsHTMLAttributes<T> extends HTMLAttributes<T> {
1040
+ cite?: string;
1041
+ dateTime?: string;
1042
+ }
1043
+ interface LabelHTMLAttributes<T> extends HTMLAttributes<T> {
1044
+ htmlFor?: string;
1045
+ form?: string;
1046
+ }
1047
+ interface LiHTMLAttributes<T> extends HTMLAttributes<T> {
1048
+ value?: number | string;
1049
+ }
1050
+ interface LinkHTMLAttributes<T> extends HTMLAttributes<T> {
1051
+ as?: HTMLLinkAs;
1052
+ disabled?: boolean;
1053
+ fetchPriority?: "high" | "low" | "auto";
1054
+ href?: string;
1055
+ hreflang?: string;
1056
+ imageSizes?: string;
1057
+ imageSrcset?: string;
1058
+ integrity?: string;
1059
+ media?: string;
1060
+ rel?: string;
1061
+ sizes?: string;
1062
+ type?: string;
1063
+ crossOrigin?: HTMLCrossOrigin;
1064
+ referrerPolicy?: HTMLReferrerPolicy;
1065
+ }
1066
+ interface MapHTMLAttributes<T> extends HTMLAttributes<T> {
1067
+ name?: string;
1068
+ }
1069
+ interface MathMLAttributes<T = HTMLMathElement> extends HTMLAttributes<T> {
1070
+ dir?: "ltr" | "rtl" | undefined;
1071
+ /**
1072
+ * HTML attributes in foreign elements are case-sensitive
1073
+ */
1074
+ displaystyle?: boolean | undefined;
1075
+ nonce?: string | undefined;
1076
+ /**
1077
+ * HTML attributes in foreign elements are case-sensitive
1078
+ */
1079
+ scriptlevel?: boolean | string | undefined;
1080
+ }
1081
+ interface HTMLMathElement extends MathMLElement {
1082
+ display?: "block" | "inline" | undefined;
1083
+ }
1084
+ interface MediaHTMLAttributes<T> extends HTMLAttributes<T> {
1085
+ autoplay?: boolean;
1086
+ controls?: boolean;
1087
+ loop?: boolean;
1088
+ muted?: boolean;
1089
+ preload?: "none" | "metadata" | "auto" | "";
1090
+ src?: string;
1091
+ crossOrigin?: HTMLCrossOrigin;
1092
+ /**
1093
+ * Fires when the user aborts the download.
1094
+ *
1095
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/abort_event)
1096
+ */
1097
+ onAbort?: EventHandlerUnion<T, Event>;
1098
+ /**
1099
+ * Occurs when playback is possible, but would require further buffering.
1100
+ *
1101
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/canplay_event)
1102
+ */
1103
+ onCanPlay?: EventHandlerUnion<T, Event>;
1104
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/canplaythrough_event) */
1105
+ onCanPlayThrough?: EventHandlerUnion<T, Event>;
1106
+ /**
1107
+ * Occurs when the duration attribute is updated.
1108
+ *
1109
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/durationchange_event)
1110
+ */
1111
+ onDurationChange?: EventHandlerUnion<T, Event>;
1112
+ /**
1113
+ * Occurs when the media element is reset to its initial state.
1114
+ *
1115
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/emptied_event)
1116
+ */
1117
+ onEmptied?: EventHandlerUnion<T, Event>;
1118
+ /**
1119
+ * Occurs when media data is loaded at the current playback position.
1120
+ *
1121
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/loadeddata_event)
1122
+ */
1123
+ onLoadedData?: EventHandlerUnion<T, Event>;
1124
+ /**
1125
+ * Occurs when the duration and dimensions of the media have been determined.
1126
+ *
1127
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/loadedmetadata_event)
1128
+ */
1129
+ onLoadedMetadata?: EventHandlerUnion<T, Event>;
1130
+ /**
1131
+ * Occurs when Internet Explorer begins looking for media data.
1132
+ *
1133
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/loadstart_event)
1134
+ */
1135
+ onLoadStart?: EventHandlerUnion<T, Event>;
1136
+ /**
1137
+ * Occurs when playback is paused.
1138
+ *
1139
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/pause_event)
1140
+ */
1141
+ onPause?: EventHandlerUnion<T, Event>;
1142
+ /**
1143
+ * Occurs when the play method is requested.
1144
+ *
1145
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/play_event)
1146
+ */
1147
+ onPlay?: EventHandlerUnion<T, Event>;
1148
+ /**
1149
+ * Occurs when the audio or video has started playing.
1150
+ *
1151
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/playing_event)
1152
+ */
1153
+ onPlaying?: EventHandlerUnion<T, Event>;
1154
+ /**
1155
+ * Occurs to indicate progress while downloading media data.
1156
+ *
1157
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/progress_event)
1158
+ */
1159
+ onProgress?: EventHandlerUnion<T, Event>;
1160
+ /**
1161
+ * Occurs when the playback rate is increased or decreased.
1162
+ *
1163
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/ratechange_event)
1164
+ */
1165
+ onRateChange?: EventHandlerUnion<T, Event>;
1166
+ /**
1167
+ * Occurs when the seek operation ends.
1168
+ *
1169
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/seeked_event)
1170
+ */
1171
+ onSeeked?: EventHandlerUnion<T, Event>;
1172
+ /**
1173
+ * Occurs when the current playback position is moved.
1174
+ *
1175
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/seeking_event)
1176
+ */
1177
+ onSeeking?: EventHandlerUnion<T, Event>;
1178
+ /**
1179
+ * Occurs when the download has stopped.
1180
+ *
1181
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/stalled_event)
1182
+ */
1183
+ onStalled?: EventHandlerUnion<T, Event>;
1184
+ /**
1185
+ * Occurs if the load operation has been intentionally halted.
1186
+ *
1187
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/suspend_event)
1188
+ */
1189
+ onSuspend?: EventHandlerUnion<T, Event>;
1190
+ /**
1191
+ * Occurs to indicate the current playback position.
1192
+ *
1193
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/timeupdate_event)
1194
+ */
1195
+ onTimeUpdate?: EventHandlerUnion<T, Event>;
1196
+ /**
1197
+ * Occurs when the volume is changed, or playback is muted or unmuted.
1198
+ *
1199
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/volumechange_event)
1200
+ */
1201
+ onVolumeChange?: EventHandlerUnion<T, Event>;
1202
+ /**
1203
+ * Occurs when playback stops because the next frame of a video resource is not available.
1204
+ *
1205
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/waiting_event)
1206
+ */
1207
+ onWaiting?: EventHandlerUnion<T, Event>;
1208
+ }
1209
+ interface MenuHTMLAttributes<T> extends HTMLAttributes<T> {
1210
+ label?: string;
1211
+ type?: "context" | "toolbar";
1212
+ }
1213
+ interface MetaHTMLAttributes<T> extends HTMLAttributes<T> {
1214
+ charset?: string;
1215
+ content?: string;
1216
+ httpEquiv?: string;
1217
+ name?: string;
1218
+ media?: string;
1219
+ }
1220
+ interface MeterHTMLAttributes<T> extends HTMLAttributes<T> {
1221
+ form?: string;
1222
+ high?: number | string;
1223
+ low?: number | string;
1224
+ max?: number | string;
1225
+ min?: number | string;
1226
+ optimum?: number | string;
1227
+ value?: string | number;
1228
+ }
1229
+ interface QuoteHTMLAttributes<T> extends HTMLAttributes<T> {
1230
+ cite?: string;
1231
+ }
1232
+ interface ObjectHTMLAttributes<T> extends HTMLAttributes<T> {
1233
+ data?: string;
1234
+ form?: string;
1235
+ height?: number | string;
1236
+ name?: string;
1237
+ type?: string;
1238
+ width?: number | string;
1239
+ useMap?: string;
1240
+ }
1241
+ interface OlHTMLAttributes<T> extends HTMLAttributes<T> {
1242
+ reversed?: boolean;
1243
+ start?: number | string;
1244
+ type?: "1" | "a" | "A" | "i" | "I";
1245
+ }
1246
+ interface OptgroupHTMLAttributes<T> extends HTMLAttributes<T> {
1247
+ disabled?: boolean;
1248
+ label?: string;
1249
+ }
1250
+ interface OptionHTMLAttributes<T> extends HTMLAttributes<T> {
1251
+ disabled?: boolean;
1252
+ label?: string;
1253
+ selected?: boolean;
1254
+ value?: string | number;
1255
+ }
1256
+ interface OutputHTMLAttributes<T> extends HTMLAttributes<T> {
1257
+ form?: string;
1258
+ for?: string;
1259
+ name?: string;
1260
+ }
1261
+ interface ProgressHTMLAttributes<T> extends HTMLAttributes<T> {
1262
+ max?: number | string;
1263
+ value?: string | number;
1264
+ }
1265
+ interface ScriptHTMLAttributes<T> extends HTMLAttributes<T> {
1266
+ async?: boolean;
1267
+ charset?: string;
1268
+ defer?: boolean;
1269
+ integrity?: string;
1270
+ nonce?: string;
1271
+ src?: string;
1272
+ type?: string;
1273
+ crossOrigin?: HTMLCrossOrigin;
1274
+ noModule?: boolean;
1275
+ referrerPolicy?: HTMLReferrerPolicy;
1276
+ }
1277
+ interface SelectHTMLAttributes<T> extends HTMLAttributes<T> {
1278
+ autofocus?: boolean;
1279
+ disabled?: boolean;
1280
+ form?: string;
1281
+ multiple?: boolean;
1282
+ name?: string;
1283
+ required?: boolean;
1284
+ size?: number | string;
1285
+ value?: string | number;
1286
+ }
1287
+ interface SlotHTMLAttributes<T = HTMLSlotElement> extends HTMLAttributes<T> {
1288
+ name?: string;
1289
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLSlotElement/slotchange_event) */
1290
+ onSlotChange?: EventHandlerUnion<T, Event>;
1291
+ }
1292
+ interface SourceHTMLAttributes<T> extends HTMLAttributes<T> {
1293
+ media?: string;
1294
+ sizes?: string;
1295
+ src?: string;
1296
+ srcset?: string;
1297
+ type?: string;
1298
+ }
1299
+ interface StyleHTMLAttributes<T> extends HTMLAttributes<T> {
1300
+ media?: string;
1301
+ nonce?: string;
1302
+ scoped?: boolean;
1303
+ type?: string;
1304
+ }
1305
+ interface TdHTMLAttributes<T> extends HTMLAttributes<T> {
1306
+ headers?: string;
1307
+ colSpan?: number | string;
1308
+ rowSpan?: number | string;
1309
+ }
1310
+ interface TemplateHTMLAttributes<T extends HTMLTemplateElement> extends HTMLAttributes<T> {
1311
+ content?: DocumentFragment;
1312
+ }
1313
+ interface TextareaHTMLAttributes<T> extends HTMLAttributes<T> {
1314
+ children?: "Error: Use value property instead. See https://lit.dev/docs/templates/expressions/#invalid-locations";
1315
+ autofocus?: boolean;
1316
+ cols?: number | string;
1317
+ dirname?: string;
1318
+ disabled?: boolean;
1319
+ enterKeyHint?: "enter" | "done" | "go" | "next" | "previous" | "search" | "send";
1320
+ form?: string;
1321
+ name?: string;
1322
+ placeholder?: string;
1323
+ readOnly?: boolean;
1324
+ required?: boolean;
1325
+ rows?: number | string;
1326
+ value?: string | number;
1327
+ wrap?: "hard" | "soft" | "off";
1328
+ maxLength?: number | string;
1329
+ minLength?: number | string;
1330
+ }
1331
+ interface ThHTMLAttributes<T> extends HTMLAttributes<T> {
1332
+ headers?: string;
1333
+ colSpan?: number | string;
1334
+ rowSpan?: number | string;
1335
+ scope?: "col" | "row" | "rowgroup" | "colgroup";
1336
+ }
1337
+ interface TimeHTMLAttributes<T> extends HTMLAttributes<T> {
1338
+ dateTime?: string;
1339
+ }
1340
+ interface TrackHTMLAttributes<T> extends HTMLAttributes<T> {
1341
+ default?: boolean;
1342
+ kind?: "subtitles" | "captions" | "descriptions" | "chapters" | "metadata";
1343
+ label?: string;
1344
+ src?: string;
1345
+ srclang?: string;
1346
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTrackElement/cuechange_event) */
1347
+ onCueChange?: EventHandlerUnion<T, Event>;
1348
+ }
1349
+ interface VideoHTMLAttributes<T> extends MediaHTMLAttributes<T> {
1350
+ height?: number | string;
1351
+ playsInline?: boolean;
1352
+ poster?: string;
1353
+ width?: number | string;
1354
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLVideoElement/resize_event) */
1355
+ onResize?: EventHandlerUnion<T, UIEvent>;
1356
+ }
1357
+ type SVGPreserveAspectRatio = "none" | "xMinYMin" | "xMidYMin" | "xMaxYMin" | "xMinYMid" | "xMidYMid" | "xMaxYMid" | "xMinYMax" | "xMidYMax" | "xMaxYMax" | "xMinYMin meet" | "xMidYMin meet" | "xMaxYMin meet" | "xMinYMid meet" | "xMidYMid meet" | "xMaxYMid meet" | "xMinYMax meet" | "xMidYMax meet" | "xMaxYMax meet" | "xMinYMin slice" | "xMidYMin slice" | "xMaxYMin slice" | "xMinYMid slice" | "xMidYMid slice" | "xMaxYMid slice" | "xMinYMax slice" | "xMidYMax slice" | "xMaxYMax slice";
1358
+ type ImagePreserveAspectRatio = SVGPreserveAspectRatio | "defer none" | "defer xMinYMin" | "defer xMidYMin" | "defer xMaxYMin" | "defer xMinYMid" | "defer xMidYMid" | "defer xMaxYMid" | "defer xMinYMax" | "defer xMidYMax" | "defer xMaxYMax" | "defer xMinYMin meet" | "defer xMidYMin meet" | "defer xMaxYMin meet" | "defer xMinYMid meet" | "defer xMidYMid meet" | "defer xMaxYMid meet" | "defer xMinYMax meet" | "defer xMidYMax meet" | "defer xMaxYMax meet" | "defer xMinYMin slice" | "defer xMidYMin slice" | "defer xMaxYMin slice" | "defer xMinYMid slice" | "defer xMidYMid slice" | "defer xMaxYMid slice" | "defer xMinYMax slice" | "defer xMidYMax slice" | "defer xMaxYMax slice";
1359
+ type SVGUnits = "userSpaceOnUse" | "objectBoundingBox";
1360
+ interface CoreSVGAttributes<T> extends AriaAttributes, DOMAttributes<T> {
1361
+ id?: string;
1362
+ lang?: string;
1363
+ tabIndex?: number | string;
1364
+ }
1365
+ interface StylableSVGAttributes {
1366
+ class?: string | ClassInfo | DirectiveResult<typeof ClassMapDirective>;
1367
+ style?: CssProperties | string | DirectiveResult<typeof StyleMapDirective>;
1368
+ }
1369
+ interface TransformableSVGAttributes {
1370
+ transform?: string | undefined;
1371
+ }
1372
+ interface ConditionalProcessingSVGAttributes {
1373
+ requiredExtensions?: string;
1374
+ requiredFeatures?: string;
1375
+ systemLanguage?: string;
1376
+ }
1377
+ interface ExternalResourceSVGAttributes {
1378
+ externalResourcesRequired?: boolean | "true" | "false";
1379
+ }
1380
+ interface AnimationTimingSVGAttributes {
1381
+ begin?: string | undefined;
1382
+ dur?: string | undefined;
1383
+ end?: string | undefined;
1384
+ min?: string | undefined;
1385
+ max?: string | undefined;
1386
+ restart?: "always" | "whenNotActive" | "never" | undefined;
1387
+ repeatCount?: number | "indefinite" | undefined;
1388
+ repeatDur?: string | undefined;
1389
+ fill?: "freeze" | "remove" | undefined;
1390
+ }
1391
+ interface AnimationValueSVGAttributes {
1392
+ calcMode?: "discrete" | "linear" | "paced" | "spline" | undefined;
1393
+ values?: string | undefined;
1394
+ keyTimes?: string | undefined;
1395
+ keySplines?: string | undefined;
1396
+ from?: number | string | undefined;
1397
+ to?: number | string | undefined;
1398
+ by?: number | string | undefined;
1399
+ }
1400
+ interface AnimationAdditionSVGAttributes {
1401
+ attributeName?: string | undefined;
1402
+ additive?: "replace" | "sum" | undefined;
1403
+ accumulate?: "none" | "sum" | undefined;
1404
+ }
1405
+ interface AnimationAttributeTargetSVGAttributes {
1406
+ attributeName?: string | undefined;
1407
+ attributeType?: "CSS" | "XML" | "auto" | undefined;
1408
+ }
1409
+ interface PresentationSVGAttributes {
1410
+ "alignment-baseline"?: "auto" | "baseline" | "before-edge" | "text-before-edge" | "middle" | "central" | "after-edge" | "text-after-edge" | "ideographic" | "alphabetic" | "hanging" | "mathematical" | "inherit";
1411
+ "baseline-shift"?: number | string;
1412
+ "clip"?: string;
1413
+ "clip-path"?: string;
1414
+ "clip-rule"?: "nonzero" | "evenodd" | "inherit";
1415
+ "color"?: string;
1416
+ "color-interpolation"?: "auto" | "sRGB" | "linearRGB" | "inherit";
1417
+ "color-interpolation-filters"?: "auto" | "sRGB" | "linearRGB" | "inherit";
1418
+ "color-profile"?: string;
1419
+ "color-rendering"?: "auto" | "optimizeSpeed" | "optimizeQuality" | "inherit";
1420
+ "cursor"?: string;
1421
+ "direction"?: "ltr" | "rtl" | "inherit";
1422
+ "display"?: string;
1423
+ "dominant-baseline"?: "auto" | "text-bottom" | "alphabetic" | "ideographic" | "middle" | "central" | "mathematical" | "hanging" | "text-top" | "inherit";
1424
+ "enable-background"?: string;
1425
+ "fill"?: string;
1426
+ "fill-opacity"?: number | string | "inherit";
1427
+ "fill-rule"?: "nonzero" | "evenodd" | "inherit";
1428
+ "filter"?: string;
1429
+ "flood-color"?: string;
1430
+ "flood-opacity"?: number | string | "inherit";
1431
+ "font-family"?: string;
1432
+ "font-size"?: string;
1433
+ "font-size-adjust"?: number | string;
1434
+ "font-stretch"?: string;
1435
+ "font-style"?: "normal" | "italic" | "oblique" | "inherit";
1436
+ "font-variant"?: string;
1437
+ "font-weight"?: number | string;
1438
+ "glyph-orientation-horizontal"?: string;
1439
+ "glyph-orientation-vertical"?: string;
1440
+ "image-rendering"?: "auto" | "optimizeQuality" | "optimizeSpeed" | "inherit";
1441
+ "kerning"?: string;
1442
+ "letter-spacing"?: number | string;
1443
+ "lighting-color"?: string;
1444
+ "marker-end"?: string;
1445
+ "marker-mid"?: string;
1446
+ "marker-start"?: string;
1447
+ "mask"?: string;
1448
+ "opacity"?: number | string | "inherit";
1449
+ "overflow"?: "visible" | "hidden" | "scroll" | "auto" | "inherit";
1450
+ "pathLength"?: string | number;
1451
+ "pointer-events"?: "bounding-box" | "visiblePainted" | "visibleFill" | "visibleStroke" | "visible" | "painted" | "color" | "fill" | "stroke" | "all" | "none" | "inherit";
1452
+ "shape-rendering"?: "auto" | "optimizeSpeed" | "crispEdges" | "geometricPrecision" | "inherit";
1453
+ "stop-color"?: string;
1454
+ "stop-opacity"?: number | string | "inherit";
1455
+ "stroke"?: string;
1456
+ "stroke-dasharray"?: string;
1457
+ "stroke-dashoffset"?: number | string;
1458
+ "stroke-linecap"?: "butt" | "round" | "square" | "inherit";
1459
+ "stroke-linejoin"?: "arcs" | "bevel" | "miter" | "miter-clip" | "round" | "inherit";
1460
+ "stroke-miterlimit"?: number | string | "inherit";
1461
+ "stroke-opacity"?: number | string | "inherit";
1462
+ "stroke-width"?: number | string;
1463
+ "text-anchor"?: "start" | "middle" | "end" | "inherit";
1464
+ "text-decoration"?: "none" | "underline" | "overline" | "line-through" | "blink" | "inherit";
1465
+ "text-rendering"?: "auto" | "optimizeSpeed" | "optimizeLegibility" | "geometricPrecision" | "inherit";
1466
+ "unicode-bidi"?: string;
1467
+ "visibility"?: "visible" | "hidden" | "collapse" | "inherit";
1468
+ "word-spacing"?: number | string;
1469
+ "writing-mode"?: "lr-tb" | "rl-tb" | "tb-rl" | "lr" | "rl" | "tb" | "inherit";
1470
+ }
1471
+ interface AnimationElementSVGAttributes<T> extends CoreSVGAttributes<T>, ExternalResourceSVGAttributes, ConditionalProcessingSVGAttributes {
1472
+ }
1473
+ interface ContainerElementSVGAttributes<T> extends CoreSVGAttributes<T>, ShapeElementSVGAttributes<T>, Pick<PresentationSVGAttributes, "clip-path" | "mask" | "cursor" | "opacity" | "filter" | "enable-background" | "color-interpolation" | "color-rendering"> {
1474
+ }
1475
+ interface FilterPrimitiveElementSVGAttributes<T> extends CoreSVGAttributes<T>, Pick<PresentationSVGAttributes, "color-interpolation-filters"> {
1476
+ x?: number | string | undefined;
1477
+ y?: number | string | undefined;
1478
+ width?: number | string | undefined;
1479
+ height?: number | string | undefined;
1480
+ result?: string | undefined;
1481
+ }
1482
+ interface SingleInputFilterSVGAttributes {
1483
+ in?: string | undefined;
1484
+ }
1485
+ interface DoubleInputFilterSVGAttributes {
1486
+ in?: string | undefined;
1487
+ in2?: string | undefined;
1488
+ }
1489
+ interface FitToViewBoxSVGAttributes {
1490
+ viewBox?: string;
1491
+ preserveAspectRatio?: SVGPreserveAspectRatio;
1492
+ }
1493
+ interface GradientElementSVGAttributes<T> extends CoreSVGAttributes<T>, ExternalResourceSVGAttributes, StylableSVGAttributes {
1494
+ gradientUnits?: SVGUnits | undefined;
1495
+ gradientTransform?: string | undefined;
1496
+ spreadMethod?: "pad" | "reflect" | "repeat" | undefined;
1497
+ href?: string | undefined;
1498
+ }
1499
+ interface GraphicsElementSVGAttributes<T> extends CoreSVGAttributes<T>, Pick<PresentationSVGAttributes, "clip-rule" | "mask" | "pointer-events" | "cursor" | "opacity" | "filter" | "display" | "visibility" | "color-interpolation" | "color-rendering"> {
1500
+ }
1501
+ interface LightSourceElementSVGAttributes<T> extends CoreSVGAttributes<T> {
1502
+ }
1503
+ interface NewViewportSVGAttributes<T> extends CoreSVGAttributes<T>, Pick<PresentationSVGAttributes, "overflow" | "clip"> {
1504
+ viewBox?: string;
1505
+ }
1506
+ interface ShapeElementSVGAttributes<T> extends CoreSVGAttributes<T>, Pick<PresentationSVGAttributes, "color" | "fill" | "fill-rule" | "fill-opacity" | "stroke" | "stroke-width" | "stroke-linecap" | "stroke-linejoin" | "stroke-miterlimit" | "stroke-dasharray" | "stroke-dashoffset" | "stroke-opacity" | "shape-rendering" | "pathLength"> {
1507
+ }
1508
+ interface TextContentElementSVGAttributes<T> extends CoreSVGAttributes<T>, Pick<PresentationSVGAttributes, "font-family" | "font-style" | "font-variant" | "font-weight" | "font-stretch" | "font-size" | "font-size-adjust" | "kerning" | "letter-spacing" | "word-spacing" | "text-decoration" | "glyph-orientation-horizontal" | "glyph-orientation-vertical" | "direction" | "unicode-bidi" | "text-anchor" | "dominant-baseline" | "color" | "fill" | "fill-rule" | "fill-opacity" | "stroke" | "stroke-width" | "stroke-linecap" | "stroke-linejoin" | "stroke-miterlimit" | "stroke-dasharray" | "stroke-dashoffset" | "stroke-opacity"> {
1509
+ }
1510
+ interface ZoomAndPanSVGAttributes {
1511
+ zoomAndPan?: "disable" | "magnify";
1512
+ }
1513
+ interface AnimateSVGAttributes<T> extends AnimationElementSVGAttributes<T>, AnimationAttributeTargetSVGAttributes, AnimationTimingSVGAttributes, AnimationValueSVGAttributes, AnimationAdditionSVGAttributes, Pick<PresentationSVGAttributes, "color-interpolation" | "color-rendering"> {
1514
+ }
1515
+ interface AnimateMotionSVGAttributes<T> extends AnimationElementSVGAttributes<T>, AnimationTimingSVGAttributes, AnimationValueSVGAttributes, AnimationAdditionSVGAttributes {
1516
+ path?: string | undefined;
1517
+ keyPoints?: string | undefined;
1518
+ rotate?: number | string | "auto" | "auto-reverse" | undefined;
1519
+ origin?: "default" | undefined;
1520
+ }
1521
+ interface AnimateTransformSVGAttributes<T> extends AnimationElementSVGAttributes<T>, AnimationAttributeTargetSVGAttributes, AnimationTimingSVGAttributes, AnimationValueSVGAttributes, AnimationAdditionSVGAttributes {
1522
+ type?: "translate" | "scale" | "rotate" | "skewX" | "skewY" | undefined;
1523
+ }
1524
+ interface CircleSVGAttributes<T> extends GraphicsElementSVGAttributes<T>, ShapeElementSVGAttributes<T>, ConditionalProcessingSVGAttributes, StylableSVGAttributes, TransformableSVGAttributes {
1525
+ cx?: number | string | undefined;
1526
+ cy?: number | string | undefined;
1527
+ r?: number | string | undefined;
1528
+ }
1529
+ interface ClipPathSVGAttributes<T> extends CoreSVGAttributes<T>, ConditionalProcessingSVGAttributes, ExternalResourceSVGAttributes, StylableSVGAttributes, TransformableSVGAttributes, Pick<PresentationSVGAttributes, "clip-path"> {
1530
+ clipPathUnits?: SVGUnits | undefined;
1531
+ }
1532
+ interface DefsSVGAttributes<T> extends ContainerElementSVGAttributes<T>, ConditionalProcessingSVGAttributes, ExternalResourceSVGAttributes, StylableSVGAttributes, TransformableSVGAttributes {
1533
+ }
1534
+ interface DescSVGAttributes<T> extends CoreSVGAttributes<T>, StylableSVGAttributes {
1535
+ }
1536
+ interface EllipseSVGAttributes<T> extends GraphicsElementSVGAttributes<T>, ShapeElementSVGAttributes<T>, ConditionalProcessingSVGAttributes, ExternalResourceSVGAttributes, StylableSVGAttributes, TransformableSVGAttributes {
1537
+ cx?: number | string | undefined;
1538
+ cy?: number | string | undefined;
1539
+ rx?: number | string | undefined;
1540
+ ry?: number | string | undefined;
1541
+ }
1542
+ interface FeBlendSVGAttributes<T> extends FilterPrimitiveElementSVGAttributes<T>, DoubleInputFilterSVGAttributes, StylableSVGAttributes {
1543
+ mode?: "normal" | "multiply" | "screen" | "darken" | "lighten" | undefined;
1544
+ }
1545
+ interface FeColorMatrixSVGAttributes<T> extends FilterPrimitiveElementSVGAttributes<T>, SingleInputFilterSVGAttributes, StylableSVGAttributes {
1546
+ type?: "matrix" | "saturate" | "hueRotate" | "luminanceToAlpha" | undefined;
1547
+ values?: string | undefined;
1548
+ }
1549
+ interface FeComponentTransferSVGAttributes<T> extends FilterPrimitiveElementSVGAttributes<T>, SingleInputFilterSVGAttributes, StylableSVGAttributes {
1550
+ }
1551
+ interface FeCompositeSVGAttributes<T> extends FilterPrimitiveElementSVGAttributes<T>, DoubleInputFilterSVGAttributes, StylableSVGAttributes {
1552
+ operator?: "over" | "in" | "out" | "atop" | "xor" | "arithmetic" | undefined;
1553
+ k1?: number | string | undefined;
1554
+ k2?: number | string | undefined;
1555
+ k3?: number | string | undefined;
1556
+ k4?: number | string | undefined;
1557
+ }
1558
+ interface FeConvolveMatrixSVGAttributes<T> extends FilterPrimitiveElementSVGAttributes<T>, SingleInputFilterSVGAttributes, StylableSVGAttributes {
1559
+ order?: number | string | undefined;
1560
+ kernelMatrix?: string | undefined;
1561
+ divisor?: number | string | undefined;
1562
+ bias?: number | string | undefined;
1563
+ targetX?: number | string | undefined;
1564
+ targetY?: number | string | undefined;
1565
+ edgeMode?: "duplicate" | "wrap" | "none" | undefined;
1566
+ kernelUnitLength?: number | string | undefined;
1567
+ preserveAlpha?: boolean | "true" | "false" | undefined;
1568
+ }
1569
+ interface FeDiffuseLightingSVGAttributes<T> extends FilterPrimitiveElementSVGAttributes<T>, SingleInputFilterSVGAttributes, StylableSVGAttributes, Pick<PresentationSVGAttributes, "color" | "lighting-color"> {
1570
+ surfaceScale?: number | string | undefined;
1571
+ diffuseConstant?: number | string | undefined;
1572
+ kernelUnitLength?: number | string | undefined;
1573
+ }
1574
+ interface FeDisplacementMapSVGAttributes<T> extends FilterPrimitiveElementSVGAttributes<T>, DoubleInputFilterSVGAttributes, StylableSVGAttributes {
1575
+ scale?: number | string | undefined;
1576
+ xChannelSelector?: "R" | "G" | "B" | "A" | undefined;
1577
+ yChannelSelector?: "R" | "G" | "B" | "A" | undefined;
1578
+ }
1579
+ interface FeDistantLightSVGAttributes<T> extends LightSourceElementSVGAttributes<T> {
1580
+ azimuth?: number | string | undefined;
1581
+ elevation?: number | string | undefined;
1582
+ }
1583
+ interface FeDropShadowSVGAttributes<T> extends CoreSVGAttributes<T>, FilterPrimitiveElementSVGAttributes<T>, StylableSVGAttributes, Pick<PresentationSVGAttributes, "color" | "flood-color" | "flood-opacity"> {
1584
+ dx?: number | string | undefined;
1585
+ dy?: number | string | undefined;
1586
+ stdDeviation?: number | string | undefined;
1587
+ }
1588
+ interface FeFloodSVGAttributes<T> extends FilterPrimitiveElementSVGAttributes<T>, StylableSVGAttributes, Pick<PresentationSVGAttributes, "color" | "flood-color" | "flood-opacity"> {
1589
+ }
1590
+ interface FeFuncSVGAttributes<T> extends CoreSVGAttributes<T> {
1591
+ type?: "identity" | "table" | "discrete" | "linear" | "gamma" | undefined;
1592
+ tableValues?: string | undefined;
1593
+ slope?: number | string | undefined;
1594
+ intercept?: number | string | undefined;
1595
+ amplitude?: number | string | undefined;
1596
+ exponent?: number | string | undefined;
1597
+ offset?: number | string | undefined;
1598
+ }
1599
+ interface FeGaussianBlurSVGAttributes<T> extends FilterPrimitiveElementSVGAttributes<T>, SingleInputFilterSVGAttributes, StylableSVGAttributes {
1600
+ stdDeviation?: number | string | undefined;
1601
+ }
1602
+ interface FeImageSVGAttributes<T> extends FilterPrimitiveElementSVGAttributes<T>, ExternalResourceSVGAttributes, StylableSVGAttributes {
1603
+ preserveAspectRatio?: SVGPreserveAspectRatio | undefined;
1604
+ href?: string | undefined;
1605
+ }
1606
+ interface FeMergeSVGAttributes<T> extends FilterPrimitiveElementSVGAttributes<T>, StylableSVGAttributes {
1607
+ }
1608
+ interface FeMergeNodeSVGAttributes<T> extends CoreSVGAttributes<T>, SingleInputFilterSVGAttributes {
1609
+ }
1610
+ interface FeMorphologySVGAttributes<T> extends FilterPrimitiveElementSVGAttributes<T>, SingleInputFilterSVGAttributes, StylableSVGAttributes {
1611
+ operator?: "erode" | "dilate" | undefined;
1612
+ radius?: number | string | undefined;
1613
+ }
1614
+ interface FeOffsetSVGAttributes<T> extends FilterPrimitiveElementSVGAttributes<T>, SingleInputFilterSVGAttributes, StylableSVGAttributes {
1615
+ dx?: number | string | undefined;
1616
+ dy?: number | string | undefined;
1617
+ }
1618
+ interface FePointLightSVGAttributes<T> extends LightSourceElementSVGAttributes<T> {
1619
+ x?: number | string | undefined;
1620
+ y?: number | string | undefined;
1621
+ z?: number | string | undefined;
1622
+ }
1623
+ interface FeSpecularLightingSVGAttributes<T> extends FilterPrimitiveElementSVGAttributes<T>, SingleInputFilterSVGAttributes, StylableSVGAttributes, Pick<PresentationSVGAttributes, "color" | "lighting-color"> {
1624
+ surfaceScale?: string | undefined;
1625
+ specularConstant?: string | undefined;
1626
+ specularExponent?: string | undefined;
1627
+ kernelUnitLength?: number | string | undefined;
1628
+ }
1629
+ interface FeSpotLightSVGAttributes<T> extends LightSourceElementSVGAttributes<T> {
1630
+ x?: number | string | undefined;
1631
+ y?: number | string | undefined;
1632
+ z?: number | string | undefined;
1633
+ pointsAtX?: number | string | undefined;
1634
+ pointsAtY?: number | string | undefined;
1635
+ pointsAtZ?: number | string | undefined;
1636
+ specularExponent?: number | string | undefined;
1637
+ limitingConeAngle?: number | string | undefined;
1638
+ }
1639
+ interface FeTileSVGAttributes<T> extends FilterPrimitiveElementSVGAttributes<T>, SingleInputFilterSVGAttributes, StylableSVGAttributes {
1640
+ }
1641
+ interface FeTurbulanceSVGAttributes<T> extends FilterPrimitiveElementSVGAttributes<T>, StylableSVGAttributes {
1642
+ baseFrequency?: number | string | undefined;
1643
+ numOctaves?: number | string | undefined;
1644
+ seed?: number | string | undefined;
1645
+ stitchTiles?: "stitch" | "noStitch" | undefined;
1646
+ type?: "fractalNoise" | "turbulence" | undefined;
1647
+ }
1648
+ interface FilterSVGAttributes<T> extends CoreSVGAttributes<T>, ExternalResourceSVGAttributes, StylableSVGAttributes {
1649
+ filterUnits?: SVGUnits | undefined;
1650
+ primitiveUnits?: SVGUnits | undefined;
1651
+ x?: number | string | undefined;
1652
+ y?: number | string | undefined;
1653
+ width?: number | string | undefined;
1654
+ height?: number | string | undefined;
1655
+ filterRes?: number | string | undefined;
1656
+ }
1657
+ interface ForeignObjectSVGAttributes<T> extends NewViewportSVGAttributes<T>, ConditionalProcessingSVGAttributes, ExternalResourceSVGAttributes, StylableSVGAttributes, TransformableSVGAttributes, Pick<PresentationSVGAttributes, "display" | "visibility"> {
1658
+ x?: number | string | undefined;
1659
+ y?: number | string | undefined;
1660
+ width?: number | string | undefined;
1661
+ height?: number | string | undefined;
1662
+ }
1663
+ interface GSVGAttributes<T> extends ContainerElementSVGAttributes<T>, ConditionalProcessingSVGAttributes, ExternalResourceSVGAttributes, StylableSVGAttributes, TransformableSVGAttributes, Pick<PresentationSVGAttributes, "display" | "visibility"> {
1664
+ }
1665
+ interface ImageSVGAttributes<T> extends NewViewportSVGAttributes<T>, GraphicsElementSVGAttributes<T>, ConditionalProcessingSVGAttributes, StylableSVGAttributes, TransformableSVGAttributes, Pick<PresentationSVGAttributes, "color-profile" | "image-rendering"> {
1666
+ x?: number | string | undefined;
1667
+ y?: number | string | undefined;
1668
+ width?: number | string | undefined;
1669
+ height?: number | string | undefined;
1670
+ preserveAspectRatio?: ImagePreserveAspectRatio | undefined;
1671
+ href?: string | undefined;
1672
+ }
1673
+ interface LineSVGAttributes<T> extends GraphicsElementSVGAttributes<T>, ShapeElementSVGAttributes<T>, ConditionalProcessingSVGAttributes, ExternalResourceSVGAttributes, StylableSVGAttributes, TransformableSVGAttributes, Pick<PresentationSVGAttributes, "marker-start" | "marker-mid" | "marker-end"> {
1674
+ x1?: number | string | undefined;
1675
+ y1?: number | string | undefined;
1676
+ x2?: number | string | undefined;
1677
+ y2?: number | string | undefined;
1678
+ }
1679
+ interface LinearGradientSVGAttributes<T> extends GradientElementSVGAttributes<T> {
1680
+ x1?: number | string | undefined;
1681
+ x2?: number | string | undefined;
1682
+ y1?: number | string | undefined;
1683
+ y2?: number | string | undefined;
1684
+ }
1685
+ interface MarkerSVGAttributes<T> extends ContainerElementSVGAttributes<T>, ExternalResourceSVGAttributes, StylableSVGAttributes, FitToViewBoxSVGAttributes, Pick<PresentationSVGAttributes, "overflow" | "clip"> {
1686
+ markerUnits?: "strokeWidth" | "userSpaceOnUse" | undefined;
1687
+ refX?: number | string | undefined;
1688
+ refY?: number | string | undefined;
1689
+ markerWidth?: number | string | undefined;
1690
+ markerHeight?: number | string | undefined;
1691
+ orient?: string | undefined;
1692
+ }
1693
+ interface MaskSVGAttributes<T> extends Omit<ContainerElementSVGAttributes<T>, "opacity" | "filter">, ConditionalProcessingSVGAttributes, ExternalResourceSVGAttributes, StylableSVGAttributes {
1694
+ maskUnits?: SVGUnits | undefined;
1695
+ maskContentUnits?: SVGUnits | undefined;
1696
+ x?: number | string | undefined;
1697
+ y?: number | string | undefined;
1698
+ width?: number | string | undefined;
1699
+ height?: number | string | undefined;
1700
+ }
1701
+ interface MetadataSVGAttributes<T> extends CoreSVGAttributes<T> {
1702
+ }
1703
+ interface MPathSVGAttributes<T> extends CoreSVGAttributes<T> {
1704
+ }
1705
+ interface PathSVGAttributes<T> extends GraphicsElementSVGAttributes<T>, ShapeElementSVGAttributes<T>, ConditionalProcessingSVGAttributes, ExternalResourceSVGAttributes, StylableSVGAttributes, TransformableSVGAttributes, Pick<PresentationSVGAttributes, "marker-start" | "marker-mid" | "marker-end"> {
1706
+ d?: string | undefined;
1707
+ pathLength?: number | string | undefined;
1708
+ }
1709
+ interface PatternSVGAttributes<T> extends ContainerElementSVGAttributes<T>, ConditionalProcessingSVGAttributes, ExternalResourceSVGAttributes, StylableSVGAttributes, FitToViewBoxSVGAttributes, Pick<PresentationSVGAttributes, "overflow" | "clip"> {
1710
+ x?: number | string | undefined;
1711
+ y?: number | string | undefined;
1712
+ width?: number | string | undefined;
1713
+ height?: number | string | undefined;
1714
+ patternUnits?: SVGUnits | undefined;
1715
+ patternContentUnits?: SVGUnits | undefined;
1716
+ patternTransform?: string | undefined;
1717
+ href?: string | undefined;
1718
+ }
1719
+ interface PolygonSVGAttributes<T> extends GraphicsElementSVGAttributes<T>, ShapeElementSVGAttributes<T>, ConditionalProcessingSVGAttributes, ExternalResourceSVGAttributes, StylableSVGAttributes, TransformableSVGAttributes, Pick<PresentationSVGAttributes, "marker-start" | "marker-mid" | "marker-end"> {
1720
+ points?: string | undefined;
1721
+ }
1722
+ interface PolylineSVGAttributes<T> extends GraphicsElementSVGAttributes<T>, ShapeElementSVGAttributes<T>, ConditionalProcessingSVGAttributes, ExternalResourceSVGAttributes, StylableSVGAttributes, TransformableSVGAttributes, Pick<PresentationSVGAttributes, "marker-start" | "marker-mid" | "marker-end"> {
1723
+ points?: string | undefined;
1724
+ }
1725
+ interface RadialGradientSVGAttributes<T> extends GradientElementSVGAttributes<T> {
1726
+ cx?: number | string | undefined;
1727
+ cy?: number | string | undefined;
1728
+ r?: number | string | undefined;
1729
+ fx?: number | string | undefined;
1730
+ fy?: number | string | undefined;
1731
+ }
1732
+ interface RectSVGAttributes<T> extends GraphicsElementSVGAttributes<T>, ShapeElementSVGAttributes<T>, ConditionalProcessingSVGAttributes, ExternalResourceSVGAttributes, StylableSVGAttributes, TransformableSVGAttributes {
1733
+ x?: number | string | undefined;
1734
+ y?: number | string | undefined;
1735
+ width?: number | string | undefined;
1736
+ height?: number | string | undefined;
1737
+ rx?: number | string | undefined;
1738
+ ry?: number | string | undefined;
1739
+ }
1740
+ interface SetSVGAttributes<T> extends CoreSVGAttributes<T>, StylableSVGAttributes, AnimationTimingSVGAttributes {
1741
+ }
1742
+ interface StopSVGAttributes<T> extends CoreSVGAttributes<T>, StylableSVGAttributes, Pick<PresentationSVGAttributes, "color" | "stop-color" | "stop-opacity"> {
1743
+ offset?: number | string | undefined;
1744
+ }
1745
+ interface SvgSVGAttributes<T> extends ContainerElementSVGAttributes<T>, NewViewportSVGAttributes<T>, ConditionalProcessingSVGAttributes, ExternalResourceSVGAttributes, StylableSVGAttributes, FitToViewBoxSVGAttributes, ZoomAndPanSVGAttributes, PresentationSVGAttributes {
1746
+ version?: string;
1747
+ baseProfile?: string;
1748
+ x?: number | string;
1749
+ y?: number | string;
1750
+ width?: number | string;
1751
+ height?: number | string;
1752
+ contentScriptType?: string;
1753
+ contentStyleType?: string;
1754
+ xmlns?: string;
1755
+ /**
1756
+ * Fires immediately after the browser loads the object.
1757
+ *
1758
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGElement/load_event)
1759
+ */
1760
+ onLoad?: EventHandlerUnion<T, Event>;
1761
+ }
1762
+ interface SwitchSVGAttributes<T> extends ContainerElementSVGAttributes<T>, ConditionalProcessingSVGAttributes, ExternalResourceSVGAttributes, StylableSVGAttributes, TransformableSVGAttributes, Pick<PresentationSVGAttributes, "display" | "visibility"> {
1763
+ }
1764
+ interface SymbolSVGAttributes<T> extends ContainerElementSVGAttributes<T>, NewViewportSVGAttributes<T>, ExternalResourceSVGAttributes, StylableSVGAttributes, FitToViewBoxSVGAttributes {
1765
+ width?: number | string | undefined;
1766
+ height?: number | string | undefined;
1767
+ preserveAspectRatio?: SVGPreserveAspectRatio | undefined;
1768
+ refX?: number | string | undefined;
1769
+ refY?: number | string | undefined;
1770
+ viewBox?: string | undefined;
1771
+ x?: number | string | undefined;
1772
+ y?: number | string | undefined;
1773
+ }
1774
+ interface TextSVGAttributes<T> extends TextContentElementSVGAttributes<T>, GraphicsElementSVGAttributes<T>, ConditionalProcessingSVGAttributes, ExternalResourceSVGAttributes, StylableSVGAttributes, TransformableSVGAttributes, Pick<PresentationSVGAttributes, "writing-mode" | "text-rendering"> {
1775
+ x?: number | string | undefined;
1776
+ y?: number | string | undefined;
1777
+ dx?: number | string | undefined;
1778
+ dy?: number | string | undefined;
1779
+ rotate?: number | string | undefined;
1780
+ textLength?: number | string | undefined;
1781
+ lengthAdjust?: "spacing" | "spacingAndGlyphs" | undefined;
1782
+ }
1783
+ interface TextPathSVGAttributes<T> extends TextContentElementSVGAttributes<T>, ConditionalProcessingSVGAttributes, ExternalResourceSVGAttributes, StylableSVGAttributes, Pick<PresentationSVGAttributes, "alignment-baseline" | "baseline-shift" | "display" | "visibility"> {
1784
+ startOffset?: number | string | undefined;
1785
+ method?: "align" | "stretch" | undefined;
1786
+ spacing?: "auto" | "exact" | undefined;
1787
+ href?: string | undefined;
1788
+ }
1789
+ interface TSpanSVGAttributes<T> extends TextContentElementSVGAttributes<T>, ConditionalProcessingSVGAttributes, ExternalResourceSVGAttributes, StylableSVGAttributes, Pick<PresentationSVGAttributes, "alignment-baseline" | "baseline-shift" | "display" | "visibility"> {
1790
+ x?: number | string | undefined;
1791
+ y?: number | string | undefined;
1792
+ dx?: number | string | undefined;
1793
+ dy?: number | string | undefined;
1794
+ rotate?: number | string | undefined;
1795
+ textLength?: number | string | undefined;
1796
+ lengthAdjust?: "spacing" | "spacingAndGlyphs" | undefined;
1797
+ }
1798
+ /**
1799
+ * @see https://developer.mozilla.org/en-US/docs/Web/SVG/Element/use
1800
+ */
1801
+ interface UseSVGAttributes<T> extends CoreSVGAttributes<T>, StylableSVGAttributes, ConditionalProcessingSVGAttributes, GraphicsElementSVGAttributes<T>, PresentationSVGAttributes, ExternalResourceSVGAttributes, TransformableSVGAttributes {
1802
+ x?: number | string | undefined;
1803
+ y?: number | string | undefined;
1804
+ width?: number | string | undefined;
1805
+ height?: number | string | undefined;
1806
+ href?: string | undefined;
1807
+ }
1808
+ interface ViewSVGAttributes<T> extends CoreSVGAttributes<T>, ExternalResourceSVGAttributes, FitToViewBoxSVGAttributes, ZoomAndPanSVGAttributes {
1809
+ viewTarget?: string | undefined;
1810
+ }
1811
+ /**
1812
+ * A list of native HTML elements and their props.
1813
+ *
1814
+ * @see {HTMLElementTagNameMap}
1815
+ */
1816
+ interface HTMLElementTags {
1817
+ a: AnchorHTMLAttributes<HTMLAnchorElement>;
1818
+ abbr: HTMLAttributes;
1819
+ address: HTMLAttributes;
1820
+ area: AreaHTMLAttributes<HTMLAreaElement>;
1821
+ article: HTMLAttributes;
1822
+ aside: HTMLAttributes;
1823
+ audio: AudioHTMLAttributes<HTMLAudioElement>;
1824
+ b: HTMLAttributes;
1825
+ base: BaseHTMLAttributes<HTMLBaseElement>;
1826
+ bdi: HTMLAttributes;
1827
+ bdo: HTMLAttributes;
1828
+ blockquote: BlockquoteHTMLAttributes<HTMLElement>;
1829
+ body: HTMLAttributes<HTMLBodyElement>;
1830
+ br: HTMLAttributes<HTMLBRElement>;
1831
+ button: ButtonHTMLAttributes<HTMLButtonElement>;
1832
+ canvas: CanvasHTMLAttributes<HTMLCanvasElement>;
1833
+ caption: HTMLAttributes;
1834
+ cite: HTMLAttributes;
1835
+ code: HTMLAttributes;
1836
+ col: ColHTMLAttributes<HTMLTableColElement>;
1837
+ colgroup: ColgroupHTMLAttributes<HTMLTableColElement>;
1838
+ data: DataHTMLAttributes<HTMLElement>;
1839
+ datalist: HTMLAttributes<HTMLDataListElement>;
1840
+ dd: HTMLAttributes;
1841
+ del: HTMLAttributes;
1842
+ details: DetailsHTMLAttributes<HTMLDetailsElement>;
1843
+ dfn: HTMLAttributes;
1844
+ dialog: DialogHTMLAttributes<HTMLDialogElement>;
1845
+ div: HTMLAttributes<HTMLDivElement>;
1846
+ dl: HTMLAttributes<HTMLDListElement>;
1847
+ dt: HTMLAttributes;
1848
+ em: HTMLAttributes;
1849
+ embed: EmbedHTMLAttributes<HTMLEmbedElement>;
1850
+ fieldset: FieldsetHTMLAttributes<HTMLFieldSetElement>;
1851
+ figcaption: HTMLAttributes;
1852
+ figure: HTMLAttributes;
1853
+ footer: HTMLAttributes;
1854
+ form: FormHTMLAttributes<HTMLFormElement>;
1855
+ h1: HTMLAttributes<HTMLHeadingElement>;
1856
+ h2: HTMLAttributes<HTMLHeadingElement>;
1857
+ h3: HTMLAttributes<HTMLHeadingElement>;
1858
+ h4: HTMLAttributes<HTMLHeadingElement>;
1859
+ h5: HTMLAttributes<HTMLHeadingElement>;
1860
+ h6: HTMLAttributes<HTMLHeadingElement>;
1861
+ head: HTMLAttributes<HTMLHeadElement>;
1862
+ header: HTMLAttributes;
1863
+ hgroup: HTMLAttributes;
1864
+ hr: HTMLAttributes<HTMLHRElement>;
1865
+ html: HTMLAttributes<HTMLHtmlElement>;
1866
+ i: HTMLAttributes;
1867
+ iframe: IframeHTMLAttributes<HTMLIFrameElement>;
1868
+ img: ImgHTMLAttributes<HTMLImageElement>;
1869
+ input: InputHTMLAttributes<HTMLInputElement>;
1870
+ ins: InsHTMLAttributes<HTMLModElement>;
1871
+ kbd: HTMLAttributes;
1872
+ label: LabelHTMLAttributes<HTMLLabelElement>;
1873
+ legend: HTMLAttributes<HTMLLegendElement>;
1874
+ li: LiHTMLAttributes<HTMLLIElement>;
1875
+ link: LinkHTMLAttributes<HTMLLinkElement>;
1876
+ main: HTMLAttributes;
1877
+ map: MapHTMLAttributes<HTMLMapElement>;
1878
+ math: MathMLAttributes;
1879
+ mark: HTMLAttributes;
1880
+ menu: MenuHTMLAttributes<HTMLElement>;
1881
+ meta: MetaHTMLAttributes<HTMLMetaElement>;
1882
+ meter: MeterHTMLAttributes<HTMLElement>;
1883
+ nav: HTMLAttributes;
1884
+ noscript: HTMLAttributes;
1885
+ object: ObjectHTMLAttributes<HTMLObjectElement>;
1886
+ ol: OlHTMLAttributes<HTMLOListElement>;
1887
+ optgroup: OptgroupHTMLAttributes<HTMLOptGroupElement>;
1888
+ option: OptionHTMLAttributes<HTMLOptionElement>;
1889
+ output: OutputHTMLAttributes<HTMLElement>;
1890
+ p: HTMLAttributes<HTMLParagraphElement>;
1891
+ picture: HTMLAttributes;
1892
+ pre: HTMLAttributes<HTMLPreElement>;
1893
+ progress: ProgressHTMLAttributes<HTMLProgressElement>;
1894
+ q: QuoteHTMLAttributes<HTMLQuoteElement>;
1895
+ rp: HTMLAttributes;
1896
+ rt: HTMLAttributes;
1897
+ ruby: HTMLAttributes;
1898
+ s: HTMLAttributes;
1899
+ samp: HTMLAttributes;
1900
+ script: ScriptHTMLAttributes<HTMLScriptElement>;
1901
+ search: HTMLAttributes;
1902
+ section: HTMLAttributes;
1903
+ select: SelectHTMLAttributes<HTMLSelectElement>;
1904
+ slot: SlotHTMLAttributes;
1905
+ small: HTMLAttributes;
1906
+ source: SourceHTMLAttributes<HTMLSourceElement>;
1907
+ span: HTMLAttributes<HTMLSpanElement>;
1908
+ strong: HTMLAttributes;
1909
+ /**
1910
+ * For use when you have a dynamic CSS string that needs to be added as a
1911
+ * style. If you have a static string, use Lit's "styles" property instead
1912
+ * for better performance.
1913
+ */
1914
+ style: StyleHTMLAttributes<HTMLStyleElement>;
1915
+ svg: SvgSVGAttributes<SVGSVGElement>;
1916
+ sub: HTMLAttributes;
1917
+ summary: HTMLAttributes;
1918
+ sup: HTMLAttributes;
1919
+ table: HTMLAttributes<HTMLTableElement>;
1920
+ tbody: HTMLAttributes<HTMLTableSectionElement>;
1921
+ td: TdHTMLAttributes<HTMLTableCellElement>;
1922
+ template: TemplateHTMLAttributes<HTMLTemplateElement>;
1923
+ textarea: TextareaHTMLAttributes<HTMLTextAreaElement>;
1924
+ tfoot: HTMLAttributes<HTMLTableSectionElement>;
1925
+ th: ThHTMLAttributes<HTMLTableCellElement>;
1926
+ thead: HTMLAttributes<HTMLTableSectionElement>;
1927
+ time: TimeHTMLAttributes<HTMLElement>;
1928
+ title: HTMLAttributes<HTMLTitleElement>;
1929
+ tr: HTMLAttributes<HTMLTableRowElement>;
1930
+ track: TrackHTMLAttributes<HTMLTrackElement>;
1931
+ u: HTMLAttributes;
1932
+ ul: HTMLAttributes<HTMLUListElement>;
1933
+ var: HTMLAttributes;
1934
+ video: VideoHTMLAttributes<HTMLVideoElement>;
1935
+ wbr: HTMLAttributes;
1936
+ }
1937
+ /**
1938
+ * A list of native SVG elements and their props.
1939
+ *
1940
+ * @type {SVGElementTagNameMap}
1941
+ */
1942
+ interface SVGElementTags {
1943
+ animate: AnimateSVGAttributes<SVGAnimateElement>;
1944
+ animateMotion: AnimateMotionSVGAttributes<SVGAnimateMotionElement>;
1945
+ animateTransform: AnimateTransformSVGAttributes<SVGAnimateTransformElement>;
1946
+ circle: CircleSVGAttributes<SVGCircleElement>;
1947
+ clipPath: ClipPathSVGAttributes<SVGClipPathElement>;
1948
+ defs: DefsSVGAttributes<SVGDefsElement>;
1949
+ desc: DescSVGAttributes<SVGDescElement>;
1950
+ ellipse: EllipseSVGAttributes<SVGEllipseElement>;
1951
+ feBlend: FeBlendSVGAttributes<SVGFEBlendElement>;
1952
+ feColorMatrix: FeColorMatrixSVGAttributes<SVGFEColorMatrixElement>;
1953
+ feComponentTransfer: FeComponentTransferSVGAttributes<SVGFEComponentTransferElement>;
1954
+ feComposite: FeCompositeSVGAttributes<SVGFECompositeElement>;
1955
+ feConvolveMatrix: FeConvolveMatrixSVGAttributes<SVGFEConvolveMatrixElement>;
1956
+ feDiffuseLighting: FeDiffuseLightingSVGAttributes<SVGFEDiffuseLightingElement>;
1957
+ feDisplacementMap: FeDisplacementMapSVGAttributes<SVGFEDisplacementMapElement>;
1958
+ feDistantLight: FeDistantLightSVGAttributes<SVGFEDistantLightElement>;
1959
+ feDropShadow: FeDropShadowSVGAttributes<SVGFEDropShadowElement>;
1960
+ feFlood: FeFloodSVGAttributes<SVGFEFloodElement>;
1961
+ feFuncA: FeFuncSVGAttributes<SVGFEFuncAElement>;
1962
+ feFuncB: FeFuncSVGAttributes<SVGFEFuncBElement>;
1963
+ feFuncG: FeFuncSVGAttributes<SVGFEFuncGElement>;
1964
+ feFuncR: FeFuncSVGAttributes<SVGFEFuncRElement>;
1965
+ feGaussianBlur: FeGaussianBlurSVGAttributes<SVGFEGaussianBlurElement>;
1966
+ feImage: FeImageSVGAttributes<SVGFEImageElement>;
1967
+ feMerge: FeMergeSVGAttributes<SVGFEMergeElement>;
1968
+ feMergeNode: FeMergeNodeSVGAttributes<SVGFEMergeNodeElement>;
1969
+ feMorphology: FeMorphologySVGAttributes<SVGFEMorphologyElement>;
1970
+ feOffset: FeOffsetSVGAttributes<SVGFEOffsetElement>;
1971
+ fePointLight: FePointLightSVGAttributes<SVGFEPointLightElement>;
1972
+ feSpecularLighting: FeSpecularLightingSVGAttributes<SVGFESpecularLightingElement>;
1973
+ feSpotLight: FeSpotLightSVGAttributes<SVGFESpotLightElement>;
1974
+ feTile: FeTileSVGAttributes<SVGFETileElement>;
1975
+ feTurbulence: FeTurbulanceSVGAttributes<SVGFETurbulenceElement>;
1976
+ filter: FilterSVGAttributes<SVGFilterElement>;
1977
+ foreignObject: ForeignObjectSVGAttributes<SVGForeignObjectElement>;
1978
+ g: GSVGAttributes<SVGGElement>;
1979
+ image: ImageSVGAttributes<SVGImageElement>;
1980
+ line: LineSVGAttributes<SVGLineElement>;
1981
+ linearGradient: LinearGradientSVGAttributes<SVGLinearGradientElement>;
1982
+ marker: MarkerSVGAttributes<SVGMarkerElement>;
1983
+ mask: MaskSVGAttributes<SVGMaskElement>;
1984
+ metadata: MetadataSVGAttributes<SVGMetadataElement>;
1985
+ mpath: MPathSVGAttributes<SVGMPathElement>;
1986
+ path: PathSVGAttributes<SVGPathElement>;
1987
+ pattern: PatternSVGAttributes<SVGPatternElement>;
1988
+ polygon: PolygonSVGAttributes<SVGPolygonElement>;
1989
+ polyline: PolylineSVGAttributes<SVGPolylineElement>;
1990
+ radialGradient: RadialGradientSVGAttributes<SVGRadialGradientElement>;
1991
+ rect: RectSVGAttributes<SVGRectElement>;
1992
+ set: SetSVGAttributes<SVGSetElement>;
1993
+ stop: StopSVGAttributes<SVGStopElement>;
1994
+ svg: SvgSVGAttributes<SVGSVGElement>;
1995
+ switch: SwitchSVGAttributes<SVGSwitchElement>;
1996
+ symbol: SymbolSVGAttributes<SVGSymbolElement>;
1997
+ text: TextSVGAttributes<SVGTextElement>;
1998
+ textPath: TextPathSVGAttributes<SVGTextPathElement>;
1999
+ tspan: TSpanSVGAttributes<SVGTSpanElement>;
2000
+ use: UseSVGAttributes<SVGUseElement>;
2001
+ view: ViewSVGAttributes<SVGViewElement>;
2002
+ }
2003
+ }
2004
+ export {};