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
package/LICENSE.md CHANGED
@@ -5,12 +5,51 @@ Copyright (c) 2017-2025, [CKSource](http://cksource.com) Holding sp. z o.o. All
5
5
 
6
6
  Licensed under the terms of [MIT License](https://opensource.org/licenses/MIT).
7
7
 
8
- Sources of Intellectual Property Included in CKEditor
8
+ Sources of Intellectual Property Included in Umberto
9
9
  -----------------------------------------------------
10
10
 
11
- Where not otherwise indicated, all CKEditor content is authored by CKSource engineers and consists of CKSource-owned intellectual property. In some specific instances, CKEditor will incorporate work done by developers outside of CKSource with their express permission.
11
+ Where not otherwise indicated, all Umberto content is authored by CKSource engineers and consists of CKSource-owned intellectual property. In some specific instances, Umberto will incorporate work done by developers outside of CKSource with their express permission.
12
12
 
13
- Trademarks
14
- ----------
13
+ The following libraries are included in Umberto under the [MIT license](https://opensource.org/licenses/MIT):
15
14
 
16
- **CKEditor** is a trademark of [CKSource](http://cksource.com) Holding sp. z o.o. All other brand and product names are trademarks, registered trademarks or service marks of their respective holders.
15
+ * @babel/core - Copyright (c) 2014-present Sebastian McKenzie and other contributors
16
+ * @babel/preset-env - Copyright (c) 2014-present Sebastian McKenzie and other contributors
17
+ * babel-loader - Copyright (c) 2014-2019 Luís Couto <hello@luiscouto.pt>
18
+ * cheerio - Copyright (c) 2022 The Cheerio contributors
19
+ * escape-string-regexp - Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (https://sindresorhus.com)
20
+ * fs-extra - Copyright (c) 2011-2024 JP Richardson
21
+ * hexo - Copyright (c) 2012-present Tommy Chen
22
+ * hexo-generator-archive - Copyright (c) 2014 Tommy Chen
23
+ * hexo-generator-category - Copyright (c) 2014 Tommy Chen
24
+ * hexo-generator-index - Copyright (c) 2014 Tommy Chen
25
+ * hexo-generator-tag - Copyright (c) 2014 Tommy Chen
26
+ * hexo-render-pug - Copyright (c) Max Knee
27
+ * hexo-renderer-markdown-it-plus - Copyright (c) 2017 CHENXCHEN
28
+ * htmlparser2 - Copyright 2010, 2011, Chris Winberry <chris@winberry.net>
29
+ * javascript-stringify - Copyright (c) 2013 Blake Embrey (hello@blakeembrey.com)
30
+ * jquery - Copyright OpenJS Foundation and other contributors, https://openjsf.org/
31
+ * js-beautify - Copyright (c) 2007-2018 Einar Lielmanis, Liam Newman, and contributors.
32
+ * lodash - Copyright OpenJS Foundation and other contributors <https://openjsf.org/>
33
+ * markdown-it - Copyright (c) 2014 Vitaly Puzrin, Alex Kocharin.
34
+ * markdown-it-toc-and-anchor - Copyright (c) 2015 Maxime Thirouin
35
+ * medium-zoom - Copyright (c) 2016-present François Chalifour
36
+ * moment - Copyright (c) JS Foundation and other contributors
37
+ * pug - Copyright (c) 2009-2014 TJ Holowaychuk <tj@vision-media.ca>
38
+ * sass - Copyright (c) 2016, Google Inc.
39
+ * sitemap - Copyright (c) 2011 Eugene Kalinin
40
+ * tippy.js - Copyright (c) 2017-present atomiks
41
+ * tree-model - Copyright (c) 2013 João Nuno Silva
42
+ * upath - Copyright(c) 2014-2020 Angelos Pikoulas (agelos.pikoulas@gmail.com)
43
+ * vnu-jar - Copyright (c) 2007-2016 Mozilla Foundation
44
+ * webpack - Copyright JS Foundation and other contributors
45
+
46
+ The following libraries are included in Umberto under the [Apache License, version 2.0](https://opensource.org/license/apache-2-0/):
47
+
48
+ * fuse.js - Copyright 2017 Kirollos Risk
49
+
50
+ The following libraries are included in Umberto under the [ISC license](https://opensource.org/license/isc-license-txt):
51
+
52
+ * glob - Copyright (c) 2009-2023 Isaac Z. Schlueter and Contributors
53
+ * markdown-it-expand-tabs - Copyright (c) 2016, Revin Guillen
54
+ * minimatch - Copyright (c) 2011-2023 Isaac Z. Schlueter and Contributors
55
+ * nyc - Copyright (c) 2015, Contributors
package/README.md CHANGED
@@ -675,6 +675,193 @@ E.g.
675
675
  MAIN
676
676
  ```
677
677
 
678
+ ## Pre-rendering components
679
+
680
+ > ⚠️ **Warning**: This feature is only available with the Gloria theme.
681
+
682
+ ### Overview
683
+
684
+ Pre-rendering components lets you use XML-like custom component syntax in Markdown files that gets converted to Pug templates. This allows for a more intuitive HTML-like syntax in documentation while leveraging the power of Pug mixins for rendering complex UI components. It also reduces CLS (First Contentful Paint) by pre-rendering components before the page is fully loaded and makes the site more accessible by adding aria attributes to the components.
685
+
686
+ The main implementation can be found in `/scripts/filter/before-post-render/gloria/prerender-xml-pug-components.js`.
687
+
688
+ ### How It Works
689
+
690
+ The process works in two steps:
691
+
692
+ 1. **Before markdown rendering**: Components are identified, processed, and replaced with markers
693
+ 2. **After markdown rendering**: Markers are replaced with the fully rendered components
694
+
695
+ This approach prevents Markdown processors from misinterpreting HTML indentation and nested structures, avoiding unwanted paragraph breaks, incorrect formatting, or stripped content. It's also possible to use Markdown syntax inside the component content and place nested components in the content of the previously defined component.
696
+
697
+ The component syntax is defined with a prefix `ck:`. For example:
698
+
699
+ ```html
700
+ <ck:banner variant="primary" label="Get started" href="https://example.com">
701
+ This is a banner with a **link**.
702
+ <ck:button-link variant="secondary" label="Learn more" href="https://example.com/learn-more" />
703
+ </ck:banner>
704
+ ```
705
+
706
+ Is translated into:
707
+
708
+ ```pug
709
+ +banner({ variant: 'primary', label: 'Get started', href: 'https://example.com' })
710
+ | This is a banner with a **link**.
711
+ +button-link({ variant: 'secondary', label: 'Learn more', href: 'https://example.com/learn-more' })
712
+ ```
713
+
714
+ ### Component Definition
715
+
716
+ Components are defined in the `COMPONENTS` array in the `prerender-xml-pug-components.js` file. Each component definition includes:
717
+
718
+ * `tag`: The XML-like tag to match in Markdown content
719
+ * `pug`: Configuration for rendering with Pug
720
+ * `mixinName`: The name of the Pug mixin to call
721
+ * `path`: Path to the Pug file containing the mixin
722
+ * `allowMarkdownContent`: Whether to render markdown in the component content
723
+ * `slots`: Optional array of child components that can be nested
724
+
725
+ Example component definition:
726
+
727
+ ```javascript
728
+ {
729
+ tag: 'ck:banner',
730
+ mixinName: 'banner',
731
+ requires: [ /* ... */ ],
732
+ allowMarkdownContent: true
733
+ }
734
+ ```
735
+
736
+ ### Slot components
737
+
738
+ ```html
739
+ <ck:tabs>
740
+ <ck:tab id="desktop" label="Desktop" active="true">
741
+ This is the desktop tab content.
742
+ </ck:tab>
743
+
744
+ <ck:tab id="mobile" label="Mobile">
745
+ Use the **main menu button** in the upper-left corner to navigate through the documentation.
746
+ </ck:tab>
747
+ </ck:tabs>
748
+ ```
749
+
750
+ which is translated into:
751
+
752
+ ```pug
753
+ +tabs
754
+ +tab({ id: 'desktop', label: 'Desktop', active: true })
755
+ | This is the desktop tab content.
756
+ +tab({ id: 'mobile', label: 'Mobile' })
757
+ | Use the **main menu button** in the upper-left corner to navigate through the documentation.
758
+ ```
759
+
760
+ The `tab` components is child mixin of the `tabs` component. It's NOT globally available. It means that you cannot use `+tab` outside of the `tabs` component and it can modify internal state of the `tabs` component.
761
+
762
+ They can be defined as follows:
763
+
764
+ ```pug
765
+ mixin tabs( options )
766
+ - const tabs = {};
767
+
768
+ mixin tab({ id, label, active } = {})
769
+ -
770
+ tabs[ id ] = {
771
+ label,
772
+ active
773
+ }
774
+
775
+ - block ? block() : undefined;
776
+
777
+ .c-tabs
778
+ each tab, id in tabs
779
+ = tab.label
780
+
781
+ //- ....
782
+ ```
783
+
784
+ ### Available Components
785
+
786
+ All available components can be found in the Gloria theme's components directory: `/themes/umberto/layout/gloria/_components`.
787
+
788
+ This directory contains all Pug mixins that can be used with the pre-rendering system. Each component typically has its own subdirectory containing:
789
+
790
+ 1. The primary `index.pug` file with the mixin definition
791
+ 2. Additional files for complex components
792
+ 3. Sometimes SCSS styles in a separate file
793
+
794
+ Some of the most commonly used components include:
795
+
796
+ * `banner` - For promotional banners
797
+ * `button` - Button components
798
+ * `callout` - For information, warning, and error callouts (info-box)
799
+ * `code-switcher` - For tabs that switch between code samples
800
+ * `svg` - For inline SVG and spritesheet icons
801
+ * `tabs` - For tabbed content
802
+
803
+ To see all available components and their parameters, browse the directories within the `_components` folder. Each component's implementation can be studied to understand the available options and parameters.
804
+
805
+ ## Pre-rendering icons
806
+
807
+ > ⚠️ **Warning**: This feature is only available with the Gloria theme.
808
+
809
+ Icons are implemented using an SVG spritesheet approach for better performance. It means that all icons are combined into a single SVG spritesheet tag somewhere in the document. This reduces the number of HTTP requests and improves loading times. Only used icons are included in the spritesheet. In order to use additional icon you need to preload it using `preload-spritesheet-svg` mixin.
810
+
811
+ ### Icon Usage
812
+
813
+ There are three ways to use icons:
814
+
815
+ 1. **Using plain svg mixins**
816
+ ```pug
817
+ +svg-icon({ icon: 'github', size: 'lg', title: 'GitHub' })
818
+ //- or
819
+ +svg({ file: 'icons/github', fill: 'currentColor' })
820
+ ```
821
+
822
+ 2. **Using bound component** (used in Markdown):
823
+ ```html
824
+ <ck:svg-icon icon="github" size="lg" title="GitHub"></ck:svg-icon>
825
+ <!-- or -->-
826
+ <ck:svg file="icons/github" fill="currentColor" />
827
+ ```
828
+
829
+ 3. **Web Component** (used in JavaScript):
830
+ ```html
831
+ <svg-icon icon="github" size="lg" title="GitHub"></svg-icon>
832
+ ```
833
+
834
+ Remember to preload the icon before using it in JavaScript!
835
+
836
+ ### Preloading Icons
837
+
838
+ For icons that will be dynamically added via JavaScript and aren't initially visible on the page, you can preload them to ensure they're included in the spritesheet:
839
+
840
+ ```html
841
+ <ck:preload-svg-spritesheet-icon icon="menu" />
842
+ <!-- or -->
843
+ <ck:preload-spritesheet-svg file="icons/menu" />
844
+ ```
845
+
846
+ Or using the icon mixin:
847
+
848
+ ```pug
849
+ +preload-svg-spritesheet-icon({ icon: 'menu' })
850
+ //- or
851
+ +preload-spritesheet-svg({ file: 'icons/menu' })
852
+ ```
853
+
854
+ ### How icons are loaded
855
+
856
+ 1. During the build process, all icons used with `data-spritesheet-svg` are collected
857
+ 2. A single SVG spritesheet is created with all these icons as `<symbol>` elements
858
+ 3. The spritesheet is injected at the beginning of the `<body>` with `display: none`
859
+ 4. When an icon is needed, it references the spritesheet using `<use href="#icon-id"></use>`
860
+
861
+ This approach significantly reduces HTTP requests and improves page performance when multiple icons are used.
862
+
863
+ The spritesheet generator is implemented in `/scripts/filter/after-render/gloria/spritesheet-svg.js`.
864
+
678
865
  ## Releasing the package
679
866
 
680
867
  CircleCI automates the release process and can release both channels: stable (`X.Y.Z`) and pre-releases (`X.Y.Z-alpha.X`, etc.).
@@ -683,13 +870,11 @@ Before you start, you need to prepare the changelog entries.
683
870
 
684
871
  1. Make sure the `#master` branch is up-to-date: `git fetch && git checkout master && git pull`.
685
872
  1. Prepare a release branch: `git checkout -b release-[YYYYMMDD]` where `YYYYMMDD` is the current day.
686
- 1. Generate the changelog entries: `yarn run changelog --branch release-[YYYYMMDD] [--from [GIT_TAG]]`.
687
- * By default, the changelog generator uses the latest published tag as a starting point for collecting commits to process.
688
-
689
- The `--from` modifier option allows overriding the default behavior. It is required when preparing the changelog entries for the next stable release while the previous one was marked as a prerelease, e.g., `@alpha`.
690
-
691
- **Example**: Let's assume that the `v5.0.0-alpha.0` tag is our latest and that we want to release it on a stable channel. The `--from` modifier should be equal to `--from v4.0.0`.
692
- * This task checks what changed in each package and bumps the version accordingly. It won't create a new changelog entry if nothing changes at all. If changes were irrelevant (e.g., only dependencies), it would make an "_internal changes_" entry.
693
- * Scan the logs printed by the tool to search for errors (incorrect changelog entries). Incorrect entries (e.g., ones without the type) should be addressed. You may need to create entries for them manually. This is done directly in CHANGELOG.md (in the root directory). Make sure to verify the proposed version after you modify the changelog.
873
+ 1. Generate the changelog entries: `yarn run release:prepare-changelog`.
874
+ * You can specify the release date by passing the `--date` option, e.g., `--date=2025-06-11`.
875
+ * By passing the `--dry-run` option, you can check what the script will do without actually modifying the files.
876
+ * Read all the entries, correct poor wording and other issues, wrap code names in backticks to format them, etc.
877
+ * Add the missing `the/a` articles, `()` to method names, "it's" -> "its", etc.
878
+ * A newly introduced feature should have just one changelog entry something like "The initial implementation of the FOO feature." with a description of what it does.
694
879
  1. Commit all changes and prepare a new pull request targeting the `#master` branch.
695
- 1. Ping the `@ckeditor/ckeditor-5-devops` team to review the pull request and trigger the release process.
880
+ 1. Ping the `@ckeditor/ckeditor-5-platform` team to review the pull request and trigger the release process.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "umberto",
3
- "version": "7.0.2",
3
+ "version": "8.0.0",
4
4
  "description": "CKSource Documentation builder",
5
5
  "main": "src/index.js",
6
6
  "files": [
@@ -44,6 +44,7 @@
44
44
  "nyc": "^17.1.0",
45
45
  "pug": "^3.0.2",
46
46
  "sass": "^1.54.0",
47
+ "shiki": "^3.4.0",
47
48
  "sitemap": "^8.0.0",
48
49
  "tippy.js": "^6.3.7",
49
50
  "tree-model": "^1.0.7",
@@ -52,7 +53,7 @@
52
53
  "webpack": "^5.94.0"
53
54
  },
54
55
  "engines": {
55
- "node": ">=20.0.0"
56
+ "node": ">=22.0.0"
56
57
  },
57
58
  "author": "CKSource (http://cksource.com/)",
58
59
  "license": "MIT",
@@ -63,15 +64,10 @@
63
64
  "url": "https://github.com/cksource/umberto.git"
64
65
  },
65
66
  "lint-staged": {
66
- "**/*.{js,mjs,cjs}": [
67
+ "**/*": [
67
68
  "eslint --quiet"
68
69
  ]
69
70
  },
70
- "eslintIgnore": [
71
- "build/**",
72
- "coverage/**",
73
- "packages/**"
74
- ],
75
71
  "hexo": {
76
72
  "version": "7.3.0"
77
73
  }
@@ -0,0 +1,99 @@
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 cheerio = require( 'cheerio' );
9
+ const renderPugComponent = require( '../../../utils/pug-renderer/render-pug-component' );
10
+ const hexoManager = require( '../../../../src/hexo-manager' );
11
+
12
+ /**
13
+ * Enforce priority 30 to run it after apply design doc classes filter.
14
+ */
15
+ hexo.extend.filter.register( 'after_post_render', page => {
16
+ if ( page.projectTheme !== 'gloria' ) {
17
+ return page;
18
+ }
19
+
20
+ const $ = cheerio.load( page.content, null, false );
21
+
22
+ // Do not process h1 tags as it's processed further by Umberto and may be removed.
23
+ $( 'h2, h3, h4, h5, h6' ).each( ( _, heading ) => {
24
+ const $heading = $( heading );
25
+
26
+ if ( hasClassOrParentWithClass( $heading, 'no-transform' ) ) {
27
+ return;
28
+ }
29
+
30
+ removeAllEmptyAnchors( $, heading );
31
+
32
+ const headingId = $( heading ).attr( 'id' );
33
+ const $container = $( '<div class="doc b-heading"></div>' );
34
+
35
+ // Create the copy button
36
+ const button = renderButton( {
37
+ hexo: hexoManager.hexo,
38
+ page,
39
+ headingId
40
+ } );
41
+
42
+ // Place the heading element before the container in the DOM
43
+ $( heading ).before( $container );
44
+
45
+ $container.append( $( heading ) );
46
+ $container.append( $( button ) );
47
+ } );
48
+
49
+ page.content = $.html();
50
+
51
+ return page;
52
+ }, 30 );
53
+
54
+ /**
55
+ * Renders the button using Pug template.
56
+ */
57
+ function renderButton( { hexo, page, headingId } ) {
58
+ return renderPugComponent( {
59
+ hexo,
60
+ requires: [
61
+ '_components/svg/index',
62
+ '_components/icon/index',
63
+ '_components/tooltip-popover/index',
64
+ '_components/heading-link/index'
65
+ ],
66
+ mixinContextVars: {
67
+ page
68
+ },
69
+ component: 'heading-link',
70
+ componentAttrs: {
71
+ headingId
72
+ }
73
+ } );
74
+ }
75
+
76
+ /**
77
+ * Removes all empty anchors that were created to hold the heading links buttons.
78
+ */
79
+ function removeAllEmptyAnchors( $, heading ) {
80
+ $( heading ).find( 'a' ).each( ( _, anchor ) => {
81
+ const $anchor = $( anchor );
82
+ const text = $anchor.text().trim().replace( '#', '' );
83
+
84
+ if ( !$anchor.children().length && !text ) {
85
+ $anchor.remove();
86
+ }
87
+ } );
88
+ }
89
+
90
+ /**
91
+ * Checks if the element itself or any of its parents has the specified class.
92
+ *
93
+ * @param $element - The jQuery element to check.
94
+ * @param className - The class name to look for.
95
+ * @returns True if the element or any parent has the class, false otherwise.
96
+ */
97
+ function hasClassOrParentWithClass( $element, className ) {
98
+ return $element.hasClass( className ) || $element.parents( `.${ className }` ).length > 0;
99
+ }
@@ -0,0 +1,145 @@
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 cheerio = require( 'cheerio' );
9
+
10
+ /**
11
+ * Global mapping of HTML elements to their corresponding design system classes.
12
+ */
13
+ const ELEMENTS_CLASSES_MAPPINGS = {
14
+ 'h1': 'b-h1',
15
+ 'h2': 'b-h2',
16
+ 'h3': 'b-h3',
17
+ 'h4': 'b-h4',
18
+ 'h5': 'b-h5',
19
+ 'h6': 'b-h6',
20
+ 'a': 'b-link',
21
+
22
+ // Text formatting elements
23
+ 'p': 'b-paragraph',
24
+ 'strong': 'b-bold',
25
+ 'b': 'b-bold',
26
+ 'em': 'b-italic',
27
+ 'i': 'b-italic',
28
+ 'code': 'b-inline-code',
29
+ 'pre': 'b-code-block',
30
+ 'blockquote': 'b-quote',
31
+ 'hr': 'b-separator',
32
+ 'span': 'b-text',
33
+ 'small': 'b-small-text',
34
+ 'sub': 'b-subscript',
35
+ 'sup': 'b-superscript',
36
+
37
+ // List elements
38
+ 'ul': [ 'b-list', 'b-list--unordered' ],
39
+ 'ol': [ 'b-list', 'b-list--ordered' ],
40
+ 'li': 'b-list__item',
41
+ 'dl': 'b-description',
42
+ 'dt': 'b-description__term',
43
+ 'dd': 'b-description__details',
44
+
45
+ // Details
46
+ 'details': 'b-details',
47
+ 'summary': [ 'b-reset-button', 'b-details__summary' ],
48
+
49
+ // Table elements
50
+ 'table': $element => {
51
+ const variant = $element.data( 'variant' ) || 'striped';
52
+
53
+ return [ 'b-table', `b-table--${ variant }` ];
54
+ },
55
+ 'thead': 'b-table__header',
56
+ 'tbody': 'b-table__body',
57
+ 'tr': 'b-table__row',
58
+ 'td': 'b-table__cell',
59
+ 'th': [ 'b-table__cell', 'b-table__cell-header' ],
60
+
61
+ // Image and media elements
62
+ 'img': 'b-image',
63
+ 'figure': 'b-figure',
64
+ 'figcaption': 'b-figure-caption',
65
+ 'iframe': 'b-iframe',
66
+
67
+ // Accessibility elements
68
+ 'kbd': 'c-keyboard-shortcut c-keyboard-shortcut--raised',
69
+ 'mark': 'b-highlight'
70
+ };
71
+
72
+ /**
73
+ * Classes that are allowed to be added to elements with existing classes.
74
+ */
75
+ const ELEMENTS_WITH_WHITELIST_CLASSES = [
76
+ 'headerlink'
77
+ ];
78
+
79
+ /**
80
+ * Add design system classes to the parsed document elements.
81
+ * It prevents leaking of styling to the embedded third party components such
82
+ * as CKEditor 5, or any other components that are not part of the design system.
83
+ */
84
+ hexo.extend.filter.register( 'after_post_render', page => {
85
+ if ( page.projectTheme !== 'gloria' ) {
86
+ return page;
87
+ }
88
+
89
+ const $ = cheerio.load( page.content, null, false );
90
+
91
+ // Apply classes based on the global mapping
92
+ for ( const [ element, classesOrCallback ] of Object.entries( ELEMENTS_CLASSES_MAPPINGS ) ) {
93
+ const $elements = $( element );
94
+
95
+ $elements.each( ( _, element ) => {
96
+ const $element = $( element );
97
+
98
+ if ( hasClassOrParentWithClass( $element, 'no-transform' ) ) {
99
+ return;
100
+ }
101
+
102
+ // Add the 'doc' class to each element that gets styled
103
+ $element.addClass( 'doc' );
104
+
105
+ const classList = ( $element.attr( 'class' )?.split( /\s+/ ) || [] ).filter(
106
+ className => !ELEMENTS_WITH_WHITELIST_CLASSES.includes( className )
107
+ );
108
+
109
+ // Avoid applying classes to elements that already have one.
110
+ if ( classList.length > 1 ) {
111
+ return;
112
+ }
113
+
114
+ // Add the specified classes
115
+ if ( typeof classesOrCallback === 'function' ) {
116
+ const elementClasses = classesOrCallback( $element );
117
+
118
+ if ( Array.isArray( elementClasses ) ) {
119
+ $element.addClass( elementClasses.join( ' ' ) );
120
+ } else if ( typeof elementClasses === 'string' ) {
121
+ $element.addClass( elementClasses );
122
+ }
123
+ } else if ( Array.isArray( classesOrCallback ) ) {
124
+ $element.addClass( classesOrCallback.join( ' ' ) );
125
+ } else {
126
+ $element.addClass( classesOrCallback );
127
+ }
128
+ } );
129
+ }
130
+
131
+ page.content = $.html();
132
+
133
+ return page;
134
+ }, 40 );
135
+
136
+ /**
137
+ * Checks if the element itself or any of its parents has the specified class.
138
+ *
139
+ * @param $element - The jQuery element to check.
140
+ * @param className - The class name to look for.
141
+ * @returns True if the element or any parent has the class, false otherwise.
142
+ */
143
+ function hasClassOrParentWithClass( $element, className ) {
144
+ return $element.hasClass( className ) || $element.parents( `.${ className }` ).length > 0;
145
+ }
@@ -0,0 +1,30 @@
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 cheerio = require( 'cheerio' );
9
+
10
+ /**
11
+ * Enforce priority 30 to run it after apply design doc classes filter.
12
+ */
13
+ hexo.extend.filter.register( 'after_post_render', page => {
14
+ if ( page.projectTheme !== 'gloria' ) {
15
+ return page;
16
+ }
17
+
18
+ const $ = cheerio.load( page.content, null, false );
19
+
20
+ $( 'table' ).each( ( _, table ) => {
21
+ if ( $( table ).parent().prop( 'tagName' ) !== 'FIGURE' ) {
22
+ // If the table is not wrapped in a figure, wrap it.
23
+ $( table ).wrap( '<figure class="doc b-table-wrapper"></figure>' );
24
+ }
25
+ } );
26
+
27
+ page.content = $.html();
28
+
29
+ return page;
30
+ }, 30 );
@@ -35,7 +35,7 @@ hexo.extend.filter.register( 'after_post_render', page => {
35
35
  imgWidth = ` width="${ width }"`;
36
36
  }
37
37
 
38
- return `<img src="${ imgSrc }" data-lightbox="true" alt="${ alt }"${ imgWidth }>`;
38
+ return `<img src="${ imgSrc }" loading="lazy" decoding="async" data-lightbox="true" alt="${ alt }"${ imgWidth }>`;
39
39
  } );
40
40
 
41
41
  return page;
@@ -49,7 +49,7 @@ hexo.extend.filter.register( 'after_post_render', page => {
49
49
  $( this ).attr( 'href', relativeUrlHelper( page.path, hrefPath ) );
50
50
  } );
51
51
 
52
- page.content = page.content.replace( '<p>{@errors}</p>', () => {
52
+ page.content = page.content.replace( /<p[^>]*>{@errors}<\/p>/g, () => {
53
53
  return $.html();
54
54
  } );
55
55
  }, 39 );
@@ -5,7 +5,7 @@
5
5
 
6
6
  'use strict';
7
7
 
8
- const parseLinks = require( '../../utils/parselinks' );
8
+ const { parseLinks } = require( '../../utils/parselinks' );
9
9
 
10
10
  hexo.extend.filter.register( 'after_post_render', page => {
11
11
  return parseLinks( page, hexo );
@@ -51,6 +51,7 @@ hexo.extend.filter.register( 'after_post_render', data => {
51
51
  snippetsData.get( data.projectName ).add( {
52
52
  snippetSources: getSnippetSourcePaths( snippetsBasePath, snippetDetails.name ),
53
53
  snippetName: snippetDetails.name,
54
+ snippetSize: snippetDetails.size,
54
55
  outputPath,
55
56
  basePath: basePathRelative,
56
57
  relativeOutputPath,
@@ -74,9 +75,12 @@ function getSnippetTags( content ) {
74
75
  let match;
75
76
 
76
77
  while ( ( match = SNIPPET_REGEXP.exec( content ) ) ) {
78
+ const snippetParams = match[ 1 ].split( ' ' );
79
+
77
80
  snippetTags.add( {
78
81
  snippetHTML: match[ 0 ],
79
- name: match[ 1 ]
82
+ name: snippetParams[ 0 ],
83
+ size: snippetParams[ 1 ] || 'normal'
80
84
  } );
81
85
  }
82
86
 
@@ -0,0 +1,14 @@
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 inlineSvg = require( '../../../utils/inline-svg' );
9
+
10
+ /**
11
+ * Inlines SVG icons into HTML elements with data-inline-svg-image attribute.
12
+ * The attribute value should contain the path to the SVG file.
13
+ */
14
+ hexo.extend.filter.register( 'after_render:html', inlineSvg );
@@ -0,0 +1,14 @@
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 spritesheetSvg = require( '../../../utils/spritesheet-svg' );
9
+
10
+ /**
11
+ * Creates a spritesheet from SVG files referenced by data-spritesheet-svg attributes
12
+ * and injects it at the beginning of the body with display: none.
13
+ */
14
+ hexo.extend.filter.register( 'after_render:html', spritesheetSvg );