elements.rs 56 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942
  1. #![allow(non_upper_case_globals)]
  2. use dioxus_core::prelude::IntoAttributeValue;
  3. use dioxus_core::HasAttributes;
  4. use dioxus_html_internal_macro::impl_extension_attributes;
  5. #[cfg(feature = "hot-reload-context")]
  6. use dioxus_rsx::HotReloadingContext;
  7. #[cfg(feature = "hot-reload-context")]
  8. use crate::{map_global_attributes, map_svg_attributes};
  9. use crate::{GlobalAttributes, SvgAttributes};
  10. pub type AttributeDiscription = (&'static str, Option<&'static str>, bool);
  11. macro_rules! impl_attribute {
  12. (
  13. $(#[$attr_method:meta])*
  14. $fil:ident: $vil:ident (DEFAULT),
  15. ) => {
  16. pub const $fil: AttributeDiscription = (stringify!($fil), None, false);
  17. };
  18. (
  19. $(#[$attr_method:meta])*
  20. $fil:ident: $vil:ident ($name:literal),
  21. ) => {
  22. pub const $fil: AttributeDiscription = ($name, None, false);
  23. };
  24. (
  25. $(#[$attr_method:meta])*
  26. $fil:ident: $vil:ident (volatile),
  27. ) => {
  28. pub const $fil: AttributeDiscription = (stringify!($fil), None, true);
  29. };
  30. (
  31. $(#[$attr_method:meta])*
  32. $fil:ident: $vil:ident (in $ns:literal),
  33. ) => {
  34. pub const $fil: AttributeDiscription = (stringify!($fil), Some($ns), false)
  35. };
  36. (
  37. $(#[$attr_method:meta])*
  38. $fil:ident: $vil:ident (in $ns:literal : volatile),
  39. ) => {
  40. pub const $fil: AttributeDiscription = (stringify!($fil), Some($ns), true)
  41. };
  42. }
  43. #[cfg(feature = "hot-reload-context")]
  44. macro_rules! impl_attribute_match {
  45. (
  46. $attr:ident $fil:ident: $vil:ident (DEFAULT),
  47. ) => {
  48. if $attr == stringify!($fil) {
  49. return Some((stringify!($fil), None));
  50. }
  51. };
  52. (
  53. $attr:ident $fil:ident: $vil:ident (volatile),
  54. ) => {
  55. if $attr == stringify!($fil) {
  56. return Some((stringify!($fil), None));
  57. }
  58. };
  59. (
  60. $attr:ident $fil:ident: $vil:ident ($name:literal),
  61. ) => {
  62. if $attr == stringify!($fil) {
  63. return Some(($name, None));
  64. }
  65. };
  66. (
  67. $attr:ident $fil:ident: $vil:ident (in $ns:literal),
  68. ) => {
  69. if $attr == stringify!($fil) {
  70. return Some((stringify!(fil), Some($ns)));
  71. }
  72. };
  73. }
  74. #[cfg(feature = "html-to-rsx")]
  75. macro_rules! impl_html_to_rsx_attribute_match {
  76. (
  77. $attr:ident $fil:ident $name:literal
  78. ) => {
  79. if $attr == $name {
  80. return Some(stringify!($fil));
  81. }
  82. };
  83. (
  84. $attr:ident $fil:ident $_:tt
  85. ) => {
  86. if $attr == stringify!($fil) {
  87. return Some(stringify!($fil));
  88. }
  89. };
  90. }
  91. macro_rules! impl_element {
  92. (
  93. $(#[$attr:meta])*
  94. $name:ident None {
  95. $(
  96. $(#[$attr_method:meta])*
  97. $fil:ident: $vil:ident $extra:tt,
  98. )*
  99. }
  100. ) => {
  101. #[allow(non_camel_case_types)]
  102. $(#[$attr])*
  103. pub struct $name;
  104. impl $name {
  105. pub const TAG_NAME: &'static str = stringify!($name);
  106. pub const NAME_SPACE: Option<&'static str> = None;
  107. $(
  108. impl_attribute!(
  109. $(#[$attr_method])*
  110. $fil: $vil ($extra),
  111. );
  112. )*
  113. }
  114. impl GlobalAttributes for $name {}
  115. };
  116. (
  117. $(#[$attr:meta])*
  118. $name:ident $namespace:literal {
  119. $(
  120. $(#[$attr_method:meta])*
  121. $fil:ident: $vil:ident $extra:tt,
  122. )*
  123. }
  124. ) => {
  125. #[allow(non_camel_case_types)]
  126. $(#[$attr])*
  127. pub struct $name;
  128. impl SvgAttributes for $name {}
  129. impl $name {
  130. pub const TAG_NAME: &'static str = stringify!($name);
  131. pub const NAME_SPACE: Option<&'static str> = Some($namespace);
  132. $(
  133. impl_attribute!(
  134. $(#[$attr_method])*
  135. $fil: $vil ($extra),
  136. );
  137. )*
  138. }
  139. };
  140. (
  141. $(#[$attr:meta])*
  142. $element:ident [$name:literal, $namespace:tt] {
  143. $(
  144. $(#[$attr_method:meta])*
  145. $fil:ident: $vil:ident $extra:tt,
  146. )*
  147. }
  148. ) => {
  149. #[allow(non_camel_case_types)]
  150. $(#[$attr])*
  151. pub struct $element;
  152. impl SvgAttributes for $element {}
  153. impl $element {
  154. pub const TAG_NAME: &'static str = $name;
  155. pub const NAME_SPACE: Option<&'static str> = Some($namespace);
  156. $(
  157. impl_attribute!(
  158. $(#[$attr_method])*
  159. $fil: $vil ($extra),
  160. );
  161. )*
  162. }
  163. }
  164. }
  165. #[cfg(feature = "hot-reload-context")]
  166. macro_rules! impl_element_match {
  167. (
  168. $el:ident $name:ident None {
  169. $(
  170. $fil:ident: $vil:ident $extra:tt,
  171. )*
  172. }
  173. ) => {
  174. if $el == stringify!($name) {
  175. return Some((stringify!($name), None));
  176. }
  177. };
  178. (
  179. $el:ident $name:ident $namespace:literal {
  180. $(
  181. $fil:ident: $vil:ident $extra:tt,
  182. )*
  183. }
  184. ) => {
  185. if $el == stringify!($name) {
  186. return Some((stringify!($name), Some($namespace)));
  187. }
  188. };
  189. (
  190. $el:ident $name:ident [$_:literal, $namespace:tt] {
  191. $(
  192. $fil:ident: $vil:ident $extra:tt,
  193. )*
  194. }
  195. ) => {
  196. if $el == stringify!($name) {
  197. return Some((stringify!($name), Some($namespace)));
  198. }
  199. };
  200. }
  201. #[cfg(feature = "hot-reload-context")]
  202. macro_rules! impl_element_match_attributes {
  203. (
  204. $el:ident $attr:ident $name:ident None {
  205. $(
  206. $fil:ident: $vil:ident $extra:tt,
  207. )*
  208. }
  209. ) => {
  210. if $el == stringify!($name) {
  211. $(
  212. impl_attribute_match!(
  213. $attr $fil: $vil ($extra),
  214. );
  215. )*
  216. return impl_map_global_attributes!($el $attr $name None);
  217. }
  218. };
  219. (
  220. $el:ident $attr:ident $name:ident $namespace:tt {
  221. $(
  222. $fil:ident: $vil:ident $extra:tt,
  223. )*
  224. }
  225. ) => {
  226. if $el == stringify!($name) {
  227. $(
  228. impl_attribute_match!(
  229. $attr $fil: $vil ($extra),
  230. );
  231. )*
  232. return impl_map_global_attributes!($el $attr $name $namespace);
  233. }
  234. }
  235. }
  236. #[cfg(feature = "hot-reload-context")]
  237. macro_rules! impl_map_global_attributes {
  238. (
  239. $el:ident $attr:ident $element:ident None
  240. ) => {
  241. map_global_attributes($attr)
  242. };
  243. (
  244. $el:ident $attr:ident $element:ident $namespace:literal
  245. ) => {
  246. if $namespace == "http://www.w3.org/2000/svg" {
  247. map_svg_attributes($attr)
  248. } else {
  249. map_global_attributes($attr)
  250. }
  251. };
  252. (
  253. $el:ident $attr:ident $element:ident [$name:literal, $namespace:tt]
  254. ) => {
  255. if $namespace == "http://www.w3.org/2000/svg" {
  256. map_svg_attributes($attr)
  257. } else {
  258. map_global_attributes($attr)
  259. }
  260. };
  261. }
  262. macro_rules! builder_constructors {
  263. (
  264. $(
  265. $(#[$attr:meta])*
  266. $name:ident $namespace:tt {
  267. $(
  268. $(#[$attr_method:meta])*
  269. $fil:ident: $vil:ident $extra:tt,
  270. )*
  271. };
  272. )*
  273. ) => {
  274. #[cfg(feature = "hot-reload-context")]
  275. pub struct HtmlCtx;
  276. #[cfg(feature = "hot-reload-context")]
  277. impl HotReloadingContext for HtmlCtx {
  278. fn map_attribute(element: &str, attribute: &str) -> Option<(&'static str, Option<&'static str>)> {
  279. $(
  280. impl_element_match_attributes!(
  281. element attribute $name $namespace {
  282. $(
  283. $fil: $vil $extra,
  284. )*
  285. }
  286. );
  287. )*
  288. None
  289. }
  290. fn map_element(element: &str) -> Option<(&'static str, Option<&'static str>)> {
  291. $(
  292. impl_element_match!(
  293. element $name $namespace {
  294. $(
  295. $fil: $vil $extra,
  296. )*
  297. }
  298. );
  299. )*
  300. None
  301. }
  302. }
  303. #[cfg(feature = "html-to-rsx")]
  304. pub fn map_html_attribute_to_rsx(html: &str) -> Option<&'static str> {
  305. $(
  306. $(
  307. impl_html_to_rsx_attribute_match!(
  308. html $fil $extra
  309. );
  310. )*
  311. )*
  312. if let Some(name) = crate::map_html_global_attributes_to_rsx(html) {
  313. return Some(name);
  314. }
  315. if let Some(name) = crate::map_html_svg_attributes_to_rsx(html) {
  316. return Some(name);
  317. }
  318. None
  319. }
  320. #[cfg(feature = "html-to-rsx")]
  321. pub fn map_html_element_to_rsx(html: &str) -> Option<&'static str> {
  322. $(
  323. if html == stringify!($name) {
  324. return Some(stringify!($name));
  325. }
  326. )*
  327. None
  328. }
  329. $(
  330. impl_element!(
  331. $(#[$attr])*
  332. $name $namespace {
  333. $(
  334. $(#[$attr_method])*
  335. $fil: $vil $extra,
  336. )*
  337. }
  338. );
  339. )*
  340. pub(crate) mod extensions {
  341. use super::*;
  342. $(
  343. impl_extension_attributes![ELEMENT $name { $($fil,)* }];
  344. )*
  345. }
  346. };
  347. }
  348. // Organized in the same order as
  349. // https://developer.mozilla.org/en-US/docs/Web/HTML/Element
  350. //
  351. // Does not include obsolete elements.
  352. //
  353. // This namespace represents a collection of modern HTML-5 compatiable elements.
  354. //
  355. // This list does not include obsolete, deprecated, experimental, or poorly supported elements.
  356. builder_constructors! {
  357. // Document metadata
  358. /// Build a
  359. /// [`<base>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/base)
  360. /// element.
  361. ///
  362. base None {
  363. href: Uri DEFAULT,
  364. target: Target DEFAULT,
  365. };
  366. /// Build a
  367. /// [`<head>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/head)
  368. /// element.
  369. head None {};
  370. /// Build a
  371. /// [`<link>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/link)
  372. /// element.
  373. link None {
  374. // as: Mime,
  375. crossorigin: CrossOrigin DEFAULT,
  376. href: Uri DEFAULT,
  377. hreflang: LanguageTag DEFAULT,
  378. media: String DEFAULT, // FIXME media query
  379. rel: LinkType DEFAULT,
  380. sizes: String DEFAULT, // FIXME
  381. title: String DEFAULT, // FIXME
  382. r#type: Mime "type",
  383. integrity: String DEFAULT,
  384. };
  385. /// Build a
  386. /// [`<meta>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta)
  387. /// element.
  388. meta None {
  389. charset: String DEFAULT, // FIXME IANA standard names
  390. content: String DEFAULT,
  391. http_equiv: String "http-equiv",
  392. name: Metadata DEFAULT,
  393. };
  394. /// Build a
  395. /// [`<style>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/style)
  396. /// element.
  397. style None {
  398. r#type: Mime "type",
  399. media: String DEFAULT, // FIXME media query
  400. nonce: Nonce DEFAULT,
  401. title: String DEFAULT, // FIXME
  402. };
  403. /// Build a
  404. /// [`<title>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/title)
  405. /// element.
  406. title None { };
  407. // Sectioning root
  408. /// Build a
  409. /// [`<body>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/body)
  410. /// element.
  411. body None {};
  412. // ------------------
  413. // Content sectioning
  414. // ------------------
  415. /// Build a
  416. /// [`<address>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/address)
  417. /// element.
  418. address None {};
  419. /// Build a
  420. /// [`<article>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/article)
  421. /// element.
  422. article None {};
  423. /// Build a
  424. /// [`<aside>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/aside)
  425. /// element.
  426. aside None {};
  427. /// Build a
  428. /// [`<footer>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/footer)
  429. /// element.
  430. footer None {};
  431. /// Build a
  432. /// [`<header>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/header)
  433. /// element.
  434. header None {};
  435. /// Build a
  436. /// [`<hgroup>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/hgroup)
  437. /// element.
  438. hgroup None {};
  439. /// Build a
  440. /// [`<h1>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/h1)
  441. /// element.
  442. ///
  443. /// # About
  444. /// - The HTML `<h1>` element is found within the `<body>` tag.
  445. /// - Headings can range from `<h1>` to `<h6>`.
  446. /// - The most important heading is `<h1>` and the least important heading is `<h6>`.
  447. /// - The `<h1>` heading is the first heading in the document.
  448. /// - The `<h1>` heading is usually a large bolded font.
  449. ///
  450. /// # Usage
  451. ///
  452. /// ```rust, ignore
  453. /// html!(<h1> A header element </h1>)
  454. /// rsx!(h1 { "A header element" })
  455. /// LazyNodes::new(|f| f.el(h1).children([f.text("A header element")]).finish())
  456. /// ```
  457. h1 None {};
  458. /// Build a
  459. /// [`<h2>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/h2)
  460. /// element.
  461. ///
  462. /// # About
  463. /// - The HTML `<h2>` element is found within the `<body>` tag.
  464. /// - Headings can range from `<h1>` to `<h6>`.
  465. /// - The most important heading is `<h1>` and the least important heading is `<h6>`.
  466. /// - The `<h2>` heading is the second heading in the document.
  467. /// - The `<h2>` heading is usually a large bolded font.
  468. ///
  469. /// # Usage
  470. /// ```rust, ignore
  471. /// html!(<h2> A header element </h2>)
  472. /// rsx!(h2 { "A header element" })
  473. /// LazyNodes::new(|f| f.el(h2).children([f.text("A header element")]).finish())
  474. /// ```
  475. h2 None {};
  476. /// Build a
  477. /// [`<h3>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/h3)
  478. /// element.
  479. ///
  480. /// # About
  481. /// - The HTML <h1> element is found within the <body> tag.
  482. /// - Headings can range from <h1> to <h6>.
  483. /// - The most important heading is <h1> and the least important heading is <h6>.
  484. /// - The <h1> heading is the first heading in the document.
  485. /// - The <h1> heading is usually a large bolded font.
  486. h3 None {};
  487. /// Build a
  488. /// [`<h4>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/h4)
  489. /// element.
  490. h4 None {};
  491. /// Build a
  492. /// [`<h5>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/h5)
  493. /// element.
  494. h5 None {};
  495. /// Build a
  496. /// [`<h6>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/h6)
  497. /// element.
  498. h6 None {};
  499. /// Build a
  500. /// [`<main>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/main)
  501. /// element.
  502. main None {};
  503. /// Build a
  504. /// [`<nav>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/nav)
  505. /// element.
  506. nav None {};
  507. /// Build a
  508. /// [`<section>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/section)
  509. /// element.
  510. section None {};
  511. // Text content
  512. /// Build a
  513. /// [`<blockquote>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/blockquote)
  514. /// element.
  515. blockquote None {
  516. cite: Uri DEFAULT,
  517. };
  518. /// Build a
  519. /// [`<dd>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/dd)
  520. /// element.
  521. dd None {};
  522. /// Build a
  523. /// [`<div>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/div)
  524. /// element.
  525. ///
  526. /// Part of the HTML namespace. Only works in HTML-compatible renderers
  527. ///
  528. /// ## Definition and Usage
  529. /// - The <div> tag defines a division or a section in an HTML document.
  530. /// - The <div> tag is used as a container for HTML elements - which is then styled with CSS or manipulated with JavaScript.
  531. /// - The <div> tag is easily styled by using the class or id attribute.
  532. /// - Any sort of content can be put inside the <div> tag!
  533. ///
  534. /// Note: By default, browsers always place a line break before and after the <div> element.
  535. ///
  536. /// ## Usage
  537. /// ```rust, ignore
  538. /// html!(<div> A header element </div>)
  539. /// rsx!(div { "A header element" })
  540. /// LazyNodes::new(|f| f.element(div, &[], &[], &[], None))
  541. /// ```
  542. ///
  543. /// ## References:
  544. /// - <https://developer.mozilla.org/en-US/docs/Web/HTML/Element/div>
  545. /// - <https://www.w3schools.com/tags/tag_div.asp>
  546. div None {};
  547. /// Build a
  548. /// [`<dl>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/dl)
  549. /// element.
  550. dl None {};
  551. /// Build a
  552. /// [`<dt>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/dt)
  553. /// element.
  554. dt None {};
  555. /// Build a
  556. /// [`<figcaption>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/figcaption)
  557. /// element.
  558. figcaption None {};
  559. /// Build a
  560. /// [`<figure>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/figure)
  561. /// element.
  562. figure None {};
  563. /// Build a
  564. /// [`<hr>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/hr)
  565. /// element.
  566. hr None {};
  567. /// Build a
  568. /// [`<li>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/li)
  569. /// element.
  570. li None {
  571. value: isize DEFAULT,
  572. };
  573. /// Build a
  574. /// [`<ol>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/ol)
  575. /// element.
  576. ol None {
  577. reversed: Bool DEFAULT,
  578. start: isize DEFAULT,
  579. r#type: OrderedListType "type",
  580. };
  581. /// Build a
  582. /// [`<p>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/p)
  583. /// element.
  584. p None {};
  585. /// Build a
  586. /// [`<pre>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/pre)
  587. /// element.
  588. pre None {};
  589. /// Build a
  590. /// [`<ul>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/ul)
  591. /// element.
  592. ul None {};
  593. // Inline text semantics
  594. /// Build a
  595. /// [`<a>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a)
  596. /// element.
  597. a None {
  598. download: String DEFAULT,
  599. href: Uri DEFAULT,
  600. hreflang: LanguageTag DEFAULT,
  601. target: Target DEFAULT,
  602. r#type: Mime "type",
  603. // ping: SpacedList<Uri>,
  604. // rel: SpacedList<LinkType>,
  605. ping: SpacedList DEFAULT,
  606. rel: SpacedList DEFAULT,
  607. };
  608. /// Build a
  609. /// [`<abbr>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/abbr)
  610. /// element.
  611. abbr None {};
  612. /// Build a
  613. /// [`<b>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/b)
  614. /// element.
  615. b None {};
  616. /// Build a
  617. /// [`<bdi>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/bdi)
  618. /// element.
  619. bdi None {};
  620. /// Build a
  621. /// [`<bdo>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/bdo)
  622. /// element.
  623. bdo None {};
  624. /// Build a
  625. /// [`<br>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/br)
  626. /// element.
  627. br None {};
  628. /// Build a
  629. /// [`<cite>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/cite)
  630. /// element.
  631. cite None {};
  632. /// Build a
  633. /// [`<code>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/code)
  634. /// element.
  635. code None {
  636. language: String DEFAULT,
  637. };
  638. /// Build a
  639. /// [`<data>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/data)
  640. /// element.
  641. data None {
  642. value: String DEFAULT,
  643. };
  644. /// Build a
  645. /// [`<dfn>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/dfn)
  646. /// element.
  647. dfn None {};
  648. /// Build a
  649. /// [`<em>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/em)
  650. /// element.
  651. em None {};
  652. /// Build a
  653. /// [`<i>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/i)
  654. /// element.
  655. i None {};
  656. /// Build a
  657. /// [`<kbd>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/kbd)
  658. /// element.
  659. kbd None {};
  660. /// Build a
  661. /// [`<mark>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/mark)
  662. /// element.
  663. mark None {};
  664. /// Build a
  665. /// [`<menu>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/menu)
  666. /// element.
  667. menu None {};
  668. /// Build a
  669. /// [`<q>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/q)
  670. /// element.
  671. q None {
  672. cite: Uri DEFAULT,
  673. };
  674. /// Build a
  675. /// [`<rp>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/rp)
  676. /// element.
  677. rp None {};
  678. /// Build a
  679. /// [`<rt>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/rt)
  680. /// element.
  681. rt None {};
  682. /// Build a
  683. /// [`<ruby>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/ruby)
  684. /// element.
  685. ruby None {};
  686. /// Build a
  687. /// [`<s>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/s)
  688. /// element.
  689. s None {};
  690. /// Build a
  691. /// [`<samp>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/samp)
  692. /// element.
  693. samp None {};
  694. /// Build a
  695. /// [`<small>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/small)
  696. /// element.
  697. small None {};
  698. /// Build a
  699. /// [`<span>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/span)
  700. /// element.
  701. span None {};
  702. /// Build a
  703. /// [`<strong>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/strong)
  704. /// element.
  705. strong None {};
  706. /// Build a
  707. /// [`<sub>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/sub)
  708. /// element.
  709. sub None {};
  710. /// Build a
  711. /// [`<sup>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/sup)
  712. /// element.
  713. sup None {};
  714. /// Build a
  715. /// [`<time>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/time)
  716. /// element.
  717. time None {
  718. datetime: Datetime DEFAULT,
  719. };
  720. /// Build a
  721. /// [`<u>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/u)
  722. /// element.
  723. u None {};
  724. /// Build a
  725. /// [`<var>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/var)
  726. /// element.
  727. var None {};
  728. /// Build a
  729. /// [`<wbr>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/wbr)
  730. /// element.
  731. wbr None {};
  732. // Image and multimedia
  733. /// Build a
  734. /// [`<area>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/area)
  735. /// element.
  736. area None {
  737. alt: String DEFAULT,
  738. coords: String DEFAULT, // TODO could perhaps be validated
  739. download: Bool DEFAULT,
  740. href: Uri DEFAULT,
  741. hreflang: LanguageTag DEFAULT,
  742. shape: AreaShape DEFAULT,
  743. target: Target DEFAULT,
  744. // ping: SpacedList<Uri>,
  745. // rel: SpacedSet<LinkType>,
  746. };
  747. /// Build a
  748. /// [`<audio>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/audio)
  749. /// element.
  750. audio None {
  751. autoplay: Bool DEFAULT,
  752. controls: Bool DEFAULT,
  753. crossorigin: CrossOrigin DEFAULT,
  754. muted: Bool DEFAULT,
  755. preload: Preload DEFAULT,
  756. src: Uri DEFAULT,
  757. r#loop: Bool "loop",
  758. };
  759. /// Build a
  760. /// [`<img>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/img)
  761. /// element.
  762. img None {
  763. alt: String DEFAULT,
  764. crossorigin: CrossOrigin DEFAULT,
  765. decoding: ImageDecoding DEFAULT,
  766. height: usize DEFAULT,
  767. ismap: Bool DEFAULT,
  768. loading: String DEFAULT,
  769. src: Uri DEFAULT,
  770. srcset: String DEFAULT, // FIXME this is much more complicated
  771. usemap: String DEFAULT, // FIXME should be a fragment starting with '#'
  772. width: usize DEFAULT,
  773. referrerpolicy: String DEFAULT,
  774. // sizes: SpacedList<String>, // FIXME it's not really just a string
  775. };
  776. /// Build a
  777. /// [`<map>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/map)
  778. /// element.
  779. map None {
  780. name: Id DEFAULT,
  781. };
  782. /// Build a
  783. /// [`<track>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/track)
  784. /// element.
  785. track None {
  786. default: Bool DEFAULT,
  787. kind: VideoKind DEFAULT,
  788. label: String DEFAULT,
  789. src: Uri DEFAULT,
  790. srclang: LanguageTag DEFAULT,
  791. };
  792. /// Build a
  793. /// [`<video>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/video)
  794. /// element.
  795. video None {
  796. autoplay: Bool DEFAULT,
  797. controls: Bool DEFAULT,
  798. crossorigin: CrossOrigin DEFAULT,
  799. height: usize DEFAULT,
  800. r#loop: Bool "loop",
  801. muted: Bool DEFAULT,
  802. preload: Preload DEFAULT,
  803. playsinline: Bool DEFAULT,
  804. poster: Uri DEFAULT,
  805. src: Uri DEFAULT,
  806. width: usize DEFAULT,
  807. };
  808. // Embedded content
  809. /// Build a
  810. /// [`<embed>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/embed)
  811. /// element.
  812. embed None {
  813. height: usize DEFAULT,
  814. src: Uri DEFAULT,
  815. r#type: Mime "type",
  816. width: usize DEFAULT,
  817. };
  818. /// Build a
  819. /// [`<iframe>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/iframe)
  820. /// element.
  821. iframe None {
  822. allow: FeaturePolicy DEFAULT,
  823. allowfullscreen: Bool DEFAULT,
  824. allowpaymentrequest: Bool DEFAULT,
  825. height: usize DEFAULT,
  826. name: Id DEFAULT,
  827. referrerpolicy: ReferrerPolicy DEFAULT,
  828. src: Uri DEFAULT,
  829. srcdoc: Uri DEFAULT,
  830. width: usize DEFAULT,
  831. margin_width: String "marginWidth",
  832. align: String DEFAULT,
  833. longdesc: String DEFAULT,
  834. scrolling: String DEFAULT,
  835. margin_height: String "marginHeight",
  836. frame_border: String "frameBorder",
  837. // sandbox: SpacedSet<Sandbox>,
  838. };
  839. /// Build a
  840. /// [`<object>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/object)
  841. /// element.
  842. object None {
  843. data: Uri DEFAULT,
  844. form: Id DEFAULT,
  845. height: usize DEFAULT,
  846. name: Id DEFAULT,
  847. r#type: Mime "type",
  848. typemustmatch: Bool DEFAULT,
  849. usemap: String DEFAULT, // TODO should be a fragment starting with '#'
  850. width: usize DEFAULT,
  851. };
  852. /// Build a
  853. /// [`<param>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/param)
  854. /// element.
  855. param None {
  856. name: String DEFAULT,
  857. value: String DEFAULT,
  858. };
  859. /// Build a
  860. /// [`<picture>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/picture)
  861. /// element.
  862. picture None {};
  863. /// Build a
  864. /// [`<source>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/source)
  865. /// element.
  866. source None {
  867. src: Uri DEFAULT,
  868. r#type: Mime "type",
  869. };
  870. // Scripting
  871. /// Build a
  872. /// [`<canvas>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/canvas)
  873. /// element.
  874. canvas None {
  875. height: usize DEFAULT,
  876. width: usize DEFAULT,
  877. };
  878. /// Build a
  879. /// [`<noscript>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/noscript)
  880. /// element.
  881. noscript None {};
  882. /// Build a
  883. /// [`<script>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/script)
  884. /// element.
  885. ///
  886. /// The [`script`] HTML element is used to embed executable code or data; this is typically used to embed or refer to
  887. /// JavaScript code. The [`script`] element can also be used with other languages, such as WebGL's GLSL shader
  888. /// programming language and JSON.
  889. script None {
  890. /// Normal script elements pass minimal information to the window.onerror for scripts which do not pass the
  891. /// standard CORS checks. To allow error logging for sites which use a separate domain for static media, use
  892. /// this attribute. See CORS settings attributes for a more descriptive explanation of its valid arguments.
  893. crossorigin: CrossOrigin DEFAULT,
  894. /// This Boolean attribute is set to indicate to a browser that the script is meant to be executed after the
  895. /// document has been parsed, but before firing DOMContentLoaded.
  896. ///
  897. /// Scripts with the defer attribute will prevent the DOMContentLoaded event from firing until the script has
  898. /// loaded and finished evaluating.
  899. ///
  900. /// ----
  901. /// ### Warning:
  902. ///
  903. /// This attribute must not be used if the src attribute is absent (i.e. for inline scripts), in this
  904. /// case it would have no effect.
  905. ///
  906. /// ----
  907. ///
  908. /// The defer attribute has no effect on module scripts — they defer by default.
  909. /// Scripts with the defer attribute will execute in the order in which they appear in the document.
  910. ///
  911. /// This attribute allows the elimination of parser-blocking JavaScript where the browser would have to load and
  912. /// evaluate scripts before continuing to parse. async has a similar effect in this case.
  913. defer: Bool DEFAULT,
  914. integrity: Integrity DEFAULT,
  915. nomodule: Bool DEFAULT,
  916. nonce: Nonce DEFAULT,
  917. src: Uri DEFAULT,
  918. text: String DEFAULT,
  919. r#async: Bool "async",
  920. r#type: String "type", // TODO could be an enum
  921. r#script: String "script",
  922. };
  923. // Demarcating edits
  924. /// Build a
  925. /// [`<del>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/del)
  926. /// element.
  927. del None {
  928. cite: Uri DEFAULT,
  929. datetime: Datetime DEFAULT,
  930. };
  931. /// Build a
  932. /// [`<ins>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/ins)
  933. /// element.
  934. ins None {
  935. cite: Uri DEFAULT,
  936. datetime: Datetime DEFAULT,
  937. };
  938. // Table content
  939. /// Build a
  940. /// [`<caption>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/caption)
  941. /// element.
  942. caption None {};
  943. /// Build a
  944. /// [`<col>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/col)
  945. /// element.
  946. col None {
  947. span: usize DEFAULT,
  948. };
  949. /// Build a
  950. /// [`<colgroup>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/colgroup)
  951. /// element.
  952. colgroup None {
  953. span: usize DEFAULT,
  954. };
  955. /// Build a
  956. /// [`<table>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/table)
  957. /// element.
  958. table None {};
  959. /// Build a
  960. /// [`<tbody>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/tbody)
  961. /// element.
  962. tbody None {};
  963. /// Build a
  964. /// [`<td>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/td)
  965. /// element.
  966. td None {
  967. colspan: usize DEFAULT,
  968. rowspan: usize DEFAULT,
  969. // headers: SpacedSet<Id>,
  970. };
  971. /// Build a
  972. /// [`<tfoot>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/tfoot)
  973. /// element.
  974. tfoot None {};
  975. /// Build a
  976. /// [`<th>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/th)
  977. /// element.
  978. th None {
  979. abbr: String DEFAULT,
  980. colspan: usize DEFAULT,
  981. rowspan: usize DEFAULT,
  982. scope: TableHeaderScope DEFAULT,
  983. // headers: SpacedSet<Id>,
  984. };
  985. /// Build a
  986. /// [`<thead>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/thead)
  987. /// element.
  988. thead None {};
  989. /// Build a
  990. /// [`<tr>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/tr)
  991. /// element.
  992. tr None {};
  993. // Forms
  994. /// Build a
  995. /// [`<button>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button)
  996. /// element.
  997. button None {
  998. autofocus: Bool DEFAULT,
  999. disabled: Bool DEFAULT,
  1000. form: Id DEFAULT,
  1001. formaction: Uri DEFAULT,
  1002. formenctype: FormEncodingType DEFAULT,
  1003. formmethod: FormMethod DEFAULT,
  1004. formnovalidate: Bool DEFAULT,
  1005. formtarget: Target DEFAULT,
  1006. name: Id DEFAULT,
  1007. value: String DEFAULT,
  1008. r#type: String "type",
  1009. };
  1010. /// Build a
  1011. /// [`<datalist>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/datalist)
  1012. /// element.
  1013. datalist None {};
  1014. /// Build a
  1015. /// [`<fieldset>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/fieldset)
  1016. /// element.
  1017. fieldset None {};
  1018. /// Build a
  1019. /// [`<form>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form)
  1020. /// element.
  1021. form None {
  1022. // accept-charset: SpacedList<CharacterEncoding>,
  1023. action: Uri DEFAULT,
  1024. autocomplete: OnOff DEFAULT,
  1025. enctype: FormEncodingType DEFAULT,
  1026. method: FormMethod DEFAULT,
  1027. name: Id DEFAULT,
  1028. novalidate: Bool DEFAULT,
  1029. target: Target DEFAULT,
  1030. };
  1031. /// Build a
  1032. /// [`<input>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input)
  1033. /// element.
  1034. input None {
  1035. accept: String DEFAULT,
  1036. alt: String DEFAULT,
  1037. autocomplete: String DEFAULT,
  1038. autofocus: Bool DEFAULT,
  1039. capture: String DEFAULT,
  1040. checked: Bool DEFAULT,
  1041. directory: Bool "webkitdirectory",
  1042. disabled: Bool DEFAULT,
  1043. form: Id DEFAULT,
  1044. formaction: Uri DEFAULT,
  1045. formenctype: FormEncodingType DEFAULT,
  1046. formmethod: FormDialogMethod DEFAULT,
  1047. formnovalidate: Bool DEFAULT,
  1048. formtarget: Target DEFAULT,
  1049. height: isize DEFAULT,
  1050. initial_checked: Bool DEFAULT,
  1051. list: Id DEFAULT,
  1052. max: String DEFAULT,
  1053. maxlength: usize DEFAULT,
  1054. min: String DEFAULT,
  1055. minlength: usize DEFAULT,
  1056. multiple: Bool DEFAULT,
  1057. name: Id DEFAULT,
  1058. pattern: String DEFAULT,
  1059. placeholder: String DEFAULT,
  1060. readonly: Bool DEFAULT,
  1061. required: Bool DEFAULT,
  1062. size: usize DEFAULT,
  1063. spellcheck: Bool DEFAULT,
  1064. src: Uri DEFAULT,
  1065. step: String DEFAULT,
  1066. tabindex: usize DEFAULT,
  1067. width: isize DEFAULT,
  1068. /// The type of input
  1069. ///
  1070. /// Here are the different input types you can use in HTML:
  1071. ///
  1072. /// - `button`
  1073. /// - `checkbox`
  1074. /// - `color`
  1075. /// - `date`
  1076. /// - `datetime-local`
  1077. /// - `email`
  1078. /// - `file`
  1079. /// - `hidden`
  1080. /// - `image`
  1081. /// - `month`
  1082. /// - `number`
  1083. /// - `password`
  1084. /// - `radio`
  1085. /// - `range`
  1086. /// - `reset`
  1087. /// - `search`
  1088. /// - `submit`
  1089. /// - `tel`
  1090. /// - `text`
  1091. /// - `time`
  1092. /// - `url`
  1093. /// - `week`
  1094. r#type: InputType "type",
  1095. // value: String,
  1096. value: String volatile,
  1097. initial_value: String DEFAULT,
  1098. };
  1099. /// Build a
  1100. /// [`<label>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/label)
  1101. /// element.
  1102. label None {
  1103. form: Id DEFAULT,
  1104. r#for: Id "for",
  1105. };
  1106. /// Build a
  1107. /// [`<legend>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/legend)
  1108. /// element.
  1109. legend None {};
  1110. /// Build a
  1111. /// [`<meter>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meter)
  1112. /// element.
  1113. meter None {
  1114. value: isize DEFAULT,
  1115. min: isize DEFAULT,
  1116. max: isize DEFAULT,
  1117. low: isize DEFAULT,
  1118. high: isize DEFAULT,
  1119. optimum: isize DEFAULT,
  1120. form: Id DEFAULT,
  1121. };
  1122. /// Build a
  1123. /// [`<optgroup>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/optgroup)
  1124. /// element.
  1125. optgroup None {
  1126. disabled: Bool DEFAULT,
  1127. label: String DEFAULT,
  1128. };
  1129. /// Build a
  1130. /// [`<option>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/option)
  1131. /// element.
  1132. option None {
  1133. disabled: Bool DEFAULT,
  1134. label: String DEFAULT,
  1135. value: String DEFAULT,
  1136. selected: Bool volatile,
  1137. initial_selected: Bool DEFAULT,
  1138. };
  1139. /// Build a
  1140. /// [`<output>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/output)
  1141. /// element.
  1142. output None {
  1143. form: Id DEFAULT,
  1144. name: Id DEFAULT,
  1145. // r#for: SpacedSet<Id>,
  1146. };
  1147. /// Build a
  1148. /// [`<progress>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/progress)
  1149. /// element.
  1150. progress None {
  1151. max: f64 DEFAULT,
  1152. value: f64 DEFAULT,
  1153. };
  1154. /// Build a
  1155. /// [`<select>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/select)
  1156. /// element.
  1157. select None {
  1158. // defined below
  1159. // value: String,
  1160. autocomplete: String DEFAULT,
  1161. autofocus: Bool DEFAULT,
  1162. disabled: Bool DEFAULT,
  1163. form: Id DEFAULT,
  1164. multiple: Bool DEFAULT,
  1165. name: Id DEFAULT,
  1166. required: Bool DEFAULT,
  1167. size: usize DEFAULT,
  1168. value: String volatile,
  1169. };
  1170. /// Build a
  1171. /// [`<textarea>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/textarea)
  1172. /// element.
  1173. textarea None {
  1174. autocomplete: OnOff DEFAULT,
  1175. autofocus: Bool DEFAULT,
  1176. cols: usize DEFAULT,
  1177. disabled: Bool DEFAULT,
  1178. form: Id DEFAULT,
  1179. maxlength: usize DEFAULT,
  1180. minlength: usize DEFAULT,
  1181. name: Id DEFAULT,
  1182. placeholder: String DEFAULT,
  1183. readonly: Bool DEFAULT,
  1184. required: Bool DEFAULT,
  1185. rows: usize DEFAULT,
  1186. spellcheck: BoolOrDefault DEFAULT,
  1187. wrap: Wrap DEFAULT,
  1188. value: String volatile,
  1189. initial_value: String DEFAULT,
  1190. };
  1191. // Interactive elements
  1192. /// Build a
  1193. /// [`<details>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/details)
  1194. /// element.
  1195. details None {
  1196. open: Bool DEFAULT,
  1197. };
  1198. /// Build dialog
  1199. /// [`<dialog>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/dialog)
  1200. /// element.
  1201. dialog None {
  1202. open: Bool DEFAULT,
  1203. };
  1204. /// Build a
  1205. /// [`<summary>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/summary)
  1206. /// element.
  1207. summary None {};
  1208. // Web components
  1209. /// Build a
  1210. /// [`<slot>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/slot)
  1211. /// element.
  1212. slot None {};
  1213. /// Build a
  1214. /// [`<template>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/template)
  1215. /// element.
  1216. template None {};
  1217. // SVG components
  1218. /// Build a
  1219. /// [`<svg>`](https://developer.mozilla.org/en-US/docs/Web/SVG/Element/svg)
  1220. /// element.
  1221. svg "http://www.w3.org/2000/svg" { };
  1222. // /// Build a
  1223. // /// [`<a>`](https://developer.mozilla.org/en-US/docs/Web/SVG/Element/a)
  1224. // /// element.
  1225. // a "http://www.w3.org/2000/svg" {};
  1226. /// Build a
  1227. /// [`<animate>`](https://developer.mozilla.org/en-US/docs/Web/SVG/Element/animate)
  1228. /// element.
  1229. animate "http://www.w3.org/2000/svg" {};
  1230. /// Build a
  1231. /// [`<animateMotion>`](https://developer.mozilla.org/en-US/docs/Web/SVG/Element/animateMotion)
  1232. /// element.
  1233. animateMotion "http://www.w3.org/2000/svg" {};
  1234. /// Build a
  1235. /// [`<animateTransform>`](https://developer.mozilla.org/en-US/docs/Web/SVG/Element/animateTransform)
  1236. /// element.
  1237. animateTransform "http://www.w3.org/2000/svg" {};
  1238. /// Build a
  1239. /// [`<circle>`](https://developer.mozilla.org/en-US/docs/Web/SVG/Element/circle)
  1240. /// element.
  1241. circle "http://www.w3.org/2000/svg" {};
  1242. /// Build a
  1243. /// [`<clipPath>`](https://developer.mozilla.org/en-US/docs/Web/SVG/Element/clipPath)
  1244. /// element.
  1245. clipPath "http://www.w3.org/2000/svg" {};
  1246. /// Build a
  1247. /// [`<defs>`](https://developer.mozilla.org/en-US/docs/Web/SVG/Element/defs)
  1248. /// element.
  1249. defs "http://www.w3.org/2000/svg" {};
  1250. /// Build a
  1251. /// [`<desc>`](https://developer.mozilla.org/en-US/docs/Web/SVG/Element/desc)
  1252. /// element.
  1253. desc "http://www.w3.org/2000/svg" {};
  1254. /// Build a
  1255. /// [`<discard>`](https://developer.mozilla.org/en-US/docs/Web/SVG/Element/discard)
  1256. /// element.
  1257. discard "http://www.w3.org/2000/svg" {};
  1258. /// Build a
  1259. /// [`<ellipse>`](https://developer.mozilla.org/en-US/docs/Web/SVG/Element/ellipse)
  1260. /// element.
  1261. ellipse "http://www.w3.org/2000/svg" {};
  1262. /// Build a
  1263. /// [`<feBlend>`](https://developer.mozilla.org/en-US/docs/Web/SVG/Element/feBlend)
  1264. /// element.
  1265. feBlend "http://www.w3.org/2000/svg" {};
  1266. /// Build a
  1267. /// [`<feColorMatrix>`](https://developer.mozilla.org/en-US/docs/Web/SVG/Element/feColorMatrix)
  1268. /// element.
  1269. feColorMatrix "http://www.w3.org/2000/svg" {};
  1270. /// Build a
  1271. /// [`<feComponentTransfer>`](https://developer.mozilla.org/en-US/docs/Web/SVG/Element/feComponentTransfer)
  1272. /// element.
  1273. feComponentTransfer "http://www.w3.org/2000/svg" {};
  1274. /// Build a
  1275. /// [`<feComposite>`](https://developer.mozilla.org/en-US/docs/Web/SVG/Element/feComposite)
  1276. /// element.
  1277. feComposite "http://www.w3.org/2000/svg" {};
  1278. /// Build a
  1279. /// [`<feConvolveMatrix>`](https://developer.mozilla.org/en-US/docs/Web/SVG/Element/feConvolveMatrix)
  1280. /// element.
  1281. feConvolveMatrix "http://www.w3.org/2000/svg" {};
  1282. /// Build a
  1283. /// [`<feDiffuseLighting>`](https://developer.mozilla.org/en-US/docs/Web/SVG/Element/feDiffuseLighting)
  1284. /// element.
  1285. feDiffuseLighting "http://www.w3.org/2000/svg" {};
  1286. /// Build a
  1287. /// [`<feDisplacementMap>`](https://developer.mozilla.org/en-US/docs/Web/SVG/Element/feDisplacementMap)
  1288. /// element.
  1289. feDisplacementMap "http://www.w3.org/2000/svg" {};
  1290. /// Build a
  1291. /// [`<feDistantLight>`](https://developer.mozilla.org/en-US/docs/Web/SVG/Element/feDistantLight)
  1292. /// element.
  1293. feDistantLight "http://www.w3.org/2000/svg" {};
  1294. /// Build a
  1295. /// [`<feDropShadow>`](https://developer.mozilla.org/en-US/docs/Web/SVG/Element/feDropShadow)
  1296. /// element.
  1297. feDropShadow "http://www.w3.org/2000/svg" {};
  1298. /// Build a
  1299. /// [`<feFlood>`](https://developer.mozilla.org/en-US/docs/Web/SVG/Element/feFlood)
  1300. /// element.
  1301. feFlood "http://www.w3.org/2000/svg" {};
  1302. /// Build a
  1303. /// [`<feFuncA>`](https://developer.mozilla.org/en-US/docs/Web/SVG/Element/feFuncA)
  1304. /// element.
  1305. feFuncA "http://www.w3.org/2000/svg" {};
  1306. /// Build a
  1307. /// [`<feFuncB>`](https://developer.mozilla.org/en-US/docs/Web/SVG/Element/feFuncB)
  1308. /// element.
  1309. feFuncB "http://www.w3.org/2000/svg" {};
  1310. /// Build a
  1311. /// [`<feFuncG>`](https://developer.mozilla.org/en-US/docs/Web/SVG/Element/feFuncG)
  1312. /// element.
  1313. feFuncG "http://www.w3.org/2000/svg" {};
  1314. /// Build a
  1315. /// [`<feFuncR>`](https://developer.mozilla.org/en-US/docs/Web/SVG/Element/feFuncR)
  1316. /// element.
  1317. feFuncR "http://www.w3.org/2000/svg" {};
  1318. /// Build a
  1319. /// [`<feGaussianBlur>`](https://developer.mozilla.org/en-US/docs/Web/SVG/Element/feGaussianBlur)
  1320. /// element.
  1321. feGaussianBlur "http://www.w3.org/2000/svg" {};
  1322. /// Build a
  1323. /// [`<feImage>`](https://developer.mozilla.org/en-US/docs/Web/SVG/Element/feImage)
  1324. /// element.
  1325. feImage "http://www.w3.org/2000/svg" {};
  1326. /// Build a
  1327. /// [`<feMerge>`](https://developer.mozilla.org/en-US/docs/Web/SVG/Element/feMerge)
  1328. /// element.
  1329. feMerge "http://www.w3.org/2000/svg" {};
  1330. /// Build a
  1331. /// [`<feMergeNode>`](https://developer.mozilla.org/en-US/docs/Web/SVG/Element/feMergeNode)
  1332. /// element.
  1333. feMergeNode "http://www.w3.org/2000/svg" {};
  1334. /// Build a
  1335. /// [`<feMorphology>`](https://developer.mozilla.org/en-US/docs/Web/SVG/Element/feMorphology)
  1336. /// element.
  1337. feMorphology "http://www.w3.org/2000/svg" {};
  1338. /// Build a
  1339. /// [`<feOffset>`](https://developer.mozilla.org/en-US/docs/Web/SVG/Element/feOffset)
  1340. /// element.
  1341. feOffset "http://www.w3.org/2000/svg" {};
  1342. /// Build a
  1343. /// [`<fePointLight>`](https://developer.mozilla.org/en-US/docs/Web/SVG/Element/fePointLight)
  1344. /// element.
  1345. fePointLight "http://www.w3.org/2000/svg" {};
  1346. /// Build a
  1347. /// [`<feSpecularLighting>`](https://developer.mozilla.org/en-US/docs/Web/SVG/Element/feSpecularLighting)
  1348. /// element.
  1349. feSpecularLighting "http://www.w3.org/2000/svg" {};
  1350. /// Build a
  1351. /// [`<feSpotLight>`](https://developer.mozilla.org/en-US/docs/Web/SVG/Element/feSpotLight)
  1352. /// element.
  1353. feSpotLight "http://www.w3.org/2000/svg" {};
  1354. /// Build a
  1355. /// [`<feTile>`](https://developer.mozilla.org/en-US/docs/Web/SVG/Element/feTile)
  1356. /// element.
  1357. feTile "http://www.w3.org/2000/svg" {};
  1358. /// Build a
  1359. /// [`<feTurbulence>`](https://developer.mozilla.org/en-US/docs/Web/SVG/Element/feTurbulence)
  1360. /// element.
  1361. feTurbulence "http://www.w3.org/2000/svg" {};
  1362. /// Build a
  1363. /// [`<filter>`](https://developer.mozilla.org/en-US/docs/Web/SVG/Element/filter)
  1364. /// element.
  1365. filter "http://www.w3.org/2000/svg" {};
  1366. /// Build a
  1367. /// [`<foreignObject>`](https://developer.mozilla.org/en-US/docs/Web/SVG/Element/foreignObject)
  1368. /// element.
  1369. foreignObject "http://www.w3.org/2000/svg" {};
  1370. /// Build a
  1371. /// [`<g>`](https://developer.mozilla.org/en-US/docs/Web/SVG/Element/g)
  1372. /// element.
  1373. g "http://www.w3.org/2000/svg" {};
  1374. /// Build a
  1375. /// [`<hatch>`](https://developer.mozilla.org/en-US/docs/Web/SVG/Element/hatch)
  1376. /// element.
  1377. hatch "http://www.w3.org/2000/svg" {};
  1378. /// Build a
  1379. /// [`<hatchpath>`](https://developer.mozilla.org/en-US/docs/Web/SVG/Element/hatchpath)
  1380. /// element.
  1381. hatchpath "http://www.w3.org/2000/svg" {};
  1382. /// Build a
  1383. /// [`<image>`](https://developer.mozilla.org/en-US/docs/Web/SVG/Element/image)
  1384. /// element.
  1385. image "http://www.w3.org/2000/svg" {};
  1386. /// Build a
  1387. /// [`<line>`](https://developer.mozilla.org/en-US/docs/Web/SVG/Element/line)
  1388. /// element.
  1389. line "http://www.w3.org/2000/svg" {};
  1390. /// Build a
  1391. /// [`<linearGradient>`](https://developer.mozilla.org/en-US/docs/Web/SVG/Element/linearGradient)
  1392. /// element.
  1393. linearGradient "http://www.w3.org/2000/svg" {};
  1394. /// Build a
  1395. /// [`<marker>`](https://developer.mozilla.org/en-US/docs/Web/SVG/Element/marker)
  1396. /// element.
  1397. marker "http://www.w3.org/2000/svg" {};
  1398. /// Build a
  1399. /// [`<mask>`](https://developer.mozilla.org/en-US/docs/Web/SVG/Element/mask)
  1400. /// element.
  1401. mask "http://www.w3.org/2000/svg" {};
  1402. /// Build a
  1403. /// [`<metadata>`](https://developer.mozilla.org/en-US/docs/Web/SVG/Element/metadata)
  1404. /// element.
  1405. metadata "http://www.w3.org/2000/svg" {};
  1406. /// Build a
  1407. /// [`<mpath>`](https://developer.mozilla.org/en-US/docs/Web/SVG/Element/mpath)
  1408. /// element.
  1409. mpath "http://www.w3.org/2000/svg" {};
  1410. /// Build a
  1411. /// [`<path>`](https://developer.mozilla.org/en-US/docs/Web/SVG/Element/path)
  1412. /// element.
  1413. path "http://www.w3.org/2000/svg" {};
  1414. /// Build a
  1415. /// [`<pattern>`](https://developer.mozilla.org/en-US/docs/Web/SVG/Element/pattern)
  1416. /// element.
  1417. pattern "http://www.w3.org/2000/svg" {};
  1418. /// Build a
  1419. /// [`<polygon>`](https://developer.mozilla.org/en-US/docs/Web/SVG/Element/polygon)
  1420. /// element.
  1421. polygon "http://www.w3.org/2000/svg" {};
  1422. /// Build a
  1423. /// [`<polyline>`](https://developer.mozilla.org/en-US/docs/Web/SVG/Element/polyline)
  1424. /// element.
  1425. polyline "http://www.w3.org/2000/svg" {};
  1426. /// Build a
  1427. /// [`<radialGradient>`](https://developer.mozilla.org/en-US/docs/Web/SVG/Element/radialGradient)
  1428. /// element.
  1429. radialGradient "http://www.w3.org/2000/svg" {};
  1430. /// Build a
  1431. /// [`<rect>`](https://developer.mozilla.org/en-US/docs/Web/SVG/Element/rect)
  1432. /// element.
  1433. rect "http://www.w3.org/2000/svg" {};
  1434. // /// Build a
  1435. // /// [`<script>`](https://developer.mozilla.org/en-US/docs/Web/SVG/Element/script)
  1436. // /// element.
  1437. // script "http://www.w3.org/2000/svg" {};
  1438. /// Build a
  1439. /// [`<set>`](https://developer.mozilla.org/en-US/docs/Web/SVG/Element/set)
  1440. /// element.
  1441. set "http://www.w3.org/2000/svg" {};
  1442. /// Build a
  1443. /// [`<stop>`](https://developer.mozilla.org/en-US/docs/Web/SVG/Element/stop)
  1444. /// element.
  1445. stop "http://www.w3.org/2000/svg" {};
  1446. // /// Build a
  1447. // /// [`<style>`](https://developer.mozilla.org/en-US/docs/Web/SVG/Element/style)
  1448. // /// element.
  1449. // style "http://www.w3.org/2000/svg" {};
  1450. // /// Build a
  1451. // /// [`<svg>`](https://developer.mozilla.org/en-US/docs/Web/SVG/Element/svg)
  1452. // /// element.
  1453. // svg "http://www.w3.org/2000/svg" {};
  1454. /// Build a
  1455. /// [`<switch>`](https://developer.mozilla.org/en-US/docs/Web/SVG/Element/switch)
  1456. /// element.
  1457. switch "http://www.w3.org/2000/svg" {};
  1458. /// Build a
  1459. /// [`<symbol>`](https://developer.mozilla.org/en-US/docs/Web/SVG/Element/symbol)
  1460. /// element.
  1461. symbol "http://www.w3.org/2000/svg" {};
  1462. /// Build a
  1463. /// [`<text>`](https://developer.mozilla.org/en-US/docs/Web/SVG/Element/text)
  1464. /// element.
  1465. text "http://www.w3.org/2000/svg" {};
  1466. /// Build a
  1467. /// [`<textPath>`](https://developer.mozilla.org/en-US/docs/Web/SVG/Element/textPath)
  1468. /// element.
  1469. textPath "http://www.w3.org/2000/svg" {};
  1470. // /// Build a
  1471. // /// [`<title>`](https://developer.mozilla.org/en-US/docs/Web/SVG/Element/title)
  1472. // /// element.
  1473. // title "http://www.w3.org/2000/svg" {};
  1474. /// Build a
  1475. /// [`<tspan>`](https://developer.mozilla.org/en-US/docs/Web/SVG/Element/tspan)
  1476. /// element.
  1477. tspan "http://www.w3.org/2000/svg" {};
  1478. /// Build a
  1479. /// [`<view>`](https://developer.mozilla.org/en-US/docs/Web/SVG/Element/view)
  1480. /// element.
  1481. view "http://www.w3.org/2000/svg" {};
  1482. // /// Build a
  1483. // /// [`<use>`](https://developer.mozilla.org/en-US/docs/Web/SVG/Element/use)
  1484. // /// element.
  1485. r#use ["use", "http://www.w3.org/2000/svg"] {
  1486. href: String DEFAULT,
  1487. };
  1488. // MathML elements
  1489. /// Build a
  1490. /// [`<annotation>`](https://w3c.github.io/mathml-core/#dfn-annotation)
  1491. /// element.
  1492. annotation "http://www.w3.org/1998/Math/MathML" {
  1493. encoding: String DEFAULT,
  1494. };
  1495. /// Build a
  1496. /// [`<annotation-xml>`](https://w3c.github.io/mathml-core/#dfn-annotation-xml)
  1497. /// element.
  1498. annotationXml ["annotation-xml", "http://www.w3.org/1998/Math/MathML"] {
  1499. encoding: String DEFAULT,
  1500. };
  1501. /// Build a
  1502. /// [`<merror>`](https://developer.mozilla.org/en-US/docs/Web/MathML/Element/merror)
  1503. /// element.
  1504. merror "http://www.w3.org/1998/Math/MathML" {};
  1505. /// Build a
  1506. /// [`<math>`](https://developer.mozilla.org/en-US/docs/Web/MathML/Element/math)
  1507. /// element.
  1508. math "http://www.w3.org/1998/Math/MathML" {
  1509. display: String DEFAULT,
  1510. };
  1511. /// Build a
  1512. /// [`<mfrac>`](https://developer.mozilla.org/en-US/docs/Web/MathML/Element/mfrac)
  1513. /// element.
  1514. mfrac "http://www.w3.org/1998/Math/MathML" {
  1515. linethickness: usize DEFAULT,
  1516. };
  1517. /// Build a
  1518. /// [`<mi>`](https://developer.mozilla.org/en-US/docs/Web/MathML/Element/mi)
  1519. /// element.
  1520. mi "http://www.w3.org/1998/Math/MathML" {
  1521. mathvariant: String DEFAULT,
  1522. };
  1523. /// Build a
  1524. /// [`<mmultiscripts>`](https://developer.mozilla.org/en-US/docs/Web/MathML/Element/mmultiscripts)
  1525. /// element.
  1526. mmultiscripts "http://www.w3.org/1998/math/mathml" {};
  1527. /// Build a
  1528. /// [`<mn>`](https://developer.mozilla.org/en-US/docs/Web/MathML/Element/mn)
  1529. /// element.
  1530. mn "http://www.w3.org/1998/Math/MathML" {};
  1531. /// Build a
  1532. /// [`<mo>`](https://developer.mozilla.org/en-US/docs/Web/MathML/Element/mo)
  1533. /// element.
  1534. mo "http://www.w3.org/1998/Math/MathML" {
  1535. fence: Bool DEFAULT,
  1536. largeop: Bool DEFAULT,
  1537. lspace: usize DEFAULT,
  1538. maxsize: usize DEFAULT,
  1539. minsize: usize DEFAULT,
  1540. movablelimits: Bool DEFAULT,
  1541. rspace: usize DEFAULT,
  1542. separator: Bool DEFAULT,
  1543. stretchy: Bool DEFAULT,
  1544. symmetric: Bool DEFAULT,
  1545. };
  1546. /// Build a
  1547. /// [`<mover>`](https://developer.mozilla.org/en-US/docs/Web/MathML/Element/mover)
  1548. /// element.
  1549. mover "http://www.w3.org/1998/Math/MathML" {
  1550. accent: Bool DEFAULT,
  1551. };
  1552. /// Build a
  1553. /// [`<mpadded>`](https://developer.mozilla.org/en-US/docs/Web/MathML/Element/mpadded)
  1554. /// element.
  1555. mpadded "http://www.w3.org/1998/Math/MathML" {
  1556. depth: usize DEFAULT,
  1557. height: usize DEFAULT,
  1558. lspace: usize DEFAULT,
  1559. voffset: usize DEFAULT,
  1560. width: usize DEFAULT,
  1561. };
  1562. /// Build a
  1563. /// [`<mphantom>`](https://developer.mozilla.org/en-US/docs/Web/MathML/Element/mphantom)
  1564. /// element.
  1565. mphantom "http://www.w3.org/1998/Math/MathML" {};
  1566. /// Build a
  1567. /// [`<mprescripts>`](https://developer.mozilla.org/en-US/docs/Web/MathML/Element/mprescripts)
  1568. /// element.
  1569. mprescripts "http://www.w3.org/1998/Math/MathML" {};
  1570. /// Build a
  1571. /// [`<mroot>`](https://developer.mozilla.org/en-US/docs/Web/MathML/Element/mroot)
  1572. /// element.
  1573. mroot "http://www.w3.org/1998/Math/MathML" {};
  1574. /// Build a
  1575. /// [`<mrow>`](https://developer.mozilla.org/en-US/docs/Web/MathML/Element/mrow)
  1576. /// element.
  1577. mrow "http://www.w3.org/1998/Math/MathML" {
  1578. };
  1579. /// Build a
  1580. /// [`<ms>`](https://developer.mozilla.org/en-US/docs/Web/MathML/Element/ms)
  1581. /// element.
  1582. ms "http://www.w3.org/1998/Math/MathML" {
  1583. lquote: String DEFAULT,
  1584. rquote: String DEFAULT,
  1585. };
  1586. /// Build a
  1587. /// [`<mspace>`](https://developer.mozilla.org/en-US/docs/Web/MathML/Element/mspace)
  1588. /// element.
  1589. mspace "http://www.w3.org/1998/Math/MathML" {
  1590. depth: usize DEFAULT,
  1591. height: usize DEFAULT,
  1592. width: usize DEFAULT,
  1593. };
  1594. /// Build a
  1595. /// [`<msqrt>`](https://developer.mozilla.org/en-US/docs/Web/MathML/Element/msqrt)
  1596. /// element.
  1597. msqrt "http://www.w3.org/1998/Math/MathML" {};
  1598. /// Build a
  1599. /// [`<mstyle>`](https://developer.mozilla.org/en-US/docs/Web/MathML/Element/mstyle)
  1600. /// element.
  1601. mstyle "http://www.w3.org/1998/Math/MathML" {};
  1602. /// Build a
  1603. /// [`<msub>`](https://developer.mozilla.org/en-US/docs/Web/MathML/Element/msub)
  1604. /// element.
  1605. msub "http://www.w3.org/1998/Math/MathML" {};
  1606. /// Build a
  1607. /// [`<msubsup>`](https://developer.mozilla.org/en-US/docs/Web/MathML/Element/msubsup)
  1608. /// element.
  1609. msubsup "http://www.w3.org/1998/Math/MathML" {};
  1610. /// Build a
  1611. /// [`<msup>`](https://developer.mozilla.org/en-US/docs/Web/MathML/Element/msup)
  1612. /// element.
  1613. msup "http://www.w3.org/1998/Math/MathML" {};
  1614. /// Build a
  1615. /// [`<mtable>`](https://developer.mozilla.org/en-US/docs/Web/MathML/Element/mtable)
  1616. /// element.
  1617. mtable "http://www.w3.org/1998/Math/MathML" {};
  1618. /// Build a
  1619. /// [`<mtd>`](https://developer.mozilla.org/en-US/docs/Web/MathML/Element/mtd)
  1620. /// element.
  1621. mtd "http://www.w3.org/1998/Math/MathML" {
  1622. columnspan: usize DEFAULT,
  1623. rowspan: usize DEFAULT,
  1624. };
  1625. /// Build a
  1626. /// [`<mtext>`](https://developer.mozilla.org/en-US/docs/Web/MathML/Element/mtext)
  1627. /// element.
  1628. mtext "http://www.w3.org/1998/Math/MathML" {};
  1629. /// Build a
  1630. /// [`<mtr>`](https://developer.mozilla.org/en-US/docs/Web/MathML/Element/mtr)
  1631. /// element.
  1632. mtr "http://www.w3.org/1998/Math/MathML" {};
  1633. /// Build a
  1634. /// [`<munder>`](https://developer.mozilla.org/en-US/docs/Web/MathML/Element/munder)
  1635. /// element.
  1636. munder "http://www.w3.org/1998/Math/MathML" {
  1637. accentunder: Bool DEFAULT,
  1638. };
  1639. /// Build a
  1640. /// [`<munderover>`](https://developer.mozilla.org/en-US/docs/Web/MathML/Element/munderover)
  1641. /// element.
  1642. munderover "http://www.w3.org/1998/Math/MathML" {
  1643. accent: Bool DEFAULT,
  1644. accentunder: Bool DEFAULT,
  1645. };
  1646. /// Build a
  1647. /// [`<semantics>`](https://developer.mozilla.org/en-US/docs/Web/MathML/Element/semantics)
  1648. /// element.
  1649. semantics "http://www.w3.org/1998/Math/MathML" {
  1650. encoding: String DEFAULT,
  1651. };
  1652. }