diff --git a/packages/website/src/components/CodeListing.tsx b/packages/website/src/components/CodeListing.tsx
index be6744eef..a0456d48c 100644
--- a/packages/website/src/components/CodeListing.tsx
+++ b/packages/website/src/components/CodeListing.tsx
@@ -36,7 +36,7 @@ export function CodeListing({
inheritanceData?: InheritanceData | null;
}) {
return (
-
+
{deprecation ? (
diff --git a/packages/website/src/components/DocContainer.tsx b/packages/website/src/components/DocContainer.tsx
index 7802ecc63..9c5c1159b 100644
--- a/packages/website/src/components/DocContainer.tsx
+++ b/packages/website/src/components/DocContainer.tsx
@@ -6,7 +6,7 @@ import { PrismAsyncLight as SyntaxHighlighter } from 'react-syntax-highlighter';
import { vscDarkPlus } from 'react-syntax-highlighter/dist/cjs/styles/prism';
import { HyperlinkedText } from './HyperlinkedText';
import { Section } from './Section';
-import { TableOfContentsItems } from './TableOfContentsItems';
+import { TableOfContentItems } from './TableOfContentItems';
import { TypeParamTable } from './TypeParamTable';
import { TSDoc } from './tsdoc/TSDoc';
import type { ApiClassJSON, ApiItemJSON } from '~/DocModel/ApiNodeJSONEncoder';
@@ -26,6 +26,7 @@ export interface DocContainerProps {
typeParams?: TypeParameterData[];
comment?: AnyDocNodeJSON | null;
methods?: ApiClassJSON['methods'] | null;
+ properties?: ApiClassJSON['properties'] | null;
}
export function DocContainer({
@@ -38,6 +39,7 @@ export function DocContainer({
extendsTokens,
implementsTokens,
methods,
+ properties,
}: DocContainerProps) {
const matches = useMediaQuery('(max-width: 768px)', true, { getInitialValueInEffect: false });
@@ -102,7 +104,7 @@ export function DocContainer({
{children}
- {kind === 'Class' && methods ? (
+ {kind === 'Class' && methods && properties ? (
diff --git a/packages/website/src/components/TableOfContentsItems.tsx b/packages/website/src/components/TableOfContentItems.tsx
similarity index 70%
rename from packages/website/src/components/TableOfContentsItems.tsx
rename to packages/website/src/components/TableOfContentItems.tsx
index 07b855216..2158e92b4 100644
--- a/packages/website/src/components/TableOfContentsItems.tsx
+++ b/packages/website/src/components/TableOfContentItems.tsx
@@ -24,10 +24,26 @@ const useStyles = createStyles((theme) => ({
},
}));
-export function TableOfContentsItems({ members }: { members: ApiClassJSON['methods'] | ApiInterfaceJSON['methods'] }) {
+export function TableOfContentItems({
+ methods,
+ properties,
+}: {
+ methods: ApiClassJSON['methods'] | ApiInterfaceJSON['methods'];
+ properties: ApiClassJSON['properties'] | ApiInterfaceJSON['properties'];
+}) {
const { classes } = useStyles();
- const items = members.map((member) => {
+ const propertyItems = properties.map((prop) => (
+ key={prop.name} href={`#${prop.name}`} component="a" className={classes.link}>
+
+
+ {prop.name}
+
+
+
+ ));
+
+ const methodItems = methods.map((member) => {
const key = `${member.name}${member.overloadIndex && member.overloadIndex > 1 ? `:${member.overloadIndex}` : ''}`;
return (
@@ -50,9 +66,12 @@ export function TableOfContentsItems({ members }: { members: ApiClassJSON['metho
- Table of contents
+ Table of content
- {items}
+ Properties
+ {propertyItems}
+ Methods
+ {methodItems}
);
}
diff --git a/packages/website/src/components/model/Class.tsx b/packages/website/src/components/model/Class.tsx
index 27ffaeb51..2bcd8728e 100644
--- a/packages/website/src/components/model/Class.tsx
+++ b/packages/website/src/components/model/Class.tsx
@@ -14,6 +14,7 @@ export function Class({ data }: { data: ApiClassJSON }) {
implementsTokens={data.implementsTokens}
comment={data.comment}
methods={data.methods}
+ properties={data.properties}
>
{data.constructor ? : null}