diff --git a/.bitmap b/.bitmap index d62ab8a..eed4eba 100644 --- a/.bitmap +++ b/.bitmap @@ -12,7 +12,7 @@ "api-reference": { "name": "api-reference", "scope": "teambit.api-reference", - "version": "1.0.1096", + "version": "1.0.1129", "mainFile": "index.ts", "rootDir": "components/api-reference" }, @@ -75,56 +75,56 @@ "overview/renderers/grouped-schema-nodes-overview-summary": { "name": "overview/renderers/grouped-schema-nodes-overview-summary", "scope": "teambit.api-reference", - "version": "0.0.70", + "version": "0.0.76", "mainFile": "index.ts", "rootDir": "components/overview/renderers/grouped-schema-nodes-overview-summary" }, "renderers/api-node-details": { "name": "renderers/api-node-details", "scope": "teambit.api-reference", - "version": "0.0.84", + "version": "0.0.86", "mainFile": "index.ts", "rootDir": "components/renderers/api-node-details" }, "renderers/class": { "name": "renderers/class", "scope": "teambit.api-reference", - "version": "0.0.86", + "version": "0.0.89", "mainFile": "index.ts", "rootDir": "components/renderers/class" }, "renderers/decorator": { "name": "renderers/decorator", "scope": "teambit.api-reference", - "version": "0.0.40", + "version": "0.0.43", "mainFile": "index.ts", "rootDir": "components/renderers/decorator" }, "renderers/default-node-renderers": { "name": "renderers/default-node-renderers", "scope": "teambit.api-reference", - "version": "0.0.23", + "version": "0.0.31", "mainFile": "index.ts", "rootDir": "components/renderers/default-node-renderers" }, "renderers/enum": { "name": "renderers/enum", "scope": "teambit.api-reference", - "version": "0.0.84", + "version": "0.0.87", "mainFile": "index.ts", "rootDir": "components/renderers/enum" }, "renderers/function": { "name": "renderers/function", "scope": "teambit.api-reference", - "version": "0.0.88", + "version": "0.0.90", "mainFile": "index.ts", "rootDir": "components/renderers/function" }, "renderers/grouped-schema-nodes-summary": { "name": "renderers/grouped-schema-nodes-summary", "scope": "teambit.api-reference", - "version": "0.0.82", + "version": "0.0.85", "mainFile": "index.ts", "rootDir": "components/renderers/grouped-schema-nodes-summary" }, @@ -138,42 +138,42 @@ "renderers/interface": { "name": "renderers/interface", "scope": "teambit.api-reference", - "version": "0.0.84", + "version": "0.0.87", "mainFile": "index.ts", "rootDir": "components/renderers/interface" }, "renderers/parameter": { "name": "renderers/parameter", "scope": "teambit.api-reference", - "version": "0.0.69", + "version": "0.0.72", "mainFile": "index.ts", "rootDir": "components/renderers/parameter" }, "renderers/react": { "name": "renderers/react", "scope": "teambit.api-reference", - "version": "0.0.69", + "version": "0.0.71", "mainFile": "index.ts", "rootDir": "components/renderers/react" }, "renderers/schema-node-member-summary": { "name": "renderers/schema-node-member-summary", "scope": "teambit.api-reference", - "version": "0.0.80", + "version": "0.0.85", "mainFile": "index.ts", "rootDir": "components/renderers/schema-node-member-summary" }, "renderers/schema-nodes-index": { "name": "renderers/schema-nodes-index", "scope": "teambit.api-reference", - "version": "0.0.72", + "version": "0.0.75", "mainFile": "index.ts", "rootDir": "components/renderers/schema-nodes-index" }, "renderers/this": { "name": "renderers/this", "scope": "teambit.api-reference", - "version": "0.0.71", + "version": "0.0.72", "mainFile": "index.ts", "rootDir": "components/renderers/this" }, @@ -187,7 +187,7 @@ "renderers/type": { "name": "renderers/type", "scope": "teambit.api-reference", - "version": "0.0.82", + "version": "0.0.85", "mainFile": "index.ts", "rootDir": "components/renderers/type" }, @@ -208,14 +208,14 @@ "renderers/type-literal": { "name": "renderers/type-literal", "scope": "teambit.api-reference", - "version": "0.0.75", + "version": "0.0.78", "mainFile": "index.ts", "rootDir": "components/renderers/type-literal" }, "renderers/type-ref": { "name": "renderers/type-ref", "scope": "teambit.api-reference", - "version": "0.0.101", + "version": "0.0.102", "mainFile": "index.ts", "rootDir": "components/renderers/type-ref" }, @@ -229,14 +229,14 @@ "renderers/unresolved": { "name": "renderers/unresolved", "scope": "teambit.api-reference", - "version": "0.0.82", + "version": "0.0.83", "mainFile": "index.ts", "rootDir": "components/renderers/unresolved" }, "renderers/variable": { "name": "renderers/variable", "scope": "teambit.api-reference", - "version": "0.0.82", + "version": "0.0.83", "mainFile": "index.ts", "rootDir": "components/renderers/variable" }, @@ -271,7 +271,7 @@ "utils/copy-schema-node": { "name": "utils/copy-schema-node", "scope": "teambit.api-reference", - "version": "0.0.45", + "version": "0.0.48", "mainFile": "index.ts", "rootDir": "components/utils/copy-schema-node" }, diff --git a/components/overview/renderers/grouped-schema-nodes-overview-summary/grouped-schema-nodes-overview-summary.tsx b/components/overview/renderers/grouped-schema-nodes-overview-summary/grouped-schema-nodes-overview-summary.tsx index 0d9fab4..1684d63 100644 --- a/components/overview/renderers/grouped-schema-nodes-overview-summary/grouped-schema-nodes-overview-summary.tsx +++ b/components/overview/renderers/grouped-schema-nodes-overview-summary/grouped-schema-nodes-overview-summary.tsx @@ -12,7 +12,16 @@ import type { APINodeRenderProps } from '@teambit/api-reference.models.api-node- import { nodeStyles } from '@teambit/api-reference.models.api-node-renderer'; import { VariableNodeSummary, EnumMemberSummary } from '@teambit/api-reference.renderers.schema-node-member-summary'; import { parameterRenderer as defaultParamRenderer } from '@teambit/api-reference.renderers.parameter'; -import { Prism as SyntaxHighlighter } from 'react-syntax-highlighter'; +// deep import on purpose: the package root re-exports `default-highlight` (highlight.js with every +// language) and `prism` (refractor with every language) alongside the light builds, so importing +// anything from the root pulls ~2.3 MB into every consumer's bundle. +import SyntaxHighlighter from 'react-syntax-highlighter/dist/esm/prism-light'; +import tsSyntax from 'react-syntax-highlighter/dist/esm/languages/prism/typescript'; +import tsxSyntax from 'react-syntax-highlighter/dist/esm/languages/prism/tsx'; +import jsSyntax from 'react-syntax-highlighter/dist/esm/languages/prism/javascript'; +import jsxSyntax from 'react-syntax-highlighter/dist/esm/languages/prism/jsx'; +import cssSyntax from 'react-syntax-highlighter/dist/esm/languages/prism/css'; +import mdSyntax from 'react-syntax-highlighter/dist/esm/languages/prism/markdown'; import defaultTheme from '@teambit/api-reference.utils.custom-prism-syntax-highlighter-theme'; import { Link as BaseLink } from '@teambit/base-react.navigation.link'; import pluralize from 'pluralize'; @@ -20,6 +29,14 @@ import classnames from 'classnames'; import styles from './grouped-schema-nodes-overview-summary.module.scss'; +// `lang` below is the source file's ending: ts/tsx/js/jsx, with scss/sass mapped to css and mdx to md. +SyntaxHighlighter.registerLanguage('ts', tsSyntax); +SyntaxHighlighter.registerLanguage('tsx', tsxSyntax); +SyntaxHighlighter.registerLanguage('js', jsSyntax); +SyntaxHighlighter.registerLanguage('jsx', jsxSyntax); +SyntaxHighlighter.registerLanguage('css', cssSyntax); +SyntaxHighlighter.registerLanguage('md', mdSyntax); + // @todo - this will be fixed as part of the @teambit/base-react.navigation.link upgrade to latest const Link = BaseLink as any; @@ -135,7 +152,9 @@ export function SchemaNodesSummary({ headings={_headings} /> {groupedMembersByType.map((member) => { - // @ts-expect-error - version skew: local SchemaNode has diff() but npm-published version doesn't yet + // @ts-ignore - version skew: local SchemaNode has diff() but the npm-published one doesn't yet. + // Only errors in the capsule build, where two semantic-schema versions genuinely coexist; the + // workspace type-check resolves a single copy (tsconfig paths), so @ts-expect-error would be unused there. return renderTable(type ?? '', member, _headings); })} @@ -146,7 +165,8 @@ export function SchemaNodesSummary({ {groupedMembersByType.map((member) => ( diff --git a/components/renderers/schema-node-member-summary/function-node-summary.tsx b/components/renderers/schema-node-member-summary/function-node-summary.tsx index 77b9b1f..c9b1c7f 100644 --- a/components/renderers/schema-node-member-summary/function-node-summary.tsx +++ b/components/renderers/schema-node-member-summary/function-node-summary.tsx @@ -1,6 +1,15 @@ import type { HTMLAttributes } from 'react'; import React, { useMemo } from 'react'; -import { Prism as SyntaxHighlighter } from 'react-syntax-highlighter'; +// deep import on purpose: the package root re-exports `default-highlight` (highlight.js with every +// language) and `prism` (refractor with every language) alongside the light builds, so importing +// anything from the root pulls ~2.3 MB into every consumer's bundle. +import SyntaxHighlighter from 'react-syntax-highlighter/dist/esm/prism-light'; +import tsSyntax from 'react-syntax-highlighter/dist/esm/languages/prism/typescript'; +import tsxSyntax from 'react-syntax-highlighter/dist/esm/languages/prism/tsx'; +import jsSyntax from 'react-syntax-highlighter/dist/esm/languages/prism/javascript'; +import jsxSyntax from 'react-syntax-highlighter/dist/esm/languages/prism/jsx'; +import cssSyntax from 'react-syntax-highlighter/dist/esm/languages/prism/css'; +import mdSyntax from 'react-syntax-highlighter/dist/esm/languages/prism/markdown'; import type { SchemaNode } from '@teambit/semantics.entities.semantic-schema'; import { SetAccessorSchema } from '@teambit/semantics.entities.semantic-schema'; import { transformSignature } from '@teambit/api-reference.utils.schema-node-signature-transform'; @@ -15,6 +24,14 @@ import classNames from 'classnames'; import styles from './function-node-summary.module.scss'; +// `lang` below is the source file's ending: ts/tsx/js/jsx, with scss/sass mapped to css and mdx to md. +SyntaxHighlighter.registerLanguage('ts', tsSyntax); +SyntaxHighlighter.registerLanguage('tsx', tsxSyntax); +SyntaxHighlighter.registerLanguage('js', jsSyntax); +SyntaxHighlighter.registerLanguage('jsx', jsxSyntax); +SyntaxHighlighter.registerLanguage('css', cssSyntax); +SyntaxHighlighter.registerLanguage('md', mdSyntax); + export type FunctionNodeSummaryProps = { groupElementClassName?: string; node: SchemaNode;