zudoku 0.4.2-dev.0 → 0.4.2-dev.10
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/cli/dev/handler.js +1 -0
- package/dist/cli/dev/handler.js.map +1 -1
- package/dist/lib/components/DeveloperHint.js +1 -3
- package/dist/lib/components/DeveloperHint.js.map +1 -1
- package/dist/lib/components/Header.js +1 -3
- package/dist/lib/components/Header.js.map +1 -1
- package/dist/lib/components/Layout.js +3 -1
- package/dist/lib/components/Layout.js.map +1 -1
- package/dist/lib/components/navigation/SidebarCategory.js +3 -1
- package/dist/lib/components/navigation/SidebarCategory.js.map +1 -1
- package/dist/lib/components/navigation/SidebarWrapper.js +1 -1
- package/dist/lib/components/navigation/SidebarWrapper.js.map +1 -1
- package/dist/lib/plugins/api-keys/SettingsApiKeys.js +8 -2
- package/dist/lib/plugins/api-keys/SettingsApiKeys.js.map +1 -1
- package/dist/lib/plugins/markdown/Toc.js +1 -1
- package/dist/lib/plugins/markdown/Toc.js.map +1 -1
- package/dist/lib/plugins/openapi/index.js +1 -1
- package/dist/lib/plugins/openapi/index.js.map +1 -1
- package/dist/lib/plugins/openapi/playground/Playground.js +9 -3
- package/dist/lib/plugins/openapi/playground/Playground.js.map +1 -1
- package/dist/lib/plugins/openapi/playground/ResponseTab.js +3 -1
- package/dist/lib/plugins/openapi/playground/ResponseTab.js.map +1 -1
- package/lib/{CategoryHeading-DrdbisK9.js → CategoryHeading-BoT0DVI-.js} +2 -2
- package/lib/{CategoryHeading-DrdbisK9.js.map → CategoryHeading-BoT0DVI-.js.map} +1 -1
- package/lib/{Combination-BPSuncey.js → Combination-C1wKWZ28.js} +2 -2
- package/lib/{Combination-BPSuncey.js.map → Combination-C1wKWZ28.js.map} +1 -1
- package/lib/DeveloperHint-Bv958_pY.js +16 -0
- package/lib/DeveloperHint-Bv958_pY.js.map +1 -0
- package/lib/{ErrorPage-CxovZyrp.js → ErrorPage-CcBjrY_g.js} +3 -3
- package/lib/{ErrorPage-CxovZyrp.js.map → ErrorPage-CcBjrY_g.js.map} +1 -1
- package/lib/{Input-mYAlPgNO.js → Input-BqnnTL7-.js} +3 -3
- package/lib/{Input-mYAlPgNO.js.map → Input-BqnnTL7-.js.map} +1 -1
- package/lib/{Markdown-D9dQG0k9.js → Markdown-C3hatKS5.js} +1011 -1087
- package/lib/Markdown-C3hatKS5.js.map +1 -0
- package/lib/{MdxPage-mbEyh43a.js → MdxPage-BEG8cDoF.js} +4 -4
- package/lib/MdxPage-BEG8cDoF.js.map +1 -0
- package/lib/{OperationList-DzCDNF6G.js → OperationList-BEiJFfFr.js} +9 -9
- package/lib/{OperationList-DzCDNF6G.js.map → OperationList-BEiJFfFr.js.map} +1 -1
- package/lib/{Route-Dz_g9UaG.js → Route-BvREOAN6.js} +2 -2
- package/lib/{Route-Dz_g9UaG.js.map → Route-BvREOAN6.js.map} +1 -1
- package/lib/{SidebarBadge-CfSY7FWN.js → SidebarBadge-C6wpM9X3.js} +3 -3
- package/lib/{SidebarBadge-CfSY7FWN.js.map → SidebarBadge-C6wpM9X3.js.map} +1 -1
- package/lib/{SlotletProvider-DwjrZITv.js → SlotletProvider-Bdzag6MN.js} +4 -4
- package/lib/{SlotletProvider-DwjrZITv.js.map → SlotletProvider-Bdzag6MN.js.map} +1 -1
- package/lib/{Spinner-BUm2J8So.js → Spinner-DiA314T5.js} +2 -2
- package/lib/{Spinner-BUm2J8So.js.map → Spinner-DiA314T5.js.map} +1 -1
- package/lib/{index-D4AiMx6N.js → index-ClDFRC39.js} +601 -595
- package/lib/index-ClDFRC39.js.map +1 -0
- package/lib/{index-DYZLSGmo.js → index-LWNs2niD.js} +3 -3
- package/lib/{index-DYZLSGmo.js.map → index-LWNs2niD.js.map} +1 -1
- package/lib/zudoku.auth-openid.js +4 -4
- package/lib/zudoku.components.js +152 -154
- package/lib/zudoku.components.js.map +1 -1
- package/lib/zudoku.plugin-api-keys.js +60 -47
- package/lib/zudoku.plugin-api-keys.js.map +1 -1
- package/lib/zudoku.plugin-custom-page.js +1 -1
- package/lib/zudoku.plugin-markdown.js +1 -1
- package/lib/zudoku.plugin-openapi.js +4 -4
- package/package.json +3 -3
- package/src/app/main.css +17 -5
- package/src/lib/components/DeveloperHint.tsx +1 -3
- package/src/lib/components/Header.tsx +1 -2
- package/src/lib/components/Layout.tsx +5 -4
- package/src/lib/components/navigation/SidebarCategory.tsx +5 -2
- package/src/lib/components/navigation/SidebarWrapper.tsx +1 -1
- package/src/lib/plugins/api-keys/SettingsApiKeys.tsx +21 -1
- package/src/lib/plugins/markdown/Toc.tsx +1 -1
- package/src/lib/plugins/openapi/index.tsx +1 -1
- package/src/lib/plugins/openapi/playground/Playground.tsx +11 -5
- package/src/lib/plugins/openapi/playground/ResponseTab.tsx +2 -1
- package/lib/DeveloperHint-BQSFXH01.js +0 -10
- package/lib/DeveloperHint-BQSFXH01.js.map +0 -1
- package/lib/Markdown-D9dQG0k9.js.map +0 -1
- package/lib/MdxPage-mbEyh43a.js.map +0 -1
- package/lib/index-D4AiMx6N.js.map +0 -1
|
@@ -3,7 +3,14 @@ import {
|
|
|
3
3
|
useQueryClient,
|
|
4
4
|
useSuspenseQuery,
|
|
5
5
|
} from "@tanstack/react-query";
|
|
6
|
-
import {
|
|
6
|
+
import {
|
|
7
|
+
CheckIcon,
|
|
8
|
+
CopyIcon,
|
|
9
|
+
EyeIcon,
|
|
10
|
+
EyeOffIcon,
|
|
11
|
+
RotateCwIcon,
|
|
12
|
+
TrashIcon,
|
|
13
|
+
} from "lucide-react";
|
|
7
14
|
import { useState } from "react";
|
|
8
15
|
import { Link } from "react-router-dom";
|
|
9
16
|
import { useZudoku } from "../../components/context/ZudokuContext.js";
|
|
@@ -147,6 +154,7 @@ export const SettingsApiKeys = ({ service }: { service: ApiKeyService }) => {
|
|
|
147
154
|
|
|
148
155
|
const RevealApiKey = ({ apiKey }: { apiKey: string }) => {
|
|
149
156
|
const [revealed, setRevealed] = useState(false);
|
|
157
|
+
const [copied, setCopied] = useState(false);
|
|
150
158
|
|
|
151
159
|
return (
|
|
152
160
|
<div className="flex gap-2 items-center text-sm">
|
|
@@ -160,6 +168,18 @@ const RevealApiKey = ({ apiKey }: { apiKey: string }) => {
|
|
|
160
168
|
>
|
|
161
169
|
{revealed ? <EyeOffIcon size={16} /> : <EyeIcon size={16} />}
|
|
162
170
|
</Button>
|
|
171
|
+
<Button
|
|
172
|
+
variant="outline"
|
|
173
|
+
onClick={() => {
|
|
174
|
+
navigator.clipboard.writeText(apiKey).then(() => {
|
|
175
|
+
setCopied(true);
|
|
176
|
+
setTimeout(() => setCopied(false), 2000);
|
|
177
|
+
});
|
|
178
|
+
}}
|
|
179
|
+
size="icon"
|
|
180
|
+
>
|
|
181
|
+
{copied ? <CheckIcon size={16} /> : <CopyIcon size={16} />}
|
|
182
|
+
</Button>
|
|
163
183
|
</div>
|
|
164
184
|
);
|
|
165
185
|
};
|
|
@@ -89,7 +89,7 @@ export const Toc = ({ entries }: { entries: TocEntry[] }) => {
|
|
|
89
89
|
}, [activeAnchor]);
|
|
90
90
|
|
|
91
91
|
return (
|
|
92
|
-
<aside className="sticky top-[--header-height] h-[calc(100vh-var(--header-height))] pt-[--padding-content-top] pb-[--padding-content-bottom] overflow-y-auto ps-1 text-sm">
|
|
92
|
+
<aside className="sticky scrollbar top-[--header-height] h-[calc(100vh-var(--header-height))] pt-[--padding-content-top] pb-[--padding-content-bottom] overflow-y-auto ps-1 text-sm">
|
|
93
93
|
<div className="flex items-center gap-2 font-medium mb-2">
|
|
94
94
|
<ListTreeIcon size={16} />
|
|
95
95
|
On this page
|
|
@@ -163,7 +163,7 @@ export const openApiPlugin = (
|
|
|
163
163
|
.filter((tag) => tag.operations.length > 0)
|
|
164
164
|
.map<SidebarItem>((tag) => ({
|
|
165
165
|
type: "category",
|
|
166
|
-
label: tag.name
|
|
166
|
+
label: tag.name || "Other endpoints",
|
|
167
167
|
collapsible: true,
|
|
168
168
|
collapsed: false,
|
|
169
169
|
items: tag.operations.map((operation) => ({
|
|
@@ -223,9 +223,13 @@ export const Playground = ({
|
|
|
223
223
|
</Button>
|
|
224
224
|
</div>
|
|
225
225
|
<Tabs
|
|
226
|
-
defaultValue={
|
|
226
|
+
defaultValue={
|
|
227
|
+
queryParams.length + pathParams.length > 0
|
|
228
|
+
? "parameters"
|
|
229
|
+
: "headers"
|
|
230
|
+
}
|
|
227
231
|
>
|
|
228
|
-
<div className="flex justify-between">
|
|
232
|
+
<div className="flex flex-wrap gap-1 justify-between">
|
|
229
233
|
<TabsList>
|
|
230
234
|
{queryParams.length + pathParams.length > 0 && (
|
|
231
235
|
<TabsTrigger value="parameters">Parameters</TabsTrigger>
|
|
@@ -292,7 +296,7 @@ export const Playground = ({
|
|
|
292
296
|
</TabsContent>
|
|
293
297
|
</Tabs>
|
|
294
298
|
</div>
|
|
295
|
-
<div className="
|
|
299
|
+
<div className="p-8 bg-muted/70">
|
|
296
300
|
{queryMutation.error ? (
|
|
297
301
|
<div className="flex flex-col gap-2">
|
|
298
302
|
{formState.pathParams.some((p) => p.value === "") && (
|
|
@@ -325,7 +329,6 @@ export const Playground = ({
|
|
|
325
329
|
<div>Size: {queryMutation.data.size} B</div>
|
|
326
330
|
</div>
|
|
327
331
|
</div>
|
|
328
|
-
{/*<UrlDisplay host={host} path={url} />*/}
|
|
329
332
|
<Tabs defaultValue="response">
|
|
330
333
|
<TabsList>
|
|
331
334
|
<TabsTrigger value="response">Response</TabsTrigger>
|
|
@@ -343,7 +346,10 @@ export const Playground = ({
|
|
|
343
346
|
/>
|
|
344
347
|
</TabsContent>
|
|
345
348
|
<TabsContent value="headers">
|
|
346
|
-
<Card
|
|
349
|
+
<Card
|
|
350
|
+
// playground dialog has h-5/6 ≈ 83.333vh
|
|
351
|
+
className="max-h-[calc(83.333vh-140px)] overflow-y-auto grid grid-cols-2 w-full gap-2.5 font-mono text-xs shadow-none p-4"
|
|
352
|
+
>
|
|
347
353
|
<div className="font-semibold">Key</div>
|
|
348
354
|
<div className="font-semibold">Value</div>
|
|
349
355
|
{headerEntries.map(([key, value]) => (
|
|
@@ -55,7 +55,8 @@ export const ResponseTab = ({
|
|
|
55
55
|
}
|
|
56
56
|
noBackground
|
|
57
57
|
showLanguageIndicator
|
|
58
|
-
|
|
58
|
+
// playground dialog has h-5/6 ≈ 83.333vh
|
|
59
|
+
className="overflow-x-auto p-4 text-xs max-h-[calc(83.333vh-180px)]"
|
|
59
60
|
code={view === "raw" ? body : beautifiedBody}
|
|
60
61
|
/>
|
|
61
62
|
</Card>
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"DeveloperHint-BQSFXH01.js","sources":["../src/lib/components/DeveloperHint.tsx"],"sourcesContent":["import type { ReactNode } from \"react\";\nimport { Callout } from \"../ui/Callout.js\";\n\nexport const DeveloperHint = ({\n children,\n className,\n}: {\n children: ReactNode;\n className?: string;\n}) => {\n // TODO: figure out a way to do that in consumer dev mode not \"internal\"\n // so this doesn't get stripped out in the build\n if (!import.meta.env.DEV) return;\n\n return (\n <Callout type=\"caution\" title=\"Developer hint\" className={className}>\n <div className=\"flex flex-col gap-2\">\n <div>{children}</div>\n <small className=\"italic\">\n Note: This hint is only shown in development mode.\n </small>\n </div>\n </Callout>\n );\n};\n"],"names":["DeveloperHint","children","className"],"mappings":";AAGO,MAAMA,IAAgB,CAAC;AAAA,EAC5B,UAAAC;AAAA,EACA,WAAAC;AACF,MAGM;AAeN;"}
|