@teambit/docs 0.0.785 → 0.0.788

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.
package/dist/docs.d.ts CHANGED
@@ -1,4 +1,13 @@
1
- import React from 'react';
1
+ import React, { ReactElement } from 'react';
2
+ export declare type Example = {
3
+ title?: string;
4
+ description?: ReactElement;
5
+ scope?: {
6
+ [key: string]: any;
7
+ };
8
+ jsx?: JSX.Element;
9
+ code: string;
10
+ };
2
11
  export declare type Docs = {
3
12
  /**
4
13
  * default is the docs content.
@@ -12,4 +21,9 @@ export declare type Docs = {
12
21
  * array of labels.
13
22
  */
14
23
  labels: string[];
24
+ /**
25
+ * @deprecated
26
+ */
27
+ examples: Example[];
15
28
  };
29
+ export declare const defaultDocs: Docs;
package/dist/docs.js CHANGED
@@ -1,3 +1,15 @@
1
1
  "use strict";
2
2
 
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.defaultDocs = void 0;
7
+ const defaultDocs = {
8
+ default: () => null,
9
+ labels: [],
10
+ abstract: '',
11
+ examples: []
12
+ };
13
+ exports.defaultDocs = defaultDocs;
14
+
3
15
  //# sourceMappingURL=docs.js.map
package/dist/docs.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["docs.ts"],"sourcesContent":["import React from 'react';\n\nexport type Docs = {\n /**\n * default is the docs content.\n */\n default: React.ComponentType;\n\n /**\n * component abstract.\n */\n abstract: string;\n\n /**\n * array of labels.\n */\n labels: string[];\n};\n"],"mappings":""}
1
+ {"version":3,"names":["defaultDocs","default","labels","abstract","examples"],"sources":["docs.ts"],"sourcesContent":["import React, { ReactElement } from 'react';\n\nexport type Example = {\n title?: string;\n description?: ReactElement;\n scope?: { [key: string]: any };\n jsx?: JSX.Element;\n code: string;\n};\n\nexport type Docs = {\n /**\n * default is the docs content.\n */\n default: React.ComponentType;\n\n /**\n * component abstract.\n */\n abstract: string;\n\n /**\n * array of labels.\n */\n labels: string[];\n\n /**\n * @deprecated\n */\n examples: Example[];\n};\n\nexport const defaultDocs: Docs = {\n default: () => null,\n labels: [],\n abstract: '',\n examples: [],\n};\n"],"mappings":";;;;;;AAgCO,MAAMA,WAAiB,GAAG;EAC/BC,OAAO,EAAE,MAAM,IADgB;EAE/BC,MAAM,EAAE,EAFuB;EAG/BC,QAAQ,EAAE,EAHqB;EAI/BC,QAAQ,EAAE;AAJqB,CAA1B"}
@@ -1,7 +1,7 @@
1
1
  import { SlotRegistry } from '@teambit/harmony';
2
2
  import { LoggerMain, Logger } from '@teambit/logger';
3
3
  import { CompilerMain } from '@teambit/compiler';
4
- import { Component, ComponentMap } from '@teambit/component';
4
+ import { Component, ComponentMap, IComponent } from '@teambit/component';
5
5
  import { PkgMain } from '@teambit/pkg';
6
6
  import type { Environment } from '@teambit/envs';
7
7
  import { GraphqlMain } from '@teambit/graphql';
