diff --git a/.nvmrc b/.nvmrc index 27bbca7..ff65059 100644 --- a/.nvmrc +++ b/.nvmrc @@ -1 +1 @@ -v12.22.1 +v16.13.0 diff --git a/README.md b/README.md index a8b5709..e4a17bf 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # <api-viewer> -API documentation and live playground for Web Components. Based on [web-component-analyzer](https://github.com/runem/web-component-analyzer) JSON format. +API documentation and live playground for Web Components. Based on [custom elements manifest](https://github.com/webcomponents/custom-elements-manifest) JSON format. ```html @@ -42,18 +42,20 @@ Or grab from [unpkg.com CDN](https://unpkg.com/api-viewer-element?module): ## Usage -1. Install [web-component-analyzer](https://github.com/runem/web-component-analyzer): +1. Install [custom elements manifest analyzer](https://github.com/open-wc/custom-elements-manifest): ```sh -$ npm install -g web-component-analyzer +$ npm install @custom-elements-manifest/analyzer ``` -2. Analyze your components using `--format json`: +2. Analyze your components: ```sh -$ wca analyze my-element.js --outFile custom-elements.json --format json +$ cem analyze my-element.js ``` +Read the [docs](https://custom-elements-manifest.open-wc.org) for more information on how to use the analyzer. + 3. Create an HTML file and import the component: ```html @@ -374,7 +376,7 @@ $ yarn serve:dist ## Acknowledgements -- Big thanks to [@runem](http://github.com/runem) for creating Web Component Analyzer. +- Big thanks to [@runem](http://github.com/runem) for creating Web Component Analyzer, which previous versions of this package were based on. - Thanks to [@bahrus](https://github.com/bahrus) for [wc-info](https://github.com/bahrus/wc-info) component which inspired me. - The visual appearance is largely inspired by [Vuetify](https://vuetifyjs.com/en/getting-started/quick-start) API docs. - The tabs component is based on the [howto-tabs](https://developers.google.com/web/fundamentals/web-components/examples/howto-tabs) example. diff --git a/custom-elements.json b/custom-elements.json index 98d3215..943e808 100644 --- a/custom-elements.json +++ b/custom-elements.json @@ -1,267 +1,2686 @@ { - "version": "experimental", - "tags": [ + "schemaVersion": "1.0.0", + "readme": "", + "modules": [ { - "name": "expansion-panel", - "path": "./src/fixtures/expansion-panel.ts", - "description": "A custom element similar to the HTML5 `
` element.", - "attributes": [ - { - "name": "opened", - "description": "When true, the panel content is expanded and visible", - "type": "boolean | null | undefined", - "default": "false" - }, - { - "name": "disabled", - "description": "Disabled panel can not be expanded or collapsed", - "type": "boolean", - "default": "false" - }, - { - "name": "focused", - "description": "State attribute set when element has focus.", - "type": "boolean" - }, + "kind": "javascript-module", + "path": "src/api-demo-base.ts", + "declarations": [ { - "name": "focus-ring", - "description": "State attribute set when focused from keyboard.", - "type": "boolean" + "kind": "class", + "description": "", + "name": "ApiDemoBase", + "members": [ + { + "kind": "field", + "name": "excludeKnobs", + "type": { + "text": "string | undefined" + }, + "attribute": "exclude-knobs" + }, + { + "kind": "field", + "name": "_id", + "type": { + "text": "number | undefined" + }, + "privacy": "protected", + "default": "id++" + }, + { + "kind": "method", + "name": "_onSelect", + "privacy": "private", + "return": { + "type": { + "text": "void" + } + }, + "parameters": [ + { + "name": "e", + "type": { + "text": "Event" + } + } + ] + }, + { + "kind": "field", + "name": "src", + "type": { + "text": "string | undefined" + }, + "attribute": "src", + "reflects": true, + "inheritedFrom": { + "name": "ApiViewerMixin", + "module": "src/api-viewer-mixin.ts" + } + }, + { + "kind": "field", + "name": "manifest", + "type": { + "text": "Package | undefined" + }, + "inheritedFrom": { + "name": "ApiViewerMixin", + "module": "src/api-viewer-mixin.ts" + } + }, + { + "kind": "field", + "name": "selected", + "type": { + "text": "string | undefined" + }, + "attribute": "selected", + "reflects": true, + "inheritedFrom": { + "name": "ApiViewerMixin", + "module": "src/api-viewer-mixin.ts" + } + }, + { + "kind": "field", + "name": "jsonFetched", + "type": { + "text": "Promise" + }, + "inheritedFrom": { + "name": "ApiViewerMixin", + "module": "src/api-viewer-mixin.ts" + } + }, + { + "kind": "field", + "name": "lastSrc", + "type": { + "text": "string | undefined" + }, + "privacy": "private", + "inheritedFrom": { + "name": "ApiViewerMixin", + "module": "src/api-viewer-mixin.ts" + } + }, + { + "kind": "method", + "name": "willUpdate", + "return": { + "type": { + "text": "void" + } + }, + "inheritedFrom": { + "name": "ApiViewerMixin", + "module": "src/api-viewer-mixin.ts" + } + } + ], + "attributes": [ + { + "name": "exclude-knobs", + "type": { + "text": "string | undefined" + }, + "fieldName": "excludeKnobs" + }, + { + "name": "src", + "type": { + "text": "string | undefined" + }, + "fieldName": "src", + "inheritedFrom": { + "name": "ApiViewerMixin", + "module": "src/api-viewer-mixin.ts" + } + }, + { + "name": "selected", + "type": { + "text": "string | undefined" + }, + "fieldName": "selected", + "inheritedFrom": { + "name": "ApiViewerMixin", + "module": "src/api-viewer-mixin.ts" + } + } + ], + "mixins": [ + { + "name": "ApiViewerMixin", + "module": "/src/api-viewer-mixin.js" + } + ], + "superclass": { + "name": "LitElement", + "package": "lit" + }, + "customElement": true } ], - "properties": [ - { - "name": "opened", - "attribute": "opened", - "description": "When true, the panel content is expanded and visible", - "type": "boolean | null | undefined", - "default": "false" - }, + "exports": [ { - "name": "disabled", - "attribute": "disabled", - "description": "Disabled panel can not be expanded or collapsed", - "type": "boolean", - "default": "false" + "kind": "js", + "name": "ApiDemoBase", + "declaration": { + "name": "ApiDemoBase", + "module": "src/api-demo-base.ts" + } } - ], - "events": [ + ] + }, + { + "kind": "javascript-module", + "path": "src/api-demo-layout-mixin.ts", + "declarations": [ { - "name": "opened-changed", - "description": "Event fired when expanding / collapsing" + "kind": "mixin", + "description": "", + "name": "ApiDemoLayoutMixin", + "members": [ + { + "kind": "field", + "name": "tag", + "type": { + "text": "string" + }, + "default": "''", + "attribute": "tag" + }, + { + "kind": "field", + "name": "members", + "type": { + "text": "ClassMember[]" + }, + "default": "[]" + }, + { + "kind": "field", + "name": "attrs", + "type": { + "text": "Attribute[]" + }, + "default": "[]" + }, + { + "kind": "field", + "name": "slots", + "type": { + "text": "Slot[]" + }, + "default": "[]" + }, + { + "kind": "field", + "name": "events", + "type": { + "text": "Event[]" + }, + "default": "[]" + }, + { + "kind": "field", + "name": "cssProps", + "type": { + "text": "CssCustomProperty[]" + }, + "default": "[]" + }, + { + "kind": "field", + "name": "exclude", + "type": { + "text": "string" + }, + "default": "''", + "attribute": "exclude" + }, + { + "kind": "field", + "name": "vid", + "type": { + "text": "number | undefined" + }, + "attribute": "vid" + }, + { + "kind": "field", + "name": "processedSlots", + "type": { + "text": "SlotValue[]" + } + }, + { + "kind": "field", + "name": "processedCss", + "type": { + "text": "CssCustomProperty[]" + } + }, + { + "kind": "field", + "name": "eventLog", + "type": { + "text": "CustomEvent[]" + } + }, + { + "kind": "field", + "name": "customKnobs", + "type": { + "text": "(ClassField & {\n options?: string[];\n })[]" + }, + "default": "[]" + }, + { + "kind": "field", + "name": "knobs", + "type": { + "text": "Record" + }, + "default": "{}" + }, + { + "kind": "field", + "name": "finalProps", + "type": { + "text": "ClassField[]" + } + }, + { + "kind": "method", + "name": "willUpdate", + "parameters": [ + { + "name": "props", + "type": { + "text": "PropertyValues" + } + } + ] + }, + { + "kind": "method", + "name": "updated", + "privacy": "protected", + "return": { + "type": { + "text": "void" + } + }, + "parameters": [ + { + "name": "props", + "type": { + "text": "PropertyValues" + } + } + ] + }, + { + "kind": "method", + "name": "_getCustomKnobs", + "privacy": "private", + "return": { + "type": { + "text": "Knob[]" + } + } + }, + { + "kind": "method", + "name": "_getProp", + "privacy": "private", + "return": { + "type": { + "text": "{ prop?: ClassField; custom?: boolean }" + } + }, + "parameters": [ + { + "name": "name", + "type": { + "text": "string" + } + } + ] + }, + { + "kind": "method", + "name": "setCss", + "return": { + "type": { + "text": "void" + } + }, + "parameters": [ + { + "name": "target", + "type": { + "text": "HTMLInputElement" + } + } + ] + }, + { + "kind": "method", + "name": "setKnobs", + "return": { + "type": { + "text": "void" + } + }, + "parameters": [ + { + "name": "target", + "type": { + "text": "HTMLInputElement" + } + } + ] + }, + { + "kind": "method", + "name": "setSlots", + "return": { + "type": { + "text": "void" + } + }, + "parameters": [ + { + "name": "target", + "type": { + "text": "HTMLInputElement" + } + } + ] + }, + { + "kind": "method", + "name": "onRendered", + "return": { + "type": { + "text": "void" + } + }, + "parameters": [ + { + "name": "e", + "type": { + "text": "CustomEvent" + } + } + ] + }, + { + "kind": "method", + "name": "_syncKnob", + "privacy": "private", + "return": { + "type": { + "text": "void" + } + }, + "parameters": [ + { + "name": "component", + "type": { + "text": "Element" + } + }, + { + "name": "changed", + "type": { + "text": "ClassField" + } + } + ] + } + ], + "attributes": [ + { + "name": "tag", + "type": { + "text": "string" + }, + "default": "''", + "fieldName": "tag" + }, + { + "name": "exclude", + "type": { + "text": "string" + }, + "default": "''", + "fieldName": "exclude" + }, + { + "name": "vid", + "type": { + "text": "number | undefined" + }, + "fieldName": "vid" + } + ], + "parameters": [ + { + "name": "base", + "type": { + "text": "T" + } + } + ] } ], - "slots": [ + "exports": [ { - "name": "", - "description": "Slot fot panel content" - }, + "kind": "js", + "name": "ApiDemoLayoutMixin", + "declaration": { + "name": "ApiDemoLayoutMixin", + "module": "src/api-demo-layout-mixin.ts" + } + } + ] + }, + { + "kind": "javascript-module", + "path": "src/api-demo.ts", + "declarations": [ { - "name": "header", - "description": "Slot for panel header" + "kind": "class", + "description": "", + "name": "ApiDemo", + "members": [ + { + "kind": "method", + "name": "setTemplates", + "privacy": "public", + "return": { + "type": { + "text": "void" + } + }, + "parameters": [ + { + "name": "templates", + "optional": true, + "type": { + "text": "HTMLTemplateElement[]" + } + } + ] + }, + { + "kind": "field", + "name": "excludeKnobs", + "type": { + "text": "string | undefined" + }, + "attribute": "exclude-knobs", + "inheritedFrom": { + "name": "ApiDemoBase", + "module": "src/api-demo-base.ts" + } + }, + { + "kind": "field", + "name": "_id", + "type": { + "text": "number | undefined" + }, + "privacy": "protected", + "default": "id++", + "inheritedFrom": { + "name": "ApiDemoBase", + "module": "src/api-demo-base.ts" + } + }, + { + "kind": "method", + "name": "_onSelect", + "privacy": "private", + "return": { + "type": { + "text": "void" + } + }, + "parameters": [ + { + "name": "e", + "type": { + "text": "Event" + } + } + ], + "inheritedFrom": { + "name": "ApiDemoBase", + "module": "src/api-demo-base.ts" + } + }, + { + "kind": "field", + "name": "src", + "type": { + "text": "string | undefined" + }, + "attribute": "src", + "reflects": true, + "inheritedFrom": { + "name": "ApiDemoBase", + "module": "src/api-demo-base.ts" + } + }, + { + "kind": "field", + "name": "manifest", + "type": { + "text": "Package | undefined" + }, + "inheritedFrom": { + "name": "ApiDemoBase", + "module": "src/api-demo-base.ts" + } + }, + { + "kind": "field", + "name": "selected", + "type": { + "text": "string | undefined" + }, + "attribute": "selected", + "reflects": true, + "inheritedFrom": { + "name": "ApiDemoBase", + "module": "src/api-demo-base.ts" + } + }, + { + "kind": "field", + "name": "jsonFetched", + "type": { + "text": "Promise" + }, + "inheritedFrom": { + "name": "ApiDemoBase", + "module": "src/api-demo-base.ts" + } + }, + { + "kind": "field", + "name": "lastSrc", + "type": { + "text": "string | undefined" + }, + "privacy": "private", + "inheritedFrom": { + "name": "ApiDemoBase", + "module": "src/api-demo-base.ts" + } + }, + { + "kind": "method", + "name": "willUpdate", + "return": { + "type": { + "text": "void" + } + }, + "inheritedFrom": { + "name": "ApiDemoBase", + "module": "src/api-demo-base.ts" + } + } + ], + "superclass": { + "name": "ApiDemoBase", + "module": "/src/api-demo-base.js" + }, + "tagName": "api-demo", + "customElement": true, + "attributes": [ + { + "name": "exclude-knobs", + "type": { + "text": "string | undefined" + }, + "fieldName": "excludeKnobs", + "inheritedFrom": { + "name": "ApiDemoBase", + "module": "src/api-demo-base.ts" + } + }, + { + "name": "src", + "type": { + "text": "string | undefined" + }, + "fieldName": "src", + "inheritedFrom": { + "name": "ApiDemoBase", + "module": "src/api-demo-base.ts" + } + }, + { + "name": "selected", + "type": { + "text": "string | undefined" + }, + "fieldName": "selected", + "inheritedFrom": { + "name": "ApiDemoBase", + "module": "src/api-demo-base.ts" + } + } + ] } ], - "cssProperties": [ + "exports": [ { - "name": "--panel-header-background", - "description": "Default panel header background color.", - "type": "Background", - "default": "\"#fff\"" + "kind": "js", + "name": "ApiDemo", + "declaration": { + "name": "ApiDemo", + "module": "src/api-demo.ts" + } }, { - "name": "--panel-header-min-height", - "description": "Panel header minimum height.", - "default": "\"48px\"" - }, + "kind": "custom-element-definition", + "name": "api-demo", + "declaration": { + "name": "ApiDemo", + "module": "src/api-demo.ts" + } + } + ] + }, + { + "kind": "javascript-module", + "path": "src/api-docs-base.ts", + "declarations": [ { - "name": "--panel-ripple-background", - "description": "Active toggle button ripple background.", - "type": "Background", - "default": "\"rgba(0, 0, 0, 0.38)\"" + "kind": "class", + "description": "", + "name": "ApiDocsBase", + "members": [ + { + "kind": "method", + "name": "_onSelect", + "privacy": "private", + "return": { + "type": { + "text": "void" + } + }, + "parameters": [ + { + "name": "e", + "type": { + "text": "Event" + } + } + ] + }, + { + "kind": "field", + "name": "src", + "type": { + "text": "string | undefined" + }, + "attribute": "src", + "reflects": true, + "inheritedFrom": { + "name": "ApiViewerMixin", + "module": "src/api-viewer-mixin.ts" + } + }, + { + "kind": "field", + "name": "manifest", + "type": { + "text": "Package | undefined" + }, + "inheritedFrom": { + "name": "ApiViewerMixin", + "module": "src/api-viewer-mixin.ts" + } + }, + { + "kind": "field", + "name": "selected", + "type": { + "text": "string | undefined" + }, + "attribute": "selected", + "reflects": true, + "inheritedFrom": { + "name": "ApiViewerMixin", + "module": "src/api-viewer-mixin.ts" + } + }, + { + "kind": "field", + "name": "jsonFetched", + "type": { + "text": "Promise" + }, + "inheritedFrom": { + "name": "ApiViewerMixin", + "module": "src/api-viewer-mixin.ts" + } + }, + { + "kind": "field", + "name": "lastSrc", + "type": { + "text": "string | undefined" + }, + "privacy": "private", + "inheritedFrom": { + "name": "ApiViewerMixin", + "module": "src/api-viewer-mixin.ts" + } + }, + { + "kind": "method", + "name": "willUpdate", + "return": { + "type": { + "text": "void" + } + }, + "inheritedFrom": { + "name": "ApiViewerMixin", + "module": "src/api-viewer-mixin.ts" + } + } + ], + "mixins": [ + { + "name": "ApiViewerMixin", + "module": "/src/api-viewer-mixin.js" + } + ], + "superclass": { + "name": "LitElement", + "package": "lit" + }, + "customElement": true, + "attributes": [ + { + "name": "src", + "type": { + "text": "string | undefined" + }, + "fieldName": "src", + "inheritedFrom": { + "name": "ApiViewerMixin", + "module": "src/api-viewer-mixin.ts" + } + }, + { + "name": "selected", + "type": { + "text": "string | undefined" + }, + "fieldName": "selected", + "inheritedFrom": { + "name": "ApiViewerMixin", + "module": "src/api-viewer-mixin.ts" + } + } + ] } ], - "cssParts": [ + "exports": [ { - "name": "header", - "description": "An element wrapping the `header` slot." - }, + "kind": "js", + "name": "ApiDocsBase", + "declaration": { + "name": "ApiDocsBase", + "module": "src/api-docs-base.ts" + } + } + ] + }, + { + "kind": "javascript-module", + "path": "src/api-docs.ts", + "declarations": [ { - "name": "toggle", - "description": "A toggle button, child of the header part." + "kind": "class", + "description": "", + "name": "ApiDocs", + "members": [ + { + "kind": "method", + "name": "_onSelect", + "privacy": "private", + "return": { + "type": { + "text": "void" + } + }, + "parameters": [ + { + "name": "e", + "type": { + "text": "Event" + } + } + ], + "inheritedFrom": { + "name": "ApiDocsBase", + "module": "src/api-docs-base.ts" + } + }, + { + "kind": "field", + "name": "src", + "type": { + "text": "string | undefined" + }, + "attribute": "src", + "reflects": true, + "inheritedFrom": { + "name": "ApiDocsBase", + "module": "src/api-docs-base.ts" + } + }, + { + "kind": "field", + "name": "manifest", + "type": { + "text": "Package | undefined" + }, + "inheritedFrom": { + "name": "ApiDocsBase", + "module": "src/api-docs-base.ts" + } + }, + { + "kind": "field", + "name": "selected", + "type": { + "text": "string | undefined" + }, + "attribute": "selected", + "reflects": true, + "inheritedFrom": { + "name": "ApiDocsBase", + "module": "src/api-docs-base.ts" + } + }, + { + "kind": "field", + "name": "jsonFetched", + "type": { + "text": "Promise" + }, + "inheritedFrom": { + "name": "ApiDocsBase", + "module": "src/api-docs-base.ts" + } + }, + { + "kind": "field", + "name": "lastSrc", + "type": { + "text": "string | undefined" + }, + "privacy": "private", + "inheritedFrom": { + "name": "ApiDocsBase", + "module": "src/api-docs-base.ts" + } + }, + { + "kind": "method", + "name": "willUpdate", + "return": { + "type": { + "text": "void" + } + }, + "inheritedFrom": { + "name": "ApiDocsBase", + "module": "src/api-docs-base.ts" + } + } + ], + "superclass": { + "name": "ApiDocsBase", + "module": "/src/api-docs-base.js" + }, + "tagName": "api-docs", + "customElement": true, + "attributes": [ + { + "name": "src", + "type": { + "text": "string | undefined" + }, + "fieldName": "src", + "inheritedFrom": { + "name": "ApiDocsBase", + "module": "src/api-docs-base.ts" + } + }, + { + "name": "selected", + "type": { + "text": "string | undefined" + }, + "fieldName": "selected", + "inheritedFrom": { + "name": "ApiDocsBase", + "module": "src/api-docs-base.ts" + } + } + ] + } + ], + "exports": [ + { + "kind": "js", + "name": "ApiDocs", + "declaration": { + "name": "ApiDocs", + "module": "src/api-docs.ts" + } }, { - "name": "content", - "description": "An element wrapping the `content` slot." + "kind": "custom-element-definition", + "name": "api-docs", + "declaration": { + "name": "ApiDocs", + "module": "src/api-docs.ts" + } } ] }, { - "name": "fancy-accordion", - "path": "./src/fixtures/fancy-accordion.ts", - "description": "A custom element implementing the accordion widget: a vertically stacked set of expandable panels\nthat wraps several instances of the `` element. Only one panel can be opened\n(expanded) at a time.\n\nPanel headings function as controls that enable users to open (expand) or hide (collapse) their\nassociated sections of content. The user can toggle panels by mouse click, Enter and Space keys.\n\nThe component supports keyboard navigation and is aligned with the\n[WAI-ARIA Authoring Practices](https://www.w3.org/TR/wai-aria-practices-1.1/#accordion).", - "attributes": [ - { - "name": "opened-index", - "description": "Index of the currently opened panel. By default all the panels are closed.\nOnly one panel can be opened at the same time. Setting `null` or `undefined`\ncloses all the accordion panels.", - "type": "number | null | undefined" + "kind": "javascript-module", + "path": "src/api-viewer-base.ts", + "declarations": [ + { + "kind": "class", + "description": "", + "name": "ApiViewerBase", + "members": [ + { + "kind": "field", + "name": "section", + "type": { + "text": "string" + }, + "default": "'docs'", + "attribute": "section" + }, + { + "kind": "field", + "name": "excludeKnobs", + "type": { + "text": "string | undefined" + }, + "attribute": "exclude-knobs" + }, + { + "kind": "field", + "name": "_id", + "type": { + "text": "number | undefined" + }, + "privacy": "protected", + "default": "id++" + }, + { + "kind": "method", + "name": "setTemplates", + "privacy": "public", + "return": { + "type": { + "text": "void" + } + }, + "parameters": [ + { + "name": "templates", + "optional": true, + "type": { + "text": "HTMLTemplateElement[]" + } + } + ] + }, + { + "kind": "method", + "name": "_onSelect", + "privacy": "private", + "return": { + "type": { + "text": "void" + } + }, + "parameters": [ + { + "name": "e", + "type": { + "text": "Event" + } + } + ] + }, + { + "kind": "method", + "name": "_onToggle", + "privacy": "private", + "return": { + "type": { + "text": "void" + } + }, + "parameters": [ + { + "name": "e", + "type": { + "text": "CustomEvent" + } + } + ] + }, + { + "kind": "field", + "name": "src", + "type": { + "text": "string | undefined" + }, + "attribute": "src", + "reflects": true, + "inheritedFrom": { + "name": "ApiViewerMixin", + "module": "src/api-viewer-mixin.ts" + } + }, + { + "kind": "field", + "name": "manifest", + "type": { + "text": "Package | undefined" + }, + "inheritedFrom": { + "name": "ApiViewerMixin", + "module": "src/api-viewer-mixin.ts" + } + }, + { + "kind": "field", + "name": "selected", + "type": { + "text": "string | undefined" + }, + "attribute": "selected", + "reflects": true, + "inheritedFrom": { + "name": "ApiViewerMixin", + "module": "src/api-viewer-mixin.ts" + } + }, + { + "kind": "field", + "name": "jsonFetched", + "type": { + "text": "Promise" + }, + "inheritedFrom": { + "name": "ApiViewerMixin", + "module": "src/api-viewer-mixin.ts" + } + }, + { + "kind": "field", + "name": "lastSrc", + "type": { + "text": "string | undefined" + }, + "privacy": "private", + "inheritedFrom": { + "name": "ApiViewerMixin", + "module": "src/api-viewer-mixin.ts" + } + }, + { + "kind": "method", + "name": "willUpdate", + "return": { + "type": { + "text": "void" + } + }, + "inheritedFrom": { + "name": "ApiViewerMixin", + "module": "src/api-viewer-mixin.ts" + } + } + ], + "attributes": [ + { + "name": "section", + "type": { + "text": "string" + }, + "default": "'docs'", + "fieldName": "section" + }, + { + "name": "exclude-knobs", + "type": { + "text": "string | undefined" + }, + "fieldName": "excludeKnobs" + }, + { + "name": "src", + "type": { + "text": "string | undefined" + }, + "fieldName": "src", + "inheritedFrom": { + "name": "ApiViewerMixin", + "module": "src/api-viewer-mixin.ts" + } + }, + { + "name": "selected", + "type": { + "text": "string | undefined" + }, + "fieldName": "selected", + "inheritedFrom": { + "name": "ApiViewerMixin", + "module": "src/api-viewer-mixin.ts" + } + } + ], + "mixins": [ + { + "name": "ApiViewerMixin", + "module": "/src/api-viewer-mixin.js" + } + ], + "superclass": { + "name": "LitElement", + "package": "lit" + }, + "customElement": true } ], - "properties": [ + "exports": [ { - "name": "openedIndex", - "attribute": "opened-index", - "description": "Index of the currently opened panel. By default all the panels are closed.\nOnly one panel can be opened at the same time. Setting `null` or `undefined`\ncloses all the accordion panels.", - "type": "number | null | undefined" - }, + "kind": "js", + "name": "ApiViewerBase", + "declaration": { + "name": "ApiViewerBase", + "module": "src/api-viewer-base.ts" + } + } + ] + }, + { + "kind": "javascript-module", + "path": "src/api-viewer-demo.ts", + "declarations": [ { - "name": "focused", - "type": "Element | null" + "kind": "class", + "description": "", + "name": "ApiViewerDemo", + "members": [ + { + "kind": "field", + "name": "copyBtnText", + "type": { + "text": "string" + }, + "default": "'copy'", + "attribute": "copyBtnText" + }, + { + "kind": "field", + "name": "_whenDefined", + "type": { + "text": "Record>" + }, + "privacy": "private", + "default": "{}" + }, + { + "kind": "method", + "name": "createRenderRoot", + "privacy": "protected", + "return": { + "type": { + "text": "this" + } + } + }, + { + "kind": "method", + "name": "_onLogClear", + "privacy": "private", + "return": { + "type": { + "text": "void" + } + } + }, + { + "kind": "method", + "name": "_onCopyClick", + "privacy": "private", + "return": { + "type": { + "text": "void" + } + } + }, + { + "kind": "method", + "name": "_onCssChanged", + "privacy": "private", + "return": { + "type": { + "text": "void" + } + }, + "parameters": [ + { + "name": "e", + "type": { + "text": "CustomEvent" + } + } + ] + }, + { + "kind": "method", + "name": "_onPropChanged", + "privacy": "private", + "return": { + "type": { + "text": "void" + } + }, + "parameters": [ + { + "name": "e", + "type": { + "text": "Event" + } + } + ] + }, + { + "kind": "method", + "name": "_onSlotChanged", + "privacy": "private", + "return": { + "type": { + "text": "void" + } + }, + "parameters": [ + { + "name": "e", + "type": { + "text": "Event" + } + } + ] + }, + { + "kind": "field", + "name": "tag", + "type": { + "text": "string" + }, + "default": "''", + "attribute": "tag", + "inheritedFrom": { + "name": "ApiDemoLayoutMixin", + "module": "src/api-demo-layout-mixin.ts" + } + }, + { + "kind": "field", + "name": "members", + "type": { + "text": "ClassMember[]" + }, + "default": "[]", + "inheritedFrom": { + "name": "ApiDemoLayoutMixin", + "module": "src/api-demo-layout-mixin.ts" + } + }, + { + "kind": "field", + "name": "attrs", + "type": { + "text": "Attribute[]" + }, + "default": "[]", + "inheritedFrom": { + "name": "ApiDemoLayoutMixin", + "module": "src/api-demo-layout-mixin.ts" + } + }, + { + "kind": "field", + "name": "slots", + "type": { + "text": "Slot[]" + }, + "default": "[]", + "inheritedFrom": { + "name": "ApiDemoLayoutMixin", + "module": "src/api-demo-layout-mixin.ts" + } + }, + { + "kind": "field", + "name": "events", + "type": { + "text": "Event[]" + }, + "default": "[]", + "inheritedFrom": { + "name": "ApiDemoLayoutMixin", + "module": "src/api-demo-layout-mixin.ts" + } + }, + { + "kind": "field", + "name": "cssProps", + "type": { + "text": "CssCustomProperty[]" + }, + "default": "[]", + "inheritedFrom": { + "name": "ApiDemoLayoutMixin", + "module": "src/api-demo-layout-mixin.ts" + } + }, + { + "kind": "field", + "name": "exclude", + "type": { + "text": "string" + }, + "default": "''", + "attribute": "exclude", + "inheritedFrom": { + "name": "ApiDemoLayoutMixin", + "module": "src/api-demo-layout-mixin.ts" + } + }, + { + "kind": "field", + "name": "vid", + "type": { + "text": "number | undefined" + }, + "attribute": "vid", + "inheritedFrom": { + "name": "ApiDemoLayoutMixin", + "module": "src/api-demo-layout-mixin.ts" + } + }, + { + "kind": "field", + "name": "processedSlots", + "type": { + "text": "SlotValue[]" + }, + "inheritedFrom": { + "name": "ApiDemoLayoutMixin", + "module": "src/api-demo-layout-mixin.ts" + } + }, + { + "kind": "field", + "name": "processedCss", + "type": { + "text": "CssCustomProperty[]" + }, + "inheritedFrom": { + "name": "ApiDemoLayoutMixin", + "module": "src/api-demo-layout-mixin.ts" + } + }, + { + "kind": "field", + "name": "eventLog", + "type": { + "text": "CustomEvent[]" + }, + "inheritedFrom": { + "name": "ApiDemoLayoutMixin", + "module": "src/api-demo-layout-mixin.ts" + } + }, + { + "kind": "field", + "name": "customKnobs", + "type": { + "text": "(ClassField & {\n options?: string[];\n })[]" + }, + "default": "[]", + "inheritedFrom": { + "name": "ApiDemoLayoutMixin", + "module": "src/api-demo-layout-mixin.ts" + } + }, + { + "kind": "field", + "name": "knobs", + "type": { + "text": "Record" + }, + "default": "{}", + "inheritedFrom": { + "name": "ApiDemoLayoutMixin", + "module": "src/api-demo-layout-mixin.ts" + } + }, + { + "kind": "field", + "name": "finalProps", + "type": { + "text": "ClassField[]" + }, + "inheritedFrom": { + "name": "ApiDemoLayoutMixin", + "module": "src/api-demo-layout-mixin.ts" + } + }, + { + "kind": "method", + "name": "willUpdate", + "parameters": [ + { + "name": "props", + "type": { + "text": "PropertyValues" + } + } + ], + "inheritedFrom": { + "name": "ApiDemoLayoutMixin", + "module": "src/api-demo-layout-mixin.ts" + } + }, + { + "kind": "method", + "name": "updated", + "privacy": "protected", + "return": { + "type": { + "text": "void" + } + }, + "parameters": [ + { + "name": "props", + "type": { + "text": "PropertyValues" + } + } + ], + "inheritedFrom": { + "name": "ApiDemoLayoutMixin", + "module": "src/api-demo-layout-mixin.ts" + } + }, + { + "kind": "method", + "name": "_getCustomKnobs", + "privacy": "private", + "return": { + "type": { + "text": "Knob[]" + } + }, + "inheritedFrom": { + "name": "ApiDemoLayoutMixin", + "module": "src/api-demo-layout-mixin.ts" + } + }, + { + "kind": "method", + "name": "_getProp", + "privacy": "private", + "return": { + "type": { + "text": "{ prop?: ClassField; custom?: boolean }" + } + }, + "parameters": [ + { + "name": "name", + "type": { + "text": "string" + } + } + ], + "inheritedFrom": { + "name": "ApiDemoLayoutMixin", + "module": "src/api-demo-layout-mixin.ts" + } + }, + { + "kind": "method", + "name": "setCss", + "return": { + "type": { + "text": "void" + } + }, + "parameters": [ + { + "name": "target", + "type": { + "text": "HTMLInputElement" + } + } + ], + "inheritedFrom": { + "name": "ApiDemoLayoutMixin", + "module": "src/api-demo-layout-mixin.ts" + } + }, + { + "kind": "method", + "name": "setKnobs", + "return": { + "type": { + "text": "void" + } + }, + "parameters": [ + { + "name": "target", + "type": { + "text": "HTMLInputElement" + } + } + ], + "inheritedFrom": { + "name": "ApiDemoLayoutMixin", + "module": "src/api-demo-layout-mixin.ts" + } + }, + { + "kind": "method", + "name": "setSlots", + "return": { + "type": { + "text": "void" + } + }, + "parameters": [ + { + "name": "target", + "type": { + "text": "HTMLInputElement" + } + } + ], + "inheritedFrom": { + "name": "ApiDemoLayoutMixin", + "module": "src/api-demo-layout-mixin.ts" + } + }, + { + "kind": "method", + "name": "onRendered", + "return": { + "type": { + "text": "void" + } + }, + "parameters": [ + { + "name": "e", + "type": { + "text": "CustomEvent" + } + } + ], + "inheritedFrom": { + "name": "ApiDemoLayoutMixin", + "module": "src/api-demo-layout-mixin.ts" + } + }, + { + "kind": "method", + "name": "_syncKnob", + "privacy": "private", + "return": { + "type": { + "text": "void" + } + }, + "parameters": [ + { + "name": "component", + "type": { + "text": "Element" + } + }, + { + "name": "changed", + "type": { + "text": "ClassField" + } + } + ], + "inheritedFrom": { + "name": "ApiDemoLayoutMixin", + "module": "src/api-demo-layout-mixin.ts" + } + } + ], + "attributes": [ + { + "name": "copyBtnText", + "type": { + "text": "string" + }, + "default": "'copy'", + "fieldName": "copyBtnText" + }, + { + "name": "tag", + "type": { + "text": "string" + }, + "default": "''", + "fieldName": "tag", + "inheritedFrom": { + "name": "ApiDemoLayoutMixin", + "module": "src/api-demo-layout-mixin.ts" + } + }, + { + "name": "exclude", + "type": { + "text": "string" + }, + "default": "''", + "fieldName": "exclude", + "inheritedFrom": { + "name": "ApiDemoLayoutMixin", + "module": "src/api-demo-layout-mixin.ts" + } + }, + { + "name": "vid", + "type": { + "text": "number | undefined" + }, + "fieldName": "vid", + "inheritedFrom": { + "name": "ApiDemoLayoutMixin", + "module": "src/api-demo-layout-mixin.ts" + } + } + ], + "mixins": [ + { + "name": "ApiDemoLayoutMixin", + "module": "/src/api-demo-layout-mixin.js" + } + ], + "superclass": { + "name": "LitElement", + "package": "lit" + }, + "tagName": "api-viewer-demo", + "customElement": true } ], - "events": [ + "exports": [ + { + "kind": "custom-element-definition", + "name": "api-viewer-demo", + "declaration": { + "name": "ApiViewerDemo", + "module": "src/api-viewer-demo.ts" + } + } + ] + }, + { + "kind": "javascript-module", + "path": "src/api-viewer-docs.ts", + "declarations": [ { - "name": "opened-index-changed", - "description": "Event fired when changing currently opened panel." + "kind": "class", + "description": "", + "name": "ApiViewerDocs", + "members": [ + { + "kind": "field", + "name": "name", + "type": { + "text": "string" + }, + "default": "''", + "attribute": "name" + }, + { + "kind": "field", + "name": "members", + "type": { + "text": "ClassMember[]" + }, + "default": "[]" + }, + { + "kind": "field", + "name": "attrs", + "type": { + "text": "Attribute[]" + }, + "default": "[]" + }, + { + "kind": "field", + "name": "slots", + "type": { + "text": "Slot[]" + }, + "default": "[]" + }, + { + "kind": "field", + "name": "events", + "type": { + "text": "Event[]" + }, + "default": "[]" + }, + { + "kind": "field", + "name": "cssParts", + "type": { + "text": "CssPart[]" + }, + "default": "[]" + }, + { + "kind": "field", + "name": "cssProps", + "type": { + "text": "CssCustomProperty[]" + }, + "default": "[]" + }, + { + "kind": "method", + "name": "createRenderRoot", + "privacy": "protected", + "return": { + "type": { + "text": "this" + } + } + } + ], + "attributes": [ + { + "name": "name", + "type": { + "text": "string" + }, + "default": "''", + "fieldName": "name" + } + ], + "superclass": { + "name": "LitElement", + "package": "lit" + }, + "tagName": "api-viewer-docs", + "customElement": true } ], - "slots": [ + "exports": [ { - "name": "", - "description": "Slot fot panel elements." + "kind": "custom-element-definition", + "name": "api-viewer-docs", + "declaration": { + "name": "ApiViewerDocs", + "module": "src/api-viewer-docs.ts" + } } ] }, { - "name": "intl-currency", - "path": "./src/fixtures/intl-currency.ts", - "description": "A custom element that formats currency using Intl.", - "attributes": [ - { - "name": "value", - "description": "Amount to be formatted.", - "type": "number", - "default": "0" + "kind": "javascript-module", + "path": "src/api-viewer-mixin.ts", + "declarations": [ + { + "kind": "function", + "name": "fetchJson", + "return": { + "type": { + "text": "Promise" + } + }, + "parameters": [ + { + "name": "src", + "type": { + "text": "string" + } + } + ] }, { - "name": "currency", - "description": "Currency code used for formatting.", - "type": "string | null | undefined", - "default": "\"EUR\"" + "kind": "variable", + "name": "emptyDataWarning", + "default": "html`\n
No custom elements found in the JSON file.
\n`" }, { - "name": "locale", - "description": "Locale code used for formatting.", - "type": "string | null | undefined", - "default": "\"en-GB\"" + "kind": "mixin", + "description": "", + "name": "ApiViewerMixin", + "members": [ + { + "kind": "field", + "name": "src", + "type": { + "text": "string | undefined" + }, + "attribute": "src", + "reflects": true + }, + { + "kind": "field", + "name": "manifest", + "type": { + "text": "Package | undefined" + } + }, + { + "kind": "field", + "name": "selected", + "type": { + "text": "string | undefined" + }, + "attribute": "selected", + "reflects": true + }, + { + "kind": "field", + "name": "jsonFetched", + "type": { + "text": "Promise" + } + }, + { + "kind": "field", + "name": "lastSrc", + "type": { + "text": "string | undefined" + }, + "privacy": "private" + }, + { + "kind": "method", + "name": "willUpdate", + "return": { + "type": { + "text": "void" + } + } + } + ], + "attributes": [ + { + "name": "src", + "type": { + "text": "string | undefined" + }, + "fieldName": "src" + }, + { + "name": "selected", + "type": { + "text": "string | undefined" + }, + "fieldName": "selected" + } + ], + "parameters": [ + { + "name": "base", + "type": { + "text": "T" + } + } + ] } ], - "properties": [ + "exports": [ { - "name": "value", - "attribute": "value", - "description": "Amount to be formatted.", - "type": "number", - "default": "0" + "kind": "js", + "name": "fetchJson", + "declaration": { + "name": "fetchJson", + "module": "src/api-viewer-mixin.ts" + } }, { - "name": "currency", - "attribute": "currency", - "description": "Currency code used for formatting.", - "type": "string | null | undefined", - "default": "\"EUR\"" + "kind": "js", + "name": "emptyDataWarning", + "declaration": { + "name": "emptyDataWarning", + "module": "src/api-viewer-mixin.ts" + } }, { - "name": "locale", - "attribute": "locale", - "description": "Locale code used for formatting.", - "type": "string | null | undefined", - "default": "\"en-GB\"" + "kind": "js", + "name": "ApiViewerMixin", + "declaration": { + "name": "ApiViewerMixin", + "module": "src/api-viewer-mixin.ts" + } } ] }, { - "name": "progress-bar", - "path": "./src/fixtures/progress-bar.ts", - "description": "A custom element similar to the HTML5 `` element.", - "attributes": [ - { - "name": "value", - "description": "Current progress value.", - "type": "number", - "default": "0.5" - }, + "kind": "javascript-module", + "path": "src/api-viewer-panel.ts", + "declarations": [ { - "name": "min", - "description": "Minimum bound of the progress bar.", - "type": "number", - "default": "0" - }, + "kind": "class", + "description": "", + "name": "ApiViewerPanel", + "members": [], + "superclass": { + "name": "LitElement", + "package": "lit" + }, + "tagName": "api-viewer-panel", + "customElement": true + } + ], + "exports": [ { - "name": "max", - "description": "Maximum bound of the progress bar.", - "type": "number", - "default": "1" + "kind": "js", + "name": "ApiViewerPanel", + "declaration": { + "name": "ApiViewerPanel", + "module": "src/api-viewer-panel.ts" + } }, { - "name": "indeterminate", - "description": "Indeterminate state of the progress bar.\nThis property takes precedence over other state properties (min, max, value).", - "type": "boolean", - "default": "false" + "kind": "custom-element-definition", + "name": "api-viewer-panel", + "declaration": { + "name": "ApiViewerPanel", + "module": "src/api-viewer-panel.ts" + } } - ], - "properties": [ + ] + }, + { + "kind": "javascript-module", + "path": "src/api-viewer-tab.ts", + "declarations": [ { - "name": "value", - "attribute": "value", - "description": "Current progress value.", - "type": "number", - "default": "0.5" - }, + "kind": "class", + "description": "", + "name": "ApiViewerTab", + "members": [ + { + "kind": "field", + "name": "selected", + "type": { + "text": "boolean" + }, + "default": "false", + "attribute": "selected", + "reflects": true + }, + { + "kind": "field", + "name": "heading", + "type": { + "text": "string" + }, + "default": "''", + "attribute": "heading" + }, + { + "kind": "field", + "name": "active", + "type": { + "text": "boolean" + }, + "default": "false", + "attribute": "active" + }, + { + "kind": "field", + "name": "_mousedown", + "type": { + "text": "boolean" + }, + "privacy": "private", + "default": "false" + }, + { + "kind": "method", + "name": "_setActive", + "privacy": "private", + "return": { + "type": { + "text": "void" + } + }, + "parameters": [ + { + "name": "active", + "type": { + "text": "boolean" + } + } + ] + }, + { + "kind": "method", + "name": "_setFocused", + "privacy": "private", + "return": { + "type": { + "text": "void" + } + }, + "parameters": [ + { + "name": "focused", + "type": { + "text": "boolean" + } + } + ] + } + ], + "attributes": [ + { + "name": "selected", + "type": { + "text": "boolean" + }, + "default": "false", + "fieldName": "selected" + }, + { + "name": "heading", + "type": { + "text": "string" + }, + "default": "''", + "fieldName": "heading" + }, + { + "name": "active", + "type": { + "text": "boolean" + }, + "default": "false", + "fieldName": "active" + } + ], + "superclass": { + "name": "LitElement", + "package": "lit" + }, + "tagName": "api-viewer-tab", + "customElement": true + } + ], + "exports": [ { - "name": "min", - "attribute": "min", - "description": "Minimum bound of the progress bar.", - "type": "number", - "default": "0" + "kind": "js", + "name": "ApiViewerTab", + "declaration": { + "name": "ApiViewerTab", + "module": "src/api-viewer-tab.ts" + } }, { - "name": "max", - "attribute": "max", - "description": "Maximum bound of the progress bar.", - "type": "number", - "default": "1" - }, + "kind": "custom-element-definition", + "name": "api-viewer-tab", + "declaration": { + "name": "ApiViewerTab", + "module": "src/api-viewer-tab.ts" + } + } + ] + }, + { + "kind": "javascript-module", + "path": "src/api-viewer-tabs.ts", + "declarations": [ { - "name": "indeterminate", - "attribute": "indeterminate", - "description": "Indeterminate state of the progress bar.\nThis property takes precedence over other state properties (min, max, value).", - "type": "boolean", - "default": "false" + "kind": "class", + "description": "", + "name": "ApiViewerTabs", + "members": [ + { + "kind": "field", + "name": "_boundSlotChange", + "privacy": "private" + }, + { + "kind": "method", + "name": "_onSlotChange", + "privacy": "private", + "return": { + "type": { + "text": "void" + } + } + }, + { + "kind": "method", + "name": "_linkPanels", + "privacy": "private", + "return": { + "type": { + "text": "void" + } + } + }, + { + "kind": "method", + "name": "_allPanels", + "privacy": "private", + "return": { + "type": { + "text": "ApiViewerPanel[]" + } + } + }, + { + "kind": "method", + "name": "_allTabs", + "privacy": "private", + "return": { + "type": { + "text": "ApiViewerTab[]" + } + } + }, + { + "kind": "method", + "name": "_getAvailableIndex", + "privacy": "private", + "return": { + "type": { + "text": "number" + } + }, + "parameters": [ + { + "name": "idx", + "type": { + "text": "number" + } + }, + { + "name": "increment", + "type": { + "text": "number" + } + } + ] + }, + { + "kind": "method", + "name": "_panelForTab", + "privacy": "private", + "return": { + "type": { + "text": "ApiViewerPanel | null" + } + }, + "parameters": [ + { + "name": "tab", + "type": { + "text": "ApiViewerTab" + } + } + ] + }, + { + "kind": "method", + "name": "_prevTab", + "privacy": "private", + "return": { + "type": { + "text": "ApiViewerTab" + } + } + }, + { + "kind": "method", + "name": "_firstTab", + "privacy": "private", + "return": { + "type": { + "text": "ApiViewerTab" + } + } + }, + { + "kind": "method", + "name": "_lastTab", + "privacy": "private", + "return": { + "type": { + "text": "ApiViewerTab" + } + } + }, + { + "kind": "method", + "name": "_nextTab", + "privacy": "private", + "return": { + "type": { + "text": "ApiViewerTab" + } + } + }, + { + "kind": "method", + "name": "reset", + "privacy": "public", + "return": { + "type": { + "text": "void" + } + }, + "description": "`reset()` marks all tabs as deselected and hides all the panels." + }, + { + "kind": "method", + "name": "selectFirst", + "privacy": "public", + "return": { + "type": { + "text": "void" + } + }, + "description": "`selectFirst()` automatically selects first non-hidden tab." + }, + { + "kind": "method", + "name": "_selectTab", + "privacy": "private", + "return": { + "type": { + "text": "void" + } + }, + "parameters": [ + { + "name": "newTab", + "type": { + "text": "ApiViewerTab" + } + } + ] + }, + { + "kind": "method", + "name": "_onKeyDown", + "privacy": "private", + "return": { + "type": { + "text": "void" + } + }, + "parameters": [ + { + "name": "event", + "type": { + "text": "KeyboardEvent" + } + } + ] + }, + { + "kind": "method", + "name": "_onClick", + "privacy": "private", + "return": { + "type": { + "text": "void" + } + }, + "parameters": [ + { + "name": "event", + "type": { + "text": "MouseEvent" + } + } + ] + } + ], + "superclass": { + "name": "LitElement", + "package": "lit" + }, + "tagName": "api-viewer-tabs", + "customElement": true } ], - "cssProperties": [ + "exports": [ { - "name": "--progress-bar-fill-color", - "description": "Color of the filled progress bar part.", - "type": "Color", - "default": "\"#6200ee\"" + "kind": "js", + "name": "ApiViewerTabs", + "declaration": { + "name": "ApiViewerTabs", + "module": "src/api-viewer-tabs.ts" + } }, { - "name": "--progress-bar-opacity", - "description": "Opacity set on the underlying track.", - "default": "0.16" + "kind": "custom-element-definition", + "name": "api-viewer-tabs", + "declaration": { + "name": "ApiViewerTabs", + "module": "src/api-viewer-tabs.ts" + } + } + ] + }, + { + "kind": "javascript-module", + "path": "src/api-viewer.ts", + "declarations": [ + { + "kind": "class", + "description": "", + "name": "ApiViewer", + "members": [ + { + "kind": "method", + "name": "setTemplates", + "privacy": "public", + "return": { + "type": { + "text": "void" + } + }, + "parameters": [ + { + "name": "templates", + "optional": true, + "type": { + "text": "HTMLTemplateElement[]" + } + } + ], + "inheritedFrom": { + "name": "ApiViewerBase", + "module": "src/api-viewer-base.ts" + } + }, + { + "kind": "field", + "name": "section", + "type": { + "text": "string" + }, + "default": "'docs'", + "attribute": "section", + "inheritedFrom": { + "name": "ApiViewerBase", + "module": "src/api-viewer-base.ts" + } + }, + { + "kind": "field", + "name": "excludeKnobs", + "type": { + "text": "string | undefined" + }, + "attribute": "exclude-knobs", + "inheritedFrom": { + "name": "ApiViewerBase", + "module": "src/api-viewer-base.ts" + } + }, + { + "kind": "field", + "name": "_id", + "type": { + "text": "number | undefined" + }, + "privacy": "protected", + "default": "id++", + "inheritedFrom": { + "name": "ApiViewerBase", + "module": "src/api-viewer-base.ts" + } + }, + { + "kind": "method", + "name": "_onSelect", + "privacy": "private", + "return": { + "type": { + "text": "void" + } + }, + "parameters": [ + { + "name": "e", + "type": { + "text": "Event" + } + } + ], + "inheritedFrom": { + "name": "ApiViewerBase", + "module": "src/api-viewer-base.ts" + } + }, + { + "kind": "method", + "name": "_onToggle", + "privacy": "private", + "return": { + "type": { + "text": "void" + } + }, + "parameters": [ + { + "name": "e", + "type": { + "text": "CustomEvent" + } + } + ], + "inheritedFrom": { + "name": "ApiViewerBase", + "module": "src/api-viewer-base.ts" + } + }, + { + "kind": "field", + "name": "src", + "type": { + "text": "string | undefined" + }, + "attribute": "src", + "reflects": true, + "inheritedFrom": { + "name": "ApiViewerBase", + "module": "src/api-viewer-base.ts" + } + }, + { + "kind": "field", + "name": "manifest", + "type": { + "text": "Package | undefined" + }, + "inheritedFrom": { + "name": "ApiViewerBase", + "module": "src/api-viewer-base.ts" + } + }, + { + "kind": "field", + "name": "selected", + "type": { + "text": "string | undefined" + }, + "attribute": "selected", + "reflects": true, + "inheritedFrom": { + "name": "ApiViewerBase", + "module": "src/api-viewer-base.ts" + } + }, + { + "kind": "field", + "name": "jsonFetched", + "type": { + "text": "Promise" + }, + "inheritedFrom": { + "name": "ApiViewerBase", + "module": "src/api-viewer-base.ts" + } + }, + { + "kind": "field", + "name": "lastSrc", + "type": { + "text": "string | undefined" + }, + "privacy": "private", + "inheritedFrom": { + "name": "ApiViewerBase", + "module": "src/api-viewer-base.ts" + } + }, + { + "kind": "method", + "name": "willUpdate", + "return": { + "type": { + "text": "void" + } + }, + "inheritedFrom": { + "name": "ApiViewerBase", + "module": "src/api-viewer-base.ts" + } + } + ], + "superclass": { + "name": "ApiViewerBase", + "module": "/src/api-viewer-base.js" + }, + "tagName": "api-viewer", + "customElement": true, + "attributes": [ + { + "name": "section", + "type": { + "text": "string" + }, + "default": "'docs'", + "fieldName": "section", + "inheritedFrom": { + "name": "ApiViewerBase", + "module": "src/api-viewer-base.ts" + } + }, + { + "name": "exclude-knobs", + "type": { + "text": "string | undefined" + }, + "fieldName": "excludeKnobs", + "inheritedFrom": { + "name": "ApiViewerBase", + "module": "src/api-viewer-base.ts" + } + }, + { + "name": "src", + "type": { + "text": "string | undefined" + }, + "fieldName": "src", + "inheritedFrom": { + "name": "ApiViewerBase", + "module": "src/api-viewer-base.ts" + } + }, + { + "name": "selected", + "type": { + "text": "string | undefined" + }, + "fieldName": "selected", + "inheritedFrom": { + "name": "ApiViewerBase", + "module": "src/api-viewer-base.ts" + } + } + ] } ], - "cssParts": [ + "exports": [ { - "name": "bar", - "description": "A progress bar background." + "kind": "js", + "name": "ApiViewer", + "declaration": { + "name": "ApiViewer", + "module": "src/api-viewer.ts" + } }, { - "name": "value", - "description": "A progress bar foreground." + "kind": "custom-element-definition", + "name": "api-viewer", + "declaration": { + "name": "ApiViewer", + "module": "src/api-viewer.ts" + } } ] } ] -} \ No newline at end of file +} diff --git a/demo/custom-elements.json b/demo/custom-elements.json new file mode 100644 index 0000000..78ee9d9 --- /dev/null +++ b/demo/custom-elements.json @@ -0,0 +1,762 @@ +{ + "schemaVersion": "1.0.0", + "readme": "", + "modules": [ + { + "kind": "javascript-module", + "path": "src/fixtures/expansion-panel.ts", + "declarations": [ + { + "kind": "class", + "description": "A custom element similar to the HTML5 `
` element.", + "name": "ExpansionPanel", + "cssProperties": [ + { + "type": { + "text": "Background" + }, + "description": "Default panel header background color.", + "name": "--panel-header-background", + "default": "#fff" + }, + { + "description": "Panel header minimum height.", + "name": "--panel-header-min-height", + "default": "48px" + }, + { + "type": { + "text": "Background" + }, + "description": "Active toggle button ripple background.", + "name": "--panel-ripple-background", + "default": "rgba(0, 0, 0, 0.38)" + } + ], + "cssParts": [ + { + "description": "An element wrapping the `header` slot.", + "name": "header" + }, + { + "description": "A toggle button, child of the header part.", + "name": "toggle" + }, + { + "description": "An element wrapping the `content` slot.", + "name": "content" + } + ], + "slots": [ + { + "description": "Slot fot panel content", + "name": "" + }, + { + "description": "Slot for panel header", + "name": "header" + } + ], + "members": [ + { + "kind": "field", + "name": "opened", + "type": { + "text": "boolean | null | undefined" + }, + "default": "false", + "description": "When true, the panel content is expanded and visible", + "attribute": "opened", + "reflects": true + }, + { + "kind": "field", + "name": "disabled", + "type": { + "text": "boolean" + }, + "default": "false", + "description": "Disabled panel can not be expanded or collapsed", + "attribute": "disabled", + "reflects": true + }, + { + "kind": "field", + "name": "header", + "type": { + "text": "HTMLDivElement | undefined" + }, + "privacy": "protected" + }, + { + "kind": "field", + "name": "_isShiftTabbing", + "type": { + "text": "boolean" + }, + "privacy": "protected", + "default": "false" + }, + { + "kind": "field", + "name": "_tabPressed", + "type": { + "text": "boolean" + }, + "privacy": "protected", + "default": "false" + }, + { + "kind": "field", + "name": "_boundBodyKeydown", + "privacy": "private" + }, + { + "kind": "field", + "name": "_boundBodyKeyup", + "privacy": "private" + }, + { + "kind": "method", + "name": "focus", + "return": { + "type": { + "text": "void" + } + } + }, + { + "kind": "method", + "name": "_setFocused", + "privacy": "private", + "return": { + "type": { + "text": "void" + } + }, + "parameters": [ + { + "name": "focused", + "type": { + "text": "boolean" + } + } + ] + }, + { + "kind": "method", + "name": "_onToggleClick", + "privacy": "private", + "return": { + "type": { + "text": "void" + } + } + }, + { + "kind": "method", + "name": "_onToggleKeyDown", + "privacy": "private", + "return": { + "type": { + "text": "void" + } + }, + "parameters": [ + { + "name": "e", + "type": { + "text": "KeyboardEvent" + } + } + ] + }, + { + "kind": "method", + "name": "_onBodyKeydown", + "privacy": "private", + "return": { + "type": { + "text": "void" + } + }, + "parameters": [ + { + "name": "e", + "type": { + "text": "KeyboardEvent" + } + } + ] + }, + { + "kind": "method", + "name": "_onBodyKeyup", + "privacy": "private", + "return": { + "type": { + "text": "void" + } + } + } + ], + "events": [ + { + "name": "opened-changed", + "type": { + "text": "CustomEvent" + }, + "description": "Event fired when expanding / collapsing" + } + ], + "attributes": [ + { + "type": { + "text": "boolean" + }, + "description": "State attribute set when element has focus.", + "name": "focused" + }, + { + "type": { + "text": "boolean" + }, + "description": "State attribute set when focused from keyboard.", + "name": "focus-ring" + }, + { + "name": "opened", + "type": { + "text": "boolean | null | undefined" + }, + "default": "false", + "description": "When true, the panel content is expanded and visible", + "fieldName": "opened" + }, + { + "name": "disabled", + "type": { + "text": "boolean" + }, + "default": "false", + "description": "Disabled panel can not be expanded or collapsed", + "fieldName": "disabled" + } + ], + "superclass": { + "name": "LitElement", + "package": "lit" + }, + "tagName": "expansion-panel", + "customElement": true + } + ], + "exports": [ + { + "kind": "js", + "name": "ExpansionPanel", + "declaration": { + "name": "ExpansionPanel", + "module": "src/fixtures/expansion-panel.ts" + } + }, + { + "kind": "custom-element-definition", + "name": "expansion-panel", + "declaration": { + "name": "ExpansionPanel", + "module": "src/fixtures/expansion-panel.ts" + } + } + ] + }, + { + "kind": "javascript-module", + "path": "src/fixtures/fancy-accordion.ts", + "declarations": [ + { + "kind": "class", + "description": "A custom element implementing the accordion widget: a vertically stacked set of expandable panels\nthat wraps several instances of the `` element. Only one panel can be opened\n(expanded) at a time.\n\nPanel headings function as controls that enable users to open (expand) or hide (collapse) their\nassociated sections of content. The user can toggle panels by mouse click, Enter and Space keys.\n\nThe component supports keyboard navigation and is aligned with the\n[WAI-ARIA Authoring Practices](https://www.w3.org/TR/wai-aria-practices-1.1/#accordion).", + "name": "FancyAccordion", + "slots": [ + { + "description": "Slot fot panel elements.", + "name": "" + } + ], + "members": [ + { + "kind": "field", + "name": "openedIndex", + "type": { + "text": "number | null | undefined" + }, + "default": "null", + "description": "Index of the currently opened panel. By default all the panels are closed.\nOnly one panel can be opened at the same time. Setting `null` or `undefined`\ncloses all the accordion panels.", + "attribute": "opened-index" + }, + { + "kind": "field", + "name": "_items", + "type": { + "text": "ExpansionPanel[]" + }, + "privacy": "protected", + "default": "[]" + }, + { + "kind": "field", + "name": "_boundOnOpened", + "privacy": "private", + "default": "this._onOpened.bind(this)" + }, + { + "kind": "field", + "name": "focused", + "type": { + "text": "Element | null" + } + }, + { + "kind": "method", + "name": "_onKeydown", + "privacy": "private", + "return": { + "type": { + "text": "void" + } + }, + "parameters": [ + { + "name": "event", + "type": { + "text": "KeyboardEvent" + } + } + ] + }, + { + "kind": "method", + "name": "_getAvailableIndex", + "privacy": "private", + "return": { + "type": { + "text": "number" + } + }, + "parameters": [ + { + "name": "index", + "optional": true, + "type": { + "text": "number" + } + }, + { + "name": "increment", + "optional": true, + "type": { + "text": "number" + } + } + ] + }, + { + "kind": "method", + "name": "_onOpened", + "privacy": "private", + "return": { + "type": { + "text": "void" + } + }, + "parameters": [ + { + "name": "e", + "type": { + "text": "CustomEvent" + } + } + ] + }, + { + "kind": "method", + "name": "_notifyOpen", + "privacy": "private", + "return": { + "type": { + "text": "void" + } + } + } + ], + "events": [ + { + "name": "opened-index-changed", + "type": { + "text": "CustomEvent" + }, + "description": "Event fired when changing currently opened panel." + } + ], + "attributes": [ + { + "name": "opened-index", + "type": { + "text": "number | null | undefined" + }, + "default": "null", + "description": "Index of the currently opened panel. By default all the panels are closed.\nOnly one panel can be opened at the same time. Setting `null` or `undefined`\ncloses all the accordion panels.", + "fieldName": "openedIndex" + } + ], + "superclass": { + "name": "LitElement", + "package": "lit" + }, + "tagName": "fancy-accordion", + "customElement": true + } + ], + "exports": [ + { + "kind": "js", + "name": "FancyAccordion", + "declaration": { + "name": "FancyAccordion", + "module": "src/fixtures/fancy-accordion.ts" + } + }, + { + "kind": "custom-element-definition", + "name": "fancy-accordion", + "declaration": { + "name": "FancyAccordion", + "module": "src/fixtures/fancy-accordion.ts" + } + } + ] + }, + { + "kind": "javascript-module", + "path": "src/fixtures/intl-currency.ts", + "declarations": [ + { + "kind": "class", + "description": "A custom element that formats currency using Intl.", + "name": "IntlCurrency", + "members": [ + { + "kind": "field", + "name": "value", + "type": { + "text": "number" + }, + "default": "0", + "description": "Amount to be formatted.", + "attribute": "value" + }, + { + "kind": "field", + "name": "currency", + "type": { + "text": "string | null | undefined" + }, + "default": "'EUR'", + "description": "Currency code used for formatting.", + "attribute": "currency" + }, + { + "kind": "field", + "name": "locale", + "type": { + "text": "string | null | undefined" + }, + "default": "'en-GB'", + "description": "Locale code used for formatting.", + "attribute": "locale" + } + ], + "attributes": [ + { + "name": "value", + "type": { + "text": "number" + }, + "default": "0", + "description": "Amount to be formatted.", + "fieldName": "value" + }, + { + "name": "currency", + "type": { + "text": "string | null | undefined" + }, + "default": "'EUR'", + "description": "Currency code used for formatting.", + "fieldName": "currency" + }, + { + "name": "locale", + "type": { + "text": "string | null | undefined" + }, + "default": "'en-GB'", + "description": "Locale code used for formatting.", + "fieldName": "locale" + } + ], + "superclass": { + "name": "LitElement", + "package": "lit" + }, + "tagName": "intl-currency", + "customElement": true + } + ], + "exports": [ + { + "kind": "js", + "name": "IntlCurrency", + "declaration": { + "name": "IntlCurrency", + "module": "src/fixtures/intl-currency.ts" + } + }, + { + "kind": "custom-element-definition", + "name": "intl-currency", + "declaration": { + "name": "IntlCurrency", + "module": "src/fixtures/intl-currency.ts" + } + } + ] + }, + { + "kind": "javascript-module", + "path": "src/fixtures/progress-bar.ts", + "declarations": [ + { + "kind": "class", + "description": "A custom element similar to the HTML5 `` element.", + "name": "ProgressBar", + "cssProperties": [ + { + "type": { + "text": "Color" + }, + "description": "Color of the filled progress bar part.", + "name": "--progress-bar-fill-color", + "default": "#6200ee" + }, + { + "description": "Opacity set on the underlying track.", + "name": "--progress-bar-opacity", + "default": "0.16" + } + ], + "cssParts": [ + { + "description": "A progress bar background.", + "name": "bar" + }, + { + "description": "A progress bar foreground.", + "name": "value" + } + ], + "members": [ + { + "kind": "field", + "name": "value", + "type": { + "text": "number" + }, + "default": "0.5", + "description": "Current progress value.", + "attribute": "value" + }, + { + "kind": "field", + "name": "min", + "type": { + "text": "number" + }, + "default": "0", + "description": "Minimum bound of the progress bar.", + "attribute": "min" + }, + { + "kind": "field", + "name": "max", + "type": { + "text": "number" + }, + "default": "1", + "description": "Maximum bound of the progress bar.", + "attribute": "max" + }, + { + "kind": "field", + "name": "indeterminate", + "type": { + "text": "boolean" + }, + "default": "false", + "description": "Indeterminate state of the progress bar.\nThis property takes precedence over other state properties (min, max, value).", + "attribute": "indeterminate", + "reflects": true + }, + { + "kind": "method", + "name": "_normalizedValueChanged", + "privacy": "private", + "return": { + "type": { + "text": "void" + } + }, + "parameters": [ + { + "name": "value", + "type": { + "text": "number" + } + }, + { + "name": "min", + "type": { + "text": "number" + } + }, + { + "name": "max", + "type": { + "text": "number" + } + } + ] + }, + { + "kind": "method", + "name": "_valueChanged", + "privacy": "private", + "return": { + "type": { + "text": "void" + } + }, + "parameters": [ + { + "name": "value", + "type": { + "text": "number" + } + } + ] + }, + { + "kind": "method", + "name": "_minChanged", + "privacy": "private", + "return": { + "type": { + "text": "void" + } + }, + "parameters": [ + { + "name": "min", + "type": { + "text": "number" + } + } + ] + }, + { + "kind": "method", + "name": "_maxChanged", + "privacy": "private", + "return": { + "type": { + "text": "void" + } + }, + "parameters": [ + { + "name": "max", + "type": { + "text": "number" + } + } + ] + } + ], + "attributes": [ + { + "name": "value", + "type": { + "text": "number" + }, + "default": "0.5", + "description": "Current progress value.", + "fieldName": "value" + }, + { + "name": "min", + "type": { + "text": "number" + }, + "default": "0", + "description": "Minimum bound of the progress bar.", + "fieldName": "min" + }, + { + "name": "max", + "type": { + "text": "number" + }, + "default": "1", + "description": "Maximum bound of the progress bar.", + "fieldName": "max" + }, + { + "name": "indeterminate", + "type": { + "text": "boolean" + }, + "default": "false", + "description": "Indeterminate state of the progress bar.\nThis property takes precedence over other state properties (min, max, value).", + "fieldName": "indeterminate" + } + ], + "superclass": { + "name": "LitElement", + "package": "lit" + }, + "tagName": "progress-bar", + "customElement": true + } + ], + "exports": [ + { + "kind": "js", + "name": "ProgressBar", + "declaration": { + "name": "ProgressBar", + "module": "src/fixtures/progress-bar.ts" + } + }, + { + "kind": "custom-element-definition", + "name": "progress-bar", + "declaration": { + "name": "ProgressBar", + "module": "src/fixtures/progress-bar.ts" + } + } + ] + } + ] +} diff --git a/index.html b/index.html index cac1e05..91c5a4f 100755 --- a/index.html +++ b/index.html @@ -70,7 +70,7 @@

<api-viewer> element

- +