umberto 7.0.2 → 8.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (554) hide show
  1. package/CHANGELOG.md +20 -1799
  2. package/LICENSE.md +44 -5
  3. package/README.md +194 -9
  4. package/package.json +4 -8
  5. package/scripts/filter/after-post-render/gloria/append-copy-heading-buttons.js +99 -0
  6. package/scripts/filter/after-post-render/gloria/apply-design-doc-classes.js +145 -0
  7. package/scripts/filter/after-post-render/gloria/wrap-table-into-wrappers.js +30 -0
  8. package/scripts/filter/after-post-render/img-linker.js +1 -1
  9. package/scripts/filter/after-post-render/insert-error-codes.js +1 -1
  10. package/scripts/filter/after-post-render/linker.js +1 -1
  11. package/scripts/filter/after-post-render/snippets.js +5 -1
  12. package/scripts/filter/after-render/gloria/inline-svg.js +14 -0
  13. package/scripts/filter/after-render/gloria/spritesheet-svg.js +14 -0
  14. package/scripts/filter/before-post-render/add-project-info-to-page.js +1 -1
  15. package/scripts/filter/before-post-render/code-switcher.js +4 -0
  16. package/scripts/filter/before-post-render/execute-and-insert-function-results.js +3 -1
  17. package/scripts/filter/before-post-render/gloria/add-breadcrumbs-data-to-page.js +269 -0
  18. package/scripts/filter/before-post-render/gloria/prerender-admonitions.js +27 -0
  19. package/scripts/filter/before-post-render/gloria/prerender-xml-pug-components.js +339 -0
  20. package/scripts/filter/before-post-render/gloria/render-post-render-pug-components.js +94 -0
  21. package/scripts/filter/before-post-render/set-layout.js +4 -2
  22. package/scripts/helper/parse-href.js +28 -0
  23. package/scripts/helper/u-capitalize.js +13 -0
  24. package/scripts/helper/u-random-id.js +16 -0
  25. package/scripts/helper/u-remove-indentation.js +13 -0
  26. package/scripts/helper/u-toc.js +2 -63
  27. package/scripts/utils/add-indention.js +16 -0
  28. package/scripts/utils/capitalize.js +17 -0
  29. package/scripts/utils/concat-url-parts.js +19 -0
  30. package/scripts/utils/decode-html-entities.js +25 -0
  31. package/scripts/utils/drop-init-slash.js +14 -0
  32. package/scripts/utils/drop-trailing-slash.js +14 -0
  33. package/scripts/utils/drop-url-protocol.js +10 -0
  34. package/scripts/utils/inline-svg.js +152 -0
  35. package/scripts/utils/measure-call.js +16 -0
  36. package/scripts/utils/parse-href.js +37 -0
  37. package/scripts/utils/parseicontag.js +1 -1
  38. package/scripts/utils/parselinks.js +27 -6
  39. package/scripts/utils/parser-cursor.js +280 -0
  40. package/scripts/utils/pipe.js +17 -0
  41. package/scripts/utils/pug-renderer/create-prerender-pug-template.js +172 -0
  42. package/scripts/utils/pug-renderer/render-pug-component.js +73 -0
  43. package/scripts/utils/pug-to-xml-binding/parser/walk-xml-tree.js +150 -0
  44. package/scripts/utils/pug-to-xml-binding/parser/xml-components-parser.js +414 -0
  45. package/scripts/utils/pug-to-xml-binding/render-xml-pug-components-in-markdown.js +193 -0
  46. package/scripts/utils/pug-to-xml-binding/transform-xml-tree-to-pug.js +144 -0
  47. package/scripts/utils/random-id.js +67 -0
  48. package/scripts/utils/remove-indentation.js +48 -0
  49. package/scripts/utils/spritesheet-svg.js +183 -0
  50. package/scripts/utils/toc.js +71 -0
  51. package/scripts/utils/transform-markdown-admonitions.js +98 -0
  52. package/scripts/utils/uniq-by-last.js +32 -0
  53. package/src/api-builder/api-builder.js +49 -18
  54. package/src/api-builder/classes/description-parser.js +61 -10
  55. package/src/api-builder/classes/doc-data-factory.js +2 -2
  56. package/src/helpers/github-url.js +1 -1
  57. package/src/helpers/templates/scripts/default.js +1 -1
  58. package/src/helpers/templates/scripts/group.js +1 -1
  59. package/src/hexo/filter/project-locals.js +9 -0
  60. package/src/hexo/get-repo-urls.js +1 -1
  61. package/src/hexo/project-globals.js +4 -0
  62. package/src/hexo-manager.js +7 -2
  63. package/src/sdk-builder/sdk-builder.js +4 -4
  64. package/src/tasks/build-api-docs.js +5 -5
  65. package/src/tasks/build-documentation.js +45 -22
  66. package/src/tasks/cache-files.js +2 -2
  67. package/src/tasks/compile-sass.js +12 -0
  68. package/src/tasks/copy-assets.js +4 -0
  69. package/src/tasks/copy-project-icons.js +1 -1
  70. package/src/tasks/get-extra-files.js +1 -1
  71. package/src/tasks/get-project-config.js +1 -1
  72. package/src/tasks/overwrite-api-guides.js +1 -1
  73. package/themes/umberto/layout/gloria/404.pug +25 -16
  74. package/themes/umberto/layout/gloria/_api-docs/_header/_style.scss +31 -0
  75. package/themes/umberto/layout/gloria/_api-docs/_header/index.pug +50 -0
  76. package/themes/umberto/layout/gloria/_api-docs/_mixin/_api-see-source.pug +1 -4
  77. package/themes/umberto/layout/gloria/_api-docs/_mixin/_api-tree-item.pug +34 -26
  78. package/themes/umberto/layout/gloria/_api-docs/_mixin/_class-item.pug +20 -13
  79. package/themes/umberto/layout/gloria/_api-docs/_mixin/_dev-names.pug +1 -1
  80. package/themes/umberto/layout/gloria/_api-docs/_mixin/_error.pug +10 -5
  81. package/themes/umberto/layout/gloria/_api-docs/_mixin/_hierarchy-list.pug +1 -1
  82. package/themes/umberto/layout/gloria/_api-docs/_mixin/_link-or-text.pug +1 -1
  83. package/themes/umberto/layout/gloria/_api-docs/_mixin/_method.pug +45 -39
  84. package/themes/umberto/layout/gloria/_api-docs/_mixin/_property.pug +26 -20
  85. package/themes/umberto/layout/gloria/_api-docs/_mixin/_related.pug +1 -1
  86. package/themes/umberto/layout/gloria/_api-docs/_mixin/_toc-list-item.pug +11 -0
  87. package/themes/umberto/layout/gloria/_api-docs/_partial/api-subheader.pug +0 -11
  88. package/themes/umberto/layout/gloria/_api-docs/_partial/api-toc.pug +33 -0
  89. package/themes/umberto/layout/gloria/_api-docs/_partial/classes.pug +5 -4
  90. package/themes/umberto/layout/gloria/_api-docs/_partial/config-options.pug +5 -4
  91. package/themes/umberto/layout/gloria/_api-docs/_partial/constants.pug +1 -1
  92. package/themes/umberto/layout/gloria/_api-docs/_partial/description.pug +2 -2
  93. package/themes/umberto/layout/gloria/_api-docs/_partial/events.pug +5 -4
  94. package/themes/umberto/layout/gloria/_api-docs/_partial/functions.pug +5 -4
  95. package/themes/umberto/layout/gloria/_api-docs/_partial/interfaces.pug +1 -1
  96. package/themes/umberto/layout/gloria/_api-docs/_partial/methods.pug +14 -13
  97. package/themes/umberto/layout/gloria/_api-docs/_partial/namespaces.pug +1 -1
  98. package/themes/umberto/layout/gloria/_api-docs/_partial/navtree.pug +4 -11
  99. package/themes/umberto/layout/gloria/_api-docs/_partial/properties.pug +14 -13
  100. package/themes/umberto/layout/gloria/_api-docs/_partial/type-parameters.pug +15 -12
  101. package/themes/umberto/layout/gloria/_api-docs/_partial/typedefs.pug +5 -4
  102. package/themes/umberto/layout/gloria/_api-docs/_subheader/_style.scss +5 -0
  103. package/themes/umberto/layout/gloria/_api-docs/_subheader/index.pug +10 -0
  104. package/themes/umberto/layout/gloria/_api-docs/_toc/_style.scss +227 -0
  105. package/themes/umberto/layout/gloria/_api-docs/_toc/index.pug +11 -0
  106. package/themes/umberto/layout/gloria/_api-docs/api-base.pug +24 -24
  107. package/themes/umberto/layout/gloria/_api-docs/class.pug +4 -4
  108. package/themes/umberto/layout/gloria/_api-docs/errors.pug +3 -3
  109. package/themes/umberto/layout/gloria/_api-docs/index.pug +3 -0
  110. package/themes/umberto/layout/gloria/_api-docs/interface.pug +4 -4
  111. package/themes/umberto/layout/gloria/_api-docs/mixin.pug +4 -4
  112. package/themes/umberto/layout/gloria/_api-docs/module.pug +4 -4
  113. package/themes/umberto/layout/gloria/_api-docs/namespace.pug +4 -4
  114. package/themes/umberto/layout/gloria/_api-docs/typedef.pug +22 -22
  115. package/themes/umberto/layout/gloria/_components/badge/_style.scss +27 -0
  116. package/themes/umberto/layout/gloria/_components/badge/index.pug +30 -0
  117. package/themes/umberto/layout/gloria/_components/banner/_style.scss +133 -0
  118. package/themes/umberto/layout/gloria/_components/banner/index.pug +3 -0
  119. package/themes/umberto/layout/gloria/_components/button/_style.scss +183 -0
  120. package/themes/umberto/layout/gloria/_components/button/index.pug +140 -0
  121. package/themes/umberto/layout/gloria/_components/callout/_style.scss +56 -0
  122. package/themes/umberto/layout/gloria/_components/callout/index.pug +87 -0
  123. package/themes/umberto/layout/gloria/_components/card/_style.scss +101 -0
  124. package/themes/umberto/layout/gloria/_components/card/index.pug +131 -0
  125. package/themes/umberto/layout/gloria/_components/card-learn-more-links/_style.scss +9 -0
  126. package/themes/umberto/layout/gloria/_components/card-learn-more-links/index.pug +56 -0
  127. package/themes/umberto/layout/gloria/_components/checkbox/_style.scss +117 -0
  128. package/themes/umberto/layout/gloria/_components/checkbox/index.pug +35 -0
  129. package/themes/umberto/layout/gloria/_components/cke5-code-switcher/index.pug +39 -0
  130. package/themes/umberto/layout/gloria/_components/code-block/_style.scss +111 -0
  131. package/themes/umberto/layout/gloria/_components/code-block/index.pug +67 -0
  132. package/themes/umberto/layout/gloria/_components/code-switcher/_style.scss +41 -0
  133. package/themes/umberto/layout/gloria/_components/code-switcher/index.pug +31 -0
  134. package/themes/umberto/layout/gloria/_components/columns/_style.scss +54 -0
  135. package/themes/umberto/layout/gloria/_components/columns/index.pug +30 -0
  136. package/themes/umberto/layout/gloria/_components/divider/_style.scss +6 -0
  137. package/themes/umberto/layout/gloria/_components/divider/index.pug +13 -0
  138. package/themes/umberto/layout/gloria/_components/dropdown/_style.scss +88 -0
  139. package/themes/umberto/layout/gloria/_components/dropdown/index.pug +77 -0
  140. package/themes/umberto/layout/gloria/_components/fake-devtools/_style.scss +233 -0
  141. package/themes/umberto/layout/gloria/_components/fake-devtools/index.pug +27 -0
  142. package/themes/umberto/layout/gloria/_components/heading-badge/index.pug +17 -0
  143. package/themes/umberto/layout/gloria/_components/heading-link/_style.scss +47 -0
  144. package/themes/umberto/layout/gloria/_components/heading-link/index.pug +26 -0
  145. package/themes/umberto/layout/gloria/_components/icon/_style.scss +12 -0
  146. package/themes/umberto/layout/gloria/_components/icon/index.pug +75 -0
  147. package/themes/umberto/layout/gloria/_components/icon-message/_style.scss +13 -0
  148. package/themes/umberto/layout/gloria/_components/icon-message/index.pug +17 -0
  149. package/themes/umberto/layout/gloria/_components/iframe/_style.scss +10 -0
  150. package/themes/umberto/layout/gloria/_components/iframe/index.pug +22 -0
  151. package/themes/umberto/layout/gloria/_components/img/index.pug +17 -0
  152. package/themes/umberto/layout/gloria/_components/index.pug +31 -0
  153. package/themes/umberto/layout/gloria/_components/input/_style.scss +82 -0
  154. package/themes/umberto/layout/gloria/_components/input/index.pug +34 -0
  155. package/themes/umberto/layout/gloria/_components/json-ld/index.pug +3 -0
  156. package/themes/umberto/layout/gloria/_components/keyboard-shortcut/_style.scss +49 -0
  157. package/themes/umberto/layout/gloria/_components/keyboard-shortcut/index.pug +23 -0
  158. package/themes/umberto/layout/gloria/_components/menu-dropdown/_style.scss +27 -0
  159. package/themes/umberto/layout/gloria/_components/menu-dropdown/index.pug +40 -0
  160. package/themes/umberto/layout/gloria/_components/mobile-overlay/_style.scss +70 -0
  161. package/themes/umberto/layout/gloria/_components/mobile-overlay/index.pug +37 -0
  162. package/themes/umberto/layout/gloria/_components/nav-tree/_style.scss +104 -0
  163. package/themes/umberto/layout/gloria/_components/nav-tree/index.pug +6 -0
  164. package/themes/umberto/layout/gloria/_components/nav-tree/nav-tree-item.pug +23 -0
  165. package/themes/umberto/layout/gloria/{_mixin → _components/nav-tree}/nav-tree-level.pug +31 -11
  166. package/themes/umberto/layout/gloria/_components/skeleton/_style.scss +22 -0
  167. package/themes/umberto/layout/gloria/_components/skeleton/index.pug +16 -0
  168. package/themes/umberto/layout/gloria/_components/spacer/_style.scss +9 -0
  169. package/themes/umberto/layout/gloria/_components/spacer/index.pug +19 -0
  170. package/themes/umberto/layout/gloria/_components/svg/index.pug +70 -0
  171. package/themes/umberto/layout/gloria/_components/tabs/_style.scss +80 -0
  172. package/themes/umberto/layout/gloria/_components/tabs/index.pug +81 -0
  173. package/themes/umberto/layout/gloria/_components/tag/_style.scss +79 -0
  174. package/themes/umberto/layout/gloria/_components/tag/index.pug +17 -0
  175. package/themes/umberto/layout/gloria/_components/tooltip-popover/_style.scss +194 -0
  176. package/themes/umberto/layout/gloria/_components/tooltip-popover/index.pug +38 -0
  177. package/themes/umberto/layout/gloria/_head/head-preloads.pug +32 -0
  178. package/themes/umberto/layout/gloria/{_partial → _head}/head.pug +8 -4
  179. package/themes/umberto/layout/gloria/_head/index.pug +1 -0
  180. package/themes/umberto/layout/gloria/_modules/algolia-search/_style.scss +202 -0
  181. package/themes/umberto/layout/gloria/_modules/algolia-search/_third-party.scss +1 -0
  182. package/themes/umberto/layout/gloria/_modules/algolia-search/index.pug +38 -0
  183. package/themes/umberto/layout/gloria/_modules/breadcrumbs/_style.scss +68 -0
  184. package/themes/umberto/layout/gloria/_modules/breadcrumbs/index.pug +18 -0
  185. package/themes/umberto/layout/gloria/_modules/footer/_style.scss +40 -0
  186. package/themes/umberto/layout/gloria/_modules/footer/index.pug +87 -0
  187. package/themes/umberto/layout/gloria/_modules/header/_style.scss +181 -0
  188. package/themes/umberto/layout/gloria/_modules/header/index.pug +70 -0
  189. package/themes/umberto/layout/gloria/_modules/header/nav-link.pug +19 -0
  190. package/themes/umberto/layout/gloria/_modules/header/nav-links.pug +11 -0
  191. package/themes/umberto/layout/gloria/_modules/header/nav-project-select-dropdown.pug +16 -0
  192. package/themes/umberto/layout/gloria/_modules/header/nav-suffix-links.pug +20 -0
  193. package/themes/umberto/layout/gloria/_modules/header-bar/_style.scss +56 -0
  194. package/themes/umberto/layout/gloria/_modules/header-bar/index.pug +40 -0
  195. package/themes/umberto/layout/gloria/_modules/header-legacy-warning/index.pug +11 -0
  196. package/themes/umberto/layout/gloria/_modules/header-nightly-info/index.pug +20 -0
  197. package/themes/umberto/layout/gloria/_modules/header-promobar/index.pug +18 -0
  198. package/themes/umberto/layout/gloria/_modules/index.pug +14 -0
  199. package/themes/umberto/layout/gloria/_modules/main/_style.scss +54 -0
  200. package/themes/umberto/layout/gloria/_modules/main/index.pug +10 -0
  201. package/themes/umberto/layout/gloria/_modules/mobile-nav/_style.scss +106 -0
  202. package/themes/umberto/layout/gloria/_modules/mobile-nav/index.pug +121 -0
  203. package/themes/umberto/layout/gloria/_modules/mobile-nav/slide-parts.pug +67 -0
  204. package/themes/umberto/layout/gloria/_modules/not-found/_style.scss +38 -0
  205. package/themes/umberto/layout/gloria/_modules/not-found/index.pug +16 -0
  206. package/themes/umberto/layout/gloria/_modules/sidebar/_style.scss +147 -0
  207. package/themes/umberto/layout/gloria/_modules/sidebar/index.pug +24 -0
  208. package/themes/umberto/layout/gloria/_modules/sidebar-api/_style.scss +2 -0
  209. package/themes/umberto/layout/gloria/_modules/sidebar-api/index.pug +6 -0
  210. package/themes/umberto/layout/gloria/_modules/toc/_style.scss +201 -0
  211. package/themes/umberto/layout/gloria/_modules/toc/index.pug +10 -0
  212. package/themes/umberto/layout/gloria/_trackers/google-tag-manager.pug +14 -0
  213. package/themes/umberto/layout/gloria/_trackers/index.pug +2 -0
  214. package/themes/umberto/layout/gloria/api.pug +43 -20
  215. package/themes/umberto/layout/gloria/base.pug +23 -32
  216. package/themes/umberto/layout/gloria/index.pug +19 -13
  217. package/themes/umberto/layout/gloria/page.pug +30 -11
  218. package/themes/umberto/layout/gloria/sdk.pug +1 -1
  219. package/themes/umberto/layout/gloria/theme.pug +304 -0
  220. package/themes/umberto/layout/umberto/404.pug +0 -1
  221. package/themes/umberto/layout/umberto/_partial/report-issue-widget.pug +0 -3
  222. package/themes/umberto/source/gloria/assets/_fonts/Menlo/Menlo-Regular.ttf +0 -0
  223. package/themes/umberto/source/gloria/assets/_fonts/Menlo/Menlo-Regular.woff +0 -0
  224. package/themes/umberto/source/gloria/assets/_fonts/Mulish/Mulish-Italic-VariableFont_wght.ttf +0 -0
  225. package/themes/umberto/source/gloria/assets/_fonts/Mulish/Mulish-Italic-VariableFont_wght.woff2 +0 -0
  226. package/themes/umberto/source/gloria/assets/_fonts/Mulish/Mulish-VariableFont_wght.ttf +0 -0
  227. package/themes/umberto/source/gloria/assets/_fonts/Mulish/Mulish-VariableFont_wght.woff2 +0 -0
  228. package/themes/umberto/source/gloria/assets/_fonts/Mulish/static/Mulish-Black.ttf +0 -0
  229. package/themes/umberto/source/gloria/assets/_fonts/Mulish/static/Mulish-BlackItalic.ttf +0 -0
  230. package/themes/umberto/source/gloria/assets/_fonts/Mulish/static/Mulish-Bold.ttf +0 -0
  231. package/themes/umberto/source/gloria/assets/_fonts/Mulish/static/Mulish-BoldItalic.ttf +0 -0
  232. package/themes/umberto/source/gloria/assets/_fonts/Mulish/static/Mulish-ExtraBold.ttf +0 -0
  233. package/themes/umberto/source/gloria/assets/_fonts/Mulish/static/Mulish-ExtraBoldItalic.ttf +0 -0
  234. package/themes/umberto/source/gloria/assets/_fonts/Mulish/static/Mulish-ExtraLight.ttf +0 -0
  235. package/themes/umberto/source/gloria/assets/_fonts/Mulish/static/Mulish-ExtraLightItalic.ttf +0 -0
  236. package/themes/umberto/source/gloria/assets/_fonts/Mulish/static/Mulish-Italic.ttf +0 -0
  237. package/themes/umberto/source/gloria/assets/_fonts/Mulish/static/Mulish-Light.ttf +0 -0
  238. package/themes/umberto/source/gloria/assets/_fonts/Mulish/static/Mulish-LightItalic.ttf +0 -0
  239. package/themes/umberto/source/gloria/assets/_fonts/Mulish/static/Mulish-Medium.ttf +0 -0
  240. package/themes/umberto/source/gloria/assets/_fonts/Mulish/static/Mulish-MediumItalic.ttf +0 -0
  241. package/themes/umberto/source/gloria/assets/_fonts/Mulish/static/Mulish-Regular.ttf +0 -0
  242. package/themes/umberto/source/gloria/assets/_fonts/Mulish/static/Mulish-SemiBold.ttf +0 -0
  243. package/themes/umberto/source/gloria/assets/_fonts/Mulish/static/Mulish-SemiBoldItalic.ttf +0 -0
  244. package/themes/umberto/source/gloria/assets/_fonts/Public_Sans/PublicSans-Italic-VariableFont_wght.ttf +0 -0
  245. package/themes/umberto/source/gloria/assets/_fonts/Public_Sans/PublicSans-Italic-VariableFont_wght.woff2 +0 -0
  246. package/themes/umberto/source/gloria/assets/_fonts/Public_Sans/PublicSans-VariableFont_wght.ttf +0 -0
  247. package/themes/umberto/source/gloria/assets/_fonts/Public_Sans/PublicSans-VariableFont_wght.woff2 +0 -0
  248. package/themes/umberto/source/gloria/assets/_fonts/Public_Sans/static/PublicSans-Black.ttf +0 -0
  249. package/themes/umberto/source/gloria/assets/_fonts/Public_Sans/static/PublicSans-BlackItalic.ttf +0 -0
  250. package/themes/umberto/source/gloria/assets/_fonts/Public_Sans/static/PublicSans-Bold.ttf +0 -0
  251. package/themes/umberto/source/gloria/assets/_fonts/Public_Sans/static/PublicSans-BoldItalic.ttf +0 -0
  252. package/themes/umberto/source/gloria/assets/_fonts/Public_Sans/static/PublicSans-ExtraBold.ttf +0 -0
  253. package/themes/umberto/source/gloria/assets/_fonts/Public_Sans/static/PublicSans-ExtraBoldItalic.ttf +0 -0
  254. package/themes/umberto/source/gloria/assets/_fonts/Public_Sans/static/PublicSans-ExtraLight.ttf +0 -0
  255. package/themes/umberto/source/gloria/assets/_fonts/Public_Sans/static/PublicSans-ExtraLightItalic.ttf +0 -0
  256. package/themes/umberto/source/gloria/assets/_fonts/Public_Sans/static/PublicSans-Italic.ttf +0 -0
  257. package/themes/umberto/source/gloria/assets/_fonts/Public_Sans/static/PublicSans-Light.ttf +0 -0
  258. package/themes/umberto/source/gloria/assets/_fonts/Public_Sans/static/PublicSans-LightItalic.ttf +0 -0
  259. package/themes/umberto/source/gloria/assets/_fonts/Public_Sans/static/PublicSans-Medium.ttf +0 -0
  260. package/themes/umberto/source/gloria/assets/_fonts/Public_Sans/static/PublicSans-MediumItalic.ttf +0 -0
  261. package/themes/umberto/source/gloria/assets/_fonts/Public_Sans/static/PublicSans-Regular.ttf +0 -0
  262. package/themes/umberto/source/gloria/assets/_fonts/Public_Sans/static/PublicSans-SemiBold.ttf +0 -0
  263. package/themes/umberto/source/gloria/assets/_fonts/Public_Sans/static/PublicSans-SemiBoldItalic.ttf +0 -0
  264. package/themes/umberto/source/gloria/assets/_fonts/Public_Sans/static/PublicSans-Thin.ttf +0 -0
  265. package/themes/umberto/source/gloria/assets/_fonts/Public_Sans/static/PublicSans-ThinItalic.ttf +0 -0
  266. package/themes/umberto/source/gloria/assets/_img/404-billboard.svg +181 -0
  267. package/themes/umberto/source/gloria/assets/_img/ckeditor-logo.svg +15 -0
  268. package/themes/umberto/source/gloria/assets/_img/hex-bg-2.svg +10 -0
  269. package/themes/umberto/source/gloria/assets/_img/hex-bg.svg +10 -0
  270. package/themes/umberto/source/gloria/assets/_img/icons/api-class.svg +10 -0
  271. package/themes/umberto/source/gloria/assets/_img/icons/api-folder.svg +3 -0
  272. package/themes/umberto/source/gloria/assets/_img/icons/api-interface.svg +3 -0
  273. package/themes/umberto/source/gloria/assets/_img/icons/api-module.svg +3 -0
  274. package/themes/umberto/source/gloria/assets/_img/icons/api-package.svg +4 -0
  275. package/themes/umberto/source/gloria/assets/_img/icons/api-typedef.svg +3 -0
  276. package/themes/umberto/source/gloria/assets/_img/icons/bulb.svg +3 -0
  277. package/themes/umberto/source/gloria/assets/_img/icons/check-circle.svg +4 -0
  278. package/themes/umberto/source/gloria/assets/_img/icons/check.svg +3 -0
  279. package/themes/umberto/source/gloria/assets/_img/icons/chevron-down.svg +3 -0
  280. package/themes/umberto/source/gloria/assets/_img/icons/chevron-right.svg +3 -0
  281. package/themes/umberto/source/gloria/assets/_img/icons/close-circle.svg +4 -0
  282. package/themes/umberto/source/gloria/assets/_img/icons/close.svg +3 -0
  283. package/themes/umberto/source/gloria/assets/_img/icons/copy.svg +10 -0
  284. package/themes/umberto/source/gloria/assets/_img/icons/dislike.svg +3 -0
  285. package/themes/umberto/source/gloria/assets/_img/icons/download.svg +3 -0
  286. package/themes/umberto/source/gloria/assets/_img/icons/edit.svg +3 -0
  287. package/themes/umberto/source/gloria/assets/_img/icons/exclamation-circle.svg +4 -0
  288. package/themes/umberto/source/gloria/assets/_img/icons/experiment.svg +3 -0
  289. package/themes/umberto/source/gloria/assets/_img/icons/export.svg +4 -0
  290. package/themes/umberto/source/gloria/assets/_img/icons/eye.svg +3 -0
  291. package/themes/umberto/source/gloria/assets/_img/icons/filter.svg +3 -0
  292. package/themes/umberto/source/gloria/assets/_img/icons/github.svg +10 -0
  293. package/themes/umberto/source/gloria/assets/_img/icons/info-circle.svg +4 -0
  294. package/themes/umberto/source/gloria/assets/_img/icons/like.svg +3 -0
  295. package/themes/umberto/source/gloria/assets/_img/icons/link.svg +3 -0
  296. package/themes/umberto/source/gloria/assets/_img/icons/lock.svg +3 -0
  297. package/themes/umberto/source/gloria/assets/_img/icons/menu-fold.svg +3 -0
  298. package/themes/umberto/source/gloria/assets/_img/icons/menu-list.svg +3 -0
  299. package/themes/umberto/source/gloria/assets/_img/icons/menu.svg +3 -0
  300. package/themes/umberto/source/gloria/assets/_img/icons/more.svg +3 -0
  301. package/themes/umberto/source/gloria/assets/_img/icons/notification.svg +3 -0
  302. package/themes/umberto/source/gloria/assets/_img/icons/number.svg +3 -0
  303. package/themes/umberto/source/gloria/assets/_img/icons/premium.svg +3 -0
  304. package/themes/umberto/source/gloria/assets/_img/icons/right.svg +3 -0
  305. package/themes/umberto/source/gloria/assets/_img/icons/search.svg +3 -0
  306. package/themes/umberto/source/gloria/assets/_img/icons/status.svg +3 -0
  307. package/themes/umberto/source/gloria/assets/_img/icons/trash.svg +3 -0
  308. package/themes/umberto/source/gloria/assets/_img/icons/unordered-list.svg +5 -0
  309. package/themes/umberto/source/gloria/assets/_img/icons/warning.svg +10 -0
  310. package/themes/umberto/src/gloria/css/_fonts.scss +51 -0
  311. package/themes/umberto/src/gloria/css/_layers.scss +1 -0
  312. package/themes/umberto/src/gloria/css/_normalize.scss +118 -0
  313. package/themes/umberto/src/gloria/css/a11y/_focusable.scss +7 -0
  314. package/themes/umberto/src/gloria/css/a11y/_index.scss +4 -0
  315. package/themes/umberto/src/gloria/css/a11y/_mixins.scss +32 -0
  316. package/themes/umberto/src/gloria/css/a11y/_reduce-motion.scss +9 -0
  317. package/themes/umberto/src/gloria/css/a11y/_screen-reader.scss +15 -0
  318. package/themes/umberto/src/gloria/css/base/_buttons.scss +13 -0
  319. package/themes/umberto/src/gloria/css/base/_descriptions-list.scss +33 -0
  320. package/themes/umberto/src/gloria/css/base/_details.scss +7 -0
  321. package/themes/umberto/src/gloria/css/base/_headings.scss +111 -0
  322. package/themes/umberto/src/gloria/css/base/_iframes.scss +7 -0
  323. package/themes/umberto/src/gloria/css/base/_index.scss +12 -0
  324. package/themes/umberto/src/gloria/css/base/_inline-code.scss +15 -0
  325. package/themes/umberto/src/gloria/css/base/_links.scss +30 -0
  326. package/themes/umberto/src/gloria/css/base/_lists.scss +58 -0
  327. package/themes/umberto/src/gloria/css/base/_mixins.scss +3 -0
  328. package/themes/umberto/src/gloria/css/base/_paragraphs.scss +15 -0
  329. package/themes/umberto/src/gloria/css/base/_tables.scss +68 -0
  330. package/themes/umberto/src/gloria/css/base/_typography.scss +62 -0
  331. package/themes/umberto/src/gloria/css/components/_api-collapsing-list.scss +148 -0
  332. package/themes/umberto/src/gloria/css/components/_api-filter-dropdown.scss +17 -0
  333. package/themes/umberto/src/gloria/css/components/_api-item-heading.scss +58 -0
  334. package/themes/umberto/src/gloria/css/components/_api-tree.scss +202 -0
  335. package/themes/umberto/src/gloria/css/components/_hierarchy-list.scss +35 -0
  336. package/themes/umberto/src/gloria/css/components/_image-zoom.scss +13 -0
  337. package/themes/umberto/src/gloria/css/components/_index.scss +55 -0
  338. package/themes/umberto/src/gloria/css/components/_notification.scss +36 -0
  339. package/themes/umberto/src/gloria/css/components/_utils.scss +5 -0
  340. package/themes/umberto/src/gloria/css/doc/_details.scss +11 -0
  341. package/themes/umberto/src/gloria/css/doc/_editor-icons.scss +21 -0
  342. package/themes/umberto/src/gloria/css/doc/_images.scss +9 -0
  343. package/themes/umberto/src/gloria/css/doc/_index.scss +5 -0
  344. package/themes/umberto/src/gloria/css/doc/_snippets.scss +126 -0
  345. package/themes/umberto/src/gloria/css/doc/_typography.scss +5 -0
  346. package/themes/umberto/src/gloria/css/layout/_base.scss +27 -0
  347. package/themes/umberto/src/gloria/css/layout/_breakpoints.scss +88 -0
  348. package/themes/umberto/src/gloria/css/layout/_container.scss +38 -0
  349. package/themes/umberto/src/gloria/css/layout/_index.scss +6 -0
  350. package/themes/umberto/src/gloria/css/layout/_layout.scss +64 -0
  351. package/themes/umberto/src/gloria/css/layout/_mixins.scss +34 -0
  352. package/themes/umberto/src/gloria/css/layout/_zindex.scss +12 -0
  353. package/themes/umberto/src/gloria/css/modules/_index.scss +29 -0
  354. package/themes/umberto/src/gloria/css/modules/_utils.scss +7 -0
  355. package/themes/umberto/src/gloria/css/styles.scss +11 -117
  356. package/themes/umberto/src/gloria/css/theme/_light.scss +344 -0
  357. package/themes/umberto/src/gloria/css/utilities/_animation.scss +32 -0
  358. package/themes/umberto/src/gloria/css/utilities/_colors.scss +14 -0
  359. package/themes/umberto/src/gloria/css/utilities/_display.scss +13 -0
  360. package/themes/umberto/src/gloria/css/utilities/_flex.scss +33 -0
  361. package/themes/umberto/src/gloria/css/utilities/_gap.scss +8 -0
  362. package/themes/umberto/src/gloria/css/utilities/_index.scss +11 -0
  363. package/themes/umberto/src/gloria/css/utilities/_radius.scss +21 -0
  364. package/themes/umberto/src/gloria/css/utilities/_rotation.scss +8 -0
  365. package/themes/umberto/src/gloria/css/utilities/_shadows.scss +13 -0
  366. package/themes/umberto/src/gloria/css/utilities/_spacing.scss +96 -0
  367. package/themes/umberto/src/gloria/css/utilities/_stop-scrolling.scss +9 -0
  368. package/themes/umberto/src/gloria/css/utilities/_text.scss +42 -0
  369. package/themes/umberto/src/gloria/js/app.js +92 -54
  370. package/themes/umberto/src/gloria/js/components/api-nav-tree.js +171 -0
  371. package/themes/umberto/src/gloria/js/components/api-toggle.js +92 -0
  372. package/themes/umberto/src/gloria/js/components/base-component.js +41 -0
  373. package/themes/umberto/src/gloria/js/components/breadcrumbs.js +115 -0
  374. package/themes/umberto/src/gloria/js/components/code-block.js +226 -0
  375. package/themes/umberto/src/gloria/js/components/code-switcher.js +177 -0
  376. package/themes/umberto/src/gloria/js/components/dropdown.js +516 -0
  377. package/themes/umberto/src/gloria/js/components/expandable.js +79 -0
  378. package/themes/umberto/src/gloria/js/components/fake-devtools.js +722 -0
  379. package/themes/umberto/src/gloria/js/components/hash-link.js +60 -0
  380. package/themes/umberto/src/gloria/js/components/heading-link.js +135 -0
  381. package/themes/umberto/src/gloria/js/components/iframe.js +158 -0
  382. package/themes/umberto/src/gloria/js/{_imageModal.js → components/image-zoom.js} +1 -1
  383. package/themes/umberto/src/gloria/js/components/mobile-overlay.js +315 -0
  384. package/themes/umberto/src/gloria/js/components/nav-tree.js +164 -0
  385. package/themes/umberto/src/gloria/js/components/tabs.js +284 -0
  386. package/themes/umberto/src/gloria/js/components/tooltip-popover.js +576 -0
  387. package/themes/umberto/src/gloria/js/helpers/after-dom-ready.js +16 -0
  388. package/themes/umberto/src/gloria/js/helpers/animate-element.js +78 -0
  389. package/themes/umberto/src/gloria/js/helpers/body-scroll.js +22 -0
  390. package/themes/umberto/src/gloria/js/helpers/clamp.js +16 -0
  391. package/themes/umberto/src/gloria/js/helpers/classnames.js +64 -0
  392. package/themes/umberto/src/gloria/js/helpers/copy-to-clipboard.js +19 -0
  393. package/themes/umberto/src/gloria/js/helpers/create-anchor-positioning-watcher.js +46 -0
  394. package/themes/umberto/src/gloria/js/helpers/create-cleanup-registry.js +88 -0
  395. package/themes/umberto/src/gloria/js/helpers/create-hover-manager.js +93 -0
  396. package/themes/umberto/src/gloria/js/helpers/create-keyboard-blur-watcher.js +90 -0
  397. package/themes/umberto/src/gloria/js/helpers/create-keyboard-focus-cycler.js +251 -0
  398. package/themes/umberto/src/gloria/js/helpers/create-mutation-observer.js +49 -0
  399. package/themes/umberto/src/gloria/js/helpers/create-outside-click-watcher.js +39 -0
  400. package/themes/umberto/src/gloria/js/helpers/cubic-bezier.js +55 -0
  401. package/themes/umberto/src/gloria/js/helpers/date-time.js +21 -0
  402. package/themes/umberto/src/gloria/js/helpers/decode-html-entities.js +23 -0
  403. package/themes/umberto/src/gloria/js/helpers/escape-handler.js +59 -0
  404. package/themes/umberto/src/gloria/js/helpers/fetch-stylesheet.js +25 -0
  405. package/themes/umberto/src/gloria/js/helpers/find-code-lang.js +85 -0
  406. package/themes/umberto/src/gloria/js/helpers/focus-first-interactive.js +50 -0
  407. package/themes/umberto/src/gloria/js/helpers/format-html.js +181 -0
  408. package/themes/umberto/src/gloria/js/helpers/get-all-scrollable-parents.js +34 -0
  409. package/themes/umberto/src/gloria/js/helpers/get-parents-until.js +26 -0
  410. package/themes/umberto/src/gloria/js/helpers/highlight-code.js +18 -0
  411. package/themes/umberto/src/gloria/js/helpers/html-builder.js +69 -0
  412. package/themes/umberto/src/gloria/js/helpers/identity.js +8 -0
  413. package/themes/umberto/src/gloria/js/helpers/inject-resource-preload.js +51 -0
  414. package/themes/umberto/src/gloria/js/helpers/inject-script.js +79 -0
  415. package/themes/umberto/src/gloria/js/helpers/inject-stylesheet.js +108 -0
  416. package/themes/umberto/src/gloria/js/helpers/is-element-attached.js +28 -0
  417. package/themes/umberto/src/gloria/js/helpers/is-focusable.js +14 -0
  418. package/themes/umberto/src/gloria/js/helpers/is-hidden-element.js +8 -0
  419. package/themes/umberto/src/gloria/js/helpers/is-mobile.js +8 -0
  420. package/themes/umberto/src/gloria/js/helpers/is-unsafe-key.js +14 -0
  421. package/themes/umberto/src/gloria/js/helpers/lerp.js +27 -0
  422. package/themes/umberto/src/gloria/js/helpers/local-storage-helper.js +133 -0
  423. package/themes/umberto/src/gloria/js/helpers/pipe.js +8 -0
  424. package/themes/umberto/src/gloria/js/helpers/prefers-reduced-motion.js +13 -0
  425. package/themes/umberto/src/gloria/js/helpers/random-id.js +51 -0
  426. package/themes/umberto/src/gloria/js/helpers/sanitize-text.js +27 -0
  427. package/themes/umberto/src/gloria/js/helpers/scroll-to-hash.js +31 -0
  428. package/themes/umberto/src/gloria/js/helpers/take-last.js +19 -0
  429. package/themes/umberto/src/gloria/js/helpers/tap.js +11 -0
  430. package/themes/umberto/src/gloria/js/helpers/throttle.js +46 -0
  431. package/themes/umberto/src/gloria/js/helpers/timeout.js +14 -0
  432. package/themes/umberto/src/gloria/js/helpers/toggle-height.js +46 -0
  433. package/themes/umberto/src/gloria/js/helpers/tween.js +100 -0
  434. package/themes/umberto/src/gloria/js/helpers/wrap-around.js +39 -0
  435. package/themes/umberto/src/gloria/js/modules/algolia-search.js +168 -0
  436. package/themes/umberto/src/gloria/js/modules/api-filter.js +184 -0
  437. package/themes/umberto/src/gloria/js/modules/header-bar.js +154 -0
  438. package/themes/umberto/src/gloria/js/modules/header.js +242 -0
  439. package/themes/umberto/src/gloria/js/modules/links-prefetch.js +196 -0
  440. package/themes/umberto/src/gloria/js/modules/mobile-nav.js +327 -0
  441. package/themes/umberto/src/gloria/js/modules/sidebar.js +114 -0
  442. package/themes/umberto/src/gloria/js/modules/table-of-contents-api.js +214 -0
  443. package/themes/umberto/src/gloria/js/modules/table-of-contents.js +287 -0
  444. package/themes/umberto/src/gloria/js/public-api.js +75 -0
  445. package/themes/umberto/src/gloria/js/web-components/svg-icon.js +117 -0
  446. package/themes/umberto/src/umberto/js/_codeswitcherbuttons.js +1 -1
  447. package/themes/umberto/layout/gloria/_api-docs/_mixin/_api-title.pug +0 -17
  448. package/themes/umberto/layout/gloria/_mixin/nav-tree-item.pug +0 -13
  449. package/themes/umberto/layout/gloria/_partial/docsearch.pug +0 -21
  450. package/themes/umberto/layout/gloria/_partial/dropdown.pug +0 -12
  451. package/themes/umberto/layout/gloria/_partial/feedback-widget.pug +0 -20
  452. package/themes/umberto/layout/gloria/_partial/footer.pug +0 -6
  453. package/themes/umberto/layout/gloria/_partial/gh-contribute.pug +0 -8
  454. package/themes/umberto/layout/gloria/_partial/google-tag-manager.pug +0 -18
  455. package/themes/umberto/layout/gloria/_partial/header.pug +0 -64
  456. package/themes/umberto/layout/gloria/_partial/nav-tree.pug +0 -9
  457. package/themes/umberto/layout/gloria/_partial/report-issue-widget.pug +0 -26
  458. package/themes/umberto/layout/gloria/_partial/rwd-breadcrumbs.pug +0 -13
  459. package/themes/umberto/layout/gloria/_partial/search-box.pug +0 -6
  460. package/themes/umberto/layout/gloria/_partial/vwo.pug +0 -11
  461. package/themes/umberto/source/gloria/assets/_img/arrows.svg +0 -1
  462. package/themes/umberto/source/gloria/assets/_img/book.svg +0 -1
  463. package/themes/umberto/source/gloria/assets/_img/box-brown.svg +0 -1
  464. package/themes/umberto/source/gloria/assets/_img/box-orange.svg +0 -1
  465. package/themes/umberto/source/gloria/assets/_img/box-red.svg +0 -1
  466. package/themes/umberto/source/gloria/assets/_img/bulb.svg +0 -1
  467. package/themes/umberto/source/gloria/assets/_img/clipboard.svg +0 -1
  468. package/themes/umberto/source/gloria/assets/_img/cog.svg +0 -1
  469. package/themes/umberto/source/gloria/assets/_img/data.svg +0 -1
  470. package/themes/umberto/source/gloria/assets/_img/documentation.svg +0 -1
  471. package/themes/umberto/source/gloria/assets/_img/download.svg +0 -1
  472. package/themes/umberto/source/gloria/assets/_img/edit.svg +0 -2
  473. package/themes/umberto/source/gloria/assets/_img/exclamation-circle.svg +0 -2
  474. package/themes/umberto/source/gloria/assets/_img/eye.svg +0 -1
  475. package/themes/umberto/source/gloria/assets/_img/filter.svg +0 -1
  476. package/themes/umberto/source/gloria/assets/_img/filtering.svg +0 -1
  477. package/themes/umberto/source/gloria/assets/_img/folder.svg +0 -1
  478. package/themes/umberto/source/gloria/assets/_img/github.svg +0 -6
  479. package/themes/umberto/source/gloria/assets/_img/header-info-configs.svg +0 -1
  480. package/themes/umberto/source/gloria/assets/_img/header-info-events.svg +0 -1
  481. package/themes/umberto/source/gloria/assets/_img/header-info-methods.svg +0 -1
  482. package/themes/umberto/source/gloria/assets/_img/header-info-properties.svg +0 -1
  483. package/themes/umberto/source/gloria/assets/_img/heart.svg +0 -1
  484. package/themes/umberto/source/gloria/assets/_img/info-circle.svg +0 -4
  485. package/themes/umberto/source/gloria/assets/_img/info.svg +0 -1
  486. package/themes/umberto/source/gloria/assets/_img/list-nest.svg +0 -1
  487. package/themes/umberto/source/gloria/assets/_img/loupe.svg +0 -1
  488. package/themes/umberto/source/gloria/assets/_img/menu.svg +0 -4
  489. package/themes/umberto/source/gloria/assets/_img/plug.svg +0 -1
  490. package/themes/umberto/source/gloria/assets/_img/star-in-circle.svg +0 -1
  491. package/themes/umberto/source/gloria/assets/_img/tick.svg +0 -1
  492. package/themes/umberto/source/gloria/assets/_img/triangle-down.svg +0 -1
  493. package/themes/umberto/source/gloria/assets/_img/triangle-right.svg +0 -1
  494. package/themes/umberto/src/gloria/css/_api-content.scss +0 -32
  495. package/themes/umberto/src/gloria/css/_api-info-box.scss +0 -86
  496. package/themes/umberto/src/gloria/css/_api-props-filter.scss +0 -106
  497. package/themes/umberto/src/gloria/css/_api-see-source.scss +0 -35
  498. package/themes/umberto/src/gloria/css/_api-subheader.scss +0 -167
  499. package/themes/umberto/src/gloria/css/_api-tree.scss +0 -121
  500. package/themes/umberto/src/gloria/css/_badge.scss +0 -74
  501. package/themes/umberto/src/gloria/css/_code-switcher.scss +0 -61
  502. package/themes/umberto/src/gloria/css/_collapsinglist.scss +0 -262
  503. package/themes/umberto/src/gloria/css/_content.scss +0 -236
  504. package/themes/umberto/src/gloria/css/_docsearch.scss +0 -109
  505. package/themes/umberto/src/gloria/css/_dropdown.scss +0 -63
  506. package/themes/umberto/src/gloria/css/_editor-icon.scss +0 -26
  507. package/themes/umberto/src/gloria/css/_feedback-widget.scss +0 -11
  508. package/themes/umberto/src/gloria/css/_font-external.scss +0 -8
  509. package/themes/umberto/src/gloria/css/_footer.scss +0 -40
  510. package/themes/umberto/src/gloria/css/_formatted.scss +0 -285
  511. package/themes/umberto/src/gloria/css/_guide-content.scss +0 -37
  512. package/themes/umberto/src/gloria/css/_guide-sdk-tree.scss +0 -14
  513. package/themes/umberto/src/gloria/css/_loading-spinner.scss +0 -33
  514. package/themes/umberto/src/gloria/css/_main.scss +0 -59
  515. package/themes/umberto/src/gloria/css/_navigation.scss +0 -35
  516. package/themes/umberto/src/gloria/css/_notice.scss +0 -116
  517. package/themes/umberto/src/gloria/css/_print.scss +0 -20
  518. package/themes/umberto/src/gloria/css/_prism.scss +0 -223
  519. package/themes/umberto/src/gloria/css/_rwd-breadcrumbs.scss +0 -28
  520. package/themes/umberto/src/gloria/css/_rwd-menu.scss +0 -89
  521. package/themes/umberto/src/gloria/css/_secondary-navigation.scss +0 -152
  522. package/themes/umberto/src/gloria/css/_theme-dark.scss +0 -175
  523. package/themes/umberto/src/gloria/css/_toggler.scss +0 -46
  524. package/themes/umberto/src/gloria/css/_top.scss +0 -350
  525. package/themes/umberto/src/gloria/css/_tree.scss +0 -218
  526. package/themes/umberto/src/gloria/css/_warning-banner.scss +0 -46
  527. package/themes/umberto/src/gloria/css/components/_lightbox.scss +0 -12
  528. package/themes/umberto/src/gloria/css/helpers/_color.scss +0 -49
  529. package/themes/umberto/src/gloria/css/helpers/_font.scss +0 -60
  530. package/themes/umberto/src/gloria/css/helpers/_globals.scss +0 -129
  531. package/themes/umberto/src/gloria/css/helpers/_reset.scss +0 -52
  532. package/themes/umberto/src/gloria/css/helpers/_spacing.scss +0 -21
  533. package/themes/umberto/src/gloria/css/pages/_sdk.scss +0 -111
  534. package/themes/umberto/src/gloria/js/_anchors.js +0 -57
  535. package/themes/umberto/src/gloria/js/_apisearch.js +0 -126
  536. package/themes/umberto/src/gloria/js/_apitree.js +0 -67
  537. package/themes/umberto/src/gloria/js/_attachpermalinklistener.js +0 -50
  538. package/themes/umberto/src/gloria/js/_codeswitcherbuttons.js +0 -146
  539. package/themes/umberto/src/gloria/js/_collapsables.js +0 -135
  540. package/themes/umberto/src/gloria/js/_copymobileapinavigation.js +0 -26
  541. package/themes/umberto/src/gloria/js/_devnames.js +0 -37
  542. package/themes/umberto/src/gloria/js/_dropdowns.js +0 -55
  543. package/themes/umberto/src/gloria/js/_filtering.js +0 -139
  544. package/themes/umberto/src/gloria/js/_pagenavigation.js +0 -93
  545. package/themes/umberto/src/gloria/js/_prism.js +0 -104
  546. package/themes/umberto/src/gloria/js/_rwdmenu.js +0 -15
  547. package/themes/umberto/src/gloria/js/_samplecode.js +0 -23
  548. package/themes/umberto/src/gloria/js/_sidenavigation.js +0 -59
  549. package/themes/umberto/src/gloria/js/_toc.js +0 -93
  550. package/themes/umberto/src/gloria/js/_tooltips.js +0 -39
  551. package/themes/umberto/src/gloria/js/_warningbanner.js +0 -18
  552. package/themes/umberto/src/gloria/js/vendor/prism.js +0 -45
  553. /package/themes/umberto/layout/gloria/_api-docs/_partial/{api-info-box.pug → api-hierarchy.pug} +0 -0
  554. /package/themes/umberto/layout/gloria/{_partial → _trackers}/google-analytics.pug +0 -0