@@ -62,7 +62,7 @@ export declare class DocsMain {
62
62
  * compute a doc for a component.
63
63
  */
64
64
  computeDoc(component: Component): Promise<Doc | null>;
65
- getDoc(component: Component): Doc | null;
65
+ getDoc(component: IComponent): Doc | null;
66
66
  getPatterns(): string[];
67
67
  getComponentDevPatterns(component: Component): string[];
68
68
  getDevPatternToRegister(): (component: Component) => string[];
@@ -280,9 +280,9 @@ class DocsMain {
280
280
  }
281
281
 
282
282
  getDoc(component) {
283
- var _component$state$aspe, _component$state$aspe2;
283
+ var _component$get, _component$get$data;
284
284
 
285
- const docData = (_component$state$aspe = component.state.aspects.get(_docs().DocsAspect.id)) === null || _component$state$aspe === void 0 ? void 0 : (_component$state$aspe2 = _component$state$aspe.data) === null || _component$state$aspe2 === void 0 ? void 0 : _component$state$aspe2.doc;
285
+ const docData = (_component$get = component.get(_docs().DocsAspect.id)) === null || _component$get === void 0 ? void 0 : (_component$get$data = _component$get.data) === null || _component$get$data === void 0 ? void 0 : _component$get$data.doc;
286
286
  if (!docData) return null;
287
287
  return new (_docsEntities().Doc)(docData.filePath, new (_docsEntities().DocPropList)(docData.props));
288
288
  }
@@ -1 +1 @@
1
- {"version":3,"names":["DocsMain","constructor","patterns","preview","pkg","compiler","workspace","logger","devFiles","envs","docPropSlot","docReaderSlot","getDocsMap","components","ComponentMap","as","component","getDocsFiles","computeDevFiles","docFiles","get","DocsAspect","id","state","filesystem","files","filter","file","includes","relative","getDescription","componentDoc","getDoc","desc","description","consumerComponent","_consumer","fromJsDocs","docs","find","doc","getTemplate","env","getDocsTemplate","getDocReader","extension","values","docReader","isFormatSupported","computeDoc","length","docFile","extname","FileExtensionNotSupported","read","contents","err","debug","message","docData","aspects","data","Doc","filePath","DocPropList","props","getPatterns","getComponentDevPatterns","calculateEnv","componentEnvDocsDevPatterns","getDocsDevPatterns","componentPatterns","concat","getDevPatternToRegister","bind","registerDocReader","register","provider","graphql","loggerAspect","config","createLogger","DefaultDocReader","registerDevPattern","onComponentLoad","toObject","docsSchema","registerDefinition","DocsPreviewDefinition","Slot","withType","MainRuntime","PreviewAspect","GraphqlAspect","WorkspaceAspect","PkgAspect","CompilerAspect","LoggerAspect","DevFilesAspect","EnvsAspect","addRuntime"],"sources":["docs.main.runtime.ts"],"sourcesContent":["import { Slot, SlotRegistry } from '@teambit/harmony';\nimport { MainRuntime } from '@teambit/cli';\nimport { LoggerAspect, LoggerMain, Logger } from '@teambit/logger';\nimport { CompilerAspect, CompilerMain } from '@teambit/compiler';\nimport { Component, ComponentMap } from '@teambit/component';\nimport { PkgAspect, PkgMain } from '@teambit/pkg';\nimport type { Environment } from '@teambit/envs';\nimport { GraphqlAspect, GraphqlMain } from '@teambit/graphql';\nimport { PreviewAspect, PreviewMain } from '@teambit/preview';\nimport DevFilesAspect, { DevFilesMain } from '@teambit/dev-files';\nimport { AbstractVinyl } from '@teambit/legacy/dist/consumer/component/sources';\nimport ConsumerComponent from '@teambit/legacy/dist/consumer/component';\nimport { Workspace, WorkspaceAspect } from '@teambit/workspace';\nimport { Doc, DocPropList } from '@teambit/docs.entities.doc';\nimport { EnvsAspect, EnvsMain } from '@teambit/envs';\nimport { DocsAspect } from './docs.aspect';\nimport { DocsPreviewDefinition } from './docs.preview-definition';\nimport { docsSchema } from './docs.graphql';\nimport { DocReader } from './doc-reader';\nimport { DefaultDocReader } from './default-doc-reader';\nimport { FileExtensionNotSupported } from './exceptions';\n\nexport type ComponentDocs = {\n files: string[];\n component: Component;\n};\n\nexport type DocProp = {};\n\nexport type DocPropSlot = SlotRegistry<DocProp>;\n\nexport type DocReaderSlot = SlotRegistry<DocReader>;\n\nexport type DocsConfig = {\n /**\n * glob patterns to identify doc files.\n */\n patterns: string[];\n};\n\n/**\n * the component documentation extension.\n */\nexport class DocsMain {\n constructor(\n private patterns: string[],\n /**\n * envs extension.\n */\n private preview: PreviewMain,\n\n private pkg: PkgMain,\n\n private compiler: CompilerMain,\n\n private workspace: Workspace,\n\n private logger: Logger,\n\n private devFiles: DevFilesMain,\n\n private envs: EnvsMain,\n\n private docPropSlot: DocPropSlot,\n\n private docReaderSlot: DocReaderSlot\n ) {}\n\n /**\n * returns an array of doc file paths for a set of components.\n */\n getDocsMap(components: Component[]): ComponentMap<AbstractVinyl[]> {\n return ComponentMap.as<AbstractVinyl[]>(components, (component) => {\n return this.getDocsFiles(component);\n });\n }\n\n getDocsFiles(component: Component): AbstractVinyl[] {\n const devFiles = this.devFiles.computeDevFiles(component);\n const docFiles = devFiles.get(DocsAspect.id);\n return component.state.filesystem.files.filter((file) => docFiles.includes(file.relative));\n }\n\n /**\n * compute the description of the component from its source code and docs file.\n */\n async getDescription(component: Component): Promise<string> {\n const componentDoc = this.getDoc(component);\n const desc = componentDoc?.description;\n if (desc) return desc;\n const consumerComponent: ConsumerComponent = component.state._consumer;\n const fromJsDocs = consumerComponent.docs?.find((doc) => doc.description);\n\n return fromJsDocs?.description || '';\n }\n\n async getTemplate(env: Environment) {\n return env.getDocsTemplate();\n }\n\n getDocReader(extension: string) {\n return this.docReaderSlot.values().find((docReader) => docReader.isFormatSupported(extension));\n }\n\n /**\n * compute a doc for a component.\n */\n async computeDoc(component: Component) {\n const docFiles = this.getDocsFiles(component);\n if (docFiles.length) {\n // currently taking the the first docs file found with an abstract. (we support only one)\n const docFile = docFiles[0];\n\n try {\n const docReader = this.getDocReader(docFile.extname);\n if (!docReader) throw new FileExtensionNotSupported(docFile.relative, docFile.extname);\n const doc = await docReader.read(docFile.relative, docFile.contents, component);\n return doc;\n } catch (err: any) {\n // it's ok to fail here.\n this.logger.debug(`docs.main.runtime.computeDoc caught an error: ${err.message}`);\n return null;\n }\n }\n\n return null;\n }\n\n getDoc(component: Component) {\n const docData = component.state.aspects.get(DocsAspect.id)?.data?.doc;\n if (!docData) return null;\n return new Doc(docData.filePath, new DocPropList(docData.props));\n }\n\n getPatterns() {\n return this.patterns;\n }\n\n getComponentDevPatterns(component: Component) {\n const env = this.envs.calculateEnv(component).env;\n const componentEnvDocsDevPatterns: string[] = env.getDocsDevPatterns ? env.getDocsDevPatterns(component) : [];\n const componentPatterns = componentEnvDocsDevPatterns.concat(this.getPatterns());\n return componentPatterns;\n }\n\n getDevPatternToRegister() {\n return this.getComponentDevPatterns.bind(this);\n }\n /**\n * register a new doc reader. this allows to support further\n * documentation file formats.\n */\n registerDocReader(docReader: DocReader) {\n this.docReaderSlot.register(docReader);\n return this;\n }\n\n static slots = [Slot.withType<DocProp>(), Slot.withType<DocReader>()];\n\n static runtime = MainRuntime;\n static dependencies = [\n PreviewAspect,\n GraphqlAspect,\n WorkspaceAspect,\n PkgAspect,\n CompilerAspect,\n LoggerAspect,\n DevFilesAspect,\n EnvsAspect,\n ];\n\n static defaultConfig = {\n patterns: ['**/*.docs.*'],\n };\n\n static async provider(\n [preview, graphql, workspace, pkg, compiler, loggerAspect, devFiles, envs]: [\n PreviewMain,\n GraphqlMain,\n Workspace,\n PkgMain,\n CompilerMain,\n LoggerMain,\n DevFilesMain,\n EnvsMain\n ],\n config: DocsConfig,\n [docPropSlot, docReaderSlot]: [DocPropSlot, DocReaderSlot]\n ) {\n const logger = loggerAspect.createLogger(DocsAspect.id);\n const docs = new DocsMain(\n config.patterns,\n\n preview,\n\n pkg,\n\n compiler,\n\n workspace,\n\n logger,\n\n devFiles,\n\n envs,\n\n docPropSlot,\n\n docReaderSlot\n );\n docs.registerDocReader(new DefaultDocReader(pkg, compiler, workspace));\n devFiles.registerDevPattern(docs.getDevPatternToRegister());\n\n if (workspace) {\n workspace.onComponentLoad(async (component) => {\n const doc = await docs.computeDoc(component);\n\n return {\n doc: doc?.toObject(),\n };\n });\n }\n\n graphql.register(docsSchema(docs));\n\n preview.registerDefinition(new DocsPreviewDefinition(docs));\n return docs;\n }\n}\n\nDocsAspect.addRuntime(DocsMain);\n"],"mappings":"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"}
1
+ {"version":3,"names":["DocsMain","constructor","patterns","preview","pkg","compiler","workspace","logger","devFiles","envs","docPropSlot","docReaderSlot","getDocsMap","components","ComponentMap","as","component","getDocsFiles","computeDevFiles","docFiles","get","DocsAspect","id","state","filesystem","files","filter","file","includes","relative","getDescription","componentDoc","getDoc","desc","description","consumerComponent","_consumer","fromJsDocs","docs","find","doc","getTemplate","env","getDocsTemplate","getDocReader","extension","values","docReader","isFormatSupported","computeDoc","length","docFile","extname","FileExtensionNotSupported","read","contents","err","debug","message","docData","data","Doc","filePath","DocPropList","props","getPatterns","getComponentDevPatterns","calculateEnv","componentEnvDocsDevPatterns","getDocsDevPatterns","componentPatterns","concat","getDevPatternToRegister","bind","registerDocReader","register","provider","graphql","loggerAspect","config","createLogger","DefaultDocReader","registerDevPattern","onComponentLoad","toObject","docsSchema","registerDefinition","DocsPreviewDefinition","Slot","withType","MainRuntime","PreviewAspect","GraphqlAspect","WorkspaceAspect","PkgAspect","CompilerAspect","LoggerAspect","DevFilesAspect","EnvsAspect","addRuntime"],"sources":["docs.main.runtime.ts"],"sourcesContent":["import { Slot, SlotRegistry } from '@teambit/harmony';\nimport { MainRuntime } from '@teambit/cli';\nimport { LoggerAspect, LoggerMain, Logger } from '@teambit/logger';\nimport { CompilerAspect, CompilerMain } from '@teambit/compiler';\nimport { Component, ComponentMap, IComponent } from '@teambit/component';\nimport { PkgAspect, PkgMain } from '@teambit/pkg';\nimport type { Environment } from '@teambit/envs';\nimport { GraphqlAspect, GraphqlMain } from '@teambit/graphql';\nimport { PreviewAspect, PreviewMain } from '@teambit/preview';\nimport DevFilesAspect, { DevFilesMain } from '@teambit/dev-files';\nimport { AbstractVinyl } from '@teambit/legacy/dist/consumer/component/sources';\nimport ConsumerComponent from '@teambit/legacy/dist/consumer/component';\nimport { Workspace, WorkspaceAspect } from '@teambit/workspace';\nimport { Doc, DocPropList } from '@teambit/docs.entities.doc';\nimport { EnvsAspect, EnvsMain } from '@teambit/envs';\nimport { DocsAspect } from './docs.aspect';\nimport { DocsPreviewDefinition } from './docs.preview-definition';\nimport { docsSchema } from './docs.graphql';\nimport { DocReader } from './doc-reader';\nimport { DefaultDocReader } from './default-doc-reader';\nimport { FileExtensionNotSupported } from './exceptions';\n\nexport type ComponentDocs = {\n files: string[];\n component: Component;\n};\n\nexport type DocProp = {};\n\nexport type DocPropSlot = SlotRegistry<DocProp>;\n\nexport type DocReaderSlot = SlotRegistry<DocReader>;\n\nexport type DocsConfig = {\n /**\n * glob patterns to identify doc files.\n */\n patterns: string[];\n};\n\n/**\n * the component documentation extension.\n */\nexport class DocsMain {\n constructor(\n private patterns: string[],\n /**\n * envs extension.\n */\n private preview: PreviewMain,\n\n private pkg: PkgMain,\n\n private compiler: CompilerMain,\n\n private workspace: Workspace,\n\n private logger: Logger,\n\n private devFiles: DevFilesMain,\n\n private envs: EnvsMain,\n\n private docPropSlot: DocPropSlot,\n\n private docReaderSlot: DocReaderSlot\n ) {}\n\n /**\n * returns an array of doc file paths for a set of components.\n */\n getDocsMap(components: Component[]): ComponentMap<AbstractVinyl[]> {\n return ComponentMap.as<AbstractVinyl[]>(components, (component) => {\n return this.getDocsFiles(component);\n });\n }\n\n getDocsFiles(component: Component): AbstractVinyl[] {\n const devFiles = this.devFiles.computeDevFiles(component);\n const docFiles = devFiles.get(DocsAspect.id);\n return component.state.filesystem.files.filter((file) => docFiles.includes(file.relative));\n }\n\n /**\n * compute the description of the component from its source code and docs file.\n */\n async getDescription(component: Component): Promise<string> {\n const componentDoc = this.getDoc(component);\n const desc = componentDoc?.description;\n if (desc) return desc;\n const consumerComponent: ConsumerComponent = component.state._consumer;\n const fromJsDocs = consumerComponent.docs?.find((doc) => doc.description);\n\n return fromJsDocs?.description || '';\n }\n\n async getTemplate(env: Environment) {\n return env.getDocsTemplate();\n }\n\n getDocReader(extension: string) {\n return this.docReaderSlot.values().find((docReader) => docReader.isFormatSupported(extension));\n }\n\n /**\n * compute a doc for a component.\n */\n async computeDoc(component: Component) {\n const docFiles = this.getDocsFiles(component);\n if (docFiles.length) {\n // currently taking the the first docs file found with an abstract. (we support only one)\n const docFile = docFiles[0];\n\n try {\n const docReader = this.getDocReader(docFile.extname);\n if (!docReader) throw new FileExtensionNotSupported(docFile.relative, docFile.extname);\n const doc = await docReader.read(docFile.relative, docFile.contents, component);\n return doc;\n } catch (err: any) {\n // it's ok to fail here.\n this.logger.debug(`docs.main.runtime.computeDoc caught an error: ${err.message}`);\n return null;\n }\n }\n\n return null;\n }\n\n getDoc(component: IComponent) {\n const docData = component.get(DocsAspect.id)?.data?.doc;\n if (!docData) return null;\n return new Doc(docData.filePath, new DocPropList(docData.props));\n }\n\n getPatterns() {\n return this.patterns;\n }\n\n getComponentDevPatterns(component: Component) {\n const env = this.envs.calculateEnv(component).env;\n const componentEnvDocsDevPatterns: string[] = env.getDocsDevPatterns ? env.getDocsDevPatterns(component) : [];\n const componentPatterns = componentEnvDocsDevPatterns.concat(this.getPatterns());\n return componentPatterns;\n }\n\n getDevPatternToRegister() {\n return this.getComponentDevPatterns.bind(this);\n }\n /**\n * register a new doc reader. this allows to support further\n * documentation file formats.\n */\n registerDocReader(docReader: DocReader) {\n this.docReaderSlot.register(docReader);\n return this;\n }\n\n static slots = [Slot.withType<DocProp>(), Slot.withType<DocReader>()];\n\n static runtime = MainRuntime;\n static dependencies = [\n PreviewAspect,\n GraphqlAspect,\n WorkspaceAspect,\n PkgAspect,\n CompilerAspect,\n LoggerAspect,\n DevFilesAspect,\n EnvsAspect,\n ];\n\n static defaultConfig = {\n patterns: ['**/*.docs.*'],\n };\n\n static async provider(\n [preview, graphql, workspace, pkg, compiler, loggerAspect, devFiles, envs]: [\n PreviewMain,\n GraphqlMain,\n Workspace,\n PkgMain,\n CompilerMain,\n LoggerMain,\n DevFilesMain,\n EnvsMain\n ],\n config: DocsConfig,\n [docPropSlot, docReaderSlot]: [DocPropSlot, DocReaderSlot]\n ) {\n const logger = loggerAspect.createLogger(DocsAspect.id);\n const docs = new DocsMain(\n config.patterns,\n\n preview,\n\n pkg,\n\n compiler,\n\n workspace,\n\n logger,\n\n devFiles,\n\n envs,\n\n docPropSlot,\n\n docReaderSlot\n );\n docs.registerDocReader(new DefaultDocReader(pkg, compiler, workspace));\n devFiles.registerDevPattern(docs.getDevPatternToRegister());\n\n if (workspace) {\n workspace.onComponentLoad(async (component) => {\n const doc = await docs.computeDoc(component);\n\n return {\n doc: doc?.toObject(),\n };\n });\n }\n\n graphql.register(docsSchema(docs));\n\n preview.registerDefinition(new DocsPreviewDefinition(docs));\n return docs;\n }\n}\n\nDocsAspect.addRuntime(DocsMain);\n"],"mappings":"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"}
@@ -1,5 +1,14 @@
1
+ import React from 'react';
1
2
  import { RenderingContext, PreviewPreview, PreviewModule } from '@teambit/preview';
2
3
  import { ComponentID } from '@teambit/component-id';
4
+ import type { Docs } from './docs';
5
+ export declare type DocsRootProps = {
6
+ Provider: React.ComponentType | undefined;
7
+ componentId: string;
8
+ docs: Docs | undefined;
9
+ compositions: any;
10
+ context: RenderingContext;
11
+ };
3
12
  export declare class DocsPreview {
4
13
  /**
5
14
  * preview extension.
@@ -60,7 +60,25 @@ class DocsPreview {
60
60
  this.preview = preview;
61
61
  (0, _defineProperty2().default)(this, "render", (componentId, modules, [compositions], context) => {
62
62
  const docsModule = this.selectPreviewModel(componentId.fullName, modules);
63
- modules.mainModule.default(NoopProvider, componentId.toString(), docsModule, compositions, context);
63
+ const isObject = !!modules.mainModule.default.apiObject;
64
+ /**
65
+ * for backwards compatibility - can be removed end of 2022
66
+ */
67
+
68
+ if (!isObject) {
69
+ const docsPropsArray = [NoopProvider, componentId.toString(), docsModule, compositions, context];
70
+ modules.mainModule.default(...docsPropsArray);
71
+ return;
72
+ }
73
+
74
+ const docsProps = {
75
+ Provider: NoopProvider,
76
+ componentId: componentId.toString(),
77
+ docs: docsModule,
78
+ compositions,
79
+ context
80
+ };
81
+ modules.mainModule.default(docsProps);
64
82
  });
