Compare commits
31 Commits
jazz-inspe
...
pagefind-l
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a9bcb6bb28 | ||
|
|
3f845d74d9 | ||
|
|
e24255febc | ||
|
|
154999f4cf | ||
|
|
9a0891bcd5 | ||
|
|
0aba399bac | ||
|
|
0a9df803db | ||
|
|
c6c9e5818d | ||
|
|
863c2f8837 | ||
|
|
519b4d3e4b | ||
|
|
40278c6e75 | ||
|
|
cb4141a400 | ||
|
|
2beab4200e | ||
|
|
a79dbfff8e | ||
|
|
0ae9c73b52 | ||
|
|
58bee686d8 | ||
|
|
d7ab966258 | ||
|
|
8e92218857 | ||
|
|
2463cb772e | ||
|
|
195af21900 | ||
|
|
46ae19705c | ||
|
|
cb6f12450d | ||
|
|
eb6cbe74b1 | ||
|
|
8b4a9a33a3 | ||
|
|
6227e4469a | ||
|
|
092efdea87 | ||
|
|
b049b67d28 | ||
|
|
8394135d5b | ||
|
|
124e61dab0 | ||
|
|
2373ea64ca | ||
|
|
1a848f97da |
@@ -15,7 +15,7 @@
|
||||
},
|
||||
"devDependencies": {
|
||||
"@sveltejs/adapter-auto": "^3.0.0",
|
||||
"@sveltejs/kit": "^2.0.0",
|
||||
"@sveltejs/kit": "^2.9.0",
|
||||
"@sveltejs/vite-plugin-svelte": "^4.0.0",
|
||||
"@types/eslint": "^9.6.0",
|
||||
"eslint": "^9.7.0",
|
||||
|
||||
@@ -18,7 +18,8 @@ export function Select(
|
||||
"w-full rounded-md border shadow-sm px-2 py-1.5 text-sm",
|
||||
"font-medium text-stone-900",
|
||||
"dark:text-white",
|
||||
"appearance-none",
|
||||
"appearance-none cursor-pointer",
|
||||
"transition-colors hover:border-stone-300 dark:hover:border-stone-800",
|
||||
);
|
||||
|
||||
return (
|
||||
|
||||
@@ -293,7 +293,10 @@ export function Nav(props: NavProps) {
|
||||
const { mainLogo, items, docNav, cta } = props;
|
||||
return (
|
||||
<>
|
||||
<div className="w-full border-b py-2 sticky top-0 z-50 bg-white dark:bg-stone-950 hidden md:block">
|
||||
<div
|
||||
className="w-full border-b py-2 sticky top-0 z-50 bg-white dark:bg-stone-950 hidden md:block"
|
||||
data-pagefind-ignore="all"
|
||||
>
|
||||
<PopoverGroup className="flex flex-wrap items-center max-sm:justify-between md:gap-2 container w-full">
|
||||
<Link href="/" className="flex items-center">
|
||||
{mainLogo}
|
||||
|
||||
@@ -11,6 +11,12 @@ import ProblemStatementSection from "@/components/home/ProblemStatementSection";
|
||||
import { SupportedEnvironmentsSection } from "@/components/home/SupportedEnvironmentsSection";
|
||||
import { Testimonial } from "gcmp-design-system/src/app/components/molecules/Testimonial";
|
||||
|
||||
export const metadata = {
|
||||
title: "Jazz - Build Collaborative Apps with TypeScript",
|
||||
description:
|
||||
"Jazz helps you build collaborative, local-first apps with TypeScript. Ship faster with built-in features like real-time sync, offline support, and end-to-end encryption.",
|
||||
};
|
||||
|
||||
export default function Home() {
|
||||
return (
|
||||
<>
|
||||
|
||||
@@ -17,7 +17,7 @@ export default function Page({ params }: Props) {
|
||||
export async function generateMetadata({ params }: Props) {
|
||||
const packageName = params.package;
|
||||
return {
|
||||
title: `${packageName} - jazz`,
|
||||
title: `${packageName} - API Reference`,
|
||||
description: `API reference for ${packageName}.`,
|
||||
};
|
||||
}
|
||||
|
||||
@@ -55,7 +55,7 @@ const Card = ({
|
||||
|
||||
export default function Page() {
|
||||
return (
|
||||
<>
|
||||
<div data-pagefind-ignore="all">
|
||||
<h1>API Reference</h1>
|
||||
|
||||
<div className="grid sm:grid-cols-2 lg:grid-cols-3 gap-4">
|
||||
@@ -104,6 +104,6 @@ export default function Page() {
|
||||
</CardBody>
|
||||
</Card>
|
||||
</div>
|
||||
</>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
@@ -1,3 +1,7 @@
|
||||
---
|
||||
title: React with Jazz Guide
|
||||
---
|
||||
|
||||
import { CodeGroup, ComingSoon } from "@/components/forMdx";
|
||||
|
||||
# React guide
|
||||
|
||||
@@ -1,3 +1,7 @@
|
||||
---
|
||||
title: React Native with Jazz
|
||||
---
|
||||
|
||||
import { CodeGroup } from "@/components/forMdx";
|
||||
|
||||
# React Native
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
---
|
||||
title: Node.JS / server workers with Jazz
|
||||
---
|
||||
|
||||
|
||||
import { CodeGroup } from "@/components/forMdx";
|
||||
|
||||
# Node.JS / server workers
|
||||
|
||||
@@ -1,8 +1,12 @@
|
||||
---
|
||||
title: Vue.js with Jazz
|
||||
---
|
||||
|
||||
import { CodeGroup } from "@/components/forMdx";
|
||||
|
||||
# VueJS demo todo app guide
|
||||
# Vue.js demo todo app guide
|
||||
|
||||
This guide provides step-by-step instructions for setting up and running a Jazz-powered Todo application using VueJS.
|
||||
This guide provides step-by-step instructions for setting up and running a Jazz-powered Todo application using Vue.js.
|
||||
|
||||
See the full example [here](https://github.com/gardencmp/jazz/tree/main/examples/todo-vue).
|
||||
|
||||
@@ -12,7 +16,7 @@ See the full example [here](https://github.com/gardencmp/jazz/tree/main/examples
|
||||
|
||||
### Create a new app
|
||||
|
||||
Run the following command to create a new VueJS application:
|
||||
Run the following command to create a new Vue.js application:
|
||||
|
||||
<CodeGroup>
|
||||
```bash
|
||||
|
||||
@@ -1,3 +1,7 @@
|
||||
---
|
||||
title: CoValues in Jazz
|
||||
---
|
||||
|
||||
import { CodeGroup, ComingSoon } from "@/components/forMdx";
|
||||
|
||||
# CoValues
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
---
|
||||
title: Sync and storage
|
||||
---
|
||||
|
||||
|
||||
# Sync and storage
|
||||
|
||||
## Using Jazz Cloud
|
||||
|
||||
@@ -9,6 +9,12 @@ import { GappedGrid } from "gcmp-design-system/src/app/components/molecules/Gapp
|
||||
import { HeroHeader } from "gcmp-design-system/src/app/components/molecules/HeroHeader";
|
||||
import { CloudUploadIcon, FingerprintIcon, ImageIcon } from "lucide-react";
|
||||
|
||||
export const metadata = {
|
||||
title: "Example Apps | Jazz",
|
||||
description:
|
||||
"Find an example app with code most similar to what you want to build with Jazz - including React, Next.js, and React Native examples.",
|
||||
};
|
||||
|
||||
type Example = {
|
||||
name: string;
|
||||
slug: string;
|
||||
|
||||
@@ -6,6 +6,7 @@ import localFont from "next/font/local";
|
||||
|
||||
import { JazzFooter } from "@/components/footer";
|
||||
import { JazzNav } from "@/components/nav";
|
||||
import { PagefindSearch } from "@/components/pagefind";
|
||||
import { Analytics } from "@vercel/analytics/react";
|
||||
import { SpeedInsights } from "@vercel/speed-insights/next";
|
||||
import { ThemeProvider } from "gcmp-design-system/src/app/components/molecules/ThemeProvider";
|
||||
@@ -100,6 +101,7 @@ export default function RootLayout({
|
||||
<main>{children}</main>
|
||||
</div>
|
||||
<JazzFooter />
|
||||
<PagefindSearch />
|
||||
</ThemeProvider>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -1,17 +1,17 @@
|
||||
import { SideNav } from "@/components/SideNav";
|
||||
import { SideNavHeader } from "@/components/SideNavHeader";
|
||||
import { SideNavItem } from "@/components/SideNavItem";
|
||||
import { docNavigationItems } from "@/lib/docNavigationItems";
|
||||
import { packages } from "@/lib/packages";
|
||||
import { clsx } from "clsx";
|
||||
import { ChevronRight, PackageIcon } from "lucide-react";
|
||||
import Link from "next/link";
|
||||
import { twMerge } from "tailwind-merge";
|
||||
import { requestProject } from "./requestProject";
|
||||
|
||||
export function ApiNav({ className }: { className?: string }) {
|
||||
return (
|
||||
<div className={clsx(className, "text-sm space-y-5")}>
|
||||
<div
|
||||
className={clsx(className, "text-sm space-y-5")}
|
||||
data-pagefind-ignore="all"
|
||||
>
|
||||
<SideNavHeader href="/api-reference">API Reference</SideNavHeader>
|
||||
<ul className="space-y-5">
|
||||
{packages.map(({ name }) => (
|
||||
|
||||
@@ -1,4 +1,8 @@
|
||||
"use client";
|
||||
|
||||
import { clsx } from "clsx";
|
||||
import { usePagefindSearch } from "../pagefind";
|
||||
import { QuickSearch } from "../quick-search";
|
||||
|
||||
export default function DocsLayout({
|
||||
children,
|
||||
@@ -7,6 +11,7 @@ export default function DocsLayout({
|
||||
children: React.ReactNode;
|
||||
nav?: React.ReactNode;
|
||||
}) {
|
||||
const { setOpen } = usePagefindSearch();
|
||||
return (
|
||||
<div className="container relative grid grid-cols-12 gap-5">
|
||||
<div
|
||||
@@ -16,10 +21,16 @@ export default function DocsLayout({
|
||||
"sticky align-start top-[65px] h-[calc(100vh-65px)] overflow-y-auto overflow-x-hidden",
|
||||
"hidden md:block",
|
||||
)}
|
||||
data-pagefind-ignore
|
||||
>
|
||||
<div className="pb-5">
|
||||
<QuickSearch onClick={() => setOpen((open) => !open)} />
|
||||
</div>
|
||||
{nav}
|
||||
</div>
|
||||
<div className="col-span-12 md:col-span-8 lg:col-span-9">{children}</div>
|
||||
<div className="col-span-12 md:col-span-8 lg:col-span-9 data-pagefind-body">
|
||||
{children}
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
@@ -10,7 +10,7 @@ const highlighter = getHighlighter({
|
||||
|
||||
export function Example({ children }: { children: ReactNode }) {
|
||||
return (
|
||||
<div className="flex-1">
|
||||
<div className="flex-1" data-pagefind-weight="2">
|
||||
<div className="border bg-white dark:bg-stone-900 rounded shadow-sm">
|
||||
<div className="py-1 px-2 border-b text-xs">Example</div>
|
||||
<div className="py-1 px-2 overflow-x-auto">{children}</div>
|
||||
@@ -74,6 +74,7 @@ export function ClassOrInterface({
|
||||
<div
|
||||
id={name}
|
||||
className="peer sticky top-0 mt-4 md:top-[65px] md:pt-8 bg-white dark:bg-stone-950 z-20"
|
||||
data-pagefind-weight="6"
|
||||
>
|
||||
<Link
|
||||
href={"#" + name}
|
||||
@@ -119,7 +120,10 @@ export function PropDecl({
|
||||
example?: ReactNode;
|
||||
}) {
|
||||
return (
|
||||
<div className="text-sm flex flex-col gap-3 my-2 p-3 rounded bg-stone-50 dark:bg-stone-925">
|
||||
<div
|
||||
className="text-sm flex flex-col gap-3 my-2 p-3 rounded bg-stone-50 dark:bg-stone-925"
|
||||
data-pagefind-weight="4"
|
||||
>
|
||||
{(name || type) && (
|
||||
<div>
|
||||
{name && <Highlight>{name + ":"}</Highlight>}
|
||||
@@ -157,7 +161,10 @@ export function FnDecl({
|
||||
example: ReactNode;
|
||||
}) {
|
||||
return (
|
||||
<div className="text-sm flex flex-col gap-3 my-2 p-3 rounded bg-stone-50 dark:bg-stone-925">
|
||||
<div
|
||||
className="text-sm flex flex-col gap-3 my-2 p-3 rounded bg-stone-50 dark:bg-stone-925"
|
||||
data-pagefind-weight="5"
|
||||
>
|
||||
<div className="flex flex-col gap-2">
|
||||
<div>
|
||||
{<Highlight>{signature + ":"}</Highlight>}{" "}
|
||||
@@ -201,7 +208,10 @@ export function PropCategory({
|
||||
}) {
|
||||
return (
|
||||
<>
|
||||
<div className="col-span-6 py-3 font-display font-semibold text-lg text-stone-900 dark:text-white">
|
||||
<div
|
||||
className="col-span-6 py-3 font-display font-semibold text-lg text-stone-900 dark:text-white"
|
||||
data-pagefind-weight="3"
|
||||
>
|
||||
{name}
|
||||
</div>
|
||||
{description && <PropDecl doc={description} example={example} />}
|
||||
@@ -211,7 +221,10 @@ export function PropCategory({
|
||||
|
||||
export function DocComment({ children }: { children: ReactNode }) {
|
||||
return (
|
||||
<div className="prose-inner-sm flex-1 max-w-2xl leading-snug">
|
||||
<div
|
||||
className="prose-inner-sm flex-1 max-w-2xl leading-snug"
|
||||
data-pagefind-weight="2"
|
||||
>
|
||||
{children}
|
||||
</div>
|
||||
);
|
||||
|
||||
249
homepage/homepage/components/pagefind.tsx
Normal file
249
homepage/homepage/components/pagefind.tsx
Normal file
@@ -0,0 +1,249 @@
|
||||
"use client";
|
||||
|
||||
import { clsx } from "clsx";
|
||||
import { Command } from "cmdk";
|
||||
import React, { useState, useEffect, useRef } from "react";
|
||||
import { singletonHook } from "react-singleton-hook";
|
||||
|
||||
export const usePagefindSearch = singletonHook(
|
||||
{ open: false, setOpen: () => {} },
|
||||
() => {
|
||||
const [open, setOpen] = useState(false);
|
||||
return { open, setOpen };
|
||||
},
|
||||
);
|
||||
|
||||
export function PagefindSearch() {
|
||||
const { open, setOpen } = usePagefindSearch();
|
||||
const [query, setQuery] = useState("");
|
||||
const [results, setResults] = useState([]);
|
||||
const listRef = useRef<HTMLDivElement>(null);
|
||||
|
||||
useEffect(() => {
|
||||
const down = (e: KeyboardEvent) => {
|
||||
if (e.key === "k" && (e.metaKey || e.ctrlKey)) {
|
||||
e.preventDefault();
|
||||
setOpen((open) => !open);
|
||||
}
|
||||
};
|
||||
|
||||
document.addEventListener("keydown", down);
|
||||
return () => document.removeEventListener("keydown", down);
|
||||
}, [setOpen]);
|
||||
|
||||
useEffect(() => {
|
||||
async function loadPagefind() {
|
||||
// @ts-expect-error pagefind.js generated after build
|
||||
if (typeof window.pagefind === "undefined") {
|
||||
try {
|
||||
// @ts-expect-error pagefind.js generated after build
|
||||
window.pagefind = await import(
|
||||
// @ts-expect-error pagefind.js generated after build
|
||||
/* webpackIgnore: true */ "/_next/static/chunks/pagefind/pagefind.js "
|
||||
);
|
||||
} catch (e) {
|
||||
// @ts-expect-error pagefind.js generated after build
|
||||
window.pagefind = { search: () => ({ results: [] }) };
|
||||
}
|
||||
}
|
||||
}
|
||||
loadPagefind();
|
||||
}, []);
|
||||
|
||||
useEffect(() => {
|
||||
if (listRef.current) {
|
||||
listRef.current.scrollTop = 0;
|
||||
}
|
||||
}, [results]);
|
||||
|
||||
async function handleSearch(value: string) {
|
||||
setQuery(value);
|
||||
// @ts-expect-error pagefind.js generated after build
|
||||
if (window.pagefind) {
|
||||
// @ts-expect-error pagefind.js generated after build
|
||||
const search = await window.pagefind.search(value);
|
||||
const results = await Promise.all(
|
||||
search.results.map((result: any) => result.data()),
|
||||
);
|
||||
setResults(results);
|
||||
}
|
||||
}
|
||||
|
||||
return (
|
||||
<Command.Dialog
|
||||
open={open}
|
||||
onOpenChange={(open) => {
|
||||
if (!open) {
|
||||
setQuery("");
|
||||
setResults([]);
|
||||
}
|
||||
setOpen(open);
|
||||
}}
|
||||
label="Search"
|
||||
className="fixed top-[10%] sm:top-1/2 left-1/2 -translate-x-1/2 sm:-translate-y-1/2 w-full sm:w-auto z-20"
|
||||
shouldFilter={false}
|
||||
>
|
||||
<div
|
||||
className="w-full sm:w-[640px] mx-auto max-w-[calc(100%-2rem)] overflow-hidden
|
||||
origin-center animate-in fade-in
|
||||
data-[state=open]:animate-in data-[state=closed]:animate-out
|
||||
data-[state=open]:scale-100 data-[state=closed]:scale-95
|
||||
data-[state=closed]:opacity-0 data-[state=open]:opacity-100
|
||||
transition-all duration-200 ease-in-out
|
||||
rounded-xl bg-white ring-1 ring-stone-400/20 shadow-2xl shadow-stone-900/25
|
||||
dark:bg-stone-925 dark:ring-stone-600/20
|
||||
"
|
||||
>
|
||||
<Command.Input
|
||||
value={query}
|
||||
onValueChange={handleSearch}
|
||||
placeholder="Search documentation..."
|
||||
className={clsx(
|
||||
"w-full text-base sm:text-lg px-4 sm:px-5 py-4 sm:py-5 outline-none border-b bg-transparent text-stone-900 placeholder:text-stone-600 placeholder:font-normal caret-blue",
|
||||
"dark:text-stone-100 dark:placeholder:text-stone-400 dark:caret-blue-500",
|
||||
)}
|
||||
/>
|
||||
<Command.List
|
||||
ref={listRef}
|
||||
className="h-[50vh] sm:h-[300px] max-h-[60vh] sm:max-h-[400px] overflow-y-auto overflow-x-hidden overscroll-contain transition-all duration-100 ease-in p-2"
|
||||
>
|
||||
{results.length === 0 ? (
|
||||
<Command.Empty className="flex items-center justify-center h-16 text-sm dark:text-stone-400">
|
||||
No results found.
|
||||
</Command.Empty>
|
||||
) : (
|
||||
<Command.Group>
|
||||
{results.map((result: any) => (
|
||||
<SearchResult
|
||||
key={result.id}
|
||||
result={result}
|
||||
setOpen={setOpen}
|
||||
/>
|
||||
))}
|
||||
</Command.Group>
|
||||
)}
|
||||
</Command.List>
|
||||
</div>
|
||||
</Command.Dialog>
|
||||
);
|
||||
}
|
||||
|
||||
function HighlightedText({ text }: { text: string }) {
|
||||
const decodedText = text.replace(/</g, "<").replace(/>/g, ">");
|
||||
const parts = decodedText.split(/(<mark>.*?<\/mark>)/g);
|
||||
|
||||
return (
|
||||
<p className="text-xs dark:text-stone-400 leading-relaxed mt-1">
|
||||
{parts.map((part, i) => {
|
||||
if (part.startsWith("<mark>")) {
|
||||
const content = part.replace(/<\/?mark>/g, "");
|
||||
return (
|
||||
<mark
|
||||
key={i}
|
||||
className="font-medium px-0.5 bg-blue-100 text-stone-800 dark:text-stone-100 dark:bg-blue-500/20"
|
||||
>
|
||||
{content}
|
||||
</mark>
|
||||
);
|
||||
}
|
||||
return part;
|
||||
})}
|
||||
</p>
|
||||
);
|
||||
}
|
||||
|
||||
function SearchResult({
|
||||
result,
|
||||
setOpen,
|
||||
}: {
|
||||
result: any;
|
||||
setOpen: (open: boolean) => void;
|
||||
}) {
|
||||
// const [data, setData] = useState<any>(null);
|
||||
|
||||
// useEffect(() => {
|
||||
// async function fetchData() {
|
||||
// const data = await result.data();
|
||||
// setData(data);
|
||||
// }
|
||||
// fetchData();
|
||||
// }, [result]);
|
||||
|
||||
if (!result) {
|
||||
return null;
|
||||
}
|
||||
|
||||
let url = result?.url
|
||||
?.split("/_next/static/chunks/server/app/")?.[1]
|
||||
?.split(".html")?.[0];
|
||||
|
||||
return (
|
||||
<>
|
||||
<Command.Item
|
||||
value={result.meta.title}
|
||||
onSelect={() => {
|
||||
if (!url) return;
|
||||
const cleanUrl = url.startsWith("/") ? url : `/${url}`;
|
||||
window.location.href = `${window.location.origin}${cleanUrl}`;
|
||||
setOpen(false);
|
||||
}}
|
||||
className={`group relative flex items-center gap-2 sm:gap-3 px-3 sm:px-4 py-2 sm:py-3 cursor-pointer text-sm mt-1 select-none
|
||||
transition-all duration-200 ease-in-out
|
||||
animate-in fade-in-0
|
||||
data-[selected=true]:bg-stone-100 hover:bg-stone-50 active:bg-stone-100
|
||||
dark:text-stone-100 dark:data-[selected=true]:bg-stone-900 dark:hover:bg-stone-925 dark:active:bg-stone-900
|
||||
max-w-full`}
|
||||
>
|
||||
<div className="min-w-0 flex-1">
|
||||
<h3 className="text-sm font-medium truncate text-stone-900 dark:text-stone-100">
|
||||
{result.meta?.title || "No title"}
|
||||
</h3>
|
||||
<HighlightedText text={result.excerpt || ""} />
|
||||
</div>
|
||||
|
||||
<div className="absolute -left-px w-[3px] h-full bg-blue transition-opacity duration-200 ease-in-out opacity-0 group-data-[selected=true]:opacity-100 dark:bg-blue-500" />
|
||||
</Command.Item>
|
||||
{/* Sub-results section */}
|
||||
{result.sub_results && result.sub_results.length > 0 && (
|
||||
<div className="ml-4 border-l">
|
||||
{result.sub_results.map((subResult: any) => {
|
||||
// to avoid showing the same result twice
|
||||
if (subResult.title === result.meta.title) return null;
|
||||
return (
|
||||
<Command.Item
|
||||
key={subResult.id}
|
||||
value={subResult.title}
|
||||
onSelect={() => {
|
||||
const [subUrlPath, subUrlHash] = subResult?.url
|
||||
?.split("/_next/static/chunks/server/app/")?.[1]
|
||||
?.split(".html");
|
||||
if (!subUrlPath) return;
|
||||
const cleanSubUrl = subUrlPath.startsWith("/")
|
||||
? subUrlPath
|
||||
: `/${subUrlPath}`;
|
||||
const hash = subUrlHash ? `${subUrlHash}` : "";
|
||||
window.location.href = `${window.location.origin}${cleanSubUrl}${hash}`;
|
||||
setOpen(false);
|
||||
}}
|
||||
className={`group relative flex items-center gap-2 sm:gap-3 px-3 sm:px-4 py-2 sm:py-3 cursor-pointer text-sm mt-1 select-none
|
||||
transition-all duration-200 ease-in-out
|
||||
animate-in fade-in-0
|
||||
data-[selected=true]:bg-stone-100 hover:bg-stone-50 active:bg-stone-100
|
||||
dark:text-stone-100 dark:data-[selected=true]:bg-stone-900 dark:hover:bg-stone-925 dark:active:bg-stone-900
|
||||
max-w-full`}
|
||||
>
|
||||
<div className="min-w-0 flex-1">
|
||||
<h3 className="text-sm font-medium truncate text-stone-900 dark:text-stone-100">
|
||||
{subResult?.title || "No title"}
|
||||
</h3>
|
||||
<HighlightedText text={subResult?.excerpt || ""} />
|
||||
</div>
|
||||
<div className="absolute -left-px w-[3px] h-full bg-blue transition-opacity duration-200 ease-in-out opacity-0 group-data-[selected=true]:opacity-100 dark:bg-blue-500" />
|
||||
</Command.Item>
|
||||
);
|
||||
})}
|
||||
</div>
|
||||
)}
|
||||
</>
|
||||
);
|
||||
}
|
||||
24
homepage/homepage/components/quick-search.tsx
Normal file
24
homepage/homepage/components/quick-search.tsx
Normal file
@@ -0,0 +1,24 @@
|
||||
import { clsx } from "clsx";
|
||||
import { Search } from "lucide-react";
|
||||
|
||||
export function QuickSearch({ onClick }: { onClick: () => void }) {
|
||||
return (
|
||||
<button
|
||||
onClick={onClick}
|
||||
className={clsx(
|
||||
"w-full rounded-md border shadow-sm px-2 py-1.5 text-sm text-stone-900 dark:text-white",
|
||||
"flex items-center gap-2",
|
||||
"transition-colors hover:border-stone-400 dark:hover:border-stone-800",
|
||||
)}
|
||||
>
|
||||
<Search className="size-4" />
|
||||
<span className="text-stone-600 dark:text-stone-400">
|
||||
Quick search...
|
||||
</span>
|
||||
<kbd className="ml-auto font-medium text-stone-400 dark:text-stone-500">
|
||||
<kbd className="font-sans">⌘</kbd>
|
||||
<kbd className="font-sans">K</kbd>
|
||||
</kbd>
|
||||
</button>
|
||||
);
|
||||
}
|
||||
@@ -2,6 +2,8 @@ import createMDX from "@next/mdx";
|
||||
import withToc from "@stefanprobst/rehype-extract-toc";
|
||||
import withTocExport from "@stefanprobst/rehype-extract-toc/mdx";
|
||||
import rehypeSlug from "rehype-slug";
|
||||
import remarkFrontmatter from "remark-frontmatter";
|
||||
import remarkMdxFrontmatter from "remark-mdx-frontmatter";
|
||||
import { getHighlighter } from "shiki";
|
||||
import { SKIP, visit } from "unist-util-visit";
|
||||
|
||||
@@ -15,7 +17,12 @@ const nextConfig = {
|
||||
const withMDX = createMDX({
|
||||
// Add markdown plugins here, as desired
|
||||
options: {
|
||||
remarkPlugins: [highlightPlugin, remarkHtmlToJsx],
|
||||
remarkPlugins: [
|
||||
highlightPlugin,
|
||||
remarkHtmlToJsx,
|
||||
remarkFrontmatter,
|
||||
remarkMdxFrontmatter,
|
||||
],
|
||||
rehypePlugins: [rehypeSlug, withToc, withTocExport],
|
||||
},
|
||||
});
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
"type": "module",
|
||||
"scripts": {
|
||||
"dev": "NODE_OPTIONS=--max-old-space-size=8192 next dev",
|
||||
"build": "pnpm run build:generate-docs && next build && npx pagefind --site .next --output-path .next/static/chunks/pagefind --glob 'server/**/*.html'",
|
||||
"build:generate-docs": "node genDocs.mjs --build",
|
||||
"build": "pnpm run build:generate-docs && next build",
|
||||
"start": "next start",
|
||||
"format-and-lint": "biome check .",
|
||||
"format-and-lint:fix": "biome check . --write"
|
||||
@@ -23,6 +23,7 @@
|
||||
"@vercel/analytics": "^1.3.1",
|
||||
"@vercel/speed-insights": "^1.0.12",
|
||||
"clsx": "^2.1.1",
|
||||
"cmdk": "^1.0.4",
|
||||
"gcmp-design-system": "workspace:*",
|
||||
"lucide-react": "^0.436.0",
|
||||
"mdast-util-from-markdown": "^2.0.0",
|
||||
@@ -32,7 +33,10 @@
|
||||
"qrcode": "^1.5.4",
|
||||
"react": "^18",
|
||||
"react-dom": "^18",
|
||||
"react-singleton-hook": "^4.0.1",
|
||||
"rehype-slug": "^6.0.0",
|
||||
"remark-frontmatter": "^5.0.0",
|
||||
"remark-mdx-frontmatter": "^5.0.0",
|
||||
"shiki": "^0.14.6",
|
||||
"shiki-twoslash": "^3.1.2",
|
||||
"tailwind-merge": "^1.14.0",
|
||||
|
||||
573
homepage/pnpm-lock.yaml
generated
573
homepage/pnpm-lock.yaml
generated
@@ -202,6 +202,9 @@ importers:
|
||||
clsx:
|
||||
specifier: ^2.1.1
|
||||
version: 2.1.1
|
||||
cmdk:
|
||||
specifier: ^1.0.4
|
||||
version: 1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
||||
gcmp-design-system:
|
||||
specifier: workspace:*
|
||||
version: link:../design-system
|
||||
@@ -229,9 +232,18 @@ importers:
|
||||
react-dom:
|
||||
specifier: ^18
|
||||
version: 18.3.1(react@18.3.1)
|
||||
react-singleton-hook:
|
||||
specifier: ^4.0.1
|
||||
version: 4.0.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
||||
rehype-slug:
|
||||
specifier: ^6.0.0
|
||||
version: 6.0.0
|
||||
remark-frontmatter:
|
||||
specifier: ^5.0.0
|
||||
version: 5.0.0
|
||||
remark-mdx-frontmatter:
|
||||
specifier: ^5.0.0
|
||||
version: 5.0.0
|
||||
shiki:
|
||||
specifier: ^0.14.6
|
||||
version: 0.14.7
|
||||
@@ -599,6 +611,168 @@ packages:
|
||||
resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==}
|
||||
engines: {node: '>=14'}
|
||||
|
||||
'@radix-ui/primitive@1.1.0':
|
||||
resolution: {integrity: sha512-4Z8dn6Upk0qk4P74xBhZ6Hd/w0mPEzOOLxy4xiPXOXqjF7jZS0VAKk7/x/H6FyY2zCkYJqePf1G5KmkmNJ4RBA==}
|
||||
|
||||
'@radix-ui/react-compose-refs@1.1.0':
|
||||
resolution: {integrity: sha512-b4inOtiaOnYf9KWyO3jAeeCG6FeyfY6ldiEPanbUjWd+xIk5wZeHa8yVwmrJ2vderhu/BQvzCrJI0lHd+wIiqw==}
|
||||
peerDependencies:
|
||||
'@types/react': '*'
|
||||
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
|
||||
peerDependenciesMeta:
|
||||
'@types/react':
|
||||
optional: true
|
||||
|
||||
'@radix-ui/react-context@1.1.1':
|
||||
resolution: {integrity: sha512-UASk9zi+crv9WteK/NU4PLvOoL3OuE6BWVKNF6hPRBtYBDXQ2u5iu3O59zUlJiTVvkyuycnqrztsHVJwcK9K+Q==}
|
||||
peerDependencies:
|
||||
'@types/react': '*'
|
||||
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
|
||||
peerDependenciesMeta:
|
||||
'@types/react':
|
||||
optional: true
|
||||
|
||||
'@radix-ui/react-dialog@1.1.2':
|
||||
resolution: {integrity: sha512-Yj4dZtqa2o+kG61fzB0H2qUvmwBA2oyQroGLyNtBj1beo1khoQ3q1a2AO8rrQYjd8256CO9+N8L9tvsS+bnIyA==}
|
||||
peerDependencies:
|
||||
'@types/react': '*'
|
||||
'@types/react-dom': '*'
|
||||
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
|
||||
react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
|
||||
peerDependenciesMeta:
|
||||
'@types/react':
|
||||
optional: true
|
||||
'@types/react-dom':
|
||||
optional: true
|
||||
|
||||
'@radix-ui/react-dismissable-layer@1.1.1':
|
||||
resolution: {integrity: sha512-QSxg29lfr/xcev6kSz7MAlmDnzbP1eI/Dwn3Tp1ip0KT5CUELsxkekFEMVBEoykI3oV39hKT4TKZzBNMbcTZYQ==}
|
||||
peerDependencies:
|
||||
'@types/react': '*'
|
||||
'@types/react-dom': '*'
|
||||
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
|
||||
react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
|
||||
peerDependenciesMeta:
|
||||
'@types/react':
|
||||
optional: true
|
||||
'@types/react-dom':
|
||||
optional: true
|
||||
|
||||
'@radix-ui/react-focus-guards@1.1.1':
|
||||
resolution: {integrity: sha512-pSIwfrT1a6sIoDASCSpFwOasEwKTZWDw/iBdtnqKO7v6FeOzYJ7U53cPzYFVR3geGGXgVHaH+CdngrrAzqUGxg==}
|
||||
peerDependencies:
|
||||
'@types/react': '*'
|
||||
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
|
||||
peerDependenciesMeta:
|
||||
'@types/react':
|
||||
optional: true
|
||||
|
||||
'@radix-ui/react-focus-scope@1.1.0':
|
||||
resolution: {integrity: sha512-200UD8zylvEyL8Bx+z76RJnASR2gRMuxlgFCPAe/Q/679a/r0eK3MBVYMb7vZODZcffZBdob1EGnky78xmVvcA==}
|
||||
peerDependencies:
|
||||
'@types/react': '*'
|
||||
'@types/react-dom': '*'
|
||||
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
|
||||
react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
|
||||
peerDependenciesMeta:
|
||||
'@types/react':
|
||||
optional: true
|
||||
'@types/react-dom':
|
||||
optional: true
|
||||
|
||||
'@radix-ui/react-id@1.1.0':
|
||||
resolution: {integrity: sha512-EJUrI8yYh7WOjNOqpoJaf1jlFIH2LvtgAl+YcFqNCa+4hj64ZXmPkAKOFs/ukjz3byN6bdb/AVUqHkI8/uWWMA==}
|
||||
peerDependencies:
|
||||
'@types/react': '*'
|
||||
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
|
||||
peerDependenciesMeta:
|
||||
'@types/react':
|
||||
optional: true
|
||||
|
||||
'@radix-ui/react-portal@1.1.2':
|
||||
resolution: {integrity: sha512-WeDYLGPxJb/5EGBoedyJbT0MpoULmwnIPMJMSldkuiMsBAv7N1cRdsTWZWht9vpPOiN3qyiGAtbK2is47/uMFg==}
|
||||
peerDependencies:
|
||||
'@types/react': '*'
|
||||
'@types/react-dom': '*'
|
||||
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
|
||||
react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
|
||||
peerDependenciesMeta:
|
||||
'@types/react':
|
||||
optional: true
|
||||
'@types/react-dom':
|
||||
optional: true
|
||||
|
||||
'@radix-ui/react-presence@1.1.1':
|
||||
resolution: {integrity: sha512-IeFXVi4YS1K0wVZzXNrbaaUvIJ3qdY+/Ih4eHFhWA9SwGR9UDX7Ck8abvL57C4cv3wwMvUE0OG69Qc3NCcTe/A==}
|
||||
peerDependencies:
|
||||
'@types/react': '*'
|
||||
'@types/react-dom': '*'
|
||||
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
|
||||
react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
|
||||
peerDependenciesMeta:
|
||||
'@types/react':
|
||||
optional: true
|
||||
'@types/react-dom':
|
||||
optional: true
|
||||
|
||||
'@radix-ui/react-primitive@2.0.0':
|
||||
resolution: {integrity: sha512-ZSpFm0/uHa8zTvKBDjLFWLo8dkr4MBsiDLz0g3gMUwqgLHz9rTaRRGYDgvZPtBJgYCBKXkS9fzmoySgr8CO6Cw==}
|
||||
peerDependencies:
|
||||
'@types/react': '*'
|
||||
'@types/react-dom': '*'
|
||||
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
|
||||
react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
|
||||
peerDependenciesMeta:
|
||||
'@types/react':
|
||||
optional: true
|
||||
'@types/react-dom':
|
||||
optional: true
|
||||
|
||||
'@radix-ui/react-slot@1.1.0':
|
||||
resolution: {integrity: sha512-FUCf5XMfmW4dtYl69pdS4DbxKy8nj4M7SafBgPllysxmdachynNflAdp/gCsnYWNDnge6tI9onzMp5ARYc1KNw==}
|
||||
peerDependencies:
|
||||
'@types/react': '*'
|
||||
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
|
||||
peerDependenciesMeta:
|
||||
'@types/react':
|
||||
optional: true
|
||||
|
||||
'@radix-ui/react-use-callback-ref@1.1.0':
|
||||
resolution: {integrity: sha512-CasTfvsy+frcFkbXtSJ2Zu9JHpN8TYKxkgJGWbjiZhFivxaeW7rMeZt7QELGVLaYVfFMsKHjb7Ak0nMEe+2Vfw==}
|
||||
peerDependencies:
|
||||
'@types/react': '*'
|
||||
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
|
||||
peerDependenciesMeta:
|
||||
'@types/react':
|
||||
optional: true
|
||||
|
||||
'@radix-ui/react-use-controllable-state@1.1.0':
|
||||
resolution: {integrity: sha512-MtfMVJiSr2NjzS0Aa90NPTnvTSg6C/JLCV7ma0W6+OMV78vd8OyRpID+Ng9LxzsPbLeuBnWBA1Nq30AtBIDChw==}
|
||||
peerDependencies:
|
||||
'@types/react': '*'
|
||||
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
|
||||
peerDependenciesMeta:
|
||||
'@types/react':
|
||||
optional: true
|
||||
|
||||
'@radix-ui/react-use-escape-keydown@1.1.0':
|
||||
resolution: {integrity: sha512-L7vwWlR1kTTQ3oh7g1O0CBF3YCyyTj8NmhLR+phShpyA50HCfBFKVJTpshm9PzLiKmehsrQzTYTpX9HvmC9rhw==}
|
||||
peerDependencies:
|
||||
'@types/react': '*'
|
||||
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
|
||||
peerDependenciesMeta:
|
||||
'@types/react':
|
||||
optional: true
|
||||
|
||||
'@radix-ui/react-use-layout-effect@1.1.0':
|
||||
resolution: {integrity: sha512-+FPE0rOdziWSrH9athwI1R0HDVbWlEhd+FR+aSDk4uWGmSJ9Z54sdZVDQPZAinJhJXwfT+qnj969mCsT2gfm5w==}
|
||||
peerDependencies:
|
||||
'@types/react': '*'
|
||||
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
|
||||
peerDependenciesMeta:
|
||||
'@types/react':
|
||||
optional: true
|
||||
|
||||
'@react-aria/focus@3.18.4':
|
||||
resolution: {integrity: sha512-91J35077w9UNaMK1cpMUEFRkNNz0uZjnSwiyBCFuRdaVuivO53wNC9XtWSDNDdcO5cGy87vfJRVAiyoCn/mjqA==}
|
||||
peerDependencies:
|
||||
@@ -883,6 +1057,10 @@ packages:
|
||||
arg@5.0.2:
|
||||
resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==}
|
||||
|
||||
aria-hidden@1.2.4:
|
||||
resolution: {integrity: sha512-y+CcFFwelSXpLZk/7fMB2mUbGtX9lKycf1MWJ7CaTIERyitVlyQx6C+sxcROU2BAJ24OiZyK+8wj2i8AlBoS3A==}
|
||||
engines: {node: '>=10'}
|
||||
|
||||
astring@1.8.6:
|
||||
resolution: {integrity: sha512-ISvCdHdlTDlH5IpxQJIex7BWBywFWgjJSVdwst+/iQCoEYnyOaQ95+X1JGshuBjGp6nxKUy1jMgE3zPqN7fQdg==}
|
||||
hasBin: true
|
||||
@@ -982,6 +1160,12 @@ packages:
|
||||
resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==}
|
||||
engines: {node: '>=6'}
|
||||
|
||||
cmdk@1.0.4:
|
||||
resolution: {integrity: sha512-AnsjfHyHpQ/EFeAnG216WY7A5LiYCoZzCSygiLvfXC3H3LFGCprErteUcszaVluGOhuOTbJS3jWHrSDYPBBygg==}
|
||||
peerDependencies:
|
||||
react: ^18 || ^19 || ^19.0.0-rc
|
||||
react-dom: ^18 || ^19 || ^19.0.0-rc
|
||||
|
||||
color-convert@2.0.1:
|
||||
resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==}
|
||||
engines: {node: '>=7.0.0'}
|
||||
@@ -1042,6 +1226,9 @@ packages:
|
||||
resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==}
|
||||
engines: {node: '>=6'}
|
||||
|
||||
detect-node-es@1.1.0:
|
||||
resolution: {integrity: sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==}
|
||||
|
||||
devlop@1.1.0:
|
||||
resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==}
|
||||
|
||||
@@ -1110,6 +1297,10 @@ packages:
|
||||
resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==}
|
||||
engines: {node: '>=6'}
|
||||
|
||||
escape-string-regexp@5.0.0:
|
||||
resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==}
|
||||
engines: {node: '>=12'}
|
||||
|
||||
eslint-scope@5.1.1:
|
||||
resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==}
|
||||
engines: {node: '>=8.0.0'}
|
||||
@@ -1145,6 +1336,9 @@ packages:
|
||||
resolution: {integrity: sha512-Y+ughcF9jSUJvncXwqRageavjrNPAI+1M/L3BI3PyLp1nmgYTGUXU6t5z1Y7OWuThoDdhPME07bQU+d5LxdJqw==}
|
||||
engines: {node: '>=12.0.0'}
|
||||
|
||||
estree-util-value-to-estree@3.2.1:
|
||||
resolution: {integrity: sha512-Vt2UOjyPbNQQgT5eJh+K5aATti0OjCIAGc9SgMdOFYbohuifsWclR74l0iZTJwePMgWYdX1hlVS+dedH9XV8kw==}
|
||||
|
||||
estree-util-visit@1.2.1:
|
||||
resolution: {integrity: sha512-xbgqcrkIVbIG+lI/gzbvd9SGTJL4zqJKBFttUl5pP27KhAjtMKbX/mQXJ7qgyXpMgVy/zvpm0xoQQaGL8OloOw==}
|
||||
|
||||
@@ -1177,6 +1371,9 @@ packages:
|
||||
fastq@1.17.1:
|
||||
resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==}
|
||||
|
||||
fault@2.0.1:
|
||||
resolution: {integrity: sha512-WtySTkS4OKev5JtpHXnib4Gxiurzh5NCGvWrFaZ34m6JehfTUhKZvn9njTfw48t6JumVQOmrKqpmGcdwxnhqBQ==}
|
||||
|
||||
fenceparser@1.1.1:
|
||||
resolution: {integrity: sha512-VdkTsK7GWLT0VWMK5S5WTAPn61wJ98WPFwJiRHumhg4ESNUO/tnkU8bzzzc62o6Uk1SVhuZFLnakmDA4SGV7wA==}
|
||||
engines: {node: '>=12'}
|
||||
@@ -1193,6 +1390,10 @@ packages:
|
||||
resolution: {integrity: sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==}
|
||||
engines: {node: '>=14'}
|
||||
|
||||
format@0.2.2:
|
||||
resolution: {integrity: sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww==}
|
||||
engines: {node: '>=0.4.x'}
|
||||
|
||||
fraction.js@4.3.7:
|
||||
resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==}
|
||||
|
||||
@@ -1208,6 +1409,10 @@ packages:
|
||||
resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==}
|
||||
engines: {node: 6.* || 8.* || >= 10.*}
|
||||
|
||||
get-nonce@1.0.1:
|
||||
resolution: {integrity: sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==}
|
||||
engines: {node: '>=6'}
|
||||
|
||||
github-slugger@2.0.0:
|
||||
resolution: {integrity: sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw==}
|
||||
|
||||
@@ -1269,6 +1474,9 @@ packages:
|
||||
inline-style-parser@0.1.1:
|
||||
resolution: {integrity: sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==}
|
||||
|
||||
invariant@2.2.4:
|
||||
resolution: {integrity: sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==}
|
||||
|
||||
is-alphabetical@2.0.1:
|
||||
resolution: {integrity: sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==}
|
||||
|
||||
@@ -1431,6 +1639,9 @@ packages:
|
||||
mdast-util-from-markdown@2.0.0:
|
||||
resolution: {integrity: sha512-n7MTOr/z+8NAX/wmhhDji8O3bRvPTV/U0oTCaZJkjhPSKTPhS3xufVhKGF8s1pJ7Ox4QgoIU7KHseh09S+9rTA==}
|
||||
|
||||
mdast-util-frontmatter@2.0.1:
|
||||
resolution: {integrity: sha512-LRqI9+wdgC25P0URIJY9vwocIzCcksduHQ9OF2joxQoyTNVduwLAFUzjoopuRJbJAReaKrNQKAZKL3uCMugWJA==}
|
||||
|
||||
mdast-util-mdx-expression@1.3.2:
|
||||
resolution: {integrity: sha512-xIPmR5ReJDu/DHH1OoIT1HkuybIfRGYRywC+gJtI7qHjCJp/M9jrmBEJW22O8lskDWm562BX2W8TiAwRTb0rKA==}
|
||||
|
||||
@@ -1489,6 +1700,9 @@ packages:
|
||||
micromark-core-commonmark@2.0.1:
|
||||
resolution: {integrity: sha512-CUQyKr1e///ZODyD1U3xit6zXwy1a8q2a1S1HKtIlmgvurrEpaw/Y9y6KSIbF8P59cn/NjzHyO+Q2fAyYLQrAA==}
|
||||
|
||||
micromark-extension-frontmatter@2.0.0:
|
||||
resolution: {integrity: sha512-C4AkuM3dA58cgZha7zVnuVxBhDsbttIMiytjgsM2XbHAB2faRVaHRle40558FBN+DJcrLNCoqG5mlrpdU4cRtg==}
|
||||
|
||||
micromark-extension-mdx-expression@1.0.8:
|
||||
resolution: {integrity: sha512-zZpeQtc5wfWKdzDsHRBY003H2Smg+PUi2REhqgIhdzAa5xonhP03FcXxqFSerFiNUr5AWmHpaNPQTBVOS4lrXw==}
|
||||
|
||||
@@ -1902,6 +2116,48 @@ packages:
|
||||
react-promise-suspense@0.3.4:
|
||||
resolution: {integrity: sha512-I42jl7L3Ze6kZaq+7zXWSunBa3b1on5yfvUW6Eo/3fFOj6dZ5Bqmcd264nJbTK/gn1HjjILAjSwnZbV4RpSaNQ==}
|
||||
|
||||
react-remove-scroll-bar@2.3.6:
|
||||
resolution: {integrity: sha512-DtSYaao4mBmX+HDo5YWYdBWQwYIQQshUV/dVxFxK+KM26Wjwp1gZ6rv6OC3oujI6Bfu6Xyg3TwK533AQutsn/g==}
|
||||
engines: {node: '>=10'}
|
||||
peerDependencies:
|
||||
'@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0
|
||||
react: ^16.8.0 || ^17.0.0 || ^18.0.0
|
||||
peerDependenciesMeta:
|
||||
'@types/react':
|
||||
optional: true
|
||||
|
||||
react-remove-scroll@2.6.0:
|
||||
resolution: {integrity: sha512-I2U4JVEsQenxDAKaVa3VZ/JeJZe0/2DxPWL8Tj8yLKctQJQiZM52pn/GWFpSp8dftjM3pSAHVJZscAnC/y+ySQ==}
|
||||
engines: {node: '>=10'}
|
||||
peerDependencies:
|
||||
'@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0
|
||||
react: ^16.8.0 || ^17.0.0 || ^18.0.0
|
||||
peerDependenciesMeta:
|
||||
'@types/react':
|
||||
optional: true
|
||||
|
||||
react-singleton-hook@4.0.1:
|
||||
resolution: {integrity: sha512-fWuk8VxcZPChrkQasDLM8pgd/7kyi+Cr/5FfCiD99FicjEru+JmtEZNnN4lJ8Z7KbqAST5CYPlpz6lmNsZFGNw==}
|
||||
peerDependencies:
|
||||
react: '18'
|
||||
react-dom: '*'
|
||||
react-native: '*'
|
||||
peerDependenciesMeta:
|
||||
react-dom:
|
||||
optional: true
|
||||
react-native:
|
||||
optional: true
|
||||
|
||||
react-style-singleton@2.2.1:
|
||||
resolution: {integrity: sha512-ZWj0fHEMyWkHzKYUr2Bs/4zU6XLmq9HsgBURm7g5pAVfyn49DgUiNgY2d4lXRlYSiCif9YBGpQleewkcqddc7g==}
|
||||
engines: {node: '>=10'}
|
||||
peerDependencies:
|
||||
'@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0
|
||||
react: ^16.8.0 || ^17.0.0 || ^18.0.0
|
||||
peerDependenciesMeta:
|
||||
'@types/react':
|
||||
optional: true
|
||||
|
||||
react@18.3.1:
|
||||
resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==}
|
||||
engines: {node: '>=0.10.0'}
|
||||
@@ -1916,6 +2172,12 @@ packages:
|
||||
rehype-slug@6.0.0:
|
||||
resolution: {integrity: sha512-lWyvf/jwu+oS5+hL5eClVd3hNdmwM1kAC0BUvEGD19pajQMIzcNUd/k9GsfQ+FfECvX+JE+e9/btsKH0EjJT6A==}
|
||||
|
||||
remark-frontmatter@5.0.0:
|
||||
resolution: {integrity: sha512-XTFYvNASMe5iPN0719nPrdItC9aU0ssC4v14mH1BCi1u0n1gAocqcujWUrByftZTbLhRtiKRyjYTSIOcr69UVQ==}
|
||||
|
||||
remark-mdx-frontmatter@5.0.0:
|
||||
resolution: {integrity: sha512-kI75pshe27TM71R+0iX7C3p4MbGMdygkvSbrk1WYSar88WAwR2JfQilofcDGgDNFAWUo5IwTPyq9XvGpifTwqQ==}
|
||||
|
||||
remark-mdx@2.3.0:
|
||||
resolution: {integrity: sha512-g53hMkpM0I98MU266IzDFMrTD980gNF3BJnkyFcmN+dD873mQeD5rdMO3Y2X+x8umQfbSE0PcoEDl7ledSA+2g==}
|
||||
|
||||
@@ -2127,6 +2389,9 @@ packages:
|
||||
resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==}
|
||||
engines: {node: '>=8.0'}
|
||||
|
||||
toml@3.0.0:
|
||||
resolution: {integrity: sha512-y/mWCZinnvxjTKYhJ+pYxwD0mRLVvOtdS2Awbgxln6iEnt4rk0yBxeSBHkGJcPucRiG0e55mwWp+g/05rsrd6w==}
|
||||
|
||||
trim-lines@3.0.1:
|
||||
resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==}
|
||||
|
||||
@@ -2160,6 +2425,9 @@ packages:
|
||||
unified@10.1.2:
|
||||
resolution: {integrity: sha512-pUSWAi/RAnVy1Pif2kAoeWNBa3JVrx0MId2LASj8G+7AiHWoKZNTomq6LG326T68U7/e263X6fTdcXIy7XnF7Q==}
|
||||
|
||||
unified@11.0.5:
|
||||
resolution: {integrity: sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==}
|
||||
|
||||
unist-util-generated@2.0.1:
|
||||
resolution: {integrity: sha512-qF72kLmPxAw0oN2fwpWIqbXAVyEqUzDHMsbtPvOudIlUzXYFIeQIuxXQCRCFh22B7cixvU0MG7m3MW8FTq/S+A==}
|
||||
|
||||
@@ -2217,6 +2485,31 @@ packages:
|
||||
uri-js@4.4.1:
|
||||
resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==}
|
||||
|
||||
use-callback-ref@1.3.2:
|
||||
resolution: {integrity: sha512-elOQwe6Q8gqZgDA8mrh44qRTQqpIHDcZ3hXTLjBe1i4ph8XpNJnO+aQf3NaG+lriLopI4HMx9VjQLfPQ6vhnoA==}
|
||||
engines: {node: '>=10'}
|
||||
peerDependencies:
|
||||
'@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0
|
||||
react: ^16.8.0 || ^17.0.0 || ^18.0.0
|
||||
peerDependenciesMeta:
|
||||
'@types/react':
|
||||
optional: true
|
||||
|
||||
use-sidecar@1.1.2:
|
||||
resolution: {integrity: sha512-epTbsLuzZ7lPClpz2TyryBfztm7m+28DlEv2ZCQ3MDr5ssiwyOwGH/e5F9CkfWjJ1t4clvI58yF822/GUkjjhw==}
|
||||
engines: {node: '>=10'}
|
||||
peerDependencies:
|
||||
'@types/react': ^16.9.0 || ^17.0.0 || ^18.0.0
|
||||
react: ^16.8.0 || ^17.0.0 || ^18.0.0
|
||||
peerDependenciesMeta:
|
||||
'@types/react':
|
||||
optional: true
|
||||
|
||||
use-sync-external-store@1.2.2:
|
||||
resolution: {integrity: sha512-PElTlVMwpblvbNqQ82d2n6RjStvdSoNe9FG28kNfz3WiXilJm4DdNkEzRhCZuIDwY8U08WVihhGR5iRqAwfDiw==}
|
||||
peerDependencies:
|
||||
react: ^16.8.0 || ^17.0.0 || ^18.0.0
|
||||
|
||||
util-deprecate@1.0.2:
|
||||
resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==}
|
||||
|
||||
@@ -2234,6 +2527,9 @@ packages:
|
||||
vfile@5.3.7:
|
||||
resolution: {integrity: sha512-r7qlzkgErKjobAmyNIkkSpizsFPYiUPuJb5pNW1RB4JcYVZhs4lIbVqk8XPk033CV/1z8ss5pkax8SuhGpcG8g==}
|
||||
|
||||
vfile@6.0.3:
|
||||
resolution: {integrity: sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==}
|
||||
|
||||
vscode-oniguruma@1.7.0:
|
||||
resolution: {integrity: sha512-L9WMGRfrjOhgHSdOYgCt/yRMsXzLDJSL7BPrOZt73gU0iWO4mpqzqQzOz5srxqTvMBaR0XZTSrVWo4j55Rc6cA==}
|
||||
|
||||
@@ -2566,6 +2862,141 @@ snapshots:
|
||||
'@pkgjs/parseargs@0.11.0':
|
||||
optional: true
|
||||
|
||||
'@radix-ui/primitive@1.1.0': {}
|
||||
|
||||
'@radix-ui/react-compose-refs@1.1.0(@types/react@18.3.1)(react@18.3.1)':
|
||||
dependencies:
|
||||
react: 18.3.1
|
||||
optionalDependencies:
|
||||
'@types/react': 18.3.1
|
||||
|
||||
'@radix-ui/react-context@1.1.1(@types/react@18.3.1)(react@18.3.1)':
|
||||
dependencies:
|
||||
react: 18.3.1
|
||||
optionalDependencies:
|
||||
'@types/react': 18.3.1
|
||||
|
||||
'@radix-ui/react-dialog@1.1.2(@types/react-dom@18.3.0)(@types/react@18.3.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
|
||||
dependencies:
|
||||
'@radix-ui/primitive': 1.1.0
|
||||
'@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.1)(react@18.3.1)
|
||||
'@radix-ui/react-context': 1.1.1(@types/react@18.3.1)(react@18.3.1)
|
||||
'@radix-ui/react-dismissable-layer': 1.1.1(@types/react-dom@18.3.0)(@types/react@18.3.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
||||
'@radix-ui/react-focus-guards': 1.1.1(@types/react@18.3.1)(react@18.3.1)
|
||||
'@radix-ui/react-focus-scope': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
||||
'@radix-ui/react-id': 1.1.0(@types/react@18.3.1)(react@18.3.1)
|
||||
'@radix-ui/react-portal': 1.1.2(@types/react-dom@18.3.0)(@types/react@18.3.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
||||
'@radix-ui/react-presence': 1.1.1(@types/react-dom@18.3.0)(@types/react@18.3.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
||||
'@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
||||
'@radix-ui/react-slot': 1.1.0(@types/react@18.3.1)(react@18.3.1)
|
||||
'@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.1)(react@18.3.1)
|
||||
aria-hidden: 1.2.4
|
||||
react: 18.3.1
|
||||
react-dom: 18.3.1(react@18.3.1)
|
||||
react-remove-scroll: 2.6.0(@types/react@18.3.1)(react@18.3.1)
|
||||
optionalDependencies:
|
||||
'@types/react': 18.3.1
|
||||
'@types/react-dom': 18.3.0
|
||||
|
||||
'@radix-ui/react-dismissable-layer@1.1.1(@types/react-dom@18.3.0)(@types/react@18.3.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
|
||||
dependencies:
|
||||
'@radix-ui/primitive': 1.1.0
|
||||
'@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.1)(react@18.3.1)
|
||||
'@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
||||
'@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.1)(react@18.3.1)
|
||||
'@radix-ui/react-use-escape-keydown': 1.1.0(@types/react@18.3.1)(react@18.3.1)
|
||||
react: 18.3.1
|
||||
react-dom: 18.3.1(react@18.3.1)
|
||||
optionalDependencies:
|
||||
'@types/react': 18.3.1
|
||||
'@types/react-dom': 18.3.0
|
||||
|
||||
'@radix-ui/react-focus-guards@1.1.1(@types/react@18.3.1)(react@18.3.1)':
|
||||
dependencies:
|
||||
react: 18.3.1
|
||||
optionalDependencies:
|
||||
'@types/react': 18.3.1
|
||||
|
||||
'@radix-ui/react-focus-scope@1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
|
||||
dependencies:
|
||||
'@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.1)(react@18.3.1)
|
||||
'@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
||||
'@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.1)(react@18.3.1)
|
||||
react: 18.3.1
|
||||
react-dom: 18.3.1(react@18.3.1)
|
||||
optionalDependencies:
|
||||
'@types/react': 18.3.1
|
||||
'@types/react-dom': 18.3.0
|
||||
|
||||
'@radix-ui/react-id@1.1.0(@types/react@18.3.1)(react@18.3.1)':
|
||||
dependencies:
|
||||
'@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.1)(react@18.3.1)
|
||||
react: 18.3.1
|
||||
optionalDependencies:
|
||||
'@types/react': 18.3.1
|
||||
|
||||
'@radix-ui/react-portal@1.1.2(@types/react-dom@18.3.0)(@types/react@18.3.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
|
||||
dependencies:
|
||||
'@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
||||
'@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.1)(react@18.3.1)
|
||||
react: 18.3.1
|
||||
react-dom: 18.3.1(react@18.3.1)
|
||||
optionalDependencies:
|
||||
'@types/react': 18.3.1
|
||||
'@types/react-dom': 18.3.0
|
||||
|
||||
'@radix-ui/react-presence@1.1.1(@types/react-dom@18.3.0)(@types/react@18.3.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
|
||||
dependencies:
|
||||
'@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.1)(react@18.3.1)
|
||||
'@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.1)(react@18.3.1)
|
||||
react: 18.3.1
|
||||
react-dom: 18.3.1(react@18.3.1)
|
||||
optionalDependencies:
|
||||
'@types/react': 18.3.1
|
||||
'@types/react-dom': 18.3.0
|
||||
|
||||
'@radix-ui/react-primitive@2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
|
||||
dependencies:
|
||||
'@radix-ui/react-slot': 1.1.0(@types/react@18.3.1)(react@18.3.1)
|
||||
react: 18.3.1
|
||||
react-dom: 18.3.1(react@18.3.1)
|
||||
optionalDependencies:
|
||||
'@types/react': 18.3.1
|
||||
'@types/react-dom': 18.3.0
|
||||
|
||||
'@radix-ui/react-slot@1.1.0(@types/react@18.3.1)(react@18.3.1)':
|
||||
dependencies:
|
||||
'@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.1)(react@18.3.1)
|
||||
react: 18.3.1
|
||||
optionalDependencies:
|
||||
'@types/react': 18.3.1
|
||||
|
||||
'@radix-ui/react-use-callback-ref@1.1.0(@types/react@18.3.1)(react@18.3.1)':
|
||||
dependencies:
|
||||
react: 18.3.1
|
||||
optionalDependencies:
|
||||
'@types/react': 18.3.1
|
||||
|
||||
'@radix-ui/react-use-controllable-state@1.1.0(@types/react@18.3.1)(react@18.3.1)':
|
||||
dependencies:
|
||||
'@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.1)(react@18.3.1)
|
||||
react: 18.3.1
|
||||
optionalDependencies:
|
||||
'@types/react': 18.3.1
|
||||
|
||||
'@radix-ui/react-use-escape-keydown@1.1.0(@types/react@18.3.1)(react@18.3.1)':
|
||||
dependencies:
|
||||
'@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.1)(react@18.3.1)
|
||||
react: 18.3.1
|
||||
optionalDependencies:
|
||||
'@types/react': 18.3.1
|
||||
|
||||
'@radix-ui/react-use-layout-effect@1.1.0(@types/react@18.3.1)(react@18.3.1)':
|
||||
dependencies:
|
||||
react: 18.3.1
|
||||
optionalDependencies:
|
||||
'@types/react': 18.3.1
|
||||
|
||||
'@react-aria/focus@3.18.4(react@18.3.1)':
|
||||
dependencies:
|
||||
'@react-aria/interactions': 3.22.4(react@18.3.1)
|
||||
@@ -2879,6 +3310,10 @@ snapshots:
|
||||
|
||||
arg@5.0.2: {}
|
||||
|
||||
aria-hidden@1.2.4:
|
||||
dependencies:
|
||||
tslib: 2.8.1
|
||||
|
||||
astring@1.8.6: {}
|
||||
|
||||
autoprefixer@10.4.19(postcss@8.4.38):
|
||||
@@ -2973,6 +3408,18 @@ snapshots:
|
||||
|
||||
clsx@2.1.1: {}
|
||||
|
||||
cmdk@1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
|
||||
dependencies:
|
||||
'@radix-ui/react-dialog': 1.1.2(@types/react-dom@18.3.0)(@types/react@18.3.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
||||
'@radix-ui/react-id': 1.1.0(@types/react@18.3.1)(react@18.3.1)
|
||||
'@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
||||
react: 18.3.1
|
||||
react-dom: 18.3.1(react@18.3.1)
|
||||
use-sync-external-store: 1.2.2(react@18.3.1)
|
||||
transitivePeerDependencies:
|
||||
- '@types/react'
|
||||
- '@types/react-dom'
|
||||
|
||||
color-convert@2.0.1:
|
||||
dependencies:
|
||||
color-name: 1.1.4
|
||||
@@ -3016,6 +3463,8 @@ snapshots:
|
||||
|
||||
dequal@2.0.3: {}
|
||||
|
||||
detect-node-es@1.1.0: {}
|
||||
|
||||
devlop@1.1.0:
|
||||
dependencies:
|
||||
dequal: 2.0.3
|
||||
@@ -3076,6 +3525,8 @@ snapshots:
|
||||
|
||||
escalade@3.2.0: {}
|
||||
|
||||
escape-string-regexp@5.0.0: {}
|
||||
|
||||
eslint-scope@5.1.1:
|
||||
dependencies:
|
||||
esrecurse: 4.3.0
|
||||
@@ -3113,6 +3564,10 @@ snapshots:
|
||||
dependencies:
|
||||
is-plain-obj: 3.0.0
|
||||
|
||||
estree-util-value-to-estree@3.2.1:
|
||||
dependencies:
|
||||
'@types/estree': 1.0.5
|
||||
|
||||
estree-util-visit@1.2.1:
|
||||
dependencies:
|
||||
'@types/estree-jsx': 1.0.5
|
||||
@@ -3149,6 +3604,10 @@ snapshots:
|
||||
dependencies:
|
||||
reusify: 1.0.4
|
||||
|
||||
fault@2.0.1:
|
||||
dependencies:
|
||||
format: 0.2.2
|
||||
|
||||
fenceparser@1.1.1: {}
|
||||
|
||||
fill-range@7.0.1:
|
||||
@@ -3165,6 +3624,8 @@ snapshots:
|
||||
cross-spawn: 7.0.3
|
||||
signal-exit: 4.1.0
|
||||
|
||||
format@0.2.2: {}
|
||||
|
||||
fraction.js@4.3.7: {}
|
||||
|
||||
fsevents@2.3.3:
|
||||
@@ -3174,6 +3635,8 @@ snapshots:
|
||||
|
||||
get-caller-file@2.0.5: {}
|
||||
|
||||
get-nonce@1.0.1: {}
|
||||
|
||||
github-slugger@2.0.0: {}
|
||||
|
||||
glob-parent@5.1.2:
|
||||
@@ -3259,6 +3722,10 @@ snapshots:
|
||||
|
||||
inline-style-parser@0.1.1: {}
|
||||
|
||||
invariant@2.2.4:
|
||||
dependencies:
|
||||
loose-envify: 1.4.0
|
||||
|
||||
is-alphabetical@2.0.1: {}
|
||||
|
||||
is-alphanumerical@2.0.1:
|
||||
@@ -3414,6 +3881,17 @@ snapshots:
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
mdast-util-frontmatter@2.0.1:
|
||||
dependencies:
|
||||
'@types/mdast': 4.0.3
|
||||
devlop: 1.1.0
|
||||
escape-string-regexp: 5.0.0
|
||||
mdast-util-from-markdown: 2.0.0
|
||||
mdast-util-to-markdown: 2.1.0
|
||||
micromark-extension-frontmatter: 2.0.0
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
mdast-util-mdx-expression@1.3.2:
|
||||
dependencies:
|
||||
'@types/estree-jsx': 1.0.5
|
||||
@@ -3604,6 +4082,13 @@ snapshots:
|
||||
micromark-util-symbol: 2.0.0
|
||||
micromark-util-types: 2.0.0
|
||||
|
||||
micromark-extension-frontmatter@2.0.0:
|
||||
dependencies:
|
||||
fault: 2.0.1
|
||||
micromark-util-character: 2.1.0
|
||||
micromark-util-symbol: 2.0.0
|
||||
micromark-util-types: 2.0.0
|
||||
|
||||
micromark-extension-mdx-expression@1.0.8:
|
||||
dependencies:
|
||||
'@types/estree': 1.0.5
|
||||
@@ -4218,6 +4703,40 @@ snapshots:
|
||||
dependencies:
|
||||
fast-deep-equal: 2.0.1
|
||||
|
||||
react-remove-scroll-bar@2.3.6(@types/react@18.3.1)(react@18.3.1):
|
||||
dependencies:
|
||||
react: 18.3.1
|
||||
react-style-singleton: 2.2.1(@types/react@18.3.1)(react@18.3.1)
|
||||
tslib: 2.8.1
|
||||
optionalDependencies:
|
||||
'@types/react': 18.3.1
|
||||
|
||||
react-remove-scroll@2.6.0(@types/react@18.3.1)(react@18.3.1):
|
||||
dependencies:
|
||||
react: 18.3.1
|
||||
react-remove-scroll-bar: 2.3.6(@types/react@18.3.1)(react@18.3.1)
|
||||
react-style-singleton: 2.2.1(@types/react@18.3.1)(react@18.3.1)
|
||||
tslib: 2.8.1
|
||||
use-callback-ref: 1.3.2(@types/react@18.3.1)(react@18.3.1)
|
||||
use-sidecar: 1.1.2(@types/react@18.3.1)(react@18.3.1)
|
||||
optionalDependencies:
|
||||
'@types/react': 18.3.1
|
||||
|
||||
react-singleton-hook@4.0.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
|
||||
dependencies:
|
||||
react: 18.3.1
|
||||
optionalDependencies:
|
||||
react-dom: 18.3.1(react@18.3.1)
|
||||
|
||||
react-style-singleton@2.2.1(@types/react@18.3.1)(react@18.3.1):
|
||||
dependencies:
|
||||
get-nonce: 1.0.1
|
||||
invariant: 2.2.4
|
||||
react: 18.3.1
|
||||
tslib: 2.8.1
|
||||
optionalDependencies:
|
||||
'@types/react': 18.3.1
|
||||
|
||||
react@18.3.1:
|
||||
dependencies:
|
||||
loose-envify: 1.4.0
|
||||
@@ -4238,6 +4757,24 @@ snapshots:
|
||||
hast-util-to-string: 3.0.1
|
||||
unist-util-visit: 5.0.0
|
||||
|
||||
remark-frontmatter@5.0.0:
|
||||
dependencies:
|
||||
'@types/mdast': 4.0.3
|
||||
mdast-util-frontmatter: 2.0.1
|
||||
micromark-extension-frontmatter: 2.0.0
|
||||
unified: 11.0.5
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
remark-mdx-frontmatter@5.0.0:
|
||||
dependencies:
|
||||
'@types/mdast': 4.0.3
|
||||
estree-util-is-identifier-name: 3.0.0
|
||||
estree-util-value-to-estree: 3.2.1
|
||||
toml: 3.0.0
|
||||
unified: 11.0.5
|
||||
yaml: 2.4.2
|
||||
|
||||
remark-mdx@2.3.0:
|
||||
dependencies:
|
||||
mdast-util-mdx: 2.0.1
|
||||
@@ -4476,6 +5013,8 @@ snapshots:
|
||||
dependencies:
|
||||
is-number: 7.0.0
|
||||
|
||||
toml@3.0.0: {}
|
||||
|
||||
trim-lines@3.0.1: {}
|
||||
|
||||
trough@2.2.0: {}
|
||||
@@ -4508,6 +5047,16 @@ snapshots:
|
||||
trough: 2.2.0
|
||||
vfile: 5.3.7
|
||||
|
||||
unified@11.0.5:
|
||||
dependencies:
|
||||
'@types/unist': 3.0.2
|
||||
bail: 2.0.2
|
||||
devlop: 1.1.0
|
||||
extend: 3.0.2
|
||||
is-plain-obj: 4.1.0
|
||||
trough: 2.2.0
|
||||
vfile: 6.0.3
|
||||
|
||||
unist-util-generated@2.0.1: {}
|
||||
|
||||
unist-util-is@5.2.1:
|
||||
@@ -4586,6 +5135,25 @@ snapshots:
|
||||
dependencies:
|
||||
punycode: 2.3.1
|
||||
|
||||
use-callback-ref@1.3.2(@types/react@18.3.1)(react@18.3.1):
|
||||
dependencies:
|
||||
react: 18.3.1
|
||||
tslib: 2.8.1
|
||||
optionalDependencies:
|
||||
'@types/react': 18.3.1
|
||||
|
||||
use-sidecar@1.1.2(@types/react@18.3.1)(react@18.3.1):
|
||||
dependencies:
|
||||
detect-node-es: 1.1.0
|
||||
react: 18.3.1
|
||||
tslib: 2.8.1
|
||||
optionalDependencies:
|
||||
'@types/react': 18.3.1
|
||||
|
||||
use-sync-external-store@1.2.2(react@18.3.1):
|
||||
dependencies:
|
||||
react: 18.3.1
|
||||
|
||||
util-deprecate@1.0.2: {}
|
||||
|
||||
uvu@0.5.6:
|
||||
@@ -4612,6 +5180,11 @@ snapshots:
|
||||
unist-util-stringify-position: 3.0.3
|
||||
vfile-message: 3.1.4
|
||||
|
||||
vfile@6.0.3:
|
||||
dependencies:
|
||||
'@types/unist': 3.0.2
|
||||
vfile-message: 4.0.2
|
||||
|
||||
vscode-oniguruma@1.7.0: {}
|
||||
|
||||
vscode-textmate@5.2.0: {}
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
"name": "jazz-monorepo",
|
||||
"private": true,
|
||||
"type": "module",
|
||||
"workspaces": ["packages/*", "examples/*", "e2e/*"],
|
||||
"workspaces": ["packages/*", "examples/*"],
|
||||
"packageManager": "pnpm@9.1.4",
|
||||
"devDependencies": {
|
||||
"@biomejs/biome": "1.9.4",
|
||||
|
||||
@@ -19,6 +19,6 @@
|
||||
"prepublishOnly": "npm run build"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/ws": "^8.5.5"
|
||||
"@types/ws": "8.5.10"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
"ws": "^8.14.2"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/ws": "^8.5.5",
|
||||
"@types/ws": "8.5.10",
|
||||
"typescript": "^5.3.3"
|
||||
},
|
||||
"scripts": {
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
"ws": "^8.14.2"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/ws": "^8.5.5",
|
||||
"@types/ws": "8.5.10",
|
||||
"typescript": "^5.3.3"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -18,4 +18,4 @@ Greetings, brave explorer! 🌟 You've caught us in our early stages - this pack
|
||||
|
||||
---
|
||||
|
||||
> **Note**: You've been warned, but we're glad you're here! Let's build something amazing together. 🚀
|
||||
> **Note**: You've been warned, but we're glad you're here! Let's build something amazing together. 🚀
|
||||
|
||||
@@ -14,8 +14,14 @@
|
||||
"format-and-lint": "pnpm run format && pnpm run lint",
|
||||
"format-and-lint:fix": "pnpm run format --write && pnpm run lint --fix"
|
||||
},
|
||||
"files": ["dist", "!dist/**/*.test.*", "!dist/**/*.spec.*"],
|
||||
"sideEffects": ["**/*.css"],
|
||||
"files": [
|
||||
"dist",
|
||||
"!dist/**/*.test.*",
|
||||
"!dist/**/*.spec.*"
|
||||
],
|
||||
"sideEffects": [
|
||||
"**/*.css"
|
||||
],
|
||||
"svelte": "./dist/index.js",
|
||||
"types": "./dist/index.d.ts",
|
||||
"type": "module",
|
||||
@@ -30,7 +36,7 @@
|
||||
},
|
||||
"devDependencies": {
|
||||
"@sveltejs/adapter-auto": "^3.0.0",
|
||||
"@sveltejs/kit": "^2.0.0",
|
||||
"@sveltejs/kit": "^2.9.0",
|
||||
"@sveltejs/package": "^2.0.0",
|
||||
"@sveltejs/vite-plugin-svelte": "^4.0.0",
|
||||
"@types/eslint": "^9.6.0",
|
||||
@@ -45,7 +51,8 @@
|
||||
"svelte-check": "^4.0.0",
|
||||
"typescript": "^5.0.0",
|
||||
"typescript-eslint": "^8.0.0",
|
||||
"vite": "^5.0.11"
|
||||
"vite": "^5.0.11",
|
||||
"@sveltejs/adapter-vercel": "^5.5.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"jazz-browser": "workspace:*",
|
||||
|
||||
726
pnpm-lock.yaml
generated
726
pnpm-lock.yaml
generated
File diff suppressed because it is too large
Load Diff
@@ -2,6 +2,9 @@
|
||||
"$schema": "https://turbo.build/schema.json",
|
||||
"remoteCache": {},
|
||||
"tasks": {
|
||||
"jazz-nodejs#build": {
|
||||
"dependsOn": ["cojson-transport-ws#build"]
|
||||
},
|
||||
"build": {
|
||||
"env": ["RESEND_API_KEY", "RESEND_AUDIENCE_ID"],
|
||||
"dependsOn": ["^build"],
|
||||
|
||||
Reference in New Issue
Block a user