zudoku 0.52.1 → 0.53.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/demo.js +2 -2
- package/dist/app/demo.js.map +1 -1
- package/dist/app/main.js +4 -4
- package/dist/app/standalone.js +3 -3
- package/dist/app/standalone.js.map +1 -1
- package/dist/config/validators/validate.d.ts +2 -2
- package/dist/config/validators/validate.js +3 -3
- package/dist/config/validators/validate.js.map +1 -1
- package/dist/flat-config.d.ts +325 -0
- package/dist/lib/components/Autocomplete.js +1 -1
- package/dist/lib/components/Autocomplete.js.map +1 -1
- package/dist/lib/components/Banner.js +1 -1
- package/dist/lib/components/Banner.js.map +1 -1
- package/dist/lib/components/Footer.js +1 -1
- package/dist/lib/components/Footer.js.map +1 -1
- package/dist/lib/components/Header.js +10 -10
- package/dist/lib/components/Header.js.map +1 -1
- package/dist/lib/components/Main.js +1 -1
- package/dist/lib/components/MobileTopNavigation.js +1 -1
- package/dist/lib/components/navigation/NavigationWrapper.js +1 -1
- package/dist/lib/core/ZudokuContext.d.ts +4 -4
- package/dist/lib/core/ZudokuContext.js +2 -2
- 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/vite/build.js +1 -1
- package/dist/vite/dev-server.js +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-swXPJ0gf.js} +3 -3
- package/lib/{MdxPage-D-QSUlMf.js.map → MdxPage-swXPJ0gf.js.map} +1 -1
- package/lib/{OasProvider-DKB2uJU-.js → OasProvider-CDAM3TB1.js} +2 -2
- package/lib/{OasProvider-DKB2uJU-.js.map → OasProvider-CDAM3TB1.js.map} +1 -1
- package/lib/{OperationList-CccIt45w.js → OperationList-C9Hb9ql8.js} +6 -6
- package/lib/{OperationList-CccIt45w.js.map → OperationList-C9Hb9ql8.js.map} +1 -1
- package/lib/{Pagination-ClHXydm9.js → Pagination-VGlgeCmS.js} +2 -2
- package/lib/{Pagination-ClHXydm9.js.map → Pagination-VGlgeCmS.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-DY3FBF2U.js → SchemaList-BAbh1BXO.js} +4 -4
- package/lib/{SchemaList-DY3FBF2U.js.map → SchemaList-BAbh1BXO.js.map} +1 -1
- package/lib/{SchemaView-matL2maR.js → SchemaView-C2Io712T.js} +3 -3
- package/lib/{SchemaView-matL2maR.js.map → SchemaView-C2Io712T.js.map} +1 -1
- package/lib/{SignUp-CfojO4Pb.js → SignUp-5RUdVhnq.js} +2 -2
- package/lib/{SignUp-CfojO4Pb.js.map → SignUp-5RUdVhnq.js.map} +1 -1
- package/lib/{circular-CqHpo7-e.js → circular-B42RaanD.js} +2 -2
- package/lib/{circular-CqHpo7-e.js.map → circular-B42RaanD.js.map} +1 -1
- package/lib/{createServer-ByKo3XCG.js → createServer-BKFsRuuk.js} +3 -3
- package/lib/{createServer-ByKo3XCG.js.map → createServer-BKFsRuuk.js.map} +1 -1
- package/lib/{errors-BsabiSKg.js → errors-CF2X_x5o.js} +3 -3
- package/lib/{errors-BsabiSKg.js.map → errors-CF2X_x5o.js.map} +1 -1
- package/lib/{index-CEfpz8vY.js → index-B6Re5_cx.js} +843 -832
- package/lib/index-B6Re5_cx.js.map +1 -0
- package/lib/{index-BIbCx5Fh.js → index-CLy1XyH0.js} +14 -14
- package/lib/{index-BIbCx5Fh.js.map → index-CLy1XyH0.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/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/app/demo.tsx +2 -2
- package/src/app/main.tsx +4 -4
- package/src/app/standalone.tsx +3 -3
- package/src/lib/components/Autocomplete.tsx +1 -1
- package/src/lib/components/Banner.tsx +1 -1
- package/src/lib/components/Footer.tsx +1 -1
- package/src/lib/components/Header.tsx +15 -17
- package/src/lib/components/Main.tsx +1 -1
- package/src/lib/components/MobileTopNavigation.tsx +2 -2
- package/src/lib/components/navigation/NavigationWrapper.tsx +1 -1
- package/src/lib/core/ZudokuContext.ts +5 -5
- 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/lib/Dialog-DGlrUTCS.js.map +0 -1
- package/lib/index-CEfpz8vY.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,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-CF2X_x5o.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-5RUdVhnq.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-CF2X_x5o.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-CLy1XyH0.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-CLy1XyH0.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-swXPJ0gf.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-B6Re5_cx.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
package/src/app/demo.tsx
CHANGED
package/src/app/main.tsx
CHANGED
|
@@ -36,12 +36,12 @@ export const convertZudokuConfigToOptions = (
|
|
|
36
36
|
basePath: config.basePath,
|
|
37
37
|
canonicalUrlOrigin: config.canonicalUrlOrigin,
|
|
38
38
|
protectedRoutes: config.protectedRoutes,
|
|
39
|
-
|
|
40
|
-
...config.
|
|
39
|
+
site: {
|
|
40
|
+
...config.site,
|
|
41
41
|
showPoweredBy:
|
|
42
42
|
ZuploEnv.buildConfig?.entitlements.devPortalZuploBranding ??
|
|
43
|
-
config.
|
|
44
|
-
logo: config.
|
|
43
|
+
config.site?.showPoweredBy,
|
|
44
|
+
logo: config.site?.logo,
|
|
45
45
|
},
|
|
46
46
|
slots: config.slots,
|
|
47
47
|
metadata: {
|
package/src/app/standalone.tsx
CHANGED
|
@@ -13,14 +13,14 @@ if (!root) {
|
|
|
13
13
|
}
|
|
14
14
|
|
|
15
15
|
const apiUrl = root.getAttribute("data-api-url");
|
|
16
|
-
const
|
|
16
|
+
const title = document.getElementsByTagName("title")[0]!.innerText;
|
|
17
17
|
const logoUrl = root.getAttribute("data-logo-url");
|
|
18
18
|
|
|
19
19
|
// IMPORTANT: This component must not contain tailwind classes
|
|
20
20
|
// This directory is not processed by the tailwind plugin
|
|
21
21
|
|
|
22
22
|
const config = {
|
|
23
|
-
|
|
23
|
+
site: {
|
|
24
24
|
logo: logoUrl
|
|
25
25
|
? {
|
|
26
26
|
src: {
|
|
@@ -29,7 +29,7 @@ const config = {
|
|
|
29
29
|
},
|
|
30
30
|
}
|
|
31
31
|
: undefined,
|
|
32
|
-
|
|
32
|
+
title,
|
|
33
33
|
},
|
|
34
34
|
navigation: [
|
|
35
35
|
{
|
|
@@ -60,22 +60,22 @@ export const Header = memo(function HeaderInner() {
|
|
|
60
60
|
const auth = useAuth();
|
|
61
61
|
const { isAuthenticated, profile, isAuthEnabled } = useAuth();
|
|
62
62
|
const context = useZudoku();
|
|
63
|
-
const {
|
|
63
|
+
const { site, plugins, options } = context;
|
|
64
64
|
|
|
65
65
|
const accountItems = plugins
|
|
66
66
|
.filter((p) => isProfileMenuPlugin(p))
|
|
67
67
|
.flatMap((p) => p.getProfileMenuItems(context))
|
|
68
68
|
.sort((i) => i.weight ?? 0);
|
|
69
69
|
|
|
70
|
-
const logoLightSrc =
|
|
71
|
-
? /https?:\/\//.test(
|
|
72
|
-
?
|
|
73
|
-
: joinUrl(options.basePath,
|
|
70
|
+
const logoLightSrc = site?.logo
|
|
71
|
+
? /https?:\/\//.test(site.logo.src.light)
|
|
72
|
+
? site.logo.src.light
|
|
73
|
+
: joinUrl(options.basePath, site.logo.src.light)
|
|
74
74
|
: undefined;
|
|
75
|
-
const logoDarkSrc =
|
|
76
|
-
? /https?:\/\//.test(
|
|
77
|
-
?
|
|
78
|
-
: joinUrl(options.basePath,
|
|
75
|
+
const logoDarkSrc = site?.logo
|
|
76
|
+
? /https?:\/\//.test(site.logo.src.dark)
|
|
77
|
+
? site.logo.src.dark
|
|
78
|
+
: joinUrl(options.basePath, site.logo.src.dark)
|
|
79
79
|
: undefined;
|
|
80
80
|
|
|
81
81
|
const borderBottom = "inset-shadow-[0_-1px_0_0_var(--border)]";
|
|
@@ -89,27 +89,25 @@ export const Header = memo(function HeaderInner() {
|
|
|
89
89
|
<div className="flex">
|
|
90
90
|
<Link to="/">
|
|
91
91
|
<div className="flex items-center gap-3.5">
|
|
92
|
-
{
|
|
92
|
+
{site?.logo && (
|
|
93
93
|
<>
|
|
94
94
|
<img
|
|
95
95
|
src={logoLightSrc}
|
|
96
|
-
alt={
|
|
97
|
-
style={{ width:
|
|
96
|
+
alt={site.logo.alt ?? site.title}
|
|
97
|
+
style={{ width: site.logo.width }}
|
|
98
98
|
className="max-h-(--top-header-height) dark:hidden"
|
|
99
99
|
loading="lazy"
|
|
100
100
|
/>
|
|
101
101
|
<img
|
|
102
102
|
src={logoDarkSrc}
|
|
103
|
-
alt={
|
|
104
|
-
style={{ width:
|
|
103
|
+
alt={site.logo.alt ?? site.title}
|
|
104
|
+
style={{ width: site.logo.width }}
|
|
105
105
|
className="max-h-(--top-header-height) hidden dark:block"
|
|
106
106
|
loading="lazy"
|
|
107
107
|
/>
|
|
108
108
|
</>
|
|
109
109
|
)}
|
|
110
|
-
<span className="font-semibold text-2xl">
|
|
111
|
-
{page?.pageTitle}
|
|
112
|
-
</span>
|
|
110
|
+
<span className="font-semibold text-2xl">{site?.title}</span>
|
|
113
111
|
</div>
|
|
114
112
|
</Link>
|
|
115
113
|
</div>
|
|
@@ -16,7 +16,7 @@ export const Main = ({ children }: PropsWithChildren) => {
|
|
|
16
16
|
|
|
17
17
|
return (
|
|
18
18
|
<Drawer
|
|
19
|
-
direction={options.
|
|
19
|
+
direction={options.site?.dir === "rtl" ? "right" : "left"}
|
|
20
20
|
open={isDrawerOpen}
|
|
21
21
|
onOpenChange={(open) => setDrawerOpen(open)}
|
|
22
22
|
>
|
|
@@ -26,7 +26,7 @@ export const MobileTopNavigation = () => {
|
|
|
26
26
|
|
|
27
27
|
return (
|
|
28
28
|
<Drawer
|
|
29
|
-
direction={options.
|
|
29
|
+
direction={options.site?.dir === "rtl" ? "left" : "right"}
|
|
30
30
|
open={drawerOpen}
|
|
31
31
|
onOpenChange={(open) => setDrawerOpen(open)}
|
|
32
32
|
>
|
|
@@ -62,7 +62,7 @@ export const MobileTopNavigation = () => {
|
|
|
62
62
|
))}
|
|
63
63
|
</ul>
|
|
64
64
|
</div>
|
|
65
|
-
{options.
|
|
65
|
+
{options.site?.showPoweredBy !== false && (
|
|
66
66
|
<PoweredByZudoku className="grow-0 justify-center gap-1" />
|
|
67
67
|
)}
|
|
68
68
|
</div>
|
|
@@ -37,7 +37,7 @@ export const NavigationWrapper = ({
|
|
|
37
37
|
</nav>
|
|
38
38
|
|
|
39
39
|
<div className="bg-background border-t p-2 mx-5 gap-2 items-center mt-2 drop-shadow-[0_-3px_1px_rgba(0,0,0,0.015)] hidden lg:[&:has(>_:nth-child(1):last-child)]:flex">
|
|
40
|
-
{options.
|
|
40
|
+
{options.site?.showPoweredBy !== false && <PoweredByZudoku />}
|
|
41
41
|
</div>
|
|
42
42
|
</div>
|
|
43
43
|
);
|
|
@@ -54,10 +54,10 @@ type Metadata = Partial<{
|
|
|
54
54
|
publisher: string;
|
|
55
55
|
}>;
|
|
56
56
|
|
|
57
|
-
type
|
|
57
|
+
type Site = Partial<{
|
|
58
58
|
dir?: "ltr" | "rtl";
|
|
59
59
|
showPoweredBy?: boolean;
|
|
60
|
-
|
|
60
|
+
title?: string;
|
|
61
61
|
logo?: {
|
|
62
62
|
src: {
|
|
63
63
|
light: string;
|
|
@@ -78,7 +78,7 @@ export type ZudokuContextOptions = {
|
|
|
78
78
|
basePath?: string;
|
|
79
79
|
canonicalUrlOrigin?: string;
|
|
80
80
|
metadata?: Metadata;
|
|
81
|
-
|
|
81
|
+
site?: Site;
|
|
82
82
|
authentication?: AuthenticationPlugin;
|
|
83
83
|
navigation?: Navigation;
|
|
84
84
|
plugins?: ZudokuPlugin[];
|
|
@@ -102,7 +102,7 @@ export class ZudokuContext {
|
|
|
102
102
|
public plugins: NonNullable<ZudokuContextOptions["plugins"]>;
|
|
103
103
|
public navigation: Navigation;
|
|
104
104
|
public meta: ZudokuContextOptions["metadata"];
|
|
105
|
-
public
|
|
105
|
+
public site: ZudokuContextOptions["site"];
|
|
106
106
|
public readonly authentication?: ZudokuContextOptions["authentication"];
|
|
107
107
|
public readonly queryClient: QueryClient;
|
|
108
108
|
public readonly options: ZudokuContextOptions;
|
|
@@ -123,7 +123,7 @@ export class ZudokuContext {
|
|
|
123
123
|
this.navigationPlugins = this.plugins.filter(isNavigationPlugin);
|
|
124
124
|
this.authentication = this.plugins.find(isAuthenticationPlugin);
|
|
125
125
|
this.meta = options.metadata;
|
|
126
|
-
this.
|
|
126
|
+
this.site = options.site;
|
|
127
127
|
this.plugins.forEach((plugin) => {
|
|
128
128
|
if (!isEventConsumerPlugin(plugin)) return;
|
|
129
129
|
|
|
@@ -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
|