@limetech/kompendium 1.1.1

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/LICENSE +21 -0
  2. package/README.md +313 -0
  3. package/dist/cjs/_commonjsHelpers-BJu3ubxk.js +13 -0
  4. package/dist/cjs/_commonjsHelpers-BJu3ubxk.js.map +1 -0
  5. package/dist/cjs/anchor-scroll-BmplAyR0.js +69 -0
  6. package/dist/cjs/anchor-scroll-BmplAyR0.js.map +1 -0
  7. package/dist/cjs/index-DYiJ6dQL.js +1866 -0
  8. package/dist/cjs/index-DYiJ6dQL.js.map +1 -0
  9. package/dist/cjs/index.cjs.js +3 -0
  10. package/dist/cjs/index.cjs.js.map +1 -0
  11. package/dist/cjs/kompendium-app.kompendium-darkmode-switch.kompendium-navigation.kompendium-search.stencil-route.stencil-route-switch.stencil-router.entry.cjs.js.map +1 -0
  12. package/dist/cjs/kompendium-app_7.cjs.entry.js +2924 -0
  13. package/dist/cjs/kompendium-code.cjs.entry.js +2724 -0
  14. package/dist/cjs/kompendium-code.entry.cjs.js.map +1 -0
  15. package/dist/cjs/kompendium-component.cjs.entry.js +207 -0
  16. package/dist/cjs/kompendium-component.entry.cjs.js.map +1 -0
  17. package/dist/cjs/kompendium-debug.cjs.entry.js +47 -0
  18. package/dist/cjs/kompendium-debug.entry.cjs.js.map +1 -0
  19. package/dist/cjs/kompendium-example-code.cjs.entry.js +20 -0
  20. package/dist/cjs/kompendium-example-code.entry.cjs.js.map +1 -0
  21. package/dist/cjs/kompendium-example-markdown.cjs.entry.js +165 -0
  22. package/dist/cjs/kompendium-example-markdown.entry.cjs.js.map +1 -0
  23. package/dist/cjs/kompendium-guide.cjs.entry.js +33 -0
  24. package/dist/cjs/kompendium-guide.entry.cjs.js.map +1 -0
  25. package/dist/cjs/kompendium-markdown.cjs.entry.js +48923 -0
  26. package/dist/cjs/kompendium-markdown.entry.cjs.js.map +1 -0
  27. package/dist/cjs/kompendium-playground.cjs.entry.js +89 -0
  28. package/dist/cjs/kompendium-playground.entry.cjs.js.map +1 -0
  29. package/dist/cjs/kompendium-proplist.kompendium-taglist.entry.cjs.js.map +1 -0
  30. package/dist/cjs/kompendium-proplist_2.cjs.entry.js +49 -0
  31. package/dist/cjs/kompendium-type.cjs.entry.js +83 -0
  32. package/dist/cjs/kompendium-type.entry.cjs.js.map +1 -0
  33. package/dist/cjs/kompendium.cjs.js +25 -0
  34. package/dist/cjs/kompendium.cjs.js.map +1 -0
  35. package/dist/cjs/loader.cjs.js +13 -0
  36. package/dist/cjs/loader.cjs.js.map +1 -0
  37. package/dist/cjs/markdown-types-B884tLd-.js +15 -0
  38. package/dist/cjs/markdown-types-B884tLd-.js.map +1 -0
  39. package/dist/cjs/methods-DoA78dOH.js +97 -0
  40. package/dist/cjs/methods-DoA78dOH.js.map +1 -0
  41. package/dist/cjs/types-SjA7Kcy_.js +8 -0
  42. package/dist/cjs/types-SjA7Kcy_.js.map +1 -0
  43. package/dist/collection/assets/favicon.svg +65 -0
  44. package/dist/collection/assets/icons/bookmark-fill.svg +1 -0
  45. package/dist/collection/assets/icons/danger.svg +1 -0
  46. package/dist/collection/assets/icons/debug.svg +1 -0
  47. package/dist/collection/assets/icons/important.svg +1 -0
  48. package/dist/collection/assets/icons/info.svg +1 -0
  49. package/dist/collection/assets/icons/logo.svg +1 -0
  50. package/dist/collection/assets/icons/note.svg +1 -0
  51. package/dist/collection/assets/icons/search.svg +1 -0
  52. package/dist/collection/assets/icons/tip.svg +1 -0
  53. package/dist/collection/assets/icons/warning.svg +1 -0
  54. package/dist/collection/assets/logotype.svg +64 -0
  55. package/dist/collection/collection-manifest.json +35 -0
  56. package/dist/collection/components/anchor-scroll.js +61 -0
  57. package/dist/collection/components/anchor-scroll.js.map +1 -0
  58. package/dist/collection/components/app/app.css +125 -0
  59. package/dist/collection/components/app/app.js +149 -0
  60. package/dist/collection/components/app/app.js.map +1 -0
  61. package/dist/collection/components/code/code.css +250 -0
  62. package/dist/collection/components/code/code.js +82 -0
  63. package/dist/collection/components/code/code.js.map +1 -0
  64. package/dist/collection/components/code/examples/code.js +14 -0
  65. package/dist/collection/components/code/examples/code.js.map +1 -0
  66. package/dist/collection/components/component/component.css +383 -0
  67. package/dist/collection/components/component/component.js +191 -0
  68. package/dist/collection/components/component/component.js.map +1 -0
  69. package/dist/collection/components/component/templates/events.js +32 -0
  70. package/dist/collection/components/component/templates/events.js.map +1 -0
  71. package/dist/collection/components/component/templates/examples.js +17 -0
  72. package/dist/collection/components/component/templates/examples.js.map +1 -0
  73. package/dist/collection/components/component/templates/methods.js +54 -0
  74. package/dist/collection/components/component/templates/methods.js.map +1 -0
  75. package/dist/collection/components/component/templates/props.js +36 -0
  76. package/dist/collection/components/component/templates/props.js.map +1 -0
  77. package/dist/collection/components/component/templates/slots.js +14 -0
  78. package/dist/collection/components/component/templates/slots.js.map +1 -0
  79. package/dist/collection/components/component/templates/style.js +14 -0
  80. package/dist/collection/components/component/templates/style.js.map +1 -0
  81. package/dist/collection/components/darkmode-switch/darkmode-switch.css +141 -0
  82. package/dist/collection/components/darkmode-switch/darkmode-switch.js +90 -0
  83. package/dist/collection/components/darkmode-switch/darkmode-switch.js.map +1 -0
  84. package/dist/collection/components/darkmode-switch/types.js +2 -0
  85. package/dist/collection/components/darkmode-switch/types.js.map +1 -0
  86. package/dist/collection/components/debug/debug.js +146 -0
  87. package/dist/collection/components/debug/debug.js.map +1 -0
  88. package/dist/collection/components/guide/guide.js +61 -0
  89. package/dist/collection/components/guide/guide.js.map +1 -0
  90. package/dist/collection/components/markdown/examples/markdown-example.js +150 -0
  91. package/dist/collection/components/markdown/examples/markdown-example.js.map +1 -0
  92. package/dist/collection/components/markdown/examples/markdown.js +14 -0
  93. package/dist/collection/components/markdown/examples/markdown.js.map +1 -0
  94. package/dist/collection/components/markdown/markdown-types.js +8 -0
  95. package/dist/collection/components/markdown/markdown-types.js.map +1 -0
  96. package/dist/collection/components/markdown/markdown.css +660 -0
  97. package/dist/collection/components/markdown/markdown.js +83 -0
  98. package/dist/collection/components/markdown/markdown.js.map +1 -0
  99. package/dist/collection/components/navigation/navigation.css +403 -0
  100. package/dist/collection/components/navigation/navigation.js +184 -0
  101. package/dist/collection/components/navigation/navigation.js.map +1 -0
  102. package/dist/collection/components/playground/playground.css +198 -0
  103. package/dist/collection/components/playground/playground.js +174 -0
  104. package/dist/collection/components/playground/playground.js.map +1 -0
  105. package/dist/collection/components/playground/playground.types.js +2 -0
  106. package/dist/collection/components/playground/playground.types.js.map +1 -0
  107. package/dist/collection/components/proplist/proplist.css +334 -0
  108. package/dist/collection/components/proplist/proplist.js +53 -0
  109. package/dist/collection/components/proplist/proplist.js.map +1 -0
  110. package/dist/collection/components/search/search.css +183 -0
  111. package/dist/collection/components/search/search.js +76 -0
  112. package/dist/collection/components/search/search.js.map +1 -0
  113. package/dist/collection/components/taglist/taglist.css +58 -0
  114. package/dist/collection/components/taglist/taglist.js +82 -0
  115. package/dist/collection/components/taglist/taglist.js.map +1 -0
  116. package/dist/collection/components/type/templates/alias.js +11 -0
  117. package/dist/collection/components/type/templates/alias.js.map +1 -0
  118. package/dist/collection/components/type/templates/enum.js +25 -0
  119. package/dist/collection/components/type/templates/enum.js.map +1 -0
  120. package/dist/collection/components/type/templates/interface.js +13 -0
  121. package/dist/collection/components/type/templates/interface.js.map +1 -0
  122. package/dist/collection/components/type/type.js +97 -0
  123. package/dist/collection/components/type/type.js.map +1 -0
  124. package/dist/collection/index.js +4 -0
  125. package/dist/collection/index.js.map +1 -0
  126. package/dist/collection/kompendium/config.js +7 -0
  127. package/dist/collection/kompendium/config.js.map +1 -0
  128. package/dist/collection/kompendium/filesystem.js +9 -0
  129. package/dist/collection/kompendium/filesystem.js.map +1 -0
  130. package/dist/collection/kompendium/generator.js +217 -0
  131. package/dist/collection/kompendium/generator.js.map +1 -0
  132. package/dist/collection/kompendium/guides.js +30 -0
  133. package/dist/collection/kompendium/guides.js.map +1 -0
  134. package/dist/collection/kompendium/index.js +2 -0
  135. package/dist/collection/kompendium/index.js.map +1 -0
  136. package/dist/collection/kompendium/markdown-admonitions.js +82 -0
  137. package/dist/collection/kompendium/markdown-admonitions.js.map +1 -0
  138. package/dist/collection/kompendium/markdown-code.js +40 -0
  139. package/dist/collection/kompendium/markdown-code.js.map +1 -0
  140. package/dist/collection/kompendium/markdown-frontmatter.js +12 -0
  141. package/dist/collection/kompendium/markdown-frontmatter.js.map +1 -0
  142. package/dist/collection/kompendium/markdown-nodes.js +10 -0
  143. package/dist/collection/kompendium/markdown-nodes.js.map +1 -0
  144. package/dist/collection/kompendium/markdown-typelinks.js +115 -0
  145. package/dist/collection/kompendium/markdown-typelinks.js.map +1 -0
  146. package/dist/collection/kompendium/markdown.js +35 -0
  147. package/dist/collection/kompendium/markdown.js.map +1 -0
  148. package/dist/collection/kompendium/menu.js +149 -0
  149. package/dist/collection/kompendium/menu.js.map +1 -0
  150. package/dist/collection/kompendium/schema.js +167 -0
  151. package/dist/collection/kompendium/schema.js.map +1 -0
  152. package/dist/collection/kompendium/search.js +144 -0
  153. package/dist/collection/kompendium/search.js.map +1 -0
  154. package/dist/collection/kompendium/source.js +81 -0
  155. package/dist/collection/kompendium/source.js.map +1 -0
  156. package/dist/collection/kompendium/test/fixtures/basic.js +48 -0
  157. package/dist/collection/kompendium/test/fixtures/basic.js.map +1 -0
  158. package/dist/collection/kompendium/test/fixtures/filtering/example-type.js +2 -0
  159. package/dist/collection/kompendium/test/fixtures/filtering/example-type.js.map +1 -0
  160. package/dist/collection/kompendium/test/fixtures/filtering/node-modules-type.js +2 -0
  161. package/dist/collection/kompendium/test/fixtures/filtering/node-modules-type.js.map +1 -0
  162. package/dist/collection/kompendium/test/fixtures/filtering/private-types.js +2 -0
  163. package/dist/collection/kompendium/test/fixtures/filtering/private-types.js.map +1 -0
  164. package/dist/collection/kompendium/test/fixtures/filtering/stencil-component-types.js +2 -0
  165. package/dist/collection/kompendium/test/fixtures/filtering/stencil-component-types.js.map +1 -0
  166. package/dist/collection/kompendium/test/fixtures/filtering/test-helper-type.js +2 -0
  167. package/dist/collection/kompendium/test/fixtures/filtering/test-helper-type.js.map +1 -0
  168. package/dist/collection/kompendium/test/fixtures/filtering/valid-types.js +29 -0
  169. package/dist/collection/kompendium/test/fixtures/filtering/valid-types.js.map +1 -0
  170. package/dist/collection/kompendium/typedoc.js +481 -0
  171. package/dist/collection/kompendium/typedoc.js.map +1 -0
  172. package/dist/collection/kompendium/watch.js +9 -0
  173. package/dist/collection/kompendium/watch.js.map +1 -0
  174. package/dist/collection/types.js +2 -0
  175. package/dist/collection/types.js.map +1 -0
  176. package/dist/config.ts +8 -0
  177. package/dist/esm/_commonjsHelpers-BFTU3MAI.js +10 -0
  178. package/dist/esm/_commonjsHelpers-BFTU3MAI.js.map +1 -0
  179. package/dist/esm/anchor-scroll-BAGXN2n6.js +65 -0
  180. package/dist/esm/anchor-scroll-BAGXN2n6.js.map +1 -0
  181. package/dist/esm/index-9UrzenzW.js +1857 -0
  182. package/dist/esm/index-9UrzenzW.js.map +1 -0
  183. package/dist/esm/index.js +2 -0
  184. package/dist/esm/index.js.map +1 -0
  185. package/dist/esm/kompendium-app.kompendium-darkmode-switch.kompendium-navigation.kompendium-search.stencil-route.stencil-route-switch.stencil-router.entry.js.map +1 -0
  186. package/dist/esm/kompendium-app_7.entry.js +2916 -0
  187. package/dist/esm/kompendium-code.entry.js +2722 -0
  188. package/dist/esm/kompendium-code.entry.js.map +1 -0
  189. package/dist/esm/kompendium-component.entry.js +205 -0
  190. package/dist/esm/kompendium-component.entry.js.map +1 -0
  191. package/dist/esm/kompendium-debug.entry.js +45 -0
  192. package/dist/esm/kompendium-debug.entry.js.map +1 -0
  193. package/dist/esm/kompendium-example-code.entry.js +18 -0
  194. package/dist/esm/kompendium-example-code.entry.js.map +1 -0
  195. package/dist/esm/kompendium-example-markdown.entry.js +163 -0
  196. package/dist/esm/kompendium-example-markdown.entry.js.map +1 -0
  197. package/dist/esm/kompendium-guide.entry.js +31 -0
  198. package/dist/esm/kompendium-guide.entry.js.map +1 -0
  199. package/dist/esm/kompendium-markdown.entry.js +48921 -0
  200. package/dist/esm/kompendium-markdown.entry.js.map +1 -0
  201. package/dist/esm/kompendium-playground.entry.js +87 -0
  202. package/dist/esm/kompendium-playground.entry.js.map +1 -0
  203. package/dist/esm/kompendium-proplist.kompendium-taglist.entry.js.map +1 -0
  204. package/dist/esm/kompendium-proplist_2.entry.js +46 -0
  205. package/dist/esm/kompendium-type.entry.js +81 -0
  206. package/dist/esm/kompendium-type.entry.js.map +1 -0
  207. package/dist/esm/kompendium.js +21 -0
  208. package/dist/esm/kompendium.js.map +1 -0
  209. package/dist/esm/loader.js +11 -0
  210. package/dist/esm/loader.js.map +1 -0
  211. package/dist/esm/markdown-types-Ajsawr_9.js +12 -0
  212. package/dist/esm/markdown-types-Ajsawr_9.js.map +1 -0
  213. package/dist/esm/methods-BAjd6f7g.js +94 -0
  214. package/dist/esm/methods-BAjd6f7g.js.map +1 -0
  215. package/dist/esm/types-BIPLEi1G.js +6 -0
  216. package/dist/esm/types-BIPLEi1G.js.map +1 -0
  217. package/dist/filesystem.ts +9 -0
  218. package/dist/generator.ts +302 -0
  219. package/dist/guides.ts +49 -0
  220. package/dist/index.cjs.js +1 -0
  221. package/dist/index.js +1 -0
  222. package/dist/index.ts +1 -0
  223. package/dist/kompendium/index.esm.js +2 -0
  224. package/dist/kompendium/index.esm.js.map +1 -0
  225. package/dist/kompendium/kompendium-app.kompendium-darkmode-switch.kompendium-navigation.kompendium-search.stencil-route.stencil-route-switch.stencil-router.entry.esm.js.map +1 -0
  226. package/dist/kompendium/kompendium-code.entry.esm.js.map +1 -0
  227. package/dist/kompendium/kompendium-component.entry.esm.js.map +1 -0
  228. package/dist/kompendium/kompendium-debug.entry.esm.js.map +1 -0
  229. package/dist/kompendium/kompendium-example-code.entry.esm.js.map +1 -0
  230. package/dist/kompendium/kompendium-example-markdown.entry.esm.js.map +1 -0
  231. package/dist/kompendium/kompendium-guide.entry.esm.js.map +1 -0
  232. package/dist/kompendium/kompendium-markdown.entry.esm.js.map +1 -0
  233. package/dist/kompendium/kompendium-playground.entry.esm.js.map +1 -0
  234. package/dist/kompendium/kompendium-proplist.kompendium-taglist.entry.esm.js.map +1 -0
  235. package/dist/kompendium/kompendium-type.entry.esm.js.map +1 -0
  236. package/dist/kompendium/kompendium.css +47 -0
  237. package/dist/kompendium/kompendium.esm.js +2 -0
  238. package/dist/kompendium/kompendium.esm.js.map +1 -0
  239. package/dist/kompendium/loader.esm.js.map +1 -0
  240. package/dist/kompendium/p-15e4b2c0.entry.js +2 -0
  241. package/dist/kompendium/p-15e4b2c0.entry.js.map +1 -0
  242. package/dist/kompendium/p-1cf0168f.entry.js +2 -0
  243. package/dist/kompendium/p-1cf0168f.entry.js.map +1 -0
  244. package/dist/kompendium/p-29c23c89.entry.js +2 -0
  245. package/dist/kompendium/p-29c23c89.entry.js.map +1 -0
  246. package/dist/kompendium/p-3981d11f.entry.js +2 -0
  247. package/dist/kompendium/p-3981d11f.entry.js.map +1 -0
  248. package/dist/kompendium/p-93f0548d.entry.js +2 -0
  249. package/dist/kompendium/p-93f0548d.entry.js.map +1 -0
  250. package/dist/kompendium/p-97b02575.entry.js +2 -0
  251. package/dist/kompendium/p-97b02575.entry.js.map +1 -0
  252. package/dist/kompendium/p-9UrzenzW.js +3 -0
  253. package/dist/kompendium/p-9UrzenzW.js.map +1 -0
  254. package/dist/kompendium/p-Ajsawr_9.js +2 -0
  255. package/dist/kompendium/p-Ajsawr_9.js.map +1 -0
  256. package/dist/kompendium/p-BAGXN2n6.js +2 -0
  257. package/dist/kompendium/p-BAGXN2n6.js.map +1 -0
  258. package/dist/kompendium/p-BFTU3MAI.js +2 -0
  259. package/dist/kompendium/p-BFTU3MAI.js.map +1 -0
  260. package/dist/kompendium/p-BIPLEi1G.js +2 -0
  261. package/dist/kompendium/p-BIPLEi1G.js.map +1 -0
  262. package/dist/kompendium/p-CnQEA7KO.js +2 -0
  263. package/dist/kompendium/p-CnQEA7KO.js.map +1 -0
  264. package/dist/kompendium/p-b0f95bd6.entry.js +2 -0
  265. package/dist/kompendium/p-b0f95bd6.entry.js.map +1 -0
  266. package/dist/kompendium/p-d9bcc473.entry.js +10 -0
  267. package/dist/kompendium/p-d9bcc473.entry.js.map +1 -0
  268. package/dist/kompendium/p-e36f3f1e.entry.js +2 -0
  269. package/dist/kompendium/p-e36f3f1e.entry.js.map +1 -0
  270. package/dist/kompendium/p-e52a2f57.entry.js +2 -0
  271. package/dist/kompendium/p-e52a2f57.entry.js.map +1 -0
  272. package/dist/kompendium/p-ec5861de.entry.js +2 -0
  273. package/dist/kompendium/p-ec5861de.entry.js.map +1 -0
  274. package/dist/markdown-admonitions.ts +112 -0
  275. package/dist/markdown-code.ts +51 -0
  276. package/dist/markdown-frontmatter.ts +19 -0
  277. package/dist/markdown-nodes.ts +23 -0
  278. package/dist/markdown-typelinks.ts +166 -0
  279. package/dist/markdown.ts +49 -0
  280. package/dist/menu.ts +189 -0
  281. package/dist/schema.ts +233 -0
  282. package/dist/search.ts +197 -0
  283. package/dist/source.ts +129 -0
  284. package/dist/typedoc.ts +665 -0
  285. package/dist/types/components/anchor-scroll.d.ts +36 -0
  286. package/dist/types/components/app/app.d.ts +22 -0
  287. package/dist/types/components/code/code.d.ts +26 -0
  288. package/dist/types/components/code/examples/code.d.ts +3 -0
  289. package/dist/types/components/component/component.d.ts +32 -0
  290. package/dist/types/components/component/templates/events.d.ts +5 -0
  291. package/dist/types/components/component/templates/examples.d.ts +9 -0
  292. package/dist/types/components/component/templates/methods.d.ts +5 -0
  293. package/dist/types/components/component/templates/props.d.ts +5 -0
  294. package/dist/types/components/component/templates/slots.d.ts +5 -0
  295. package/dist/types/components/component/templates/style.d.ts +5 -0
  296. package/dist/types/components/darkmode-switch/darkmode-switch.d.ts +18 -0
  297. package/dist/types/components/darkmode-switch/types.d.ts +2 -0
  298. package/dist/types/components/debug/debug.d.ts +24 -0
  299. package/dist/types/components/guide/guide.d.ts +14 -0
  300. package/dist/types/components/markdown/examples/markdown-example.d.ts +1 -0
  301. package/dist/types/components/markdown/examples/markdown.d.ts +7 -0
  302. package/dist/types/components/markdown/markdown-types.d.ts +2 -0
  303. package/dist/types/components/markdown/markdown.d.ts +20 -0
  304. package/dist/types/components/navigation/navigation.d.ts +35 -0
  305. package/dist/types/components/playground/playground.d.ts +32 -0
  306. package/dist/types/components/playground/playground.types.d.ts +1 -0
  307. package/dist/types/components/proplist/proplist.d.ts +12 -0
  308. package/dist/types/components/search/search.d.ts +15 -0
  309. package/dist/types/components/taglist/taglist.d.ts +16 -0
  310. package/dist/types/components/type/templates/alias.d.ts +4 -0
  311. package/dist/types/components/type/templates/enum.d.ts +4 -0
  312. package/dist/types/components/type/templates/interface.d.ts +4 -0
  313. package/dist/types/components/type/type.d.ts +15 -0
  314. package/dist/types/components.d.ts +517 -0
  315. package/dist/types/index.d.ts +5 -0
  316. package/dist/types/kompendium/config.d.ts +2 -0
  317. package/dist/types/kompendium/filesystem.d.ts +1 -0
  318. package/dist/types/kompendium/generator.d.ts +4 -0
  319. package/dist/types/kompendium/guides.d.ts +9 -0
  320. package/dist/types/kompendium/index.d.ts +1 -0
  321. package/dist/types/kompendium/markdown-admonitions.d.ts +3 -0
  322. package/dist/types/kompendium/markdown-code.d.ts +2 -0
  323. package/dist/types/kompendium/markdown-frontmatter.d.ts +6 -0
  324. package/dist/types/kompendium/markdown-nodes.d.ts +12 -0
  325. package/dist/types/kompendium/markdown-typelinks.d.ts +21 -0
  326. package/dist/types/kompendium/markdown.d.ts +8 -0
  327. package/dist/types/kompendium/menu.d.ts +12 -0
  328. package/dist/types/kompendium/schema.d.ts +9 -0
  329. package/dist/types/kompendium/search.d.ts +3 -0
  330. package/dist/types/kompendium/source.d.ts +10 -0
  331. package/dist/types/kompendium/test/fixtures/basic.d.ts +65 -0
  332. package/dist/types/kompendium/test/fixtures/filtering/example-type.d.ts +8 -0
  333. package/dist/types/kompendium/test/fixtures/filtering/node-modules-type.d.ts +8 -0
  334. package/dist/types/kompendium/test/fixtures/filtering/private-types.d.ts +23 -0
  335. package/dist/types/kompendium/test/fixtures/filtering/stencil-component-types.d.ts +19 -0
  336. package/dist/types/kompendium/test/fixtures/filtering/test-helper-type.d.ts +8 -0
  337. package/dist/types/kompendium/test/fixtures/filtering/valid-types.d.ts +42 -0
  338. package/dist/types/kompendium/typedoc.d.ts +2 -0
  339. package/dist/types/kompendium/watch.d.ts +1 -0
  340. package/dist/types/stencil-public-runtime.d.ts +1746 -0
  341. package/dist/types/types.d.ts +119 -0
  342. package/dist/watch.ts +14 -0
  343. package/loader/cdn.js +1 -0
  344. package/loader/index.cjs.js +1 -0
  345. package/loader/index.d.ts +24 -0
  346. package/loader/index.es2017.js +1 -0
  347. package/loader/index.js +2 -0
  348. package/package.json +116 -0
