zudoku 0.55.1 → 0.56.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/app/main.d.ts +1 -1
- package/dist/app/main.js +11 -4
- package/dist/app/main.js.map +1 -1
- package/dist/config/validators/InputNavigationSchema.d.ts +4 -0
- package/dist/config/validators/InputNavigationSchema.js +1 -0
- package/dist/config/validators/InputNavigationSchema.js.map +1 -1
- package/dist/config/validators/validate.d.ts +1 -0
- package/dist/config/validators/validate.js +1 -0
- package/dist/config/validators/validate.js.map +1 -1
- package/dist/flat-config.d.ts +329 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/lib/components/BuildCheck.js +7 -0
- package/dist/lib/components/BuildCheck.js.map +1 -1
- package/dist/lib/components/Header.js +1 -1
- package/dist/lib/components/Header.js.map +1 -1
- package/dist/lib/components/Layout.js +4 -7
- package/dist/lib/components/Layout.js.map +1 -1
- package/dist/lib/components/Meta.d.ts +2 -0
- package/dist/lib/components/Meta.js +11 -0
- package/dist/lib/components/Meta.js.map +1 -0
- package/dist/lib/components/context/ZudokuContext.js +1 -1
- package/dist/lib/components/context/ZudokuContext.js.map +1 -1
- package/dist/lib/components/index.d.ts +1 -0
- package/dist/lib/components/index.js +2 -0
- package/dist/lib/components/index.js.map +1 -1
- package/dist/lib/components/navigation/NavigationItem.js +3 -2
- package/dist/lib/components/navigation/NavigationItem.js.map +1 -1
- package/dist/lib/components/navigation/utils.js +12 -11
- package/dist/lib/components/navigation/utils.js.map +1 -1
- package/dist/lib/core/ZudokuContext.d.ts +1 -0
- package/dist/lib/core/ZudokuContext.js.map +1 -1
- package/dist/lib/plugins/custom-pages/index.js +3 -0
- package/dist/lib/plugins/custom-pages/index.js.map +1 -1
- package/dist/lib/ui/CodeBlock.js +2 -2
- package/dist/lib/ui/CodeBlock.js.map +1 -1
- package/dist/lib/ui/Dialog.js +2 -2
- package/dist/lib/ui/Dialog.js.map +1 -1
- package/dist/vite/plugin-mdx.js +1 -1
- package/dist/vite/plugin-mdx.js.map +1 -1
- package/dist/vite/sitemap.js +10 -9
- package/dist/vite/sitemap.js.map +1 -1
- package/lib/{CodeBlock-CVT6z0PP.js → CodeBlock-yJjjRwj-.js} +3 -3
- package/lib/CodeBlock-yJjjRwj-.js.map +1 -0
- package/lib/{Command-BYukybsa.js → Command-CfgGXMfJ.js} +2 -2
- package/lib/{Command-BYukybsa.js.map → Command-CfgGXMfJ.js.map} +1 -1
- package/lib/Dialog-B7YnrNnG.js +114 -0
- package/lib/Dialog-B7YnrNnG.js.map +1 -0
- package/lib/{MdxPage-BKyikAKk.js → MdxPage-D49lfheg.js} +7 -7
- package/lib/{MdxPage-BKyikAKk.js.map → MdxPage-D49lfheg.js.map} +1 -1
- package/lib/{OAuthErrorPage--neTdY8H.js → OAuthErrorPage-COKL9zOi.js} +6 -6
- package/lib/{OAuthErrorPage--neTdY8H.js.map → OAuthErrorPage-COKL9zOi.js.map} +1 -1
- package/lib/{OasProvider-yysXhMVI.js → OasProvider-CCv_-asV.js} +2 -2
- package/lib/{OasProvider-yysXhMVI.js.map → OasProvider-CCv_-asV.js.map} +1 -1
- package/lib/{OperationList-CSYrpcpD.js → OperationList-DkS0B0y1.js} +11 -11
- package/lib/{OperationList-CSYrpcpD.js.map → OperationList-DkS0B0y1.js.map} +1 -1
- package/lib/{Pagination-QsyyJuoq.js → Pagination-VfR2DCXf.js} +2 -2
- package/lib/{Pagination-QsyyJuoq.js.map → Pagination-VfR2DCXf.js.map} +1 -1
- package/lib/{RouteGuard-D17dUEM_.js → RouteGuard-CSi9-hSR.js} +4 -4
- package/lib/{RouteGuard-D17dUEM_.js.map → RouteGuard-CSi9-hSR.js.map} +1 -1
- package/lib/{SchemaList-CSZkqmwI.js → SchemaList-B7ezc5Uy.js} +8 -8
- package/lib/{SchemaList-CSZkqmwI.js.map → SchemaList-B7ezc5Uy.js.map} +1 -1
- package/lib/{SchemaView-bhJ_U4vL.js → SchemaView-BuL-ycaR.js} +4 -4
- package/lib/{SchemaView-bhJ_U4vL.js.map → SchemaView-BuL-ycaR.js.map} +1 -1
- package/lib/{Select-DlfI9FFO.js → Select-B9h5k2Pz.js} +3 -3
- package/lib/{Select-DlfI9FFO.js.map → Select-B9h5k2Pz.js.map} +1 -1
- package/lib/{SignUp-C6ogvx5s.js → SignUp-Cn_gZ7UN.js} +3 -3
- package/lib/{SignUp-C6ogvx5s.js.map → SignUp-Cn_gZ7UN.js.map} +1 -1
- package/lib/{Slot-Dgy8tqef.js → Slot-BFCJzl5J.js} +358 -358
- package/lib/{Slot-Dgy8tqef.js.map → Slot-BFCJzl5J.js.map} +1 -1
- package/lib/{SyntaxHighlight-BD_Z_Csq.js → SyntaxHighlight-CSW4eaIJ.js} +313 -313
- package/lib/SyntaxHighlight-CSW4eaIJ.js.map +1 -0
- package/lib/{Toc-CjX59Ljo.js → Toc-B9K7a2FS.js} +2 -2
- package/lib/{Toc-CjX59Ljo.js.map → Toc-B9K7a2FS.js.map} +1 -1
- package/lib/{ZudokuContext-Coxa0DfE.js → ZudokuContext-mDDq1hft.js} +76 -68
- package/lib/{ZudokuContext-Coxa0DfE.js.map → ZudokuContext-mDDq1hft.js.map} +1 -1
- package/lib/{circular-Q4G1nwyb.js → circular-BMUvC5RK.js} +2 -2
- package/lib/{circular-Q4G1nwyb.js.map → circular-BMUvC5RK.js.map} +1 -1
- package/lib/{createServer-Dtstxqn7.js → createServer-I8dX2VSu.js} +4 -4
- package/lib/{createServer-Dtstxqn7.js.map → createServer-I8dX2VSu.js.map} +1 -1
- package/lib/{errors-BoJYHL2E.js → errors-D2Qdkul6.js} +2 -2
- package/lib/{errors-BoJYHL2E.js.map → errors-D2Qdkul6.js.map} +1 -1
- package/lib/{hook-DEPqwjke.js → hook-CGx8MPrU.js} +2 -2
- package/lib/{hook-DEPqwjke.js.map → hook-CGx8MPrU.js.map} +1 -1
- package/lib/{index-DYs8gxKX.js → index-Cc70HIQT.js} +106 -101
- package/lib/index-Cc70HIQT.js.map +1 -0
- package/lib/{index-Bl1W774G.js → index-ChOC1gfC.js} +2 -2
- package/lib/{index-Bl1W774G.js.map → index-ChOC1gfC.js.map} +1 -1
- package/lib/{index-DRkS-pvf.js → index-DZqSbZzE.js} +16 -16
- package/lib/{index-DRkS-pvf.js.map → index-DZqSbZzE.js.map} +1 -1
- package/lib/ui/CodeBlock.js +1 -1
- package/lib/ui/Command.js +1 -1
- package/lib/ui/Dialog.js +56 -41
- package/lib/ui/Dialog.js.map +1 -1
- package/lib/ui/SyntaxHighlight.js +3 -3
- package/lib/zudoku.auth-auth0.js +1 -1
- package/lib/zudoku.auth-azureb2c.js +5 -5
- package/lib/zudoku.auth-clerk.js +2 -2
- package/lib/zudoku.auth-openid.js +5 -5
- package/lib/zudoku.auth-supabase.js +2 -2
- package/lib/zudoku.components.js +19 -18
- package/lib/zudoku.hooks.js +3 -3
- package/lib/zudoku.plugin-api-catalog.js +6 -6
- package/lib/zudoku.plugin-api-keys.js +6 -6
- package/lib/zudoku.plugin-custom-pages.js +8 -5
- package/lib/zudoku.plugin-custom-pages.js.map +1 -1
- package/lib/zudoku.plugin-markdown.js +1 -1
- package/lib/zudoku.plugin-openapi.js +3 -3
- package/lib/zudoku.plugin-search-pagefind.js +5 -5
- package/package.json +6 -6
- package/src/app/main.tsx +18 -4
- package/src/lib/components/BuildCheck.tsx +10 -0
- package/src/lib/components/Header.tsx +3 -2
- package/src/lib/components/Layout.tsx +2 -21
- package/src/lib/components/Meta.tsx +32 -0
- package/src/lib/components/context/ZudokuContext.ts +1 -1
- package/src/lib/components/index.ts +2 -0
- package/src/lib/components/navigation/NavigationItem.tsx +4 -2
- package/src/lib/components/navigation/utils.ts +12 -12
- package/src/lib/core/ZudokuContext.ts +1 -0
- package/src/lib/plugins/custom-pages/index.tsx +3 -0
- package/src/lib/ui/CodeBlock.tsx +2 -2
- package/src/lib/ui/Dialog.tsx +12 -3
- package/lib/CodeBlock-CVT6z0PP.js.map +0 -1
- package/lib/Dialog-u9Uz9sTt.js +0 -99
- package/lib/Dialog-u9Uz9sTt.js.map +0 -1
- package/lib/SyntaxHighlight-BD_Z_Csq.js.map +0 -1
- package/lib/index-DYs8gxKX.js.map +0 -1
|
@@ -1,8 +1,6 @@
|
|
|
1
|
-
import { Helmet } from "@zudoku/react-helmet-async";
|
|
2
1
|
import { Suspense, useEffect, type ReactNode } from "react";
|
|
3
|
-
import { Outlet
|
|
2
|
+
import { Outlet } from "react-router";
|
|
4
3
|
import { cn } from "../util/cn.js";
|
|
5
|
-
import { joinUrl } from "../util/joinUrl.js";
|
|
6
4
|
import { useScrollToAnchor } from "../util/useScrollToAnchor.js";
|
|
7
5
|
import { useScrollToTop } from "../util/useScrollToTop.js";
|
|
8
6
|
import { useZudoku } from "./context/ZudokuContext.js";
|
|
@@ -19,8 +17,7 @@ const LoadingFallback = () => (
|
|
|
19
17
|
);
|
|
20
18
|
|
|
21
19
|
export const Layout = ({ children }: { children?: ReactNode }) => {
|
|
22
|
-
const {
|
|
23
|
-
const location = useLocation();
|
|
20
|
+
const { authentication } = useZudoku();
|
|
24
21
|
|
|
25
22
|
useScrollToAnchor();
|
|
26
23
|
useScrollToTop();
|
|
@@ -32,22 +29,6 @@ export const Layout = ({ children }: { children?: ReactNode }) => {
|
|
|
32
29
|
|
|
33
30
|
return (
|
|
34
31
|
<>
|
|
35
|
-
<Helmet titleTemplate={meta?.title}>
|
|
36
|
-
{options.canonicalUrlOrigin && (
|
|
37
|
-
<link
|
|
38
|
-
rel="canonical"
|
|
39
|
-
href={joinUrl(
|
|
40
|
-
options.canonicalUrlOrigin,
|
|
41
|
-
options.basePath,
|
|
42
|
-
location.pathname,
|
|
43
|
-
)}
|
|
44
|
-
/>
|
|
45
|
-
)}
|
|
46
|
-
{meta?.description && (
|
|
47
|
-
<meta name="description" content={meta.description} />
|
|
48
|
-
)}
|
|
49
|
-
{meta?.favicon && <link rel="icon" href={meta.favicon} />}
|
|
50
|
-
</Helmet>
|
|
51
32
|
<Slot.Target name="layout-before-head" />
|
|
52
33
|
<Header />
|
|
53
34
|
<Slot.Target name="layout-after-head" />
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { Helmet } from "@zudoku/react-helmet-async";
|
|
2
|
+
import type { PropsWithChildren } from "react";
|
|
3
|
+
import { useLocation } from "react-router";
|
|
4
|
+
import { joinUrl } from "../util/joinUrl.js";
|
|
5
|
+
import { useZudoku } from "./context/ZudokuContext.js";
|
|
6
|
+
|
|
7
|
+
export const Meta = ({ children }: PropsWithChildren) => {
|
|
8
|
+
const { meta, options } = useZudoku();
|
|
9
|
+
const location = useLocation();
|
|
10
|
+
|
|
11
|
+
return (
|
|
12
|
+
<>
|
|
13
|
+
<Helmet titleTemplate={meta?.title} defaultTitle={meta?.defaultTitle}>
|
|
14
|
+
{options.canonicalUrlOrigin && (
|
|
15
|
+
<link
|
|
16
|
+
rel="canonical"
|
|
17
|
+
href={joinUrl(
|
|
18
|
+
options.canonicalUrlOrigin,
|
|
19
|
+
options.basePath,
|
|
20
|
+
location.pathname,
|
|
21
|
+
)}
|
|
22
|
+
/>
|
|
23
|
+
)}
|
|
24
|
+
{meta?.description && (
|
|
25
|
+
<meta name="description" content={meta.description} />
|
|
26
|
+
)}
|
|
27
|
+
{meta?.favicon && <link rel="icon" href={meta.favicon} />}
|
|
28
|
+
</Helmet>
|
|
29
|
+
{children}
|
|
30
|
+
</>
|
|
31
|
+
);
|
|
32
|
+
};
|
|
@@ -21,6 +21,7 @@ import { ClientOnly as ClientOnlyImport } from "./ClientOnly.js";
|
|
|
21
21
|
import { useZudoku as useZudokuImport } from "./context/ZudokuContext.js";
|
|
22
22
|
import { Layout as LayoutImport } from "./Layout.js";
|
|
23
23
|
import { Markdown as MarkdownImport } from "./Markdown.js";
|
|
24
|
+
import { Meta as MetaImport } from "./Meta.js";
|
|
24
25
|
import { Spinner as SpinnerImport } from "./Spinner.js";
|
|
25
26
|
import { StatusPage as StatusPageImport } from "./StatusPage.js";
|
|
26
27
|
import { Typography as TypographyImport } from "./Typography.js";
|
|
@@ -43,6 +44,7 @@ export const Link = /*@__PURE__*/ LinkImport;
|
|
|
43
44
|
export const BuildCheck = /*@__PURE__*/ BuildCheckImport;
|
|
44
45
|
export const Zudoku = /*@__PURE__*/ ZudokuImport;
|
|
45
46
|
export const Typography = /*@__PURE__*/ TypographyImport;
|
|
47
|
+
export const Meta = /*@__PURE__*/ MetaImport;
|
|
46
48
|
|
|
47
49
|
/** @deprecated Import from `zudoku/hooks` instead */
|
|
48
50
|
export const useMDXComponents = /*@__PURE__*/ useMDXComponentsImport;
|
|
@@ -114,7 +114,7 @@ export const NavigationItem = ({
|
|
|
114
114
|
);
|
|
115
115
|
case "link":
|
|
116
116
|
case "custom-page": {
|
|
117
|
-
const href = item.type === "link" ? item.to : item.path;
|
|
117
|
+
const href = item.type === "link" ? item.to : joinUrl(item.path);
|
|
118
118
|
return !href.startsWith("http") ? (
|
|
119
119
|
<AnchorLink
|
|
120
120
|
to={{
|
|
@@ -124,7 +124,9 @@ export const NavigationItem = ({
|
|
|
124
124
|
}}
|
|
125
125
|
{...{ [DATA_ANCHOR_ATTR]: href.split("#")[1] }}
|
|
126
126
|
className={navigationListItem({
|
|
127
|
-
isActive:
|
|
127
|
+
isActive:
|
|
128
|
+
href ===
|
|
129
|
+
[location.pathname, activeAnchor].filter(Boolean).join("#"),
|
|
128
130
|
})}
|
|
129
131
|
onClick={onRequestClose}
|
|
130
132
|
>
|
|
@@ -58,18 +58,18 @@ export const useIsCategoryOpen = (category: NavigationCategory) => {
|
|
|
58
58
|
const location = useLocation();
|
|
59
59
|
|
|
60
60
|
return traverseNavigationItem(category, (item) => {
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
61
|
+
switch (item.type) {
|
|
62
|
+
case "category":
|
|
63
|
+
if (!item.link) {
|
|
64
|
+
return undefined;
|
|
65
|
+
}
|
|
66
|
+
return joinUrl(item.link.path) === location.pathname ? true : undefined;
|
|
67
|
+
case "custom-page":
|
|
68
|
+
case "doc":
|
|
69
|
+
return joinUrl(item.path) === location.pathname ? true : undefined;
|
|
70
|
+
case "link":
|
|
71
|
+
default:
|
|
72
|
+
return undefined;
|
|
73
73
|
}
|
|
74
74
|
});
|
|
75
75
|
};
|
package/src/lib/ui/CodeBlock.tsx
CHANGED
|
@@ -28,7 +28,7 @@ const IconToLanguageMap: Record<string, RegExp> = {
|
|
|
28
28
|
toml: /toml/,
|
|
29
29
|
gnubash: /(shell|bash|sh|zsh)/,
|
|
30
30
|
python: /(py|python)/,
|
|
31
|
-
dotnet: /(cs
|
|
31
|
+
dotnet: /(^cs$|csharp|vb)/,
|
|
32
32
|
rust: /(rs|rust)/,
|
|
33
33
|
ruby: /(rb|ruby)/,
|
|
34
34
|
php: /php/,
|
|
@@ -101,7 +101,7 @@ export const CodeBlock = ({
|
|
|
101
101
|
</div>
|
|
102
102
|
<div
|
|
103
103
|
className={cn(
|
|
104
|
-
"code-block text-sm not-prose scrollbar overflow-x-auto scrollbar [
|
|
104
|
+
"code-block text-sm not-prose scrollbar overflow-x-auto scrollbar [&_code]:p-3 [&_code]:py-2",
|
|
105
105
|
props.className,
|
|
106
106
|
)}
|
|
107
107
|
ref={ref}
|
package/src/lib/ui/Dialog.tsx
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as DialogPrimitive from "@radix-ui/react-dialog";
|
|
2
2
|
import * as React from "react";
|
|
3
3
|
|
|
4
|
-
import { XIcon } from "lucide-react";
|
|
4
|
+
import { CircleIcon, XIcon } from "lucide-react";
|
|
5
5
|
import { cn } from "../util/cn.js";
|
|
6
6
|
|
|
7
7
|
const Dialog = DialogPrimitive.Root;
|
|
@@ -45,8 +45,17 @@ const DialogContent = React.forwardRef<
|
|
|
45
45
|
>
|
|
46
46
|
{children}
|
|
47
47
|
{showCloseButton && (
|
|
48
|
-
<DialogPrimitive.Close className="absolute left-1 top-1 rounded-xs opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-hidden focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground">
|
|
49
|
-
<
|
|
48
|
+
<DialogPrimitive.Close className="absolute p-3 group -left-1.5 -top-1.5 rounded-xs opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-hidden focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground">
|
|
49
|
+
<CircleIcon
|
|
50
|
+
className="h-2 w-2 transition-all border border-transparent group-hover:border-white/20 rounded-full group-hover:scale-180 group-hover:text-red-400"
|
|
51
|
+
strokeWidth={2}
|
|
52
|
+
fill="currentColor"
|
|
53
|
+
/>
|
|
54
|
+
<XIcon
|
|
55
|
+
className="h-2 w-2 absolute top-3 left-3 text-transparent group-hover:text-red-800 transition-colors"
|
|
56
|
+
strokeWidth={2}
|
|
57
|
+
fill="currentColor"
|
|
58
|
+
/>
|
|
50
59
|
<span className="sr-only">Close</span>
|
|
51
60
|
</DialogPrimitive.Close>
|
|
52
61
|
)}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"CodeBlock-CVT6z0PP.js","sources":["../src/lib/util/useCopyToClipboard.ts","../src/lib/ui/CodeBlock.tsx"],"sourcesContent":["import { useCallback, useState } from \"react\";\n\nexport const useCopyToClipboard = (timeout = 2000) => {\n const [isCopied, setIsCopied] = useState(false);\n\n const copyToClipboard = useCallback(\n (text: string) => {\n void navigator.clipboard.writeText(text);\n setIsCopied(true);\n\n setTimeout(() => setIsCopied(false), timeout);\n },\n [timeout],\n );\n\n return [isCopied, copyToClipboard] as const;\n};\n","import { CheckIcon, CopyIcon } from \"lucide-react\";\nimport type { ReactNode } from \"react\";\nimport { useRef } from \"react\";\nimport { cn } from \"../util/cn.js\";\nimport { useCopyToClipboard } from \"../util/useCopyToClipboard.js\";\n\nexport type CodeBlockProps = {\n className?: string;\n noBackground?: boolean;\n wrapLines?: boolean;\n showLanguageIndicator?: boolean;\n language?: string;\n title?: string;\n children?: ReactNode;\n code?: ReactNode;\n showCopy?: \"hover\" | \"always\" | \"never\";\n disabled?: boolean;\n showLineNumbers?: boolean;\n};\n\nconst IconToLanguageMap: Record<string, RegExp> = {\n typescript: /(tsx?|typescript)/,\n javascript: /(jsx?|javascript)/,\n markdown: /(md|markdown)/,\n mdx: /mdx/,\n json: /json/,\n yaml: /yaml/,\n toml: /toml/,\n gnubash: /(shell|bash|sh|zsh)/,\n python: /(py|python)/,\n dotnet: /(cs|csharp|vb)/,\n rust: /(rs|rust)/,\n ruby: /(rb|ruby)/,\n php: /php/,\n html5: /html?/,\n css: /css/,\n};\n\nconst getIconUrl = (language?: string) => {\n if (!language) return undefined;\n\n const icon = Object.entries(IconToLanguageMap).find(([_, regex]) =>\n regex.test(language),\n );\n return icon\n ? `https://cdn.simpleicons.org/${icon[0]}/000/fff?viewbox=auto`\n : undefined;\n};\n\nexport const CodeBlock = ({\n children,\n title = \"Code\",\n language,\n showCopy = \"hover\",\n showLanguageIndicator,\n showLineNumbers,\n ...props\n}: CodeBlockProps) => {\n const [isCopied, copyToClipboard] = useCopyToClipboard();\n const ref = useRef<HTMLDivElement>(null);\n\n if (!children) return null;\n\n const iconUrl = showLanguageIndicator ? getIconUrl(language) : undefined;\n\n return (\n <div\n className={cn(\n \"border code-block-wrapper relative group bg-muted/50 rounded-md overflow-hidden\",\n showLineNumbers && \"line-numbers\",\n )}\n >\n <div className=\"border-b flex items-center h-10 font-sans bg-black/2\">\n <div className=\"flex items-center gap-2 flex-1 text-sm w-full px-3\">\n {iconUrl && <img src={iconUrl} className=\"h-3 max-w-4\" />}\n {title}\n </div>{\" \"}\n {showCopy !== \"never\" && (\n <button\n type=\"button\"\n aria-label=\"Copy code\"\n title=\"Copy code\"\n className={cn(\n \"transition px-2 py-2 mx-1 rounded-sm\",\n !isCopied && \"hover:bg-accent hover:brightness-95\",\n )}\n disabled={isCopied}\n onClick={() => {\n if (!ref.current?.textContent) return;\n\n copyToClipboard(ref.current.textContent);\n }}\n >\n {isCopied ? (\n <CheckIcon className=\"text-emerald-600\" size={14} />\n ) : (\n <CopyIcon size={14} />\n )}\n </button>\n )}\n </div>\n <div\n className={cn(\n \"code-block text-sm not-prose scrollbar overflow-x-auto scrollbar [&>code]:p-3 [&>code]:py-2\",\n props.className,\n )}\n ref={ref}\n >\n {children}\n </div>\n </div>\n );\n};\n"],"names":["useCopyToClipboard","timeout","isCopied","setIsCopied","useState","copyToClipboard","useCallback","text","IconToLanguageMap","getIconUrl","language","icon","_","regex","CodeBlock","children","title","showCopy","showLanguageIndicator","showLineNumbers","props","ref","useRef","iconUrl","jsxs","cn","jsx","CheckIcon","CopyIcon"],"mappings":";;;;AAEO,MAAMA,IAAqB,CAACC,IAAU,QAAS;AACpD,QAAM,CAACC,GAAUC,CAAW,IAAIC,EAAS,EAAK,GAExCC,IAAkBC;AAAA,IACtB,CAACC,MAAiB;AAChB,MAAK,UAAU,UAAU,UAAUA,CAAI,GACvCJ,EAAY,EAAI,GAEhB,WAAW,MAAMA,EAAY,EAAK,GAAGF,CAAO;AAAA,IAC9C;AAAA,IACA,CAACA,CAAO;AAAA,EAAA;AAGV,SAAO,CAACC,GAAUG,CAAe;AACnC,GCIMG,IAA4C;AAAA,EAChD,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,UAAU;AAAA,EACV,KAAK;AAAA,EACL,MAAM;AAAA,EACN,MAAM;AAAA,EACN,MAAM;AAAA,EACN,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,MAAM;AAAA,EACN,KAAK;AAAA,EACL,OAAO;AAAA,EACP,KAAK;AACP,GAEMC,IAAa,CAACC,MAAsB;AACxC,MAAI,CAACA,EAAU;AAEf,QAAMC,IAAO,OAAO,QAAQH,CAAiB,EAAE;AAAA,IAAK,CAAC,CAACI,GAAGC,CAAK,MAC5DA,EAAM,KAAKH,CAAQ;AAAA,EAAA;AAErB,SAAOC,IACH,+BAA+BA,EAAK,CAAC,CAAC,0BACtC;AACN,GAEaG,IAAY,CAAC;AAAA,EACxB,UAAAC;AAAA,EACA,OAAAC,IAAQ;AAAA,EACR,UAAAN;AAAA,EACA,UAAAO,IAAW;AAAA,EACX,uBAAAC;AAAA,EACA,iBAAAC;AAAA,EACA,GAAGC;AACL,MAAsB;AACpB,QAAM,CAAClB,GAAUG,CAAe,IAAIL,EAAA,GAC9BqB,IAAMC,EAAuB,IAAI;AAEvC,MAAI,CAACP,EAAU,QAAO;AAEtB,QAAMQ,IAAUL,IAAwBT,EAAWC,CAAQ,IAAI;AAE/D,SACEc,gBAAAA,EAAAA;AAAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWC;AAAA,QACT;AAAA,QACAN,KAAmB;AAAA,MAAA;AAAA,MAGrB,UAAA;AAAA,QAAAK,gBAAAA,EAAAA,KAAC,OAAA,EAAI,WAAU,wDACb,UAAA;AAAA,UAAAA,gBAAAA,EAAAA,KAAC,OAAA,EAAI,WAAU,sDACZ,UAAA;AAAA,YAAAD,KAAWG,gBAAAA,EAAAA,IAAC,OAAA,EAAI,KAAKH,GAAS,WAAU,eAAc;AAAA,YACtDP;AAAA,UAAA,GACH;AAAA,UAAO;AAAA,UACNC,MAAa,WACZS,gBAAAA,EAAAA;AAAAA,YAAC;AAAA,YAAA;AAAA,cACC,MAAK;AAAA,cACL,cAAW;AAAA,cACX,OAAM;AAAA,cACN,WAAWD;AAAA,gBACT;AAAA,gBACA,CAACvB,KAAY;AAAA,cAAA;AAAA,cAEf,UAAUA;AAAA,cACV,SAAS,MAAM;AACb,gBAAKmB,EAAI,SAAS,eAElBhB,EAAgBgB,EAAI,QAAQ,WAAW;AAAA,cACzC;AAAA,cAEC,UAAAnB,IACCwB,gBAAAA,EAAAA,IAACC,GAAA,EAAU,WAAU,oBAAmB,MAAM,GAAA,CAAI,IAElDD,gBAAAA,EAAAA,IAACE,GAAA,EAAS,MAAM,GAAA,CAAI;AAAA,YAAA;AAAA,UAAA;AAAA,QAExB,GAEJ;AAAA,QACAF,gBAAAA,EAAAA;AAAAA,UAAC;AAAA,UAAA;AAAA,YACC,WAAWD;AAAA,cACT;AAAA,cACAL,EAAM;AAAA,YAAA;AAAA,YAER,KAAAC;AAAA,YAEC,UAAAN;AAAA,UAAA;AAAA,QAAA;AAAA,MACH;AAAA,IAAA;AAAA,EAAA;AAGN;"}
|
package/lib/Dialog-u9Uz9sTt.js
DELETED
|
@@ -1,99 +0,0 @@
|
|
|
1
|
-
import { j as s } from "./jsx-runtime-C5mzlN2N.js";
|
|
2
|
-
import * as a from "@radix-ui/react-dialog";
|
|
3
|
-
import * as l from "react";
|
|
4
|
-
import { XIcon as c } from "lucide-react";
|
|
5
|
-
import { c as i } from "./cn-dYga0KKN.js";
|
|
6
|
-
const j = a.Root, b = a.Trigger, m = a.Portal, h = a.Close, n = l.forwardRef(({ className: e, ...t }, o) => /* @__PURE__ */ s.jsx(
|
|
7
|
-
a.Overlay,
|
|
8
|
-
{
|
|
9
|
-
ref: o,
|
|
10
|
-
className: i(
|
|
11
|
-
"fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",
|
|
12
|
-
e
|
|
13
|
-
),
|
|
14
|
-
...t
|
|
15
|
-
}
|
|
16
|
-
));
|
|
17
|
-
n.displayName = a.Overlay.displayName;
|
|
18
|
-
const f = l.forwardRef(({ className: e, children: t, showCloseButton: o = !0, ...d }, r) => /* @__PURE__ */ s.jsxs(m, { children: [
|
|
19
|
-
/* @__PURE__ */ s.jsx(n, {}),
|
|
20
|
-
/* @__PURE__ */ s.jsxs(
|
|
21
|
-
a.Content,
|
|
22
|
-
{
|
|
23
|
-
ref: r,
|
|
24
|
-
className: i(
|
|
25
|
-
"fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg",
|
|
26
|
-
e
|
|
27
|
-
),
|
|
28
|
-
...d,
|
|
29
|
-
children: [
|
|
30
|
-
t,
|
|
31
|
-
o && /* @__PURE__ */ s.jsxs(a.Close, { className: "absolute left-1 top-1 rounded-xs opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-hidden focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground", children: [
|
|
32
|
-
/* @__PURE__ */ s.jsx(c, { className: "h-3 w-3", strokeWidth: 2 }),
|
|
33
|
-
/* @__PURE__ */ s.jsx("span", { className: "sr-only", children: "Close" })
|
|
34
|
-
] })
|
|
35
|
-
]
|
|
36
|
-
}
|
|
37
|
-
)
|
|
38
|
-
] }));
|
|
39
|
-
f.displayName = a.Content.displayName;
|
|
40
|
-
const p = ({
|
|
41
|
-
className: e,
|
|
42
|
-
...t
|
|
43
|
-
}) => /* @__PURE__ */ s.jsx(
|
|
44
|
-
"div",
|
|
45
|
-
{
|
|
46
|
-
className: i(
|
|
47
|
-
"flex flex-col space-y-1.5 text-center sm:text-left",
|
|
48
|
-
e
|
|
49
|
-
),
|
|
50
|
-
...t
|
|
51
|
-
}
|
|
52
|
-
);
|
|
53
|
-
p.displayName = "DialogHeader";
|
|
54
|
-
const g = ({
|
|
55
|
-
className: e,
|
|
56
|
-
...t
|
|
57
|
-
}) => /* @__PURE__ */ s.jsx(
|
|
58
|
-
"div",
|
|
59
|
-
{
|
|
60
|
-
className: i(
|
|
61
|
-
"flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",
|
|
62
|
-
e
|
|
63
|
-
),
|
|
64
|
-
...t
|
|
65
|
-
}
|
|
66
|
-
);
|
|
67
|
-
g.displayName = "DialogFooter";
|
|
68
|
-
const x = l.forwardRef(({ className: e, ...t }, o) => /* @__PURE__ */ s.jsx(
|
|
69
|
-
a.Title,
|
|
70
|
-
{
|
|
71
|
-
ref: o,
|
|
72
|
-
className: i(
|
|
73
|
-
"text-lg font-semibold leading-none tracking-tight",
|
|
74
|
-
e
|
|
75
|
-
),
|
|
76
|
-
...t
|
|
77
|
-
}
|
|
78
|
-
));
|
|
79
|
-
x.displayName = a.Title.displayName;
|
|
80
|
-
const u = l.forwardRef(({ className: e, ...t }, o) => /* @__PURE__ */ s.jsx(
|
|
81
|
-
a.Description,
|
|
82
|
-
{
|
|
83
|
-
ref: o,
|
|
84
|
-
className: i("text-sm text-muted-foreground", e),
|
|
85
|
-
...t
|
|
86
|
-
}
|
|
87
|
-
));
|
|
88
|
-
u.displayName = a.Description.displayName;
|
|
89
|
-
export {
|
|
90
|
-
j as D,
|
|
91
|
-
f as a,
|
|
92
|
-
x as b,
|
|
93
|
-
p as c,
|
|
94
|
-
u as d,
|
|
95
|
-
g as e,
|
|
96
|
-
h as f,
|
|
97
|
-
b as g
|
|
98
|
-
};
|
|
99
|
-
//# sourceMappingURL=Dialog-u9Uz9sTt.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Dialog-u9Uz9sTt.js","sources":["../src/lib/ui/Dialog.tsx"],"sourcesContent":["import * as DialogPrimitive from \"@radix-ui/react-dialog\";\nimport * as React from \"react\";\n\nimport { XIcon } from \"lucide-react\";\nimport { cn } from \"../util/cn.js\";\n\nconst Dialog = DialogPrimitive.Root;\n\nconst DialogTrigger = DialogPrimitive.Trigger;\n\nconst DialogPortal = DialogPrimitive.Portal;\n\nconst DialogClose = DialogPrimitive.Close;\n\nconst DialogOverlay = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Overlay>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Overlay>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Overlay\n ref={ref}\n className={cn(\n \"fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0\",\n className,\n )}\n {...props}\n />\n));\nDialogOverlay.displayName = DialogPrimitive.Overlay.displayName;\n\nconst DialogContent = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Content> & {\n showCloseButton?: boolean;\n }\n>(({ className, children, showCloseButton = true, ...props }, ref) => (\n <DialogPortal>\n <DialogOverlay />\n <DialogPrimitive.Content\n ref={ref}\n className={cn(\n \"fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg\",\n className,\n )}\n {...props}\n >\n {children}\n {showCloseButton && (\n <DialogPrimitive.Close className=\"absolute left-1 top-1 rounded-xs opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-hidden focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground\">\n <XIcon className=\"h-3 w-3\" strokeWidth={2} />\n <span className=\"sr-only\">Close</span>\n </DialogPrimitive.Close>\n )}\n </DialogPrimitive.Content>\n </DialogPortal>\n));\nDialogContent.displayName = DialogPrimitive.Content.displayName;\n\nconst DialogHeader = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\n \"flex flex-col space-y-1.5 text-center sm:text-left\",\n className,\n )}\n {...props}\n />\n);\nDialogHeader.displayName = \"DialogHeader\";\n\nconst DialogFooter = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\n \"flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2\",\n className,\n )}\n {...props}\n />\n);\nDialogFooter.displayName = \"DialogFooter\";\n\nconst DialogTitle = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Title>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Title>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Title\n ref={ref}\n className={cn(\n \"text-lg font-semibold leading-none tracking-tight\",\n className,\n )}\n {...props}\n />\n));\nDialogTitle.displayName = DialogPrimitive.Title.displayName;\n\nconst DialogDescription = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Description>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Description>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Description\n ref={ref}\n className={cn(\"text-sm text-muted-foreground\", className)}\n {...props}\n />\n));\nDialogDescription.displayName = DialogPrimitive.Description.displayName;\n\nexport {\n Dialog,\n DialogClose,\n DialogContent,\n DialogDescription,\n DialogFooter,\n DialogHeader,\n DialogOverlay,\n DialogPortal,\n DialogTitle,\n DialogTrigger,\n};\n"],"names":["Dialog","DialogPrimitive","DialogTrigger","DialogPortal","DialogClose","DialogOverlay","React","className","props","ref","jsx","cn","DialogContent","children","showCloseButton","jsxs","XIcon","DialogHeader","DialogFooter","DialogTitle","DialogDescription"],"mappings":";;;;;AAMA,MAAMA,IAASC,EAAgB,MAEzBC,IAAgBD,EAAgB,SAEhCE,IAAeF,EAAgB,QAE/BG,IAAcH,EAAgB,OAE9BI,IAAgBC,EAAM,WAG1B,CAAC,EAAE,WAAAC,GAAW,GAAGC,EAAA,GAASC,MAC1BC,gBAAAA,EAAAA;AAAAA,EAACT,EAAgB;AAAA,EAAhB;AAAA,IACC,KAAAQ;AAAA,IACA,WAAWE;AAAA,MACT;AAAA,MACAJ;AAAA,IAAA;AAAA,IAED,GAAGC;AAAA,EAAA;AACN,CACD;AACDH,EAAc,cAAcJ,EAAgB,QAAQ;AAEpD,MAAMW,IAAgBN,EAAM,WAK1B,CAAC,EAAE,WAAAC,GAAW,UAAAM,GAAU,iBAAAC,IAAkB,IAAM,GAAGN,EAAA,GAASC,6BAC3DN,GAAA,EACC,UAAA;AAAA,EAAAO,gBAAAA,EAAAA,IAACL,GAAA,EAAc;AAAA,EACfU,gBAAAA,EAAAA;AAAAA,IAACd,EAAgB;AAAA,IAAhB;AAAA,MACC,KAAAQ;AAAA,MACA,WAAWE;AAAA,QACT;AAAA,QACAJ;AAAA,MAAA;AAAA,MAED,GAAGC;AAAA,MAEH,UAAA;AAAA,QAAAK;AAAA,QACAC,KACCC,gBAAAA,EAAAA,KAACd,EAAgB,OAAhB,EAAsB,WAAU,kRAC/B,UAAA;AAAA,UAAAS,gBAAAA,EAAAA,IAACM,GAAA,EAAM,WAAU,WAAU,aAAa,GAAG;AAAA,UAC3CN,gBAAAA,EAAAA,IAAC,QAAA,EAAK,WAAU,WAAU,UAAA,QAAA,CAAK;AAAA,QAAA,EAAA,CACjC;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAEJ,GACF,CACD;AACDE,EAAc,cAAcX,EAAgB,QAAQ;AAEpD,MAAMgB,IAAe,CAAC;AAAA,EACpB,WAAAV;AAAA,EACA,GAAGC;AACL,MACEE,gBAAAA,EAAAA;AAAAA,EAAC;AAAA,EAAA;AAAA,IACC,WAAWC;AAAA,MACT;AAAA,MACAJ;AAAA,IAAA;AAAA,IAED,GAAGC;AAAA,EAAA;AACN;AAEFS,EAAa,cAAc;AAE3B,MAAMC,IAAe,CAAC;AAAA,EACpB,WAAAX;AAAA,EACA,GAAGC;AACL,MACEE,gBAAAA,EAAAA;AAAAA,EAAC;AAAA,EAAA;AAAA,IACC,WAAWC;AAAA,MACT;AAAA,MACAJ;AAAA,IAAA;AAAA,IAED,GAAGC;AAAA,EAAA;AACN;AAEFU,EAAa,cAAc;AAE3B,MAAMC,IAAcb,EAAM,WAGxB,CAAC,EAAE,WAAAC,GAAW,GAAGC,EAAA,GAASC,MAC1BC,gBAAAA,EAAAA;AAAAA,EAACT,EAAgB;AAAA,EAAhB;AAAA,IACC,KAAAQ;AAAA,IACA,WAAWE;AAAA,MACT;AAAA,MACAJ;AAAA,IAAA;AAAA,IAED,GAAGC;AAAA,EAAA;AACN,CACD;AACDW,EAAY,cAAclB,EAAgB,MAAM;AAEhD,MAAMmB,IAAoBd,EAAM,WAG9B,CAAC,EAAE,WAAAC,GAAW,GAAGC,EAAA,GAASC,MAC1BC,gBAAAA,EAAAA;AAAAA,EAACT,EAAgB;AAAA,EAAhB;AAAA,IACC,KAAAQ;AAAA,IACA,WAAWE,EAAG,iCAAiCJ,CAAS;AAAA,IACvD,GAAGC;AAAA,EAAA;AACN,CACD;AACDY,EAAkB,cAAcnB,EAAgB,YAAY;"}
|