@@ -20,22 +22,12 @@ export function ExampleCard({ example }: { example: Example }) {
No thumbnail
)}
-
-
{example.metadata.title}
- {((example.metadata.tags && example.metadata.tags.length > 0) || example.metadata.dev) && (
-
- {example.metadata.dev && (
- DEV
- )}
- {(example.metadata.tags ?? []).map((tag: string) => (
-
- {tag}
-
- ))}
-
+
+
{example.metadata.title}
+ {isDev && (
+
+ dev
+
)}
diff --git a/apps/typegpu-docs/src/components/ExampleLayout.tsx b/apps/typegpu-docs/src/components/ExampleLayout.tsx
index adf7228584..926afe2cf4 100644
--- a/apps/typegpu-docs/src/components/ExampleLayout.tsx
+++ b/apps/typegpu-docs/src/components/ExampleLayout.tsx
@@ -2,12 +2,11 @@ import { useSetAtom } from 'jotai';
import type { ReactNode } from 'react';
import { useId, useRef } from 'react';
import CrossSvg from '../assets/cross.svg';
-import DiscordIconSvg from '../assets/discord-icon.svg';
-import GithubIconSvg from '../assets/github-icon.svg';
import HamburgerSvg from '../assets/hamburger.svg';
import {
codeEditorShownAtom,
experimentalExamplesShownAtom,
+ groupExamplesByCategoryAtom,
menuShownAtom,
} from '../utils/examples/exampleViewStateAtoms.ts';
import { SearchableExampleList } from './SearchableExampleList.tsx';
@@ -52,14 +51,16 @@ function SideMenu() {
experimentalExamplesShownAtom,
true,
);
+ const [groupByCategory, setGroupByCategory] = useHydratedAtom(groupExamplesByCategoryAtom, false);
const scrollRef = useRef
(null);
const experimentalExamplesToggleId = useId();
+ const groupByCategoryToggleId = useId();
return (
-
-
© {new Date().getFullYear()} Software Mansion S.A.
-
+
+
+
+
);
diff --git a/apps/typegpu-docs/src/components/ExampleView.tsx b/apps/typegpu-docs/src/components/ExampleView.tsx
index 0f7db4f4e4..b2932f6130 100644
--- a/apps/typegpu-docs/src/components/ExampleView.tsx
+++ b/apps/typegpu-docs/src/components/ExampleView.tsx
@@ -118,20 +118,20 @@ export function ExampleView({ example, common }: Props) {
)}
{codeEditorShown && (
-
+
-
+
{editorTabsList.map((fileName) => (