@@ -0,0 +1,167 @@
1
+ import { isExample } from "./menu";
2
+ import negate from "lodash/negate";
3
+ import startCase from "lodash/startCase";
4
+ import zipObject from "lodash/zipObject";
5
+ import pick from "lodash/pick";
6
+ const ARRAY_PATTERN = /^(\w+)(<\w+>)?\[\]$|^Array<(.+)>$/;
7
+ const ENUM_PATTERN = /["'](\w+)["']\s?\|?/g;
8
+ const ID_PATTERN = /^number \| string$|string \| number$/g;
9
+ const TS_UTILITY_PATTERN = /(Partial|Required|Readonly|Array)<(.+?)>/g;
10
+ /**
11
+ * Create schemas for the components that describe their interface
12
+ * @param {JsonDocsComponent[]} components the components
13
+ * @param {TypeDescription[]} types type definitions
14
+ * @returns {*} list of schemas for the components
15
+ */
16
+ export function createSchemas(components, types) {
17
+ var _a;
18
+ const componentSchemas = (components === null || components === void 0 ? void 0 : components.filter(negate(isExample)).map(createSchema(types))) || [];
19
+ const classSchemas = ((_a = types === null || types === void 0 ? void 0 : types.filter(isClass)) === null || _a === void 0 ? void 0 : _a.map(createSchema(types))) || [];
20
+ return [...componentSchemas, ...classSchemas];
21
+ }
22
+ const createSchema = (types) => (object) => {
23
+ const definitions = createDefinitions(types);
24
+ const properties = createProps(object.props, definitions);
25
+ const schema = {
26
+ type: 'object',
27
+ $id: getSchemaId(object),
28
+ properties: properties,
29
+ };
30
+ const data = JSON.stringify(properties);
31
+ const definitionKeys = Object.keys(definitions).filter(isReferenceUsed(data));
32
+ if (definitionKeys.length > 0) {
33
+ schema.definitions = pick(definitions, definitionKeys);
34
+ }
35
+ return schema;
36
+ };
37
+ function getSchemaId(object) {
38
+ if (isClass(object)) {
39
+ return object.name;
40
+ }
41
+ return object.tag;
42
+ }
43
+ function createDefinitions(types) {
44
+ const interfaces = types.filter((type) => type.type === 'interface');
45
+ const keys = interfaces.map((i) => i.name);
46
+ const schemas = interfaces.map((i) => {
47
+ return {
48
+ type: 'object',
49
+ properties: createProps(i.props, {}),
50
+ };
51
+ });
52
+ return zipObject(keys, schemas);
53
+ }
54
+ function createProps(props, definitions) {
55
+ const keys = (props === null || props === void 0 ? void 0 : props.map((prop) => prop.name)) || [];
56
+ const schemas = (props === null || props === void 0 ? void 0 : props.map(createPropSchema(definitions))) || [];
57
+ return zipObject(keys, schemas);
58
+ }
59
+ const createPropSchema = (definitions) => (prop) => {
60
+ const schema = {
61
+ type: getSchemaType(prop.type),
62
+ title: startCase(prop.name),
63
+ description: prop.docs,
64
+ };
65
+ if (prop.default) {
66
+ schema.default = getDefaultValue(prop.default, schema.type);
67
+ }
68
+ if (schema.type === 'array') {
69
+ schema.items = getSchemaItems(prop.type, definitions);
70
+ }
71
+ if (schema.type === 'object') {
72
+ const ref = getSchemaPropertiesRef(prop.type, definitions);
73
+ if (ref) {
74
+ schema.$ref = ref;
75
+ }
76
+ else {
77
+ schema.additionalProperties = true;
78
+ }
79
+ }
80
+ if (schema.type === 'string') {
81
+ const oneOf = getOneOf(prop.type);
82
+ if (oneOf) {
83
+ schema.oneOf = oneOf;
84
+ }
85
+ }
86
+ return schema;
87
+ };
88
+ function getDefaultValue(value, type) {
89
+ if (type === 'boolean') {
90
+ return value === 'true';
91
+ }
92
+ if (type === 'number') {
93
+ return Number(value);
94
+ }
95
+ if (type !== 'string') {
96
+ return;
97
+ }
98
+ if (value === 'null') {
99
+ return;
100
+ }
101
+ return value;
102
+ }
103
+ function getSchemaType(propType) {
104
+ if (['string', 'number', 'boolean'].includes(propType)) {
105
+ return propType;
106
+ }
107
+ if (propType.match(ARRAY_PATTERN)) {
108
+ return 'array';
109
+ }
110
+ if (propType.match(ENUM_PATTERN) || propType.match(ID_PATTERN)) {
111
+ return 'string';
112
+ }
113
+ return 'object';
114
+ }
115
+ function getSchemaItems(propType, definitions) {
116
+ const result = propType.match(ARRAY_PATTERN);
117
+ const type = getSchemaType(result[1] || result[3]);
118
+ const items = {
119
+ type: type,
120
+ };
121
+ if (type === 'object') {
122
+ const ref = getSchemaPropertiesRef(result[1] || result[3], definitions);
123
+ if (ref) {
124
+ items.$ref = ref;
125
+ }
126
+ else {
127
+ items.additionalProperties = true;
128
+ }
129
+ }
130
+ return items;
131
+ }
132
+ function getSchemaPropertiesRef(propType, definitions) {
133
+ const definition = Object.keys(definitions).find((key) => key === propType);
134
+ if (definition) {
135
+ return '#/definitions/' + definition;
136
+ }
137
+ const type = propType.replace(TS_UTILITY_PATTERN, '$2');
138
+ if (type === propType) {
139
+ return;
140
+ }
141
+ return getSchemaPropertiesRef(type, definitions);
142
+ }
143
+ function getOneOf(propType) {
144
+ if (!ENUM_PATTERN.test(propType)) {
145
+ return;
146
+ }
147
+ const oneOf = propType.split('|').map((token) => {
148
+ const value = token.trim().replace(/["']/g, '');
149
+ return {
150
+ type: 'string',
151
+ const: value,
152
+ title: value,
153
+ };
154
+ });
155
+ if (!oneOf.length) {
156
+ return;
157
+ }
158
+ return oneOf;
159
+ }
160
+ const isReferenceUsed = (data) => (name) => {
161
+ const ref = '#/definitions/' + name;
162
+ return data.includes(ref);
163
+ };
164
+ function isClass(type) {
165
+ return type.type === 'class';
166
+ }
167
+ //# sourceMappingURL=schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/kompendium/schema.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACnC,OAAO,MAAM,MAAM,eAAe,CAAC;AACnC,OAAO,SAAS,MAAM,kBAAkB,CAAC;AACzC,OAAO,SAAS,MAAM,kBAAkB,CAAC;AACzC,OAAO,IAAI,MAAM,aAAa,CAAC;AAE/B,MAAM,aAAa,GAAG,mCAAmC,CAAC;AAC1D,MAAM,YAAY,GAAG,sBAAsB,CAAC;AAC5C,MAAM,UAAU,GAAG,uCAAuC,CAAC;AAC3D,MAAM,kBAAkB,GAAG,2CAA2C,CAAC;AAEvE;;;;;GAKG;AACH,MAAM,UAAU,aAAa,CACzB,UAA+B,EAC/B,KAAwB;;IAExB,MAAM,gBAAgB,GAClB,CAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,KAAI,EAAE,CAAC;IACzE,MAAM,YAAY,GAAG,CAAA,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,MAAM,CAAC,OAAO,CAAC,0CAAE,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,KAAI,EAAE,CAAC;IAE5E,OAAO,CAAC,GAAG,gBAAgB,EAAE,GAAG,YAAY,CAAC,CAAC;AAClD,CAAC;AAED,MAAM,YAAY,GACd,CAAC,KAAwB,EAAE,EAAE,CAC7B,CAAC,MAA4C,EAAE,EAAE;IAC7C,MAAM,WAAW,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;IAC7C,MAAM,UAAU,GAAG,WAAW,CAAC,MAAM,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;IAE1D,MAAM,MAAM,GAAQ;QAChB,IAAI,EAAE,QAAQ;QACd,GAAG,EAAE,WAAW,CAAC,MAAM,CAAC;QACxB,UAAU,EAAE,UAAU;KACzB,CAAC;IAEF,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;IACxC,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,CAClD,eAAe,CAAC,IAAI,CAAC,CACxB,CAAC;IAEF,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5B,MAAM,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;IAC3D,CAAC;IAED,OAAO,MAAM,CAAC;AAClB,CAAC,CAAC;AAEN,SAAS,WAAW,CAAC,MAA4C;IAC7D,IAAI,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAClB,OAAO,MAAM,CAAC,IAAI,CAAC;IACvB,CAAC;IAED,OAAO,MAAM,CAAC,GAAG,CAAC;AACtB,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAwB;IAC/C,MAAM,UAAU,GAA2B,KAAK,CAAC,MAAM,CACnD,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,WAAW,CAC/B,CAAC;IACT,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAC3C,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACjC,OAAO;YACH,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE,WAAW,CAAC,CAAC,CAAC,KAAuB,EAAE,EAAE,CAAC;SACzD,CAAC;IACN,CAAC,CAAC,CAAC;IAEH,OAAO,SAAS,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AACpC,CAAC;AAED,SAAS,WAAW,CAChB,KAAmC,EACnC,WAAgC;IAEhC,MAAM,IAAI,GAAG,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,KAAI,EAAE,CAAC;IACnD,MAAM,OAAO,GAAG,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,GAAG,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC,KAAI,EAAE,CAAC;IAEhE,OAAO,SAAS,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AACpC,CAAC;AAED,MAAM,gBAAgB,GAClB,CAAC,WAAgC,EAAE,EAAE,CAAC,CAAC,IAAkB,EAAE,EAAE;IACzD,MAAM,MAAM,GAAQ;QAChB,IAAI,EAAE,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC;QAC9B,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC;QAC3B,WAAW,EAAE,IAAI,CAAC,IAAI;KACzB,CAAC;IAEF,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;QACf,MAAM,CAAC,OAAO,GAAG,eAAe,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;IAChE,CAAC;IAED,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAC1B,MAAM,CAAC,KAAK,GAAG,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IAC1D,CAAC;IAED,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC3B,MAAM,GAAG,GAAG,sBAAsB,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;QAE3D,IAAI,GAAG,EAAE,CAAC;YACN,MAAM,CAAC,IAAI,GAAG,GAAG,CAAC;QACtB,CAAC;aAAM,CAAC;YACJ,MAAM,CAAC,oBAAoB,GAAG,IAAI,CAAC;QACvC,CAAC;IACL,CAAC;IAED,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC3B,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAElC,IAAI,KAAK,EAAE,CAAC;YACR,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC;QACzB,CAAC;IACL,CAAC;IAED,OAAO,MAAM,CAAC;AAClB,CAAC,CAAC;AAEN,SAAS,eAAe,CAAC,KAAU,EAAE,IAAY;IAC7C,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACrB,OAAO,KAAK,KAAK,MAAM,CAAC;IAC5B,CAAC;IAED,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;QACpB,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;IACzB,CAAC;IAED,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;QACpB,OAAO;IACX,CAAC;IAED,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;QACnB,OAAO;IACX,CAAC;IAED,OAAO,KAAK,CAAC;AACjB,CAAC;AAED,SAAS,aAAa,CAAC,QAAgB;IACnC,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QACrD,OAAO,QAAQ,CAAC;IACpB,CAAC;IAED,IAAI,QAAQ,CAAC,KAAK,CAAC,aAAa,CAAC,EAAE,CAAC;QAChC,OAAO,OAAO,CAAC;IACnB,CAAC;IAED,IAAI,QAAQ,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC;QAC7D,OAAO,QAAQ,CAAC;IACpB,CAAC;IAED,OAAO,QAAQ,CAAC;AACpB,CAAC;AAED,SAAS,cAAc,CAAC,QAAgB,EAAE,WAAgC;IACtE,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;IAC7C,MAAM,IAAI,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IAEnD,MAAM,KAAK,GAAQ;QACf,IAAI,EAAE,IAAI;KACb,CAAC;IAEF,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;QACpB,MAAM,GAAG,GAAG,sBAAsB,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;QAExE,IAAI,GAAG,EAAE,CAAC;YACN,KAAK,CAAC,IAAI,GAAG,GAAG,CAAC;QACrB,CAAC;aAAM,CAAC;YACJ,KAAK,CAAC,oBAAoB,GAAG,IAAI,CAAC;QACtC,CAAC;IACL,CAAC;IAED,OAAO,KAAK,CAAC;AACjB,CAAC;AAED,SAAS,sBAAsB,CAC3B,QAAgB,EAChB,WAAgC;IAEhC,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,KAAK,QAAQ,CAAC,CAAC;IAC5E,IAAI,UAAU,EAAE,CAAC;QACb,OAAO,gBAAgB,GAAG,UAAU,CAAC;IACzC,CAAC;IAED,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,kBAAkB,EAAE,IAAI,CAAC,CAAC;IACxD,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;QACpB,OAAO;IACX,CAAC;IAED,OAAO,sBAAsB,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;AACrD,CAAC;AAED,SAAS,QAAQ,CAAC,QAAgB;IAC9B,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC/B,OAAO;IACX,CAAC;IAED,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QAC5C,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QAEhD,OAAO;YACH,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE,KAAK;YACZ,KAAK,EAAE,KAAK;SACf,CAAC;IACN,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;QAChB,OAAO;IACX,CAAC;IAED,OAAO,KAAK,CAAC;AACjB,CAAC;AAED,MAAM,eAAe,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,CAAC,IAAY,EAAE,EAAE;IACvD,MAAM,GAAG,GAAG,gBAAgB,GAAG,IAAI,CAAC;IAEpC,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AAC9B,CAAC,CAAC;AAEF,SAAS,OAAO,CAAC,IAAS;IACtB,OAAO,IAAI,CAAC,IAAI,KAAK,OAAO,CAAC;AACjC,CAAC","sourcesContent":["import { JsonDocsComponent, JsonDocsProp } from '@stencil/core/internal';\nimport {\n ClassDescription,\n InterfaceDescription,\n TypeDescription,\n} from '../types';\nimport { isExample } from './menu';\nimport negate from 'lodash/negate';\nimport startCase from 'lodash/startCase';\nimport zipObject from 'lodash/zipObject';\nimport pick from 'lodash/pick';\n\nconst ARRAY_PATTERN = /^(\\w+)(<\\w+>)?\\[\\]$|^Array<(.+)>$/;\nconst ENUM_PATTERN = /[\"'](\\w+)[\"']\\s?\\|?/g;\nconst ID_PATTERN = /^number \\| string$|string \\| number$/g;\nconst TS_UTILITY_PATTERN = /(Partial|Required|Readonly|Array)<(.+?)>/g;\n\n/**\n * Create schemas for the components that describe their interface\n * @param {JsonDocsComponent[]} components the components\n * @param {TypeDescription[]} types type definitions\n * @returns {*} list of schemas for the components\n */\nexport function createSchemas(\n components: JsonDocsComponent[],\n types: TypeDescription[],\n): Array<Record<string, any>> {\n const componentSchemas =\n components?.filter(negate(isExample)).map(createSchema(types)) || [];\n const classSchemas = types?.filter(isClass)?.map(createSchema(types)) || [];\n\n return [...componentSchemas, ...classSchemas];\n}\n\nconst createSchema =\n (types: TypeDescription[]) =>\n (object: JsonDocsComponent | ClassDescription) => {\n const definitions = createDefinitions(types);\n const properties = createProps(object.props, definitions);\n\n const schema: any = {\n type: 'object',\n $id: getSchemaId(object),\n properties: properties,\n };\n\n const data = JSON.stringify(properties);\n const definitionKeys = Object.keys(definitions).filter(\n isReferenceUsed(data),\n );\n\n if (definitionKeys.length > 0) {\n schema.definitions = pick(definitions, definitionKeys);\n }\n\n return schema;\n };\n\nfunction getSchemaId(object: JsonDocsComponent | ClassDescription): string {\n if (isClass(object)) {\n return object.name;\n }\n\n return object.tag;\n}\n\nfunction createDefinitions(types: TypeDescription[]): Record<string, any> {\n const interfaces: InterfaceDescription[] = types.filter(\n (type) => type.type === 'interface',\n ) as any;\n const keys = interfaces.map((i) => i.name);\n const schemas = interfaces.map((i) => {\n return {\n type: 'object',\n properties: createProps(i.props as JsonDocsProp[], {}),\n };\n });\n\n return zipObject(keys, schemas);\n}\n\nfunction createProps(\n props: Array<Partial<JsonDocsProp>>,\n definitions: Record<string, any>,\n) {\n const keys = props?.map((prop) => prop.name) || [];\n const schemas = props?.map(createPropSchema(definitions)) || [];\n\n return zipObject(keys, schemas);\n}\n\nconst createPropSchema =\n (definitions: Record<string, any>) => (prop: JsonDocsProp) => {\n const schema: any = {\n type: getSchemaType(prop.type),\n title: startCase(prop.name),\n description: prop.docs,\n };\n\n if (prop.default) {\n schema.default = getDefaultValue(prop.default, schema.type);\n }\n\n if (schema.type === 'array') {\n schema.items = getSchemaItems(prop.type, definitions);\n }\n\n if (schema.type === 'object') {\n const ref = getSchemaPropertiesRef(prop.type, definitions);\n\n if (ref) {\n schema.$ref = ref;\n } else {\n schema.additionalProperties = true;\n }\n }\n\n if (schema.type === 'string') {\n const oneOf = getOneOf(prop.type);\n\n if (oneOf) {\n schema.oneOf = oneOf;\n }\n }\n\n return schema;\n };\n\nfunction getDefaultValue(value: any, type: string) {\n if (type === 'boolean') {\n return value === 'true';\n }\n\n if (type === 'number') {\n return Number(value);\n }\n\n if (type !== 'string') {\n return;\n }\n\n if (value === 'null') {\n return;\n }\n\n return value;\n}\n\nfunction getSchemaType(propType: string) {\n if (['string', 'number', 'boolean'].includes(propType)) {\n return propType;\n }\n\n if (propType.match(ARRAY_PATTERN)) {\n return 'array';\n }\n\n if (propType.match(ENUM_PATTERN) || propType.match(ID_PATTERN)) {\n return 'string';\n }\n\n return 'object';\n}\n\nfunction getSchemaItems(propType: string, definitions: Record<string, any>) {\n const result = propType.match(ARRAY_PATTERN);\n const type = getSchemaType(result[1] || result[3]);\n\n const items: any = {\n type: type,\n };\n\n if (type === 'object') {\n const ref = getSchemaPropertiesRef(result[1] || result[3], definitions);\n\n if (ref) {\n items.$ref = ref;\n } else {\n items.additionalProperties = true;\n }\n }\n\n return items;\n}\n\nfunction getSchemaPropertiesRef(\n propType: string,\n definitions: Record<string, any>,\n): string {\n const definition = Object.keys(definitions).find((key) => key === propType);\n if (definition) {\n return '#/definitions/' + definition;\n }\n\n const type = propType.replace(TS_UTILITY_PATTERN, '$2');\n if (type === propType) {\n return;\n }\n\n return getSchemaPropertiesRef(type, definitions);\n}\n\nfunction getOneOf(propType: string) {\n if (!ENUM_PATTERN.test(propType)) {\n return;\n }\n\n const oneOf = propType.split('|').map((token) => {\n const value = token.trim().replace(/[\"']/g, '');\n\n return {\n type: 'string',\n const: value,\n title: value,\n };\n });\n\n if (!oneOf.length) {\n return;\n }\n\n return oneOf;\n}\n\nconst isReferenceUsed = (data: string) => (name: string) => {\n const ref = '#/definitions/' + name;\n\n return data.includes(ref);\n};\n\nfunction isClass(type: any): type is ClassDescription {\n return type.type === 'class';\n}\n"]}
@@ -0,0 +1,144 @@
1
+ import Fuse from "fuse.js";
2
+ export function createIndex(data) {
3
+ const docs = createDocs(data);
4
+ const keys = [
5
+ 'tags',
6
+ 'title',
7
+ 'path',
8
+ 'text',
9
+ 'props.name',
10
+ 'props.text',
11
+ 'props.tags',
12
+ 'props.type',
13
+ 'events.name',
14
+ 'events.text',
15
+ 'events.tags',
16
+ 'events.type',
17
+ ];
18
+ const index = Fuse.createIndex(keys, docs);
19
+ return {
20
+ documents: docs,
21
+ data: index.toJSON(),
22
+ };
23
+ }
24
+ function createDocs(data) {
25
+ return Array.from(createDocuments(data.menu, data));
26
+ }
27
+ export function* createDocuments(items, data) {
28
+ var _a;
29
+ for (const item of items) {
30
+ if (isIndexable(item)) {
31
+ const document = createDocument(item, data);
32
+ if (document) {
33
+ yield document;
34
+ }
35
+ }
36
+ if ((_a = item.children) === null || _a === void 0 ? void 0 : _a.length) {
37
+ yield* createDocuments(item.children, data);
38
+ }
39
+ }
40
+ }
41
+ function isIndexable(item) {
42
+ var _a, _b;
43
+ if ((_a = item.path) === null || _a === void 0 ? void 0 : _a.match(/^\/component\/[\w-]+\/$/)) {
44
+ return true;
45
+ }
46
+ return !!((_b = item.children) === null || _b === void 0 ? void 0 : _b.length);
47
+ }
48
+ function createDocument(item, data) {
49
+ var _a, _b;
50
+ if ((_a = item.path) === null || _a === void 0 ? void 0 : _a.startsWith('/component/')) {
51
+ return createComponentDocument(item, data);
52
+ }
53
+ else if ((_b = item.path) === null || _b === void 0 ? void 0 : _b.startsWith('/type/')) {
54
+ return createTypeDocument(item, data);
55
+ }
56
+ return createGuideDocument(item, data);
57
+ }
58
+ function createComponentDocument(item, data) {
59
+ const tag = item.path.split('/')[2];
60
+ const component = data.docs.components.find((c) => c.tag === tag);
61
+ if (!component) {
62
+ return;
63
+ }
64
+ const examples = findExamples(component, data.docs);
65
+ return {
66
+ path: item.path,
67
+ title: item.title,
68
+ text: [component.docs, ...examples.map((e) => e.docs)],
69
+ props: component.props.map(createPropDocument),
70
+ events: component.events.map(createPropDocument),
71
+ tags: component.docsTags.map(createTagDocument),
72
+ };
73
+ }
74
+ function createTypeDocument(item, data) {
75
+ var _a;
76
+ const type = (_a = data.types) === null || _a === void 0 ? void 0 : _a.find((t) => t.name === item.title);
77
+ if ((type === null || type === void 0 ? void 0 : type.type) === 'interface') {
78
+ return createInterfaceDocument(item, type);
79
+ }
80
+ else if ((type === null || type === void 0 ? void 0 : type.type) === 'alias') {
81
+ return createAliasDocument(item, type);
82
+ }
83
+ else if ((type === null || type === void 0 ? void 0 : type.type) === 'enum') {
84
+ return createEnumDocument(item, type);
85
+ }
86
+ }
87
+ function createGuideDocument(item, data) {
88
+ var _a;
89
+ const guide = (_a = data.guides) === null || _a === void 0 ? void 0 : _a.find((g) => g.data.path === item.path);
90
+ return {
91
+ path: item.path,
92
+ title: item.title,
93
+ text: guide === null || guide === void 0 ? void 0 : guide.content,
94
+ };
95
+ }
96
+ function createInterfaceDocument(item, type) {
97
+ var _a;
98
+ return {
99
+ path: item.path,
100
+ title: item.title,
101
+ text: type.docs,
102
+ props: type.props.map(createPropDocument),
103
+ tags: (_a = type.docsTags) === null || _a === void 0 ? void 0 : _a.map(createTagDocument),
104
+ };
105
+ }
106
+ function createAliasDocument(item, type) {
107
+ return {
108
+ path: item.path,
109
+ title: item.title,
110
+ text: type.docs,
111
+ };
112
+ }
113
+ // eslint-disable-next-line sonarjs/no-identical-functions
114
+ function createEnumDocument(item, type) {
115
+ return {
116
+ path: item.path,
117
+ title: item.title,
118
+ text: type.docs,
119
+ };
120
+ }
121
+ function findExamples(component, docs) {
122
+ return component.docsTags
123
+ .filter(isTag('exampleComponent'))
124
+ .map(findComponentByTag(docs));
125
+ }
126
+ const findComponentByTag = (docs) => (tag) => {
127
+ return docs.components.find((component) => component.tag === tag.text);
128
+ };
129
+ const isTag = (name) => (tag) => {
130
+ return tag.name === name;
131
+ };
132
+ function createPropDocument(prop) {
133
+ var _a;
134
+ return {
135
+ name: prop.name || prop.event,
136
+ tags: (_a = prop.docsTags) === null || _a === void 0 ? void 0 : _a.map(createTagDocument),
137
+ text: prop.docs,
138
+ type: (prop === null || prop === void 0 ? void 0 : prop.type) || prop.detail,
139
+ };
140
+ }
141
+ function createTagDocument(tag) {
142
+ return [tag.name, tag.text].join(' ');
143
+ }
144
+ //# sourceMappingURL=search.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search.js","sourceRoot":"","sources":["../../src/kompendium/search.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n AliasDescription,\n EnumDescription,\n InterfaceDescription,\n KompendiumData,\n KompendiumDocument,\n MenuItem,\n} from '../types';\nimport Fuse from 'fuse.js';\nimport {\n JsonDocs,\n JsonDocsComponent,\n JsonDocsEvent,\n JsonDocsProp,\n JsonDocsTag,\n} from '@stencil/core/internal';\n\nexport function createIndex(data: KompendiumData): any {\n const docs = createDocs(data);\n const keys: Fuse.FuseOptionKey[] = [\n 'tags',\n 'title',\n 'path',\n 'text',\n 'props.name',\n 'props.text',\n 'props.tags',\n 'props.type',\n 'events.name',\n 'events.text',\n 'events.tags',\n 'events.type',\n ];\n\n const index = Fuse.createIndex(keys, docs);\n\n return {\n documents: docs,\n data: index.toJSON(),\n };\n}\n\nfunction createDocs(data: KompendiumData): KompendiumDocument[] {\n return Array.from(createDocuments(data.menu, data));\n}\n\nexport function* createDocuments(\n items: MenuItem[],\n data: KompendiumData,\n): Generator<KompendiumDocument> {\n for (const item of items) {\n if (isIndexable(item)) {\n const document = createDocument(item, data);\n if (document) {\n yield document;\n }\n }\n\n if (item.children?.length) {\n yield* createDocuments(item.children, data);\n }\n }\n}\n\nfunction isIndexable(item: MenuItem): boolean {\n if (item.path?.match(/^\\/component\\/[\\w-]+\\/$/)) {\n return true;\n }\n\n return !!item.children?.length;\n}\n\nfunction createDocument(\n item: MenuItem,\n data: KompendiumData,\n): KompendiumDocument {\n if (item.path?.startsWith('/component/')) {\n return createComponentDocument(item, data);\n } else if (item.path?.startsWith('/type/')) {\n return createTypeDocument(item, data);\n }\n\n return createGuideDocument(item, data);\n}\n\nfunction createComponentDocument(\n item: MenuItem,\n data: KompendiumData,\n): KompendiumDocument {\n const tag = item.path.split('/')[2];\n const component = data.docs.components.find((c) => c.tag === tag);\n if (!component) {\n return;\n }\n\n const examples = findExamples(component, data.docs);\n\n return {\n path: item.path,\n title: item.title,\n text: [component.docs, ...examples.map((e) => e.docs)],\n props: component.props.map(createPropDocument),\n events: component.events.map(createPropDocument),\n tags: component.docsTags.map(createTagDocument),\n };\n}\n\nfunction createTypeDocument(\n item: MenuItem,\n data: KompendiumData,\n): KompendiumDocument {\n const type = data.types?.find((t) => t.name === item.title);\n\n if (type?.type === 'interface') {\n return createInterfaceDocument(item, type as InterfaceDescription);\n } else if (type?.type === 'alias') {\n return createAliasDocument(item, type as AliasDescription);\n } else if (type?.type === 'enum') {\n return createEnumDocument(item, type as EnumDescription);\n }\n}\n\nfunction createGuideDocument(\n item: MenuItem,\n data: KompendiumData,\n): KompendiumDocument {\n const guide = data.guides?.find((g) => g.data.path === item.path);\n\n return {\n path: item.path,\n title: item.title,\n text: guide?.content,\n };\n}\n\nfunction createInterfaceDocument(\n item: MenuItem,\n type: InterfaceDescription,\n): KompendiumDocument {\n return {\n path: item.path,\n title: item.title,\n text: type.docs,\n props: type.props.map(createPropDocument),\n tags: type.docsTags?.map(createTagDocument),\n };\n}\n\nfunction createAliasDocument(\n item: MenuItem,\n type: AliasDescription,\n): KompendiumDocument {\n return {\n path: item.path,\n title: item.title,\n text: type.docs,\n };\n}\n\n// eslint-disable-next-line sonarjs/no-identical-functions\nfunction createEnumDocument(\n item: MenuItem,\n type: EnumDescription,\n): KompendiumDocument {\n return {\n path: item.path,\n title: item.title,\n text: type.docs,\n };\n}\n\nfunction findExamples(component: JsonDocsComponent, docs: JsonDocs) {\n return component.docsTags\n .filter(isTag('exampleComponent'))\n .map(findComponentByTag(docs));\n}\n\nconst findComponentByTag = (docs: JsonDocs) => (tag: JsonDocsTag) => {\n return docs.components.find((component) => component.tag === tag.text);\n};\n\nconst isTag = (name: string) => (tag: JsonDocsTag) => {\n return tag.name === name;\n};\n\nfunction createPropDocument(prop: JsonDocsProp | JsonDocsEvent) {\n return {\n name: (prop as JsonDocsProp).name || (prop as JsonDocsEvent).event,\n tags: prop.docsTags?.map(createTagDocument),\n text: prop.docs,\n type: (prop as JsonDocsProp)?.type || (prop as JsonDocsEvent).detail,\n };\n}\n\nfunction createTagDocument(tag: JsonDocsTag) {\n return [tag.name, tag.text].join(' ');\n}\n"]}
@@ -0,0 +1,81 @@
1
+ import { readFile } from "fs/promises";
2
+ import { extname, join } from "path";
3
+ export async function addSources(docs) {
4
+ var _a;
5
+ const components = await Promise.all(((_a = docs.components) === null || _a === void 0 ? void 0 : _a.map(addComponentSources)) || []);
6
+ return {
7
+ ...docs,
8
+ components: components,
9
+ };
10
+ }
11
+ export async function addComponentSources(component) {
12
+ const sources = await getSources(component);
13
+ return {
14
+ ...component,
15
+ sources: sources,
16
+ };
17
+ }
18
+ export async function getSources(component) {
19
+ const source = await readFile(component.filePath, 'utf8');
20
+ const styleNames = getStyleFiles(source);
21
+ const styles = await Promise.all(styleNames.map(getStyle(component.dirPath)));
22
+ const links = await getLinkedSourceFiles(component);
23
+ return [
24
+ {
25
+ filename: component.fileName,
26
+ type: 'tsx',
27
+ source: source,
28
+ },
29
+ ...styles,
30
+ ...links,
31
+ ];
32
+ }
33
+ export function getStyleFiles(source) {
34
+ const result = [];
35
+ let regex = /@Component\((\{.+?\})\)/s;
36
+ let match = regex.exec(source);
37
+ const config = match && match[1];
38
+ if (!config) {
39
+ return result;
40
+ }
41
+ regex = /styleUrl:.+?['"](.+?)['"]/s;
42
+ match = regex.exec(config);
43
+ if (match && match[1]) {
44
+ result.push(match[1]);
45
+ }
46
+ return result;
47
+ }
48
+ const getStyle = (path) => async (name) => {
49
+ const source = await readFile([path, name].join('/'), 'utf8');
50
+ return {
51
+ filename: name,
52
+ type: 'scss',
53
+ source: source,
54
+ };
55
+ };
56
+ async function getLinkedSourceFiles(component) {
57
+ const deprecatedLinkTags = component.docsTags.filter((tag) => tag.name === 'link');
58
+ if (deprecatedLinkTags.length > 0) {
59
+ // eslint-disable-next-line no-console
60
+ console.warn('Using the @link tag to link source files for display alongside examples is deprecated. ' +
61
+ 'Use @sourceFile instead.');
62
+ }
63
+ const linkTags = component.docsTags.filter((tag) => tag.name === 'sourceFile');
64
+ const backwardsCompatibleLinkTags = [...linkTags, ...deprecatedLinkTags];
65
+ return Promise.all(backwardsCompatibleLinkTags.map(getLink(component)));
66
+ }
67
+ const getLink = (component) => async (tag) => {
68
+ let source;
69
+ try {
70
+ source = await readFile(join(component.dirPath, tag.text), 'utf8');
71
+ }
72
+ catch (_a) {
73
+ source = `File ${tag.text} not found`;
74
+ }
75
+ return {
76
+ filename: tag.text,
77
+ type: extname(tag.text).replace('.', ''),
78
+ source: source,
79
+ };
80
+ };
81
+ //# sourceMappingURL=source.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"source.js","sourceRoot":"","sources":["../../src/kompendium/source.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n JsonDocs,\n JsonDocsComponent,\n JsonDocsTag,\n} from '@stencil/core/internal';\nimport { readFile } from 'fs/promises';\nimport { extname, join } from 'path';\n\nexport interface JsonDocsSource {\n filename: string;\n type: 'tsx' | 'ts' | 'scss' | 'less' | 'css';\n source: string;\n}\n\nexport async function addSources(docs: JsonDocs): Promise<JsonDocs> {\n const components = await Promise.all(\n docs.components?.map(addComponentSources) || [],\n );\n\n return {\n ...docs,\n components: components,\n };\n}\n\nexport async function addComponentSources(\n component: JsonDocsComponent,\n): Promise<any> {\n const sources = await getSources(component);\n\n return {\n ...component,\n sources: sources,\n };\n}\n\nexport async function getSources(\n component: JsonDocsComponent,\n): Promise<JsonDocsSource[]> {\n const source = await readFile(component.filePath, 'utf8');\n const styleNames = getStyleFiles(source);\n const styles = await Promise.all(\n styleNames.map(getStyle(component.dirPath)),\n );\n const links = await getLinkedSourceFiles(component);\n\n return [\n {\n filename: component.fileName,\n type: 'tsx',\n source: source,\n },\n ...styles,\n ...links,\n ];\n}\n\nexport function getStyleFiles(source: string): string[] {\n const result = [];\n let regex = /@Component\\((\\{.+?\\})\\)/s;\n let match = regex.exec(source);\n const config = match && match[1];\n\n if (!config) {\n return result;\n }\n\n regex = /styleUrl:.+?['\"](.+?)['\"]/s;\n match = regex.exec(config);\n\n if (match && match[1]) {\n result.push(match[1]);\n }\n\n return result;\n}\n\nconst getStyle =\n (path: string) =>\n async (name: string): Promise<JsonDocsSource> => {\n const source = await readFile([path, name].join('/'), 'utf8');\n\n return {\n filename: name,\n type: 'scss',\n source: source,\n };\n };\n\nasync function getLinkedSourceFiles(\n component: JsonDocsComponent,\n): Promise<JsonDocsSource[]> {\n const deprecatedLinkTags = component.docsTags.filter(\n (tag) => tag.name === 'link',\n );\n if (deprecatedLinkTags.length > 0) {\n // eslint-disable-next-line no-console\n console.warn(\n 'Using the @link tag to link source files for display alongside examples is deprecated. ' +\n 'Use @sourceFile instead.',\n );\n }\n\n const linkTags = component.docsTags.filter(\n (tag) => tag.name === 'sourceFile',\n );\n const backwardsCompatibleLinkTags = [...linkTags, ...deprecatedLinkTags];\n\n return Promise.all<JsonDocsSource>(\n backwardsCompatibleLinkTags.map(getLink(component)),\n );\n}\n\nconst getLink =\n (component: JsonDocsComponent) =>\n async (tag: JsonDocsTag): Promise<JsonDocsSource> => {\n let source: string;\n try {\n source = await readFile(join(component.dirPath, tag.text), 'utf8');\n } catch {\n source = `File ${tag.text} not found`;\n }\n\n return {\n filename: tag.text,\n type: extname(tag.text).replace('.', '') as any,\n source: source,\n };\n };\n"]}
@@ -0,0 +1,48 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
4
+ r = Reflect.decorate(decorators, target, key, desc);
5
+ else
6
+ for (var i = decorators.length - 1; i >= 0; i--)
7
+ if (d = decorators[i])
8
+ r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
9
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
10
+ };
11
+ /**
12
+ * Use this!
13
+ * @param {DecoratorConfig} _config how to use it
14
+ * @returns {ClassDecorator} the decorator
15
+ */
16
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
17
+ const CustomDecorator = (_config) => {
18
+ return () => { };
19
+ };
20
+ /**
21
+ * The colors
22
+ */
23
+ export var Color;
24
+ (function (Color) {
25
+ /**
26
+ * The red color
27
+ */
28
+ Color["Red"] = "red";
29
+ /**
30
+ * Looks like green
31
+ */
32
+ Color["Green"] = "green";
33
+ /**
34
+ * Almost blue
35
+ */
36
+ Color["Blue"] = "blue";
37
+ })(Color || (Color = {}));
38
+ /**
39
+ * The Zap class
40
+ * @deprecated
41
+ */
42
+ let Zap = class Zap {
43
+ };
44
+ Zap = __decorate([
45
+ CustomDecorator({ name: 'gg' })
46
+ ], Zap);
47
+ export { Zap };
48
+ //# sourceMappingURL=basic.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"basic.js","sourceRoot":"","sources":["../../../../src/kompendium/test/fixtures/basic.ts"],"names":[],"mappings":";;;;;;AAOA;;;;GAIG;AACH,6DAA6D;AAC7D,MAAM,eAAe,GAAG,CAAC,OAAwB,EAAkB,EAAE;IACjE,OAAO,GAAG,EAAE,GAAE,CAAC,CAAC;AACpB,CAAC,CAAC;AAoCF;;GAEG;AACH,MAAM,CAAN,IAAY,KAeX;AAfD,WAAY,KAAK;IACb;;OAEG;IACH,oBAAW,CAAA;IAEX;;OAEG;IACH,wBAAe,CAAA;IAEf;;OAEG;IACH,sBAAa,CAAA;AACjB,CAAC,EAfW,KAAK,KAAL,KAAK,QAehB;AAED;;;GAGG;AAEI,IAAM,GAAG,GAAT,MAAM,GAAG;CAef,CAAA;AAfY,GAAG;IADf,eAAe,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;GACnB,GAAG,CAef","sourcesContent":["type DecoratorConfig = {\n /**\n * This is the name\n */\n name: string;\n};\n\n/**\n * Use this!\n * @param {DecoratorConfig} _config how to use it\n * @returns {ClassDecorator} the decorator\n */\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nconst CustomDecorator = (_config: DecoratorConfig): ClassDecorator => {\n return () => {};\n};\n\n/**\n * This is Foo\n *\n * Foo is good\n * @foo foobar\n */\nexport interface Foo {\n /**\n * foo is a string\n * @deprecated this is not used\n */\n foo: string;\n\n /**\n * set if bar\n */\n bar?: boolean;\n\n /**\n * Do something\n *\n * From string to number\n * @param {string} args the string\n * @returns {number} the number\n * @foobar baz\n */\n baz: (args: string) => number;\n}\n\n/**\n * The bar\n */\nexport type Bar = Record<string, any>;\n\n/**\n * The colors\n */\nexport enum Color {\n /**\n * The red color\n */\n Red = 'red',\n\n /**\n * Looks like green\n */\n Green = 'green',\n\n /**\n * Almost blue\n */\n Blue = 'blue',\n}\n\n/**\n * The Zap class\n * @deprecated\n */\n@CustomDecorator({ name: 'gg' })\nexport class Zap implements Foo {\n /**\n * @inheritDoc\n */\n foo: string;\n\n /**\n * @inheritDoc\n */\n bar?: boolean;\n\n /**\n * @inheritDoc\n */\n baz: (args: string) => number;\n}\n"]}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=example-type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"example-type.js","sourceRoot":"","sources":["../../../../../src/kompendium/test/fixtures/filtering/example-type.ts"],"names":[],"mappings":"AAAA;;;GAGG","sourcesContent":["/**\n * This file simulates a type from examples/ that should be EXCLUDED\n * Location: src/examples/demo-config.ts\n */\n\nexport interface ExampleConfig {\n demoMode: boolean;\n sampleData: string[];\n}\n"]}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=node-modules-type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node-modules-type.js","sourceRoot":"","sources":["../../../../../src/kompendium/test/fixtures/filtering/node-modules-type.ts"],"names":[],"mappings":"AAAA;;;GAGG","sourcesContent":["/**\n * This file simulates a type from node_modules that should be EXCLUDED\n * Location: node_modules/@some-package/types.d.ts\n */\n\nexport interface ThirdPartyConfig {\n apiKey: string;\n endpoint: string;\n}\n"]}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=private-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"private-types.js","sourceRoot":"","sources":["../../../../../src/kompendium/test/fixtures/filtering/private-types.ts"],"names":[],"mappings":"AAAA;;GAEG","sourcesContent":["/**\n * Types with @private and @internal tags that should be EXCLUDED\n */\n\n/**\n * Internal implementation detail\n * @private\n */\nexport interface InternalCache {\n data: Map<string, any>;\n}\n\n/**\n * Internal API - do not use\n * @internal\n */\nexport interface InternalAPI {\n _unsafeMethod(): void;\n}\n\n/**\n * This is a public interface that SHOULD be included\n */\nexport interface PublicAPI {\n safeMethod(): void;\n}\n"]}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=stencil-component-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stencil-component-types.js","sourceRoot":"","sources":["../../../../../src/kompendium/test/fixtures/filtering/stencil-component-types.ts"],"names":[],"mappings":"AAAA;;;GAGG","sourcesContent":["/**\n * Simulates Stencil auto-generated types that should be EXCLUDED\n * These would normally be in components.d.ts\n */\n\n// Component prop interface - should be excluded (Components namespace)\nexport interface LimelButton {\n text: string;\n disabled?: boolean;\n}\n\n// HTML element interface - should be excluded (HTML*Element pattern)\nexport interface HTMLLimelButtonElement extends HTMLElement {\n text: string;\n disabled?: boolean;\n}\n\n// CustomEvent wrapper - should be excluded (*CustomEvent pattern)\nexport interface LimelButtonChangeCustomEvent extends CustomEvent<string> {\n detail: string;\n}\n\n// Regular interface that SHOULD be included\nexport interface ButtonConfig {\n variant: 'primary' | 'secondary';\n size: 'small' | 'large';\n}\n"]}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=test-helper-type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-helper-type.js","sourceRoot":"","sources":["../../../../../src/kompendium/test/fixtures/filtering/test-helper-type.ts"],"names":[],"mappings":"AAAA;;;GAGG","sourcesContent":["/**\n * This file simulates a type from test files that should be EXCLUDED\n * Location: src/components/button/button.spec.ts\n */\n\nexport interface TestHelpers {\n mockFn: () => void;\n setupTest: () => Promise<void>;\n}\n"]}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Valid types that SHOULD be included in documentation
3
+ */
4
+ /**
5
+ * Tooltip position options
6
+ */
7
+ export var TooltipPosition;
8
+ (function (TooltipPosition) {
9
+ TooltipPosition["Top"] = "top";
10
+ TooltipPosition["Bottom"] = "bottom";
11
+ TooltipPosition["Left"] = "left";
12
+ TooltipPosition["Right"] = "right";
13
+ })(TooltipPosition || (TooltipPosition = {}));
14
+ /**
15
+ * Utility class for tooltip operations
16
+ */
17
+ export class TooltipManager {
18
+ /**
19
+ * Show a tooltip
20
+ * @param {TooltipConfig} config - The tooltip configuration
21
+ */
22
+ show(config) {
23
+ // Placeholder implementation for fixture
24
+ void config;
25
+ }
26
+ /** Hide the current tooltip */
27
+ hide() { }
28
+ }
29
+ //# sourceMappingURL=valid-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"valid-types.js","sourceRoot":"","sources":["../../../../../src/kompendium/test/fixtures/filtering/valid-types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAsBH;;GAEG;AACH,MAAM,CAAN,IAAY,eAKX;AALD,WAAY,eAAe;IACvB,8BAAW,CAAA;IACX,oCAAiB,CAAA;IACjB,gCAAa,CAAA;IACb,kCAAe,CAAA;AACnB,CAAC,EALW,eAAe,KAAf,eAAe,QAK1B;AAED;;GAEG;AACH,MAAM,OAAO,cAAc;IACvB;;;OAGG;IACH,IAAI,CAAC,MAAqB;QACtB,yCAAyC;QACzC,KAAK,MAAM,CAAC;IAChB,CAAC;IAED,+BAA+B;IAC/B,IAAI,KAAU,CAAC;CAClB","sourcesContent":["/**\n * Valid types that SHOULD be included in documentation\n */\n\n/**\n * Configuration for the tooltip component\n */\nexport interface TooltipConfig {\n /** The tooltip text */\n text: string;\n /** Position of the tooltip */\n position: 'top' | 'bottom' | 'left' | 'right';\n /** Delay before showing (ms) */\n delay?: number;\n}\n\n/**\n * Event data for tooltip interactions\n */\nexport type TooltipEvent = {\n action: 'show' | 'hide';\n timestamp: number;\n};\n\n/**\n * Tooltip position options\n */\nexport enum TooltipPosition {\n Top = 'top',\n Bottom = 'bottom',\n Left = 'left',\n Right = 'right',\n}\n\n/**\n * Utility class for tooltip operations\n */\nexport class TooltipManager {\n /**\n * Show a tooltip\n * @param {TooltipConfig} config - The tooltip configuration\n */\n show(config: TooltipConfig): void {\n // Placeholder implementation for fixture\n void config;\n }\n\n /** Hide the current tooltip */\n hide(): void {}\n}\n"]}