@teambit/docs 0.0.802 → 0.0.805

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.
@@ -1,6 +1,6 @@
1
1
  /// <reference types="react" />
2
- import { TitleBadgeSlot } from '@teambit/docs';
3
2
  import { Section } from '@teambit/component';
3
+ import { TitleBadgeSlot } from './overview';
4
4
  export declare class OverviewCompareSection implements Section {
5
5
  private titleBadgeSlot;
6
6
  constructor(titleBadgeSlot: TitleBadgeSlot);
@@ -1 +1 @@
1
- {"version":3,"names":["OverviewCompareSection","constructor","titleBadgeSlot","href","children","exact","order","path","element"],"sources":["docs.compare.section.tsx"],"sourcesContent":["import React from 'react';\nimport { TitleBadgeSlot } from '@teambit/docs';\nimport { Section } from '@teambit/component';\nimport { OverviewCompare } from '@teambit/docs.ui.overview-compare';\n\nexport class OverviewCompareSection implements Section {\n constructor(private titleBadgeSlot: TitleBadgeSlot) {}\n\n navigationLink = {\n href: '.',\n children: 'Overview',\n exact: true,\n order: 0,\n };\n\n route = {\n path: '*',\n element: <OverviewCompare titleBadges={this.titleBadgeSlot} />,\n };\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAGA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAEO,MAAMA,sBAAN,CAAgD;EACrDC,WAAW,CAASC,cAAT,EAAyC;IAAA,KAAhCA,cAAgC,GAAhCA,cAAgC;IAAA,wDAEnC;MACfC,IAAI,EAAE,GADS;MAEfC,QAAQ,EAAE,UAFK;MAGfC,KAAK,EAAE,IAHQ;MAIfC,KAAK,EAAE;IAJQ,CAFmC;IAAA,+CAS5C;MACNC,IAAI,EAAE,GADA;MAENC,OAAO,eAAE,+BAAC,yBAAD;QAAiB,WAAW,EAAE,KAAKN;MAAnC;IAFH,CAT4C;EAAE;;AADD"}
1
+ {"version":3,"names":["OverviewCompareSection","constructor","titleBadgeSlot","href","children","exact","order","path","element"],"sources":["docs.compare.section.tsx"],"sourcesContent":["import React from 'react';\nimport { Section } from '@teambit/component';\nimport { OverviewCompare } from '@teambit/docs.ui.overview-compare';\nimport { TitleBadgeSlot } from './overview';\n\nexport class OverviewCompareSection implements Section {\n constructor(private titleBadgeSlot: TitleBadgeSlot) {}\n\n navigationLink = {\n href: '.',\n children: 'Overview',\n exact: true,\n order: 0,\n };\n\n route = {\n path: '*',\n element: <OverviewCompare titleBadges={this.titleBadgeSlot} />,\n };\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAEA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAGO,MAAMA,sBAAN,CAAgD;EACrDC,WAAW,CAASC,cAAT,EAAyC;IAAA,KAAhCA,cAAgC,GAAhCA,cAAgC;IAAA,wDAEnC;MACfC,IAAI,EAAE,GADS;MAEfC,QAAQ,EAAE,UAFK;MAGfC,KAAK,EAAE,IAHQ;MAIfC,KAAK,EAAE;IAJQ,CAFmC;IAAA,+CAS5C;MACNC,IAAI,EAAE,GADA;MAENC,OAAO,eAAE,+BAAC,yBAAD;QAAiB,WAAW,EAAE,KAAKN;MAAnC;IAFH,CAT4C;EAAE;;AADD"}
@@ -319,7 +319,8 @@ class DocsMain {
319
319
  devFiles.registerDevPattern(docs.getDevPatternToRegister());
320
320
 
321
321
  if (workspace) {
322
- workspace.onComponentLoad(async component => {
322
+ workspace.onComponentLoad(async (component, opts) => {
323
+ if ((opts === null || opts === void 0 ? void 0 : opts.loadDocs) === false) return undefined;
323
324
  const doc = await docs.computeDoc(component);
324
325
  return {
325
326
  doc: doc === null || doc === void 0 ? void 0 : doc.toObject()
@@ -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","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
+ {"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","opts","loadDocs","undefined","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, opts) => {\n if (opts?.loadDocs === false) return undefined;\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":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAEA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAGA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAEA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAoBA;AACA;AACA;AACO,MAAMA,QAAN,CAAe;EACpBC,WAAW,CACDC,QADC;EAET;AACJ;AACA;EACYC,OALC,EAODC,GAPC,EASDC,QATC,EAWDC,SAXC,EAaDC,MAbC,EAeDC,QAfC,EAiBDC,IAjBC,EAmBDC,WAnBC,EAqBDC,aArBC,EAsBT;IAAA,KArBQT,QAqBR,GArBQA,QAqBR;IAAA,KAjBQC,OAiBR,GAjBQA,OAiBR;IAAA,KAfQC,GAeR,GAfQA,GAeR;IAAA,KAbQC,QAaR,GAbQA,QAaR;IAAA,KAXQC,SAWR,GAXQA,SAWR;IAAA,KATQC,MASR,GATQA,MASR;IAAA,KAPQC,QAOR,GAPQA,QAOR;IAAA,KALQC,IAKR,GALQA,IAKR;IAAA,KAHQC,WAGR,GAHQA,WAGR;IAAA,KADQC,aACR,GADQA,aACR;EAAE;EAEJ;AACF;AACA;;;EACEC,UAAU,CAACC,UAAD,EAAyD;IACjE,OAAOC,yBAAA,CAAaC,EAAb,CAAiCF,UAAjC,EAA8CG,SAAD,IAAe;MACjE,OAAO,KAAKC,YAAL,CAAkBD,SAAlB,CAAP;IACD,CAFM,CAAP;EAGD;;EAEDC,YAAY,CAACD,SAAD,EAAwC;IAClD,MAAMR,QAAQ,GAAG,KAAKA,QAAL,CAAcU,eAAd,CAA8BF,SAA9B,CAAjB;IACA,MAAMG,QAAQ,GAAGX,QAAQ,CAACY,GAAT,CAAaC,kBAAA,CAAWC,EAAxB,CAAjB;IACA,OAAON,SAAS,CAACO,KAAV,CAAgBC,UAAhB,CAA2BC,KAA3B,CAAiCC,MAAjC,CAAyCC,IAAD,IAAUR,QAAQ,CAACS,QAAT,CAAkBD,IAAI,CAACE,QAAvB,CAAlD,CAAP;EACD;EAED;AACF;AACA;;;EACsB,MAAdC,cAAc,CAACd,SAAD,EAAwC;IAAA;;IAC1D,MAAMe,YAAY,GAAG,KAAKC,MAAL,CAAYhB,SAAZ,CAArB;IACA,MAAMiB,IAAI,GAAGF,YAAH,aAAGA,YAAH,uBAAGA,YAAY,CAAEG,WAA3B;IACA,IAAID,IAAJ,EAAU,OAAOA,IAAP;IACV,MAAME,iBAAoC,GAAGnB,SAAS,CAACO,KAAV,CAAgBa,SAA7D;IACA,MAAMC,UAAU,4BAAGF,iBAAiB,CAACG,IAArB,0DAAG,sBAAwBC,IAAxB,CAA8BC,GAAD,IAASA,GAAG,CAACN,WAA1C,CAAnB;IAEA,OAAO,CAAAG,UAAU,SAAV,IAAAA,UAAU,WAAV,YAAAA,UAAU,CAAEH,WAAZ,KAA2B,EAAlC;EACD;;EAEgB,MAAXO,WAAW,CAACC,GAAD,EAAmB;IAClC,OAAOA,GAAG,CAACC,eAAJ,EAAP;EACD;;EAEDC,YAAY,CAACC,SAAD,EAAoB;IAC9B,OAAO,KAAKlC,aAAL,CAAmBmC,MAAnB,GAA4BP,IAA5B,CAAkCQ,SAAD,IAAeA,SAAS,CAACC,iBAAV,CAA4BH,SAA5B,CAAhD,CAAP;EACD;EAED;AACF;AACA;;;EACkB,MAAVI,UAAU,CAACjC,SAAD,EAAuB;IACrC,MAAMG,QAAQ,GAAG,KAAKF,YAAL,CAAkBD,SAAlB,CAAjB;;IACA,IAAIG,QAAQ,CAAC+B,MAAb,EAAqB;MACnB;MACA,MAAMC,OAAO,GAAGhC,QAAQ,CAAC,CAAD,CAAxB;;MAEA,IAAI;QACF,MAAM4B,SAAS,GAAG,KAAKH,YAAL,CAAkBO,OAAO,CAACC,OAA1B,CAAlB;QACA,IAAI,CAACL,SAAL,EAAgB,MAAM,KAAIM,uCAAJ,EAA8BF,OAAO,CAACtB,QAAtC,EAAgDsB,OAAO,CAACC,OAAxD,CAAN;QAChB,MAAMZ,GAAG,GAAG,MAAMO,SAAS,CAACO,IAAV,CAAeH,OAAO,CAACtB,QAAvB,EAAiCsB,OAAO,CAACI,QAAzC,EAAmDvC,SAAnD,CAAlB;QACA,OAAOwB,GAAP;MACD,CALD,CAKE,OAAOgB,GAAP,EAAiB;QACjB;QACA,KAAKjD,MAAL,CAAYkD,KAAZ,CAAmB,iDAAgDD,GAAG,CAACE,OAAQ,EAA/E;QACA,OAAO,IAAP;MACD;IACF;;IAED,OAAO,IAAP;EACD;;EAED1B,MAAM,CAAChB,SAAD,EAAwB;IAAA;;IAC5B,MAAM2C,OAAO,qBAAG3C,SAAS,CAACI,GAAV,CAAcC,kBAAA,CAAWC,EAAzB,CAAH,0EAAG,eAA8BsC,IAAjC,wDAAG,oBAAoCpB,GAApD;IACA,IAAI,CAACmB,OAAL,EAAc,OAAO,IAAP;IACd,OAAO,KAAIE,mBAAJ,EAAQF,OAAO,CAACG,QAAhB,EAA0B,KAAIC,2BAAJ,EAAgBJ,OAAO,CAACK,KAAxB,CAA1B,CAAP;EACD;;EAEDC,WAAW,GAAG;IACZ,OAAO,KAAK/D,QAAZ;EACD;;EAEDgE,uBAAuB,CAAClD,SAAD,EAAuB;IAC5C,MAAM0B,GAAG,GAAG,KAAKjC,IAAL,CAAU0D,YAAV,CAAuBnD,SAAvB,EAAkC0B,GAA9C;IACA,MAAM0B,2BAAqC,GAAG1B,GAAG,CAAC2B,kBAAJ,GAAyB3B,GAAG,CAAC2B,kBAAJ,CAAuBrD,SAAvB,CAAzB,GAA6D,EAA3G;IACA,MAAMsD,iBAAiB,GAAGF,2BAA2B,CAACG,MAA5B,CAAmC,KAAKN,WAAL,EAAnC,CAA1B;IACA,OAAOK,iBAAP;EACD;;EAEDE,uBAAuB,GAAG;IACxB,OAAO,KAAKN,uBAAL,CAA6BO,IAA7B,CAAkC,IAAlC,CAAP;EACD;EACD;AACF;AACA;AACA;;;EACEC,iBAAiB,CAAC3B,SAAD,EAAuB;IACtC,KAAKpC,aAAL,CAAmBgE,QAAnB,CAA4B5B,SAA5B;IACA,OAAO,IAAP;EACD;;EAoBoB,aAAR6B,QAAQ,CACnB,CAACzE,OAAD,EAAU0E,OAAV,EAAmBvE,SAAnB,EAA8BF,GAA9B,EAAmCC,QAAnC,EAA6CyE,YAA7C,EAA2DtE,QAA3D,EAAqEC,IAArE,CADmB,EAWnBsE,MAXmB,EAYnB,CAACrE,WAAD,EAAcC,aAAd,CAZmB,EAanB;IACA,MAAMJ,MAAM,GAAGuE,YAAY,CAACE,YAAb,CAA0B3D,kBAAA,CAAWC,EAArC,CAAf;IACA,MAAMgB,IAAI,GAAG,IAAItC,QAAJ,CACX+E,MAAM,CAAC7E,QADI,EAGXC,OAHW,EAKXC,GALW,EAOXC,QAPW,EASXC,SATW,EAWXC,MAXW,EAaXC,QAbW,EAeXC,IAfW,EAiBXC,WAjBW,EAmBXC,aAnBW,CAAb;IAqBA2B,IAAI,CAACoC,iBAAL,CAAuB,KAAIO,oCAAJ,EAAqB7E,GAArB,EAA0BC,QAA1B,EAAoCC,SAApC,CAAvB;IACAE,QAAQ,CAAC0E,kBAAT,CAA4B5C,IAAI,CAACkC,uBAAL,EAA5B;;IAEA,IAAIlE,SAAJ,EAAe;MACbA,SAAS,CAAC6E,eAAV,CAA0B,OAAOnE,SAAP,EAAkBoE,IAAlB,KAA2B;QACnD,IAAI,CAAAA,IAAI,SAAJ,IAAAA,IAAI,WAAJ,YAAAA,IAAI,CAAEC,QAAN,MAAmB,KAAvB,EAA8B,OAAOC,SAAP;QAC9B,MAAM9C,GAAG,GAAG,MAAMF,IAAI,CAACW,UAAL,CAAgBjC,SAAhB,CAAlB;QAEA,OAAO;UACLwB,GAAG,EAAEA,GAAF,aAAEA,GAAF,uBAAEA,GAAG,CAAE+C,QAAL;QADA,CAAP;MAGD,CAPD;IAQD;;IAEDV,OAAO,CAACF,QAAR,CAAiB,IAAAa,mBAAA,EAAWlD,IAAX,CAAjB;IAEAnC,OAAO,CAACsF,kBAAR,CAA2B,KAAIC,8BAAJ,EAA0BpD,IAA1B,CAA3B;IACA,OAAOA,IAAP;EACD;;AA1LmB;;;gCAATtC,Q,WAkHI,CAAC2F,eAAA,CAAKC,QAAL,EAAD,EAA2BD,eAAA,CAAKC,QAAL,EAA3B,C;gCAlHJ5F,Q,aAoHM6F,kB;gCApHN7F,Q,kBAqHW,CACpB8F,wBADoB,EAEpBC,wBAFoB,EAGpBC,4BAHoB,EAIpBC,gBAJoB,EAKpBC,0BALoB,EAMpBC,sBANoB,EAOpBC,mBAPoB,EAQpBC,kBARoB,C;gCArHXrG,Q,mBAgIY;EACrBE,QAAQ,EAAE,CAAC,aAAD;AADW,C;;AA6DzBmB,kBAAA,CAAWiF,UAAX,CAAsBtG,QAAtB"}
@@ -1,18 +1,17 @@
1
1
  import { ComponentUI } from '@teambit/component';
2
- import type { TitleBadge } from '@teambit/component.ui.component-meta';
3
2
  import { ComponentCompareUI } from '@teambit/component-compare';
4
- import { TitleBadgeSlot } from './overview';
3
+ import type { TitleBadgeSlot, TitleBadge } from './overview';
5
4
  export declare class DocsUI {
6
5
  readonly titleBadgeSlot: TitleBadgeSlot;
7
6
  constructor(titleBadgeSlot: TitleBadgeSlot);
8
7
  /**
9
8
  * register a new title badge into the overview section of a component.
10
9
  */
11
- registerTitleBadge(...titleBadge: TitleBadge[]): this;
10
+ registerTitleBadge(titleBadges: TitleBadge | TitleBadge[]): this;
12
11
  /**
13
12
  * list all title badges registered.
14
13
  */
15
- listTitleBadges(): TitleBadgeSlot;
14
+ listTitleBadges(): TitleBadge[];
16
15
  static dependencies: import("@teambit/harmony").Aspect[];
17
16
  static runtime: import("@teambit/harmony").RuntimeDefinition;
18
17
  static slots: ((registerFn: () => string) => import("@teambit/harmony").SlotRegistry<TitleBadge>)[];
@@ -21,6 +21,16 @@ function _defineProperty2() {
21
21
  return data;
22
22
  }
23
23
 
24
+ function _lodash() {
25
+ const data = require("lodash");
26
+
27
+ _lodash = function () {
28
+ return data;
29
+ };
30
+
31
+ return data;
32
+ }
33
+
24
34
  function _component() {
25
35
  const data = require("@teambit/component");
26
36
 
@@ -100,8 +110,9 @@ class DocsUI {
100
110
  */
101
111
 
102
112
 
103
- registerTitleBadge(...titleBadge) {
104
- this.titleBadgeSlot.register(titleBadge);
113
+ registerTitleBadge(titleBadges) {
114
+ const badges = Array.isArray(titleBadges) ? titleBadges : [titleBadges];
115
+ this.titleBadgeSlot.register(badges);
105
116
  return this;
106
117
  }
107
118
  /**
@@ -110,12 +121,12 @@ class DocsUI {
110
121
 
111
122
 
112
123
  listTitleBadges() {
113
- return this.titleBadgeSlot;
124
+ return (0, _lodash().flatten)(this.titleBadgeSlot.values());
114
125
  }
115
126
 
116
127
  static async provider([component, componentCompare], config, [titleBadgeSlot]) {
117
128
  const docs = new DocsUI(titleBadgeSlot);
118
- const section = new (_overview().OverviewSection)(docs);
129
+ const section = new (_overview().OverviewSection)(titleBadgeSlot);
119
130
  const compareSection = new (_docsCompare().OverviewCompareSection)(titleBadgeSlot);
120
131
  component.registerRoute(section.route);
121
132
  component.registerNavigation(section.navigationLink, section.order);
@@ -1 +1 @@
1
- {"version":3,"names":["DocsUI","constructor","titleBadgeSlot","registerTitleBadge","titleBadge","register","listTitleBadges","provider","component","componentCompare","config","docs","section","OverviewSection","compareSection","OverviewCompareSection","registerRoute","route","registerNavigation","navigationLink","order","props","registerRoutes","ComponentAspect","ComponentCompareAspect","UIRuntime","Slot","withType","DocsAspect","addRuntime"],"sources":["docs.ui.runtime.tsx"],"sourcesContent":["import { ComponentAspect, ComponentUI } from '@teambit/component';\nimport { Slot } from '@teambit/harmony';\nimport type { TitleBadge } from '@teambit/component.ui.component-meta';\nimport { UIRuntime } from '@teambit/ui';\nimport ComponentCompareAspect, { ComponentCompareUI } from '@teambit/component-compare';\n\nimport { DocsAspect } from './docs.aspect';\nimport { OverviewSection } from './overview.section';\nimport { TitleBadgeSlot } from './overview';\nimport { OverviewCompareSection } from './docs.compare.section';\n\nexport class DocsUI {\n constructor(readonly titleBadgeSlot: TitleBadgeSlot) {}\n\n /**\n * register a new title badge into the overview section of a component.\n */\n registerTitleBadge(...titleBadge: TitleBadge[]) {\n this.titleBadgeSlot.register(titleBadge);\n return this;\n }\n\n /**\n * list all title badges registered.\n */\n listTitleBadges() {\n return this.titleBadgeSlot;\n }\n\n static dependencies = [ComponentAspect, ComponentCompareAspect];\n\n static runtime = UIRuntime;\n\n static slots = [Slot.withType<TitleBadge>()];\n\n static async provider(\n [component, componentCompare]: [ComponentUI, ComponentCompareUI],\n config,\n [titleBadgeSlot]: [TitleBadgeSlot]\n ) {\n const docs = new DocsUI(titleBadgeSlot);\n const section = new OverviewSection(docs);\n const compareSection = new OverviewCompareSection(titleBadgeSlot);\n\n component.registerRoute(section.route);\n component.registerNavigation(section.navigationLink, section.order);\n componentCompare.registerNavigation({\n props: compareSection.navigationLink,\n order: compareSection.navigationLink.order,\n });\n componentCompare.registerRoutes([compareSection.route]);\n return docs;\n }\n}\n\nexport default DocsUI;\n\nDocsAspect.addRuntime(DocsUI);\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAEA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAEA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAEA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAEO,MAAMA,MAAN,CAAa;EAClBC,WAAW,CAAUC,cAAV,EAA0C;IAAA,KAAhCA,cAAgC,GAAhCA,cAAgC;EAAE;EAEvD;AACF;AACA;;;EACEC,kBAAkB,CAAC,GAAGC,UAAJ,EAA8B;IAC9C,KAAKF,cAAL,CAAoBG,QAApB,CAA6BD,UAA7B;IACA,OAAO,IAAP;EACD;EAED;AACF;AACA;;;EACEE,eAAe,GAAG;IAChB,OAAO,KAAKJ,cAAZ;EACD;;EAQoB,aAARK,QAAQ,CACnB,CAACC,SAAD,EAAYC,gBAAZ,CADmB,EAEnBC,MAFmB,EAGnB,CAACR,cAAD,CAHmB,EAInB;IACA,MAAMS,IAAI,GAAG,IAAIX,MAAJ,CAAWE,cAAX,CAAb;IACA,MAAMU,OAAO,GAAG,KAAIC,2BAAJ,EAAoBF,IAApB,CAAhB;IACA,MAAMG,cAAc,GAAG,KAAIC,qCAAJ,EAA2Bb,cAA3B,CAAvB;IAEAM,SAAS,CAACQ,aAAV,CAAwBJ,OAAO,CAACK,KAAhC;IACAT,SAAS,CAACU,kBAAV,CAA6BN,OAAO,CAACO,cAArC,EAAqDP,OAAO,CAACQ,KAA7D;IACAX,gBAAgB,CAACS,kBAAjB,CAAoC;MAClCG,KAAK,EAAEP,cAAc,CAACK,cADY;MAElCC,KAAK,EAAEN,cAAc,CAACK,cAAf,CAA8BC;IAFH,CAApC;IAIAX,gBAAgB,CAACa,cAAjB,CAAgC,CAACR,cAAc,CAACG,KAAhB,CAAhC;IACA,OAAON,IAAP;EACD;;AAzCiB;;;gCAAPX,M,kBAkBW,CAACuB,4BAAD,EAAkBC,2BAAlB,C;gCAlBXxB,M,aAoBMyB,e;gCApBNzB,M,WAsBI,CAAC0B,eAAA,CAAKC,QAAL,EAAD,C;eAsBF3B,M;;;AAEf4B,kBAAA,CAAWC,UAAX,CAAsB7B,MAAtB"}
1
+ {"version":3,"names":["DocsUI","constructor","titleBadgeSlot","registerTitleBadge","titleBadges","badges","Array","isArray","register","listTitleBadges","flatten","values","provider","component","componentCompare","config","docs","section","OverviewSection","compareSection","OverviewCompareSection","registerRoute","route","registerNavigation","navigationLink","order","props","registerRoutes","ComponentAspect","ComponentCompareAspect","UIRuntime","Slot","withType","DocsAspect","addRuntime"],"sources":["docs.ui.runtime.tsx"],"sourcesContent":["import { flatten } from 'lodash';\nimport { ComponentAspect, ComponentUI } from '@teambit/component';\nimport { Slot } from '@teambit/harmony';\nimport { UIRuntime } from '@teambit/ui';\nimport ComponentCompareAspect, { ComponentCompareUI } from '@teambit/component-compare';\n\nimport { DocsAspect } from './docs.aspect';\nimport { OverviewSection } from './overview.section';\nimport type { TitleBadgeSlot, TitleBadge } from './overview';\nimport { OverviewCompareSection } from './docs.compare.section';\n\nexport class DocsUI {\n constructor(readonly titleBadgeSlot: TitleBadgeSlot) {}\n\n /**\n * register a new title badge into the overview section of a component.\n */\n registerTitleBadge(titleBadges: TitleBadge | TitleBadge[]) {\n const badges = Array.isArray(titleBadges) ? titleBadges : [titleBadges];\n this.titleBadgeSlot.register(badges);\n return this;\n }\n\n /**\n * list all title badges registered.\n */\n listTitleBadges() {\n return flatten(this.titleBadgeSlot.values());\n }\n\n static dependencies = [ComponentAspect, ComponentCompareAspect];\n\n static runtime = UIRuntime;\n\n static slots = [Slot.withType<TitleBadge>()];\n\n static async provider(\n [component, componentCompare]: [ComponentUI, ComponentCompareUI],\n config,\n [titleBadgeSlot]: [TitleBadgeSlot]\n ) {\n const docs = new DocsUI(titleBadgeSlot);\n const section = new OverviewSection(titleBadgeSlot);\n const compareSection = new OverviewCompareSection(titleBadgeSlot);\n\n component.registerRoute(section.route);\n component.registerNavigation(section.navigationLink, section.order);\n componentCompare.registerNavigation({\n props: compareSection.navigationLink,\n order: compareSection.navigationLink.order,\n });\n componentCompare.registerRoutes([compareSection.route]);\n return docs;\n }\n}\n\nexport default DocsUI;\n\nDocsAspect.addRuntime(DocsUI);\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAEA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAEA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAEO,MAAMA,MAAN,CAAa;EAClBC,WAAW,CAAUC,cAAV,EAA0C;IAAA,KAAhCA,cAAgC,GAAhCA,cAAgC;EAAE;EAEvD;AACF;AACA;;;EACEC,kBAAkB,CAACC,WAAD,EAAyC;IACzD,MAAMC,MAAM,GAAGC,KAAK,CAACC,OAAN,CAAcH,WAAd,IAA6BA,WAA7B,GAA2C,CAACA,WAAD,CAA1D;IACA,KAAKF,cAAL,CAAoBM,QAApB,CAA6BH,MAA7B;IACA,OAAO,IAAP;EACD;EAED;AACF;AACA;;;EACEI,eAAe,GAAG;IAChB,OAAO,IAAAC,iBAAA,EAAQ,KAAKR,cAAL,CAAoBS,MAApB,EAAR,CAAP;EACD;;EAQoB,aAARC,QAAQ,CACnB,CAACC,SAAD,EAAYC,gBAAZ,CADmB,EAEnBC,MAFmB,EAGnB,CAACb,cAAD,CAHmB,EAInB;IACA,MAAMc,IAAI,GAAG,IAAIhB,MAAJ,CAAWE,cAAX,CAAb;IACA,MAAMe,OAAO,GAAG,KAAIC,2BAAJ,EAAoBhB,cAApB,CAAhB;IACA,MAAMiB,cAAc,GAAG,KAAIC,qCAAJ,EAA2BlB,cAA3B,CAAvB;IAEAW,SAAS,CAACQ,aAAV,CAAwBJ,OAAO,CAACK,KAAhC;IACAT,SAAS,CAACU,kBAAV,CAA6BN,OAAO,CAACO,cAArC,EAAqDP,OAAO,CAACQ,KAA7D;IACAX,gBAAgB,CAACS,kBAAjB,CAAoC;MAClCG,KAAK,EAAEP,cAAc,CAACK,cADY;MAElCC,KAAK,EAAEN,cAAc,CAACK,cAAf,CAA8BC;IAFH,CAApC;IAIAX,gBAAgB,CAACa,cAAjB,CAAgC,CAACR,cAAc,CAACG,KAAhB,CAAhC;IACA,OAAON,IAAP;EACD;;AA1CiB;;;gCAAPhB,M,kBAmBW,CAAC4B,4BAAD,EAAkBC,2BAAlB,C;gCAnBX7B,M,aAqBM8B,e;gCArBN9B,M,WAuBI,CAAC+B,eAAA,CAAKC,QAAL,EAAD,C;eAsBFhC,M;;;AAEfiC,kBAAA,CAAWC,UAAX,CAAsBlC,MAAtB"}
package/dist/index.d.ts CHANGED
@@ -10,7 +10,7 @@ export type { DocsPreview, DocsRootProps } from './docs.preview.runtime';
10
10
  export type { DocReader } from './doc-reader';
11
11
  export type { Docs, Example } from './docs';
12
12
  export { defaultDocs } from './docs';
13
- export type { TitleBadgeSlot } from './overview';
14
- export { Overview } from './overview';
13
+ export type { TitleBadgeSlot, TitleBadge } from './overview';
14
+ export { Overview, BadgePosition } from './overview';
15
15
  export { DocsAspect };
16
16
  export default DocsAspect;
package/dist/index.js CHANGED
@@ -3,6 +3,12 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
+ Object.defineProperty(exports, "BadgePosition", {
7
+ enumerable: true,
8
+ get: function () {
9
+ return _overview().BadgePosition;
10
+ }
11
+ });
6
12
  Object.defineProperty(exports, "Doc", {
7
13
  enumerable: true,
8
14
  get: function () {
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, 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"}
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, TitleBadge } from './overview';\nexport { Overview, BadgePosition } 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"}
@@ -1,2 +1,2 @@
1
- export { Overview } from './overview';
2
- export type { TitleBadgeSlot } from './overview';
1
+ export { Overview, BadgePosition } from './overview';
2
+ export type { TitleBadgeSlot, TitleBadge } from './overview';
@@ -3,6 +3,12 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
+ Object.defineProperty(exports, "BadgePosition", {
7
+ enumerable: true,
8
+ get: function () {
9
+ return _overview().BadgePosition;
10
+ }
11
+ });
6
12
  Object.defineProperty(exports, "Overview", {
7
13
  enumerable: true,
8
14
  get: function () {
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["export { Overview } from './overview';\nexport type { TitleBadgeSlot } from './overview';\n"],"mappings":";;;;;;;;;;;;AAAA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA"}
1
+ {"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["export { Overview, BadgePosition } from './overview';\nexport type { TitleBadgeSlot, TitleBadge } from './overview';\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA"}
@@ -1,6 +1,17 @@
1
- /// <reference types="react" />
1
+ import { ComponentType } from 'react';
2
2
  import type { SlotRegistry } from '@teambit/harmony';
3
- import { TitleBadge } from '@teambit/component.ui.component-meta';
3
+ export declare enum BadgePosition {
4
+ Title = 0,
5
+ SubTitle = 1,
6
+ Labels = 2,
7
+ Package = 3,
8
+ ElementsPackage = 4
9
+ }
10
+ export declare type TitleBadge = {
11
+ component: ComponentType<any>;
12
+ weight?: number;
13
+ position?: BadgePosition;
14
+ };
4
15
  export declare type TitleBadgeSlot = SlotRegistry<TitleBadge[]>;
5
16
  export declare type OverviewProps = {
6
17
  titleBadges: TitleBadgeSlot;
@@ -9,6 +9,7 @@ require("core-js/modules/es.array.iterator.js");
9
9
  Object.defineProperty(exports, "__esModule", {
10
10
  value: true
11
11
  });
12
+ exports.BadgePosition = void 0;
12
13
  exports.Overview = Overview;
13
14
 
14
15
  function _react() {
@@ -22,7 +23,7 @@ function _react() {
22
23
  }
23
24
 
24
25
  function _lodash() {
25
- const data = _interopRequireDefault(require("lodash.flatten"));
26
+ const data = require("lodash");
26
27
 
27
28
  _lodash = function () {
28
29
  return data;
@@ -105,6 +106,17 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
105
106
 
106
107
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
107
108
 
109
+ let BadgePosition;
110
+ exports.BadgePosition = BadgePosition;
111
+
112
+ (function (BadgePosition) {
113
+ BadgePosition[BadgePosition["Title"] = 0] = "Title";
114
+ BadgePosition[BadgePosition["SubTitle"] = 1] = "SubTitle";
115
+ BadgePosition[BadgePosition["Labels"] = 2] = "Labels";
116
+ BadgePosition[BadgePosition["Package"] = 3] = "Package";
117
+ BadgePosition[BadgePosition["ElementsPackage"] = 4] = "ElementsPackage";
118
+ })(BadgePosition || (exports.BadgePosition = BadgePosition = {}));
119
+
108
120
  function Overview({
109
121
  titleBadges
110
122
  }) {
@@ -142,7 +154,7 @@ function Overview({
142
154
  abstract: component.description,
143
155
  labels: component.labels,
144
156
  packageName: component.packageName,
145
- titleBadges: (0, _lodash().default)(titleBadges.values()),
157
+ titleBadges: (0, _lodash().flatten)(titleBadges.values()),
146
158
  componentDescriptor: componentDescriptor,
147
159
  component: component
148
160
  }), /*#__PURE__*/_react().default.createElement(_previewUi().ComponentPreview, {
@@ -1 +1 @@
1
- {"version":3,"names":["Overview","titleBadges","component","useContext","ComponentContext","componentDescriptor","useComponentDescriptor","lanesModel","useLanesContext","currentLane","viewedLane","showHeader","preview","legacyHeader","buildStatus","host","margin","styles","overviewWrapper","componentOverviewBlock","displayName","version","description","labels","packageName","flatten","values","width","height"],"sources":["overview.tsx"],"sourcesContent":["import React, { useContext } from 'react';\nimport flatten from 'lodash.flatten';\nimport { ComponentContext, useComponentDescriptor } from '@teambit/component';\nimport type { SlotRegistry } from '@teambit/harmony';\nimport { ComponentPreview } from '@teambit/preview.ui.component-preview';\nimport { StatusMessageCard } from '@teambit/design.ui.surfaces.status-message-card';\nimport { ComponentOverview, TitleBadge } from '@teambit/component.ui.component-meta';\nimport { LaneBreadcrumb, useLanesContext } from '@teambit/lanes.ui.lanes';\nimport { Separator } from '@teambit/design.ui.separator';\nimport styles from './overview.module.scss';\n\nexport type TitleBadgeSlot = SlotRegistry<TitleBadge[]>;\n\nexport type OverviewProps = {\n titleBadges: TitleBadgeSlot;\n};\n\nexport function Overview({ titleBadges }: OverviewProps) {\n const component = useContext(ComponentContext);\n const componentDescriptor = useComponentDescriptor();\n const lanesModel = useLanesContext();\n const currentLane = lanesModel?.viewedLane;\n\n const showHeader = !component.preview?.legacyHeader;\n\n if (component?.buildStatus === 'pending' && component?.host === 'teambit.scope/scope')\n return (\n <StatusMessageCard style={{ margin: 'auto' }} status=\"PROCESSING\" title=\"component preview pending\">\n this might take some time\n </StatusMessageCard>\n );\n\n if (component?.buildStatus === 'failed' && component?.host === 'teambit.scope/scope')\n return <StatusMessageCard style={{ margin: 'auto' }} status=\"FAILURE\" title=\"failed to get component preview \" />;\n\n return (\n <div className={styles.overviewWrapper}>\n {currentLane && <LaneBreadcrumb lane={currentLane} />}\n {currentLane && <Separator isPresentational />}\n {showHeader && (\n <ComponentOverview\n className={styles.componentOverviewBlock}\n displayName={component.displayName}\n version={component.version}\n abstract={component.description}\n labels={component.labels}\n packageName={component.packageName}\n titleBadges={flatten(titleBadges.values())}\n componentDescriptor={componentDescriptor}\n component={component}\n />\n )}\n <ComponentPreview\n component={component}\n style={{ width: '100%', height: '100%' }}\n previewName=\"overview\"\n fullContentHeight\n scrolling=\"no\"\n />\n </div>\n );\n}\n"],"mappings":";;;;;;;;;;;;;AAAA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAEA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;;;;;AAQO,SAASA,QAAT,CAAkB;EAAEC;AAAF,CAAlB,EAAkD;EAAA;;EACvD,MAAMC,SAAS,GAAG,IAAAC,mBAAA,EAAWC,6BAAX,CAAlB;EACA,MAAMC,mBAAmB,GAAG,IAAAC,mCAAA,GAA5B;EACA,MAAMC,UAAU,GAAG,IAAAC,0BAAA,GAAnB;EACA,MAAMC,WAAW,GAAGF,UAAH,aAAGA,UAAH,uBAAGA,UAAU,CAAEG,UAAhC;EAEA,MAAMC,UAAU,GAAG,wBAACT,SAAS,CAACU,OAAX,+CAAC,mBAAmBC,YAApB,CAAnB;EAEA,IAAI,CAAAX,SAAS,SAAT,IAAAA,SAAS,WAAT,YAAAA,SAAS,CAAEY,WAAX,MAA2B,SAA3B,IAAwC,CAAAZ,SAAS,SAAT,IAAAA,SAAS,WAAT,YAAAA,SAAS,CAAEa,IAAX,MAAoB,qBAAhE,EACE,oBACE,+BAAC,qCAAD;IAAmB,KAAK,EAAE;MAAEC,MAAM,EAAE;IAAV,CAA1B;IAA8C,MAAM,EAAC,YAArD;IAAkE,KAAK,EAAC;EAAxE,+BADF;EAMF,IAAI,CAAAd,SAAS,SAAT,IAAAA,SAAS,WAAT,YAAAA,SAAS,CAAEY,WAAX,MAA2B,QAA3B,IAAuC,CAAAZ,SAAS,SAAT,IAAAA,SAAS,WAAT,YAAAA,SAAS,CAAEa,IAAX,MAAoB,qBAA/D,EACE,oBAAO,+BAAC,qCAAD;IAAmB,KAAK,EAAE;MAAEC,MAAM,EAAE;IAAV,CAA1B;IAA8C,MAAM,EAAC,SAArD;IAA+D,KAAK,EAAC;EAArE,EAAP;EAEF,oBACE;IAAK,SAAS,EAAEC,yBAAA,CAAOC;EAAvB,GACGT,WAAW,iBAAI,+BAAC,yBAAD;IAAgB,IAAI,EAAEA;EAAtB,EADlB,EAEGA,WAAW,iBAAI,+BAAC,qBAAD;IAAW,gBAAgB;EAA3B,EAFlB,EAGGE,UAAU,iBACT,+BAAC,gCAAD;IACE,SAAS,EAAEM,yBAAA,CAAOE,sBADpB;IAEE,WAAW,EAAEjB,SAAS,CAACkB,WAFzB;IAGE,OAAO,EAAElB,SAAS,CAACmB,OAHrB;IAIE,QAAQ,EAAEnB,SAAS,CAACoB,WAJtB;IAKE,MAAM,EAAEpB,SAAS,CAACqB,MALpB;IAME,WAAW,EAAErB,SAAS,CAACsB,WANzB;IAOE,WAAW,EAAE,IAAAC,iBAAA,EAAQxB,WAAW,CAACyB,MAAZ,EAAR,CAPf;IAQE,mBAAmB,EAAErB,mBARvB;IASE,SAAS,EAAEH;EATb,EAJJ,eAgBE,+BAAC,6BAAD;IACE,SAAS,EAAEA,SADb;IAEE,KAAK,EAAE;MAAEyB,KAAK,EAAE,MAAT;MAAiBC,MAAM,EAAE;IAAzB,CAFT;IAGE,WAAW,EAAC,UAHd;IAIE,iBAAiB,MAJnB;IAKE,SAAS,EAAC;EALZ,EAhBF,CADF;AA0BD"}
1
+ {"version":3,"names":["BadgePosition","Overview","titleBadges","component","useContext","ComponentContext","componentDescriptor","useComponentDescriptor","lanesModel","useLanesContext","currentLane","viewedLane","showHeader","preview","legacyHeader","buildStatus","host","margin","styles","overviewWrapper","componentOverviewBlock","displayName","version","description","labels","packageName","flatten","values","width","height"],"sources":["overview.tsx"],"sourcesContent":["import React, { useContext, ComponentType } from 'react';\nimport { flatten } from 'lodash';\nimport { ComponentContext, useComponentDescriptor } from '@teambit/component';\nimport type { SlotRegistry } from '@teambit/harmony';\nimport { ComponentPreview } from '@teambit/preview.ui.component-preview';\nimport { StatusMessageCard } from '@teambit/design.ui.surfaces.status-message-card';\nimport { ComponentOverview } from '@teambit/component.ui.component-meta';\nimport { LaneBreadcrumb, useLanesContext } from '@teambit/lanes.ui.lanes';\nimport { Separator } from '@teambit/design.ui.separator';\nimport styles from './overview.module.scss';\n\nexport enum BadgePosition {\n Title,\n SubTitle,\n Labels,\n Package,\n ElementsPackage,\n}\n\nexport type TitleBadge = {\n component: ComponentType<any>;\n weight?: number;\n position?: BadgePosition;\n};\n\nexport type TitleBadgeSlot = SlotRegistry<TitleBadge[]>;\n\nexport type OverviewProps = {\n titleBadges: TitleBadgeSlot;\n};\n\nexport function Overview({ titleBadges }: OverviewProps) {\n const component = useContext(ComponentContext);\n const componentDescriptor = useComponentDescriptor();\n const lanesModel = useLanesContext();\n const currentLane = lanesModel?.viewedLane;\n\n const showHeader = !component.preview?.legacyHeader;\n\n if (component?.buildStatus === 'pending' && component?.host === 'teambit.scope/scope')\n return (\n <StatusMessageCard style={{ margin: 'auto' }} status=\"PROCESSING\" title=\"component preview pending\">\n this might take some time\n </StatusMessageCard>\n );\n\n if (component?.buildStatus === 'failed' && component?.host === 'teambit.scope/scope')\n return <StatusMessageCard style={{ margin: 'auto' }} status=\"FAILURE\" title=\"failed to get component preview \" />;\n\n return (\n <div className={styles.overviewWrapper}>\n {currentLane && <LaneBreadcrumb lane={currentLane} />}\n {currentLane && <Separator isPresentational />}\n {showHeader && (\n <ComponentOverview\n className={styles.componentOverviewBlock}\n displayName={component.displayName}\n version={component.version}\n abstract={component.description}\n labels={component.labels}\n packageName={component.packageName}\n titleBadges={flatten(titleBadges.values())}\n componentDescriptor={componentDescriptor}\n component={component}\n />\n )}\n <ComponentPreview\n component={component}\n style={{ width: '100%', height: '100%' }}\n previewName=\"overview\"\n fullContentHeight\n scrolling=\"no\"\n />\n </div>\n );\n}\n"],"mappings":"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"}
@@ -1,16 +1,16 @@
1
1
  /// <reference types="react" />
2
2
  import { Section } from '@teambit/component';
3
- import { DocsUI } from './docs.ui.runtime';
3
+ import { TitleBadgeSlot } from './overview';
4
4
  export declare class OverviewSection implements Section {
5
5
  /**
6
- * docs ui extension.
6
+ * title badge slot.
7
7
  */
8
- private docs;
8
+ private titleBadgeSlot;
9
9
  constructor(
10
10
  /**
11
- * docs ui extension.
11
+ * title badge slot.
12
12
  */
13
- docs: DocsUI);
13
+ titleBadgeSlot: TitleBadgeSlot);
14
14
  navigationLink: {
15
15
  href: string;
16
16
  exact: boolean;
@@ -40,10 +40,10 @@ function _overview() {
40
40
  class OverviewSection {
41
41
  constructor(
42
42
  /**
43
- * docs ui extension.
43
+ * title badge slot.
44
44
  */
45
- docs) {
46
- this.docs = docs;
45
+ titleBadgeSlot) {
46
+ this.titleBadgeSlot = titleBadgeSlot;
47
47
  (0, _defineProperty2().default)(this, "navigationLink", {
48
48
  href: '.',
49
49
  exact: true,
@@ -52,7 +52,7 @@ class OverviewSection {
52
52
  (0, _defineProperty2().default)(this, "route", {
53
53
  index: true,
54
54
  element: /*#__PURE__*/_react().default.createElement(_overview().Overview, {
55
- titleBadges: this.docs.titleBadgeSlot
55
+ titleBadges: this.titleBadgeSlot
56
56
  })
57
57
  });
58
58
  (0, _defineProperty2().default)(this, "order", 10);
@@ -1 +1 @@
1
- {"version":3,"names":["OverviewSection","constructor","docs","href","exact","children","index","element","titleBadgeSlot"],"sources":["overview.section.tsx"],"sourcesContent":["import { Section } from '@teambit/component';\nimport React from 'react';\n\nimport { DocsUI } from './docs.ui.runtime';\nimport { Overview } from './overview';\n\nexport class OverviewSection implements Section {\n constructor(\n /**\n * docs ui extension.\n */\n private docs: DocsUI\n ) {}\n\n navigationLink = {\n href: '.',\n exact: true,\n children: 'Overview',\n };\n\n route = {\n index: true,\n element: <Overview titleBadges={this.docs.titleBadgeSlot} />,\n };\n\n order = 10;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAGA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAEO,MAAMA,eAAN,CAAyC;EAC9CC,WAAW;EACT;AACJ;AACA;EACYC,IAJC,EAKT;IAAA,KADQA,IACR,GADQA,IACR;IAAA,wDAEe;MACfC,IAAI,EAAE,GADS;MAEfC,KAAK,EAAE,IAFQ;MAGfC,QAAQ,EAAE;IAHK,CAFf;IAAA,+CAQM;MACNC,KAAK,EAAE,IADD;MAENC,OAAO,eAAE,+BAAC,oBAAD;QAAU,WAAW,EAAE,KAAKL,IAAL,CAAUM;MAAjC;IAFH,CARN;IAAA,+CAaM,EAbN;EAAE;;AAN0C"}
1
+ {"version":3,"names":["OverviewSection","constructor","titleBadgeSlot","href","exact","children","index","element"],"sources":["overview.section.tsx"],"sourcesContent":["import React from 'react';\nimport { Section } from '@teambit/component';\nimport { Overview, TitleBadgeSlot } from './overview';\n\nexport class OverviewSection implements Section {\n constructor(\n /**\n * title badge slot.\n */\n private titleBadgeSlot: TitleBadgeSlot\n ) {}\n\n navigationLink = {\n href: '.',\n exact: true,\n children: 'Overview',\n };\n\n route = {\n index: true,\n element: <Overview titleBadges={this.titleBadgeSlot} />,\n };\n\n order = 10;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAEA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAEO,MAAMA,eAAN,CAAyC;EAC9CC,WAAW;EACT;AACJ;AACA;EACYC,cAJC,EAKT;IAAA,KADQA,cACR,GADQA,cACR;IAAA,wDAEe;MACfC,IAAI,EAAE,GADS;MAEfC,KAAK,EAAE,IAFQ;MAGfC,QAAQ,EAAE;IAHK,CAFf;IAAA,+CAQM;MACNC,KAAK,EAAE,IADD;MAENC,OAAO,eAAE,+BAAC,oBAAD;QAAU,WAAW,EAAE,KAAKL;MAA5B;IAFH,CARN;IAAA,+CAaM,EAbN;EAAE;;AAN0C"}
@@ -1,7 +1,7 @@
1
1
  import React from 'react';
2
- import { TitleBadgeSlot } from '@teambit/docs';
3
2
  import { Section } from '@teambit/component';
4
3
  import { OverviewCompare } from '@teambit/docs.ui.overview-compare';
4
+ import { TitleBadgeSlot } from './overview';
5
5
 
6
6
  export class OverviewCompareSection implements Section {
7
7
  constructor(private titleBadgeSlot: TitleBadgeSlot) {}
@@ -1,12 +1,12 @@
1
+ import { flatten } from 'lodash';
1
2
  import { ComponentAspect, ComponentUI } from '@teambit/component';
2
3
  import { Slot } from '@teambit/harmony';
3
- import type { TitleBadge } from '@teambit/component.ui.component-meta';
4
4
  import { UIRuntime } from '@teambit/ui';
5
5
  import ComponentCompareAspect, { ComponentCompareUI } from '@teambit/component-compare';
6
6
 
7
7
  import { DocsAspect } from './docs.aspect';
8
8
  import { OverviewSection } from './overview.section';
9
- import { TitleBadgeSlot } from './overview';
9
+ import type { TitleBadgeSlot, TitleBadge } from './overview';
10
10
  import { OverviewCompareSection } from './docs.compare.section';
11
11
 
12
12
  export class DocsUI {
@@ -15,8 +15,9 @@ export class DocsUI {
15
15
  /**
16
16
  * register a new title badge into the overview section of a component.
17
17
  */
18
- registerTitleBadge(...titleBadge: TitleBadge[]) {
19
- this.titleBadgeSlot.register(titleBadge);
18
+ registerTitleBadge(titleBadges: TitleBadge | TitleBadge[]) {
19
+ const badges = Array.isArray(titleBadges) ? titleBadges : [titleBadges];
20
+ this.titleBadgeSlot.register(badges);
20
21
  return this;
21
22
  }
22
23
 
@@ -24,7 +25,7 @@ export class DocsUI {
24
25
  * list all title badges registered.
25
26
  */
26
27
  listTitleBadges() {
27
- return this.titleBadgeSlot;
28
+ return flatten(this.titleBadgeSlot.values());
28
29
  }
29
30
 
30
31
  static dependencies = [ComponentAspect, ComponentCompareAspect];
@@ -39,7 +40,7 @@ export class DocsUI {
39
40
  [titleBadgeSlot]: [TitleBadgeSlot]
40
41
  ) {
41
42
  const docs = new DocsUI(titleBadgeSlot);
42
- const section = new OverviewSection(docs);
43
+ const section = new OverviewSection(titleBadgeSlot);
43
44
  const compareSection = new OverviewCompareSection(titleBadgeSlot);
44
45
 
45
46
  component.registerRoute(section.route);
package/overview/index.ts CHANGED
@@ -1,2 +1,2 @@
1
- export { Overview } from './overview';
2
- export type { TitleBadgeSlot } from './overview';
1
+ export { Overview, BadgePosition } from './overview';
2
+ export type { TitleBadgeSlot, TitleBadge } from './overview';
@@ -1,14 +1,28 @@
1
- import React, { useContext } from 'react';
2
- import flatten from 'lodash.flatten';
1
+ import React, { useContext, ComponentType } from 'react';
2
+ import { flatten } from 'lodash';
3
3
  import { ComponentContext, useComponentDescriptor } from '@teambit/component';
4
4
  import type { SlotRegistry } from '@teambit/harmony';
5
5
  import { ComponentPreview } from '@teambit/preview.ui.component-preview';
6
6
  import { StatusMessageCard } from '@teambit/design.ui.surfaces.status-message-card';
7
- import { ComponentOverview, TitleBadge } from '@teambit/component.ui.component-meta';
7
+ import { ComponentOverview } from '@teambit/component.ui.component-meta';
8
8
  import { LaneBreadcrumb, useLanesContext } from '@teambit/lanes.ui.lanes';
9
9
  import { Separator } from '@teambit/design.ui.separator';
10
10
  import styles from './overview.module.scss';
11
11
 
12
+ export enum BadgePosition {
13
+ Title,
14
+ SubTitle,
15
+ Labels,
16
+ Package,
17
+ ElementsPackage,
18
+ }
19
+
20
+ export type TitleBadge = {
21
+ component: ComponentType<any>;
22
+ weight?: number;
23
+ position?: BadgePosition;
24
+ };
25
+
12
26
  export type TitleBadgeSlot = SlotRegistry<TitleBadge[]>;
13
27
 
14
28
  export type OverviewProps = {
@@ -1,15 +1,13 @@
1
- import { Section } from '@teambit/component';
2
1
  import React from 'react';
3
-
4
- import { DocsUI } from './docs.ui.runtime';
5
- import { Overview } from './overview';
2
+ import { Section } from '@teambit/component';
3
+ import { Overview, TitleBadgeSlot } from './overview';
6
4
 
7
5
  export class OverviewSection implements Section {
8
6
  constructor(
9
7
  /**
10
- * docs ui extension.
8
+ * title badge slot.
11
9
  */
12
- private docs: DocsUI
10
+ private titleBadgeSlot: TitleBadgeSlot
13
11
  ) {}
14
12
 
15
13
  navigationLink = {
@@ -20,7 +18,7 @@ export class OverviewSection implements Section {
20
18
 
21
19
  route = {
22
20
  index: true,
23
- element: <Overview titleBadges={this.docs.titleBadgeSlot} />,
21
+ element: <Overview titleBadges={this.titleBadgeSlot} />,
24
22
  };
25
23
 
26
24
  order = 10;
package/package.json CHANGED
@@ -1,45 +1,45 @@
1
1
  {
2
2
  "name": "@teambit/docs",
3
- "version": "0.0.802",
3
+ "version": "0.0.805",
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.802"
9
+ "version": "0.0.805"
10
10
  },
11
11
  "dependencies": {
12
12
  "graphql-tag": "2.12.1",
13
- "lodash.flatten": "4.4.0",
13
+ "lodash": "4.17.21",
14
14
  "@babel/runtime": "7.12.18",
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.802",
19
- "@teambit/component": "0.0.802",
18
+ "@teambit/compiler": "0.0.805",
19
+ "@teambit/component": "0.0.805",
20
20
  "@teambit/docs.entities.doc": "0.0.4",
21
- "@teambit/pkg": "0.0.802",
22
- "@teambit/workspace": "0.0.802",
23
- "@teambit/docs.ui.overview-compare": "0.0.42",
24
- "@teambit/cli": "0.0.534",
25
- "@teambit/dev-files": "0.0.802",
26
- "@teambit/envs": "0.0.802",
27
- "@teambit/graphql": "0.0.802",
28
- "@teambit/logger": "0.0.627",
29
- "@teambit/preview": "0.0.802",
21
+ "@teambit/pkg": "0.0.805",
22
+ "@teambit/workspace": "0.0.805",
23
+ "@teambit/docs.ui.overview-compare": "0.0.44",
24
+ "@teambit/cli": "0.0.536",
25
+ "@teambit/dev-files": "0.0.805",
26
+ "@teambit/envs": "0.0.805",
27
+ "@teambit/graphql": "0.0.805",
28
+ "@teambit/logger": "0.0.629",
29
+ "@teambit/preview": "0.0.805",
30
30
  "@teambit/component-id": "0.0.405",
31
- "@teambit/component-compare": "0.0.50",
32
- "@teambit/component.ui.component-meta": "0.0.95",
33
- "@teambit/ui": "0.0.802",
34
- "@teambit/pubsub": "0.0.802",
31
+ "@teambit/component-compare": "0.0.53",
32
+ "@teambit/ui": "0.0.805",
33
+ "@teambit/pubsub": "0.0.805",
34
+ "@teambit/component.ui.component-meta": "0.0.97",
35
35
  "@teambit/design.ui.surfaces.status-message-card": "0.0.8",
36
- "@teambit/lanes.ui.lanes": "0.0.103",
36
+ "@teambit/lanes.ui.lanes": "0.0.105",
37
37
  "@teambit/preview.ui.component-preview": "0.0.494"
38
38
  },
39
39
  "devDependencies": {
40
40
  "@types/react-dom": "^17.0.5",
41
41
  "@types/react": "^17.0.8",
42
- "@types/lodash.flatten": "4.4.6",
42
+ "@types/lodash": "4.14.165",
43
43
  "@types/mocha": "9.1.0",
44
44
  "@types/testing-library__jest-dom": "5.9.5",
45
45
  "@types/jest": "^26.0.0",
@@ -47,7 +47,7 @@
47
47
  "@teambit/docs.content.docs-overview": "1.95.9"
48
48
  },
49
49
  "peerDependencies": {
50
- "@teambit/legacy": "1.0.316",
50
+ "@teambit/legacy": "1.0.319",
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.802/dist/docs.composition.js';
2
- import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.docs_docs@0.0.802/dist/docs.docs.mdx';
1
+ import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.docs_docs@0.0.805/dist/docs.composition.js';
2
+ import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.docs_docs@0.0.805/dist/docs.docs.mdx';
3
3
 
4
4
  export const compositions = [compositions_0];
5
5
  export const overview = [overview_0];