umberto 6.0.0 → 6.1.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 (348) hide show
  1. package/CHANGELOG.md +9 -0
  2. package/README.md +3 -0
  3. package/package.json +1 -1
  4. package/scripts/filter/before-post-render/set-layout.js +9 -11
  5. package/src/api-builder/classes/doc-data-factory.js +1 -1
  6. package/src/data-converter/converters/typedoc/typedocconverter.js +2 -2
  7. package/src/index.js +108 -146
  8. package/src/tasks/build-api-docs.js +4 -4
  9. package/src/tasks/build-documentation.js +9 -3
  10. package/src/tasks/build-sdk.js +25 -9
  11. package/src/tasks/copy-assets.js +9 -9
  12. package/src/tasks/create-sym-links.js +2 -3
  13. package/themes/umberto/layout/{404.pug → gloria/404.pug} +1 -1
  14. package/themes/umberto/layout/{_api-docs → gloria/_api-docs}/class.pug +1 -1
  15. package/themes/umberto/layout/gloria/_api-docs/interface.pug +10 -0
  16. package/themes/umberto/layout/{_api-docs → gloria/_api-docs}/mixin.pug +1 -1
  17. package/themes/umberto/layout/gloria/_api-docs/module.pug +10 -0
  18. package/themes/umberto/layout/{_api-docs → gloria/_api-docs}/namespace.pug +1 -1
  19. package/themes/umberto/layout/{_api-docs → gloria/_api-docs}/typedef.pug +1 -1
  20. package/themes/umberto/layout/{_partial → gloria/_partial}/gh-contribute.pug +2 -2
  21. package/themes/umberto/layout/{_partial → gloria/_partial}/head.pug +2 -2
  22. package/themes/umberto/layout/{_partial → gloria/_partial}/search-box.pug +1 -1
  23. package/themes/umberto/layout/{api.pug → gloria/api.pug} +1 -1
  24. package/themes/umberto/layout/{base.pug → gloria/base.pug} +1 -1
  25. package/themes/umberto/layout/{sdk.pug → gloria/sdk.pug} +1 -1
  26. package/themes/umberto/layout/umberto/404.pug +22 -0
  27. package/themes/umberto/layout/umberto/_api-docs/_mixin/_api-see-source.pug +11 -0
  28. package/themes/umberto/layout/umberto/_api-docs/_mixin/_api-title.pug +17 -0
  29. package/themes/umberto/layout/umberto/_api-docs/_mixin/_api-tree-item.pug +30 -0
  30. package/themes/umberto/layout/umberto/_api-docs/_mixin/_badge.pug +17 -0
  31. package/themes/umberto/layout/umberto/_api-docs/_mixin/_class-item.pug +29 -0
  32. package/themes/umberto/layout/umberto/_api-docs/_mixin/_dev-names.pug +9 -0
  33. package/themes/umberto/layout/umberto/_api-docs/_mixin/_error.pug +23 -0
  34. package/themes/umberto/layout/umberto/_api-docs/_mixin/_fires-item.pug +7 -0
  35. package/themes/umberto/layout/umberto/_api-docs/_mixin/_hierarchy-item.pug +14 -0
  36. package/themes/umberto/layout/umberto/_api-docs/_mixin/_hierarchy-list.pug +7 -0
  37. package/themes/umberto/layout/umberto/_api-docs/_mixin/_link-or-text.pug +43 -0
  38. package/themes/umberto/layout/umberto/_api-docs/_mixin/_method.pug +89 -0
  39. package/themes/umberto/layout/umberto/_api-docs/_mixin/_params.pug +44 -0
  40. package/themes/umberto/layout/umberto/_api-docs/_mixin/_property.pug +51 -0
  41. package/themes/umberto/layout/umberto/_api-docs/_mixin/_related.pug +8 -0
  42. package/themes/umberto/layout/umberto/_api-docs/_mixin/_return.pug +14 -0
  43. package/themes/umberto/layout/umberto/_api-docs/_mixin/_sidebox-list-item.pug +8 -0
  44. package/themes/umberto/layout/umberto/_api-docs/_mixin/_sidebox-list.pug +8 -0
  45. package/themes/umberto/layout/umberto/_api-docs/_mixin/_type.pug +180 -0
  46. package/themes/umberto/layout/umberto/_api-docs/_mixin/type-parameter.pug +18 -0
  47. package/themes/umberto/layout/umberto/_api-docs/_partial/api-info-box.pug +30 -0
  48. package/themes/umberto/layout/umberto/_api-docs/_partial/api-subheader.pug +22 -0
  49. package/themes/umberto/layout/umberto/_api-docs/_partial/classes.pug +7 -0
  50. package/themes/umberto/layout/umberto/_api-docs/_partial/config-options.pug +7 -0
  51. package/themes/umberto/layout/umberto/_api-docs/_partial/constants.pug +7 -0
  52. package/themes/umberto/layout/umberto/_api-docs/_partial/description.pug +9 -0
  53. package/themes/umberto/layout/umberto/_api-docs/_partial/events.pug +7 -0
  54. package/themes/umberto/layout/umberto/_api-docs/_partial/filter.pug +40 -0
  55. package/themes/umberto/layout/umberto/_api-docs/_partial/functions.pug +7 -0
  56. package/themes/umberto/layout/umberto/_api-docs/_partial/interfaces.pug +7 -0
  57. package/themes/umberto/layout/umberto/_api-docs/_partial/loading-spinner.pug +2 -0
  58. package/themes/umberto/layout/umberto/_api-docs/_partial/methods.pug +19 -0
  59. package/themes/umberto/layout/umberto/_api-docs/_partial/namespaces.pug +7 -0
  60. package/themes/umberto/layout/umberto/_api-docs/_partial/navtree.pug +13 -0
  61. package/themes/umberto/layout/umberto/_api-docs/_partial/properties.pug +19 -0
  62. package/themes/umberto/layout/umberto/_api-docs/_partial/type-parameters.pug +26 -0
  63. package/themes/umberto/layout/umberto/_api-docs/_partial/typedefs.pug +7 -0
  64. package/themes/umberto/layout/umberto/_api-docs/api-base.pug +45 -0
  65. package/themes/umberto/layout/{_api-docs/interface.pug → umberto/_api-docs/class.pug} +1 -1
  66. package/themes/umberto/layout/umberto/_api-docs/errors.pug +6 -0
  67. package/themes/umberto/layout/umberto/_api-docs/interface.pug +10 -0
  68. package/themes/umberto/layout/{_api-docs/module.pug → umberto/_api-docs/mixin.pug} +1 -1
  69. package/themes/umberto/layout/umberto/_api-docs/module.pug +10 -0
  70. package/themes/umberto/layout/umberto/_api-docs/namespace.pug +10 -0
  71. package/themes/umberto/layout/umberto/_api-docs/typedef.pug +37 -0
  72. package/themes/umberto/layout/umberto/_mixin/nav-tree-item.pug +13 -0
  73. package/themes/umberto/layout/umberto/_mixin/nav-tree-level.pug +38 -0
  74. package/themes/umberto/layout/umberto/_partial/docsearch.pug +21 -0
  75. package/themes/umberto/layout/umberto/_partial/dropdown.pug +12 -0
  76. package/themes/umberto/layout/umberto/_partial/feedback-widget.pug +20 -0
  77. package/themes/umberto/layout/umberto/_partial/footer.pug +6 -0
  78. package/themes/umberto/layout/umberto/_partial/gh-contribute.pug +8 -0
  79. package/themes/umberto/layout/umberto/_partial/google-analytics.pug +19 -0
  80. package/themes/umberto/layout/umberto/_partial/google-tag-manager.pug +18 -0
  81. package/themes/umberto/layout/umberto/_partial/head.pug +67 -0
  82. package/themes/umberto/layout/umberto/_partial/header.pug +64 -0
  83. package/themes/umberto/layout/umberto/_partial/nav-tree.pug +9 -0
  84. package/themes/umberto/layout/umberto/_partial/report-issue-widget.pug +26 -0
  85. package/themes/umberto/layout/umberto/_partial/rwd-breadcrumbs.pug +13 -0
  86. package/themes/umberto/layout/umberto/_partial/search-box.pug +6 -0
  87. package/themes/umberto/layout/umberto/_partial/vwo.pug +11 -0
  88. package/themes/umberto/layout/umberto/_sdk/_mixin/_sdk-sample-item.pug +5 -0
  89. package/themes/umberto/layout/umberto/_sdk/_mixin/_sdk-samples.pug +7 -0
  90. package/themes/umberto/layout/umberto/_sdk/_mixin/_sdk-tree-item.pug +7 -0
  91. package/themes/umberto/layout/umberto/_sdk/_mixin/_sdk-tree-level.pug +29 -0
  92. package/themes/umberto/layout/umberto/_sdk/_partial/navtree.pug +4 -0
  93. package/themes/umberto/layout/umberto/_sdk/page.pug +23 -0
  94. package/themes/umberto/layout/umberto/api.pug +27 -0
  95. package/themes/umberto/layout/umberto/base.pug +42 -0
  96. package/themes/umberto/layout/umberto/index.pug +17 -0
  97. package/themes/umberto/layout/umberto/page.pug +28 -0
  98. package/themes/umberto/layout/umberto/sdk.pug +29 -0
  99. package/themes/umberto/source/umberto/assets/_img/info-circle.svg +4 -0
  100. package/themes/umberto/source/umberto/assets/_img/triangle-right.svg +1 -0
  101. package/themes/umberto/src/umberto/css/_api-content.scss +32 -0
  102. package/themes/umberto/src/umberto/css/_api-info-box.scss +86 -0
  103. package/themes/umberto/src/umberto/css/_api-props-filter.scss +106 -0
  104. package/themes/umberto/src/umberto/css/_api-see-source.scss +35 -0
  105. package/themes/umberto/src/umberto/css/_api-subheader.scss +167 -0
  106. package/themes/umberto/src/umberto/css/_api-tree.scss +121 -0
  107. package/themes/umberto/src/umberto/css/_badge.scss +74 -0
  108. package/themes/umberto/src/umberto/css/_code-switcher.scss +61 -0
  109. package/themes/umberto/src/umberto/css/_collapsinglist.scss +262 -0
  110. package/themes/umberto/src/umberto/css/_content.scss +236 -0
  111. package/themes/umberto/src/umberto/css/_docsearch.scss +109 -0
  112. package/themes/umberto/src/umberto/css/_dropdown.scss +63 -0
  113. package/themes/umberto/src/umberto/css/_editor-icon.scss +26 -0
  114. package/themes/umberto/src/umberto/css/_feedback-widget.scss +11 -0
  115. package/themes/umberto/src/umberto/css/_font-external.scss +8 -0
  116. package/themes/umberto/src/umberto/css/_footer.scss +40 -0
  117. package/themes/umberto/src/umberto/css/_formatted.scss +285 -0
  118. package/themes/umberto/src/umberto/css/_guide-content.scss +37 -0
  119. package/themes/umberto/src/umberto/css/_guide-sdk-tree.scss +14 -0
  120. package/themes/umberto/src/umberto/css/_loading-spinner.scss +33 -0
  121. package/themes/umberto/src/umberto/css/_main.scss +59 -0
  122. package/themes/umberto/src/umberto/css/_navigation.scss +35 -0
  123. package/themes/umberto/src/umberto/css/_notice.scss +116 -0
  124. package/themes/umberto/src/umberto/css/_print.scss +20 -0
  125. package/themes/umberto/src/umberto/css/_prism.scss +223 -0
  126. package/themes/umberto/src/umberto/css/_rwd-breadcrumbs.scss +28 -0
  127. package/themes/umberto/src/umberto/css/_rwd-menu.scss +89 -0
  128. package/themes/umberto/src/umberto/css/_secondary-navigation.scss +152 -0
  129. package/themes/umberto/src/umberto/css/_theme-dark.scss +175 -0
  130. package/themes/umberto/src/umberto/css/_toggler.scss +46 -0
  131. package/themes/umberto/src/umberto/css/_top.scss +350 -0
  132. package/themes/umberto/src/umberto/css/_tree.scss +218 -0
  133. package/themes/umberto/src/umberto/css/_warning-banner.scss +46 -0
  134. package/themes/umberto/src/umberto/css/components/_lightbox.scss +12 -0
  135. package/themes/umberto/src/umberto/css/helpers/_color.scss +49 -0
  136. package/themes/umberto/src/umberto/css/helpers/_font.scss +60 -0
  137. package/themes/umberto/src/umberto/css/helpers/_globals.scss +129 -0
  138. package/themes/umberto/src/umberto/css/helpers/_reset.scss +52 -0
  139. package/themes/umberto/src/umberto/css/helpers/_spacing.scss +21 -0
  140. package/themes/umberto/src/umberto/css/pages/_sdk.scss +111 -0
  141. package/themes/umberto/src/umberto/css/styles.scss +117 -0
  142. package/themes/umberto/src/umberto/js/_anchors.js +57 -0
  143. package/themes/umberto/src/umberto/js/_apisearch.js +126 -0
  144. package/themes/umberto/src/umberto/js/_apitree.js +67 -0
  145. package/themes/umberto/src/umberto/js/_attachpermalinklistener.js +50 -0
  146. package/themes/umberto/src/umberto/js/_codeswitcherbuttons.js +146 -0
  147. package/themes/umberto/src/umberto/js/_collapsables.js +135 -0
  148. package/themes/umberto/src/umberto/js/_copymobileapinavigation.js +26 -0
  149. package/themes/umberto/src/umberto/js/_devnames.js +37 -0
  150. package/themes/umberto/src/umberto/js/_dropdowns.js +55 -0
  151. package/themes/umberto/src/umberto/js/_filtering.js +139 -0
  152. package/themes/umberto/src/umberto/js/_imageModal.js +16 -0
  153. package/themes/umberto/src/umberto/js/_pagenavigation.js +93 -0
  154. package/themes/umberto/src/umberto/js/_prism.js +104 -0
  155. package/themes/umberto/src/umberto/js/_rwdmenu.js +15 -0
  156. package/themes/umberto/src/umberto/js/_samplecode.js +23 -0
  157. package/themes/umberto/src/umberto/js/_sidenavigation.js +59 -0
  158. package/themes/umberto/src/umberto/js/_toc.js +93 -0
  159. package/themes/umberto/src/umberto/js/_tooltips.js +39 -0
  160. package/themes/umberto/src/umberto/js/_warningbanner.js +18 -0
  161. package/themes/umberto/src/umberto/js/app.js +70 -0
  162. package/themes/umberto/src/umberto/js/vendor/prism.js +45 -0
  163. /package/themes/umberto/layout/{_api-docs → gloria/_api-docs}/_mixin/_api-see-source.pug +0 -0
  164. /package/themes/umberto/layout/{_api-docs → gloria/_api-docs}/_mixin/_api-title.pug +0 -0
  165. /package/themes/umberto/layout/{_api-docs → gloria/_api-docs}/_mixin/_api-tree-item.pug +0 -0
  166. /package/themes/umberto/layout/{_api-docs → gloria/_api-docs}/_mixin/_badge.pug +0 -0
  167. /package/themes/umberto/layout/{_api-docs → gloria/_api-docs}/_mixin/_class-item.pug +0 -0
  168. /package/themes/umberto/layout/{_api-docs → gloria/_api-docs}/_mixin/_dev-names.pug +0 -0
  169. /package/themes/umberto/layout/{_api-docs → gloria/_api-docs}/_mixin/_error.pug +0 -0
  170. /package/themes/umberto/layout/{_api-docs → gloria/_api-docs}/_mixin/_fires-item.pug +0 -0
  171. /package/themes/umberto/layout/{_api-docs → gloria/_api-docs}/_mixin/_hierarchy-item.pug +0 -0
  172. /package/themes/umberto/layout/{_api-docs → gloria/_api-docs}/_mixin/_hierarchy-list.pug +0 -0
  173. /package/themes/umberto/layout/{_api-docs → gloria/_api-docs}/_mixin/_link-or-text.pug +0 -0
  174. /package/themes/umberto/layout/{_api-docs → gloria/_api-docs}/_mixin/_method.pug +0 -0
  175. /package/themes/umberto/layout/{_api-docs → gloria/_api-docs}/_mixin/_params.pug +0 -0
  176. /package/themes/umberto/layout/{_api-docs → gloria/_api-docs}/_mixin/_property.pug +0 -0
  177. /package/themes/umberto/layout/{_api-docs → gloria/_api-docs}/_mixin/_related.pug +0 -0
  178. /package/themes/umberto/layout/{_api-docs → gloria/_api-docs}/_mixin/_return.pug +0 -0
  179. /package/themes/umberto/layout/{_api-docs → gloria/_api-docs}/_mixin/_sidebox-list-item.pug +0 -0
  180. /package/themes/umberto/layout/{_api-docs → gloria/_api-docs}/_mixin/_sidebox-list.pug +0 -0
  181. /package/themes/umberto/layout/{_api-docs → gloria/_api-docs}/_mixin/_type.pug +0 -0
  182. /package/themes/umberto/layout/{_api-docs → gloria/_api-docs}/_mixin/type-parameter.pug +0 -0
  183. /package/themes/umberto/layout/{_api-docs → gloria/_api-docs}/_partial/api-info-box.pug +0 -0
  184. /package/themes/umberto/layout/{_api-docs → gloria/_api-docs}/_partial/api-subheader.pug +0 -0
  185. /package/themes/umberto/layout/{_api-docs → gloria/_api-docs}/_partial/classes.pug +0 -0
  186. /package/themes/umberto/layout/{_api-docs → gloria/_api-docs}/_partial/config-options.pug +0 -0
  187. /package/themes/umberto/layout/{_api-docs → gloria/_api-docs}/_partial/constants.pug +0 -0
  188. /package/themes/umberto/layout/{_api-docs → gloria/_api-docs}/_partial/description.pug +0 -0
  189. /package/themes/umberto/layout/{_api-docs → gloria/_api-docs}/_partial/events.pug +0 -0
  190. /package/themes/umberto/layout/{_api-docs → gloria/_api-docs}/_partial/filter.pug +0 -0
  191. /package/themes/umberto/layout/{_api-docs → gloria/_api-docs}/_partial/functions.pug +0 -0
  192. /package/themes/umberto/layout/{_api-docs → gloria/_api-docs}/_partial/interfaces.pug +0 -0
  193. /package/themes/umberto/layout/{_api-docs → gloria/_api-docs}/_partial/loading-spinner.pug +0 -0
  194. /package/themes/umberto/layout/{_api-docs → gloria/_api-docs}/_partial/methods.pug +0 -0
  195. /package/themes/umberto/layout/{_api-docs → gloria/_api-docs}/_partial/namespaces.pug +0 -0
  196. /package/themes/umberto/layout/{_api-docs → gloria/_api-docs}/_partial/navtree.pug +0 -0
  197. /package/themes/umberto/layout/{_api-docs → gloria/_api-docs}/_partial/properties.pug +0 -0
  198. /package/themes/umberto/layout/{_api-docs → gloria/_api-docs}/_partial/type-parameters.pug +0 -0
  199. /package/themes/umberto/layout/{_api-docs → gloria/_api-docs}/_partial/typedefs.pug +0 -0
  200. /package/themes/umberto/layout/{_api-docs → gloria/_api-docs}/api-base.pug +0 -0
  201. /package/themes/umberto/layout/{_api-docs → gloria/_api-docs}/errors.pug +0 -0
  202. /package/themes/umberto/layout/{_mixin → gloria/_mixin}/nav-tree-item.pug +0 -0
  203. /package/themes/umberto/layout/{_mixin → gloria/_mixin}/nav-tree-level.pug +0 -0
  204. /package/themes/umberto/layout/{_partial → gloria/_partial}/docsearch.pug +0 -0
  205. /package/themes/umberto/layout/{_partial → gloria/_partial}/dropdown.pug +0 -0
  206. /package/themes/umberto/layout/{_partial → gloria/_partial}/feedback-widget.pug +0 -0
  207. /package/themes/umberto/layout/{_partial → gloria/_partial}/footer.pug +0 -0
  208. /package/themes/umberto/layout/{_partial → gloria/_partial}/google-analytics.pug +0 -0
  209. /package/themes/umberto/layout/{_partial → gloria/_partial}/google-tag-manager.pug +0 -0
  210. /package/themes/umberto/layout/{_partial → gloria/_partial}/header.pug +0 -0
  211. /package/themes/umberto/layout/{_partial → gloria/_partial}/nav-tree.pug +0 -0
  212. /package/themes/umberto/layout/{_partial → gloria/_partial}/report-issue-widget.pug +0 -0
  213. /package/themes/umberto/layout/{_partial → gloria/_partial}/rwd-breadcrumbs.pug +0 -0
  214. /package/themes/umberto/layout/{_partial → gloria/_partial}/vwo.pug +0 -0
  215. /package/themes/umberto/layout/{_sdk → gloria/_sdk}/_mixin/_sdk-sample-item.pug +0 -0
  216. /package/themes/umberto/layout/{_sdk → gloria/_sdk}/_mixin/_sdk-samples.pug +0 -0
  217. /package/themes/umberto/layout/{_sdk → gloria/_sdk}/_mixin/_sdk-tree-item.pug +0 -0
  218. /package/themes/umberto/layout/{_sdk → gloria/_sdk}/_mixin/_sdk-tree-level.pug +0 -0
  219. /package/themes/umberto/layout/{_sdk → gloria/_sdk}/_partial/navtree.pug +0 -0
  220. /package/themes/umberto/layout/{_sdk → gloria/_sdk}/page.pug +0 -0
  221. /package/themes/umberto/layout/{index.pug → gloria/index.pug} +0 -0
  222. /package/themes/umberto/layout/{page.pug → gloria/page.pug} +0 -0
  223. /package/themes/{nova/source → umberto/source/gloria}/assets/_img/arrows.svg +0 -0
  224. /package/themes/{nova/source → umberto/source/gloria}/assets/_img/book.svg +0 -0
  225. /package/themes/{nova/source → umberto/source/gloria}/assets/_img/box-brown.svg +0 -0
  226. /package/themes/{nova/source → umberto/source/gloria}/assets/_img/box-orange.svg +0 -0
  227. /package/themes/{nova/source → umberto/source/gloria}/assets/_img/box-red.svg +0 -0
  228. /package/themes/{nova/source → umberto/source/gloria}/assets/_img/bulb.svg +0 -0
  229. /package/themes/{nova/source → umberto/source/gloria}/assets/_img/clipboard.svg +0 -0
  230. /package/themes/{nova/source → umberto/source/gloria}/assets/_img/cog.svg +0 -0
  231. /package/themes/{nova/source → umberto/source/gloria}/assets/_img/data.svg +0 -0
  232. /package/themes/{nova/source → umberto/source/gloria}/assets/_img/documentation.svg +0 -0
  233. /package/themes/{nova/source → umberto/source/gloria}/assets/_img/download.svg +0 -0
  234. /package/themes/{nova/source → umberto/source/gloria}/assets/_img/edit.svg +0 -0
  235. /package/themes/{nova/source → umberto/source/gloria}/assets/_img/exclamation-circle.svg +0 -0
  236. /package/themes/{nova/source → umberto/source/gloria}/assets/_img/eye.svg +0 -0
  237. /package/themes/{nova/source → umberto/source/gloria}/assets/_img/filter.svg +0 -0
  238. /package/themes/{nova/source → umberto/source/gloria}/assets/_img/filtering.svg +0 -0
  239. /package/themes/{nova/source → umberto/source/gloria}/assets/_img/folder.svg +0 -0
  240. /package/themes/{nova/source → umberto/source/gloria}/assets/_img/github.svg +0 -0
  241. /package/themes/{nova/source → umberto/source/gloria}/assets/_img/header-info-configs.svg +0 -0
  242. /package/themes/{nova/source → umberto/source/gloria}/assets/_img/header-info-events.svg +0 -0
  243. /package/themes/{nova/source → umberto/source/gloria}/assets/_img/header-info-methods.svg +0 -0
  244. /package/themes/{nova/source → umberto/source/gloria}/assets/_img/header-info-properties.svg +0 -0
  245. /package/themes/{nova/source → umberto/source/gloria}/assets/_img/heart.svg +0 -0
  246. /package/themes/umberto/source/{assets → gloria/assets}/_img/info-circle.svg +0 -0
  247. /package/themes/{nova/source → umberto/source/gloria}/assets/_img/info.svg +0 -0
  248. /package/themes/{nova/source → umberto/source/gloria}/assets/_img/list-nest.svg +0 -0
  249. /package/themes/{nova/source → umberto/source/gloria}/assets/_img/loupe.svg +0 -0
  250. /package/themes/{nova/source → umberto/source/gloria}/assets/_img/menu.svg +0 -0
  251. /package/themes/{nova/source → umberto/source/gloria}/assets/_img/plug.svg +0 -0
  252. /package/themes/{nova/source → umberto/source/gloria}/assets/_img/star-in-circle.svg +0 -0
  253. /package/themes/{nova/source → umberto/source/gloria}/assets/_img/tick.svg +0 -0
  254. /package/themes/{nova/source → umberto/source/gloria}/assets/_img/triangle-down.svg +0 -0
  255. /package/themes/umberto/source/{assets → gloria/assets}/_img/triangle-right.svg +0 -0
  256. /package/themes/umberto/source/{assets → umberto/assets}/_img/arrows.svg +0 -0
  257. /package/themes/umberto/source/{assets → umberto/assets}/_img/book.svg +0 -0
  258. /package/themes/umberto/source/{assets → umberto/assets}/_img/box-brown.svg +0 -0
  259. /package/themes/umberto/source/{assets → umberto/assets}/_img/box-orange.svg +0 -0
  260. /package/themes/umberto/source/{assets → umberto/assets}/_img/box-red.svg +0 -0
  261. /package/themes/umberto/source/{assets → umberto/assets}/_img/bulb.svg +0 -0
  262. /package/themes/umberto/source/{assets → umberto/assets}/_img/clipboard.svg +0 -0
  263. /package/themes/umberto/source/{assets → umberto/assets}/_img/cog.svg +0 -0
  264. /package/themes/umberto/source/{assets → umberto/assets}/_img/data.svg +0 -0
  265. /package/themes/umberto/source/{assets → umberto/assets}/_img/documentation.svg +0 -0
  266. /package/themes/umberto/source/{assets → umberto/assets}/_img/download.svg +0 -0
  267. /package/themes/umberto/source/{assets → umberto/assets}/_img/edit.svg +0 -0
  268. /package/themes/umberto/source/{assets → umberto/assets}/_img/exclamation-circle.svg +0 -0
  269. /package/themes/umberto/source/{assets → umberto/assets}/_img/eye.svg +0 -0
  270. /package/themes/umberto/source/{assets → umberto/assets}/_img/filter.svg +0 -0
  271. /package/themes/umberto/source/{assets → umberto/assets}/_img/filtering.svg +0 -0
  272. /package/themes/umberto/source/{assets → umberto/assets}/_img/folder.svg +0 -0
  273. /package/themes/umberto/source/{assets → umberto/assets}/_img/github.svg +0 -0
  274. /package/themes/umberto/source/{assets → umberto/assets}/_img/header-info-configs.svg +0 -0
  275. /package/themes/umberto/source/{assets → umberto/assets}/_img/header-info-events.svg +0 -0
  276. /package/themes/umberto/source/{assets → umberto/assets}/_img/header-info-methods.svg +0 -0
  277. /package/themes/umberto/source/{assets → umberto/assets}/_img/header-info-properties.svg +0 -0
  278. /package/themes/umberto/source/{assets → umberto/assets}/_img/heart.svg +0 -0
  279. /package/themes/umberto/source/{assets → umberto/assets}/_img/info.svg +0 -0
  280. /package/themes/umberto/source/{assets → umberto/assets}/_img/list-nest.svg +0 -0
  281. /package/themes/umberto/source/{assets → umberto/assets}/_img/loupe.svg +0 -0
  282. /package/themes/umberto/source/{assets → umberto/assets}/_img/menu.svg +0 -0
  283. /package/themes/umberto/source/{assets → umberto/assets}/_img/plug.svg +0 -0
  284. /package/themes/umberto/source/{assets → umberto/assets}/_img/star-in-circle.svg +0 -0
  285. /package/themes/umberto/source/{assets → umberto/assets}/_img/tick.svg +0 -0
  286. /package/themes/umberto/source/{assets → umberto/assets}/_img/triangle-down.svg +0 -0
  287. /package/themes/umberto/src/{css → gloria/css}/_api-content.scss +0 -0
  288. /package/themes/umberto/src/{css → gloria/css}/_api-info-box.scss +0 -0
  289. /package/themes/umberto/src/{css → gloria/css}/_api-props-filter.scss +0 -0
  290. /package/themes/umberto/src/{css → gloria/css}/_api-see-source.scss +0 -0
  291. /package/themes/umberto/src/{css → gloria/css}/_api-subheader.scss +0 -0
  292. /package/themes/umberto/src/{css → gloria/css}/_api-tree.scss +0 -0
  293. /package/themes/umberto/src/{css → gloria/css}/_badge.scss +0 -0
  294. /package/themes/umberto/src/{css → gloria/css}/_code-switcher.scss +0 -0
  295. /package/themes/umberto/src/{css → gloria/css}/_collapsinglist.scss +0 -0
  296. /package/themes/umberto/src/{css → gloria/css}/_content.scss +0 -0
  297. /package/themes/umberto/src/{css → gloria/css}/_docsearch.scss +0 -0
  298. /package/themes/umberto/src/{css → gloria/css}/_dropdown.scss +0 -0
  299. /package/themes/umberto/src/{css → gloria/css}/_editor-icon.scss +0 -0
  300. /package/themes/umberto/src/{css → gloria/css}/_feedback-widget.scss +0 -0
  301. /package/themes/umberto/src/{css → gloria/css}/_font-external.scss +0 -0
  302. /package/themes/umberto/src/{css → gloria/css}/_footer.scss +0 -0
  303. /package/themes/umberto/src/{css → gloria/css}/_formatted.scss +0 -0
  304. /package/themes/umberto/src/{css → gloria/css}/_guide-content.scss +0 -0
  305. /package/themes/umberto/src/{css → gloria/css}/_guide-sdk-tree.scss +0 -0
  306. /package/themes/umberto/src/{css → gloria/css}/_loading-spinner.scss +0 -0
  307. /package/themes/umberto/src/{css → gloria/css}/_main.scss +0 -0
  308. /package/themes/umberto/src/{css → gloria/css}/_navigation.scss +0 -0
  309. /package/themes/umberto/src/{css → gloria/css}/_notice.scss +0 -0
  310. /package/themes/umberto/src/{css → gloria/css}/_print.scss +0 -0
  311. /package/themes/umberto/src/{css → gloria/css}/_prism.scss +0 -0
  312. /package/themes/umberto/src/{css → gloria/css}/_rwd-breadcrumbs.scss +0 -0
  313. /package/themes/umberto/src/{css → gloria/css}/_rwd-menu.scss +0 -0
  314. /package/themes/umberto/src/{css → gloria/css}/_secondary-navigation.scss +0 -0
  315. /package/themes/umberto/src/{css → gloria/css}/_theme-dark.scss +0 -0
  316. /package/themes/umberto/src/{css → gloria/css}/_toggler.scss +0 -0
  317. /package/themes/umberto/src/{css → gloria/css}/_top.scss +0 -0
  318. /package/themes/umberto/src/{css → gloria/css}/_tree.scss +0 -0
  319. /package/themes/umberto/src/{css → gloria/css}/_warning-banner.scss +0 -0
  320. /package/themes/umberto/src/{css → gloria/css}/components/_lightbox.scss +0 -0
  321. /package/themes/umberto/src/{css → gloria/css}/helpers/_color.scss +0 -0
  322. /package/themes/umberto/src/{css → gloria/css}/helpers/_font.scss +0 -0
  323. /package/themes/umberto/src/{css → gloria/css}/helpers/_globals.scss +0 -0
  324. /package/themes/umberto/src/{css → gloria/css}/helpers/_reset.scss +0 -0
  325. /package/themes/umberto/src/{css → gloria/css}/helpers/_spacing.scss +0 -0
  326. /package/themes/umberto/src/{css → gloria/css}/pages/_sdk.scss +0 -0
  327. /package/themes/umberto/src/{css → gloria/css}/styles.scss +0 -0
  328. /package/themes/umberto/src/{js → gloria/js}/_anchors.js +0 -0
  329. /package/themes/umberto/src/{js → gloria/js}/_apisearch.js +0 -0
  330. /package/themes/umberto/src/{js → gloria/js}/_apitree.js +0 -0
  331. /package/themes/umberto/src/{js → gloria/js}/_attachpermalinklistener.js +0 -0
  332. /package/themes/umberto/src/{js → gloria/js}/_codeswitcherbuttons.js +0 -0
  333. /package/themes/umberto/src/{js → gloria/js}/_collapsables.js +0 -0
  334. /package/themes/umberto/src/{js → gloria/js}/_copymobileapinavigation.js +0 -0
  335. /package/themes/umberto/src/{js → gloria/js}/_devnames.js +0 -0
  336. /package/themes/umberto/src/{js → gloria/js}/_dropdowns.js +0 -0
  337. /package/themes/umberto/src/{js → gloria/js}/_filtering.js +0 -0
  338. /package/themes/umberto/src/{js → gloria/js}/_imageModal.js +0 -0
  339. /package/themes/umberto/src/{js → gloria/js}/_pagenavigation.js +0 -0
  340. /package/themes/umberto/src/{js → gloria/js}/_prism.js +0 -0
  341. /package/themes/umberto/src/{js → gloria/js}/_rwdmenu.js +0 -0
  342. /package/themes/umberto/src/{js → gloria/js}/_samplecode.js +0 -0
  343. /package/themes/umberto/src/{js → gloria/js}/_sidenavigation.js +0 -0
  344. /package/themes/umberto/src/{js → gloria/js}/_toc.js +0 -0
  345. /package/themes/umberto/src/{js → gloria/js}/_tooltips.js +0 -0
  346. /package/themes/umberto/src/{js → gloria/js}/_warningbanner.js +0 -0
  347. /package/themes/umberto/src/{js → gloria/js}/app.js +0 -0
  348. /package/themes/umberto/src/{js → gloria/js}/vendor/prism.js +0 -0