@@ -0,0 +1,414 @@
1
+ /**
2
+ * @license Copyright (c) 2017-2025, CKSource Holding sp. z o.o. All rights reserved.
3
+ * For licensing, see LICENSE.md.
4
+ */
5
+
6
+ 'use strict';
7
+
8
+ const { inspect } = require( 'node:util' );
9
+
10
+ const removeIndentation = require( '../../remove-indentation.js' );
11
+ const ParserCursor = require( '../../parser-cursor.js' );
12
+
13
+ /**
14
+ * A parser for converting text containing HTML-like markup into a tree structure.
15
+ * Uses a cursor-based approach with backtracking capabilities for robust parsing.
16
+ */
17
+ module.exports = class XMLComponentsParser {
18
+ #config;
19
+ #cursor;
20
+ #tree;
21
+
22
+ /**
23
+ * Creates a new XMLComponentsParser instance.
24
+ *
25
+ * @param cursor - The cursor instance to use for parsing.
26
+ * @param config - Optional configuration for the parser.
27
+ * @param [config.patternElements=[]] - An array of allowed element patterns.
28
+ * @param [config.trimRootText=false] - Whether to trim whitespace from the root text content.
29
+ * @throws If the cursor is not provided or is invalid.
30
+ */
31
+ constructor( cursor, { patternElements = [], trimRootText = false } = {} ) {
32
+ this.#cursor = cursor;
33
+ this.#config = {
34
+ patternElements
35
+ };
36
+
37
+ this.#tree = this.#eatChildren( {
38
+ trimText: trimRootText
39
+ } );
40
+ }
41
+
42
+ /**
43
+ * Creates a new parser instance from text input.
44
+ *
45
+ * @param text - The text to parse.
46
+ * @returns A new XMLComponentsParser instance.
47
+ */
48
+ static parseText( text, config ) {
49
+ return new XMLComponentsParser( new ParserCursor( text ), config );
50
+ }
51
+
52
+ /**
53
+ * Gets the parsed tree structure.
54
+ *
55
+ * @returns The parsed tree as an array of nodes.
56
+ */
57
+ get tree() {
58
+ return this.#tree;
59
+ }
60
+
61
+ /**
62
+ * Returns a string representation of the parsed tree for debugging purposes.
63
+ *
64
+ * @returns A formatted string representation of the tree.
65
+ */
66
+ toString() {
67
+ return inspect(
68
+ this.#tree,
69
+ { compact: true, depth: null, breakLength: 80 }
70
+ );
71
+ };
72
+
73
+ /**
74
+ * Creates a wrapper function that provides backtracking capabilities to any matcher function.
75
+ * If the matcher returns undefined, the cursor position is automatically restored.
76
+ *
77
+ * @param matcher - The matcher function to wrap with backtracking.
78
+ * @returns A wrapped function with automatic cursor restoration.
79
+ */
80
+ #tryOrRestoreCursor = matcher => ( ...args ) => this.#cursor.try( () => matcher( ...args ) );
81
+
82
+ /**
83
+ * Creates a context string with error position marker for debugging.
84
+ *
85
+ * @returns A formatted context string with position marker.
86
+ */
87
+ #getErrorContext() {
88
+ const region = {
89
+ start: Math.max( 0, this.#cursor.index - 20 ),
90
+ end: Math.min( this.#cursor.text.length, this.#cursor.index + 20 )
91
+ };
92
+
93
+ const context = this.#cursor.text.slice( region.start, region.end );
94
+ const contextMarker = ' '.repeat( this.#cursor.index - region.start ) + '^';
95
+
96
+ return `\nContext: ${ context }\n ${ contextMarker }`;
97
+ }
98
+
99
+ /**
100
+ * Parses child nodes until a terminal tag is encountered or end of input is reached.
101
+ * Handles text content, backtick-quoted sections, and nested elements.
102
+ *
103
+ * @param options - Options for parsing children.
104
+ * @param [options.trimText=false] - Whether to trim whitespace from text content.
105
+ * @param [options.terminalTag] - If provided, parsing stops when this tag is encountered.
106
+ * @returns An array of parsed child nodes.
107
+ */
108
+ #eatChildren = this.#tryOrRestoreCursor( ( { trimText, terminalTag } = {} ) => {
109
+ const children = [];
110
+ let acc = '';
111
+
112
+ for ( ; this.#cursor.index < this.#cursor.text.length; ) {
113
+ const ch = this.#cursor.text[ this.#cursor.index ];
114
+
115
+ if ( ch === '`' ) {
116
+ acc += this.#eatBacktick();
117
+ continue;
118
+ }
119
+
120
+ if ( ch === '<' ) {
121
+ if ( terminalTag ) {
122
+ const closingTag = this.#eatCloseTag( terminalTag.name );
123
+
124
+ if ( closingTag ) {
125
+ break;
126
+ }
127
+ }
128
+
129
+ const child = this.#eatElement();
130
+
131
+ if ( child ) {
132
+ flushAccumulator();
133
+ children.push( child );
134
+ continue;
135
+ }
136
+ }
137
+
138
+ acc += ch;
139
+ this.#cursor.index++;
140
+ }
141
+
142
+ acc.trim();
143
+ flushAccumulator();
144
+
145
+ return children;
146
+
147
+ /**
148
+ * Flushes the accumulated text content into a text node.
149
+ * If the accumulated text is empty, it does nothing.
150
+ * Otherwise, it creates a text node with the trimmed content and resets the accumulator.
151
+ */
152
+ function flushAccumulator() {
153
+ const parsedText = trimText ? removeIndentation( acc ) : acc;
154
+
155
+ acc = '';
156
+
157
+ if ( parsedText ) {
158
+ children.push( {
159
+ type: 'text',
160
+ content: parsedText
161
+ } );
162
+ }
163
+ }
164
+ } );
165
+
166
+ /**
167
+ * Parses a complete HTML-like element including its opening tag, children, and closing tag.
168
+ * Handles both self-closing and regular elements.
169
+ *
170
+ * @returns A parsed element node or undefined if no valid element is found.
171
+ */
172
+ #eatElement = this.#tryOrRestoreCursor( () => {
173
+ const openTag = this.#eatOpenTag();
174
+
175
+ if ( !openTag ) {
176
+ return;
177
+ }
178
+
179
+ let children;
180
+
181
+ if ( openTag.selfClosing ) {
182
+ children = [];
183
+ } else {
184
+ children = this.#eatChildren( {
185
+ terminalTag: openTag,
186
+ trimText: true
187
+ } );
188
+ }
189
+
190
+ return {
191
+ ...openTag,
192
+ type: 'element',
193
+ children
194
+ };
195
+ } );
196
+
197
+ /**
198
+ * Parses an opening HTML tag including tag name, attributes, and self-closing indicator.
199
+ * Validates tag syntax and throws errors for malformed tags.
200
+ *
201
+ * @returns A parsed opening tag object or undefined if no valid tag is found.
202
+ */
203
+ #eatOpenTag = this.#tryOrRestoreCursor( () => {
204
+ if ( !this.#cursor.eatTerminal( '<' ) ) {
205
+ return;
206
+ }
207
+
208
+ // It's closing tag, e.g. </div>
209
+ if ( this.#cursor.eatTerminal( '/' ) ) {
210
+ return;
211
+ }
212
+
213
+ const tag = this.#cursor.eatWord();
214
+
215
+ if ( !tag ) {
216
+ return;
217
+ }
218
+
219
+ const patternElement = findMatchingAllowedTagPattern( this.#config.patternElements, tag );
220
+
221
+ if ( !patternElement ) {
222
+ return;
223
+ }
224
+
225
+ this.#cursor.eatAllNextTerminals( ' \t\n' );
226
+
227
+ const attributes = this.#eatAttributes();
228
+ const isSelfClosing = this.#cursor.eatTerminals( '/>' );
229
+
230
+ if ( !isSelfClosing && !this.#cursor.eatTerminal( '>' ) ) {
231
+ throw new Error(
232
+ `Invalid tag syntax for <${ tag }> at index ${ this.#cursor.index }. ` +
233
+ `Expected '>' but found '${ this.#cursor.text[ this.#cursor.index ] }'.` +
234
+ this.#getErrorContext()
235
+ );
236
+ }
237
+
238
+ const node = {
239
+ name: tag,
240
+ patternElement,
241
+ attributes,
242
+ selfClosing: isSelfClosing
243
+ };
244
+
245
+ if ( patternElement.map ) {
246
+ return patternElement.map( node );
247
+ }
248
+
249
+ return node;
250
+ } );
251
+
252
+ /**
253
+ * Parses a closing HTML tag and validates its syntax.
254
+ * Used to match closing tags with their corresponding opening tags.
255
+ *
256
+ * @returns A parsed closing tag object or undefined if no valid closing tag is found.
257
+ */
258
+ #eatCloseTag = this.#tryOrRestoreCursor( tagName => {
259
+ if ( !this.#cursor.eatTerminals( '</' ) ) {
260
+ return;
261
+ }
262
+
263
+ const tag = this.#cursor.eatWord();
264
+
265
+ if ( !tag ) {
266
+ return;
267
+ }
268
+
269
+ this.#cursor.eatAllNextTerminals( ' \t\n' );
270
+
271
+ if ( !this.#cursor.eatTerminal( '>' ) ) {
272
+ throw new Error(
273
+ `Invalid close tag syntax for </${ tag }> at index ${ this.#cursor.index }. ` +
274
+ `Expected '>' but found '${ this.#cursor.text[ this.#cursor.index ] }'.` +
275
+ this.#getErrorContext()
276
+ );
277
+ }
278
+
279
+ if ( tagName && tag !== tagName ) {
280
+ return;
281
+ }
282
+
283
+ return {
284
+ name: tag
285
+ };
286
+ } );
287
+
288
+ /**
289
+ * Parses content between backticks, handling escaped characters.
290
+ * Backtick sections are treated as literal content that should not be parsed as markup.
291
+ *
292
+ * @returns The content between backticks including the backticks themselves.
293
+ */
294
+ #eatBacktick = this.#tryOrRestoreCursor( () => {
295
+ let acc = '`';
296
+ this.#cursor.index++;
297
+
298
+ while ( this.#cursor.index < this.#cursor.text.length ) {
299
+ const ch = this.#cursor.text[ this.#cursor.index ];
300
+
301
+ if ( ch === '`' ) {
302
+ acc += '`';
303
+ this.#cursor.index++;
304
+ break;
305
+ }
306
+
307
+ if ( ch === '\\' ) {
308
+ acc += '\\';
309
+ this.#cursor.index++;
310
+ if ( this.#cursor.index < this.#cursor.text.length ) {
311
+ acc += this.#cursor.text[ this.#cursor.index ];
312
+ this.#cursor.index++;
313
+ }
314
+ } else {
315
+ acc += ch;
316
+ this.#cursor.index++;
317
+ }
318
+ }
319
+
320
+ return acc;
321
+ } );
322
+
323
+ /**
324
+ * Parses all attributes from an HTML tag.
325
+ * Continues parsing until no more valid attributes are found.
326
+ *
327
+ * @returns An object containing all parsed attributes as key-value pairs.
328
+ */
329
+ #eatAttributes = this.#tryOrRestoreCursor( () => {
330
+ const attributes = Object.create( null );
331
+
332
+ do {
333
+ const result = this.#cursor.try( () => {
334
+ const value = this.#eatAttribute();
335
+
336
+ if ( value ) {
337
+ this.#cursor.eatAllNextTerminals( ' \t\n' );
338
+ return value;
339
+ }
340
+ } );
341
+
342
+ if ( result ) {
343
+ attributes[ result.name ] = result.value;
344
+ } else {
345
+ break;
346
+ }
347
+ } while ( true );
348
+
349
+ return attributes;
350
+ } );
351
+
352
+ /**
353
+ * Parses a single HTML attribute in the format name="value".
354
+ * Handles quoted attribute values with proper escaping.
355
+ *
356
+ * @returns An object with name and value properties, or null if no valid attribute is found.
357
+ */
358
+ #eatAttribute = this.#tryOrRestoreCursor( () => {
359
+ const name = this.#cursor.eatWord();
360
+
361
+ if ( !name ) {
362
+ return;
363
+ }
364
+
365
+ if ( !this.#cursor.eatTerminal( '=' ) ) {
366
+ return {
367
+ name,
368
+ value: true
369
+ };
370
+ }
371
+
372
+ const value = this.#cursor.eatQuote();
373
+
374
+ if ( value === null ) {
375
+ return;
376
+ }
377
+
378
+ return {
379
+ name,
380
+ value
381
+ };
382
+ } );
383
+ };
384
+
385
+ /**
386
+ * Checks if a given tag name is allowed based on the specified allowed tags.
387
+ *
388
+ * @param patternElements - An array of allowed tag names, functions, or regular expressions.
389
+ * @param tagName - The tag name to check.
390
+ * @returns True if the tag is allowed, false otherwise.
391
+ */
392
+ function findMatchingAllowedTagPattern( patternElements, tagName ) {
393
+ if ( !patternElements || patternElements.length === 0 ) {
394
+ return { pattern: true };
395
+ }
396
+
397
+ for ( const element of patternElements ) {
398
+ const { pattern } = element;
399
+
400
+ if ( typeof pattern === 'string' && pattern === tagName ) {
401
+ return element;
402
+ }
403
+
404
+ if ( typeof pattern === 'function' && pattern( tagName ) ) {
405
+ return element;
406
+ }
407
+
408
+ if ( pattern instanceof RegExp && pattern.test( tagName ) ) {
409
+ return element;
410
+ }
411
+ }
412
+
413
+ return false;
414
+ }
@@ -0,0 +1,193 @@
1
+ /**
2
+ * @license Copyright (c) 2017-2025, CKSource Holding sp. z o.o. All rights reserved.
3
+ * For licensing, see LICENSE.md.
4
+ */
5
+
6
+ 'use strict';
7
+
8
+ const transformXMLTreeToPug = require( './transform-xml-tree-to-pug.js' );
9
+ const XMLComponentsParser = require( './parser/xml-components-parser.js' );
10
+ const { walkXMLTree, TreeWalkActions } = require( './parser/walk-xml-tree.js' );
11
+
12
+ /**
13
+ * Slices XML components from Markdown content and transforms them to Pug format.
14
+ *
15
+ * This function takes text containing XML-like components mixed with regular content,
16
+ * parses it into a tree structure, and then walks through the tree to transform
17
+ * XML elements into Pug mixin calls while preserving text content.
18
+ *
19
+ * @param xml - The input text containing XML components and regular content
20
+ * @param options - Configuration options for parsing and transformation
21
+ * @param options.hexo - The Hexo instance for context (required)
22
+ * @param options.sourceName - The name of the source file (for error reporting)
23
+ * @param options.mixinContextVars - Additional attributes to pass to the Pug mixin
24
+ * @param [options.parserConfig={}] - Configuration passed to XMLComponentsParser
25
+ * @param [options.pugTransformerConfig={}] - Configuration passed to transformXMLTreeToPug
26
+ * @returns The transformed content with XML components converted to Pug syntax
27
+ */
28
+ function renderXMLPugComponentsInMarkdown( xml, options ) {
29
+ const {
30
+ sourceName,
31
+ mixinContextVars,
32
+ hexo,
33
+ basePath,
34
+ patternElements = [],
35
+ replaceFn = createReplacementBase64Tag
36
+ } = options;
37
+
38
+ const parser = XMLComponentsParser.parseText( xml, {
39
+ trimRootText: false,
40
+ patternElements
41
+ } );
42
+
43
+ const markdown = walkXMLTree( parser.tree, {
44
+ enter( node, depth ) {
45
+ switch ( node.type ) {
46
+ case 'text':
47
+ return TreeWalkActions.replace( node.content );
48
+
49
+ case 'element': {
50
+ const { patternElement } = node;
51
+
52
+ if ( patternElement.renderer ) {
53
+ return TreeWalkActions.replace(
54
+ patternElement.renderer( node )
55
+ );
56
+ }
57
+
58
+ // Hexo rendering engine is a little bit clumsy and rendered markdown within
59
+ // pug mixins often results in broken HTML. It's easier to do it manually, after
60
+ // the whole tree is rendered.
61
+ const postfixTexts = [];
62
+ const content = transformXMLTreeToPug( node, depth, {
63
+ fallbackGlobalRequire: '_components/index',
64
+ parseText: ( node, str ) => {
65
+ if ( !str.trim().length ) {
66
+ return '';
67
+ }
68
+
69
+ // Handle the text inside the pug.
70
+ if ( !node.patternElement?.allowMarkdownContent ) {
71
+ return str;
72
+ }
73
+
74
+ // If the content is a markdown text, we'll postprocess it after rendering whole tree.
75
+ postfixTexts.push( str );
76
+ return `__MARKDOWN_TEXT_${ postfixTexts.length - 1 }__`;
77
+ }
78
+ } );
79
+
80
+ // Let's render the mixin.
81
+ const locals = Object.assign(
82
+ {},
83
+ hexo.locals.toObject(),
84
+ hexo.extend.helper.list(),
85
+ {
86
+ ...mixinContextVars,
87
+ config: hexo.config,
88
+ mixinContextVars: patternElement.mixinContextVars
89
+ }
90
+ );
91
+
92
+ // Render component wrapper
93
+ let finalReplacement = null;
94
+
95
+ try {
96
+ finalReplacement = hexo.render.renderSync(
97
+ {
98
+ engine: 'pug',
99
+ text: content,
100
+ path: basePath
101
+ },
102
+ locals
103
+ ).trim();
104
+ } catch ( error ) {
105
+ console.error( error );
106
+ console.error( `Error rendering component "${ node.name }" in file ${ sourceName }` );
107
+ console.error( content );
108
+
109
+ throw error;
110
+ }
111
+
112
+ // Render markdown content inside the mixin, if present.
113
+ for ( let i = 0; i < postfixTexts.length; i++ ) {
114
+ const renderedInnerText = hexo.render.renderSync(
115
+ {
116
+ text: postfixTexts[ i ],
117
+ engine: 'markdown'
118
+ }
119
+ ).trim();
120
+
121
+ finalReplacement = finalReplacement.replace(
122
+ `__MARKDOWN_TEXT_${ i }__`,
123
+ renderedInnerText
124
+ );
125
+ }
126
+
127
+ // Leave magic base64 tag that will be replaced AFTER processing the whole markdown document.
128
+ return TreeWalkActions.replace(
129
+ replaceFn( finalReplacement )
130
+ );
131
+ }
132
+ }
133
+ }
134
+ } ).join( '' );
135
+
136
+ return markdown;
137
+ }
138
+
139
+ /**
140
+ * Creates a Base64-encoded replacement tag for component content.
141
+ *
142
+ * This function encodes the provided content into a Base64 string and wraps it
143
+ * in an HTML comment marker that can be later extracted and replaced with the
144
+ * original content.
145
+ *
146
+ * @param content - The HTML/text content to be encoded and wrapped
147
+ * @returns A comment tag containing the Base64-encoded content
148
+ */
149
+ function createReplacementBase64Tag( content ) {
150
+ const encodedContent = Buffer.from( content ).toString( 'base64' );
151
+
152
+ return `<!-- COMPONENT:${ encodedContent } -->`;
153
+ }
154
+
155
+ /**
156
+ * Extracts and decodes Base64-encoded component markers from page content.
157
+ *
158
+ * This function finds HTML comment markers containing Base64-encoded content,
159
+ * decodes them back to their original form, and replaces the markers with the
160
+ * decoded content. It processes the content iteratively to handle nested
161
+ * components and includes a maximum iteration limit to prevent infinite loops.
162
+ *
163
+ * @param options - Configuration object
164
+ * @param options.page - The page object containing the content to process
165
+ * @param options.maxIterations - Maximum number of processing iterations to prevent infinite loops
166
+ * @returns The processed content with all component markers replaced
167
+ */
168
+ function extractReplacementBase64Tag( { page, maxIterations = 5 } ) {
169
+ let content = page.content;
170
+ let previousContent;
171
+
172
+ const markerRegex = /<!-- COMPONENT:(.*?) -->/g;
173
+
174
+ do {
175
+ previousContent = content;
176
+ content = content.replace(
177
+ /<!-- COMPONENT:([a-zA-Z0-9+/=]+) -->/g,
178
+ ( match, encodedContent ) => {
179
+ try {
180
+ return Buffer.from( encodedContent, 'base64' ).toString();
181
+ } catch ( error ) {
182
+ console.error( `Error decoding component marker in file ${ page.source }`, error );
183
+ return match;
184
+ }
185
+ }
186
+ );
187
+ } while ( content !== previousContent && markerRegex.test( content ) && maxIterations-- > 0 );
188
+
189
+ return content;
190
+ }
191
+
192
+ exports.renderXMLPugComponentsInMarkdown = renderXMLPugComponentsInMarkdown;
193
+ exports.extractReplacementBase64Tag = extractReplacementBase64Tag;