jsx.d.ts 136 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363
  1. /**
  2. * Based on JSX types for Surplus and Inferno and adapted for `dom-expressions`.
  3. *
  4. * https://github.com/adamhaile/surplus/blob/master/index.d.ts
  5. * https://github.com/infernojs/inferno/blob/master/packages/inferno/src/core/types.ts
  6. */
  7. type DOMElement = Element;
  8. export namespace JSX {
  9. type Element =
  10. | Node
  11. | ArrayElement
  12. | FunctionElement
  13. | string
  14. | number
  15. | boolean
  16. | null
  17. | undefined;
  18. interface ArrayElement extends Array<Element> {}
  19. interface FunctionElement {
  20. (): Element;
  21. }
  22. interface ElementClass {
  23. render(props: any): Element;
  24. }
  25. type LibraryManagedAttributes<Component, Props> = Props;
  26. interface ElementChildrenAttribute {
  27. children: {};
  28. }
  29. interface EventHandler<T, E extends Event> {
  30. (
  31. e: E & {
  32. currentTarget: T;
  33. target: DOMElement;
  34. }
  35. ): void;
  36. }
  37. interface BoundEventHandler<T, E extends Event> {
  38. 0: (
  39. data: any,
  40. e: E & {
  41. currentTarget: T;
  42. target: DOMElement;
  43. }
  44. ) => void;
  45. 1: any;
  46. }
  47. type EventHandlerUnion<T, E extends Event> = EventHandler<T, E> | BoundEventHandler<T, E>;
  48. interface IntrinsicAttributes {
  49. ref?: unknown | ((e: unknown) => void);
  50. }
  51. interface CustomAttributes<T> {
  52. ref?: T | ((el: T) => void);
  53. classList?: {
  54. [k: string]: boolean | undefined;
  55. };
  56. }
  57. interface Directives {}
  58. interface ExplicitProperties {}
  59. interface ExplicitAttributes {}
  60. interface CustomEvents {}
  61. interface CustomCaptureEvents {}
  62. type DirectiveAttributes = {
  63. [Key in keyof Directives as `use:${Key}`]?: Directives[Key];
  64. };
  65. type PropAttributes = {
  66. [Key in keyof ExplicitProperties as `prop:${Key}`]?: ExplicitProperties[Key];
  67. };
  68. type AttrAttributes = {
  69. [Key in keyof ExplicitAttributes as `attr:${Key}`]?: ExplicitAttributes[Key];
  70. };
  71. type OnAttributes<T> = {
  72. [Key in keyof CustomEvents as `on:${Key}`]?: EventHandler<T, CustomEvents[Key]>;
  73. }
  74. type OnCaptureAttributes<T> = {
  75. [Key in keyof CustomEvents as `oncapture:${Key}`]?: EventHandler<T, CustomEvents[Key]>;
  76. }
  77. interface DOMAttributes<T> extends CustomAttributes<T>, DirectiveAttributes, PropAttributes, AttrAttributes, OnAttributes<T>, OnCaptureAttributes<T> {
  78. children?: Element;
  79. innerHTML?: string;
  80. innerText?: string;
  81. textContent?: string;
  82. onCopy?: EventHandlerUnion<T, ClipboardEvent>;
  83. onCut?: EventHandlerUnion<T, ClipboardEvent>;
  84. onPaste?: EventHandlerUnion<T, ClipboardEvent>;
  85. onCompositionEnd?: EventHandlerUnion<T, CompositionEvent>;
  86. onCompositionStart?: EventHandlerUnion<T, CompositionEvent>;
  87. onCompositionUpdate?: EventHandlerUnion<T, CompositionEvent>;
  88. onFocus?: EventHandlerUnion<T, FocusEvent>;
  89. onFocusOut?: EventHandlerUnion<T, FocusEvent>;
  90. onFocusIn?: EventHandlerUnion<T, FocusEvent>;
  91. onBlur?: EventHandlerUnion<T, FocusEvent>;
  92. onChange?: EventHandlerUnion<T, Event>;
  93. onInput?: EventHandlerUnion<T, InputEvent>;
  94. onReset?: EventHandlerUnion<T, Event>;
  95. onSubmit?: EventHandlerUnion<
  96. T,
  97. Event & {
  98. submitter: HTMLElement;
  99. }
  100. >;
  101. onLoad?: EventHandlerUnion<T, Event>;
  102. onError?: EventHandlerUnion<T, Event>;
  103. onKeyDown?: EventHandlerUnion<T, KeyboardEvent>;
  104. onKeyPress?: EventHandlerUnion<T, KeyboardEvent>;
  105. onKeyUp?: EventHandlerUnion<T, KeyboardEvent>;
  106. onGotPointerCapture?: EventHandlerUnion<T, PointerEvent>;
  107. onLostPointerCapture?: EventHandlerUnion<T, PointerEvent>;
  108. onPointerCancel?: EventHandlerUnion<T, PointerEvent>;
  109. onPointerDown?: EventHandlerUnion<T, PointerEvent>;
  110. onPointerEnter?: EventHandlerUnion<T, PointerEvent>;
  111. onPointerLeave?: EventHandlerUnion<T, PointerEvent>;
  112. onPointerMove?: EventHandlerUnion<T, PointerEvent>;
  113. onPointerOver?: EventHandlerUnion<T, PointerEvent>;
  114. onPointerOut?: EventHandlerUnion<T, PointerEvent>;
  115. onPointerUp?: EventHandlerUnion<T, PointerEvent>;
  116. onAbort?: EventHandlerUnion<T, Event>;
  117. onCanPlay?: EventHandlerUnion<T, Event>;
  118. onCanPlayThrough?: EventHandlerUnion<T, Event>;
  119. onDurationChange?: EventHandlerUnion<T, Event>;
  120. onEmptied?: EventHandlerUnion<T, Event>;
  121. onEncrypted?: EventHandlerUnion<T, Event>;
  122. onEnded?: EventHandlerUnion<T, Event>;
  123. onLoadedData?: EventHandlerUnion<T, Event>;
  124. onLoadedMetadata?: EventHandlerUnion<T, Event>;
  125. onLoadStart?: EventHandlerUnion<T, Event>;
  126. onPause?: EventHandlerUnion<T, Event>;
  127. onPlay?: EventHandlerUnion<T, Event>;
  128. onPlaying?: EventHandlerUnion<T, Event>;
  129. onProgress?: EventHandlerUnion<T, Event>;
  130. onRateChange?: EventHandlerUnion<T, Event>;
  131. onSeeked?: EventHandlerUnion<T, Event>;
  132. onSeeking?: EventHandlerUnion<T, Event>;
  133. onStalled?: EventHandlerUnion<T, Event>;
  134. onSuspend?: EventHandlerUnion<T, Event>;
  135. onTimeUpdate?: EventHandlerUnion<T, Event>;
  136. onVolumeChange?: EventHandlerUnion<T, Event>;
  137. onWaiting?: EventHandlerUnion<T, Event>;
  138. onClick?: EventHandlerUnion<T, MouseEvent>;
  139. onContextMenu?: EventHandlerUnion<T, MouseEvent>;
  140. onDblClick?: EventHandlerUnion<T, MouseEvent>;
  141. onDrag?: EventHandlerUnion<T, DragEvent>;
  142. onDragEnd?: EventHandlerUnion<T, DragEvent>;
  143. onDragEnter?: EventHandlerUnion<T, DragEvent>;
  144. onDragExit?: EventHandlerUnion<T, DragEvent>;
  145. onDragLeave?: EventHandlerUnion<T, DragEvent>;
  146. onDragOver?: EventHandlerUnion<T, DragEvent>;
  147. onDragStart?: EventHandlerUnion<T, DragEvent>;
  148. onDrop?: EventHandlerUnion<T, DragEvent>;
  149. onMouseDown?: EventHandlerUnion<T, MouseEvent>;
  150. onMouseEnter?: EventHandlerUnion<T, MouseEvent>;
  151. onMouseLeave?: EventHandlerUnion<T, MouseEvent>;
  152. onMouseMove?: EventHandlerUnion<T, MouseEvent>;
  153. onMouseOut?: EventHandlerUnion<T, MouseEvent>;
  154. onMouseOver?: EventHandlerUnion<T, MouseEvent>;
  155. onMouseUp?: EventHandlerUnion<T, MouseEvent>;
  156. onSelect?: EventHandlerUnion<T, UIEvent>;
  157. onTouchCancel?: EventHandlerUnion<T, TouchEvent>;
  158. onTouchEnd?: EventHandlerUnion<T, TouchEvent>;
  159. onTouchMove?: EventHandlerUnion<T, TouchEvent>;
  160. onTouchStart?: EventHandlerUnion<T, TouchEvent>;
  161. onScroll?: EventHandlerUnion<T, UIEvent>;
  162. onWheel?: EventHandlerUnion<T, WheelEvent>;
  163. onAnimationStart?: EventHandlerUnion<T, AnimationEvent>;
  164. onAnimationEnd?: EventHandlerUnion<T, AnimationEvent>;
  165. onAnimationIteration?: EventHandlerUnion<T, AnimationEvent>;
  166. onTransitionEnd?: EventHandlerUnion<T, TransitionEvent>;
  167. // lower case events
  168. oncopy?: EventHandlerUnion<T, ClipboardEvent>;
  169. oncut?: EventHandlerUnion<T, ClipboardEvent>;
  170. onpaste?: EventHandlerUnion<T, ClipboardEvent>;
  171. oncompositionend?: EventHandlerUnion<T, CompositionEvent>;
  172. oncompositionstart?: EventHandlerUnion<T, CompositionEvent>;
  173. oncompositionupdate?: EventHandlerUnion<T, CompositionEvent>;
  174. onfocus?: EventHandlerUnion<T, FocusEvent>;
  175. onfocusout?: EventHandlerUnion<T, FocusEvent>;
  176. onfocusin?: EventHandlerUnion<T, FocusEvent>;
  177. onblur?: EventHandlerUnion<T, FocusEvent>;
  178. onchange?: EventHandlerUnion<T, Event>;
  179. oninput?: EventHandlerUnion<T, InputEvent>;
  180. onreset?: EventHandlerUnion<T, Event>;
  181. onsubmit?: EventHandlerUnion<
  182. T,
  183. Event & {
  184. submitter: HTMLElement;
  185. }
  186. >;
  187. onload?: EventHandlerUnion<T, Event>;
  188. onerror?: EventHandlerUnion<T, Event>;
  189. onkeydown?: EventHandlerUnion<T, KeyboardEvent>;
  190. onkeypress?: EventHandlerUnion<T, KeyboardEvent>;
  191. onkeyup?: EventHandlerUnion<T, KeyboardEvent>;
  192. ongotpointercapture?: EventHandlerUnion<T, PointerEvent>;
  193. onlostpointercapture?: EventHandlerUnion<T, PointerEvent>;
  194. onpointercancel?: EventHandlerUnion<T, PointerEvent>;
  195. onpointerdown?: EventHandlerUnion<T, PointerEvent>;
  196. onpointerenter?: EventHandlerUnion<T, PointerEvent>;
  197. onpointerleave?: EventHandlerUnion<T, PointerEvent>;
  198. onpointermove?: EventHandlerUnion<T, PointerEvent>;
  199. onpointerover?: EventHandlerUnion<T, PointerEvent>;
  200. onpointerout?: EventHandlerUnion<T, PointerEvent>;
  201. onpointerup?: EventHandlerUnion<T, PointerEvent>;
  202. onabort?: EventHandlerUnion<T, Event>;
  203. oncanplay?: EventHandlerUnion<T, Event>;
  204. oncanplaythrough?: EventHandlerUnion<T, Event>;
  205. ondurationchange?: EventHandlerUnion<T, Event>;
  206. onemptied?: EventHandlerUnion<T, Event>;
  207. onencrypted?: EventHandlerUnion<T, Event>;
  208. onended?: EventHandlerUnion<T, Event>;
  209. onloadeddata?: EventHandlerUnion<T, Event>;
  210. onloadedmetadata?: EventHandlerUnion<T, Event>;
  211. onloadstart?: EventHandlerUnion<T, Event>;
  212. onpause?: EventHandlerUnion<T, Event>;
  213. onplay?: EventHandlerUnion<T, Event>;
  214. onplaying?: EventHandlerUnion<T, Event>;
  215. onprogress?: EventHandlerUnion<T, Event>;
  216. onratechange?: EventHandlerUnion<T, Event>;
  217. onseeked?: EventHandlerUnion<T, Event>;
  218. onseeking?: EventHandlerUnion<T, Event>;
  219. onstalled?: EventHandlerUnion<T, Event>;
  220. onsuspend?: EventHandlerUnion<T, Event>;
  221. ontimeupdate?: EventHandlerUnion<T, Event>;
  222. onvolumechange?: EventHandlerUnion<T, Event>;
  223. onwaiting?: EventHandlerUnion<T, Event>;
  224. onclick?: EventHandlerUnion<T, MouseEvent>;
  225. oncontextmenu?: EventHandlerUnion<T, MouseEvent>;
  226. ondblclick?: EventHandlerUnion<T, MouseEvent>;
  227. ondrag?: EventHandlerUnion<T, DragEvent>;
  228. ondragend?: EventHandlerUnion<T, DragEvent>;
  229. ondragenter?: EventHandlerUnion<T, DragEvent>;
  230. ondragexit?: EventHandlerUnion<T, DragEvent>;
  231. ondragleave?: EventHandlerUnion<T, DragEvent>;
  232. ondragover?: EventHandlerUnion<T, DragEvent>;
  233. ondragstart?: EventHandlerUnion<T, DragEvent>;
  234. ondrop?: EventHandlerUnion<T, DragEvent>;
  235. onmousedown?: EventHandlerUnion<T, MouseEvent>;
  236. onmouseenter?: EventHandlerUnion<T, MouseEvent>;
  237. onmouseleave?: EventHandlerUnion<T, MouseEvent>;
  238. onmousemove?: EventHandlerUnion<T, MouseEvent>;
  239. onmouseout?: EventHandlerUnion<T, MouseEvent>;
  240. onmouseover?: EventHandlerUnion<T, MouseEvent>;
  241. onmouseup?: EventHandlerUnion<T, MouseEvent>;
  242. onselect?: EventHandlerUnion<T, UIEvent>;
  243. ontouchcancel?: EventHandlerUnion<T, TouchEvent>;
  244. ontouchend?: EventHandlerUnion<T, TouchEvent>;
  245. ontouchmove?: EventHandlerUnion<T, TouchEvent>;
  246. ontouchstart?: EventHandlerUnion<T, TouchEvent>;
  247. onscroll?: EventHandlerUnion<T, UIEvent>;
  248. onwheel?: EventHandlerUnion<T, WheelEvent>;
  249. onanimationstart?: EventHandlerUnion<T, AnimationEvent>;
  250. onanimationend?: EventHandlerUnion<T, AnimationEvent>;
  251. onanimationiteration?: EventHandlerUnion<T, AnimationEvent>;
  252. ontransitionend?: EventHandlerUnion<T, TransitionEvent>;
  253. }
  254. type CSSWideKeyword = "initial" | "inherit" | "unset";
  255. type CSSPercentage = string;
  256. type CSSLength = number | string;
  257. interface CSSProperties {
  258. /**
  259. * Aligns a flex container's lines within the flex container when there is extra space in the cross-axis, similar to how justify-content aligns individual items within the main-axis.
  260. */
  261. "align-content"?:
  262. | CSSWideKeyword
  263. | "flex-start"
  264. | "flex-end"
  265. | "center"
  266. | "space-between"
  267. | "space-around"
  268. | "stretch";
  269. /**
  270. * Sets the default alignment in the cross axis for all of the flex container's items, including anonymous flex items, similarly to how justify-content aligns items along the main axis.
  271. */
  272. "align-items"?: CSSWideKeyword | "flex-start" | "flex-end" | "center" | "baseline" | "stretch";
  273. /**
  274. * Allows the default alignment to be overridden for individual flex items.
  275. */
  276. "align-self"?:
  277. | CSSWideKeyword
  278. | "auto"
  279. | "flex-start"
  280. | "flex-end"
  281. | "center"
  282. | "baseline"
  283. | "stretch";
  284. /**
  285. * This property allows precise alignment of elements, such as graphics,
  286. * that do not have a baseline-table or lack the desired baseline in their baseline-table.
  287. * With the alignment-adjust property, the position of the baseline identified by the alignment-baseline
  288. * can be explicitly determined. It also determines precisely the alignment point for each glyph within a textual element.
  289. */
  290. "alignment-adjust"?: CSSWideKeyword | any;
  291. "alignment-baseline"?: CSSWideKeyword | any;
  292. /**
  293. * Defines a length of time to elapse before an animation starts, allowing an animation to begin execution some time after it is applied.
  294. */
  295. "animation-delay"?: CSSWideKeyword | any;
  296. /**
  297. * Defines whether an animation should run in reverse on some or all cycles.
  298. */
  299. "animation-direction"?: CSSWideKeyword | any;
  300. /**
  301. * Defines how long an animation runs for.
  302. */
  303. "animation-duration"?: CSSWideKeyword | any;
  304. /**
  305. * Specifies how many times an animation cycle should play.
  306. */
  307. "animation-iteration-count"?: CSSWideKeyword | any;
  308. /**
  309. * Defines the list of animations that apply to the element.
  310. */
  311. "animation-name"?: CSSWideKeyword | any;
  312. /**
  313. * Defines whether an animation is running or paused.
  314. */
  315. "animation-play-state"?: CSSWideKeyword | any;
  316. /**
  317. * Allows changing the style of any element to platform-based interface elements or vice versa.
  318. */
  319. appearance?: CSSWideKeyword | any;
  320. /**
  321. * Determines whether or not the “back” side of a transformed element is visible when facing the viewer.
  322. */
  323. "backface-visibility"?: CSSWideKeyword | any;
  324. /**
  325. * Shorthand property to set the values for one or more of:
  326. * background-clip, background-color, background-image,
  327. * background-origin, background-position, background-repeat,
  328. * background-size, and background-attachment.
  329. */
  330. background?: CSSWideKeyword | any;
  331. /**
  332. * If a background-image is specified, this property determines
  333. * whether that image's position is fixed within the viewport,
  334. * or scrolls along with its containing block.
  335. * See CSS 3 background-attachment property https://drafts.csswg.org/css-backgrounds-3/#the-background-attachment
  336. */
  337. "background-attachment"?: CSSWideKeyword | "scroll" | "fixed" | "local";
  338. /**
  339. * This property describes how the element's background images should blend with each other and the element's background color.
  340. * The value is a list of blend modes that corresponds to each background image. Each element in the list will apply to the
  341. * corresponding element of background-image. If a property doesn’t have enough comma-separated values to match the number of layers,
  342. * the UA must calculate its used value by repeating the list of values until there are enough.
  343. */
  344. "background-blend-mode"?: CSSWideKeyword | any;
  345. /**
  346. * Sets the background color of an element.
  347. */
  348. "background-color"?: CSSWideKeyword | any;
  349. "background-composite"?: CSSWideKeyword | any;
  350. /**
  351. * Applies one or more background images to an element. These can be any valid CSS image, including url() paths to image files or CSS gradients.
  352. */
  353. "background-image"?: CSSWideKeyword | any;
  354. /**
  355. * Specifies what the background-position property is relative to.
  356. */
  357. "background-origin"?: CSSWideKeyword | any;
  358. /**
  359. * Sets the position of a background image.
  360. */
  361. "background-position"?: CSSWideKeyword | any;
  362. /**
  363. * Background-repeat defines if and how background images will be repeated after they have been sized and positioned
  364. */
  365. "background-repeat"?: CSSWideKeyword | any;
  366. /**
  367. * Defines the size of the background images
  368. */
  369. "background-size"?: CSSWideKeyword | any;
  370. /**
  371. * Obsolete - spec retired, not implemented.
  372. */
  373. "baseline-shift"?: CSSWideKeyword | any;
  374. /**
  375. * Non standard. Sets or retrieves the location of the Dynamic HTML (DHTML) behavior.
  376. */
  377. behavior?: CSSWideKeyword | any;
  378. /**
  379. * Shorthand property that defines the different properties of all four sides of an element's border in a single declaration.
  380. * It can be used to set border-width, border-style and border-color, or a subset of these.
  381. */
  382. border?: CSSWideKeyword | any;
  383. /**
  384. * Shorthand that sets the values of border-bottom-color,
  385. * border-bottom-style, and border-bottom-width.
  386. */
  387. "border-bottom"?: CSSWideKeyword | any;
  388. /**
  389. * Sets the color of the bottom border of an element.
  390. */
  391. "border-bottom-color"?: CSSWideKeyword | any;
  392. /**
  393. * Defines the shape of the border of the bottom-left corner.
  394. */
  395. "border-bottom-left-radius"?: CSSWideKeyword | CSSLength;
  396. /**
  397. * Defines the shape of the border of the bottom-right corner.
  398. */
  399. "border-bottom-right-radius"?: CSSWideKeyword | CSSLength;
  400. /**
  401. * Sets the line style of the bottom border of a box.
  402. */
  403. "border-bottom-style"?: CSSWideKeyword | any;
  404. /**
  405. * Sets the width of an element's bottom border. To set all four borders,
  406. * use the border-width shorthand property which sets the values simultaneously for border-top-width,
  407. * border-right-width, border-bottom-width, and border-left-width.
  408. */
  409. "border-bottom-width"?: CSSWideKeyword | any;
  410. /**
  411. * Border-collapse can be used for collapsing the borders between table cells
  412. */
  413. "border-collapse"?: CSSWideKeyword | any;
  414. /**
  415. * The CSS border-color property sets the color of an element's four borders.
  416. * This property can have from one to four values, made up of the elementary properties:
  417. * • border-top-color
  418. * • border-right-color
  419. * • border-bottom-color
  420. * • border-left-color The default color is the currentColor of each of these values.
  421. * If you provide one value, it sets the color for the element. Two values set the horizontal and vertical values,
  422. * respectively. Providing three values sets the top, vertical, and bottom values, in that order.
  423. * Four values set all for sides: top, right, bottom, and left, in that order.
  424. */
  425. "border-color"?: CSSWideKeyword | any;
  426. /**
  427. * Specifies different corner clipping effects, such as scoop (inner curves), bevel (straight cuts) or notch (cut-off rectangles).
  428. * Works along with border-radius to specify the size of each corner effect.
  429. */
  430. "border-corner-shape"?: CSSWideKeyword | any;
  431. /**
  432. * The property border-image-source is used to set the image to be used instead of the border style.
  433. * If this is set to none the border-style is used instead.
  434. */
  435. "border-image-source"?: CSSWideKeyword | any;
  436. /**
  437. * The border-image-width CSS property defines the offset to use for dividing the border image in nine parts,
  438. * the top-left corner, central top edge, top-right-corner, central right edge, bottom-right corner, central bottom edge,
  439. * bottom-left corner, and central right edge. They represent inward distance from the top, right, bottom, and left edges.
  440. */
  441. "border-image-width"?: CSSWideKeyword | any;
  442. /**
  443. * Shorthand property that defines the border-width, border-style and border-color of an element's left border in a single declaration.
  444. * Note that you can use the corresponding longhand properties to set specific individual properties of the left border — border-left-width,
  445. * border-left-style and border-left-color.
  446. */
  447. "border-left"?: CSSWideKeyword | any;
  448. /**
  449. * The CSS border-left-color property sets the color of an element's left border. This page explains the border-left-color value,
  450. * but often you will find it more convenient to fix the border's left color as part of a shorthand set, either border-left or border-color.
  451. * Colors can be defined several ways. For more information, see Usage.
  452. */
  453. "border-left-color"?: CSSWideKeyword | any;
  454. /**
  455. * Sets the style of an element's left border. To set all four borders, use the shorthand property, border-style.
  456. * Otherwise, you can set the borders individually with border-top-style, border-right-style, border-bottom-style, border-left-style.
  457. */
  458. "border-left-style"?: CSSWideKeyword | any;
  459. /**
  460. * Sets the width of an element's left border. To set all four borders,
  461. * use the border-width shorthand property which sets the values simultaneously for border-top-width,
  462. * border-right-width, border-bottom-width, and border-left-width.
  463. */
  464. "border-left-width"?: CSSWideKeyword | any;
  465. /**
  466. * Shorthand property that sets the rounding of all four corners.
  467. */
  468. "border-radius"?: CSSWideKeyword | CSSLength;
  469. /**
  470. * Shorthand property that defines the border-width, border-style and border-color of an element's right border
  471. * in a single declaration. Note that you can use the corresponding longhand properties to set specific
  472. * individual properties of the right border — border-right-width, border-right-style and border-right-color.
  473. */
  474. "border-right"?: CSSWideKeyword | any;
  475. /**
  476. * Sets the color of an element's right border. This page explains the border-right-color value,
  477. * but often you will find it more convenient to fix the border's right color as part of a shorthand set,
  478. * either border-right or border-color.
  479. * Colors can be defined several ways. For more information, see Usage.
  480. */
  481. "border-right-color"?: CSSWideKeyword | any;
  482. /**
  483. * Sets the style of an element's right border. To set all four borders, use the shorthand property,
  484. * border-style. Otherwise, you can set the borders individually with border-top-style, border-right-style,
  485. * border-bottom-style, border-left-style.
  486. */
  487. "border-right-style"?: CSSWideKeyword | any;
  488. /**
  489. * Sets the width of an element's right border. To set all four borders,
  490. * use the border-width shorthand property which sets the values simultaneously for border-top-width,
  491. * border-right-width, border-bottom-width, and border-left-width.
  492. */
  493. "border-right-width"?: CSSWideKeyword | any;
  494. /**
  495. * Specifies the distance between the borders of adjacent cells.
  496. */
  497. "border-spacing"?: CSSWideKeyword | any;
  498. /**
  499. * Sets the style of an element's four borders. This property can have from one to four values.
  500. * With only one value, the value will be applied to all four borders;
  501. * otherwise, this works as a shorthand property for each of border-top-style, border-right-style,
  502. * border-bottom-style, border-left-style, where each border style may be assigned a separate value.
  503. */
  504. "border-style"?: CSSWideKeyword | any;
  505. /**
  506. * Shorthand property that defines the border-width, border-style and border-color of an element's top border
  507. * in a single declaration. Note that you can use the corresponding longhand properties to set specific
  508. * individual properties of the top border — border-top-width, border-top-style and border-top-color.
  509. */
  510. "border-top"?: CSSWideKeyword | any;
  511. /**
  512. * Sets the color of an element's top border. This page explains the border-top-color value,
  513. * but often you will find it more convenient to fix the border's top color as part of a shorthand set,
  514. * either border-top or border-color.
  515. * Colors can be defined several ways. For more information, see Usage.
  516. */
  517. "border-top-color"?: CSSWideKeyword | any;
  518. /**
  519. * Sets the rounding of the top-left corner of the element.
  520. */
  521. "border-top-left-radius"?: CSSWideKeyword | CSSLength;
  522. /**
  523. * Sets the rounding of the top-right corner of the element.
  524. */
  525. "border-top-right-radius"?: CSSWideKeyword | CSSLength;
  526. /**
  527. * Sets the style of an element's top border. To set all four borders, use the shorthand property, border-style.
  528. * Otherwise, you can set the borders individually with border-top-style, border-right-style, border-bottom-style, border-left-style.
  529. */
  530. "border-top-style"?: CSSWideKeyword | any;
  531. /**
  532. * Sets the width of an element's top border. To set all four borders,
  533. * use the border-width shorthand property which sets the values simultaneously for border-top-width,
  534. * border-right-width, border-bottom-width, and border-left-width.
  535. */
  536. "border-top-width"?: CSSWideKeyword | any;
  537. /**
  538. * Sets the width of an element's four borders. This property can have from one to four values.
  539. * This is a shorthand property for setting values simultaneously for border-top-width,
  540. * border-right-width, border-bottom-width, and border-left-width.
  541. */
  542. "border-width"?: CSSWideKeyword | any;
  543. /**
  544. * This property specifies how far an absolutely positioned box's bottom margin edge
  545. * is offset above the bottom edge of the box's containing block. For relatively positioned boxes,
  546. * the offset is with respect to the bottom edges of the box itself
  547. * (i.e., the box is given a position in the normal flow, then offset from that position according to these properties).
  548. */
  549. bottom?: CSSWideKeyword | any;
  550. /**
  551. * Obsolete.
  552. */
  553. "box-align"?: CSSWideKeyword | any;
  554. /**
  555. * Breaks a box into fragments creating new borders,
  556. * padding and repeating backgrounds or lets it stay as a continuous box on a page break,
  557. * column break, or, for inline elements, at a line break.
  558. */
  559. "box-decoration-break"?: CSSWideKeyword | any;
  560. /**
  561. * Deprecated
  562. */
  563. "box-direction"?: CSSWideKeyword | any;
  564. /**
  565. * Do not use. This property has been replaced by the flex-wrap property.
  566. * Gets or sets a value that specifies the direction to add successive rows or columns when the value of box-lines is set to multiple.
  567. */
  568. "box-line-progression"?: CSSWideKeyword | any;
  569. /**
  570. * Do not use. This property has been replaced by the flex-wrap property.
  571. * Gets or sets a value that specifies whether child elements wrap onto multiple lines or columns based on the space available in the object.
  572. */
  573. "box-lines"?: CSSWideKeyword | any;
  574. /**
  575. * Do not use. This property has been replaced by flex-order.
  576. * Specifies the ordinal group that a child element of the object belongs to.
  577. * This ordinal value identifies the display order (along the axis defined by the box-orient property) for the group.
  578. */
  579. "box-ordinal-group"?: CSSWideKeyword | any;
  580. /**
  581. * Deprecated.
  582. */
  583. "box-flex"?: CSSWideKeyword | number;
  584. /**
  585. * Deprecated.
  586. */
  587. "box-flex-group"?: CSSWideKeyword | number;
  588. /**
  589. * Cast a drop shadow from the frame of almost any element.
  590. * MDN: https://developer.mozilla.org/en-US/docs/Web/CSS/box-shadow
  591. */
  592. "box-shadow"?: CSSWideKeyword | any;
  593. /**
  594. * The CSS break-after property allows you to force a break on multi-column layouts.
  595. * More specifically, it allows you to force a break after an element.
  596. * It allows you to determine if a break should occur, and what type of break it should be.
  597. * The break-after CSS property describes how the page, column or region break behaves after the generated box.
  598. * If there is no generated box, the property is ignored.
  599. */
  600. "break-after"?: CSSWideKeyword | any;
  601. /**
  602. * Control page/column/region breaks that fall above a block of content
  603. */
  604. "break-before"?: CSSWideKeyword | any;
  605. /**
  606. * Control page/column/region breaks that fall within a block of content
  607. */
  608. "break-inside"?: CSSWideKeyword | any;
  609. /**
  610. * The clear CSS property specifies if an element can be positioned next to
  611. * or must be positioned below the floating elements that precede it in the markup.
  612. */
  613. clear?: CSSWideKeyword | any;
  614. /**
  615. * Deprecated; see clip-path.
  616. * Lets you specify the dimensions of an absolutely positioned element that should be visible,
  617. * and the element is clipped into this shape, and displayed.
  618. */
  619. clip?: CSSWideKeyword | any;
  620. /**
  621. * Clipping crops an graphic, so that only a portion of the graphic is rendered, or filled.
  622. * This clip-rule property, when used with the clip-path property, defines which clip rule, or algorithm,
  623. * to use when filling the different parts of a graphics.
  624. */
  625. "clip-rule"?: CSSWideKeyword | any;
  626. /**
  627. * The color property sets the color of an element's foreground content (usually text),
  628. * accepting any standard CSS color from keywords and hex values to RGB(a) and HSL(a).
  629. */
  630. color?: CSSWideKeyword | any;
  631. /**
  632. * Describes the number of columns of the element.
  633. * See CSS 3 column-count property https://www.w3.org/TR/css3-multicol/#cc
  634. */
  635. "column-count"?: CSSWideKeyword | number | "auto";
  636. /**
  637. * Specifies how to fill columns (balanced or sequential).
  638. */
  639. "column-fill"?: CSSWideKeyword | any;
  640. /**
  641. * The column-gap property controls the width of the gap between columns in multi-column elements.
  642. */
  643. "column-gap"?: CSSWideKeyword | any;
  644. /**
  645. * Sets the width, style, and color of the rule between columns.
  646. */
  647. "column-rule"?: CSSWideKeyword | any;
  648. /**
  649. * Specifies the color of the rule between columns.
  650. */
  651. "column-rule-color"?: CSSWideKeyword | any;
  652. /**
  653. * Specifies the width of the rule between columns.
  654. */
  655. "column-rule-width"?: CSSWideKeyword | any;
  656. /**
  657. * The column-span CSS property makes it possible for an element to span across all columns when its value is set to all.
  658. * An element that spans more than one column is called a spanning element.
  659. */
  660. "column-span"?: CSSWideKeyword | any;
  661. /**
  662. * Specifies the width of columns in multi-column elements.
  663. */
  664. "column-width"?: CSSWideKeyword | any;
  665. /**
  666. * This property is a shorthand property for setting column-width and/or column-count.
  667. */
  668. columns?: CSSWideKeyword | any;
  669. /**
  670. * The counter-increment property accepts one or more names of counters (identifiers),
  671. * each one optionally followed by an integer which specifies the value by which the counter should be incremented
  672. * (e.g. if the value is 2, the counter increases by 2 each time it is invoked).
  673. */
  674. "counter-increment"?: CSSWideKeyword | any;
  675. /**
  676. * The counter-reset property contains a list of one or more names of counters,
  677. * each one optionally followed by an integer (otherwise, the integer defaults to 0.).
  678. * Each time the given element is invoked, the counters specified by the property are set to the given integer.
  679. */
  680. "counter-reset"?: CSSWideKeyword | any;
  681. /**
  682. * The cue property specifies sound files (known as an "auditory icon") to be played by speech media agents
  683. * before and after presenting an element's content; if only one file is specified, it is played both before and after.
  684. * The volume at which the file(s) should be played, relative to the volume of the main element, may also be specified.
  685. * The icon files may also be set separately with the cue-before and cue-after properties.
  686. */
  687. cue?: CSSWideKeyword | any;
  688. /**
  689. * The cue-after property specifies a sound file (known as an "auditory icon") to be played by speech media agents
  690. * after presenting an element's content; the volume at which the file should be played may also be specified.
  691. * The shorthand property cue sets cue sounds for both before and after the element is presented.
  692. */
  693. "cue-after"?: CSSWideKeyword | any;
  694. /**
  695. * Specifies the mouse cursor displayed when the mouse pointer is over an element.
  696. */
  697. cursor?: CSSWideKeyword | any;
  698. /**
  699. * The direction CSS property specifies the text direction/writing direction. The rtl is used for Hebrew or Arabic text, the ltr is for other languages.
  700. */
  701. direction?: CSSWideKeyword | any;
  702. /**
  703. * This property specifies the type of rendering box used for an element. It is a shorthand property for many other display properties.
  704. */
  705. display?: CSSWideKeyword | any;
  706. /**
  707. * The ‘fill’ property paints the interior of the given graphical element.
  708. * The area to be painted consists of any areas inside the outline of the shape.
  709. * To determine the inside of the shape, all subpaths are considered,
  710. * and the interior is determined according to the rules associated with the current value of the ‘fill-rule’ property.
  711. * The zero-width geometric outline of a shape is included in the area to be painted.
  712. */
  713. fill?: CSSWideKeyword | any;
  714. /**
  715. * SVG: Specifies the opacity of the color or the content the current object is filled with.
  716. * See SVG 1.1 https://www.w3.org/TR/SVG/painting.html#FillOpacityProperty
  717. */
  718. "fill-opacity"?: CSSWideKeyword | number;
  719. /**
  720. * The ‘fill-rule’ property indicates the algorithm which is to be used to determine what parts of the canvas are included inside the shape.
  721. * For a simple, non-intersecting path, it is intuitively clear what region lies "inside";
  722. * however, for a more complex path, such as a path that intersects itself or where one subpath encloses another,
  723. * the interpretation of "inside" is not so obvious.
  724. * The ‘fill-rule’ property provides two options for how the inside of a shape is determined:
  725. */
  726. "fill-rule"?: CSSWideKeyword | any;
  727. /**
  728. * Applies various image processing effects. This property is largely unsupported. See Compatibility section for more information.
  729. */
  730. filter?: CSSWideKeyword | any;
  731. /**
  732. * Shorthand for `flex-grow`, `flex-shrink`, and `flex-basis`.
  733. */
  734. flex?: CSSWideKeyword | number | string;
  735. /**
  736. * Obsolete, do not use. This property has been renamed to align-items.
  737. * Specifies the alignment (perpendicular to the layout axis defined by the flex-direction property) of child elements of the object.
  738. */
  739. "flex-align"?: CSSWideKeyword | any;
  740. /**
  741. * The flex-basis CSS property describes the initial main size of the flex item
  742. * before any free space is distributed according to the flex factors described in the flex property (flex-grow and flex-shrink).
  743. */
  744. "flex-basis"?: CSSWideKeyword | any;
  745. /**
  746. * The flex-direction CSS property describes how flex items are placed in the flex container, by setting the direction of the flex container's main axis.
  747. */
  748. "flex-direction"?: CSSWideKeyword | "row" | "row-reverse" | "column" | "column-reverse";
  749. /**
  750. * The flex-flow CSS property defines the flex container's main and cross axis. It is a shorthand property for the flex-direction and flex-wrap properties.
  751. */
  752. "flex-flow"?: CSSWideKeyword | string;
  753. /**
  754. * Specifies the flex grow factor of a flex item.
  755. * See CSS flex-grow property https://drafts.csswg.org/css-flexbox-1/#flex-grow-property
  756. */
  757. "flex-grow"?: CSSWideKeyword | number;
  758. /**
  759. * Do not use. This property has been renamed to align-self
  760. * Specifies the alignment (perpendicular to the layout axis defined by flex-direction) of child elements of the object.
  761. */
  762. "flex-item-align"?: CSSWideKeyword | any;
  763. /**
  764. * Do not use. This property has been renamed to align-content.
  765. * Specifies how a flexbox's lines align within the flexbox when there is extra space along the axis that is perpendicular to the axis defined by the flex-direction property.
  766. */
  767. "flex-line-pack"?: CSSWideKeyword | any;
  768. /**
  769. * Gets or sets a value that specifies the ordinal group that a flexbox element belongs to. This ordinal value identifies the display order for the group.
  770. */
  771. "flex-order"?: CSSWideKeyword | any;
  772. /**
  773. * Specifies the flex shrink factor of a flex item.
  774. * See CSS flex-shrink property https://drafts.csswg.org/css-flexbox-1/#flex-shrink-property
  775. */
  776. "flex-shrink"?: CSSWideKeyword | number;
  777. /**
  778. * Specifies whether flex items are forced into a single line or can be wrapped onto multiple lines.
  779. * If wrapping is allowed, this property also enables you to control the direction in which lines are stacked.
  780. * See CSS flex-wrap property https://drafts.csswg.org/css-flexbox-1/#flex-wrap-property
  781. */
  782. "flex-wrap"?: CSSWideKeyword | "nowrap" | "wrap" | "wrap-reverse";
  783. /**
  784. * Elements which have the style float are floated horizontally.
  785. * These elements can move as far to the left or right of the containing element.
  786. * All elements after the floating element will flow around it, but elements before the floating element are not impacted.
  787. * If several floating elements are placed after each other, they will float next to each other as long as there is room.
  788. */
  789. float?: CSSWideKeyword | any;
  790. /**
  791. * Flows content from a named flow (specified by a corresponding flow-into) through selected elements to form a dynamic chain of layout regions.
  792. */
  793. "flow-from"?: CSSWideKeyword | any;
  794. /**
  795. * The font property is shorthand that allows you to do one of two things: you can either set up six of the most mature font properties in one line,
  796. * or you can set one of a choice of keywords to adopt a system font setting.
  797. */
  798. font?: CSSWideKeyword | any;
  799. /**
  800. * The font-family property allows one or more font family names and/or generic family names to be specified for usage on the selected element(s)' text.
  801. * The browser then goes through the list; for each character in the selection it applies the first font family that has an available glyph for that character.
  802. */
  803. "font-family"?: CSSWideKeyword | any;
  804. /**
  805. * The font-kerning property allows contextual adjustment of inter-glyph spacing, i.e. the spaces between the characters in text.
  806. * This property controls <bold>metric kerning</bold> - that utilizes adjustment data contained in the font. Optical Kerning is not supported as yet.
  807. */
  808. "font-kerning"?: CSSWideKeyword | any;
  809. /**
  810. * Specifies the size of the font. Used to compute em and ex units.
  811. * See CSS 3 font-size property https://www.w3.org/TR/css-fonts-3/#propdef-font-size
  812. */
  813. "font-size"?:
  814. | CSSWideKeyword
  815. | "xx-small"
  816. | "x-small"
  817. | "small"
  818. | "medium"
  819. | "large"
  820. | "x-large"
  821. | "xx-large"
  822. | "larger"
  823. | "smaller"
  824. | CSSLength
  825. | CSSPercentage;
  826. /**
  827. * The font-size-adjust property adjusts the font-size of the fallback fonts defined with font-family,
  828. * so that the x-height is the same no matter what font is used.
  829. * This preserves the readability of the text when fallback happens.
  830. * See CSS 3 font-size-adjust property https://www.w3.org/TR/css-fonts-3/#propdef-font-size-adjust
  831. */
  832. "font-size-adjust"?: CSSWideKeyword | "none" | number;
  833. /**
  834. * Allows you to expand or condense the widths for a normal, condensed, or expanded font face.
  835. * See CSS 3 font-stretch property https://drafts.csswg.org/css-fonts-3/#propdef-font-stretch
  836. */
  837. "font-stretch"?:
  838. | CSSWideKeyword
  839. | "normal"
  840. | "ultra-condensed"
  841. | "extra-condensed"
  842. | "condensed"
  843. | "semi-condensed"
  844. | "semi-expanded"
  845. | "expanded"
  846. | "extra-expanded"
  847. | "ultra-expanded";
  848. /**
  849. * The font-style property allows normal, italic, or oblique faces to be selected.
  850. * Italic forms are generally cursive in nature while oblique faces are typically sloped versions of the regular face.
  851. * Oblique faces can be simulated by artificially sloping the glyphs of the regular face.
  852. * See CSS 3 font-style property https://www.w3.org/TR/css-fonts-3/#propdef-font-style
  853. */
  854. "font-style"?: CSSWideKeyword | "normal" | "italic" | "oblique";
  855. /**
  856. * This value specifies whether the user agent is allowed to synthesize bold or oblique font faces when a font family lacks bold or italic faces.
  857. */
  858. "font-synthesis"?: CSSWideKeyword | any;
  859. /**
  860. * The font-variant property enables you to select the small-caps font within a font family.
  861. */
  862. "font-variant"?: CSSWideKeyword | any;
  863. /**
  864. * Fonts can provide alternate glyphs in addition to default glyph for a character. This property provides control over the selection of these alternate glyphs.
  865. */
  866. "font-variant-alternates"?: CSSWideKeyword | any;
  867. /**
  868. * Specifies the weight or boldness of the font.
  869. * See CSS 3 'font-weight' property https://www.w3.org/TR/css-fonts-3/#propdef-font-weight
  870. */
  871. "font-weight"?:
  872. | CSSWideKeyword
  873. | "normal"
  874. | "bold"
  875. | "bolder"
  876. | "lighter"
  877. | 100
  878. | 200
  879. | 300
  880. | 400
  881. | 500
  882. | 600
  883. | 700
  884. | 800
  885. | 900;
  886. /**
  887. * Lays out one or more grid items bound by 4 grid lines. Shorthand for setting grid-column-start, grid-column-end, grid-row-start, and grid-row-end in a single declaration.
  888. */
  889. "grid-area"?: CSSWideKeyword | any;
  890. /**
  891. * Controls a grid item's placement in a grid area, particularly grid position and a grid span. Shorthand for setting grid-column-start and grid-column-end in a single declaration.
  892. */
  893. "grid-column"?: CSSWideKeyword | any;
  894. /**
  895. * Controls a grid item's placement in a grid area as well as grid position and a grid span.
  896. * The grid-column-end property (with grid-row-start, grid-row-end, and grid-column-start) determines a grid item's placement by specifying the grid lines of a grid item's grid area.
  897. */
  898. "grid-column-end"?: CSSWideKeyword | any;
  899. /**
  900. * Determines a grid item's placement by specifying the starting grid lines of a grid item's grid area.
  901. * A grid item's placement in a grid area consists of a grid position and a grid span.
  902. * See also ( grid-row-start, grid-row-end, and grid-column-end)
  903. */
  904. "grid-column-start"?: CSSWideKeyword | any;
  905. /**
  906. * Gets or sets a value that indicates which row an element within a Grid should appear in. Shorthand for setting grid-row-start and grid-row-end in a single declaration.
  907. */
  908. "grid-row"?: CSSWideKeyword | any;
  909. /**
  910. * Determines a grid item’s placement by specifying the block-end. A grid item's placement in a grid area consists of a grid position and a grid span.
  911. * The grid-row-end property (with grid-row-start, grid-column-start, and grid-column-end) determines a grid item's placement by specifying the grid lines of a grid item's grid area.
  912. */
  913. "grid-row-end"?: CSSWideKeyword | any;
  914. /**
  915. * Specifies a row position based upon an integer location, string value, or desired row size.
  916. * css/properties/grid-row is used as short-hand for grid-row-position and grid-row-position
  917. */
  918. "grid-row-position"?: CSSWideKeyword | any;
  919. "grid-row-span"?: CSSWideKeyword | any;
  920. /**
  921. * Specifies named grid areas which are not associated with any particular grid item, but can be referenced from the grid-placement properties.
  922. * The syntax of the grid-template-areas property also provides a visualization of the structure of the grid, making the overall layout of the grid container easier to understand.
  923. */
  924. "grid-template-areas"?: CSSWideKeyword | any;
  925. /**
  926. * Specifies (with grid-template-rows) the line names and track sizing functions of the grid.
  927. * Each sizing function can be specified as a length, a percentage of the grid container’s size,
  928. * a measurement of the contents occupying the column or row, or a fraction of the free space in the grid.
  929. */
  930. "grid-template-columns"?: CSSWideKeyword | any;
  931. /**
  932. * Specifies (with grid-template-columns) the line names and track sizing functions of the grid.
  933. * Each sizing function can be specified as a length, a percentage of the grid container’s size,
  934. * a measurement of the contents occupying the column or row, or a fraction of the free space in the grid.
  935. */
  936. "grid-template-rows"?: CSSWideKeyword | any;
  937. /**
  938. * Sets the height of an element. The content area of the element height does not include the padding, border, and margin of the element.
  939. */
  940. height?: CSSWideKeyword | any;
  941. /**
  942. * Specifies the minimum number of characters in a hyphenated word
  943. */
  944. "hyphenate-limit-chars"?: CSSWideKeyword | any;
  945. /**
  946. * Indicates the maximum number of successive hyphenated lines in an element. The ‘no-limit’ value means that there is no limit.
  947. */
  948. "hyphenate-limit-lines"?: CSSWideKeyword | any;
  949. /**
  950. * Specifies the maximum amount of trailing whitespace (before justification) that may be left in a line before hyphenation is triggered
  951. * to pull part of a word from the next line back up into the current one.
  952. */
  953. "hyphenate-limit-zone"?: CSSWideKeyword | any;
  954. /**
  955. * Specifies whether or not words in a sentence can be split by the use of a manual or automatic hyphenation mechanism.
  956. */
  957. hyphens?: CSSWideKeyword | any;
  958. "ime-mode"?: CSSWideKeyword | any;
  959. /**
  960. * Defines how the browser distributes space between and around flex items
  961. * along the main-axis of their container.
  962. * See CSS justify-content property https://www.w3.org/TR/css-flexbox-1/#justify-content-property
  963. */
  964. "justify-content"?:
  965. | CSSWideKeyword
  966. | "flex-start"
  967. | "flex-end"
  968. | "center"
  969. | "space-between"
  970. | "space-around"
  971. | "space-evenly"
  972. | "stretch";
  973. "layout-grid"?: CSSWideKeyword | any;
  974. "layout-grid-char"?: CSSWideKeyword | any;
  975. "layout-grid-line"?: CSSWideKeyword | any;
  976. "layout-grid-mode"?: CSSWideKeyword | any;
  977. "layout-grid-type"?: CSSWideKeyword | any;
  978. /**
  979. * Sets the left edge of an element
  980. */
  981. left?: CSSWideKeyword | any;
  982. /**
  983. * The letter-spacing CSS property specifies the spacing behavior between text characters.
  984. */
  985. "letter-spacing"?: CSSWideKeyword | any;
  986. /**
  987. * Deprecated. Gets or sets line-breaking rules for text in selected languages such as Japanese, Chinese, and Korean.
  988. */
  989. "line-break"?: CSSWideKeyword | any;
  990. "line-clamp"?: CSSWideKeyword | number;
  991. /**
  992. * Specifies the height of an inline block level element.
  993. * See CSS 2.1 line-height property https://www.w3.org/TR/CSS21/visudet.html#propdef-line-height
  994. */
  995. "line-height"?: CSSWideKeyword | "normal" | number | CSSLength | CSSPercentage;
  996. /**
  997. * Shorthand property that sets the list-style-type, list-style-position and list-style-image properties in one declaration.
  998. */
  999. "list-style"?: CSSWideKeyword | any;
  1000. /**
  1001. * This property sets the image that will be used as the list item marker. When the image is available,
  1002. * it will replace the marker set with the 'list-style-type' marker. That also means that if the image is not available,
  1003. * it will show the style specified by list-style-property
  1004. */
  1005. "list-style-image"?: CSSWideKeyword | any;
  1006. /**
  1007. * Specifies if the list-item markers should appear inside or outside the content flow.
  1008. */
  1009. "list-style-position"?: CSSWideKeyword | any;
  1010. /**
  1011. * Specifies the type of list-item marker in a list.
  1012. */
  1013. "list-style-type"?: CSSWideKeyword | any;
  1014. /**
  1015. * The margin property is shorthand to allow you to set all four margins of an element at once.
  1016. * Its equivalent longhand properties are margin-top, margin-right, margin-bottom and margin-left.
  1017. * Negative values are also allowed.
  1018. */
  1019. margin?: CSSWideKeyword | any;
  1020. /**
  1021. * margin-bottom sets the bottom margin of an element.
  1022. */
  1023. "margin-bottom"?: CSSWideKeyword | any;
  1024. /**
  1025. * margin-left sets the left margin of an element.
  1026. */
  1027. "margin-left"?: CSSWideKeyword | any;
  1028. /**
  1029. * margin-right sets the right margin of an element.
  1030. */
  1031. "margin-right"?: CSSWideKeyword | any;
  1032. /**
  1033. * margin-top sets the top margin of an element.
  1034. */
  1035. "margin-top"?: CSSWideKeyword | any;
  1036. /**
  1037. * The marquee-direction determines the initial direction in which the marquee content moves.
  1038. */
  1039. "marquee-direction"?: CSSWideKeyword | any;
  1040. /**
  1041. * The 'marquee-style' property determines a marquee's scrolling behavior.
  1042. */
  1043. "marquee-style"?: CSSWideKeyword | any;
  1044. /**
  1045. * This property is shorthand for setting mask-image, mask-mode, mask-repeat, mask-position, mask-clip, mask-origin, mask-composite and mask-size.
  1046. * Omitted values are set to their original properties' initial values.
  1047. */
  1048. mask?: CSSWideKeyword | any;
  1049. /**
  1050. * This property is shorthand for setting mask-border-source, mask-border-slice, mask-border-width, mask-border-outset, and mask-border-repeat.
  1051. * Omitted values are set to their original properties' initial values.
  1052. */
  1053. "mask-border"?: CSSWideKeyword | any;
  1054. /**
  1055. * This property specifies how the images for the sides and the middle part of the mask image are scaled and tiled.
  1056. * The first keyword applies to the horizontal sides, the second one applies to the vertical ones.
  1057. * If the second keyword is absent, it is assumed to be the same as the first, similar to the CSS border-image-repeat property.
  1058. */
  1059. "mask-border-repeat"?: CSSWideKeyword | any;
  1060. /**
  1061. * This property specifies inward offsets from the top, right, bottom, and left edges of the mask image,
  1062. * dividing it into nine regions: four corners, four edges, and a middle.
  1063. * The middle image part is discarded and treated as fully transparent black unless the fill keyword is present.
  1064. * The four values set the top, right, bottom and left offsets in that order, similar to the CSS border-image-slice property.
  1065. */
  1066. "mask-border-slice"?: CSSWideKeyword | any;
  1067. /**
  1068. * Specifies an image to be used as a mask. An image that is empty, fails to download, is non-existent, or cannot be displayed is ignored and does not mask the element.
  1069. */
  1070. "mask-border-source"?: CSSWideKeyword | any;
  1071. /**
  1072. * This property sets the width of the mask box image, similar to the CSS border-image-width property.
  1073. */
  1074. "mask-border-width"?: CSSWideKeyword | any;
  1075. /**
  1076. * Determines the mask painting area, which defines the area that is affected by the mask.
  1077. * The painted content of an element may be restricted to this area.
  1078. */
  1079. "mask-clip"?: CSSWideKeyword | any;
  1080. /**
  1081. * For elements rendered as a single box, specifies the mask positioning area.
  1082. * For elements rendered as multiple boxes (e.g., inline boxes on several lines, boxes on several pages)
  1083. * specifies which boxes box-decoration-break operates on to determine the mask positioning area(s).
  1084. */
  1085. "mask-origin"?: CSSWideKeyword | any;
  1086. /**
  1087. * This property must not be used. It is no longer included in any standard or standard track specification,
  1088. * nor is it implemented in any browser. It is only used when the text-align-last property is set to size.
  1089. * It controls allowed adjustments of font-size to fit line content.
  1090. */
  1091. "max-font-size"?: CSSWideKeyword | any;
  1092. /**
  1093. * Sets the maximum height for an element. It prevents the height of the element to exceed the specified value.
  1094. * If min-height is specified and is greater than max-height, max-height is overridden.
  1095. */
  1096. "max-height"?: CSSWideKeyword | any;
  1097. /**
  1098. * Sets the maximum width for an element. It limits the width property to be larger than the value specified in max-width.
  1099. */
  1100. "max-width"?: CSSWideKeyword | any;
  1101. /**
  1102. * Sets the minimum height for an element. It prevents the height of the element to be smaller than the specified value.
  1103. * The value of min-height overrides both max-height and height.
  1104. */
  1105. "min-height"?: CSSWideKeyword | any;
  1106. /**
  1107. * Sets the minimum width of an element. It limits the width property to be not smaller than the value specified in min-width.
  1108. */
  1109. "min-width"?: CSSWideKeyword | any;
  1110. /**
  1111. * Specifies the transparency of an element.
  1112. * See CSS 3 opacity property https://drafts.csswg.org/css-color-3/#opacity
  1113. */
  1114. opacity?: CSSWideKeyword | number;
  1115. /**
  1116. * Specifies the order used to lay out flex items in their flex container.
  1117. * Elements are laid out in the ascending order of the order value.
  1118. * See CSS order property https://drafts.csswg.org/css-flexbox-1/#order-property
  1119. */
  1120. order?: CSSWideKeyword | number;
  1121. /**
  1122. * In paged media, this property defines the minimum number of lines in
  1123. * a block container that must be left at the bottom of the page.
  1124. * See CSS 3 orphans, widows properties https://drafts.csswg.org/css-break-3/#widows-orphans
  1125. */
  1126. orphans?: CSSWideKeyword | number;
  1127. /**
  1128. * The CSS outline property is a shorthand property for setting one or more of the individual outline properties outline-style,
  1129. * outline-width and outline-color in a single rule. In most cases the use of this shortcut is preferable and more convenient.
  1130. * Outlines differ from borders in the following ways:
  1131. * • Outlines do not take up space, they are drawn above the content.
  1132. * • Outlines may be non-rectangular. They are rectangular in Gecko/Firefox.
  1133. * Internet Explorer attempts to place the smallest contiguous outline around all elements or shapes that are indicated to have an outline.
  1134. * Opera draws a non-rectangular shape around a construct.
  1135. */
  1136. outline?: CSSWideKeyword | any;
  1137. /**
  1138. * The outline-color property sets the color of the outline of an element. An outline is a line that is drawn around elements, outside the border edge, to make the element stand out.
  1139. */
  1140. "outline-color"?: CSSWideKeyword | any;
  1141. /**
  1142. * The outline-offset property offsets the outline and draw it beyond the border edge.
  1143. */
  1144. "outline-offset"?: CSSWideKeyword | any;
  1145. /**
  1146. * The overflow property controls how extra content exceeding the bounding box of an element is rendered.
  1147. * It can be used in conjunction with an element that has a fixed width and height, to eliminate text-induced page distortion.
  1148. */
  1149. overflow?: CSSWideKeyword | "auto" | "hidden" | "scroll" | "visible";
  1150. /**
  1151. * Specifies the preferred scrolling methods for elements that overflow.
  1152. */
  1153. "overflow-style"?: CSSWideKeyword | any;
  1154. /**
  1155. * Controls how extra content exceeding the x-axis of the bounding box of an element is rendered.
  1156. */
  1157. "overflow-x"?: CSSWideKeyword | "auto" | "hidden" | "scroll" | "visible";
  1158. /**
  1159. * Controls how extra content exceeding the y-axis of the bounding box of an element is rendered.
  1160. */
  1161. "overflow-y"?: CSSWideKeyword | "auto" | "hidden" | "scroll" | "visible";
  1162. /**
  1163. * The padding optional CSS property sets the required padding space on one to four sides of an element.
  1164. * The padding area is the space between an element and its border. Negative values are not allowed but decimal values are permitted.
  1165. * The element size is treated as fixed, and the content of the element shifts toward the center as padding is increased.
  1166. * The padding property is a shorthand to avoid setting each side separately (padding-top, padding-right, padding-bottom, padding-left).
  1167. */
  1168. padding?: CSSWideKeyword | any;
  1169. /**
  1170. * The padding-bottom CSS property of an element sets the padding space required on the bottom of an element.
  1171. * The padding area is the space between the content of the element and its border.
  1172. * Contrary to margin-bottom values, negative values of padding-bottom are invalid.
  1173. */
  1174. "padding-bottom"?: CSSWideKeyword | any;
  1175. /**
  1176. * The padding-left CSS property of an element sets the padding space required on the left side of an element.
  1177. * The padding area is the space between the content of the element and its border.
  1178. * Contrary to margin-left values, negative values of padding-left are invalid.
  1179. */
  1180. "padding-left"?: CSSWideKeyword | any;
  1181. /**
  1182. * The padding-right CSS property of an element sets the padding space required on the right side of an element.
  1183. * The padding area is the space between the content of the element and its border.
  1184. * Contrary to margin-right values, negative values of padding-right are invalid.
  1185. */
  1186. "padding-right"?: CSSWideKeyword | any;
  1187. /**
  1188. * The padding-top CSS property of an element sets the padding space required on the top of an element.
  1189. * The padding area is the space between the content of the element and its border.
  1190. * Contrary to margin-top values, negative values of padding-top are invalid.
  1191. */
  1192. "padding-top"?: CSSWideKeyword | any;
  1193. /**
  1194. * The page-break-after property is supported in all major browsers. With CSS3, page-break-* properties are only aliases of the break-* properties.
  1195. * The CSS3 Fragmentation spec defines breaks for all CSS box fragmentation.
  1196. */
  1197. "page-break-after"?: CSSWideKeyword | any;
  1198. /**
  1199. * The page-break-before property sets the page-breaking behavior before an element.
  1200. * With CSS3, page-break-* properties are only aliases of the break-* properties.
  1201. * The CSS3 Fragmentation spec defines breaks for all CSS box fragmentation.
  1202. */
  1203. "page-break-before"?: CSSWideKeyword | any;
  1204. /**
  1205. * Sets the page-breaking behavior inside an element. With CSS3, page-break-* properties are only aliases of the break-* properties.
  1206. * The CSS3 Fragmentation spec defines breaks for all CSS box fragmentation.
  1207. */
  1208. "page-break-inside"?: CSSWideKeyword | any;
  1209. /**
  1210. * The pause property determines how long a speech media agent should pause before and after presenting an element.
  1211. * It is a shorthand for the pause-before and pause-after properties.
  1212. */
  1213. pause?: CSSWideKeyword | any;
  1214. /**
  1215. * The pause-after property determines how long a speech media agent should pause after presenting an element.
  1216. * It may be replaced by the shorthand property pause, which sets pause time before and after.
  1217. */
  1218. "pause-after"?: CSSWideKeyword | any;
  1219. /**
  1220. * The pause-before property determines how long a speech media agent should pause before presenting an element.
  1221. * It may be replaced by the shorthand property pause, which sets pause time before and after.
  1222. */
  1223. "pause-before"?: CSSWideKeyword | any;
  1224. /**
  1225. * The perspective property defines how far an element is placed from the view on the z-axis, from the screen to the viewer.
  1226. * Perspective defines how an object is viewed. In graphic arts, perspective is the representation on a flat surface of what the viewer's eye would see in a 3D space.
  1227. * (See Wikipedia for more information about graphical perspective and for related illustrations.)
  1228. * The illusion of perspective on a flat surface, such as a computer screen,
  1229. * is created by projecting points on the flat surface as they would appear if the flat surface were a window
  1230. * through which the viewer was looking at the object. In discussion of virtual environments, this flat surface is called a projection plane.
  1231. */
  1232. perspective?: CSSWideKeyword | any;
  1233. /**
  1234. * The perspective-origin property establishes the origin for the perspective property.
  1235. * It effectively sets the X and Y position at which the viewer appears to be looking at the children of the element.
  1236. * When used with perspective, perspective-origin changes the appearance of an object,
  1237. * as if a viewer were looking at it from a different origin.
  1238. * An object appears differently if a viewer is looking directly at it versus looking at it from below, above, or from the side.
  1239. * Thus, the perspective-origin is like a vanishing point.
  1240. * The default value of perspective-origin is 50% 50%.
  1241. * This displays an object as if the viewer's eye were positioned directly at the center of the screen, both top-to-bottom and left-to-right.
  1242. * A value of 0% 0% changes the object as if the viewer was looking toward the top left angle.
  1243. * A value of 100% 100% changes the appearance as if viewed toward the bottom right angle.
  1244. */
  1245. "perspective-origin"?: CSSWideKeyword | any;
  1246. /**
  1247. * The pointer-events property allows you to control whether an element can be the target for the pointing device (e.g, mouse, pen) events.
  1248. */
  1249. "pointer-events"?: CSSWideKeyword | any;
  1250. /**
  1251. * The position property controls the type of positioning used by an element within its parent elements.
  1252. * The effect of the position property depends on a lot of factors, for example the position property of parent elements.
  1253. */
  1254. position?: CSSWideKeyword | "static" | "relative" | "absolute" | "fixed" | "sticky";
  1255. /**
  1256. * Obsolete: unsupported.
  1257. * This property determines whether or not a full-width punctuation mark character should be trimmed if it appears at the beginning of a line,
  1258. * so that its "ink" lines up with the first glyph in the line above and below.
  1259. */
  1260. "punctuation-trim"?: CSSWideKeyword | any;
  1261. /**
  1262. * Sets the type of quotation marks for embedded quotations.
  1263. */
  1264. quotes?: CSSWideKeyword | any;
  1265. /**
  1266. * Controls whether the last region in a chain displays additional 'overset' content according its default overflow property,
  1267. * or if it displays a fragment of content as if it were flowing into a subsequent region.
  1268. */
  1269. "region-fragment"?: CSSWideKeyword | any;
  1270. /**
  1271. * The rest-after property determines how long a speech media agent should pause after presenting an element's main content,
  1272. * before presenting that element's exit cue sound. It may be replaced by the shorthand property rest, which sets rest time before and after.
  1273. */
  1274. "rest-after"?: CSSWideKeyword | any;
  1275. /**
  1276. * The rest-before property determines how long a speech media agent should pause after presenting an intro cue sound for an element,
  1277. * before presenting that element's main content. It may be replaced by the shorthand property rest, which sets rest time before and after.
  1278. */
  1279. "rest-before"?: CSSWideKeyword | any;
  1280. /**
  1281. * Specifies the position an element in relation to the right side of the containing element.
  1282. */
  1283. right?: CSSWideKeyword | any;
  1284. "ruby-align"?: CSSWideKeyword | any;
  1285. "ruby-position"?: CSSWideKeyword | any;
  1286. /**
  1287. * Defines the alpha channel threshold used to extract a shape from an image. Can be thought of as a "minimum opacity" threshold;
  1288. * that is, a value of 0.5 means that the shape will enclose all the pixels that are more than 50% opaque.
  1289. */
  1290. "shape-image-threshold"?: CSSWideKeyword | any;
  1291. /**
  1292. * A future level of CSS Shapes will define a shape-inside property, which will define a shape to wrap content within the element.
  1293. * See Editor's Draft <http://dev.w3.org/csswg/css-shapes/> and CSSWG wiki page on next-level plans <http://wiki.csswg.org/spec/css-shapes>
  1294. */
  1295. "shape-inside"?: CSSWideKeyword | any;
  1296. /**
  1297. * Adds a margin to a shape-outside. In effect, defines a new shape that is the smallest contour around all the points
  1298. * that are the shape-margin distance outward perpendicular to each point on the underlying shape.
  1299. * For points where a perpendicular direction is not defined (e.g., a triangle corner),
  1300. * takes all points on a circle centered at the point and with a radius of the shape-margin distance.
  1301. * This property accepts only non-negative values.
  1302. */
  1303. "shape-margin"?: CSSWideKeyword | any;
  1304. /**
  1305. * Declares a shape around which text should be wrapped, with possible modifications from the shape-margin property.
  1306. * The shape defined by shape-outside and shape-margin changes the geometry of a float element's float area.
  1307. */
  1308. "shape-outside"?: CSSWideKeyword | any;
  1309. /**
  1310. * The speak property determines whether or not a speech synthesizer will read aloud the contents of an element.
  1311. */
  1312. speak?: CSSWideKeyword | any;
  1313. /**
  1314. * The speak-as property determines how the speech synthesizer interprets the content: words as whole words or as a sequence of letters,
  1315. * numbers as a numerical value or a sequence of digits, punctuation as pauses in speech or named punctuation characters.
  1316. */
  1317. "speak-as"?: CSSWideKeyword | any;
  1318. /**
  1319. * SVG: Specifies the opacity of the outline on the current object.
  1320. * See SVG 1.1 https://www.w3.org/TR/SVG/painting.html#StrokeOpacityProperty
  1321. */
  1322. "stroke-opacity"?: CSSWideKeyword | number;
  1323. /**
  1324. * SVG: Specifies the width of the outline on the current object.
  1325. * See SVG 1.1 https://www.w3.org/TR/SVG/painting.html#StrokeWidthProperty
  1326. */
  1327. "stroke-width"?: CSSWideKeyword | CSSPercentage | CSSLength;
  1328. /**
  1329. * The tab-size CSS property is used to customise the width of a tab (U+0009) character.
  1330. */
  1331. "tab-size"?: CSSWideKeyword | any;
  1332. /**
  1333. * The 'table-layout' property controls the algorithm used to lay out the table cells, rows, and columns.
  1334. */
  1335. "table-layout"?: CSSWideKeyword | any;
  1336. /**
  1337. * The text-align CSS property describes how inline content like text is aligned in its parent block element.
  1338. * text-align does not control the alignment of block elements itself, only their inline content.
  1339. */
  1340. "text-align"?: CSSWideKeyword | any;
  1341. /**
  1342. * The text-align-last CSS property describes how the last line of a block element or a line before line break is aligned in its parent block element.
  1343. */
  1344. "text-align-last"?: CSSWideKeyword | any;
  1345. /**
  1346. * The text-decoration CSS property is used to set the text formatting to underline, overline, line-through or blink.
  1347. * underline and overline decorations are positioned under the text, line-through over it.
  1348. */
  1349. "text-decoration"?: CSSWideKeyword | any;
  1350. /**
  1351. * Sets the color of any text decoration, such as underlines, overlines, and strike throughs.
  1352. */
  1353. "text-decoration-color"?: CSSWideKeyword | any;
  1354. /**
  1355. * Sets what kind of line decorations are added to an element, such as underlines, overlines, etc.
  1356. */
  1357. "text-decoration-line"?: CSSWideKeyword | any;
  1358. "text-decoration-line-through"?: CSSWideKeyword | any;
  1359. "text-decoration-none"?: CSSWideKeyword | any;
  1360. "text-decoration-overline"?: CSSWideKeyword | any;
  1361. /**
  1362. * Specifies what parts of an element’s content are skipped over when applying any text decoration.
  1363. */
  1364. "text-decoration-skip"?: CSSWideKeyword | any;
  1365. /**
  1366. * This property specifies the style of the text decoration line drawn on the specified element.
  1367. * The intended meaning for the values are the same as those of the border-style-properties.
  1368. */
  1369. "text-decoration-style"?: CSSWideKeyword | any;
  1370. "text-decoration-underline"?: CSSWideKeyword | any;
  1371. /**
  1372. * The text-emphasis property will apply special emphasis marks to the elements text.
  1373. * Slightly similar to the text-decoration property only that this property can have affect on the line-height.
  1374. * It also is noted that this is shorthand for text-emphasis-style and for text-emphasis-color.
  1375. */
  1376. "text-emphasis"?: CSSWideKeyword | any;
  1377. /**
  1378. * The text-emphasis-color property specifies the foreground color of the emphasis marks.
  1379. */
  1380. "text-emphasis-color"?: CSSWideKeyword | any;
  1381. /**
  1382. * The text-emphasis-style property applies special emphasis marks to an element's text.
  1383. */
  1384. "text-emphasis-style"?: CSSWideKeyword | any;
  1385. /**
  1386. * This property helps determine an inline box's block-progression dimension,
  1387. * derived from the text-height and font-size properties for non-replaced elements,
  1388. * the height or the width for replaced elements, and the stacked block-progression dimension for inline-block elements.
  1389. * The block-progression dimension determines the position of the padding, border and margin for the element.
  1390. */
  1391. "text-height"?: CSSWideKeyword | any;
  1392. /**
  1393. * Specifies the amount of space horizontally that should be left on the first line of the text of an element.
  1394. * This horizontal spacing is at the beginning of the first line and is in respect to the left edge of the containing block box.
  1395. */
  1396. "text-indent"?: CSSWideKeyword | any;
  1397. "text-justify-trim"?: CSSWideKeyword | any;
  1398. "text-kashida-space"?: CSSWideKeyword | any;
  1399. /**
  1400. * The text-line-through property is a shorthand property for text-line-through-style, text-line-through-color and text-line-through-mode.
  1401. * (Considered obsolete; use text-decoration instead.)
  1402. */
  1403. "text-line-through"?: CSSWideKeyword | any;
  1404. /**
  1405. * Specifies the line colors for the line-through text decoration.
  1406. * (Considered obsolete; use text-decoration-color instead.)
  1407. */
  1408. "text-line-through-color"?: CSSWideKeyword | any;
  1409. /**
  1410. * Sets the mode for the line-through text decoration, determining whether the text decoration affects the space characters or not.
  1411. * (Considered obsolete; use text-decoration-skip instead.)
  1412. */
  1413. "text-line-through-mode"?: CSSWideKeyword | any;
  1414. /**
  1415. * Specifies the line style for line-through text decoration.
  1416. * (Considered obsolete; use text-decoration-style instead.)
  1417. */
  1418. "text-line-through-style"?: CSSWideKeyword | any;
  1419. /**
  1420. * Specifies the line width for the line-through text decoration.
  1421. */
  1422. "text-line-through-width"?: CSSWideKeyword | any;
  1423. /**
  1424. * The text-overflow shorthand CSS property determines how overflowed content that is not displayed is signaled to the users.
  1425. * It can be clipped, display an ellipsis ('…', U+2026 HORIZONTAL ELLIPSIS) or a Web author-defined string.
  1426. * It covers the two long-hand properties text-overflow-mode and text-overflow-ellipsis
  1427. */
  1428. "text-overflow"?: CSSWideKeyword | any;
  1429. /**
  1430. * The text-overline property is the shorthand for the text-overline-style, text-overline-width, text-overline-color, and text-overline-mode properties.
  1431. */
  1432. "text-overline"?: CSSWideKeyword | any;
  1433. /**
  1434. * Specifies the line color for the overline text decoration.
  1435. */
  1436. "text-overline-color"?: CSSWideKeyword | any;
  1437. /**
  1438. * Sets the mode for the overline text decoration, determining whether the text decoration affects the space characters or not.
  1439. */
  1440. "text-overline-mode"?: CSSWideKeyword | any;
  1441. /**
  1442. * Specifies the line style for overline text decoration.
  1443. */
  1444. "text-overline-style"?: CSSWideKeyword | any;
  1445. /**
  1446. * Specifies the line width for the overline text decoration.
  1447. */
  1448. "text-overline-width"?: CSSWideKeyword | any;
  1449. /**
  1450. * The text-rendering CSS property provides information to the browser about how to optimize when rendering text.
  1451. * Options are: legibility, speed or geometric precision.
  1452. */
  1453. "text-rendering"?: CSSWideKeyword | any;
  1454. /**
  1455. * Obsolete: unsupported.
  1456. */
  1457. "text-script"?: CSSWideKeyword | any;
  1458. /**
  1459. * The CSS text-shadow property applies one or more drop shadows to the text and <text-decorations> of an element.
  1460. * Each shadow is specified as an offset from the text, along with optional color and blur radius values.
  1461. */
  1462. "text-shadow"?: CSSWideKeyword | any;
  1463. /**
  1464. * This property transforms text for styling purposes. (It has no effect on the underlying content.)
  1465. */
  1466. "text-transform"?: CSSWideKeyword | any;
  1467. /**
  1468. * Unsupported.
  1469. * This property will add a underline position value to the element that has an underline defined.
  1470. */
  1471. "text-underline-position"?: CSSWideKeyword | any;
  1472. /**
  1473. * After review this should be replaced by text-decoration should it not?
  1474. * This property will set the underline style for text with a line value for underline, overline, and line-through.
  1475. */
  1476. "text-underline-style"?: CSSWideKeyword | any;
  1477. /**
  1478. * This property specifies how far an absolutely positioned box's top margin edge is offset below the top edge of the box's containing block.
  1479. * For relatively positioned boxes, the offset is with respect to the top edges of the box itself (i.e., the box is given a position in the normal flow,
  1480. * then offset from that position according to these properties).
  1481. */
  1482. top?: CSSWideKeyword | any;
  1483. /**
  1484. * Determines whether touch input may trigger default behavior supplied by the user agent, such as panning or zooming.
  1485. */
  1486. "touch-action"?: CSSWideKeyword | any;
  1487. /**
  1488. * CSS transforms allow elements styled with CSS to be transformed in two-dimensional or three-dimensional space.
  1489. * Using this property, elements can be translated, rotated, scaled, and skewed. The value list may consist of 2D and/or 3D transform values.
  1490. */
  1491. transform?: CSSWideKeyword | any;
  1492. /**
  1493. * This property defines the origin of the transformation axes relative to the element to which the transformation is applied.
  1494. */
  1495. "transform-origin"?: CSSWideKeyword | any;
  1496. /**
  1497. * This property allows you to define the relative position of the origin of the transformation grid along the z-axis.
  1498. */
  1499. "transform-origin-z"?: CSSWideKeyword | any;
  1500. /**
  1501. * This property specifies how nested elements are rendered in 3D space relative to their parent.
  1502. */
  1503. "transform-style"?: CSSWideKeyword | any;
  1504. /**
  1505. * The transition CSS property is a shorthand property for transition-property, transition-duration, transition-timing-function,
  1506. * and transition-delay. It allows to define the transition between two states of an element.
  1507. */
  1508. transition?: CSSWideKeyword | any;
  1509. /**
  1510. * Defines when the transition will start. A value of ‘0s’ means the transition will execute as soon as the property is changed.
  1511. * Otherwise, the value specifies an offset from the moment the property is changed, and the transition will delay execution by that offset.
  1512. */
  1513. "transition-delay"?: CSSWideKeyword | any;
  1514. /**
  1515. * The 'transition-duration' property specifies the length of time a transition animation takes to complete.
  1516. */
  1517. "transition-duration"?: CSSWideKeyword | any;
  1518. /**
  1519. * The 'transition-property' property specifies the name of the CSS property to which the transition is applied.
  1520. */
  1521. "transition-property"?: CSSWideKeyword | any;
  1522. /**
  1523. * Sets the pace of action within a transition
  1524. */
  1525. "transition-timing-function"?: CSSWideKeyword | any;
  1526. /**
  1527. * The unicode-bidi CSS property specifies the level of embedding with respect to the bidirectional algorithm.
  1528. */
  1529. "unicode-bidi"?: CSSWideKeyword | any;
  1530. /**
  1531. * unicode-range allows you to set a specific range of characters to be downloaded from a font (embedded using @font-face) and made available for use on the current page.
  1532. */
  1533. "unicode-range"?: CSSWideKeyword | any;
  1534. /**
  1535. * This is for all the high level UX stuff.
  1536. */
  1537. "user-focus"?: CSSWideKeyword | any;
  1538. /**
  1539. * For inputing user content
  1540. */
  1541. "user-input"?: CSSWideKeyword | any;
  1542. /**
  1543. * The vertical-align property controls how inline elements or text are vertically aligned compared to the baseline.
  1544. * If this property is used on table-cells it controls the vertical alignment of content of the table cell.
  1545. */
  1546. "vertical-align"?: CSSWideKeyword | any;
  1547. /**
  1548. * The visibility property specifies whether the boxes generated by an element are rendered.
  1549. */
  1550. visibility?: CSSWideKeyword | any;
  1551. /**
  1552. * The voice-balance property sets the apparent position (in stereo sound) of the synthesized voice for spoken media.
  1553. */
  1554. "voice-balance"?: CSSWideKeyword | any;
  1555. /**
  1556. * The voice-duration property allows the author to explicitly set the amount of time it should take a speech synthesizer to read an element's content,
  1557. * for example to allow the speech to be synchronized with other media.
  1558. * With a value of auto (the default) the length of time it takes to read the content is determined by the content itself and the voice-rate property.
  1559. */
  1560. "voice-duration"?: CSSWideKeyword | any;
  1561. /**
  1562. * The voice-family property sets the speaker's voice used by a speech media agent to read an element.
  1563. * The speaker may be specified as a named character (to match a voice option in the speech reading software)
  1564. * or as a generic description of the age and gender of the voice.
  1565. * Similar to the font-family property for visual media,
  1566. * a comma-separated list of fallback options may be given in case the speech reader does not recognize the character name
  1567. * or cannot synthesize the requested combination of generic properties.
  1568. */
  1569. "voice-family"?: CSSWideKeyword | any;
  1570. /**
  1571. * The voice-pitch property sets pitch or tone (high or low) for the synthesized speech when reading an element;
  1572. * the pitch may be specified absolutely or relative to the normal pitch for the voice-family used to read the text.
  1573. */
  1574. "voice-pitch"?: CSSWideKeyword | any;
  1575. /**
  1576. * The voice-range property determines how much variation in pitch or tone will be created by the speech synthesize when reading an element.
  1577. * Emphasized text, grammatical structures and punctuation may all be rendered as changes in pitch,
  1578. * this property determines how strong or obvious those changes are;
  1579. * large ranges are associated with enthusiastic or emotional speech,
  1580. * while small ranges are associated with flat or mechanical speech.
  1581. */
  1582. "voice-range"?: CSSWideKeyword | any;
  1583. /**
  1584. * The voice-rate property sets the speed at which the voice synthesized by a speech media agent will read content.
  1585. */
  1586. "voice-rate"?: CSSWideKeyword | any;
  1587. /**
  1588. * The voice-stress property sets the level of vocal emphasis to be used for synthesized speech reading the element.
  1589. */
  1590. "voice-stress"?: CSSWideKeyword | any;
  1591. /**
  1592. * The voice-volume property sets the volume for spoken content in speech media. It replaces the deprecated volume property.
  1593. */
  1594. "voice-volume"?: CSSWideKeyword | any;
  1595. /**
  1596. * The white-space property controls whether and how white space inside the element is collapsed, and whether lines may wrap at unforced "soft wrap" opportunities.
  1597. */
  1598. "white-space"?: CSSWideKeyword | any;
  1599. /**
  1600. * Obsolete: unsupported.
  1601. */
  1602. "white-space-treatment"?: CSSWideKeyword | any;
  1603. /**
  1604. * In paged media, this property defines the mimimum number of lines
  1605. * that must be left at the top of the second page.
  1606. * See CSS 3 orphans, widows properties https://drafts.csswg.org/css-break-3/#widows-orphans
  1607. */
  1608. widows?: CSSWideKeyword | number;
  1609. /**
  1610. * Specifies the width of the content area of an element. The content area of the element width does not include the padding, border, and margin of the element.
  1611. */
  1612. width?: CSSWideKeyword | any;
  1613. /**
  1614. * The word-break property is often used when there is long generated content that is strung together without and spaces or hyphens to beak apart.
  1615. * A common case of this is when there is a long URL that does not have any hyphens. This case could potentially cause the breaking of the layout as it could extend past the parent element.
  1616. */
  1617. "word-break"?: CSSWideKeyword | any;
  1618. /**
  1619. * The word-spacing CSS property specifies the spacing behavior between "words".
  1620. */
  1621. "word-spacing"?: CSSWideKeyword | any;
  1622. /**
  1623. * An alias of css/properties/overflow-wrap, word-wrap defines whether to break words when the content exceeds the boundaries of its container.
  1624. */
  1625. "word-wrap"?: CSSWideKeyword | any;
  1626. /**
  1627. * Specifies how exclusions affect inline content within block-level elements. Elements lay out their inline content in their content area but wrap around exclusion areas.
  1628. */
  1629. "wrap-flow"?: CSSWideKeyword | any;
  1630. /**
  1631. * Set the value that is used to offset the inner wrap shape from other shapes. Inline content that intersects a shape with this property will be pushed by this shape's margin.
  1632. */
  1633. "wrap-margin"?: CSSWideKeyword | any;
  1634. /**
  1635. * Obsolete and unsupported. Do not use.
  1636. * This CSS property controls the text when it reaches the end of the block in which it is enclosed.
  1637. */
  1638. "wrap-option"?: CSSWideKeyword | any;
  1639. /**
  1640. * writing-mode specifies if lines of text are laid out horizontally or vertically, and the direction which lines of text and blocks progress.
  1641. */
  1642. "writing-mode"?: CSSWideKeyword | any;
  1643. /**
  1644. * The z-index property specifies the z-order of an element and its descendants.
  1645. * When elements overlap, z-order determines which one covers the other.
  1646. * See CSS 2 z-index property https://www.w3.org/TR/CSS2/visuren.html#z-index
  1647. */
  1648. "z-index"?: CSSWideKeyword | "auto" | number;
  1649. /**
  1650. * Sets the initial zoom factor of a document defined by @viewport.
  1651. * See CSS zoom descriptor https://drafts.csswg.org/css-device-adapt/#zoom-desc
  1652. */
  1653. zoom?: CSSWideKeyword | "auto" | number | CSSPercentage;
  1654. [propertyName: string]: any;
  1655. }
  1656. type HTMLAutocapitalize = "off" | "none" | "on" | "sentences" | "words" | "characters";
  1657. type HTMLDir = "ltr" | "rtl" | "auto";
  1658. type HTMLFormEncType = "application/x-www-form-urlencoded" | "multipart/form-data" | "text/plain";
  1659. type HTMLFormMethod = "post" | "get" | "dialog";
  1660. type HTMLCrossorigin = "anonymous" | "use-credentials" | "";
  1661. type HTMLReferrerPolicy =
  1662. | "no-referrer"
  1663. | "no-referrer-when-downgrade"
  1664. | "origin"
  1665. | "origin-when-cross-origin"
  1666. | "same-origin"
  1667. | "strict-origin"
  1668. | "strict-origin-when-cross-origin"
  1669. | "unsafe-url";
  1670. type HTMLIframeSandbox =
  1671. | "allow-downloads-without-user-activation"
  1672. | "allow-forms"
  1673. | "allow-modals"
  1674. | "allow-orientation-lock"
  1675. | "allow-pointer-lock"
  1676. | "allow-popups"
  1677. | "allow-popups-to-escape-sandbox"
  1678. | "allow-presentation"
  1679. | "allow-same-origin"
  1680. | "allow-scripts"
  1681. | "allow-storage-access-by-user-activation"
  1682. | "allow-top-navigation"
  1683. | "allow-top-navigation-by-user-activation";
  1684. type HTMLLinkAs =
  1685. | "audio"
  1686. | "document"
  1687. | "embed"
  1688. | "fetch"
  1689. | "font"
  1690. | "image"
  1691. | "object"
  1692. | "script"
  1693. | "style"
  1694. | "track"
  1695. | "video"
  1696. | "worker";
  1697. // All the WAI-ARIA 1.1 attributes from https://www.w3.org/TR/wai-aria-1.1/
  1698. interface AriaAttributes {
  1699. /** Identifies the currently active element when DOM focus is on a composite widget, textbox, group, or application. */
  1700. "aria-activedescendant"?: string;
  1701. /** 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. */
  1702. "aria-atomic"?: boolean | "false" | "true";
  1703. /**
  1704. * 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
  1705. * presented if they are made.
  1706. */
  1707. "aria-autocomplete"?: "none" | "inline" | "list" | "both";
  1708. /** 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. */
  1709. "aria-busy"?: boolean | "false" | "true";
  1710. /**
  1711. * Indicates the current "checked" state of checkboxes, radio buttons, and other widgets.
  1712. * @see aria-pressed @see aria-selected.
  1713. */
  1714. "aria-checked"?: boolean | "false" | "mixed" | "true";
  1715. /**
  1716. * Defines the total number of columns in a table, grid, or treegrid.
  1717. * @see aria-colindex.
  1718. */
  1719. "aria-colcount"?: number | string;
  1720. /**
  1721. * Defines an element's column index or position with respect to the total number of columns within a table, grid, or treegrid.
  1722. * @see aria-colcount @see aria-colspan.
  1723. */
  1724. "aria-colindex"?: number | string;
  1725. /**
  1726. * Defines the number of columns spanned by a cell or gridcell within a table, grid, or treegrid.
  1727. * @see aria-colindex @see aria-rowspan.
  1728. */
  1729. "aria-colspan"?: number | string;
  1730. /**
  1731. * Identifies the element (or elements) whose contents or presence are controlled by the current element.
  1732. * @see aria-owns.
  1733. */
  1734. "aria-controls"?: string;
  1735. /** Indicates the element that represents the current item within a container or set of related elements. */
  1736. "aria-current"?: boolean | "false" | "true" | "page" | "step" | "location" | "date" | "time";
  1737. /**
  1738. * Identifies the element (or elements) that describes the object.
  1739. * @see aria-labelledby
  1740. */
  1741. "aria-describedby"?: string;
  1742. /**
  1743. * Identifies the element that provides a detailed, extended description for the object.
  1744. * @see aria-describedby.
  1745. */
  1746. "aria-details"?: string;
  1747. /**
  1748. * Indicates that the element is perceivable but disabled, so it is not editable or otherwise operable.
  1749. * @see aria-hidden @see aria-readonly.
  1750. */
  1751. "aria-disabled"?: boolean | "false" | "true";
  1752. /**
  1753. * Indicates what functions can be performed when a dragged object is released on the drop target.
  1754. * @deprecated in ARIA 1.1
  1755. */
  1756. "aria-dropeffect"?: "none" | "copy" | "execute" | "link" | "move" | "popup";
  1757. /**
  1758. * Identifies the element that provides an error message for the object.
  1759. * @see aria-invalid @see aria-describedby.
  1760. */
  1761. "aria-errormessage"?: string;
  1762. /** Indicates whether the element, or another grouping element it controls, is currently expanded or collapsed. */
  1763. "aria-expanded"?: boolean | "false" | "true";
  1764. /**
  1765. * Identifies the next element (or elements) in an alternate reading order of content which, at the user's discretion,
  1766. * allows assistive technology to override the general default of reading in document source order.
  1767. */
  1768. "aria-flowto"?: string;
  1769. /**
  1770. * Indicates an element's "grabbed" state in a drag-and-drop operation.
  1771. * @deprecated in ARIA 1.1
  1772. */
  1773. "aria-grabbed"?: boolean | "false" | "true";
  1774. /** Indicates the availability and type of interactive popup element, such as menu or dialog, that can be triggered by an element. */
  1775. "aria-haspopup"?: boolean | "false" | "true" | "menu" | "listbox" | "tree" | "grid" | "dialog";
  1776. /**
  1777. * Indicates whether the element is exposed to an accessibility API.
  1778. * @see aria-disabled.
  1779. */
  1780. "aria-hidden"?: boolean | "false" | "true";
  1781. /**
  1782. * Indicates the entered value does not conform to the format expected by the application.
  1783. * @see aria-errormessage.
  1784. */
  1785. "aria-invalid"?: boolean | "false" | "true" | "grammar" | "spelling";
  1786. /** Indicates keyboard shortcuts that an author has implemented to activate or give focus to an element. */
  1787. "aria-keyshortcuts"?: string;
  1788. /**
  1789. * Defines a string value that labels the current element.
  1790. * @see aria-labelledby.
  1791. */
  1792. "aria-label"?: string;
  1793. /**
  1794. * Identifies the element (or elements) that labels the current element.
  1795. * @see aria-describedby.
  1796. */
  1797. "aria-labelledby"?: string;
  1798. /** Defines the hierarchical level of an element within a structure. */
  1799. "aria-level"?: number | string;
  1800. /** 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. */
  1801. "aria-live"?: "off" | "assertive" | "polite";
  1802. /** Indicates whether an element is modal when displayed. */
  1803. "aria-modal"?: boolean | "false" | "true";
  1804. /** Indicates whether a text box accepts multiple lines of input or only a single line. */
  1805. "aria-multiline"?: boolean | "false" | "true";
  1806. /** Indicates that the user may select more than one item from the current selectable descendants. */
  1807. "aria-multiselectable"?: boolean | "false" | "true";
  1808. /** Indicates whether the element's orientation is horizontal, vertical, or unknown/ambiguous. */
  1809. "aria-orientation"?: "horizontal" | "vertical";
  1810. /**
  1811. * Identifies an element (or elements) in order to define a visual, functional, or contextual parent/child relationship
  1812. * between DOM elements where the DOM hierarchy cannot be used to represent the relationship.
  1813. * @see aria-controls.
  1814. */
  1815. "aria-owns"?: string;
  1816. /**
  1817. * Defines a short hint (a word or short phrase) intended to aid the user with data entry when the control has no value.
  1818. * A hint could be a sample value or a brief description of the expected format.
  1819. */
  1820. "aria-placeholder"?: string;
  1821. /**
  1822. * 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.
  1823. * @see aria-setsize.
  1824. */
  1825. "aria-posinset"?: number | string;
  1826. /**
  1827. * Indicates the current "pressed" state of toggle buttons.
  1828. * @see aria-checked @see aria-selected.
  1829. */
  1830. "aria-pressed"?: boolean | "false" | "mixed" | "true";
  1831. /**
  1832. * Indicates that the element is not editable, but is otherwise operable.
  1833. * @see aria-disabled.
  1834. */
  1835. "aria-readonly"?: boolean | "false" | "true";
  1836. /**
  1837. * Indicates what notifications the user agent will trigger when the accessibility tree within a live region is modified.
  1838. * @see aria-atomic.
  1839. */
  1840. "aria-relevant"?:
  1841. | "additions"
  1842. | "additions removals"
  1843. | "additions text"
  1844. | "all"
  1845. | "removals"
  1846. | "removals additions"
  1847. | "removals text"
  1848. | "text"
  1849. | "text additions"
  1850. | "text removals";
  1851. /** Indicates that user input is required on the element before a form may be submitted. */
  1852. "aria-required"?: boolean | "false" | "true";
  1853. /** Defines a human-readable, author-localized description for the role of an element. */
  1854. "aria-roledescription"?: string;
  1855. /**
  1856. * Defines the total number of rows in a table, grid, or treegrid.
  1857. * @see aria-rowindex.
  1858. */
  1859. "aria-rowcount"?: number | string;
  1860. /**
  1861. * Defines an element's row index or position with respect to the total number of rows within a table, grid, or treegrid.
  1862. * @see aria-rowcount @see aria-rowspan.
  1863. */
  1864. "aria-rowindex"?: number | string;
  1865. /**
  1866. * Defines the number of rows spanned by a cell or gridcell within a table, grid, or treegrid.
  1867. * @see aria-rowindex @see aria-colspan.
  1868. */
  1869. "aria-rowspan"?: number | string;
  1870. /**
  1871. * Indicates the current "selected" state of various widgets.
  1872. * @see aria-checked @see aria-pressed.
  1873. */
  1874. "aria-selected"?: boolean | "false" | "true";
  1875. /**
  1876. * 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.
  1877. * @see aria-posinset.
  1878. */
  1879. "aria-setsize"?: number | string;
  1880. /** Indicates if items in a table or grid are sorted in ascending or descending order. */
  1881. "aria-sort"?: "none" | "ascending" | "descending" | "other";
  1882. /** Defines the maximum allowed value for a range widget. */
  1883. "aria-valuemax"?: number | string;
  1884. /** Defines the minimum allowed value for a range widget. */
  1885. "aria-valuemin"?: number | string;
  1886. /**
  1887. * Defines the current value for a range widget.
  1888. * @see aria-valuetext.
  1889. */
  1890. "aria-valuenow"?: number | string;
  1891. /** Defines the human readable text alternative of aria-valuenow for a range widget. */
  1892. "aria-valuetext"?: string;
  1893. }
  1894. interface HTMLAttributes<T> extends AriaAttributes, DOMAttributes<T> {
  1895. accessKey?: string;
  1896. className?: string;
  1897. class?: string;
  1898. contenteditable?: boolean | "inherit";
  1899. contextmenu?: string;
  1900. dir?: HTMLDir;
  1901. draggable?: boolean;
  1902. hidden?: boolean;
  1903. id?: string;
  1904. lang?: string;
  1905. spellcheck?: boolean;
  1906. style?: CSSProperties | string;
  1907. tabindex?: number | string;
  1908. title?: string;
  1909. translate?: "yes" | "no";
  1910. about?: string;
  1911. datatype?: string;
  1912. inlist?: any;
  1913. prefix?: string;
  1914. property?: string;
  1915. resource?: string;
  1916. typeof?: string;
  1917. vocab?: string;
  1918. role?:
  1919. | "alert"
  1920. | "alertdialog"
  1921. | "application"
  1922. | "article"
  1923. | "banner"
  1924. | "button"
  1925. | "cell"
  1926. | "checkbox"
  1927. | "columnheader"
  1928. | "combobox"
  1929. | "complementary"
  1930. | "contentinfo"
  1931. | "definition"
  1932. | "dialog"
  1933. | "directory"
  1934. | "document"
  1935. | "feed"
  1936. | "figure"
  1937. | "form"
  1938. | "grid"
  1939. | "gridcell"
  1940. | "group"
  1941. | "heading"
  1942. | "img"
  1943. | "link"
  1944. | "list"
  1945. | "listbox"
  1946. | "listitem"
  1947. | "log"
  1948. | "main"
  1949. | "marquee"
  1950. | "math"
  1951. | "menu"
  1952. | "menubar"
  1953. | "menuitem"
  1954. | "menuitemcheckbox"
  1955. | "menuitemradio"
  1956. | "navigation"
  1957. | "none"
  1958. | "note"
  1959. | "option"
  1960. | "presentation"
  1961. | "progressbar"
  1962. | "radio"
  1963. | "radiogroup"
  1964. | "region"
  1965. | "row"
  1966. | "rowgroup"
  1967. | "rowheader"
  1968. | "scrollbar"
  1969. | "search"
  1970. | "searchbox"
  1971. | "separator"
  1972. | "slider"
  1973. | "spinbutton"
  1974. | "status"
  1975. | "switch"
  1976. | "tab"
  1977. | "table"
  1978. | "tablist"
  1979. | "tabpanel"
  1980. | "term"
  1981. | "textbox"
  1982. | "timer"
  1983. | "toolbar"
  1984. | "tooltip"
  1985. | "tree"
  1986. | "treegrid"
  1987. | "treeitem";
  1988. autocapitalize?: HTMLAutocapitalize;
  1989. color?: string;
  1990. itemprop?: string;
  1991. itemscope?: boolean;
  1992. itemtype?: string;
  1993. itemid?: string;
  1994. itemref?: string;
  1995. align?: "start" | "end" | "center" | "baseline" | "stretch" | "left" | "right";
  1996. part?: string;
  1997. exportparts?: string;
  1998. inputmode?: "none" | "text" | "tel" | "url" | "email" | "numeric" | "decimal" | "search";
  1999. contentEditable?: boolean | "inherit";
  2000. contextMenu?: string;
  2001. tabIndex?: number | string;
  2002. autoCapitalize?: HTMLAutocapitalize;
  2003. itemProp?: string;
  2004. itemScope?: boolean;
  2005. itemType?: string;
  2006. itemId?: string;
  2007. itemRef?: string;
  2008. exportParts?: string;
  2009. inputMode?: "none" | "text" | "tel" | "url" | "email" | "numeric" | "decimal" | "search";
  2010. }
  2011. interface AnchorHTMLAttributes<T> extends HTMLAttributes<T> {
  2012. download?: any;
  2013. href?: string;
  2014. hreflang?: string;
  2015. media?: string;
  2016. ping?: string;
  2017. referrerpolicy?: HTMLReferrerPolicy;
  2018. rel?: string;
  2019. target?: string;
  2020. type?: string;
  2021. referrerPolicy?: HTMLReferrerPolicy;
  2022. }
  2023. interface AudioHTMLAttributes<T> extends MediaHTMLAttributes<T> {}
  2024. interface AreaHTMLAttributes<T> extends HTMLAttributes<T> {
  2025. alt?: string;
  2026. coords?: string;
  2027. download?: any;
  2028. href?: string;
  2029. hreflang?: string;
  2030. ping?: string;
  2031. referrerpolicy?: HTMLReferrerPolicy;
  2032. rel?: string;
  2033. shape?: "rect" | "circle" | "poly" | "default";
  2034. target?: string;
  2035. referrerPolicy?: HTMLReferrerPolicy;
  2036. }
  2037. interface BaseHTMLAttributes<T> extends HTMLAttributes<T> {
  2038. href?: string;
  2039. target?: string;
  2040. }
  2041. interface BlockquoteHTMLAttributes<T> extends HTMLAttributes<T> {
  2042. cite?: string;
  2043. }
  2044. interface ButtonHTMLAttributes<T> extends HTMLAttributes<T> {
  2045. autofocus?: boolean;
  2046. disabled?: boolean;
  2047. form?: string;
  2048. formaction?: string;
  2049. formenctype?: HTMLFormEncType;
  2050. formmethod?: HTMLFormMethod;
  2051. formnovalidate?: boolean;
  2052. formtarget?: string;
  2053. name?: string;
  2054. type?: "submit" | "reset" | "button";
  2055. value?: string;
  2056. formAction?: string;
  2057. formEnctype?: HTMLFormEncType;
  2058. formMethod?: HTMLFormMethod;
  2059. formNoValidate?: boolean;
  2060. formTarget?: string;
  2061. }
  2062. interface CanvasHTMLAttributes<T> extends HTMLAttributes<T> {
  2063. width?: number | string;
  2064. height?: number | string;
  2065. }
  2066. interface ColHTMLAttributes<T> extends HTMLAttributes<T> {
  2067. span?: number | string;
  2068. width?: number | string;
  2069. }
  2070. interface ColgroupHTMLAttributes<T> extends HTMLAttributes<T> {
  2071. span?: number | string;
  2072. }
  2073. interface DataHTMLAttributes<T> extends HTMLAttributes<T> {
  2074. value?: string | string[] | number;
  2075. }
  2076. interface DetailsHtmlAttributes<T> extends HTMLAttributes<T> {
  2077. open?: boolean;
  2078. }
  2079. interface DialogHtmlAttributes<T> extends HTMLAttributes<T> {
  2080. open?: boolean;
  2081. }
  2082. interface EmbedHTMLAttributes<T> extends HTMLAttributes<T> {
  2083. height?: number | string;
  2084. src?: string;
  2085. type?: string;
  2086. width?: number | string;
  2087. }
  2088. interface FieldsetHTMLAttributes<T> extends HTMLAttributes<T> {
  2089. disabled?: boolean;
  2090. form?: string;
  2091. name?: string;
  2092. }
  2093. interface FormHTMLAttributes<T> extends HTMLAttributes<T> {
  2094. acceptcharset?: string;
  2095. action?: string;
  2096. autocomplete?: string;
  2097. encoding?: HTMLFormEncType;
  2098. enctype?: HTMLFormEncType;
  2099. method?: HTMLFormMethod;
  2100. name?: string;
  2101. novalidate?: boolean;
  2102. target?: string;
  2103. acceptCharset?: string;
  2104. noValidate?: boolean;
  2105. }
  2106. interface IframeHTMLAttributes<T> extends HTMLAttributes<T> {
  2107. allow?: string;
  2108. allowfullscreen?: boolean;
  2109. height?: number | string;
  2110. name?: string;
  2111. referrerpolicy?: HTMLReferrerPolicy;
  2112. sandbox?: HTMLIframeSandbox;
  2113. src?: string;
  2114. srcdoc?: string;
  2115. width?: number | string;
  2116. referrerPolicy?: HTMLReferrerPolicy;
  2117. }
  2118. interface ImgHTMLAttributes<T> extends HTMLAttributes<T> {
  2119. alt?: string;
  2120. crossorigin?: HTMLCrossorigin;
  2121. decoding?: "sync" | "async" | "auto";
  2122. height?: number | string;
  2123. loading?: "eager" | "lazy";
  2124. referrerpolicy?: HTMLReferrerPolicy;
  2125. referrerPolicy?: HTMLReferrerPolicy;
  2126. sizes?: string;
  2127. src?: string;
  2128. srcset?: string;
  2129. srcSet?: string;
  2130. usemap?: string;
  2131. useMap?: string;
  2132. width?: number | string;
  2133. crossOrigin?: HTMLCrossorigin;
  2134. }
  2135. interface InputHTMLAttributes<T> extends HTMLAttributes<T> {
  2136. accept?: string;
  2137. alt?: string;
  2138. autocomplete?: string;
  2139. autofocus?: boolean;
  2140. capture?: boolean | string;
  2141. checked?: boolean;
  2142. crossorigin?: HTMLCrossorigin;
  2143. disabled?: boolean;
  2144. form?: string;
  2145. formaction?: string;
  2146. formenctype?: HTMLFormEncType;
  2147. formmethod?: HTMLFormMethod;
  2148. formnovalidate?: boolean;
  2149. formtarget?: string;
  2150. height?: number | string;
  2151. list?: string;
  2152. max?: number | string;
  2153. maxlength?: number | string;
  2154. min?: number | string;
  2155. minlength?: number | string;
  2156. multiple?: boolean;
  2157. name?: string;
  2158. pattern?: string;
  2159. placeholder?: string;
  2160. readonly?: boolean;
  2161. required?: boolean;
  2162. size?: number | string;
  2163. src?: string;
  2164. step?: number | string;
  2165. type?: string;
  2166. value?: string | string[] | number;
  2167. width?: number | string;
  2168. crossOrigin?: HTMLCrossorigin;
  2169. formAction?: string;
  2170. formEnctype?: HTMLFormEncType;
  2171. formMethod?: HTMLFormMethod;
  2172. formNoValidate?: boolean;
  2173. formTarget?: string;
  2174. maxLength?: number | string;
  2175. minLength?: number | string;
  2176. readOnly?: boolean;
  2177. }
  2178. interface InsHTMLAttributes<T> extends HTMLAttributes<T> {
  2179. cite?: string;
  2180. dateTime?: string;
  2181. }
  2182. interface KeygenHTMLAttributes<T> extends HTMLAttributes<T> {
  2183. autofocus?: boolean;
  2184. challenge?: string;
  2185. disabled?: boolean;
  2186. form?: string;
  2187. keytype?: string;
  2188. keyparams?: string;
  2189. name?: string;
  2190. }
  2191. interface LabelHTMLAttributes<T> extends HTMLAttributes<T> {
  2192. htmlFor?: string;
  2193. for?: string;
  2194. form?: string;
  2195. }
  2196. interface LiHTMLAttributes<T> extends HTMLAttributes<T> {
  2197. value?: number | string;
  2198. }
  2199. interface LinkHTMLAttributes<T> extends HTMLAttributes<T> {
  2200. as?: HTMLLinkAs;
  2201. crossorigin?: HTMLCrossorigin;
  2202. disabled?: boolean;
  2203. href?: string;
  2204. hreflang?: string;
  2205. integrity?: string;
  2206. media?: string;
  2207. referrerpolicy?: HTMLReferrerPolicy;
  2208. rel?: string;
  2209. sizes?: string;
  2210. type?: string;
  2211. crossOrigin?: HTMLCrossorigin;
  2212. referrerPolicy?: HTMLReferrerPolicy;
  2213. }
  2214. interface MapHTMLAttributes<T> extends HTMLAttributes<T> {
  2215. name?: string;
  2216. }
  2217. interface MediaHTMLAttributes<T> extends HTMLAttributes<T> {
  2218. autoplay?: boolean;
  2219. controls?: boolean;
  2220. crossorigin?: HTMLCrossorigin;
  2221. loop?: boolean;
  2222. mediagroup?: string;
  2223. muted?: boolean;
  2224. preload?: "none" | "metadata" | "auto" | "";
  2225. src?: string;
  2226. crossOrigin?: HTMLCrossorigin;
  2227. mediaGroup?: string;
  2228. }
  2229. interface MenuHTMLAttributes<T> extends HTMLAttributes<T> {
  2230. label?: string;
  2231. type?: "context" | "toolbar";
  2232. }
  2233. interface MetaHTMLAttributes<T> extends HTMLAttributes<T> {
  2234. charset?: string;
  2235. content?: string;
  2236. httpequiv?: string;
  2237. name?: string;
  2238. httpEquiv?: string;
  2239. }
  2240. interface MeterHTMLAttributes<T> extends HTMLAttributes<T> {
  2241. form?: string;
  2242. high?: number | string;
  2243. low?: number | string;
  2244. max?: number | string;
  2245. min?: number | string;
  2246. optimum?: number | string;
  2247. value?: string | string[] | number;
  2248. }
  2249. interface QuoteHTMLAttributes<T> extends HTMLAttributes<T> {
  2250. cite?: string;
  2251. }
  2252. interface ObjectHTMLAttributes<T> extends HTMLAttributes<T> {
  2253. data?: string;
  2254. form?: string;
  2255. height?: number | string;
  2256. name?: string;
  2257. type?: string;
  2258. usemap?: string;
  2259. width?: number | string;
  2260. useMap?: string;
  2261. }
  2262. interface OlHTMLAttributes<T> extends HTMLAttributes<T> {
  2263. reversed?: boolean;
  2264. start?: number | string;
  2265. type?: "1" | "a" | "A" | "i" | "I";
  2266. }
  2267. interface OptgroupHTMLAttributes<T> extends HTMLAttributes<T> {
  2268. disabled?: boolean;
  2269. label?: string;
  2270. }
  2271. interface OptionHTMLAttributes<T> extends HTMLAttributes<T> {
  2272. disabled?: boolean;
  2273. label?: string;
  2274. selected?: boolean;
  2275. value?: string | string[] | number;
  2276. }
  2277. interface OutputHTMLAttributes<T> extends HTMLAttributes<T> {
  2278. form?: string;
  2279. htmlFor?: string;
  2280. for?: string;
  2281. name?: string;
  2282. }
  2283. interface ParamHTMLAttributes<T> extends HTMLAttributes<T> {
  2284. name?: string;
  2285. value?: string | string[] | number;
  2286. }
  2287. interface ProgressHTMLAttributes<T> extends HTMLAttributes<T> {
  2288. max?: number | string;
  2289. value?: string | string[] | number;
  2290. }
  2291. interface ScriptHTMLAttributes<T> extends HTMLAttributes<T> {
  2292. async?: boolean;
  2293. charset?: string;
  2294. crossorigin?: HTMLCrossorigin;
  2295. defer?: boolean;
  2296. integrity?: string;
  2297. nomodule?: boolean;
  2298. nonce?: string;
  2299. referrerpolicy?: HTMLReferrerPolicy;
  2300. src?: string;
  2301. type?: string;
  2302. crossOrigin?: HTMLCrossorigin;
  2303. noModule?: boolean;
  2304. referrerPolicy?: HTMLReferrerPolicy;
  2305. }
  2306. interface SelectHTMLAttributes<T> extends HTMLAttributes<T> {
  2307. autocomplete?: string;
  2308. autofocus?: boolean;
  2309. disabled?: boolean;
  2310. form?: string;
  2311. multiple?: boolean;
  2312. name?: string;
  2313. required?: boolean;
  2314. size?: number | string;
  2315. value?: string | string[] | number;
  2316. }
  2317. interface HTMLSlotElementAttributes<T = HTMLSlotElement> extends HTMLAttributes<T> {
  2318. name?: string;
  2319. }
  2320. interface SourceHTMLAttributes<T> extends HTMLAttributes<T> {
  2321. media?: string;
  2322. sizes?: string;
  2323. src?: string;
  2324. srcset?: string;
  2325. type?: string;
  2326. }
  2327. interface StyleHTMLAttributes<T> extends HTMLAttributes<T> {
  2328. media?: string;
  2329. nonce?: string;
  2330. scoped?: boolean;
  2331. type?: string;
  2332. }
  2333. interface TdHTMLAttributes<T> extends HTMLAttributes<T> {
  2334. colspan?: number | string;
  2335. headers?: string;
  2336. rowspan?: number | string;
  2337. colSpan?: number | string;
  2338. rowSpan?: number | string;
  2339. }
  2340. interface TextareaHTMLAttributes<T> extends HTMLAttributes<T> {
  2341. autocomplete?: string;
  2342. autofocus?: boolean;
  2343. cols?: number | string;
  2344. dirname?: string;
  2345. disabled?: boolean;
  2346. form?: string;
  2347. maxlength?: number | string;
  2348. minlength?: number | string;
  2349. name?: string;
  2350. placeholder?: string;
  2351. readonly?: boolean;
  2352. required?: boolean;
  2353. rows?: number | string;
  2354. value?: string | string[] | number;
  2355. wrap?: "hard" | "soft" | "off";
  2356. maxLength?: number | string;
  2357. minLength?: number | string;
  2358. readOnly?: boolean;
  2359. }
  2360. interface ThHTMLAttributes<T> extends HTMLAttributes<T> {
  2361. colspan?: number | string;
  2362. headers?: string;
  2363. rowspan?: number | string;
  2364. colSpan?: number | string;
  2365. rowSpan?: number | string;
  2366. scope?: 'col' | 'row' | 'rowgroup' | 'colgroup';
  2367. }
  2368. interface TimeHTMLAttributes<T> extends HTMLAttributes<T> {
  2369. datetime?: string;
  2370. dateTime?: string;
  2371. }
  2372. interface TrackHTMLAttributes<T> extends HTMLAttributes<T> {
  2373. default?: boolean;
  2374. kind?: "subtitles" | "captions" | "descriptions" | "chapters" | "metadata";
  2375. label?: string;
  2376. src?: string;
  2377. srclang?: string;
  2378. }
  2379. interface VideoHTMLAttributes<T> extends MediaHTMLAttributes<T> {
  2380. height?: number | string;
  2381. playsinline?: boolean;
  2382. poster?: string;
  2383. width?: number | string;
  2384. }
  2385. type SVGPreserveAspectRatio =
  2386. | "none"
  2387. | "xMinYMin"
  2388. | "xMidYMin"
  2389. | "xMaxYMin"
  2390. | "xMinYMid"
  2391. | "xMidYMid"
  2392. | "xMaxYMid"
  2393. | "xMinYMax"
  2394. | "xMidYMax"
  2395. | "xMaxYMax"
  2396. | "xMinYMin meet"
  2397. | "xMidYMin meet"
  2398. | "xMaxYMin meet"
  2399. | "xMinYMid meet"
  2400. | "xMidYMid meet"
  2401. | "xMaxYMid meet"
  2402. | "xMinYMax meet"
  2403. | "xMidYMax meet"
  2404. | "xMaxYMax meet"
  2405. | "xMinYMin slice"
  2406. | "xMidYMin slice"
  2407. | "xMaxYMin slice"
  2408. | "xMinYMid slice"
  2409. | "xMidYMid slice"
  2410. | "xMaxYMid slice"
  2411. | "xMinYMax slice"
  2412. | "xMidYMax slice"
  2413. | "xMaxYMax slice";
  2414. type ImagePreserveAspectRatio =
  2415. | SVGPreserveAspectRatio
  2416. | "defer none"
  2417. | "defer xMinYMin"
  2418. | "defer xMidYMin"
  2419. | "defer xMaxYMin"
  2420. | "defer xMinYMid"
  2421. | "defer xMidYMid"
  2422. | "defer xMaxYMid"
  2423. | "defer xMinYMax"
  2424. | "defer xMidYMax"
  2425. | "defer xMaxYMax"
  2426. | "defer xMinYMin meet"
  2427. | "defer xMidYMin meet"
  2428. | "defer xMaxYMin meet"
  2429. | "defer xMinYMid meet"
  2430. | "defer xMidYMid meet"
  2431. | "defer xMaxYMid meet"
  2432. | "defer xMinYMax meet"
  2433. | "defer xMidYMax meet"
  2434. | "defer xMaxYMax meet"
  2435. | "defer xMinYMin slice"
  2436. | "defer xMidYMin slice"
  2437. | "defer xMaxYMin slice"
  2438. | "defer xMinYMid slice"
  2439. | "defer xMidYMid slice"
  2440. | "defer xMaxYMid slice"
  2441. | "defer xMinYMax slice"
  2442. | "defer xMidYMax slice"
  2443. | "defer xMaxYMax slice";
  2444. type SVGUnits = "userSpaceOnUse" | "objectBoundingBox";
  2445. interface CoreSVGAttributes<T> extends DOMAttributes<T> {
  2446. id?: string;
  2447. lang?: string;
  2448. tabIndex?: number | string;
  2449. tabindex?: number | string;
  2450. }
  2451. interface StylableSVGAttributes {
  2452. class?: string;
  2453. className?: string;
  2454. style?: CSSProperties | string;
  2455. }
  2456. interface TransformableSVGAttributes {
  2457. transform?: string;
  2458. }
  2459. interface ConditionalProcessingSVGAttributes {
  2460. requiredExtensions?: string;
  2461. requiredFeatures?: string;
  2462. systemLanguage?: string;
  2463. }
  2464. interface ExternalResourceSVGAttributes {
  2465. externalResourcesRequired?: "true" | "false";
  2466. }
  2467. interface AnimationTimingSVGAttributes {
  2468. begin?: string;
  2469. dur?: string;
  2470. end?: string;
  2471. min?: string;
  2472. max?: string;
  2473. restart?: "always" | "whenNotActive" | "never";
  2474. repeatCount?: number | "indefinite";
  2475. repeatDur?: string;
  2476. fill?: "freeze" | "remove";
  2477. }
  2478. interface AnimationValueSVGAttributes {
  2479. calcMode?: "discrete" | "linear" | "paced" | "spline";
  2480. values?: string;
  2481. keyTimes?: string;
  2482. keySplines?: string;
  2483. from?: number | string;
  2484. to?: number | string;
  2485. by?: number | string;
  2486. }
  2487. interface AnimationAdditionSVGAttributes {
  2488. attributeName?: string;
  2489. additive?: "replace" | "sum";
  2490. accumulate?: "none" | "sum";
  2491. }
  2492. interface AnimationAttributeTargetSVGAttributes {
  2493. attributeName?: string;
  2494. attributeType?: "CSS" | "XML" | "auto";
  2495. }
  2496. interface PresentationSVGAttributes {
  2497. "alignment-baseline"?:
  2498. | "auto"
  2499. | "baseline"
  2500. | "before-edge"
  2501. | "text-before-edge"
  2502. | "middle"
  2503. | "central"
  2504. | "after-edge"
  2505. | "text-after-edge"
  2506. | "ideographic"
  2507. | "alphabetic"
  2508. | "hanging"
  2509. | "mathematical"
  2510. | "inherit";
  2511. "baseline-shift"?: number | string;
  2512. clip?: string;
  2513. "clip-path"?: string;
  2514. "clip-rule"?: "nonzero" | "evenodd" | "inherit";
  2515. color?: string;
  2516. "color-interpolation"?: "auto" | "sRGB" | "linearRGB" | "inherit";
  2517. "color-interpolation-filters"?: "auto" | "sRGB" | "linearRGB" | "inherit";
  2518. "color-profile"?: string;
  2519. "color-rendering"?: "auto" | "optimizeSpeed" | "optimizeQuality" | "inherit";
  2520. cursor?: string;
  2521. direction?: "ltr" | "rtl" | "inherit";
  2522. display?: string;
  2523. "dominant-baseline"?:
  2524. | "auto"
  2525. | "text-bottom"
  2526. | "alphabetic"
  2527. | "ideographic"
  2528. | "middle"
  2529. | "central"
  2530. | "mathematical"
  2531. | "hanging"
  2532. | "text-top"
  2533. | "inherit";
  2534. "enable-background"?: string;
  2535. fill?: string;
  2536. "fill-opacity"?: number | string | "inherit";
  2537. "fill-rule"?: "nonzero" | "evenodd" | "inherit";
  2538. filter?: string;
  2539. "flood-color"?: string;
  2540. "flood-opacity"?: number | string | "inherit";
  2541. "font-family"?: string;
  2542. "font-size"?: string;
  2543. "font-size-adjust"?: number | string;
  2544. "font-stretch"?: string;
  2545. "font-style"?: "normal" | "italic" | "oblique" | "inherit";
  2546. "font-variant"?: string;
  2547. "font-weight"?: number | string;
  2548. "glyph-orientation-horizontal"?: string;
  2549. "glyph-orientation-vertical"?: string;
  2550. "image-rendering"?: "auto" | "optimizeQuality" | "optimizeSpeed" | "inherit";
  2551. kerning?: string;
  2552. "letter-spacing"?: number | string;
  2553. "lighting-color"?: string;
  2554. "marker-end"?: string;
  2555. "marker-mid"?: string;
  2556. "marker-start"?: string;
  2557. mask?: string;
  2558. opacity?: number | string | "inherit";
  2559. overflow?: "visible" | "hidden" | "scroll" | "auto" | "inherit";
  2560. "pointer-events"?:
  2561. | "bounding-box"
  2562. | "visiblePainted"
  2563. | "visibleFill"
  2564. | "visibleStroke"
  2565. | "visible"
  2566. | "painted"
  2567. | "color"
  2568. | "fill"
  2569. | "stroke"
  2570. | "all"
  2571. | "none"
  2572. | "inherit";
  2573. "shape-rendering"?: "auto" | "optimizeSpeed" | "crispEdges" | "geometricPrecision" | "inherit";
  2574. "stop-color"?: string;
  2575. "stop-opacity"?: number | string | "inherit";
  2576. stroke?: string;
  2577. "stroke-dasharray"?: string;
  2578. "stroke-dashoffset"?: number | string;
  2579. "stroke-linecap"?: "butt" | "round" | "square" | "inherit";
  2580. "stroke-linejoin"?: "arcs" | "bevel" | "miter" | "miter-clip" | "round" | "inherit";
  2581. "stroke-miterlimit"?: number | string | "inherit";
  2582. "stroke-opacity"?: number | string | "inherit";
  2583. "stroke-width"?: number | string;
  2584. "text-anchor"?: "start" | "middle" | "end" | "inherit";
  2585. "text-decoration"?: "none" | "underline" | "overline" | "line-through" | "blink" | "inherit";
  2586. "text-rendering"?:
  2587. | "auto"
  2588. | "optimizeSpeed"
  2589. | "optimizeLegibility"
  2590. | "geometricPrecision"
  2591. | "inherit";
  2592. "unicode-bidi"?: string;
  2593. visibility?: "visible" | "hidden" | "collapse" | "inherit";
  2594. "word-spacing"?: number | string;
  2595. "writing-mode"?: "lr-tb" | "rl-tb" | "tb-rl" | "lr" | "rl" | "tb" | "inherit";
  2596. }
  2597. interface AnimationElementSVGAttributes<T>
  2598. extends CoreSVGAttributes<T>,
  2599. ExternalResourceSVGAttributes,
  2600. ConditionalProcessingSVGAttributes {}
  2601. interface ContainerElementSVGAttributes<T>
  2602. extends CoreSVGAttributes<T>,
  2603. ShapeElementSVGAttributes<T>,
  2604. Pick<
  2605. PresentationSVGAttributes,
  2606. | "clip-path"
  2607. | "mask"
  2608. | "cursor"
  2609. | "opacity"
  2610. | "filter"
  2611. | "enable-background"
  2612. | "color-interpolation"
  2613. | "color-rendering"
  2614. > {}
  2615. interface FilterPrimitiveElementSVGAttributes<T>
  2616. extends CoreSVGAttributes<T>,
  2617. Pick<PresentationSVGAttributes, "color-interpolation-filters"> {
  2618. x?: number | string;
  2619. y?: number | string;
  2620. width?: number | string;
  2621. height?: number | string;
  2622. result?: string;
  2623. }
  2624. interface SingleInputFilterSVGAttributes {
  2625. in?: string;
  2626. }
  2627. interface DoubleInputFilterSVGAttributes {
  2628. in?: string;
  2629. in2?: string;
  2630. }
  2631. interface FitToViewBoxSVGAttributes {
  2632. viewBox?: string;
  2633. preserveAspectRatio?: SVGPreserveAspectRatio;
  2634. }
  2635. interface GradientElementSVGAttributes<T>
  2636. extends CoreSVGAttributes<T>,
  2637. ExternalResourceSVGAttributes,
  2638. StylableSVGAttributes {
  2639. gradientUnits?: SVGUnits;
  2640. gradientTransform?: string;
  2641. spreadMethod?: "pad" | "reflect" | "repeat";
  2642. }
  2643. interface GraphicsElementSVGAttributes<T>
  2644. extends CoreSVGAttributes<T>,
  2645. Pick<
  2646. PresentationSVGAttributes,
  2647. | "clip-rule"
  2648. | "mask"
  2649. | "pointer-events"
  2650. | "cursor"
  2651. | "opacity"
  2652. | "filter"
  2653. | "display"
  2654. | "visibility"
  2655. | "color-interpolation"
  2656. | "color-rendering"
  2657. > {}
  2658. interface LightSourceElementSVGAttributes<T> extends CoreSVGAttributes<T> {}
  2659. interface NewViewportSVGAttributes<T>
  2660. extends CoreSVGAttributes<T>,
  2661. Pick<PresentationSVGAttributes, "overflow" | "clip"> {
  2662. viewBox?: string;
  2663. }
  2664. interface ShapeElementSVGAttributes<T>
  2665. extends CoreSVGAttributes<T>,
  2666. Pick<
  2667. PresentationSVGAttributes,
  2668. | "color"
  2669. | "fill"
  2670. | "fill-rule"
  2671. | "fill-opacity"
  2672. | "stroke"
  2673. | "stroke-width"
  2674. | "stroke-linecap"
  2675. | "stroke-linejoin"
  2676. | "stroke-miterlimit"
  2677. | "stroke-dasharray"
  2678. | "stroke-dashoffset"
  2679. | "stroke-opacity"
  2680. | "shape-rendering"
  2681. > {}
  2682. interface TextContentElementSVGAttributes<T>
  2683. extends CoreSVGAttributes<T>,
  2684. Pick<
  2685. PresentationSVGAttributes,
  2686. | "font-family"
  2687. | "font-style"
  2688. | "font-variant"
  2689. | "font-weight"
  2690. | "font-stretch"
  2691. | "font-size"
  2692. | "font-size-adjust"
  2693. | "kerning"
  2694. | "letter-spacing"
  2695. | "word-spacing"
  2696. | "text-decoration"
  2697. | "glyph-orientation-horizontal"
  2698. | "glyph-orientation-vertical"
  2699. | "direction"
  2700. | "unicode-bidi"
  2701. | "text-anchor"
  2702. | "dominant-baseline"
  2703. | "color"
  2704. | "fill"
  2705. | "fill-rule"
  2706. | "fill-opacity"
  2707. | "stroke"
  2708. | "stroke-width"
  2709. | "stroke-linecap"
  2710. | "stroke-linejoin"
  2711. | "stroke-miterlimit"
  2712. | "stroke-dasharray"
  2713. | "stroke-dashoffset"
  2714. | "stroke-opacity"
  2715. > {}
  2716. interface ZoomAndPanSVGAttributes {
  2717. zoomAndPan?: "disable" | "magnify";
  2718. }
  2719. interface AnimateSVGAttributes<T>
  2720. extends AnimationElementSVGAttributes<T>,
  2721. AnimationAttributeTargetSVGAttributes,
  2722. AnimationTimingSVGAttributes,
  2723. AnimationValueSVGAttributes,
  2724. AnimationAdditionSVGAttributes,
  2725. Pick<PresentationSVGAttributes, "color-interpolation" | "color-rendering"> {}
  2726. interface AnimateMotionSVGAttributes<T>
  2727. extends AnimationElementSVGAttributes<T>,
  2728. AnimationTimingSVGAttributes,
  2729. AnimationValueSVGAttributes,
  2730. AnimationAdditionSVGAttributes {
  2731. path?: string;
  2732. keyPoints?: string;
  2733. rotate?: number | string | "auto" | "auto-reverse";
  2734. origin?: "default";
  2735. }
  2736. interface AnimateTransformSVGAttributes<T>
  2737. extends AnimationElementSVGAttributes<T>,
  2738. AnimationAttributeTargetSVGAttributes,
  2739. AnimationTimingSVGAttributes,
  2740. AnimationValueSVGAttributes,
  2741. AnimationAdditionSVGAttributes {
  2742. type?: "translate" | "scale" | "rotate" | "skewX" | "skewY";
  2743. }
  2744. interface CircleSVGAttributes<T>
  2745. extends GraphicsElementSVGAttributes<T>,
  2746. ShapeElementSVGAttributes<T>,
  2747. ConditionalProcessingSVGAttributes,
  2748. StylableSVGAttributes,
  2749. TransformableSVGAttributes {
  2750. cx?: number | string;
  2751. cy?: number | string;
  2752. r?: number | string;
  2753. }
  2754. interface ClipPathSVGAttributes<T>
  2755. extends CoreSVGAttributes<T>,
  2756. ConditionalProcessingSVGAttributes,
  2757. ExternalResourceSVGAttributes,
  2758. StylableSVGAttributes,
  2759. TransformableSVGAttributes,
  2760. Pick<PresentationSVGAttributes, "clip-path"> {
  2761. clipPathUnits?: SVGUnits;
  2762. }
  2763. interface DefsSVGAttributes<T>
  2764. extends ContainerElementSVGAttributes<T>,
  2765. ConditionalProcessingSVGAttributes,
  2766. ExternalResourceSVGAttributes,
  2767. StylableSVGAttributes,
  2768. TransformableSVGAttributes {}
  2769. interface DescSVGAttributes<T> extends CoreSVGAttributes<T>, StylableSVGAttributes {}
  2770. interface EllipseSVGAttributes<T>
  2771. extends GraphicsElementSVGAttributes<T>,
  2772. ShapeElementSVGAttributes<T>,
  2773. ConditionalProcessingSVGAttributes,
  2774. ExternalResourceSVGAttributes,
  2775. StylableSVGAttributes,
  2776. TransformableSVGAttributes {
  2777. cx?: number | string;
  2778. cy?: number | string;
  2779. rx?: number | string;
  2780. ry?: number | string;
  2781. }
  2782. interface FeBlendSVGAttributes<T>
  2783. extends FilterPrimitiveElementSVGAttributes<T>,
  2784. DoubleInputFilterSVGAttributes,
  2785. StylableSVGAttributes {
  2786. mode?: "normal" | "multiply" | "screen" | "darken" | "lighten";
  2787. }
  2788. interface FeColorMatrixSVGAttributes<T>
  2789. extends FilterPrimitiveElementSVGAttributes<T>,
  2790. SingleInputFilterSVGAttributes,
  2791. StylableSVGAttributes {
  2792. type?: "matrix" | "saturate" | "hueRotate" | "luminanceToAlpha";
  2793. values?: string;
  2794. }
  2795. interface FeComponentTransferSVGAttributes<T>
  2796. extends FilterPrimitiveElementSVGAttributes<T>,
  2797. SingleInputFilterSVGAttributes,
  2798. StylableSVGAttributes {}
  2799. interface FeCompositeSVGAttributes<T>
  2800. extends FilterPrimitiveElementSVGAttributes<T>,
  2801. DoubleInputFilterSVGAttributes,
  2802. StylableSVGAttributes {
  2803. operator?: "over" | "in" | "out" | "atop" | "xor" | "arithmetic";
  2804. k1?: number | string;
  2805. k2?: number | string;
  2806. k3?: number | string;
  2807. k4?: number | string;
  2808. }
  2809. interface FeConvolveMatrixSVGAttributes<T>
  2810. extends FilterPrimitiveElementSVGAttributes<T>,
  2811. SingleInputFilterSVGAttributes,
  2812. StylableSVGAttributes {
  2813. order?: number | string;
  2814. kernelMatrix?: string;
  2815. divisor?: number | string;
  2816. bias?: number | string;
  2817. targetX?: number | string;
  2818. targetY?: number | string;
  2819. edgeMode?: "duplicate" | "wrap" | "none";
  2820. kernelUnitLength?: number | string;
  2821. preserveAlpha?: "true" | "false";
  2822. }
  2823. interface FeDiffuseLightingSVGAttributes<T>
  2824. extends FilterPrimitiveElementSVGAttributes<T>,
  2825. SingleInputFilterSVGAttributes,
  2826. StylableSVGAttributes,
  2827. Pick<PresentationSVGAttributes, "color" | "lighting-color"> {
  2828. surfaceScale?: number | string;
  2829. diffuseConstant?: number | string;
  2830. kernelUnitLength?: number | string;
  2831. }
  2832. interface FeDisplacementMapSVGAttributes<T>
  2833. extends FilterPrimitiveElementSVGAttributes<T>,
  2834. DoubleInputFilterSVGAttributes,
  2835. StylableSVGAttributes {
  2836. scale?: number | string;
  2837. xChannelSelector?: "R" | "G" | "B" | "A";
  2838. yChannelSelector?: "R" | "G" | "B" | "A";
  2839. }
  2840. interface FeDistantLightSVGAttributes<T> extends LightSourceElementSVGAttributes<T> {
  2841. azimuth?: number | string;
  2842. elevation?: number | string;
  2843. }
  2844. interface FeFloodSVGAttributes<T>
  2845. extends FilterPrimitiveElementSVGAttributes<T>,
  2846. StylableSVGAttributes,
  2847. Pick<PresentationSVGAttributes, "color" | "flood-color" | "flood-opacity"> {}
  2848. interface FeFuncSVGAttributes<T> extends CoreSVGAttributes<T> {
  2849. type?: "identity" | "table" | "discrete" | "linear" | "gamma";
  2850. tableValues?: string;
  2851. slope?: number | string;
  2852. intercept?: number | string;
  2853. amplitude?: number | string;
  2854. exponent?: number | string;
  2855. offset?: number | string;
  2856. }
  2857. interface FeGaussianBlurSVGAttributes<T>
  2858. extends FilterPrimitiveElementSVGAttributes<T>,
  2859. SingleInputFilterSVGAttributes,
  2860. StylableSVGAttributes {
  2861. stdDeviation?: number | string;
  2862. }
  2863. interface FeImageSVGAttributes<T>
  2864. extends FilterPrimitiveElementSVGAttributes<T>,
  2865. ExternalResourceSVGAttributes,
  2866. StylableSVGAttributes {
  2867. preserveAspectRatio: SVGPreserveAspectRatio;
  2868. }
  2869. interface FeMergeSVGAttributes<T>
  2870. extends FilterPrimitiveElementSVGAttributes<T>,
  2871. StylableSVGAttributes {}
  2872. interface FeMergeNodeSVGAttributes<T>
  2873. extends CoreSVGAttributes<T>,
  2874. SingleInputFilterSVGAttributes {}
  2875. interface FeMorphologySVGAttributes<T>
  2876. extends FilterPrimitiveElementSVGAttributes<T>,
  2877. SingleInputFilterSVGAttributes,
  2878. StylableSVGAttributes {
  2879. operator?: "erode" | "dilate";
  2880. radius?: number | string;
  2881. }
  2882. interface FeOffsetSVGAttributes<T>
  2883. extends FilterPrimitiveElementSVGAttributes<T>,
  2884. SingleInputFilterSVGAttributes,
  2885. StylableSVGAttributes {
  2886. dx?: number | string;
  2887. dy?: number | string;
  2888. }
  2889. interface FePointLightSVGAttributes<T> extends LightSourceElementSVGAttributes<T> {
  2890. x?: number | string;
  2891. y?: number | string;
  2892. z?: number | string;
  2893. }
  2894. interface FeSpecularLightingSVGAttributes<T>
  2895. extends FilterPrimitiveElementSVGAttributes<T>,
  2896. SingleInputFilterSVGAttributes,
  2897. StylableSVGAttributes,
  2898. Pick<PresentationSVGAttributes, "color" | "lighting-color"> {
  2899. surfaceScale?: string;
  2900. specularConstant?: string;
  2901. specularExponent?: string;
  2902. kernelUnitLength?: number | string;
  2903. }
  2904. interface FeSpotLightSVGAttributes<T> extends LightSourceElementSVGAttributes<T> {
  2905. x?: number | string;
  2906. y?: number | string;
  2907. z?: number | string;
  2908. pointsAtX?: number | string;
  2909. pointsAtY?: number | string;
  2910. pointsAtZ?: number | string;
  2911. specularExponent?: number | string;
  2912. limitingConeAngle?: number | string;
  2913. }
  2914. interface FeTileSVGAttributes<T>
  2915. extends FilterPrimitiveElementSVGAttributes<T>,
  2916. SingleInputFilterSVGAttributes,
  2917. StylableSVGAttributes {}
  2918. interface FeTurbulanceSVGAttributes<T>
  2919. extends FilterPrimitiveElementSVGAttributes<T>,
  2920. StylableSVGAttributes {
  2921. baseFrequency?: number | string;
  2922. numOctaves?: number | string;
  2923. seed?: number | string;
  2924. stitchTiles?: "stitch" | "noStitch";
  2925. type?: "fractalNoise" | "turbulence";
  2926. }
  2927. interface FilterSVGAttributes<T>
  2928. extends CoreSVGAttributes<T>,
  2929. ExternalResourceSVGAttributes,
  2930. StylableSVGAttributes {
  2931. filterUnits?: SVGUnits;
  2932. primitiveUnits?: SVGUnits;
  2933. x?: number | string;
  2934. y?: number | string;
  2935. width?: number | string;
  2936. height?: number | string;
  2937. filterRes?: number | string;
  2938. }
  2939. interface ForeignObjectSVGAttributes<T>
  2940. extends NewViewportSVGAttributes<T>,
  2941. ConditionalProcessingSVGAttributes,
  2942. ExternalResourceSVGAttributes,
  2943. StylableSVGAttributes,
  2944. TransformableSVGAttributes,
  2945. Pick<PresentationSVGAttributes, "display" | "visibility"> {
  2946. x?: number | string;
  2947. y?: number | string;
  2948. width?: number | string;
  2949. height?: number | string;
  2950. }
  2951. interface GSVGAttributes<T>
  2952. extends ContainerElementSVGAttributes<T>,
  2953. ConditionalProcessingSVGAttributes,
  2954. ExternalResourceSVGAttributes,
  2955. StylableSVGAttributes,
  2956. TransformableSVGAttributes,
  2957. Pick<PresentationSVGAttributes, "display" | "visibility"> {}
  2958. interface ImageSVGAttributes<T>
  2959. extends NewViewportSVGAttributes<T>,
  2960. GraphicsElementSVGAttributes<T>,
  2961. ConditionalProcessingSVGAttributes,
  2962. StylableSVGAttributes,
  2963. TransformableSVGAttributes,
  2964. Pick<PresentationSVGAttributes, "color-profile" | "image-rendering"> {
  2965. x?: number | string;
  2966. y?: number | string;
  2967. width?: number | string;
  2968. height?: number | string;
  2969. preserveAspectRatio?: ImagePreserveAspectRatio;
  2970. }
  2971. interface LineSVGAttributes<T>
  2972. extends GraphicsElementSVGAttributes<T>,
  2973. ShapeElementSVGAttributes<T>,
  2974. ConditionalProcessingSVGAttributes,
  2975. ExternalResourceSVGAttributes,
  2976. StylableSVGAttributes,
  2977. TransformableSVGAttributes,
  2978. Pick<PresentationSVGAttributes, "marker-start" | "marker-mid" | "marker-end"> {
  2979. x1?: number | string;
  2980. y1?: number | string;
  2981. x2?: number | string;
  2982. y2?: number | string;
  2983. }
  2984. interface LinearGradientSVGAttributes<T> extends GradientElementSVGAttributes<T> {
  2985. x1?: number | string;
  2986. x2?: number | string;
  2987. y1?: number | string;
  2988. y2?: number | string;
  2989. }
  2990. interface MarkerSVGAttributes<T>
  2991. extends ContainerElementSVGAttributes<T>,
  2992. ExternalResourceSVGAttributes,
  2993. StylableSVGAttributes,
  2994. FitToViewBoxSVGAttributes,
  2995. Pick<PresentationSVGAttributes, "overflow" | "clip"> {
  2996. markerUnits?: "strokeWidth" | "userSpaceOnUse";
  2997. refX?: number | string;
  2998. refY?: number | string;
  2999. markerWidth?: number | string;
  3000. markerHeight?: number | string;
  3001. orient?: string;
  3002. }
  3003. interface MaskSVGAttributes<T>
  3004. extends Omit<ContainerElementSVGAttributes<T>, "opacity" | "filter">,
  3005. ConditionalProcessingSVGAttributes,
  3006. ExternalResourceSVGAttributes,
  3007. StylableSVGAttributes {
  3008. maskUnits?: SVGUnits;
  3009. maskContentUnits?: SVGUnits;
  3010. x?: number | string;
  3011. y?: number | string;
  3012. width?: number | string;
  3013. height?: number | string;
  3014. }
  3015. interface MetadataSVGAttributes<T> extends CoreSVGAttributes<T> {}
  3016. interface PathSVGAttributes<T>
  3017. extends GraphicsElementSVGAttributes<T>,
  3018. ShapeElementSVGAttributes<T>,
  3019. ConditionalProcessingSVGAttributes,
  3020. ExternalResourceSVGAttributes,
  3021. StylableSVGAttributes,
  3022. TransformableSVGAttributes,
  3023. Pick<PresentationSVGAttributes, "marker-start" | "marker-mid" | "marker-end"> {
  3024. d?: string;
  3025. pathLength?: number | string;
  3026. }
  3027. interface PatternSVGAttributes<T>
  3028. extends ContainerElementSVGAttributes<T>,
  3029. ConditionalProcessingSVGAttributes,
  3030. ExternalResourceSVGAttributes,
  3031. StylableSVGAttributes,
  3032. FitToViewBoxSVGAttributes,
  3033. Pick<PresentationSVGAttributes, "overflow" | "clip"> {
  3034. x?: number | string;
  3035. y?: number | string;
  3036. width?: number | string;
  3037. height?: number | string;
  3038. patternUnits?: SVGUnits;
  3039. patternContentUnits?: SVGUnits;
  3040. patternTransform?: string;
  3041. }
  3042. interface PolygonSVGAttributes<T>
  3043. extends GraphicsElementSVGAttributes<T>,
  3044. ShapeElementSVGAttributes<T>,
  3045. ConditionalProcessingSVGAttributes,
  3046. ExternalResourceSVGAttributes,
  3047. StylableSVGAttributes,
  3048. TransformableSVGAttributes,
  3049. Pick<PresentationSVGAttributes, "marker-start" | "marker-mid" | "marker-end"> {
  3050. points?: string;
  3051. }
  3052. interface PolylineSVGAttributes<T>
  3053. extends GraphicsElementSVGAttributes<T>,
  3054. ShapeElementSVGAttributes<T>,
  3055. ConditionalProcessingSVGAttributes,
  3056. ExternalResourceSVGAttributes,
  3057. StylableSVGAttributes,
  3058. TransformableSVGAttributes,
  3059. Pick<PresentationSVGAttributes, "marker-start" | "marker-mid" | "marker-end"> {
  3060. points?: string;
  3061. }
  3062. interface RadialGradientSVGAttributes<T> extends GradientElementSVGAttributes<T> {
  3063. cx?: number | string;
  3064. cy?: number | string;
  3065. r?: number | string;
  3066. fx?: number | string;
  3067. fy?: number | string;
  3068. }
  3069. interface RectSVGAttributes<T>
  3070. extends GraphicsElementSVGAttributes<T>,
  3071. ShapeElementSVGAttributes<T>,
  3072. ConditionalProcessingSVGAttributes,
  3073. ExternalResourceSVGAttributes,
  3074. StylableSVGAttributes,
  3075. TransformableSVGAttributes {
  3076. x?: number | string;
  3077. y?: number | string;
  3078. width?: number | string;
  3079. height?: number | string;
  3080. rx?: number | string;
  3081. ry?: number | string;
  3082. }
  3083. interface StopSVGAttributes<T>
  3084. extends CoreSVGAttributes<T>,
  3085. StylableSVGAttributes,
  3086. Pick<PresentationSVGAttributes, "color" | "stop-color" | "stop-opacity"> {
  3087. offset?: number | string;
  3088. }
  3089. interface SvgSVGAttributes<T>
  3090. extends ContainerElementSVGAttributes<T>,
  3091. NewViewportSVGAttributes<T>,
  3092. ConditionalProcessingSVGAttributes,
  3093. ExternalResourceSVGAttributes,
  3094. StylableSVGAttributes,
  3095. FitToViewBoxSVGAttributes,
  3096. ZoomAndPanSVGAttributes,
  3097. PresentationSVGAttributes {
  3098. version?: string;
  3099. "base-profile"?: string;
  3100. x?: number | string;
  3101. y?: number | string;
  3102. width?: number | string;
  3103. height?: number | string;
  3104. contentScriptType?: string;
  3105. contentStyleType?: string;
  3106. xmlns?: string;
  3107. }
  3108. interface SwitchSVGAttributes<T>
  3109. extends ContainerElementSVGAttributes<T>,
  3110. ConditionalProcessingSVGAttributes,
  3111. ExternalResourceSVGAttributes,
  3112. StylableSVGAttributes,
  3113. TransformableSVGAttributes,
  3114. Pick<PresentationSVGAttributes, "display" | "visibility"> {}
  3115. interface SymbolSVGAttributes<T>
  3116. extends ContainerElementSVGAttributes<T>,
  3117. NewViewportSVGAttributes<T>,
  3118. ExternalResourceSVGAttributes,
  3119. StylableSVGAttributes,
  3120. FitToViewBoxSVGAttributes {}
  3121. interface TextSVGAttributes<T>
  3122. extends TextContentElementSVGAttributes<T>,
  3123. GraphicsElementSVGAttributes<T>,
  3124. ConditionalProcessingSVGAttributes,
  3125. ExternalResourceSVGAttributes,
  3126. StylableSVGAttributes,
  3127. TransformableSVGAttributes,
  3128. Pick<PresentationSVGAttributes, "writing-mode" | "text-rendering"> {
  3129. x?: number | string;
  3130. y?: number | string;
  3131. dx?: number | string;
  3132. dy?: number | string;
  3133. rotate?: number | string;
  3134. textLength?: number | string;
  3135. lengthAdjust?: "spacing" | "spacingAndGlyphs";
  3136. }
  3137. interface TextPathSVGAttributes<T>
  3138. extends TextContentElementSVGAttributes<T>,
  3139. ConditionalProcessingSVGAttributes,
  3140. ExternalResourceSVGAttributes,
  3141. StylableSVGAttributes,
  3142. Pick<
  3143. PresentationSVGAttributes,
  3144. "alignment-baseline" | "baseline-shift" | "display" | "visibility"
  3145. > {
  3146. startOffset?: number | string;
  3147. method?: "align" | "stretch";
  3148. spacing?: "auto" | "exact";
  3149. }
  3150. interface TSpanSVGAttributes<T>
  3151. extends TextContentElementSVGAttributes<T>,
  3152. ConditionalProcessingSVGAttributes,
  3153. ExternalResourceSVGAttributes,
  3154. StylableSVGAttributes,
  3155. Pick<
  3156. PresentationSVGAttributes,
  3157. "alignment-baseline" | "baseline-shift" | "display" | "visibility"
  3158. > {
  3159. x?: number | string;
  3160. y?: number | string;
  3161. dx?: number | string;
  3162. dy?: number | string;
  3163. rotate?: number | string;
  3164. textLength?: number | string;
  3165. lengthAdjust?: "spacing" | "spacingAndGlyphs";
  3166. }
  3167. interface UseSVGAttributes<T>
  3168. extends GraphicsElementSVGAttributes<T>,
  3169. ConditionalProcessingSVGAttributes,
  3170. ExternalResourceSVGAttributes,
  3171. StylableSVGAttributes,
  3172. TransformableSVGAttributes {
  3173. x?: number | string;
  3174. y?: number | string;
  3175. width?: number | string;
  3176. height?: number | string;
  3177. href?: string;
  3178. }
  3179. interface ViewSVGAttributes<T>
  3180. extends CoreSVGAttributes<T>,
  3181. ExternalResourceSVGAttributes,
  3182. FitToViewBoxSVGAttributes,
  3183. ZoomAndPanSVGAttributes {
  3184. viewTarget?: string;
  3185. }
  3186. interface IntrinsicElements {
  3187. a: AnchorHTMLAttributes<HTMLAnchorElement>;
  3188. abbr: HTMLAttributes<HTMLElement>;
  3189. address: HTMLAttributes<HTMLElement>;
  3190. area: AreaHTMLAttributes<HTMLAreaElement>;
  3191. article: HTMLAttributes<HTMLElement>;
  3192. aside: HTMLAttributes<HTMLElement>;
  3193. audio: AudioHTMLAttributes<HTMLAudioElement>;
  3194. b: HTMLAttributes<HTMLElement>;
  3195. base: BaseHTMLAttributes<HTMLBaseElement>;
  3196. bdi: HTMLAttributes<HTMLElement>;
  3197. bdo: HTMLAttributes<HTMLElement>;
  3198. big: HTMLAttributes<HTMLElement>;
  3199. blockquote: BlockquoteHTMLAttributes<HTMLElement>;
  3200. body: HTMLAttributes<HTMLBodyElement>;
  3201. br: HTMLAttributes<HTMLBRElement>;
  3202. button: ButtonHTMLAttributes<HTMLButtonElement>;
  3203. canvas: CanvasHTMLAttributes<HTMLCanvasElement>;
  3204. caption: HTMLAttributes<HTMLElement>;
  3205. cite: HTMLAttributes<HTMLElement>;
  3206. code: HTMLAttributes<HTMLElement>;
  3207. col: ColHTMLAttributes<HTMLTableColElement>;
  3208. colgroup: ColgroupHTMLAttributes<HTMLTableColElement>;
  3209. data: DataHTMLAttributes<HTMLElement>;
  3210. datalist: HTMLAttributes<HTMLDataListElement>;
  3211. dd: HTMLAttributes<HTMLElement>;
  3212. del: HTMLAttributes<HTMLElement>;
  3213. details: DetailsHtmlAttributes<HTMLElement>;
  3214. dfn: HTMLAttributes<HTMLElement>;
  3215. dialog: DialogHtmlAttributes<HTMLElement>;
  3216. div: HTMLAttributes<HTMLDivElement>;
  3217. dl: HTMLAttributes<HTMLDListElement>;
  3218. dt: HTMLAttributes<HTMLElement>;
  3219. em: HTMLAttributes<HTMLElement>;
  3220. embed: EmbedHTMLAttributes<HTMLEmbedElement>;
  3221. fieldset: FieldsetHTMLAttributes<HTMLFieldSetElement>;
  3222. figcaption: HTMLAttributes<HTMLElement>;
  3223. figure: HTMLAttributes<HTMLElement>;
  3224. footer: HTMLAttributes<HTMLElement>;
  3225. form: FormHTMLAttributes<HTMLFormElement>;
  3226. h1: HTMLAttributes<HTMLHeadingElement>;
  3227. h2: HTMLAttributes<HTMLHeadingElement>;
  3228. h3: HTMLAttributes<HTMLHeadingElement>;
  3229. h4: HTMLAttributes<HTMLHeadingElement>;
  3230. h5: HTMLAttributes<HTMLHeadingElement>;
  3231. h6: HTMLAttributes<HTMLHeadingElement>;
  3232. head: HTMLAttributes<HTMLHeadElement>;
  3233. header: HTMLAttributes<HTMLElement>;
  3234. hgroup: HTMLAttributes<HTMLElement>;
  3235. hr: HTMLAttributes<HTMLHRElement>;
  3236. html: HTMLAttributes<HTMLHtmlElement>;
  3237. i: HTMLAttributes<HTMLElement>;
  3238. iframe: IframeHTMLAttributes<HTMLIFrameElement>;
  3239. img: ImgHTMLAttributes<HTMLImageElement>;
  3240. input: InputHTMLAttributes<HTMLInputElement>;
  3241. ins: InsHTMLAttributes<HTMLModElement>;
  3242. kbd: HTMLAttributes<HTMLElement>;
  3243. keygen: KeygenHTMLAttributes<HTMLElement>;
  3244. label: LabelHTMLAttributes<HTMLLabelElement>;
  3245. legend: HTMLAttributes<HTMLLegendElement>;
  3246. li: LiHTMLAttributes<HTMLLIElement>;
  3247. link: LinkHTMLAttributes<HTMLLinkElement>;
  3248. main: HTMLAttributes<HTMLElement>;
  3249. map: MapHTMLAttributes<HTMLMapElement>;
  3250. mark: HTMLAttributes<HTMLElement>;
  3251. menu: MenuHTMLAttributes<HTMLElement>;
  3252. menuitem: HTMLAttributes<HTMLElement>;
  3253. meta: MetaHTMLAttributes<HTMLMetaElement>;
  3254. meter: MeterHTMLAttributes<HTMLElement>;
  3255. nav: HTMLAttributes<HTMLElement>;
  3256. noindex: HTMLAttributes<HTMLElement>;
  3257. noscript: HTMLAttributes<HTMLElement>;
  3258. object: ObjectHTMLAttributes<HTMLObjectElement>;
  3259. ol: OlHTMLAttributes<HTMLOListElement>;
  3260. optgroup: OptgroupHTMLAttributes<HTMLOptGroupElement>;
  3261. option: OptionHTMLAttributes<HTMLOptionElement>;
  3262. output: OutputHTMLAttributes<HTMLElement>;
  3263. p: HTMLAttributes<HTMLParagraphElement>;
  3264. param: ParamHTMLAttributes<HTMLParamElement>;
  3265. picture: HTMLAttributes<HTMLElement>;
  3266. pre: HTMLAttributes<HTMLPreElement>;
  3267. progress: ProgressHTMLAttributes<HTMLProgressElement>;
  3268. q: QuoteHTMLAttributes<HTMLQuoteElement>;
  3269. rp: HTMLAttributes<HTMLElement>;
  3270. rt: HTMLAttributes<HTMLElement>;
  3271. ruby: HTMLAttributes<HTMLElement>;
  3272. s: HTMLAttributes<HTMLElement>;
  3273. samp: HTMLAttributes<HTMLElement>;
  3274. script: ScriptHTMLAttributes<HTMLElement>;
  3275. section: HTMLAttributes<HTMLElement>;
  3276. select: SelectHTMLAttributes<HTMLSelectElement>;
  3277. slot: HTMLSlotElementAttributes;
  3278. small: HTMLAttributes<HTMLElement>;
  3279. source: SourceHTMLAttributes<HTMLSourceElement>;
  3280. span: HTMLAttributes<HTMLSpanElement>;
  3281. strong: HTMLAttributes<HTMLElement>;
  3282. style: StyleHTMLAttributes<HTMLStyleElement>;
  3283. sub: HTMLAttributes<HTMLElement>;
  3284. summary: HTMLAttributes<HTMLElement>;
  3285. sup: HTMLAttributes<HTMLElement>;
  3286. table: HTMLAttributes<HTMLTableElement>;
  3287. tbody: HTMLAttributes<HTMLTableSectionElement>;
  3288. td: TdHTMLAttributes<HTMLTableDataCellElement>;
  3289. textarea: TextareaHTMLAttributes<HTMLTextAreaElement>;
  3290. tfoot: HTMLAttributes<HTMLTableSectionElement>;
  3291. th: ThHTMLAttributes<HTMLTableHeaderCellElement>;
  3292. thead: HTMLAttributes<HTMLTableSectionElement>;
  3293. time: TimeHTMLAttributes<HTMLElement>;
  3294. title: HTMLAttributes<HTMLTitleElement>;
  3295. tr: HTMLAttributes<HTMLTableRowElement>;
  3296. track: TrackHTMLAttributes<HTMLTrackElement>;
  3297. u: HTMLAttributes<HTMLElement>;
  3298. ul: HTMLAttributes<HTMLUListElement>;
  3299. var: HTMLAttributes<HTMLElement>;
  3300. video: VideoHTMLAttributes<HTMLVideoElement>;
  3301. wbr: HTMLAttributes<HTMLElement>;
  3302. svg: SvgSVGAttributes<SVGSVGElement>;
  3303. animate: AnimateSVGAttributes<SVGAnimateElement>;
  3304. animateMotion: AnimateMotionSVGAttributes<SVGAnimateMotionElement>;
  3305. animateTransform: AnimateTransformSVGAttributes<SVGAnimateTransformElement>;
  3306. circle: CircleSVGAttributes<SVGCircleElement>;
  3307. clipPath: ClipPathSVGAttributes<SVGClipPathElement>;
  3308. defs: DefsSVGAttributes<SVGDefsElement>;
  3309. desc: DescSVGAttributes<SVGDescElement>;
  3310. ellipse: EllipseSVGAttributes<SVGEllipseElement>;
  3311. feBlend: FeBlendSVGAttributes<SVGFEBlendElement>;
  3312. feColorMatrix: FeColorMatrixSVGAttributes<SVGFEColorMatrixElement>;
  3313. feComponentTransfer: FeComponentTransferSVGAttributes<SVGFEComponentTransferElement>;
  3314. feComposite: FeCompositeSVGAttributes<SVGFECompositeElement>;
  3315. feConvolveMatrix: FeConvolveMatrixSVGAttributes<SVGFEConvolveMatrixElement>;
  3316. feDiffuseLighting: FeDiffuseLightingSVGAttributes<SVGFEDiffuseLightingElement>;
  3317. feDisplacementMap: FeDisplacementMapSVGAttributes<SVGFEDisplacementMapElement>;
  3318. feDistantLight: FeDistantLightSVGAttributes<SVGFEDistantLightElement>;
  3319. feFlood: FeFloodSVGAttributes<SVGFEFloodElement>;
  3320. feFuncA: FeFuncSVGAttributes<SVGFEFuncAElement>;
  3321. feFuncB: FeFuncSVGAttributes<SVGFEFuncBElement>;
  3322. feFuncG: FeFuncSVGAttributes<SVGFEFuncGElement>;
  3323. feFuncR: FeFuncSVGAttributes<SVGFEFuncRElement>;
  3324. feGaussianBlur: FeGaussianBlurSVGAttributes<SVGFEGaussianBlurElement>;
  3325. feImage: FeImageSVGAttributes<SVGFEImageElement>;
  3326. feMerge: FeMergeSVGAttributes<SVGFEMergeElement>;
  3327. feMergeNode: FeMergeNodeSVGAttributes<SVGFEMergeNodeElement>;
  3328. feMorphology: FeMorphologySVGAttributes<SVGFEMorphologyElement>;
  3329. feOffset: FeOffsetSVGAttributes<SVGFEOffsetElement>;
  3330. fePointLight: FePointLightSVGAttributes<SVGFEPointLightElement>;
  3331. feSpecularLighting: FeSpecularLightingSVGAttributes<SVGFESpecularLightingElement>;
  3332. feSpotLight: FeSpotLightSVGAttributes<SVGFESpotLightElement>;
  3333. feTile: FeTileSVGAttributes<SVGFETileElement>;
  3334. feTurbulence: FeTurbulanceSVGAttributes<SVGFETurbulenceElement>;
  3335. filter: FilterSVGAttributes<SVGFilterElement>;
  3336. foreignObject: ForeignObjectSVGAttributes<SVGForeignObjectElement>;
  3337. g: GSVGAttributes<SVGGElement>;
  3338. image: ImageSVGAttributes<SVGImageElement>;
  3339. line: LineSVGAttributes<SVGLineElement>;
  3340. linearGradient: LinearGradientSVGAttributes<SVGLinearGradientElement>;
  3341. marker: MarkerSVGAttributes<SVGMarkerElement>;
  3342. mask: MaskSVGAttributes<SVGMaskElement>;
  3343. metadata: MetadataSVGAttributes<SVGMetadataElement>;
  3344. path: PathSVGAttributes<SVGPathElement>;
  3345. pattern: PatternSVGAttributes<SVGPatternElement>;
  3346. polygon: PolygonSVGAttributes<SVGPolygonElement>;
  3347. polyline: PolylineSVGAttributes<SVGPolylineElement>;
  3348. radialGradient: RadialGradientSVGAttributes<SVGRadialGradientElement>;
  3349. rect: RectSVGAttributes<SVGRectElement>;
  3350. stop: StopSVGAttributes<SVGStopElement>;
  3351. switch: SwitchSVGAttributes<SVGSwitchElement>;
  3352. symbol: SymbolSVGAttributes<SVGSymbolElement>;
  3353. text: TextSVGAttributes<SVGTextElement>;
  3354. textPath: TextPathSVGAttributes<SVGTextPathElement>;
  3355. tspan: TSpanSVGAttributes<SVGTSpanElement>;
  3356. use: UseSVGAttributes<SVGUseElement>;
  3357. view: ViewSVGAttributes<SVGViewElement>;
  3358. }
  3359. }