- ${parse(data.description)}
+
+ ${parse(data?.description)}
`;
}
diff --git a/src/api-viewer-base.ts b/src/api-viewer-base.ts
index e01e62b..4a8bd3d 100644
--- a/src/api-viewer-base.ts
+++ b/src/api-viewer-base.ts
@@ -1,16 +1,22 @@
+import type { Package } from 'custom-elements-manifest/schema';
+
import { LitElement, html, TemplateResult } from 'lit';
import { property } from 'lit/decorators/property.js';
import { cache } from 'lit/directives/cache.js';
import { until } from 'lit/directives/until.js';
import { parse } from './lib/markdown.js';
-import { ElementPromise } from './lib/types.js';
-import { getElementData, setTemplates } from './lib/utils.js';
+import {
+ getCustomElements,
+ getElementData,
+ hasCustomElements,
+ setTemplates
+} from './lib/utils.js';
import { ApiViewerMixin, emptyDataWarning } from './api-viewer-mixin.js';
import './api-viewer-docs.js';
import './api-viewer-demo.js';
async function renderDocs(
- jsonFetched: ElementPromise,
+ jsonFetched: Promise
,
section: string,
onSelect: (e: CustomEvent) => void,
onToggle: (e: CustomEvent) => void,
@@ -18,17 +24,19 @@ async function renderDocs(
id?: number,
exclude = ''
): Promise {
- const elements = await jsonFetched;
+ const manifest = await jsonFetched;
- if (!elements.length) {
+ if (!hasCustomElements(manifest)) {
return emptyDataWarning;
}
- const data = getElementData(elements, selected);
+ const elements = getCustomElements(manifest);
+
+ const data = getElementData(manifest, selected);
return html`