65
83
  }
66
84
 
@@ -1 +1 @@
1
- {"version":3,"names":["DocsPreview","constructor","preview","componentId","modules","compositions","context","docsModule","selectPreviewModel","fullName","mainModule","default","NoopProvider","toString","relevant","componentMap","undefined","provider","docsPreview","registerPreview","name","render","bind","include","PreviewRuntime","PreviewAspect","DocsAspect","addRuntime","children"],"sources":["docs.preview.runtime.tsx"],"sourcesContent":["import React, { ReactNode } from 'react';\nimport { PreviewAspect, RenderingContext, PreviewPreview, PreviewRuntime, PreviewModule } from '@teambit/preview';\nimport { ComponentID } from '@teambit/component-id';\n\nimport { DocsAspect } from './docs.aspect';\n\nexport class DocsPreview {\n constructor(\n /**\n * preview extension.\n */\n private preview: PreviewPreview\n ) {}\n\n render = (componentId: ComponentID, modules: PreviewModule, [compositions]: [any], context: RenderingContext) => {\n const docsModule = this.selectPreviewModel(componentId.fullName, modules);\n\n modules.mainModule.default(NoopProvider, componentId.toString(), docsModule, compositions, context);\n };\n\n selectPreviewModel(componentId: string, modules: PreviewModule) {\n const relevant = modules.componentMap[componentId];\n if (!relevant) return undefined;\n\n // only one doc file is supported.\n return relevant[0];\n }\n\n static runtime = PreviewRuntime;\n static dependencies = [PreviewAspect];\n\n static async provider([preview]: [PreviewPreview]) {\n const docsPreview = new DocsPreview(preview);\n preview.registerPreview({\n name: 'overview',\n render: docsPreview.render.bind(docsPreview),\n selectPreviewModel: docsPreview.selectPreviewModel.bind(docsPreview),\n include: ['compositions'],\n });\n\n return docsPreview;\n }\n}\n\nDocsAspect.addRuntime(DocsPreview);\n\nfunction NoopProvider({ children }: { children: ReactNode }) {\n return <>{children}</>;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAGA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAEO,MAAMA,WAAN,CAAkB;EACvBC,WAAW;EACT;AACJ;AACA;EACYC,OAJC,EAKT;IAAA,KADQA,OACR,GADQA,OACR;IAAA,gDAEO,CAACC,WAAD,EAA2BC,OAA3B,EAAmD,CAACC,YAAD,CAAnD,EAA0EC,OAA1E,KAAwG;MAC/G,MAAMC,UAAU,GAAG,KAAKC,kBAAL,CAAwBL,WAAW,CAACM,QAApC,EAA8CL,OAA9C,CAAnB;MAEAA,OAAO,CAACM,UAAR,CAAmBC,OAAnB,CAA2BC,YAA3B,EAAyCT,WAAW,CAACU,QAAZ,EAAzC,EAAiEN,UAAjE,EAA6EF,YAA7E,EAA2FC,OAA3F;IACD,CANC;EAAE;;EAQJE,kBAAkB,CAACL,WAAD,EAAsBC,OAAtB,EAA8C;IAC9D,MAAMU,QAAQ,GAAGV,OAAO,CAACW,YAAR,CAAqBZ,WAArB,CAAjB;IACA,IAAI,CAACW,QAAL,EAAe,OAAOE,SAAP,CAF+C,CAI9D;;IACA,OAAOF,QAAQ,CAAC,CAAD,CAAf;EACD;;EAKoB,aAARG,QAAQ,CAAC,CAACf,OAAD,CAAD,EAA8B;IACjD,MAAMgB,WAAW,GAAG,IAAIlB,WAAJ,CAAgBE,OAAhB,CAApB;IACAA,OAAO,CAACiB,eAAR,CAAwB;MACtBC,IAAI,EAAE,UADgB;MAEtBC,MAAM,EAAEH,WAAW,CAACG,MAAZ,CAAmBC,IAAnB,CAAwBJ,WAAxB,CAFc;MAGtBV,kBAAkB,EAAEU,WAAW,CAACV,kBAAZ,CAA+Bc,IAA/B,CAAoCJ,WAApC,CAHE;MAItBK,OAAO,EAAE,CAAC,cAAD;IAJa,CAAxB;IAOA,OAAOL,WAAP;EACD;;AAnCsB;;;gCAAZlB,W,aAsBMwB,yB;gCAtBNxB,W,kBAuBW,CAACyB,wBAAD,C;;AAexBC,kBAAA,CAAWC,UAAX,CAAsB3B,WAAtB;;AAEA,SAASY,YAAT,CAAsB;EAAEgB;AAAF,CAAtB,EAA6D;EAC3D,oBAAO,gEAAGA,QAAH,CAAP;AACD"}
1
+ {"version":3,"names":["DocsPreview","constructor","preview","componentId","modules","compositions","context","docsModule","selectPreviewModel","fullName","isObject","mainModule","default","apiObject","docsPropsArray","NoopProvider","toString","docsProps","Provider","docs","relevant","componentMap","undefined","provider","docsPreview","registerPreview","name","render","bind","include","PreviewRuntime","PreviewAspect","DocsAspect","addRuntime","children"],"sources":["docs.preview.runtime.tsx"],"sourcesContent":["import React, { ReactNode } from 'react';\nimport { PreviewAspect, RenderingContext, PreviewPreview, PreviewRuntime, PreviewModule } from '@teambit/preview';\nimport { ComponentID } from '@teambit/component-id';\n\nimport { DocsAspect } from './docs.aspect';\nimport type { Docs } from './docs';\n\nexport type DocsRootProps = {\n Provider: React.ComponentType | undefined;\n componentId: string;\n docs: Docs | undefined;\n compositions: any;\n context: RenderingContext;\n};\n\nexport class DocsPreview {\n constructor(\n /**\n * preview extension.\n */\n private preview: PreviewPreview\n ) {}\n\n render = (componentId: ComponentID, modules: PreviewModule, [compositions]: [any], context: RenderingContext) => {\n const docsModule = this.selectPreviewModel(componentId.fullName, modules);\n\n const isObject = !!modules.mainModule.default.apiObject;\n\n /**\n * for backwards compatibility - can be removed end of 2022\n */\n if (!isObject) {\n const docsPropsArray = [\n NoopProvider as React.ComponentType,\n componentId.toString(),\n docsModule as Docs,\n compositions,\n context,\n ];\n modules.mainModule.default(...docsPropsArray);\n return;\n }\n\n const docsProps: DocsRootProps = {\n Provider: NoopProvider as React.ComponentType,\n componentId: componentId.toString(),\n docs: docsModule as Docs,\n compositions,\n context,\n };\n\n modules.mainModule.default(docsProps);\n };\n\n selectPreviewModel(componentId: string, modules: PreviewModule) {\n const relevant = modules.componentMap[componentId];\n if (!relevant) return undefined;\n\n // only one doc file is supported.\n return relevant[0];\n }\n\n static runtime = PreviewRuntime;\n static dependencies = [PreviewAspect];\n\n static async provider([preview]: [PreviewPreview]) {\n const docsPreview = new DocsPreview(preview);\n preview.registerPreview({\n name: 'overview',\n render: docsPreview.render.bind(docsPreview),\n selectPreviewModel: docsPreview.selectPreviewModel.bind(docsPreview),\n include: ['compositions'],\n });\n\n return docsPreview;\n }\n}\n\nDocsAspect.addRuntime(DocsPreview);\n\nfunction NoopProvider({ children }: { children: ReactNode }) {\n return <>{children}</>;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAGA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAWO,MAAMA,WAAN,CAAkB;EACvBC,WAAW;EACT;AACJ;AACA;EACYC,OAJC,EAKT;IAAA,KADQA,OACR,GADQA,OACR;IAAA,gDAEO,CAACC,WAAD,EAA2BC,OAA3B,EAAmD,CAACC,YAAD,CAAnD,EAA0EC,OAA1E,KAAwG;MAC/G,MAAMC,UAAU,GAAG,KAAKC,kBAAL,CAAwBL,WAAW,CAACM,QAApC,EAA8CL,OAA9C,CAAnB;MAEA,MAAMM,QAAQ,GAAG,CAAC,CAACN,OAAO,CAACO,UAAR,CAAmBC,OAAnB,CAA2BC,SAA9C;MAEA;AACJ;AACA;;MACI,IAAI,CAACH,QAAL,EAAe;QACb,MAAMI,cAAc,GAAG,CACrBC,YADqB,EAErBZ,WAAW,CAACa,QAAZ,EAFqB,EAGrBT,UAHqB,EAIrBF,YAJqB,EAKrBC,OALqB,CAAvB;QAOAF,OAAO,CAACO,UAAR,CAAmBC,OAAnB,CAA2B,GAAGE,cAA9B;QACA;MACD;;MAED,MAAMG,SAAwB,GAAG;QAC/BC,QAAQ,EAAEH,YADqB;QAE/BZ,WAAW,EAAEA,WAAW,CAACa,QAAZ,EAFkB;QAG/BG,IAAI,EAAEZ,UAHyB;QAI/BF,YAJ+B;QAK/BC;MAL+B,CAAjC;MAQAF,OAAO,CAACO,UAAR,CAAmBC,OAAnB,CAA2BK,SAA3B;IACD,CA/BC;EAAE;;EAiCJT,kBAAkB,CAACL,WAAD,EAAsBC,OAAtB,EAA8C;IAC9D,MAAMgB,QAAQ,GAAGhB,OAAO,CAACiB,YAAR,CAAqBlB,WAArB,CAAjB;IACA,IAAI,CAACiB,QAAL,EAAe,OAAOE,SAAP,CAF+C,CAI9D;;IACA,OAAOF,QAAQ,CAAC,CAAD,CAAf;EACD;;EAKoB,aAARG,QAAQ,CAAC,CAACrB,OAAD,CAAD,EAA8B;IACjD,MAAMsB,WAAW,GAAG,IAAIxB,WAAJ,CAAgBE,OAAhB,CAApB;IACAA,OAAO,CAACuB,eAAR,CAAwB;MACtBC,IAAI,EAAE,UADgB;MAEtBC,MAAM,EAAEH,WAAW,CAACG,MAAZ,CAAmBC,IAAnB,CAAwBJ,WAAxB,CAFc;MAGtBhB,kBAAkB,EAAEgB,WAAW,CAAChB,kBAAZ,CAA+BoB,IAA/B,CAAoCJ,WAApC,CAHE;MAItBK,OAAO,EAAE,CAAC,cAAD;IAJa,CAAxB;IAOA,OAAOL,WAAP;EACD;;AA5DsB;;;gCAAZxB,W,aA+CM8B,yB;gCA/CN9B,W,kBAgDW,CAAC+B,wBAAD,C;;AAexBC,kBAAA,CAAWC,UAAX,CAAsBjC,WAAtB;;AAEA,SAASe,YAAT,CAAsB;EAAEmB;AAAF,CAAtB,EAA6D;EAC3D,oBAAO,gEAAGA,QAAH,CAAP;AACD"}
package/dist/index.d.ts CHANGED
@@ -6,8 +6,10 @@ import { DocsAspect } from './docs.aspect';
6
6
  export { Doc, DocProp, DocPropList } from '@teambit/docs.entities.doc';
7
7
  export type { DocsMain } from './docs.main.runtime';
8
8
  export type { DocsUI } from './docs.ui.runtime';
9
- export type { DocsPreview } from './docs.preview.runtime';
9
+ export type { DocsPreview, DocsRootProps } from './docs.preview.runtime';
10
10
  export type { DocReader } from './doc-reader';
11
+ export type { Docs, Example } from './docs';
12
+ export { defaultDocs } from './docs';
11
13
  export type { TitleBadgeSlot } from './overview';
12
14
  export { Overview } from './overview';
13
15
  export { DocsAspect };
package/dist/index.js CHANGED
@@ -34,6 +34,12 @@ Object.defineProperty(exports, "Overview", {
34
34
  }
35
35
  });
36
36
  exports.default = void 0;
37
+ Object.defineProperty(exports, "defaultDocs", {
38
+ enumerable: true,
39
+ get: function () {
40
+ return _docs2().defaultDocs;
41
+ }
42
+ });
37
43
 
38
44
  function _docs() {
39
45
  const data = require("./docs.aspect");
@@ -55,6 +61,16 @@ function _docsEntities() {
55
61
  return data;
56
62
  }
57
63
 
64
+ function _docs2() {
65
+ const data = require("./docs");
66
+
67
+ _docs2 = function () {
68
+ return data;
69
+ };
70
+
71
+ return data;
72
+ }
73
+
58
74
  function _overview() {
59
75
  const data = require("./overview");
60
76
 
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"names":["DocsAspect"],"sources":["index.ts"],"sourcesContent":["import { DocsAspect } from './docs.aspect';\n\n/**\n * Doc entity.\n * @deprecated - please dont use this. use directly from @teambit/docs.entities.doc.\n */\nexport { Doc, DocProp, DocPropList } from '@teambit/docs.entities.doc';\n\nexport type { DocsMain } from './docs.main.runtime';\nexport type { DocsUI } from './docs.ui.runtime';\nexport type { DocsPreview } from './docs.preview.runtime';\nexport type { DocReader } from './doc-reader';\n\nexport type { TitleBadgeSlot } from './overview';\nexport { Overview } from './overview';\n\nexport { DocsAspect };\nexport default DocsAspect;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAMA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAQA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAZA;AACA;AACA;AACA;eAYeA,kB"}
1
+ {"version":3,"names":["DocsAspect"],"sources":["index.ts"],"sourcesContent":["import { DocsAspect } from './docs.aspect';\n\n/**\n * Doc entity.\n * @deprecated - please dont use this. use directly from @teambit/docs.entities.doc.\n */\nexport { Doc, DocProp, DocPropList } from '@teambit/docs.entities.doc';\n\nexport type { DocsMain } from './docs.main.runtime';\nexport type { DocsUI } from './docs.ui.runtime';\nexport type { DocsPreview, DocsRootProps } from './docs.preview.runtime';\nexport type { DocReader } from './doc-reader';\nexport type { Docs, Example } from './docs';\nexport { defaultDocs } from './docs';\n\nexport type { TitleBadgeSlot } from './overview';\nexport { Overview } from './overview';\n\nexport { DocsAspect };\nexport default DocsAspect;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAMA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAOA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAGA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAdA;AACA;AACA;AACA;eAceA,kB"}
@@ -3,6 +3,15 @@ import { PreviewAspect, RenderingContext, PreviewPreview, PreviewRuntime, Previe
3
3
  import { ComponentID } from '@teambit/component-id';
4
4
 
5
5
  import { DocsAspect } from './docs.aspect';
6
+ import type { Docs } from './docs';
7
+
8
+ export type DocsRootProps = {
9
+ Provider: React.ComponentType | undefined;
10
+ componentId: string;
11
+ docs: Docs | undefined;
12
+ compositions: any;
13
+ context: RenderingContext;
14
+ };
6
15
 
7
16
  export class DocsPreview {
8
17
  constructor(
@@ -15,7 +24,32 @@ export class DocsPreview {
15
24
  render = (componentId: ComponentID, modules: PreviewModule, [compositions]: [any], context: RenderingContext) => {
16
25
  const docsModule = this.selectPreviewModel(componentId.fullName, modules);
17
26
 
18
- modules.mainModule.default(NoopProvider, componentId.toString(), docsModule, compositions, context);
27
+ const isObject = !!modules.mainModule.default.apiObject;
28
+
29
+ /**
30
+ * for backwards compatibility - can be removed end of 2022
31
+ */
32
+ if (!isObject) {
33
+ const docsPropsArray = [
34
+ NoopProvider as React.ComponentType,
35
+ componentId.toString(),
36
+ docsModule as Docs,
37
+ compositions,
38
+ context,
39
+ ];
40
+ modules.mainModule.default(...docsPropsArray);
41
+ return;
42
+ }
43
+
44
+ const docsProps: DocsRootProps = {
45
+ Provider: NoopProvider as React.ComponentType,
46
+ componentId: componentId.toString(),
47
+ docs: docsModule as Docs,
48
+ compositions,
49
+ context,
50
+ };
51
+
52
+ modules.mainModule.default(docsProps);
19
53
  };
20
54
 
21
55
  selectPreviewModel(componentId: string, modules: PreviewModule) {
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@teambit/docs",
3
- "version": "0.0.785",
3
+ "version": "0.0.788",
4
4
  "homepage": "https://bit.dev/teambit/docs/docs",
5
5
  "main": "dist/index.js",
6
6
  "componentId": {
7
7
  "scope": "teambit.docs",
8
8
  "name": "docs",
9
- "version": "0.0.785"
9
+ "version": "0.0.788"
10
10
  },
11
11
  "dependencies": {
12
12
  "graphql-tag": "2.12.1",
@@ -15,25 +15,25 @@
15
15
  "core-js": "^3.0.0",
16
16
  "@teambit/harmony": "0.3.3",
17
17
  "@teambit/design.ui.separator": "0.0.354",
18
- "@teambit/compiler": "0.0.785",
19
- "@teambit/component": "0.0.785",
18
+ "@teambit/compiler": "0.0.788",
19
+ "@teambit/component": "0.0.788",
20
20
  "@teambit/docs.entities.doc": "0.0.3",
21
- "@teambit/pkg": "0.0.785",
22
- "@teambit/workspace": "0.0.785",
23
- "@teambit/docs.ui.overview-compare": "0.0.26",
24
- "@teambit/cli": "0.0.519",
25
- "@teambit/dev-files": "0.0.785",
26
- "@teambit/envs": "0.0.785",
27
- "@teambit/graphql": "0.0.785",
28
- "@teambit/logger": "0.0.612",
29
- "@teambit/preview": "0.0.785",
21
+ "@teambit/pkg": "0.0.788",
22
+ "@teambit/workspace": "0.0.788",
23
+ "@teambit/docs.ui.overview-compare": "0.0.28",
24
+ "@teambit/cli": "0.0.521",
25
+ "@teambit/dev-files": "0.0.788",
26
+ "@teambit/envs": "0.0.788",
27
+ "@teambit/graphql": "0.0.788",
28
+ "@teambit/logger": "0.0.614",
29
+ "@teambit/preview": "0.0.788",
30
30
  "@teambit/component-id": "0.0.402",
31
- "@teambit/component-compare": "0.0.33",
32
- "@teambit/component.ui.component-meta": "0.0.79",
33
- "@teambit/ui": "0.0.785",
34
- "@teambit/pubsub": "0.0.785",
31
+ "@teambit/component-compare": "0.0.36",
32
+ "@teambit/component.ui.component-meta": "0.0.81",
33
+ "@teambit/ui": "0.0.788",
34
+ "@teambit/pubsub": "0.0.788",
35
35
  "@teambit/design.ui.surfaces.status-message-card": "0.0.8",
36
- "@teambit/lanes.ui.lanes": "0.0.87",
36
+ "@teambit/lanes.ui.lanes": "0.0.89",
37
37
  "@teambit/preview.ui.component-preview": "0.0.493"
38
38
  },
39
39
  "devDependencies": {
@@ -47,7 +47,7 @@
47
47
  "@teambit/docs.content.docs-overview": "1.95.9"
48
48
  },
49
49
  "peerDependencies": {
50
- "@teambit/legacy": "1.0.300",
50
+ "@teambit/legacy": "1.0.303",
51
51
  "react-dom": "^16.8.0 || ^17.0.0",
52
52
  "react": "^16.8.0 || ^17.0.0"
53
53
  },
@@ -1,5 +1,5 @@
1
- import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.docs_docs@0.0.785/dist/docs.composition.js';
2
- import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.docs_docs@0.0.785/dist/docs.docs.mdx';
1
+ import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.docs_docs@0.0.788/dist/docs.composition.js';
2
+ import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.docs_docs@0.0.788/dist/docs.docs.mdx';
3
3
 
4
4
  export const compositions = [compositions_0];
5
5
  export const overview = [overview_0];