pulse-framework 0.1.62__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (126) hide show
  1. pulse/__init__.py +1493 -0
  2. pulse/_examples.py +29 -0
  3. pulse/app.py +1086 -0
  4. pulse/channel.py +607 -0
  5. pulse/cli/__init__.py +0 -0
  6. pulse/cli/cmd.py +575 -0
  7. pulse/cli/dependencies.py +181 -0
  8. pulse/cli/folder_lock.py +134 -0
  9. pulse/cli/helpers.py +271 -0
  10. pulse/cli/logging.py +102 -0
  11. pulse/cli/models.py +35 -0
  12. pulse/cli/packages.py +262 -0
  13. pulse/cli/processes.py +292 -0
  14. pulse/cli/secrets.py +39 -0
  15. pulse/cli/uvicorn_log_config.py +87 -0
  16. pulse/code_analysis.py +38 -0
  17. pulse/codegen/__init__.py +0 -0
  18. pulse/codegen/codegen.py +359 -0
  19. pulse/codegen/templates/__init__.py +0 -0
  20. pulse/codegen/templates/layout.py +106 -0
  21. pulse/codegen/templates/route.py +345 -0
  22. pulse/codegen/templates/routes_ts.py +42 -0
  23. pulse/codegen/utils.py +20 -0
  24. pulse/component.py +237 -0
  25. pulse/components/__init__.py +0 -0
  26. pulse/components/for_.py +83 -0
  27. pulse/components/if_.py +86 -0
  28. pulse/components/react_router.py +94 -0
  29. pulse/context.py +108 -0
  30. pulse/cookies.py +322 -0
  31. pulse/decorators.py +344 -0
  32. pulse/dom/__init__.py +0 -0
  33. pulse/dom/elements.py +1024 -0
  34. pulse/dom/events.py +445 -0
  35. pulse/dom/props.py +1250 -0
  36. pulse/dom/svg.py +0 -0
  37. pulse/dom/tags.py +328 -0
  38. pulse/dom/tags.pyi +480 -0
  39. pulse/env.py +178 -0
  40. pulse/form.py +538 -0
  41. pulse/helpers.py +541 -0
  42. pulse/hooks/__init__.py +0 -0
  43. pulse/hooks/core.py +452 -0
  44. pulse/hooks/effects.py +88 -0
  45. pulse/hooks/init.py +668 -0
  46. pulse/hooks/runtime.py +464 -0
  47. pulse/hooks/setup.py +254 -0
  48. pulse/hooks/stable.py +138 -0
  49. pulse/hooks/state.py +192 -0
  50. pulse/js/__init__.py +125 -0
  51. pulse/js/__init__.pyi +115 -0
  52. pulse/js/_types.py +299 -0
  53. pulse/js/array.py +339 -0
  54. pulse/js/console.py +50 -0
  55. pulse/js/date.py +119 -0
  56. pulse/js/document.py +145 -0
  57. pulse/js/error.py +140 -0
  58. pulse/js/json.py +66 -0
  59. pulse/js/map.py +97 -0
  60. pulse/js/math.py +69 -0
  61. pulse/js/navigator.py +79 -0
  62. pulse/js/number.py +57 -0
  63. pulse/js/obj.py +81 -0
  64. pulse/js/object.py +172 -0
  65. pulse/js/promise.py +172 -0
  66. pulse/js/pulse.py +115 -0
  67. pulse/js/react.py +495 -0
  68. pulse/js/regexp.py +57 -0
  69. pulse/js/set.py +124 -0
  70. pulse/js/string.py +38 -0
  71. pulse/js/weakmap.py +53 -0
  72. pulse/js/weakset.py +48 -0
  73. pulse/js/window.py +205 -0
  74. pulse/messages.py +202 -0
  75. pulse/middleware.py +471 -0
  76. pulse/plugin.py +96 -0
  77. pulse/proxy.py +242 -0
  78. pulse/py.typed +0 -0
  79. pulse/queries/__init__.py +0 -0
  80. pulse/queries/client.py +609 -0
  81. pulse/queries/common.py +101 -0
  82. pulse/queries/effect.py +55 -0
  83. pulse/queries/infinite_query.py +1418 -0
  84. pulse/queries/mutation.py +295 -0
  85. pulse/queries/protocol.py +136 -0
  86. pulse/queries/query.py +1314 -0
  87. pulse/queries/store.py +120 -0
  88. pulse/react_component.py +88 -0
  89. pulse/reactive.py +1208 -0
  90. pulse/reactive_extensions.py +1172 -0
  91. pulse/render_session.py +768 -0
  92. pulse/renderer.py +584 -0
  93. pulse/request.py +205 -0
  94. pulse/routing.py +598 -0
  95. pulse/serializer.py +279 -0
  96. pulse/state.py +556 -0
  97. pulse/test_helpers.py +15 -0
  98. pulse/transpiler/__init__.py +111 -0
  99. pulse/transpiler/assets.py +81 -0
  100. pulse/transpiler/builtins.py +1029 -0
  101. pulse/transpiler/dynamic_import.py +130 -0
  102. pulse/transpiler/emit_context.py +49 -0
  103. pulse/transpiler/errors.py +96 -0
  104. pulse/transpiler/function.py +611 -0
  105. pulse/transpiler/id.py +18 -0
  106. pulse/transpiler/imports.py +341 -0
  107. pulse/transpiler/js_module.py +336 -0
  108. pulse/transpiler/modules/__init__.py +33 -0
  109. pulse/transpiler/modules/asyncio.py +57 -0
  110. pulse/transpiler/modules/json.py +24 -0
  111. pulse/transpiler/modules/math.py +265 -0
  112. pulse/transpiler/modules/pulse/__init__.py +5 -0
  113. pulse/transpiler/modules/pulse/tags.py +250 -0
  114. pulse/transpiler/modules/typing.py +63 -0
  115. pulse/transpiler/nodes.py +1987 -0
  116. pulse/transpiler/py_module.py +135 -0
  117. pulse/transpiler/transpiler.py +1100 -0
  118. pulse/transpiler/vdom.py +256 -0
  119. pulse/types/__init__.py +0 -0
  120. pulse/types/event_handler.py +50 -0
  121. pulse/user_session.py +386 -0
  122. pulse/version.py +69 -0
  123. pulse_framework-0.1.62.dist-info/METADATA +198 -0
  124. pulse_framework-0.1.62.dist-info/RECORD +126 -0
  125. pulse_framework-0.1.62.dist-info/WHEEL +4 -0
  126. pulse_framework-0.1.62.dist-info/entry_points.txt +3 -0
