Skip to content

Commit e178009

Browse files
authored
Merge pull request #10 from pheralb/next
🚀 New updates
2 parents 1a9444c + 343e67b commit e178009

5 files changed

Lines changed: 55 additions & 25 deletions

File tree

apps/website/src/components/docs/search-docs.tsx

Lines changed: 38 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,11 @@ import {
1010
CommandInput,
1111
CommandItem,
1212
CommandList,
13+
CommandSeparator,
1314
} from "@/components/ui/command";
1415
import { Button } from "@/components/ui/button";
1516

17+
import { cn } from "@/utils/cn";
1618
import { SearchIcon } from "lucide-react";
1719
import { getDocsByFolder } from "@/utils/docs";
1820

@@ -54,23 +56,42 @@ const SearchDocs = () => {
5456
<CommandInput placeholder="Search" />
5557
<CommandList>
5658
<CommandEmpty>No results found.</CommandEmpty>
57-
{Object.entries(docsByFolder).map(([folder, docs]) => (
58-
<CommandGroup key={folder} heading={folder} className="my-2">
59-
{docs.map((doc) => (
60-
<CommandItem
61-
key={doc._meta.path}
62-
onSelect={() => {
63-
router.push(`/docs/${doc.folder}/${doc._meta.path}`);
64-
setOpen(false);
65-
}}
66-
>
67-
<span className="font-medium">{doc.title}</span>
68-
<span className="max-w-110 truncate text-xs text-neutral-600 dark:text-neutral-400">
69-
{doc.description}
70-
</span>
71-
</CommandItem>
72-
))}
73-
</CommandGroup>
59+
{Object.entries(docsByFolder).map(([folder, docs], index, array) => (
60+
<div key={folder}>
61+
<CommandGroup heading={folder} className="my-1">
62+
{docs.map((doc) => (
63+
<CommandItem
64+
key={doc._meta.path}
65+
onSelect={() => {
66+
router.push(`/docs/${doc.folder}/${doc._meta.path}`);
67+
setOpen(false);
68+
}}
69+
>
70+
<span className="font-medium">{doc.title}</span>
71+
<span className="max-w-110 truncate text-xs text-neutral-600 dark:text-neutral-400">
72+
{doc.description}
73+
</span>
74+
{doc.category && (
75+
<div className="mt-1 flex items-center space-x-1">
76+
{doc.category.map((cat) => (
77+
<span
78+
key={cat}
79+
className={cn(
80+
"bg-neutral-100 dark:bg-neutral-800",
81+
"border border-neutral-300 dark:border-neutral-700",
82+
"rounded-full px-2 py-0.5 text-xs tracking-tight text-neutral-600 dark:text-neutral-300",
83+
)}
84+
>
85+
{cat}
86+
</span>
87+
))}
88+
</div>
89+
)}
90+
</CommandItem>
91+
))}
92+
</CommandGroup>
93+
{index < array.length - 1 && <CommandSeparator />}
94+
</div>
7495
))}
7596
</CommandList>
7697
</CommandDialog>

apps/website/src/components/ui/command.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -155,7 +155,7 @@ function CommandItem({
155155
<CommandPrimitive.Item
156156
data-slot="command-item"
157157
className={cn(
158-
"relative flex cursor-default flex-col items-start justify-start rounded-sm px-4 text-sm outline-hidden select-none data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50 data-[selected=true]:bg-neutral-100 data-[selected=true]:text-neutral-900 dark:data-[selected=true]:bg-neutral-800 dark:data-[selected=true]:text-neutral-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='text-'])]:text-neutral-500 dark:[&_svg:not([class*='text-'])]:text-neutral-400",
158+
"relative flex cursor-default flex-col items-start justify-start rounded-sm px-4 text-sm outline-hidden select-none data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50 data-[selected=true]:bg-neutral-200/70 data-[selected=true]:text-neutral-900 dark:data-[selected=true]:bg-neutral-800/70 dark:data-[selected=true]:text-neutral-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='text-'])]:text-neutral-500 dark:[&_svg:not([class*='text-'])]:text-neutral-400",
159159
className,
160160
)}
161161
{...props}

apps/website/src/mdx/plugins/rehypeReactDoc.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -166,7 +166,7 @@ export function rehypeReactDoc() {
166166
children: [
167167
{
168168
type: "text",
169-
value: `Included: ${String(reactParentName)}<HTMLDivElement>`,
169+
value: `Included: ${String(reactParentName)}`,
170170
},
171171
],
172172
}),

apps/website/src/styles/shiki.css

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -69,15 +69,15 @@ pre.has-diff span.line.diff {
6969
}
7070

7171
pre.has-diff span.line.diff.add {
72-
@apply bg-green-300/20 dark:bg-green-700/20;
72+
@apply bg-emerald-300/20! dark:bg-emerald-700/20!;
7373
&::before {
7474
content: "+";
7575
@apply absolute left-2 text-green-600 dark:text-green-400;
7676
}
7777
}
7878

7979
pre.has-diff span.line.diff.remove {
80-
@apply bg-red-300/20 opacity-70 dark:bg-red-600/20;
80+
@apply bg-red-300/20! opacity-70 dark:bg-red-600/20!;
8181
&::before {
8282
content: "-";
8383
@apply absolute left-2 text-red-600 dark:text-red-400;

apps/website/src/utils/shiki/transformers/show-line-numbers.ts

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,21 @@ const showLineNumbers = (): ShikiTransformer => {
66
pre(node) {
77
const rawMeta = this.options.meta?.__raw;
88
const addLineNumbers = rawMeta?.includes("lineNumbers") || false;
9-
const shikiStyles = node.properties.class;
10-
if (addLineNumbers) {
11-
node.properties.class = `${shikiStyles} shiki-line-numbers`;
9+
10+
if (!addLineNumbers) {
11+
return;
12+
}
13+
14+
const existingClass = node.properties.class;
15+
if (Array.isArray(existingClass)) {
16+
existingClass.push("shiki-line-numbers");
17+
} else if (typeof existingClass === "string") {
18+
node.properties.class = `${existingClass} shiki-line-numbers`;
19+
} else {
20+
node.properties.class = "shiki-line-numbers";
1221
}
1322
},
1423
};
1524
};
1625

17-
export { showLineNumbers };
26+
export { showLineNumbers };

0 commit comments

Comments
 (0)