@@ -0,0 +1,67 @@
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
+ import $ from 'jquery';
7
+ import throttle from 'lodash/throttle';
8
+
9
+ /**
10
+ * Expands corresponding API tree item on navigation tree when viewing a page.
11
+ */
12
+ export function expandApiTree() {
13
+ const activeTreeItemClass = 'tree__item__wrapper--active';
14
+ const togglerExpandedClass = 'toggler--expanded';
15
+ const togglerCollapsedClass = 'toggler--collapsed';
16
+ const pageIdentifier = $( 'h1' ).data( 'ln' );
17
+
18
+ if ( !pageIdentifier ) {
19
+ return;
20
+ }
21
+
22
+ const apiTree = $( 'ul.api-tree' );
23
+
24
+ if ( apiTree.length === 0 ) {
25
+ return;
26
+ }
27
+
28
+ const currentTreeItem = apiTree.find( `div[data-ln="${ pageIdentifier }"]` );
29
+ currentTreeItem.addClass( activeTreeItemClass );
30
+ currentTreeItem.parents( '.api-tree li[class*="toggler--"]' ).removeClass( togglerCollapsedClass ).addClass( togglerExpandedClass );
31
+ }
32
+
33
+ /**
34
+ * Scrolls API navigation tree to currently viewed page.
35
+ */
36
+ export function scrollApiTree() {
37
+ if ( $( '.side-navigation' ).length === 0 ) {
38
+ return;
39
+ }
40
+
41
+ const tree = $( '.side-navigation__inner' );
42
+ const treeHeight = tree.height();
43
+ const storageKey = 'side-nav-scroll-top';
44
+ const sideNavScrollTop = Number( window.localStorage.getItem( storageKey ) );
45
+ const activeTreeItemClass = 'tree__item__wrapper--active';
46
+ const activeTreeItem = $( `div.side-navigation .${ activeTreeItemClass }` );
47
+ let activeTreeItemTop = 0;
48
+ const bound = 50; // Offset from top and bottom of side nav.
49
+
50
+ if ( activeTreeItem.length ) {
51
+ activeTreeItemTop = activeTreeItem[ 0 ].offsetParent ? activeTreeItem[ 0 ].offsetParent.offsetTop : 0;
52
+
53
+ if (
54
+ sideNavScrollTop !== null &&
55
+ activeTreeItemTop > sideNavScrollTop + bound &&
56
+ activeTreeItemTop < sideNavScrollTop + treeHeight - bound
57
+ ) {
58
+ tree.scrollTop( sideNavScrollTop );
59
+ } else {
60
+ activeTreeItem[ 0 ].scrollIntoView( { block: 'center' } );
61
+ }
62
+ }
63
+
64
+ tree.scroll( throttle( () => {
65
+ window.localStorage.setItem( storageKey, tree.scrollTop() );
66
+ }, 200 ) );
67
+ }
@@ -0,0 +1,50 @@
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
+ export default function attachPermalinkListener() {
7
+ const projectVersionElement = document.querySelector( 'meta[name=project-version]' );
8
+ const projectSlugElement = document.querySelector( 'meta[name=project-slug]' );
9
+
10
+ if ( !projectVersionElement || !projectSlugElement ) {
11
+ return;
12
+ }
13
+
14
+ const permalinkDisableDomainsElement = document.querySelector( 'meta[name=permalink-disable-domains]' );
15
+
16
+ if ( permalinkDisableDomainsElement ) {
17
+ const permalinkDisableDomains = permalinkDisableDomainsElement.getAttribute( 'content' ).split( ',' );
18
+
19
+ if ( permalinkDisableDomains.includes( location.hostname ) ) {
20
+ return;
21
+ }
22
+ }
23
+
24
+ const projectVersion = projectVersionElement.getAttribute( 'content' );
25
+ const projectSlug = projectSlugElement.getAttribute( 'content' );
26
+
27
+ document.addEventListener( 'keypress', event => {
28
+ if ( event.metaKey ) {
29
+ return;
30
+ }
31
+
32
+ if ( event.shiftKey ) {
33
+ return;
34
+ }
35
+
36
+ if ( event.key.toUpperCase() !== 'Y' ) {
37
+ return;
38
+ }
39
+
40
+ const latestRegexp = new RegExp( `/${ projectSlug }/latest/` );
41
+
42
+ if ( !latestRegexp.test( location.href ) ) {
43
+ return;
44
+ }
45
+
46
+ const newUrl = location.href.replace( latestRegexp, `/${ projectSlug }/${ projectVersion }/` );
47
+
48
+ history.replaceState( history.state, document.title, newUrl );
49
+ } );
50
+ }
@@ -0,0 +1,146 @@
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
+ import $ from 'jquery';
7
+
8
+ const type = {
9
+ selfHosted: 'selfhosted',
10
+ cloud: 'cloud'
11
+ };
12
+ const storageSwitcherKey = 'code-switcher-type';
13
+ const buttonClass = 'code-switcher__button';
14
+ const buttonActiveClass = 'code-switcher__button--active';
15
+ const codeSwitcherClass = 'code-switcher';
16
+ const codeSwitcherToolbarClass = 'code-switcher__toolbar';
17
+
18
+ function switchSnippetContent( originalSnippetContent, newType ) {
19
+ let newSnippetContent;
20
+ const gplComment = ' // Or \'GPL\'.';
21
+ const licenseKey = 'licenseKey: \'<YOUR_LICENSE_KEY>\',';
22
+
23
+ if ( newType === type.cloud ) {
24
+ newSnippetContent = originalSnippetContent
25
+ .replace( /import {/g, 'const {' )
26
+ .replace( /} from/g, '} =' )
27
+ .replace( /'ckeditor5';/g, 'CKEDITOR;' )
28
+ .replace( /'ckeditor5-premium-features'/g, 'CKEDITOR_PREMIUM_FEATURES' )
29
+ .replace( `${ licenseKey }${ gplComment }`, licenseKey );
30
+ } else if ( newType === type.selfHosted ) {
31
+ newSnippetContent = originalSnippetContent
32
+ .replace( /const {/g, 'import {' )
33
+ .replace( /} =/g, '} from' )
34
+ .replace( /CKEDITOR;/g, '\'ckeditor5\';' )
35
+ .replace( /CKEDITOR_PREMIUM_FEATURES/g, '\'ckeditor5-premium-features\'' )
36
+ .replace( licenseKey, ( match, _, wholeString ) => {
37
+ if ( wholeString.includes( gplComment ) ) {
38
+ return match;
39
+ } else {
40
+ return `${ match }${ gplComment }`;
41
+ }
42
+ } );
43
+ }
44
+
45
+ return newSnippetContent;
46
+ }
47
+
48
+ function switchSnippet( switcher, newType ) {
49
+ const codeElement = switcher.querySelector( 'pre code' );
50
+
51
+ codeElement.textContent = switchSnippetContent( codeElement.textContent, newType );
52
+ window.Prism.highlightElement( codeElement );
53
+
54
+ const switcherClasses = switcher.classList;
55
+
56
+ switcher.classList.replace( switcherClasses[ switcherClasses.length - 1 ], newType );
57
+ }
58
+
59
+ function saveSnippetType( type ) {
60
+ if ( type === getSnippetType() ) {
61
+ return;
62
+ }
63
+
64
+ localStorage.setItem( storageSwitcherKey, type );
65
+ window.dispatchEvent( new Event( 'storage' ) );
66
+ }
67
+
68
+ function getSnippetType() {
69
+ return localStorage.getItem( storageSwitcherKey );
70
+ }
71
+
72
+ function createButton( label, isActive = false ) {
73
+ const button = document.createElement( 'button' );
74
+
75
+ button.textContent = label;
76
+ button.classList.add( buttonClass );
77
+
78
+ if ( isActive ) {
79
+ button.classList.add( buttonActiveClass );
80
+ }
81
+
82
+ return button;
83
+ }
84
+
85
+ export function createCodeSwitcherButtons() {
86
+ const switchers = document.querySelectorAll( `.${ codeSwitcherClass }` );
87
+
88
+ if ( switchers.lenght === 0 ) {
89
+ return;
90
+ }
91
+
92
+ const savedType = getSnippetType();
93
+
94
+ switchers.forEach( switcher => {
95
+ if ( savedType ) {
96
+ switchSnippet( switcher, savedType );
97
+ }
98
+
99
+ const activeType = switcher.classList[ switcher.classList.length - 1 ];
100
+
101
+ const selfHostedButton = createButton( 'Self-hosted (npm)', activeType === type.selfHosted );
102
+
103
+ selfHostedButton.setAttribute( 'title', 'Self-hosted shows imports for installations using npm or ZIP setups.' );
104
+
105
+ const cloudButton = createButton( 'Cloud (CDN)', activeType === type.cloud );
106
+
107
+ cloudButton.setAttribute( 'title', 'Cloud shows imports for installations using CDN setups.' );
108
+
109
+ const switcherToolbar = switcher.querySelector( `.${ codeSwitcherToolbarClass }` );
110
+
111
+ switcherToolbar.append( selfHostedButton );
112
+ switcherToolbar.append( cloudButton );
113
+ switcher.prepend( switcherToolbar );
114
+
115
+ window.addEventListener( 'storage', () => {
116
+ const savedType = getSnippetType();
117
+
118
+ if ( savedType ) {
119
+ switchSnippet( switcher, savedType );
120
+
121
+ if ( savedType === type.selfHosted ) {
122
+ selfHostedButton.classList.add( buttonActiveClass );
123
+ cloudButton.classList.remove( buttonActiveClass );
124
+ } else if ( savedType === type.cloud ) {
125
+ cloudButton.classList.add( buttonActiveClass );
126
+ selfHostedButton.classList.remove( buttonActiveClass );
127
+ }
128
+ }
129
+ } );
130
+
131
+ selfHostedButton.addEventListener( 'click', () => {
132
+ saveSnippetType( type.selfHosted );
133
+ } );
134
+ cloudButton.addEventListener( 'click', () => {
135
+ saveSnippetType( type.cloud );
136
+ } );
137
+ } );
138
+
139
+ /* eslint-disable max-len */
140
+ const infoCircle = $( `
141
+ <svg class="code-switcher__info" width="12" height="12" viewBox="0 0 12 12" fill="none" xmlns="http://www.w3.org/2000/svg">
142
+ <path d="M6 0.75C3.10078 0.75 0.75 3.10078 0.75 6C0.75 8.89922 3.10078 11.25 6 11.25C8.89922 11.25 11.25 8.89922 11.25 6C11.25 3.10078 8.89922 0.75 6 0.75ZM6 10.3594C3.59297 10.3594 1.64063 8.40703 1.64063 6C1.64063 3.59297 3.59297 1.64063 6 1.64063C8.40703 1.64063 10.3594 3.59297 10.3594 6C10.3594 8.40703 8.40703 10.3594 6 10.3594Z" fill="white"/>
143
+ <path d="M5.43732 3.9375C5.43732 4.08668 5.49658 4.22976 5.60207 4.33525C5.70756 4.44074 5.85063 4.5 5.99982 4.5C6.149 4.5 6.29207 4.44074 6.39756 4.33525C6.50305 4.22976 6.56232 4.08668 6.56232 3.9375C6.56232 3.78832 6.50305 3.64524 6.39756 3.53975C6.29207 3.43426 6.149 3.375 5.99982 3.375C5.85063 3.375 5.70756 3.43426 5.60207 3.53975C5.49658 3.64524 5.43732 3.78832 5.43732 3.9375ZM6.28107 5.25H5.71857C5.667 5.25 5.62482 5.29219 5.62482 5.34375V8.53125C5.62482 8.58281 5.667 8.625 5.71857 8.625H6.28107C6.33263 8.625 6.37482 8.58281 6.37482 8.53125V5.34375C6.37482 5.29219 6.33263 5.25 6.28107 5.25Z" fill="white"/>
144
+ </svg>` );
145
+ infoCircle.appendTo( `.${ buttonClass }` );
146
+ }
@@ -0,0 +1,135 @@
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
+ import $ from 'jquery';
7
+
8
+ const classExp = 'toggler--expanded';
9
+ const classCol = 'toggler--collapsed';
10
+
11
+ export function enableCollapsables() {
12
+ enableCollapsable( {
13
+ selector: '.tree li[class*="toggler--"]',
14
+ nodeElement: 'li',
15
+ dontToggleClass: 'tree__item__text',
16
+
17
+ collapsedClass: classCol,
18
+ expandedClass: classExp
19
+ } );
20
+
21
+ enableCollapsable( {
22
+ selector: '.collapsing-list__term[class*="toggler--"]',
23
+ nodeElement: '.collapsing-list__term',
24
+ dontToggleClass: [ 'collapsing-list__type', 'collapsing-list__dev-names--active' ],
25
+
26
+ collapsedClass: classCol,
27
+ expandedClass: classExp
28
+ } );
29
+ }
30
+
31
+ function enableCollapsable( options ) {
32
+ $( options.selector ).on( 'click', function( evt ) {
33
+ const clicked = $( this );
34
+ const target = $( evt.target );
35
+ const parentNode = target.closest( options.nodeElement );
36
+
37
+ if ( parentNode.is( options.selector ) ) {
38
+ if ( hasClassFrom( target, 'hidden' ) || hasClassFrom( target.parent(), 'hidden' ) ) {
39
+ return;
40
+ }
41
+
42
+ if ( ( target.is( 'a' ) || target.is( 'code' ) ) && hasClassFrom( target, options.dontToggleClass ) ) {
43
+ return;
44
+ }
45
+
46
+ clicked.toggleClass( `${ options.expandedClass } ${ options.collapsedClass }` );
47
+ evt.stopPropagation();
48
+ }
49
+ } );
50
+
51
+ function hasClassFrom( target, classArray ) {
52
+ let ret = false;
53
+ if ( typeof classArray === 'string' ) {
54
+ return target.hasClass( classArray );
55
+ }
56
+ classArray.forEach( cls => {
57
+ if ( target.hasClass( cls ) ) {
58
+ ret = true;
59
+ }
60
+ } );
61
+ return ret;
62
+ }
63
+ }
64
+
65
+ export function hideTogglers() {
66
+ $( '.collapsing-list__item' ).each( function() {
67
+ const item = $( this );
68
+ const excerpt = item.find( '.collapsing-list__excerpt' );
69
+ const hasExcerpt = excerpt.length > 0;
70
+
71
+ if ( hasExcerpt ) {
72
+ hideTogglersWithExcerpts( item );
73
+ } else {
74
+ hideTogglersWithoutExcerpts( item );
75
+ }
76
+ } );
77
+ }
78
+
79
+ function hideTogglersWithoutExcerpts( item ) {
80
+ const hasDescription = item.find( '.collapsing-list__description' ).length > 0;
81
+
82
+ // Items without description have no togglers in the first place.
83
+ if ( !hasDescription ) {
84
+ const term = item.children( '.collapsing-list__term' );
85
+ term.addClass( 'collapsing-list__term--no-excerpt' );
86
+
87
+ return;
88
+ }
89
+
90
+ // Check whether there is any content in the extended description.
91
+ const hasContent = item.find( '.collapsing-list__content' ).text().trim().length > 0;
92
+
93
+ // Check whether there is a link to the source code.
94
+ const hasSourceLink = item.find( '.see-source' ).length > 0;
95
+
96
+ // If none of the criteria above is met, toggler is not needed and can be hidden away.
97
+ if ( !hasContent && !hasSourceLink ) {
98
+ hideTogglerForItem( item );
99
+ }
100
+ }
101
+
102
+ function hideTogglersWithExcerpts( item ) {
103
+ const isExcerptShort = item.find( '.collapsing-list__excerpt--short' ).length > 0;
104
+
105
+ // Short excerpts have no togglers in the first place.
106
+ if ( isExcerptShort ) {
107
+ return;
108
+ }
109
+
110
+ // Check whether short description is cut off by an ellipsis due to available space being too narrow.
111
+ const excerptParagraph = item.find( '.collapsing-list__excerpt p' );
112
+ // Some elements have no short description, eg.:
113
+ // api/module_basic-styles_attributecommand-AttributeCommand.html#function-constructor
114
+ const excerptHasEllipsis = !excerptParagraph.length ? false :
115
+ Math.abs( excerptParagraph[ 0 ].clientWidth - excerptParagraph[ 0 ].scrollWidth ) > 0;
116
+
117
+ // Check whether there is any content in the extended description.
118
+ const hasContent = item.find( '.collapsing-list__content' ).text().trim().length > 0;
119
+
120
+ // Check whether there is a link to the source code.
121
+ const hasSourceLink = item.find( '.see-source' ).length > 0;
122
+
123
+ // If none of the criteria above is met, toggler is not needed and can be hidden away.
124
+ if ( !excerptHasEllipsis && !hasContent && !hasSourceLink ) {
125
+ hideTogglerForItem( item );
126
+ }
127
+ }
128
+
129
+ function hideTogglerForItem( item ) {
130
+ const term = item.children( '.collapsing-list__term' );
131
+
132
+ term.removeClass( classCol );
133
+ term.addClass( classExp );
134
+ term.addClass( 'hidden' );
135
+ }
@@ -0,0 +1,26 @@
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
+ export default function copyMobileApiNavigation() {
7
+ // First check if it is API page.
8
+ const apiTree = document.querySelector( '.side-navigation__inner--api' );
9
+
10
+ if ( !apiTree ) {
11
+ return;
12
+ }
13
+
14
+ // Check current project.
15
+ const currentProject = document.querySelector( 'header.top' ).dataset.project;
16
+
17
+ // copy there API tree
18
+ const mobileApiMenu = document.querySelector(
19
+ `.header__menu-rwd__projects li[ data-project=${ currentProject } ] li[ data-group=api-reference ]`
20
+ );
21
+
22
+ // Clone HTML Element with API Tree.
23
+ const clonedApiTree = apiTree.firstElementChild.cloneNode( true );
24
+
25
+ mobileApiMenu.appendChild( clonedApiTree );
26
+ }
@@ -0,0 +1,37 @@
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
+ export function activateDevNames() {
7
+ const elements = Array.from( document.querySelectorAll( '.collapsing-list__dev-names > code' ) );
8
+ const clsName = 'collapsing-list__dev-names--active';
9
+ const lsDevName = 'umberto:devnames';
10
+
11
+ document.addEventListener( 'keypress', evt => {
12
+ if ( !evt.shiftKey || evt.key.toUpperCase() !== 'D' ) {
13
+ return;
14
+ }
15
+ toggleDevNames( elements );
16
+ } );
17
+
18
+ if ( window.localStorage.getItem( lsDevName ) === 'true' ) {
19
+ elements.forEach( element => {
20
+ element.classList.add( clsName );
21
+ } );
22
+ }
23
+
24
+ function toggleDevNames( elements ) {
25
+ if ( window.localStorage.getItem( lsDevName ) === 'true' ) {
26
+ elements.forEach( element => {
27
+ element.classList.remove( clsName );
28
+ } );
29
+ window.localStorage.setItem( lsDevName, 'false' );
30
+ } else {
31
+ elements.forEach( element => {
32
+ element.classList.add( clsName );
33
+ } );
34
+ window.localStorage.setItem( lsDevName, 'true' );
35
+ }
36
+ }
37
+ }
@@ -0,0 +1,55 @@
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
+ import $ from 'jquery';
7
+
8
+ export function enableDropdowns() {
9
+ const activeClass = 'dropdown--active';
10
+ const doc = $( document );
11
+
12
+ $( '.dropdown__button' ).each( function( index, button ) {
13
+ const dropdown = $( button ).parent();
14
+
15
+ $( button ).on( 'click', toggleDropdown );
16
+
17
+ function startListening() {
18
+ doc.on( 'click', closeDropdownOnClick );
19
+ doc.on( 'keyup', closeDropdownOnEsc );
20
+ }
21
+
22
+ function stopListening() {
23
+ doc.off( 'click', closeDropdownOnClick );
24
+ doc.off( 'keyup', closeDropdownOnEsc );
25
+ }
26
+
27
+ function closeDropdownOnClick( evt ) {
28
+ const target = evt.target;
29
+
30
+ if ( !( dropdown.has( target ).length || dropdown.is( target ) ) ) {
31
+ dropdown.removeClass( activeClass );
32
+
33
+ stopListening();
34
+ }
35
+ }
36
+
37
+ function closeDropdownOnEsc( evt ) {
38
+ if ( evt.keyCode === 27 ) {
39
+ dropdown.removeClass( activeClass );
40
+
41
+ stopListening();
42
+ }
43
+ }
44
+
45
+ function toggleDropdown() {
46
+ dropdown.toggleClass( activeClass );
47
+
48
+ if ( dropdown.hasClass( activeClass ) ) {
49
+ startListening();
50
+ } else {
51
+ stopListening();
52
+ }
53
+ }
54
+ } );
55
+ }
@@ -0,0 +1,139 @@
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
+ import $ from 'jquery';
7
+
8
+ export function enableFiltering() {
9
+ const storagePrefix = 'filtering:props:';
10
+ const filterStorageKeys = {
11
+ public: storagePrefix + 'public',
12
+ inherited: storagePrefix + 'inherited',
13
+ internal: storagePrefix + 'internal',
14
+ protected: storagePrefix + 'protected',
15
+ private: storagePrefix + 'private',
16
+ deprecated: storagePrefix + 'deprecated',
17
+ tree: 'filtering:tree'
18
+ };
19
+
20
+ enablePropertiesFiltering();
21
+ enableTreeFiltering();
22
+
23
+ function enablePropertiesFiltering() {
24
+ $( '.api-props-filter input' )
25
+ .on( 'change', applyFilterConfig )
26
+ .on( 'change', saveFilterSetting );
27
+
28
+ function getFilterConfig() {
29
+ return $( '.api-props-filter input' ).map( function( index, domInput ) {
30
+ if ( domInput.checked ) {
31
+ return $( domInput ).val();
32
+ }
33
+ } );
34
+ }
35
+
36
+ function applyFilterConfig() {
37
+ const cfg = getFilterConfig().toArray();
38
+ const visibleClass = 'collapsing-list__item--visible';
39
+ const hiddenLoadingClass = 'hidden-loading';
40
+ const emptyClass = 'collapsing-list--empty';
41
+ const firstItemClass = 'collapsing-list__item--first';
42
+ const dropdownHiddenClass = 'api-subheader__navigation-dropdown--hidden';
43
+
44
+ $( '.loading' ).addClass( hiddenLoadingClass );
45
+ $( `.main__content--api .${ hiddenLoadingClass }:not(.loading)` ).removeClass( hiddenLoadingClass );
46
+
47
+ $( `.collapsing-list__item.${ visibleClass }` ).removeClass( `${ visibleClass } ${ firstItemClass }` );
48
+ $( '.collapsing-list' ).removeClass( emptyClass );
49
+
50
+ $( '.collapsing-list__item' ).each( function() {
51
+ const data = $( this ).data();
52
+
53
+ for ( const key in data ) {
54
+ if ( Object.prototype.hasOwnProperty.call( data, key ) && data[ key ] === true && cfg.indexOf( key ) === -1 ) {
55
+ return;
56
+ }
57
+ }
58
+
59
+ $( this ).addClass( visibleClass );
60
+ } );
61
+
62
+ $( '.collapsing-list' ).filter( function() {
63
+ return $( this ).children( ':visible' ).length === 0;
64
+ } ).each( function() {
65
+ $( this ).addClass( emptyClass );
66
+ } );
67
+
68
+ $( '.collapsing-list' ).each( function() {
69
+ $( this ).children( ':visible' ).first().addClass( firstItemClass );
70
+ } );
71
+
72
+ $( `.api-subheader__navigation-dropdown > li.${ dropdownHiddenClass }` ).removeClass( dropdownHiddenClass );
73
+ $( '.api-subheader__navigation-dropdown > li' ).each( function() {
74
+ const data = $( this ).data();
75
+ for ( const key in data ) {
76
+ if ( Object.prototype.hasOwnProperty.call( data, key ) && data[ key ] === true && cfg.indexOf( key ) === -1 ) {
77
+ $( this ).addClass( dropdownHiddenClass );
78
+ }
79
+ }
80
+ } );
81
+
82
+ // Refresh dropdown classes and visibility
83
+ window.umberto.updateDropdowns();
84
+ }
85
+
86
+ function saveFilterSetting() {
87
+ const type = $( this ).val();
88
+ const checked = $( this ).prop( 'checked' );
89
+
90
+ window.localStorage.setItem( filterStorageKeys[ type ], checked );
91
+ }
92
+
93
+ function applySavedFilterSettings() {
94
+ $( '.api-props-filter input' ).each( function() {
95
+ const type = $( this ).val();
96
+ const stored = window.localStorage.getItem( filterStorageKeys[ type ] );
97
+
98
+ if ( stored !== null ) {
99
+ $( this ).prop( 'checked', JSON.parse( stored ) );
100
+ }
101
+ } );
102
+ }
103
+
104
+ applySavedFilterSettings();
105
+ applyFilterConfig();
106
+ }
107
+
108
+ function enableTreeFiltering() {
109
+ const input = $( '.api-tree__filter input' );
110
+ const showPrivateClass = 'api-tree--show-private';
111
+ const tree = $( '.api-tree' );
112
+ const stored = window.localStorage.getItem( filterStorageKeys.tree );
113
+
114
+ if ( input && input.length === 0 ) {
115
+ return;
116
+ }
117
+
118
+ input
119
+ .on( 'change', applyTreeFilter )
120
+ .on( 'change', function() {
121
+ const checked = $( this ).prop( 'checked' );
122
+ window.localStorage.setItem( filterStorageKeys.tree, checked );
123
+ } );
124
+
125
+ function applyTreeFilter() {
126
+ if ( input.get( 0 ).checked ) {
127
+ tree.addClass( showPrivateClass );
128
+ } else {
129
+ tree.removeClass( showPrivateClass );
130
+ }
131
+ }
132
+
133
+ if ( stored !== null ) {
134
+ input.prop( 'checked', JSON.parse( stored ) );
135
+ }
136
+
137
+ applyTreeFilter();
138
+ }
139
+ }
@@ -0,0 +1,16 @@
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
+ import mediumZoom from 'medium-zoom';
7
+
8
+ export default function imageModal() {
9
+ const lightboxImages = document.querySelectorAll( '[data-lightbox]' );
10
+
11
+ if ( !lightboxImages ) {
12
+ return;
13
+ }
14
+
15
+ mediumZoom( lightboxImages );
16
+ }