pulse/dom/props.py ADDED
@@ -0,0 +1,1250 @@
1
+ # Adapted from @types/react 19.0
2
+ # NOT the same thing as the properties in `elements.py` (but very similar)
3
+ from typing import Any, Literal, TypedDict
4
+
5
+ from pulse.dom.elements import (
6
+ GenericHTMLElement,
7
+ HTMLAnchorElement,
8
+ HTMLAreaElement,
9
+ HTMLBaseElement,
10
+ HTMLBodyElement,
11
+ HTMLBRElement,
12
+ HTMLButtonElement,
13
+ HTMLCiteElement,
14
+ HTMLDataElement,
15
+ HTMLDetailsElement,
16
+ HTMLDivElement,
17
+ HTMLDListElement,
18
+ HTMLEmbedElement,
19
+ HTMLFieldSetElement,
20
+ HTMLFormElement,
21
+ HTMLHeadElement,
22
+ HTMLHeadingElement,
23
+ HTMLHRElement,
24
+ HTMLHtmlElement,
25
+ HTMLIFrameElement,
26
+ HTMLImageElement,
27
+ HTMLLabelElement,
28
+ HTMLLiElement,
29
+ HTMLLinkElement,
30
+ HTMLMapElement,
31
+ HTMLMediaElement,
32
+ HTMLMenuElement,
33
+ HTMLMetaElement,
34
+ HTMLMeterElement,
35
+ HTMLModElement,
36
+ HTMLObjectElement,
37
+ HTMLOListElement,
38
+ HTMLOptGroupElement,
39
+ HTMLOptionElement,
40
+ HTMLOutputElement,
41
+ HTMLParagraphElement,
42
+ HTMLPictureElement,
43
+ HTMLPreElement,
44
+ HTMLProgressElement,
45
+ HTMLQuoteElement,
46
+ HTMLScriptElement,
47
+ HTMLSlotElement,
48
+ HTMLSourceElement,
49
+ HTMLSpanElement,
50
+ HTMLStyleElement,
51
+ HTMLTableCaptionElement,
52
+ HTMLTableCellElement,
53
+ HTMLTableColElement,
54
+ HTMLTableElement,
55
+ HTMLTableSectionElement,
56
+ HTMLTemplateElement,
57
+ HTMLTimeElement,
58
+ HTMLTitleElement,
59
+ HTMLTrackElement,
60
+ HTMLUListElement,
61
+ )
62
+ from pulse.dom.events import (
63
+ DialogDOMEvents,
64
+ DOMEvents,
65
+ InputDOMEvents,
66
+ SelectDOMEvents,
67
+ TElement,
68
+ TextAreaDOMEvents,
69
+ )
70
+ from pulse.helpers import CSSProperties
71
+ from pulse.transpiler.nodes import Expr
72
+
73
+ Booleanish = Literal[True, False, "true", "false"]
74
+ CrossOrigin = Literal["anonymous", "use-credentials", ""] | None
75
+ # ClassName can be a string or any Expr (e.g., Member from CssModule.classname)
76
+ ClassName = str | Expr
77
+
78
+
79
+ class BaseHTMLProps(TypedDict, total=False):
80
+ # React-specific Attributes
81
+ defaultChecked: bool
82
+ defaultValue: str | int | list[str]
83
+ suppressContentEditableWarning: bool
84
+ suppressHydrationWarning: bool
85
+
86
+ # Standard HTML Attributes
87
+ accessKey: str
88
+ autoCapitalize: Literal["off", "none", "on", "sentences", "words", "characters"]
89
+ autoFocus: bool
90
+ className: ClassName
91
+ contentEditable: Booleanish | Literal["inherit", "plaintext-only"]
92
+ contextMenu: str
93
+ dir: str
94
+ draggable: Booleanish
95
+ enterKeyHint: Literal["enter", "done", "go", "next", "previous", "search", "send"]
96
+ hidden: bool
97
+ id: str
98
+ lang: str
99
+ nonce: str
100
+ slot: str
101
+ spellCheck: Booleanish
102
+ style: CSSProperties
103
+ tabIndex: int
104
+ title: str
105
+ translate: Literal["yes", "no"]
106
+
107
+ # Unknown
108
+ radioGroup: str # <command>, <menuitem>
109
+
110
+ # role: skipped
111
+
112
+ # RDFa Attributes
113
+ about: str
114
+ content: str
115
+ datatype: str
116
+ inlist: Any
117
+ prefix: str
118
+ property: str
119
+ rel: str
120
+ resource: str
121
+ rev: str
122
+ typeof: str
123
+ vocab: str
124
+
125
+ # Non-standard Attributes
126
+ autoCorrect: str
127
+ autoSave: str
128
+ color: str
129
+ itemProp: str
130
+ itemScope: bool
131
+ itemType: str
132
+ itemId: str
133
+ itemRef: str
134
+ results: int
135
+ security: str
136
+ unselectable: Literal["on", "off"]
137
+
138
+ # Popover API
139
+ popover: Literal["", "auto", "manual"]
140
+ popoverTargetAction: Literal["toggle", "show", "hide"]
141
+ popoverTarget: str
142
+
143
+ # Living Standard
144
+ # https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/inert
145
+ inert: bool
146
+ # Hints at the type of data that might be entered by the user while editing the element or its contents
147
+ # https://html.spec.whatwg.org/multipage/interaction.html#input-modalities:-the-inputmode-attribute
148
+ inputMode: Literal[
149
+ "none", "text", "tel", "url", "email", "numeric", "decimal", "search"
150
+ ]
151
+
152
+ # Specify that a standard HTML element should behave like a defined custom built-in element
153
+ # https://html.spec.whatwg.org/multipage/custom-elements.html#attr-is
154
+ is_: str
155
+ # https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/exportparts
156
+ exportparts: str
157
+ # https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/part
158
+ part: str
159
+
160
+
161
+ class HTMLProps(BaseHTMLProps, DOMEvents[GenericHTMLElement], total=False): ...
162
+
163
+
164
+ HTMLAttributeReferrerPolicy = Literal[
165
+ "",
166
+ "no-referrer",
167
+ "no-referrer-when-downgrade",
168
+ "origin",
169
+ "origin-when-cross-origin",
170
+ "same-origin",
171
+ "strict-origin",
172
+ "strict-origin-when-cross-origin",
173
+ "unsafe-url",
174
+ ]
175
+
176
+
177
+ class HTMLAnchorProps(BaseHTMLProps, DOMEvents[HTMLAnchorElement], total=False):
178
+ download: str
179
+ href: str
180
+ media: str
181
+ ping: str
182
+ target: str
183
+ type: str
184
+ referrerPolicy: HTMLAttributeReferrerPolicy
185
+
186
+
187
+ class HTMLAreaProps(BaseHTMLProps, DOMEvents[HTMLAreaElement], total=False):
188
+ alt: str
189
+ coords: str
190
+ download: str
191
+ href: str
192
+ hrefLang: str
193
+ media: str
194
+ referrerPolicy: HTMLAttributeReferrerPolicy
195
+ shape: str
196
+ target: str
197
+
198
+
199
+ class HTMLBaseProps(BaseHTMLProps, DOMEvents[HTMLBaseElement], total=False):
200
+ href: str
201
+ target: str
202
+
203
+
204
+ class HTMLBlockquoteProps(BaseHTMLProps, DOMEvents[HTMLQuoteElement], total=False):
205
+ cite: str
206
+
207
+
208
+ class HTMLButtonProps(BaseHTMLProps, DOMEvents[HTMLButtonElement], total=False):
209
+ disabled: bool
210
+ form: str
211
+ # NOTE: support form_action callbacks?
212
+ formAction: str
213
+ formEncType: str
214
+ formMethod: str
215
+ formNoValidate: bool
216
+ formTarget: str
217
+ name: str
218
+ type: Literal["submit", "reset", "button"]
219
+ value: str | list[str] | int
220
+
221
+
222
+ class HTMLCanvasProps(BaseHTMLProps, DOMEvents[GenericHTMLElement], total=False):
223
+ height: int | str
224
+ width: int | str
225
+
226
+
227
+ class HTMLColProps(BaseHTMLProps, DOMEvents[HTMLTableColElement], total=False):
228
+ span: int
229
+ width: int | str
230
+
231
+
232
+ class HTMLColgroupProps(BaseHTMLProps, DOMEvents[HTMLTableColElement], total=False):
233
+ span: int
234
+
235
+
236
+ class HTMLDataProps(BaseHTMLProps, DOMEvents[HTMLDataElement], total=False):
237
+ value: str | list[str] | int
238
+
239
+
240
+ class HTMLDetailsProps(BaseHTMLProps, DOMEvents[HTMLDetailsElement], total=False):
241
+ open: bool
242
+ name: str
243
+
244
+
245
+ class HTMLDelProps(BaseHTMLProps, DOMEvents[HTMLModElement], total=False):
246
+ cite: str
247
+ dateTime: str
248
+
249
+
250
+ class HTMLDialogProps(BaseHTMLProps, DialogDOMEvents, total=False):
251
+ open: bool
252
+
253
+
254
+ class HTMLEmbedProps(BaseHTMLProps, DOMEvents[HTMLEmbedElement], total=False):
255
+ height: int | str
256
+ src: str
257
+ type: str
258
+ width: int | str
259
+
260
+
261
+ class HTMLFieldsetProps(BaseHTMLProps, DOMEvents[HTMLFieldSetElement], total=False):
262
+ disabled: bool
263
+ form: str
264
+ name: str
265
+
266
+
267
+ class HTMLFormProps(BaseHTMLProps, DOMEvents[HTMLFormElement], total=False):
268
+ acceptCharset: str
269
+ # NOTE: support action callbacks?
270
+ action: str
271
+ autoComplete: str
272
+ encType: str
273
+ method: str
274
+ name: str
275
+ noValidate: bool
276
+ target: str
277
+
278
+
279
+ class HTMLHtmlProps(BaseHTMLProps, DOMEvents[HTMLHtmlElement], total=False):
280
+ manifest: str
281
+
282
+
283
+ class HTMLIframeProps(BaseHTMLProps, DOMEvents[HTMLIFrameElement], total=False):
284
+ allow: str
285
+ allowFullScreen: bool
286
+ allowTransparency: bool
287
+ frameBorder: int | str
288
+ height: int | str
289
+ loading: Literal["eager", "lazy"]
290
+ marginHeight: int
291
+ marginWidth: int
292
+ name: str
293
+ referrerPolicy: HTMLAttributeReferrerPolicy
294
+ sandbox: str
295
+ scrolling: str
296
+ seamless: bool
297
+ src: str
298
+ srcDoc: str
299
+ width: int | str
300
+
301
+
302
+ class HTMLImgProps(BaseHTMLProps, DOMEvents[HTMLImageElement], total=False):
303
+ alt: str
304
+ crossOrigin: CrossOrigin
305
+ decoding: Literal["async", "auto", "sync"]
306
+ fetchPriority: Literal["high", "low", "auto"]
307
+ height: int | str
308
+ loading: Literal["eager", "lazy"]
309
+ referrerPolicy: HTMLAttributeReferrerPolicy
310
+ sizes: str
311
+ src: str
312
+ srcSet: str
313
+ useMap: str
314
+ width: int | str
315
+
316
+
317
+ class HTMLInsProps(BaseHTMLProps, DOMEvents[HTMLModElement], total=False):
318
+ cite: str
319
+ dateTime: str
320
+
321
+
322
+ HTMLInputType = (
323
+ Literal[
324
+ "button",
325
+ "checkbox",
326
+ "color",
327
+ "date",
328
+ "datetime-local",
329
+ "email",
330
+ "file",
331
+ "hidden",
332
+ "image",
333
+ "month",
334
+ "number",
335
+ "password",
336
+ "radio",
337
+ "range",
338
+ "reset",
339
+ "search",
340
+ "submit",
341
+ "tel",
342
+ "text",
343
+ "time",
344
+ "url",
345
+ "week",
346
+ ]
347
+ | str
348
+ )
349
+
350
+
351
+ class HTMLInputProps(BaseHTMLProps, InputDOMEvents, total=False):
352
+ accept: str
353
+ alt: str
354
+ autoComplete: str # HTMLInputAutoCompleteAttribute
355
+ capture: bool | Literal["user", "environment"]
356
+ checked: bool
357
+ disabled: bool
358
+ form: str
359
+ formAction: str
360
+ formEncType: str
361
+ formMethod: str
362
+ formNoValidate: bool
363
+ formTarget: str
364
+ height: int | str
365
+ list: str
366
+ max: int | str
367
+ maxLength: int
368
+ min: int | str
369
+ minLength: int
370
+ multiple: bool
371
+ name: str
372
+ pattern: str
373
+ placeholder: str
374
+ readOnly: bool
375
+ required: bool
376
+ size: int
377
+ src: str
378
+ step: int | str
379
+ type: HTMLInputType
380
+ value: "str | list[str] | int"
381
+ width: int | str
382
+
383
+
384
+ class HTMLKeygenProps(BaseHTMLProps, DOMEvents[GenericHTMLElement], total=False):
385
+ challenge: str
386
+ disabled: bool
387
+ form: str
388
+ keyType: str
389
+ keyParams: str
390
+ name: str
391
+
392
+
393
+ class HTMLLabelProps(BaseHTMLProps, DOMEvents[HTMLLabelElement], total=False):
394
+ form: str
395
+ htmlFor: str
396
+
397
+
398
+ class HTMLLiProps(BaseHTMLProps, DOMEvents[HTMLLiElement], total=False):
399
+ value: str | list[str] | int
400
+
401
+
402
+ class HTMLLinkProps(BaseHTMLProps, DOMEvents[HTMLLinkElement], total=False):
403
+ href: str
404
+ as_: str
405
+ crossOrigin: CrossOrigin
406
+ fetchPriority: Literal["high", "low", "auto"]
407
+ hrefLang: str
408
+ integrity: str
409
+ media: str
410
+ imageSrcSet: str
411
+ imageSizes: str
412
+ referrerPolicy: HTMLAttributeReferrerPolicy
413
+ sizes: str
414
+ type: str
415
+ charSet: str
416
+ precedence: str
417
+
418
+
419
+ class HTMLMapProps(BaseHTMLProps, DOMEvents[HTMLMapElement], total=False):
420
+ name: str
421
+
422
+
423
+ class HTMLMenuProps(BaseHTMLProps, DOMEvents[HTMLMenuElement], total=False):
424
+ type: str
425
+
426
+
427
+ class HTMLMediaProps(BaseHTMLProps, DOMEvents[HTMLMediaElement], total=False):
428
+ autoPlay: bool
429
+ controls: bool
430
+ controlsList: str
431
+ crossOrigin: CrossOrigin
432
+ loop: bool
433
+ mediaGroup: str
434
+ muted: bool
435
+ playsInline: bool
436
+ preload: str
437
+ src: str
438
+
439
+
440
+ # Note: not alphabetical order due to inheritance
441
+ class HTMLAudioProps(HTMLMediaProps, total=False):
442
+ pass
443
+
444
+
445
+ class HTMLMetaProps(BaseHTMLProps, DOMEvents[HTMLMetaElement], total=False):
446
+ charSet: str
447
+ content: str
448
+ httpEquiv: str
449
+ media: str
450
+ name: str
451
+
452
+
453
+ class HTMLMeterProps(BaseHTMLProps, DOMEvents[HTMLMeterElement], total=False):
454
+ form: str
455
+ high: int
456
+ low: int
457
+ max: int | str
458
+ min: int | str
459
+ optimum: int
460
+ value: str | list[str] | int
461
+
462
+
463
+ class HTMLQuoteProps(BaseHTMLProps, DOMEvents[HTMLQuoteElement], total=False):
464
+ cite: str
465
+
466
+
467
+ class HTMLObjectProps(BaseHTMLProps, DOMEvents[HTMLObjectElement], total=False):
468
+ classId: str
469
+ data: str
470
+ form: str
471
+ height: int | str
472
+ name: str
473
+ type: str
474
+ useMap: str
475
+ width: int | str
476
+ wmode: str
477
+
478
+
479
+ class HTMLOlProps(BaseHTMLProps, DOMEvents[HTMLOListElement], total=False):
480
+ reversed: bool
481
+ start: int
482
+ type: Literal["1", "a", "A", "i", "I"]
483
+
484
+
485
+ class HTMLOptgroupProps(BaseHTMLProps, DOMEvents[HTMLOptGroupElement], total=False):
486
+ disabled: bool
487
+ label: str
488
+
489
+
490
+ class HTMLOptionProps(BaseHTMLProps, DOMEvents[HTMLOptionElement], total=False):
491
+ disabled: bool
492
+ label: str
493
+ selected: bool
494
+ value: str | list[str] | int
495
+
496
+
497
+ class HTMLOutputProps(BaseHTMLProps, DOMEvents[HTMLOutputElement], total=False):
498
+ form: str
499
+ htmlFor: str
500
+ name: str
501
+
502
+
503
+ class HTMLParamProps(BaseHTMLProps, DOMEvents[GenericHTMLElement], total=False):
504
+ name: str
505
+ value: str | list[str] | int
506
+
507
+
508
+ class HTMLProgressProps(BaseHTMLProps, DOMEvents[HTMLProgressElement], total=False):
509
+ max: int | str
510
+ value: str | list[str] | int
511
+
512
+
513
+ class HTMLSlotProps(BaseHTMLProps, DOMEvents[HTMLSlotElement], total=False):
514
+ name: str
515
+
516
+
517
+ class HTMLScriptProps(BaseHTMLProps, DOMEvents[HTMLScriptElement], total=False):
518
+ async_: bool
519
+ charSet: str # deprecated
520
+ crossOrigin: CrossOrigin
521
+ defer: bool
522
+ integrity: str
523
+ noModule: bool
524
+ referrerPolicy: HTMLAttributeReferrerPolicy
525
+ src: str
526
+ type: str
527
+
528
+
529
+ class HTMLSelectProps(BaseHTMLProps, SelectDOMEvents, total=False):
530
+ autoComplete: str
531
+ disabled: bool
532
+ form: str
533
+ multiple: bool
534
+ name: str
535
+ required: bool
536
+ size: int
537
+ value: str | list[str] | int
538
+
539
+
540
+ class HTMLSourceProps(BaseHTMLProps, DOMEvents[HTMLSourceElement], total=False):
541
+ height: int | str
542
+ media: str
543
+ sizes: str
544
+ src: str
545
+ srcSet: str
546
+ type: str
547
+ width: int | str
548
+
549
+
550
+ class HTMLStyleProps(BaseHTMLProps, DOMEvents[HTMLStyleElement], total=False):
551
+ media: str
552
+ scoped: bool
553
+ type: str
554
+ href: str
555
+ precedence: str
556
+
557
+
558
+ class HTMLTableProps(BaseHTMLProps, DOMEvents[HTMLTableElement], total=False):
559
+ align: Literal["left", "center", "right"]
560
+ bgcolor: str
561
+ border: int
562
+ cellPadding: int | str
563
+ cellSpacing: int | str
564
+ frame: bool
565
+ rules: Literal["none", "groups", "rows", "columns", "all"]
566
+ summary: str
567
+ width: int | str
568
+
569
+
570
+ class HTMLTextareaProps(BaseHTMLProps, TextAreaDOMEvents, total=False):
571
+ autoComplete: str
572
+ cols: int
573
+ dirName: str
574
+ disabled: bool
575
+ form: str
576
+ maxLength: int
577
+ minLength: int
578
+ name: str
579
+ placeholder: str
580
+ readOnly: bool
581
+ required: bool
582
+ rows: int
583
+ value: str | list[str] | int
584
+ wrap: str
585
+
586
+
587
+ class HTMLTdProps(BaseHTMLProps, DOMEvents[HTMLTableCellElement], total=False):
588
+ align: Literal["left", "center", "right", "justify", "char"]
589
+ colSpan: int
590
+ headers: str
591
+ rowSpan: int
592
+ scope: str
593
+ abbr: str
594
+ height: int | str
595
+ width: int | str
596
+ valign: Literal["top", "middle", "bottom", "baseline"]
597
+
598
+
599
+ class HTMLThProps(BaseHTMLProps, DOMEvents[HTMLTableCellElement], total=False):
600
+ align: Literal["left", "center", "right", "justify", "char"]
601
+ colSpan: int
602
+ headers: str
603
+ rowSpan: int
604
+ scope: str
605
+ abbr: str
606
+
607
+
608
+ class HTMLTimeProps(BaseHTMLProps, DOMEvents[HTMLTimeElement], total=False):
609
+ dateTime: str
610
+
611
+
612
+ class HTMLTrackProps(BaseHTMLProps, DOMEvents[HTMLTrackElement], total=False):
613
+ default: bool
614
+ kind: str
615
+ label: str
616
+ src: str
617
+ srcLang: str
618
+
619
+
620
+ class HTMLVideoProps(HTMLMediaProps, total=False):
621
+ height: int | str
622
+ playsInline: bool
623
+ poster: str
624
+ width: int | str
625
+ disablePictureInPicture: bool
626
+ disableRemotePlayback: bool
627
+
628
+
629
+ class HTMLSVGProps(DOMEvents[TElement], total=False):
630
+ """SVG attributes supported by React (subset placeholder).
631
+
632
+ Note: Full SVG attribute surface is large; extend as needed.
633
+ """
634
+
635
+ # React-specific attributes
636
+ suppressHydrationWarning: bool
637
+
638
+ # Shared with HTMLAttributes
639
+ className: str # type: ignore
640
+ color: str
641
+ height: int | str
642
+ id: str # type: ignore
643
+ lang: str
644
+ max: int | str
645
+ media: str
646
+ method: str
647
+ min: int | str
648
+ name: str
649
+ style: CSSProperties
650
+ target: str
651
+ type: str
652
+ width: int | str
653
+
654
+ # Other HTML properties
655
+ role: str
656
+ tabIndex: int
657
+ crossOrigin: str
658
+
659
+ # SVG specific attributes
660
+ accentHeight: int | str
661
+ accumulate: Literal["none", "sum"]
662
+ additive: Literal["replace", "sum"]
663
+ alignmentBaseline: Literal[
664
+ "auto",
665
+ "baseline",
666
+ "before-edge",
667
+ "text-before-edge",
668
+ "middle",
669
+ "central",
670
+ "after-edge",
671
+ "text-after-edge",
672
+ "ideographic",
673
+ "alphabetic",
674
+ "hanging",
675
+ "mathematical",
676
+ "inherit",
677
+ ]
678
+
679
+ allowReorder: Literal["no", "yes"]
680
+ alphabetic: int | str
681
+ amplitude: int | str
682
+ arabicForm: Literal["initial", "medial", "terminal", "isolated"]
683
+ ascent: int | str
684
+ attributeName: str
685
+ attributeType: str
686
+ autoReverse: bool
687
+ azimuth: int | str
688
+ baseFrequency: int | str
689
+ baselineShift: int | str
690
+ baseProfile: int | str
691
+ bbox: int | str
692
+ begin: int | str
693
+ bias: int | str
694
+ by: int | str
695
+ calcMode: int | str
696
+ capHeight: int | str
697
+ clip: int | str
698
+ clipPath: str
699
+ clipPathUnits: int | str
700
+ clipRule: int | str
701
+ colorInterpolation: int | str
702
+ colorInterpolationFilters: Literal["auto", "sRGB", "linearRGB", "inherit"]
703
+ colorProfile: int | str
704
+ colorRendering: int | str
705
+ contentScriptType: int | str
706
+ contentStyleType: int | str
707
+ cursor: int | str
708
+ cx: int | str
709
+ cy: int | str
710
+ d: str
711
+ decelerate: int | str
712
+ descent: int | str
713
+ diffuseConstant: int | str
714
+ direction: int | str
715
+ display: int | str
716
+ divisor: int | str
717
+ dominantBaseline: int | str
718
+ dur: int | str
719
+ dx: int | str
720
+ dy: int | str
721
+ edgeMode: int | str
722
+ elevation: int | str
723
+ enableBackground: int | str
724
+ end: int | str
725
+ exponent: int | str
726
+ externalResourcesRequired: bool
727
+ fill: str
728
+ fillOpacity: int | str
729
+ fillRule: Literal["nonzero", "evenodd", "inherit"]
730
+ filter: str
731
+ filterRes: int | str
732
+ filterUnits: int | str
733
+ floodColor: int | str
734
+ floodOpacity: int | str
735
+ focusable: bool | Literal["auto"]
736
+ fontFamily: str
737
+ fontSize: int | str
738
+ fontSizeAdjust: int | str
739
+ fontStretch: int | str
740
+ fontStyle: int | str
741
+ fontVariant: int | str
742
+ fontWeight: int | str
743
+ format: int | str
744
+ fr: int | str
745
+ from_: int | str
746
+ fx: int | str
747
+ fy: int | str
748
+ g1: int | str
749
+ g2: int | str
750
+ glyphName: int | str
751
+ glyphOrientationHorizontal: int | str
752
+ glyphOrientationVertical: int | str
753
+ glyphRef: int | str
754
+ gradientTransform: str
755
+ gradientUnits: str
756
+ hanging: int | str
757
+ horizAdvX: int | str
758
+ horizOriginX: int | str
759
+ href: str
760
+ ideographic: int | str
761
+ imageRendering: int | str
762
+ in2: int | str
763
+ in_: str
764
+ intercept: int | str
765
+ k1: int | str
766
+ k2: int | str
767
+ k3: int | str
768
+ k4: int | str
769
+ k: int | str
770
+ kernelMatrix: int | str
771
+ kernelUnitLength: int | str
772
+ kerning: int | str
773
+ keyPoints: int | str
774
+ keySplines: int | str
775
+ keyTimes: int | str
776
+ lengthAdjust: int | str
777
+ letterSpacing: int | str
778
+ lightingColor: int | str
779
+ limitingConeAngle: int | str
780
+ local: int | str
781
+ markerEnd: str
782
+ markerHeight: int | str
783
+ markerMid: str
784
+ markerStart: str
785
+ markerUnits: int | str
786
+ markerWidth: int | str
787
+ mask: str
788
+ maskContentUnits: int | str
789
+ maskUnits: int | str
790
+ mathematical: int | str
791
+ mode: int | str
792
+ numOctaves: int | str
793
+ offset: int | str
794
+ opacity: int | str
795
+ operator: int | str
796
+ order: int | str
797
+ orient: int | str
798
+ orientation: int | str
799
+ origin: int | str
800
+ overflow: int | str
801
+ overlinePosition: int | str
802
+ overlineThickness: int | str
803
+ paintOrder: int | str
804
+ panose1: int | str
805
+ path: str
806
+ pathLength: int | str
807
+ patternContentUnits: str
808
+ patternTransform: int | str
809
+ patternUnits: str
810
+ pointerEvents: int | str
811
+ points: str
812
+ pointsAtX: int | str
813
+ pointsAtY: int | str
814
+ pointsAtZ: int | str
815
+ preserveAlpha: bool
816
+ preserveAspectRatio: str
817
+ primitiveUnits: int | str
818
+ r: int | str
819
+ radius: int | str
820
+ refX: int | str
821
+ refY: int | str
822
+ renderingIntent: int | str
823
+ repeatCount: int | str
824
+ repeatDur: int | str
825
+ requiredExtensions: int | str
826
+ requiredFeatures: int | str
827
+ restart: int | str
828
+ result: str
829
+ rotate: int | str
830
+ rx: int | str
831
+ ry: int | str
832
+ scale: int | str
833
+ seed: int | str
834
+ shapeRendering: int | str
835
+ slope: int | str
836
+ spacing: int | str
837
+ specularConstant: int | str
838
+ specularExponent: int | str
839
+ speed: int | str
840
+ spreadMethod: str
841
+ startOffset: int | str
842
+ stdDeviation: int | str
843
+ stemh: int | str
844
+ stemv: int | str
845
+ stitchTiles: int | str
846
+ stopColor: str
847
+ stopOpacity: int | str
848
+ strikethroughPosition: int | str
849
+ strikethroughThickness: int | str
850
+ string: int | str
851
+ stroke: str
852
+ strokeDasharray: int | str
853
+ strokeDashoffset: int | str
854
+ strokeLinecap: Literal["butt", "round", "square", "inherit"]
855
+ strokeLinejoin: Literal["miter", "round", "bevel", "inherit"]
856
+ strokeMiterlimit: int | str
857
+ strokeOpacity: int | str
858
+ strokeWidth: int | str
859
+ surfaceScale: int | str
860
+ systemLanguage: int | str
861
+ tableValues: int | str
862
+ targetX: int | str
863
+ targetY: int | str
864
+ textAnchor: str
865
+ textDecoration: int | str
866
+ textLength: int | str
867
+ textRendering: int | str
868
+ to: int | str
869
+ transform: str
870
+ u1: int | str
871
+ u2: int | str
872
+ underlinePosition: int | str
873
+ underlineThickness: int | str
874
+ unicode: int | str
875
+ unicodeBidi: int | str
876
+ unicodeRange: int | str
877
+ unitsPerEm: int | str
878
+ vAlphabetic: int | str
879
+ values: str
880
+ vectorEffect: int | str
881
+ version: str
882
+ vertAdvY: int | str
883
+ vertOriginX: int | str
884
+ vertOriginY: int | str
885
+ vHanging: int | str
886
+ vIdeographic: int | str
887
+ viewBox: str
888
+ viewTarget: int | str
889
+ visibility: int | str
890
+ vMathematical: int | str
891
+ widths: int | str
892
+ wordSpacing: int | str
893
+ writingMode: int | str
894
+ x1: int | str
895
+ x2: int | str
896
+ x: int | str
897
+ xChannelSelector: str
898
+ xHeight: int | str
899
+ xlinkActuate: str
900
+ xlinkArcrole: str
901
+ xlinkHref: str
902
+ xlinkRole: str
903
+ xlinkShow: str
904
+ xlinkTitle: str
905
+ xlinkType: str
906
+ xmlBase: str
907
+ xmlLang: str
908
+ xmlns: str
909
+ xmlnsXlink: str
910
+ xmlSpace: str
911
+ y1: int | str
912
+ y2: int | str
913
+ y: int | str
914
+ yChannelSelector: str
915
+ z: int | str
916
+ zoomAndPan: str
917
+
918
+
919
+ # Basic HTML element props that inherit from HTMLElementBase
920
+ class HTMLAbbrProps(BaseHTMLProps, DOMEvents[GenericHTMLElement], total=False):
921
+ pass
922
+
923
+
924
+ class HTMLAddressProps(BaseHTMLProps, DOMEvents[GenericHTMLElement], total=False):
925
+ pass
926
+
927
+
928
+ class HTMLArticleProps(BaseHTMLProps, DOMEvents[GenericHTMLElement], total=False):
929
+ pass
930
+
931
+
932
+ class HTMLAsideProps(BaseHTMLProps, DOMEvents[GenericHTMLElement], total=False):
933
+ pass
934
+
935
+
936
+ class HTMLBProps(BaseHTMLProps, DOMEvents[GenericHTMLElement], total=False):
937
+ pass
938
+
939
+
940
+ class HTMLBDIProps(BaseHTMLProps, DOMEvents[GenericHTMLElement], total=False):
941
+ pass
942
+
943
+
944
+ class HTMLBDOProps(BaseHTMLProps, DOMEvents[GenericHTMLElement], total=False):
945
+ pass
946
+
947
+
948
+ class HTMLBodyProps(BaseHTMLProps, DOMEvents[HTMLBodyElement], total=False):
949
+ pass
950
+
951
+
952
+ class HTMLCaptionProps(BaseHTMLProps, DOMEvents[HTMLTableCaptionElement], total=False):
953
+ pass
954
+
955
+
956
+ class HTMLCiteProps(BaseHTMLProps, DOMEvents[HTMLCiteElement], total=False):
957
+ pass
958
+
959
+
960
+ class HTMLCodeProps(BaseHTMLProps, DOMEvents[GenericHTMLElement], total=False):
961
+ pass
962
+
963
+
964
+ class HTMLDatalistProps(BaseHTMLProps, DOMEvents[GenericHTMLElement], total=False):
965
+ pass
966
+
967
+
968
+ class HTMLDDProps(BaseHTMLProps, DOMEvents[GenericHTMLElement], total=False):
969
+ pass
970
+
971
+
972
+ class HTMLDFNProps(BaseHTMLProps, DOMEvents[GenericHTMLElement], total=False):
973
+ pass
974
+
975
+
976
+ class HTMLDivProps(BaseHTMLProps, DOMEvents[HTMLDivElement], total=False):
977
+ pass
978
+
979
+
980
+ class HTMLDLProps(BaseHTMLProps, DOMEvents[HTMLDListElement], total=False):
981
+ pass
982
+
983
+
984
+ class HTMLDTProps(BaseHTMLProps, DOMEvents[GenericHTMLElement], total=False):
985
+ pass
986
+
987
+
988
+ class HTMLEMProps(BaseHTMLProps, DOMEvents[GenericHTMLElement], total=False):
989
+ pass
990
+
991
+
992
+ class HTMLFigcaptionProps(BaseHTMLProps, DOMEvents[GenericHTMLElement], total=False):
993
+ pass
994
+
995
+
996
+ class HTMLFigureProps(BaseHTMLProps, DOMEvents[GenericHTMLElement], total=False):
997
+ pass
998
+
999
+
1000
+ class HTMLFooterProps(BaseHTMLProps, DOMEvents[GenericHTMLElement], total=False):
1001
+ pass
1002
+
1003
+
1004
+ class HTMLH1Props(BaseHTMLProps, DOMEvents[HTMLHeadingElement], total=False):
1005
+ pass
1006
+
1007
+
1008
+ class HTMLH2Props(BaseHTMLProps, DOMEvents[HTMLHeadingElement], total=False):
1009
+ pass
1010
+
1011
+
1012
+ class HTMLH3Props(BaseHTMLProps, DOMEvents[HTMLHeadingElement], total=False):
1013
+ pass
1014
+
1015
+
1016
+ class HTMLH4Props(BaseHTMLProps, DOMEvents[HTMLHeadingElement], total=False):
1017
+ pass
1018
+
1019
+
1020
+ class HTMLH5Props(BaseHTMLProps, DOMEvents[HTMLHeadingElement], total=False):
1021
+ pass
1022
+
1023
+
1024
+ class HTMLH6Props(BaseHTMLProps, DOMEvents[HTMLHeadingElement], total=False):
1025
+ pass
1026
+
1027
+
1028
+ class HTMLHeadProps(BaseHTMLProps, DOMEvents[HTMLHeadElement], total=False):
1029
+ pass
1030
+
1031
+
1032
+ class HTMLHeaderProps(BaseHTMLProps, DOMEvents[GenericHTMLElement], total=False):
1033
+ pass
1034
+
1035
+
1036
+ class HTMLHgroupProps(BaseHTMLProps, DOMEvents[GenericHTMLElement], total=False):
1037
+ pass
1038
+
1039
+
1040
+ class HTMLIProps(BaseHTMLProps, DOMEvents[GenericHTMLElement], total=False):
1041
+ pass
1042
+
1043
+
1044
+ class HTMLKBDProps(BaseHTMLProps, DOMEvents[GenericHTMLElement], total=False):
1045
+ pass
1046
+
1047
+
1048
+ class HTMLLegendProps(BaseHTMLProps, DOMEvents[GenericHTMLElement], total=False):
1049
+ pass
1050
+
1051
+
1052
+ class HTMLMainProps(BaseHTMLProps, DOMEvents[GenericHTMLElement], total=False):
1053
+ pass
1054
+
1055
+
1056
+ class HTMLMarkProps(BaseHTMLProps, DOMEvents[GenericHTMLElement], total=False):
1057
+ pass
1058
+
1059
+
1060
+ class HTMLNavProps(BaseHTMLProps, DOMEvents[GenericHTMLElement], total=False):
1061
+ pass
1062
+
1063
+
1064
+ class HTMLNoscriptProps(BaseHTMLProps, DOMEvents[GenericHTMLElement], total=False):
1065
+ pass
1066
+
1067
+
1068
+ class HTMLPProps(BaseHTMLProps, DOMEvents[HTMLParagraphElement], total=False):
1069
+ pass
1070
+
1071
+
1072
+ class HTMLPictureProps(BaseHTMLProps, DOMEvents[HTMLPictureElement], total=False):
1073
+ pass
1074
+
1075
+
1076
+ class HTMLPreProps(BaseHTMLProps, DOMEvents[HTMLPreElement], total=False):
1077
+ pass
1078
+
1079
+
1080
+ class HTMLQProps(BaseHTMLProps, DOMEvents[GenericHTMLElement], total=False):
1081
+ pass
1082
+
1083
+
1084
+ class HTMLRPProps(BaseHTMLProps, DOMEvents[GenericHTMLElement], total=False):
1085
+ pass
1086
+
1087
+
1088
+ class HTMLRTProps(BaseHTMLProps, DOMEvents[GenericHTMLElement], total=False):
1089
+ pass
1090
+
1091
+
1092
+ class HTMLRubyProps(BaseHTMLProps, DOMEvents[GenericHTMLElement], total=False):
1093
+ pass
1094
+
1095
+
1096
+ class HTMLSProps(BaseHTMLProps, DOMEvents[GenericHTMLElement], total=False):
1097
+ pass
1098
+
1099
+
1100
+ class HTMLSampProps(BaseHTMLProps, DOMEvents[GenericHTMLElement], total=False):
1101
+ pass
1102
+
1103
+
1104
+ class HTMLSectionProps(BaseHTMLProps, DOMEvents[GenericHTMLElement], total=False):
1105
+ pass
1106
+
1107
+
1108
+ class HTMLSmallProps(BaseHTMLProps, DOMEvents[GenericHTMLElement], total=False):
1109
+ pass
1110
+
1111
+
1112
+ class HTMLSpanProps(BaseHTMLProps, DOMEvents[HTMLSpanElement], total=False):
1113
+ pass
1114
+
1115
+
1116
+ class HTMLStrongProps(BaseHTMLProps, DOMEvents[GenericHTMLElement], total=False):
1117
+ pass
1118
+
1119
+
1120
+ class HTMLSubProps(BaseHTMLProps, DOMEvents[GenericHTMLElement], total=False):
1121
+ pass
1122
+
1123
+
1124
+ class HTMLSummaryProps(BaseHTMLProps, DOMEvents[GenericHTMLElement], total=False):
1125
+ pass
1126
+
1127
+
1128
+ class HTMLSupProps(BaseHTMLProps, DOMEvents[GenericHTMLElement], total=False):
1129
+ pass
1130
+
1131
+
1132
+ class HTMLTBODYProps(BaseHTMLProps, DOMEvents[HTMLTableSectionElement], total=False):
1133
+ pass
1134
+
1135
+
1136
+ class HTMLTemplateProps(BaseHTMLProps, DOMEvents[HTMLTemplateElement], total=False):
1137
+ pass
1138
+
1139
+
1140
+ class HTMLTitleProps(BaseHTMLProps, DOMEvents[HTMLTitleElement], total=False):
1141
+ pass
1142
+
1143
+
1144
+ class HTMLUProps(BaseHTMLProps, DOMEvents[GenericHTMLElement], total=False):
1145
+ pass
1146
+
1147
+
1148
+ class HTMLULProps(BaseHTMLProps, DOMEvents[HTMLUListElement], total=False):
1149
+ pass
1150
+
1151
+
1152
+ class HTMLVarProps(BaseHTMLProps, DOMEvents[GenericHTMLElement], total=False):
1153
+ pass
1154
+
1155
+
1156
+ # Self-closing elements
1157
+ class HTMLBRProps(BaseHTMLProps, DOMEvents[HTMLBRElement], total=False):
1158
+ pass
1159
+
1160
+
1161
+ class HTMLHRProps(BaseHTMLProps, DOMEvents[HTMLHRElement], total=False):
1162
+ pass
1163
+
1164
+
1165
+ class HTMLWBRProps(BaseHTMLProps, DOMEvents[GenericHTMLElement], total=False):
1166
+ pass
1167
+
1168
+
1169
+ # Fragment and SVG elements
1170
+ class HTMLFragmentProps(BaseHTMLProps, DOMEvents[GenericHTMLElement], total=False):
1171
+ pass
1172
+
1173
+
1174
+ class HTMLCircleProps(BaseHTMLProps, DOMEvents[GenericHTMLElement], total=False):
1175
+ pass
1176
+
1177
+
1178
+ class HTMLEllipseProps(BaseHTMLProps, DOMEvents[GenericHTMLElement], total=False):
1179
+ pass
1180
+
1181
+
1182
+ class HTMLGProps(BaseHTMLProps, DOMEvents[GenericHTMLElement], total=False):
1183
+ pass
1184
+
1185
+
1186
+ class HTMLLineProps(BaseHTMLProps, DOMEvents[GenericHTMLElement], total=False):
1187
+ pass
1188
+
1189
+
1190
+ class HTMLPathProps(BaseHTMLProps, DOMEvents[GenericHTMLElement], total=False):
1191
+ pass
1192
+
1193
+
1194
+ class HTMLPolygonProps(BaseHTMLProps, DOMEvents[GenericHTMLElement], total=False):
1195
+ pass
1196
+
1197
+
1198
+ class HTMLPolylineProps(BaseHTMLProps, DOMEvents[GenericHTMLElement], total=False):
1199
+ pass
1200
+
1201
+
1202
+ class HTMLRectProps(BaseHTMLProps, DOMEvents[GenericHTMLElement], total=False):
1203
+ pass
1204
+
1205
+
1206
+ class HTMLTextProps(BaseHTMLProps, DOMEvents[GenericHTMLElement], total=False):
1207
+ pass
1208
+
1209
+
1210
+ class HTMLTspanProps(BaseHTMLProps, DOMEvents[GenericHTMLElement], total=False):
1211
+ pass
1212
+
1213
+
1214
+ class HTMLDefsProps(BaseHTMLProps, DOMEvents[GenericHTMLElement], total=False):
1215
+ pass
1216
+
1217
+
1218
+ class HTMLClipPathProps(BaseHTMLProps, DOMEvents[GenericHTMLElement], total=False):
1219
+ pass
1220
+
1221
+
1222
+ class HTMLMaskProps(BaseHTMLProps, DOMEvents[GenericHTMLElement], total=False):
1223
+ pass
1224
+
1225
+
1226
+ class HTMLPatternProps(BaseHTMLProps, DOMEvents[GenericHTMLElement], total=False):
1227
+ pass
1228
+
1229
+
1230
+ class HTMLUseProps(BaseHTMLProps, DOMEvents[GenericHTMLElement], total=False):
1231
+ pass
1232
+
1233
+
1234
+ class WebViewAttributes(BaseHTMLProps):
1235
+ allowFullScreen: bool
1236
+ allowpopups: bool
1237
+ autosize: bool
1238
+ blinkfeatures: str
1239
+ disableblinkfeatures: str
1240
+ disableguestresize: bool
1241
+ disablewebsecurity: bool
1242
+ guestinstance: str
1243
+ httpreferrer: str
1244
+ nodeintegration: bool
1245
+ partition: str
1246
+ plugins: bool
1247
+ preload: str
1248
+ src: str
1249
+ useragent: str
1250
+ webpreferences: str