zudoku 0.52.0 → 0.52.2
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/config/validators/NavigationSchema.js +1 -1
- package/dist/config/validators/NavigationSchema.js.map +1 -1
- package/dist/lib/components/Autocomplete.js +1 -1
- package/dist/lib/components/Autocomplete.js.map +1 -1
- package/dist/lib/plugins/openapi/SidecarExamples.js +1 -1
- package/dist/lib/plugins/openapi/SidecarExamples.js.map +1 -1
- package/dist/lib/plugins/openapi/playground/BodyPanel.d.ts +2 -2
- package/dist/lib/plugins/openapi/playground/BodyPanel.js +4 -3
- package/dist/lib/plugins/openapi/playground/BodyPanel.js.map +1 -1
- package/dist/lib/plugins/openapi/playground/Headers.js +1 -1
- package/dist/lib/plugins/openapi/playground/Headers.js.map +1 -1
- package/dist/lib/plugins/openapi/playground/PathParams.js +1 -1
- package/dist/lib/plugins/openapi/playground/PathParams.js.map +1 -1
- package/dist/lib/plugins/openapi/playground/Playground.js +8 -13
- package/dist/lib/plugins/openapi/playground/Playground.js.map +1 -1
- package/dist/lib/plugins/openapi/playground/QueryParams.js +2 -2
- package/dist/lib/plugins/openapi/playground/QueryParams.js.map +1 -1
- package/dist/lib/plugins/openapi/playground/result-panel/ResponseStatusBar.d.ts +3 -1
- package/dist/lib/plugins/openapi/playground/result-panel/ResponseStatusBar.js +5 -2
- package/dist/lib/plugins/openapi/playground/result-panel/ResponseStatusBar.js.map +1 -1
- package/dist/lib/plugins/openapi/playground/result-panel/ResponseTab.js +6 -4
- package/dist/lib/plugins/openapi/playground/result-panel/ResponseTab.js.map +1 -1
- package/dist/lib/plugins/openapi/playground/result-panel/ResultPanel.d.ts +3 -1
- package/dist/lib/plugins/openapi/playground/result-panel/ResultPanel.js +2 -2
- package/dist/lib/plugins/openapi/playground/result-panel/ResultPanel.js.map +1 -1
- package/dist/lib/ui/Dialog.js +1 -1
- package/dist/lib/ui/Dialog.js.map +1 -1
- package/dist/lib/ui/EmbeddedCodeBlock.js +1 -1
- package/dist/lib/ui/EmbeddedCodeBlock.js.map +1 -1
- package/lib/{Command-CPtGTZAL.js → Command-xsbs2uhf.js} +2 -2
- package/lib/{Command-CPtGTZAL.js.map → Command-xsbs2uhf.js.map} +1 -1
- package/lib/{Dialog-DGlrUTCS.js → Dialog-CiIdyz6a.js} +3 -3
- package/lib/Dialog-CiIdyz6a.js.map +1 -0
- package/lib/{MdxPage-D-QSUlMf.js → MdxPage-Glqk-5sb.js} +3 -3
- package/lib/{MdxPage-D-QSUlMf.js.map → MdxPage-Glqk-5sb.js.map} +1 -1
- package/lib/{OasProvider-DS23Ds76.js → OasProvider-Cks7Ky_-.js} +2 -2
- package/lib/{OasProvider-DS23Ds76.js.map → OasProvider-Cks7Ky_-.js.map} +1 -1
- package/lib/{OperationList-CLidyzBx.js → OperationList-BP3gUFCx.js} +7 -6
- package/lib/OperationList-BP3gUFCx.js.map +1 -0
- package/lib/{Pagination-ClHXydm9.js → Pagination-D2xTtsFG.js} +2 -2
- package/lib/{Pagination-ClHXydm9.js.map → Pagination-D2xTtsFG.js.map} +1 -1
- package/lib/{RouteGuard-Bd-ppFbi.js → RouteGuard-CbKd7_9h.js} +2 -2
- package/lib/{RouteGuard-Bd-ppFbi.js.map → RouteGuard-CbKd7_9h.js.map} +1 -1
- package/lib/{SchemaList-AJ8eFhvU.js → SchemaList-BQOuyEO7.js} +4 -4
- package/lib/{SchemaList-AJ8eFhvU.js.map → SchemaList-BQOuyEO7.js.map} +1 -1
- package/lib/{SchemaView-B9MTum2V.js → SchemaView-C6fqo8Th.js} +3 -3
- package/lib/{SchemaView-B9MTum2V.js.map → SchemaView-C6fqo8Th.js.map} +1 -1
- package/lib/{SignUp-CfojO4Pb.js → SignUp-M9Jz4SXJ.js} +2 -2
- package/lib/{SignUp-CfojO4Pb.js.map → SignUp-M9Jz4SXJ.js.map} +1 -1
- package/lib/{circular-0wOQ8KUO.js → circular-BNp-4wdn.js} +2 -2
- package/lib/{circular-0wOQ8KUO.js.map → circular-BNp-4wdn.js.map} +1 -1
- package/lib/{createServer-Brtv5_hp.js → createServer-D7OPYwXA.js} +3 -3
- package/lib/{createServer-Brtv5_hp.js.map → createServer-D7OPYwXA.js.map} +1 -1
- package/lib/{errors-BsabiSKg.js → errors-C473PjdR.js} +3 -3
- package/lib/{errors-BsabiSKg.js.map → errors-C473PjdR.js.map} +1 -1
- package/lib/{index-BoBGmARR.js → index-BLRAtPoq.js} +843 -832
- package/lib/index-BLRAtPoq.js.map +1 -0
- package/lib/{index-BIbCx5Fh.js → index-Chtnw-sn.js} +2 -2
- package/lib/{index-BIbCx5Fh.js.map → index-Chtnw-sn.js.map} +1 -1
- package/lib/ui/Command.js +1 -1
- package/lib/ui/Dialog.js +23 -23
- package/lib/ui/Dialog.js.map +1 -1
- package/lib/ui/EmbeddedCodeBlock.js +1 -1
- package/lib/ui/EmbeddedCodeBlock.js.map +1 -1
- package/lib/zudoku.auth-azureb2c.js +1 -1
- package/lib/zudoku.auth-clerk.js +1 -1
- package/lib/zudoku.auth-openid.js +1 -1
- package/lib/zudoku.components.js +2 -2
- package/lib/zudoku.plugin-api-catalog.js +2 -2
- package/lib/zudoku.plugin-api-keys.js +1 -1
- package/lib/zudoku.plugin-markdown.js +1 -1
- package/lib/zudoku.plugin-openapi.js +1 -1
- package/lib/zudoku.plugin-search-pagefind.js +3 -3
- package/package.json +1 -1
- package/src/lib/components/Autocomplete.tsx +1 -1
- package/src/lib/plugins/openapi/SidecarExamples.tsx +1 -0
- package/src/lib/plugins/openapi/playground/BodyPanel.tsx +6 -5
- package/src/lib/plugins/openapi/playground/Headers.tsx +1 -1
- package/src/lib/plugins/openapi/playground/PathParams.tsx +1 -1
- package/src/lib/plugins/openapi/playground/Playground.tsx +73 -84
- package/src/lib/plugins/openapi/playground/QueryParams.tsx +3 -1
- package/src/lib/plugins/openapi/playground/result-panel/ResponseStatusBar.tsx +13 -2
- package/src/lib/plugins/openapi/playground/result-panel/ResponseTab.tsx +22 -17
- package/src/lib/plugins/openapi/playground/result-panel/ResultPanel.tsx +6 -0
- package/src/lib/ui/Dialog.tsx +2 -2
- package/src/lib/ui/EmbeddedCodeBlock.tsx +1 -1
- package/dist/flat-config.d.ts +0 -325
- package/lib/Dialog-DGlrUTCS.js.map +0 -1
- package/lib/OperationList-CLidyzBx.js.map +0 -1
- package/lib/index-BoBGmARR.js.map +0 -1
package/lib/ui/Command.js
CHANGED
|
@@ -2,7 +2,7 @@ import { j as o } from "../jsx-runtime-C5mzlN2N.js";
|
|
|
2
2
|
import { _ as t } from "../index-CrcNWbel.js";
|
|
3
3
|
import { Search as i } from "lucide-react";
|
|
4
4
|
import * as s from "react";
|
|
5
|
-
import { D as p, a as l } from "../Dialog-
|
|
5
|
+
import { D as p, a as l } from "../Dialog-CiIdyz6a.js";
|
|
6
6
|
import { c as r } from "../cn-wvCW-ho6.js";
|
|
7
7
|
const m = s.forwardRef(({ className: a, ...e }, d) => /* @__PURE__ */ o.jsx(
|
|
8
8
|
t,
|
package/lib/ui/Dialog.js
CHANGED
|
@@ -1,91 +1,91 @@
|
|
|
1
1
|
import { j as o } from "../jsx-runtime-C5mzlN2N.js";
|
|
2
|
-
import * as
|
|
2
|
+
import * as e from "@radix-ui/react-dialog";
|
|
3
3
|
import * as l from "react";
|
|
4
4
|
import { XIcon as c } from "lucide-react";
|
|
5
5
|
import { c as i } from "../cn-wvCW-ho6.js";
|
|
6
|
-
const j =
|
|
7
|
-
|
|
6
|
+
const j = e.Root, b = e.Trigger, m = e.Portal, h = e.Close, n = l.forwardRef(({ className: a, ...t }, s) => /* @__PURE__ */ o.jsx(
|
|
7
|
+
e.Overlay,
|
|
8
8
|
{
|
|
9
9
|
ref: s,
|
|
10
10
|
className: i(
|
|
11
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
|
-
|
|
12
|
+
a
|
|
13
13
|
),
|
|
14
14
|
...t
|
|
15
15
|
}
|
|
16
16
|
));
|
|
17
|
-
n.displayName =
|
|
18
|
-
const f = l.forwardRef(({ className:
|
|
17
|
+
n.displayName = e.Overlay.displayName;
|
|
18
|
+
const f = l.forwardRef(({ className: a, children: t, showCloseButton: s = !0, ...d }, r) => /* @__PURE__ */ o.jsxs(m, { children: [
|
|
19
19
|
/* @__PURE__ */ o.jsx(n, {}),
|
|
20
20
|
/* @__PURE__ */ o.jsxs(
|
|
21
|
-
|
|
21
|
+
e.Content,
|
|
22
22
|
{
|
|
23
23
|
ref: r,
|
|
24
24
|
className: i(
|
|
25
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
|
-
|
|
26
|
+
a
|
|
27
27
|
),
|
|
28
28
|
...d,
|
|
29
29
|
children: [
|
|
30
30
|
t,
|
|
31
|
-
s && /* @__PURE__ */ o.jsxs(
|
|
32
|
-
/* @__PURE__ */ o.jsx(c, { className: "h-
|
|
31
|
+
s && /* @__PURE__ */ o.jsxs(e.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__ */ o.jsx(c, { className: "h-3 w-3", strokeWidth: 2 }),
|
|
33
33
|
/* @__PURE__ */ o.jsx("span", { className: "sr-only", children: "Close" })
|
|
34
34
|
] })
|
|
35
35
|
]
|
|
36
36
|
}
|
|
37
37
|
)
|
|
38
38
|
] }));
|
|
39
|
-
f.displayName =
|
|
39
|
+
f.displayName = e.Content.displayName;
|
|
40
40
|
const p = ({
|
|
41
|
-
className:
|
|
41
|
+
className: a,
|
|
42
42
|
...t
|
|
43
43
|
}) => /* @__PURE__ */ o.jsx(
|
|
44
44
|
"div",
|
|
45
45
|
{
|
|
46
46
|
className: i(
|
|
47
47
|
"flex flex-col space-y-1.5 text-center sm:text-left",
|
|
48
|
-
|
|
48
|
+
a
|
|
49
49
|
),
|
|
50
50
|
...t
|
|
51
51
|
}
|
|
52
52
|
);
|
|
53
53
|
p.displayName = "DialogHeader";
|
|
54
54
|
const g = ({
|
|
55
|
-
className:
|
|
55
|
+
className: a,
|
|
56
56
|
...t
|
|
57
57
|
}) => /* @__PURE__ */ o.jsx(
|
|
58
58
|
"div",
|
|
59
59
|
{
|
|
60
60
|
className: i(
|
|
61
61
|
"flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",
|
|
62
|
-
|
|
62
|
+
a
|
|
63
63
|
),
|
|
64
64
|
...t
|
|
65
65
|
}
|
|
66
66
|
);
|
|
67
67
|
g.displayName = "DialogFooter";
|
|
68
|
-
const x = l.forwardRef(({ className:
|
|
69
|
-
|
|
68
|
+
const x = l.forwardRef(({ className: a, ...t }, s) => /* @__PURE__ */ o.jsx(
|
|
69
|
+
e.Title,
|
|
70
70
|
{
|
|
71
71
|
ref: s,
|
|
72
72
|
className: i(
|
|
73
73
|
"text-lg font-semibold leading-none tracking-tight",
|
|
74
|
-
|
|
74
|
+
a
|
|
75
75
|
),
|
|
76
76
|
...t
|
|
77
77
|
}
|
|
78
78
|
));
|
|
79
|
-
x.displayName =
|
|
80
|
-
const u = l.forwardRef(({ className:
|
|
81
|
-
|
|
79
|
+
x.displayName = e.Title.displayName;
|
|
80
|
+
const u = l.forwardRef(({ className: a, ...t }, s) => /* @__PURE__ */ o.jsx(
|
|
81
|
+
e.Description,
|
|
82
82
|
{
|
|
83
83
|
ref: s,
|
|
84
|
-
className: i("text-sm text-muted-foreground",
|
|
84
|
+
className: i("text-sm text-muted-foreground", a),
|
|
85
85
|
...t
|
|
86
86
|
}
|
|
87
87
|
));
|
|
88
|
-
u.displayName =
|
|
88
|
+
u.displayName = e.Description.displayName;
|
|
89
89
|
export {
|
|
90
90
|
j as Dialog,
|
|
91
91
|
h as DialogClose,
|
package/lib/ui/Dialog.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Dialog.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 -
|
|
1
|
+
{"version":3,"file":"Dialog.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,EAAM,GAAGC,MAC1BC,gBAAAA,EAAA;AAAA,EAACT,EAAgB;AAAA,EAAhB;AAAA,IACC,KAAAQ;AAAA,IACA,WAAWE;AAAA,MACT;AAAA,MACAJ;AAAA,IACF;AAAA,IACC,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,EAAS,GAAAC,6BAC3DN,GACC,EAAA,UAAA;AAAA,EAAAO,gBAAAA,EAAA,IAACL,GAAc,EAAA;AAAA,EACfU,gBAAAA,EAAA;AAAA,IAACd,EAAgB;AAAA,IAAhB;AAAA,MACC,KAAAQ;AAAA,MACA,WAAWE;AAAA,QACT;AAAA,QACAJ;AAAA,MACF;AAAA,MACC,GAAGC;AAAA,MAEH,UAAA;AAAA,QAAAK;AAAA,QACAC,KACEC,gBAAAA,EAAA,KAAAd,EAAgB,OAAhB,EAAsB,WAAU,kRAC/B,UAAA;AAAA,UAAAS,gBAAAA,EAAA,IAACM,GAAM,EAAA,WAAU,WAAU,aAAa,GAAG;AAAA,UAC1CN,gBAAAA,EAAA,IAAA,QAAA,EAAK,WAAU,WAAU,UAAK,QAAA,CAAA;AAAA,QAAA,EACjC,CAAA;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,EAAA;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,WAAWC;AAAA,MACT;AAAA,MACAJ;AAAA,IACF;AAAA,IACC,GAAGC;AAAA,EAAA;AACN;AAEFS,EAAa,cAAc;AAE3B,MAAMC,IAAe,CAAC;AAAA,EACpB,WAAAX;AAAA,EACA,GAAGC;AACL,MACEE,gBAAAA,EAAA;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,WAAWC;AAAA,MACT;AAAA,MACAJ;AAAA,IACF;AAAA,IACC,GAAGC;AAAA,EAAA;AACN;AAEFU,EAAa,cAAc;AAErB,MAAAC,IAAcb,EAAM,WAGxB,CAAC,EAAE,WAAAC,GAAW,GAAGC,EAAM,GAAGC,MAC1BC,gBAAAA,EAAA;AAAA,EAACT,EAAgB;AAAA,EAAhB;AAAA,IACC,KAAAQ;AAAA,IACA,WAAWE;AAAA,MACT;AAAA,MACAJ;AAAA,IACF;AAAA,IACC,GAAGC;AAAA,EAAA;AACN,CACD;AACDW,EAAY,cAAclB,EAAgB,MAAM;AAE1C,MAAAmB,IAAoBd,EAAM,WAG9B,CAAC,EAAE,WAAAC,GAAW,GAAGC,EAAM,GAAGC,MAC1BC,gBAAAA,EAAA;AAAA,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;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EmbeddedCodeBlock.js","sources":["../../src/lib/ui/EmbeddedCodeBlock.tsx"],"sourcesContent":["import { CheckIcon, CopyIcon } from \"lucide-react\";\nimport type { ReactNode } from \"react\";\nimport { useRef, useState } from \"react\";\nimport { cn } from \"../util/cn.js\";\n\nexport type CodeBlockProps = {\n className?: string;\n noBackground?: boolean;\n wrapLines?: boolean;\n showLanguageIndicator?: boolean;\n language?: string;\n children?: ReactNode;\n code?: ReactNode;\n showCopy?: \"hover\" | \"always\" | \"never\";\n showCopyText?: boolean;\n disabled?: boolean;\n showLineNumbers?: boolean;\n};\n\nexport const EmbeddedCodeBlock = ({\n children,\n language,\n showCopy = \"hover\",\n showCopyText,\n showLanguageIndicator = true,\n showLineNumbers,\n ...props\n}: CodeBlockProps) => {\n const [isCopied, setIsCopied] = useState(false);\n const ref = useRef<HTMLDivElement>(null);\n\n if (!children) return null;\n\n return (\n <div\n className={cn(\n \"code-block-wrapper relative group bg-muted/50
|
|
1
|
+
{"version":3,"file":"EmbeddedCodeBlock.js","sources":["../../src/lib/ui/EmbeddedCodeBlock.tsx"],"sourcesContent":["import { CheckIcon, CopyIcon } from \"lucide-react\";\nimport type { ReactNode } from \"react\";\nimport { useRef, useState } from \"react\";\nimport { cn } from \"../util/cn.js\";\n\nexport type CodeBlockProps = {\n className?: string;\n noBackground?: boolean;\n wrapLines?: boolean;\n showLanguageIndicator?: boolean;\n language?: string;\n children?: ReactNode;\n code?: ReactNode;\n showCopy?: \"hover\" | \"always\" | \"never\";\n showCopyText?: boolean;\n disabled?: boolean;\n showLineNumbers?: boolean;\n};\n\nexport const EmbeddedCodeBlock = ({\n children,\n language,\n showCopy = \"hover\",\n showCopyText,\n showLanguageIndicator = true,\n showLineNumbers,\n ...props\n}: CodeBlockProps) => {\n const [isCopied, setIsCopied] = useState(false);\n const ref = useRef<HTMLDivElement>(null);\n\n if (!children) return null;\n\n return (\n <div\n className={cn(\n \"code-block-wrapper relative group bg-muted/50\",\n showLineNumbers && \"line-numbers\",\n )}\n >\n <div\n className={cn(\n \"code-block text-sm not-prose scrollbar overflow-x-auto scrollbar p-4\",\n props.className,\n )}\n ref={ref}\n >\n {children}\n </div>\n {showLanguageIndicator && (\n <span\n className={cn(\n \"absolute top-1.5 end-3 !text-[11px] font-mono text-muted-foreground transition group-hover:opacity-0\",\n showCopy === \"always\" && \"hidden\",\n )}\n >\n {language}\n </span>\n )}\n {showCopy !== \"never\" && (\n <button\n type=\"button\"\n aria-label=\"Copy code\"\n title=\"Copy code\"\n className={cn(\n \"absolute top-2 end-2 p-2 transition hover:shadow-xs active:shadow-none active:inset-shadow-xs hover:outline outline-border rounded-md text-sm text-muted-foreground\",\n showCopy === \"hover\" && \"opacity-0 group-hover:opacity-100\",\n showCopyText && \"flex gap-2 items-center font-medium\",\n )}\n disabled={isCopied}\n onClick={() => {\n if (!ref.current?.textContent) return;\n\n setIsCopied(true);\n void navigator.clipboard.writeText(ref.current.textContent);\n setTimeout(() => setIsCopied(false), 2000);\n }}\n >\n {isCopied ? (\n <CheckIcon\n className=\"text-emerald-600\"\n size={16}\n strokeWidth={2.5}\n absoluteStrokeWidth\n />\n ) : (\n <CopyIcon size={16} />\n )}\n {showCopyText && \"Copy\"}\n </button>\n )}\n </div>\n );\n};\n"],"names":["EmbeddedCodeBlock","children","language","showCopy","showCopyText","showLanguageIndicator","showLineNumbers","props","isCopied","setIsCopied","useState","ref","useRef","jsxs","cn","jsx","CheckIcon","CopyIcon"],"mappings":";;;;AAmBO,MAAMA,IAAoB,CAAC;AAAA,EAChC,UAAAC;AAAA,EACA,UAAAC;AAAA,EACA,UAAAC,IAAW;AAAA,EACX,cAAAC;AAAA,EACA,uBAAAC,IAAwB;AAAA,EACxB,iBAAAC;AAAA,EACA,GAAGC;AACL,MAAsB;AACpB,QAAM,CAACC,GAAUC,CAAW,IAAIC,EAAS,EAAK,GACxCC,IAAMC,EAAuB,IAAI;AAEnC,SAACX,IAGHY,gBAAAA,EAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWC;AAAA,QACT;AAAA,QACAR,KAAmB;AAAA,MACrB;AAAA,MAEA,UAAA;AAAA,QAAAS,gBAAAA,EAAA;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,WAAWD;AAAA,cACT;AAAA,cACAP,EAAM;AAAA,YACR;AAAA,YACA,KAAAI;AAAA,YAEC,UAAAV;AAAA,UAAA;AAAA,QACH;AAAA,QACCI,KACCU,gBAAAA,EAAA;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,WAAWD;AAAA,cACT;AAAA,cACAX,MAAa,YAAY;AAAA,YAC3B;AAAA,YAEC,UAAAD;AAAA,UAAA;AAAA,QACH;AAAA,QAEDC,MAAa,WACZU,gBAAAA,EAAA;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,MAAK;AAAA,YACL,cAAW;AAAA,YACX,OAAM;AAAA,YACN,WAAWC;AAAA,cACT;AAAA,cACAX,MAAa,WAAW;AAAA,cACxBC,KAAgB;AAAA,YAClB;AAAA,YACA,UAAUI;AAAA,YACV,SAAS,MAAM;AACT,cAACG,EAAI,SAAS,gBAElBF,EAAY,EAAI,GACX,UAAU,UAAU,UAAUE,EAAI,QAAQ,WAAW,GAC1D,WAAW,MAAMF,EAAY,EAAK,GAAG,GAAI;AAAA,YAC3C;AAAA,YAEC,UAAA;AAAA,cACCD,IAAAO,gBAAAA,EAAA;AAAA,gBAACC;AAAA,gBAAA;AAAA,kBACC,WAAU;AAAA,kBACV,MAAM;AAAA,kBACN,aAAa;AAAA,kBACb,qBAAmB;AAAA,gBAAA;AAAA,cAGrB,IAAAD,gBAAAA,EAAA,IAACE,GAAS,EAAA,MAAM,GAAI,CAAA;AAAA,cAErBb,KAAgB;AAAA,YAAA;AAAA,UAAA;AAAA,QAAA;AAAA,MACnB;AAAA,IAAA;AAAA,EAEJ,IA5DoB;AA8DxB;"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { j as yo } from "./jsx-runtime-C5mzlN2N.js";
|
|
2
2
|
import { C as aa } from "./ClientOnly-E7hGysn1.js";
|
|
3
3
|
import { j as sa, u as To } from "./hook-Bd0yS8M0.js";
|
|
4
|
-
import { C as ca, A as qt, a as la } from "./errors-
|
|
4
|
+
import { C as ca, A as qt, a as la } from "./errors-C473PjdR.js";
|
|
5
5
|
/*! @azure/msal-common v15.7.0 2025-05-30 */
|
|
6
6
|
const d = {
|
|
7
7
|
LIBRARY_NAME: "MSAL.JS",
|
package/lib/zudoku.auth-clerk.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { j as l } from "./jsx-runtime-C5mzlN2N.js";
|
|
2
2
|
import { LogOutIcon as g } from "lucide-react";
|
|
3
|
-
import { S as f, a as w, b as p } from "./SignUp-
|
|
3
|
+
import { S as f, a as w, b as p } from "./SignUp-M9Jz4SXJ.js";
|
|
4
4
|
import { u as n } from "./hook-Bd0yS8M0.js";
|
|
5
5
|
const y = ({
|
|
6
6
|
clerkPubKey: d,
|
|
@@ -2,7 +2,7 @@ import { j as ne } from "./jsx-runtime-C5mzlN2N.js";
|
|
|
2
2
|
import { g as Le } from "./invariant-DAFpPywt.js";
|
|
3
3
|
import { C as Ue } from "./ClientOnly-E7hGysn1.js";
|
|
4
4
|
import { j as xe, u as S } from "./hook-Bd0yS8M0.js";
|
|
5
|
-
import { C as Ce, O as re, A as R, a as Ie } from "./errors-
|
|
5
|
+
import { C as Ce, O as re, A as R, a as Ie } from "./errors-C473PjdR.js";
|
|
6
6
|
var O = { exports: {} }, je = O.exports, oe;
|
|
7
7
|
function De() {
|
|
8
8
|
return oe || (oe = 1, function(t) {
|
package/lib/zudoku.components.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import "./RouteGuard-
|
|
1
|
+
import "./RouteGuard-CbKd7_9h.js";
|
|
2
2
|
import "./index-ClhS5TxS.js";
|
|
3
3
|
import "./chunk-DQRVZFIR-DHK7_Ilc.js";
|
|
4
4
|
import "./hook-Bd0yS8M0.js";
|
|
5
5
|
import "./Slot-DwZlQ-vX.js";
|
|
6
|
-
import { e as C, f as d, j as h, B as k, m as l, C as S, i as B, H as c, c as y, L as E, M as g, g as H, R as L, d as M, S as R, h as T, T as Z, Z as f, b as A, l as b, k as j, n as v, u as w } from "./index-
|
|
6
|
+
import { e as C, f as d, j as h, B as k, m as l, C as S, i as B, H as c, c as y, L as E, M as g, g as H, R as L, d as M, S as R, h as T, T as Z, Z as f, b as A, l as b, k as j, n as v, u as w } from "./index-Chtnw-sn.js";
|
|
7
7
|
import "./ui/Button.js";
|
|
8
8
|
import "./ui/Callout.js";
|
|
9
9
|
import "./ClientOnly-E7hGysn1.js";
|
|
@@ -2,8 +2,8 @@ import { j as t } from "./jsx-runtime-C5mzlN2N.js";
|
|
|
2
2
|
import { s as f } from "./index-CcV90rin.js";
|
|
3
3
|
import { d as b, m as j } from "./chunk-DQRVZFIR-DHK7_Ilc.js";
|
|
4
4
|
import { u as x, c as v, j as d } from "./hook-Bd0yS8M0.js";
|
|
5
|
-
import { H as y } from "./RouteGuard-
|
|
6
|
-
import { L as N } from "./index-
|
|
5
|
+
import { H as y } from "./RouteGuard-CbKd7_9h.js";
|
|
6
|
+
import { L as N } from "./index-Chtnw-sn.js";
|
|
7
7
|
import { H as k, M as S } from "./Slot-DwZlQ-vX.js";
|
|
8
8
|
const w = ({
|
|
9
9
|
items: n,
|
|
@@ -9,7 +9,7 @@ import { u as z, A as T, a as M } from "./Alert-CT_ViLrJ.js";
|
|
|
9
9
|
import * as q from "react";
|
|
10
10
|
import ye, { createContext as L, useLayoutEffect as ge, useEffect as je, useRef as k, useId as H, useContext as B, useInsertionEffect as Ce, useCallback as ve, useMemo as S, Children as we, isValidElement as ke, useState as b } from "react";
|
|
11
11
|
import { C as be, a as Ee } from "./Card-DPhGbYUM.js";
|
|
12
|
-
import { D as J, e as U, a as V, c as Y, b as G, d as Z, f as W, g as K } from "./Dialog-
|
|
12
|
+
import { D as J, e as U, a as V, c as Y, b as G, d as Z, f as W, g as K } from "./Dialog-CiIdyz6a.js";
|
|
13
13
|
import { Input as Ne } from "./ui/Input.js";
|
|
14
14
|
import { c as P } from "./cn-wvCW-ho6.js";
|
|
15
15
|
import { u as De } from "./CodeBlock-DAKxs_Tu.js";
|
|
@@ -4,7 +4,7 @@ const m = (t) => ({
|
|
|
4
4
|
([e, n]) => ({
|
|
5
5
|
path: e,
|
|
6
6
|
lazy: async () => {
|
|
7
|
-
const { MdxPage: o } = await import("./MdxPage-
|
|
7
|
+
const { MdxPage: o } = await import("./MdxPage-Glqk-5sb.js"), { default: a, ...r } = await n();
|
|
8
8
|
return {
|
|
9
9
|
element: /* @__PURE__ */ s.jsx(
|
|
10
10
|
o,
|
|
@@ -3,7 +3,7 @@ import "lucide-react";
|
|
|
3
3
|
import "./chunk-DQRVZFIR-DHK7_Ilc.js";
|
|
4
4
|
import "./hook-Bd0yS8M0.js";
|
|
5
5
|
import "./ui/Button.js";
|
|
6
|
-
import { E as e, U as n, F as s } from "./index-
|
|
6
|
+
import { E as e, U as n, F as s } from "./index-BLRAtPoq.js";
|
|
7
7
|
export {
|
|
8
8
|
e as GetNavigationOperationsQuery,
|
|
9
9
|
n as UNTAGGED_PATH,
|
|
@@ -6,9 +6,9 @@ import { useRef as C, useLayoutEffect as T, useState as E } from "react";
|
|
|
6
6
|
import { B as R } from "./Button-BE9IVkWV.js";
|
|
7
7
|
import { ShieldAlertIcon as F, AlertTriangleIcon as q, InfoIcon as b, LightbulbIcon as z, BracketsIcon as A, FileTextIcon as P } from "lucide-react";
|
|
8
8
|
import { c as u } from "./cn-wvCW-ho6.js";
|
|
9
|
-
import { C as $, a as f, b as h, c as D, d as O, e as B } from "./Command-
|
|
10
|
-
import { b as U } from "./Dialog-
|
|
11
|
-
import { S as G } from "./RouteGuard-
|
|
9
|
+
import { C as $, a as f, b as h, c as D, d as O, e as B } from "./Command-xsbs2uhf.js";
|
|
10
|
+
import { b as U } from "./Dialog-CiIdyz6a.js";
|
|
11
|
+
import { S as G } from "./RouteGuard-CbKd7_9h.js";
|
|
12
12
|
import { a as H, L as p } from "./chunk-DQRVZFIR-DHK7_Ilc.js";
|
|
13
13
|
const K = {
|
|
14
14
|
note: {
|
package/package.json
CHANGED
|
@@ -11,19 +11,18 @@ import {
|
|
|
11
11
|
import ExamplesDropdown from "./ExamplesDropdown.js";
|
|
12
12
|
import { type PlaygroundForm } from "./Playground.js";
|
|
13
13
|
|
|
14
|
-
export const BodyPanel = ({
|
|
14
|
+
export const BodyPanel = ({ content }: { content?: Content }) => {
|
|
15
15
|
const { register, setValue, watch } = useFormContext<PlaygroundForm>();
|
|
16
|
-
|
|
16
|
+
const examples = (content ?? []).flatMap((e) => e.examples);
|
|
17
17
|
const headers = watch("headers");
|
|
18
|
-
|
|
19
18
|
return (
|
|
20
19
|
<Collapsible defaultOpen>
|
|
21
20
|
<CollapsibleHeaderTrigger>
|
|
22
21
|
<FileInput size={16} />
|
|
23
22
|
<CollapsibleHeader>Body</CollapsibleHeader>
|
|
24
|
-
{
|
|
23
|
+
{content && examples.length > 0 ? (
|
|
25
24
|
<ExamplesDropdown
|
|
26
|
-
examples={
|
|
25
|
+
examples={content}
|
|
27
26
|
onSelect={(example, mediaType) => {
|
|
28
27
|
setValue("body", JSON.stringify(example.value, null, 2));
|
|
29
28
|
setValue("headers", [
|
|
@@ -36,6 +35,8 @@ export const BodyPanel = ({ examples }: { examples?: Content }) => {
|
|
|
36
35
|
]);
|
|
37
36
|
}}
|
|
38
37
|
/>
|
|
38
|
+
) : (
|
|
39
|
+
<div />
|
|
39
40
|
)}
|
|
40
41
|
</CollapsibleHeaderTrigger>
|
|
41
42
|
<CollapsibleContent className="flex flex-col gap-2 ">
|
|
@@ -142,7 +142,7 @@ export const Headers = ({
|
|
|
142
142
|
<TooltipTrigger asChild>
|
|
143
143
|
<ParamsGridItem
|
|
144
144
|
key={field.id}
|
|
145
|
-
className="opacity-50 cursor-not-allowed font-mono text-xs"
|
|
145
|
+
className="opacity-50 cursor-not-allowed font-mono text-xs min-h-10"
|
|
146
146
|
>
|
|
147
147
|
<LockIcon size={16} />
|
|
148
148
|
<Input
|
|
@@ -397,101 +397,88 @@ export const Playground = ({
|
|
|
397
397
|
/>
|
|
398
398
|
|
|
399
399
|
<div className="grid grid-cols-[1fr_1px_1fr] text-sm">
|
|
400
|
-
<div className="col-span-3 p-4 border-b">
|
|
401
|
-
<div className="flex
|
|
402
|
-
<div className="
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
<div className="
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
<UrlQueryParams />
|
|
411
|
-
</div>
|
|
412
|
-
<div
|
|
413
|
-
className="h-full bg-primary/25 absolute left-0 -bottom-0 z-10 transition-all duration-300 ease-in-out"
|
|
414
|
-
style={{
|
|
415
|
-
opacity: isFinished ? 0 : 1,
|
|
416
|
-
width: isFinished ? 0 : `${progress * 100}%`,
|
|
417
|
-
}}
|
|
418
|
-
/>
|
|
419
|
-
</div>
|
|
420
|
-
<div className="px-1">
|
|
421
|
-
<Button
|
|
422
|
-
type="button"
|
|
423
|
-
onClick={() => {
|
|
424
|
-
copyToClipboard(
|
|
425
|
-
createUrl(
|
|
426
|
-
server ?? selectedServer,
|
|
427
|
-
url,
|
|
428
|
-
form.getValues(),
|
|
429
|
-
).toString(),
|
|
430
|
-
);
|
|
431
|
-
}}
|
|
432
|
-
variant="ghost"
|
|
433
|
-
size="icon-xs"
|
|
434
|
-
className={cn(
|
|
435
|
-
"hover:opacity-100 transition",
|
|
436
|
-
isCopied
|
|
437
|
-
? "text-emerald-600 opacity-100"
|
|
438
|
-
: "opacity-50",
|
|
439
|
-
)}
|
|
440
|
-
>
|
|
441
|
-
{isCopied ? (
|
|
442
|
-
<CheckIcon className="text-green-500" size={14} />
|
|
443
|
-
) : (
|
|
444
|
-
<CopyIcon size={14} />
|
|
445
|
-
)}
|
|
446
|
-
</Button>
|
|
400
|
+
<div className="col-span-3 p-4 border-b flex gap-2 items-stretch">
|
|
401
|
+
<div className="flex flex-1 items-center w-full border rounded-md relative overflow-hidden">
|
|
402
|
+
<div className="border-r p-2 bg-muted rounded-l-md self-stretch font-semibold font-mono flex items-center">
|
|
403
|
+
{method.toUpperCase()}
|
|
404
|
+
</div>
|
|
405
|
+
<div className="items-center px-2 font-mono text-xs break-all leading-6 relative h-full w-full">
|
|
406
|
+
<div className="h-full py-1.5">
|
|
407
|
+
{serverSelect}
|
|
408
|
+
<UrlPath url={url} />
|
|
409
|
+
<UrlQueryParams />
|
|
447
410
|
</div>
|
|
448
411
|
</div>
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
412
|
+
<div className="px-1">
|
|
413
|
+
<Button
|
|
414
|
+
type="button"
|
|
415
|
+
onClick={() => {
|
|
416
|
+
copyToClipboard(
|
|
417
|
+
createUrl(
|
|
418
|
+
server ?? selectedServer,
|
|
419
|
+
url,
|
|
420
|
+
form.getValues(),
|
|
421
|
+
).toString(),
|
|
457
422
|
);
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
423
|
+
}}
|
|
424
|
+
variant="ghost"
|
|
425
|
+
size="icon-xs"
|
|
426
|
+
className={cn(
|
|
427
|
+
"hover:opacity-100 transition",
|
|
428
|
+
isCopied ? "text-emerald-600 opacity-100" : "opacity-50",
|
|
429
|
+
)}
|
|
430
|
+
>
|
|
431
|
+
{isCopied ? (
|
|
432
|
+
<CheckIcon className="text-green-500" size={14} />
|
|
433
|
+
) : (
|
|
434
|
+
<CopyIcon size={14} />
|
|
435
|
+
)}
|
|
436
|
+
</Button>
|
|
437
|
+
</div>
|
|
465
438
|
</div>
|
|
439
|
+
|
|
440
|
+
<Button
|
|
441
|
+
type="submit"
|
|
442
|
+
variant={queryMutation.isPending ? "destructive" : "default"}
|
|
443
|
+
onClick={(e) => {
|
|
444
|
+
if (queryMutation.isPending) {
|
|
445
|
+
abortControllerRef.current?.abort(
|
|
446
|
+
"Request cancelled by user",
|
|
447
|
+
);
|
|
448
|
+
e.preventDefault();
|
|
449
|
+
}
|
|
450
|
+
}}
|
|
451
|
+
className="w-18"
|
|
452
|
+
>
|
|
453
|
+
{queryMutation.isPending ? "Cancel" : "Send"}
|
|
454
|
+
</Button>
|
|
466
455
|
</div>
|
|
467
456
|
<div className="relative overflow-y-auto h-[80vh]">
|
|
468
457
|
{identities.data?.length !== 0 && (
|
|
469
|
-
<
|
|
470
|
-
<
|
|
471
|
-
<
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
</CollapsibleContent>
|
|
485
|
-
</Collapsible>
|
|
486
|
-
</div>
|
|
487
|
-
</div>
|
|
458
|
+
<Collapsible defaultOpen>
|
|
459
|
+
<CollapsibleHeaderTrigger>
|
|
460
|
+
<IdCardLanyardIcon size={16} />
|
|
461
|
+
<CollapsibleHeader className="col-span-2">
|
|
462
|
+
Authentication
|
|
463
|
+
</CollapsibleHeader>
|
|
464
|
+
</CollapsibleHeaderTrigger>
|
|
465
|
+
<CollapsibleContent className="CollapsibleContent">
|
|
466
|
+
<IdentitySelector
|
|
467
|
+
value={identity}
|
|
468
|
+
identities={identities.data ?? []}
|
|
469
|
+
setValue={(value) => setValue("identity", value)}
|
|
470
|
+
/>
|
|
471
|
+
</CollapsibleContent>
|
|
472
|
+
</Collapsible>
|
|
488
473
|
)}
|
|
489
474
|
|
|
490
475
|
{pathParams.length > 0 && (
|
|
491
476
|
<Collapsible defaultOpen>
|
|
492
|
-
<CollapsibleHeaderTrigger
|
|
477
|
+
<CollapsibleHeaderTrigger>
|
|
493
478
|
<ShapesIcon size={16} />
|
|
494
|
-
<CollapsibleHeader
|
|
479
|
+
<CollapsibleHeader className="col-span-2">
|
|
480
|
+
Path Parameters
|
|
481
|
+
</CollapsibleHeader>
|
|
495
482
|
</CollapsibleHeaderTrigger>
|
|
496
483
|
<CollapsibleContent className="CollapsibleContent">
|
|
497
484
|
<PathParams url={url} control={control} />
|
|
@@ -506,12 +493,14 @@ export const Playground = ({
|
|
|
506
493
|
schemaHeaders={headers}
|
|
507
494
|
lockedHeaders={authorizationFields?.headers}
|
|
508
495
|
/>
|
|
509
|
-
{isBodySupported && <BodyPanel
|
|
496
|
+
{isBodySupported && <BodyPanel content={examples} />}
|
|
510
497
|
</div>
|
|
511
498
|
<div className="w-full bg-muted-foreground/20" />
|
|
512
499
|
<ResultPanel
|
|
513
500
|
queryMutation={queryMutation}
|
|
514
501
|
showLongRunningWarning={showLongRunningWarning}
|
|
502
|
+
isFinished={isFinished}
|
|
503
|
+
progress={progress}
|
|
515
504
|
tip={
|
|
516
505
|
<div className="text-xs w-full">
|
|
517
506
|
<span className="text-muted-foreground">
|
|
@@ -90,6 +90,7 @@ export const QueryParams = ({
|
|
|
90
90
|
render={({ field }) =>
|
|
91
91
|
!requiredFields[i] ? (
|
|
92
92
|
<Autocomplete
|
|
93
|
+
placeholder="Name"
|
|
93
94
|
value={field.value}
|
|
94
95
|
options={schemaQueryParams.map((param) => param.name)}
|
|
95
96
|
onChange={(e) => {
|
|
@@ -131,7 +132,8 @@ export const QueryParams = ({
|
|
|
131
132
|
setValue(`queryParams.${i}.active`, true);
|
|
132
133
|
}
|
|
133
134
|
}}
|
|
134
|
-
placeholder="
|
|
135
|
+
placeholder="Value"
|
|
136
|
+
aria-label="Query parameter value"
|
|
135
137
|
className="w-full border-0 p-0 m-0 shadow-none focus-visible:ring-0 text-xs font-mono"
|
|
136
138
|
/>
|
|
137
139
|
);
|
|
@@ -59,10 +59,14 @@ export const ResponseStatusBar = ({
|
|
|
59
59
|
status,
|
|
60
60
|
time,
|
|
61
61
|
size,
|
|
62
|
+
isFinished,
|
|
63
|
+
progress,
|
|
62
64
|
}: {
|
|
63
65
|
status?: number;
|
|
64
66
|
time?: number;
|
|
65
67
|
size?: number;
|
|
68
|
+
isFinished: boolean;
|
|
69
|
+
progress: number;
|
|
66
70
|
}) => {
|
|
67
71
|
const statusCodeMap: Record<number, string> = {
|
|
68
72
|
200: "OK",
|
|
@@ -78,7 +82,7 @@ export const ResponseStatusBar = ({
|
|
|
78
82
|
};
|
|
79
83
|
|
|
80
84
|
return (
|
|
81
|
-
<div className="flex h-10 text-xs gap-4 px-4 items-center justify-between font-mono border-b">
|
|
85
|
+
<div className="relative flex h-10 text-xs gap-4 px-4 items-center justify-between font-mono border-b">
|
|
82
86
|
<div className="flex items-center gap-2">
|
|
83
87
|
<ResponseCodeCircle status={status} /> {status ?? "Sending Request..."}
|
|
84
88
|
{status ? ` ${statusCodeMap[status]}` : ""}
|
|
@@ -86,7 +90,7 @@ export const ResponseStatusBar = ({
|
|
|
86
90
|
<div className="flex gap-2">
|
|
87
91
|
<div>
|
|
88
92
|
<span className="text-muted-foreground">Size</span>{" "}
|
|
89
|
-
<span className="inline-block text-end w-[5ch]">
|
|
93
|
+
<span className="inline-block text-end min-w-[5ch]">
|
|
90
94
|
{size ? humanFileSize(size) : "- B"}
|
|
91
95
|
</span>
|
|
92
96
|
</div>
|
|
@@ -97,6 +101,13 @@ export const ResponseStatusBar = ({
|
|
|
97
101
|
ms
|
|
98
102
|
</div>
|
|
99
103
|
</div>
|
|
104
|
+
<div
|
|
105
|
+
className="h-full bg-neutral-500/10 absolute left-0 -bottom-0 z-10 transition-all duration-200 ease-in-out"
|
|
106
|
+
style={{
|
|
107
|
+
opacity: isFinished ? 0 : 1,
|
|
108
|
+
width: isFinished ? 0 : `${progress * 100}%`,
|
|
109
|
+
}}
|
|
110
|
+
/>
|
|
100
111
|
</div>
|
|
101
112
|
);
|
|
102
113
|
};
|