zudoku 0.1.1-dev.29 → 0.1.1-dev.30
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/lib/components/Dialog.js +1 -1
- package/dist/lib/components/Dialog.js.map +1 -1
- package/dist/lib/components/SyntaxHighlight.d.ts +1 -1
- package/dist/lib/components/SyntaxHighlight.js +3 -0
- package/dist/lib/components/SyntaxHighlight.js.map +1 -1
- package/dist/lib/plugins/openapi/ColorizedParam.d.ts +1 -2
- package/dist/lib/plugins/openapi/ColorizedParam.js +1 -1
- package/dist/lib/plugins/openapi/ColorizedParam.js.map +1 -1
- package/dist/lib/plugins/openapi/MakeRequest.js +1 -1
- package/dist/lib/plugins/openapi/MakeRequest.js.map +1 -1
- package/dist/lib/plugins/openapi/ParameterListItem.js +1 -1
- package/dist/lib/plugins/openapi/ParameterListItem.js.map +1 -1
- package/dist/lib/plugins/openapi/playground/Editor.d.ts +1 -0
- package/dist/lib/plugins/openapi/playground/Editor.js +5 -0
- package/dist/lib/plugins/openapi/playground/Editor.js.map +1 -0
- package/dist/lib/plugins/openapi/playground/Headers.d.ts +7 -0
- package/dist/lib/plugins/openapi/playground/Headers.js +26 -0
- package/dist/lib/plugins/openapi/playground/Headers.js.map +1 -0
- package/dist/lib/plugins/openapi/playground/InlineInput.d.ts +3 -0
- package/dist/lib/plugins/openapi/playground/InlineInput.js +3 -0
- package/dist/lib/plugins/openapi/playground/InlineInput.js.map +1 -0
- package/dist/lib/plugins/openapi/playground/Playground.d.ts +18 -1
- package/dist/lib/plugins/openapi/playground/Playground.js +60 -71
- package/dist/lib/plugins/openapi/playground/Playground.js.map +1 -1
- package/dist/lib/plugins/openapi/playground/QueryParams.d.ts +7 -0
- package/dist/lib/plugins/openapi/playground/QueryParams.js +30 -0
- package/dist/lib/plugins/openapi/playground/QueryParams.js.map +1 -0
- package/dist/lib/plugins/openapi/playground/UrlParts.d.ts +6 -0
- package/dist/lib/plugins/openapi/playground/UrlParts.js +21 -0
- package/dist/lib/plugins/openapi/playground/UrlParts.js.map +1 -0
- package/dist/lib/util/createVariantComponent.d.ts +3 -10
- package/dist/lib/util/createVariantComponent.js +3 -2
- package/dist/lib/util/createVariantComponent.js.map +1 -1
- package/lib/{DevPortal-ChiyAyW7.js → DevPortal-COMmOqxP.js} +4082 -4379
- package/lib/assets/{worker-CnXQsqxH.js → worker-W78u54MC.js} +2840 -2878
- package/lib/zudoku.components.js +1 -1
- package/lib/zudoku.openapi-worker.js +5 -5
- package/lib/zudoku.plugins.js +8197 -6903
- package/package.json +10 -1
- package/src/lib/components/Dialog.tsx +32 -32
- package/src/lib/components/SyntaxHighlight.tsx +4 -0
- package/src/lib/plugins/openapi/ColorizedParam.tsx +0 -2
- package/src/lib/plugins/openapi/MakeRequest.tsx +1 -1
- package/src/lib/plugins/openapi/ParameterListItem.tsx +4 -1
- package/src/lib/plugins/openapi/playground/Editor.tsx +6 -0
- package/src/lib/plugins/openapi/playground/Headers.tsx +66 -0
- package/src/lib/plugins/openapi/playground/InlineInput.tsx +6 -0
- package/src/lib/plugins/openapi/playground/Playground.tsx +191 -226
- package/src/lib/plugins/openapi/playground/QueryParams.tsx +79 -0
- package/src/lib/plugins/openapi/playground/UrlParts.tsx +67 -0
- package/src/lib/util/createVariantComponent.tsx +7 -5
|
@@ -9,7 +9,7 @@ const DialogPortal = DialogPrimitive.Portal;
|
|
|
9
9
|
const DialogClose = DialogPrimitive.Close;
|
|
10
10
|
const DialogOverlay = React.forwardRef(({ className, ...props }, ref) => (_jsx(DialogPrimitive.Overlay, { ref: ref, className: cn("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", className), ...props })));
|
|
11
11
|
DialogOverlay.displayName = DialogPrimitive.Overlay.displayName;
|
|
12
|
-
const DialogContent = React.forwardRef(({ className, children, ...props }, ref) => (_jsxs(DialogPortal, { children: [_jsx(DialogOverlay, {}), _jsxs(DialogPrimitive.Content, { ref: ref, className: cn("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", className), ...props, children: [children, _jsxs(DialogPrimitive.Close, { className: "absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none 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: [_jsx(XIcon, { className: "h-4 w-4" }), _jsx("span", { className: "sr-only", children: "Close" })] })] })] })));
|
|
12
|
+
const DialogContent = React.forwardRef(({ className, children, ...props }, ref) => (_jsxs(DialogPortal, { children: [_jsx(DialogOverlay, {}), _jsxs(DialogPrimitive.Content, { ref: ref, className: cn("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 border-border", className), ...props, children: [children, _jsxs(DialogPrimitive.Close, { className: "absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none 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: [_jsx(XIcon, { className: "h-4 w-4" }), _jsx("span", { className: "sr-only", children: "Close" })] })] })] })));
|
|
13
13
|
DialogContent.displayName = DialogPrimitive.Content.displayName;
|
|
14
14
|
const DialogHeader = ({ className, ...props }) => (_jsx("div", { className: cn("flex flex-col space-y-1.5 text-center sm:text-left", className), ...props }));
|
|
15
15
|
DialogHeader.displayName = "DialogHeader";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Dialog.js","sourceRoot":"","sources":["../../../src/lib/components/Dialog.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,
|
|
1
|
+
{"version":3,"file":"Dialog.js","sourceRoot":"","sources":["../../../src/lib/components/Dialog.tsx"],"names":[],"mappings":"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"}
|
|
@@ -5,5 +5,5 @@ type SyntaxHighlightProps = {
|
|
|
5
5
|
wrapLines?: boolean;
|
|
6
6
|
copyable?: boolean;
|
|
7
7
|
} & Omit<HighlightProps, "children">;
|
|
8
|
-
export declare const SyntaxHighlight: ({ copyable, ...props }: SyntaxHighlightProps) => import("react/jsx-runtime").JSX.Element;
|
|
8
|
+
export declare const SyntaxHighlight: ({ copyable, ...props }: SyntaxHighlightProps) => import("react/jsx-runtime").JSX.Element | null;
|
|
9
9
|
export {};
|
|
@@ -22,6 +22,9 @@ import { useTheme } from "./context/ThemeContext.js";
|
|
|
22
22
|
export const SyntaxHighlight = ({ copyable = true, ...props }) => {
|
|
23
23
|
const [isDark] = useTheme();
|
|
24
24
|
const [isCopied, setIsCopied] = useState(false);
|
|
25
|
+
if (!props.code) {
|
|
26
|
+
return null;
|
|
27
|
+
}
|
|
25
28
|
return (_jsx(Highlight, { theme: isDark ? themes.vsDark : themes.github, ...props, children: ({ className, style, tokens, getLineProps, getTokenProps }) => (_jsxs("pre", { className: cn("group relative", className, props.className, props.noBackground && "!bg-transparent", props.wrapLines && "whitespace-pre-wrap break-words"), style: style, children: [copyable && (_jsx("button", { type: "button", "aria-label": "Copy code", className: "absolute top-1.5 right-3 p-3 opacity-0 group-hover:opacity-100 transition hover:bg-zinc-500/10 hover:dark:bg-zinc-700/25 rounded-lg text-sm text-gray-400 hover:text-gray-600 dark:text-gray-500 dark:hover:text-gray-400", disabled: isCopied, onClick: () => {
|
|
26
29
|
setIsCopied(true);
|
|
27
30
|
navigator.clipboard.writeText(tokens
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SyntaxHighlight.js","sourceRoot":"","sources":["../../../src/lib/components/SyntaxHighlight.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"SyntaxHighlight.js","sourceRoot":"","sources":["../../../src/lib/components/SyntaxHighlight.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import { type ReactNode } from "react";
|
|
2
2
|
export declare const DATA_ATTR = "data-linked-param";
|
|
3
3
|
export declare const usePastellizedColor: (name: string) => string;
|
|
4
|
-
export declare const ColorizedParam: ({ name,
|
|
4
|
+
export declare const ColorizedParam: ({ name, className, backgroundOpacity, slug, children, onClick, }: {
|
|
5
5
|
name: string;
|
|
6
|
-
value?: string;
|
|
7
6
|
className?: string;
|
|
8
7
|
backgroundOpacity?: string;
|
|
9
8
|
slug?: string;
|
|
@@ -8,7 +8,7 @@ export const usePastellizedColor = (name) => {
|
|
|
8
8
|
const [isDark] = useTheme();
|
|
9
9
|
return pastellize(name, !isDark ? { saturation: 100, lightness: 70 } : undefined);
|
|
10
10
|
};
|
|
11
|
-
export const ColorizedParam = ({ name,
|
|
11
|
+
export const ColorizedParam = ({ name, className, backgroundOpacity = "100%", slug, children, onClick, }) => {
|
|
12
12
|
const ref = useRef(null);
|
|
13
13
|
const normalized = name.replace("{", "").replace("}", "");
|
|
14
14
|
const color = usePastellizedColor(normalized);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ColorizedParam.js","sourceRoot":"","sources":["../../../../src/lib/plugins/openapi/ColorizedParam.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,EAAkB,MAAM,OAAO,CAAC;AAC1D,OAAO,EAAE,QAAQ,EAAE,MAAM,0CAA0C,CAAC;AACpE,OAAO,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAEtD,MAAM,CAAC,MAAM,SAAS,GAAG,mBAAmB,CAAC;AAE7C,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,IAAY,EAAE,EAAE;IAClD,MAAM,CAAC,MAAM,CAAC,GAAG,QAAQ,EAAE,CAAC;IAC5B,OAAO,UAAU,CACf,IAAI,EACJ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CACzD,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,EAC7B,IAAI,EACJ,
|
|
1
|
+
{"version":3,"file":"ColorizedParam.js","sourceRoot":"","sources":["../../../../src/lib/plugins/openapi/ColorizedParam.tsx"],"names":[],"mappings":"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"}
|
|
@@ -14,7 +14,7 @@ export const MakeRequest = ({ operation, }) => {
|
|
|
14
14
|
const identities = useApiIdentities();
|
|
15
15
|
const variables = useOasConfig();
|
|
16
16
|
const [server] = useQuery({ query: getServerQuery, variables });
|
|
17
|
-
return (_jsxs("div", { children: [_jsx(Playground, { host: server.data?.schema.url, method: operation.method, url: operation.path
|
|
17
|
+
return (_jsxs("div", { children: [_jsx(Playground, { host: server.data?.schema.url, method: operation.method, url: operation.path }), identities.data.map((identity) => (_jsxs("button", { onClick: () => {
|
|
18
18
|
const test = new Request("https://zudoku-customer-main-b36fa2f.d2.zuplo.dev" +
|
|
19
19
|
operation.path);
|
|
20
20
|
void fetch(identity.authorizeRequest(test));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MakeRequest.js","sourceRoot":"","sources":["../../../../src/lib/plugins/openapi/MakeRequest.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,+CAA+C,CAAC;AAEjF,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAErC,MAAM,cAAc,GAAG,GAAG,CAAA;;;;;;CAMzB,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,EAC1B,SAAS,GAGV,EAAE,EAAE;IACH,MAAM,UAAU,GAAG,gBAAgB,EAAE,CAAC;IACtC,MAAM,SAAS,GAAG,YAAY,EAAE,CAAC;IACjC,MAAM,CAAC,MAAM,CAAC,GAAG,QAAQ,CAAC,EAAE,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,CAAC,CAAC;IAEhE,OAAO,CACL,0BACE,KAAC,UAAU,IACT,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,GAAG,EAC7B,MAAM,EAAE,SAAS,CAAC,MAAM,EACxB,GAAG,EAAE,SAAS,CAAC,IAAI,
|
|
1
|
+
{"version":3,"file":"MakeRequest.js","sourceRoot":"","sources":["../../../../src/lib/plugins/openapi/MakeRequest.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,+CAA+C,CAAC;AAEjF,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAErC,MAAM,cAAc,GAAG,GAAG,CAAA;;;;;;CAMzB,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,EAC1B,SAAS,GAGV,EAAE,EAAE;IACH,MAAM,UAAU,GAAG,gBAAgB,EAAE,CAAC;IACtC,MAAM,SAAS,GAAG,YAAY,EAAE,CAAC;IACjC,MAAM,CAAC,MAAM,CAAC,GAAG,QAAQ,CAAC,EAAE,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,CAAC,CAAC;IAEhE,OAAO,CACL,0BACE,KAAC,UAAU,IACT,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,GAAG,EAC7B,MAAM,EAAE,SAAS,CAAC,MAAM,EACxB,GAAG,EAAE,SAAS,CAAC,IAAI,GAEnB,EACD,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CACjC,kBAEE,OAAO,EAAE,GAAG,EAAE;oBACZ,MAAM,IAAI,GAAG,IAAI,OAAO,CACtB,mDAAmD;wBACjD,SAAS,CAAC,IAAI,CACjB,CAAC;oBACF,KAAK,KAAK,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC;gBAC9C,CAAC,EACD,SAAS,EAAC,kDAAkD,8BAE9C,SAAS,CAAC,IAAI,QAAI,QAAQ,CAAC,IAAI,UAVxC,QAAQ,CAAC,EAAE,CAWT,CACV,CAAC,IACE,CACP,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -9,5 +9,5 @@ const getParameterSchema = (parameter) => {
|
|
|
9
9
|
type: "string",
|
|
10
10
|
};
|
|
11
11
|
};
|
|
12
|
-
export const ParameterListItem = ({ parameter, group, id, }) => (_jsxs("li", { className: "not-prose px-2 py-4 border-t border-border bg-border/20", children: [_jsxs("div", { className: "flex items-center gap-2", children: [_jsx("code", { children: group === "path" ? (_jsx(ColorizedParam, { name: parameter.name, backgroundOpacity: "15%", className: "px-1", slug: id + "-" + parameter.name.toLocaleLowerCase() })) : (parameter.name) }), parameter.required && (_jsx("span", { className: "py-px px-1.5 font-medium text-xs bg-primary/75 text-muted rounded-lg", children: "required" })), getParameterSchema(parameter).type && (_jsx("span", { className: "text-xs text-muted-foreground", children: getParameterSchema(parameter).type }))] }), parameter.description && (_jsx(Markdown, { content: parameter.description, className: "prose-p:my-1" }))] }));
|
|
12
|
+
export const ParameterListItem = ({ parameter, group, id, }) => (_jsxs("li", { className: "not-prose px-2 py-4 border-t border-border bg-border/20", children: [_jsxs("div", { className: "flex items-center gap-2", children: [_jsx("code", { children: group === "path" ? (_jsx(ColorizedParam, { name: parameter.name, backgroundOpacity: "15%", className: "px-1", slug: id + "-" + parameter.name.toLocaleLowerCase() })) : (parameter.name) }), parameter.required && (_jsx("span", { className: "py-px px-1.5 font-medium text-xs bg-primary/75 text-muted rounded-lg", children: "required" })), getParameterSchema(parameter).type && (_jsx("span", { className: "text-xs text-muted-foreground", children: getParameterSchema(parameter).type }))] }), parameter.description && (_jsx(Markdown, { content: parameter.description, className: "text-sm prose-p:my-1" }))] }));
|
|
13
13
|
//# sourceMappingURL=ParameterListItem.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ParameterListItem.js","sourceRoot":"","sources":["../../../../src/lib/plugins/openapi/ParameterListItem.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAExD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAIrD,MAAM,kBAAkB,GAAG,CACzB,SAAkC,EACpB,EAAE;IAChB,IAAI,SAAS,CAAC,MAAM,IAAI,IAAI,IAAI,OAAO,SAAS,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;QACrE,OAAO,SAAS,CAAC,MAAM,CAAC;IAC1B,CAAC;IACD,OAAO;QACL,IAAI,EAAE,QAAQ;KACf,CAAC;AACJ,CAAC,CAAC;AAMF,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,EAChC,SAAS,EACT,KAAK,EACL,EAAE,GAKH,EAAE,EAAE,CAAC,CACJ,cAAI,SAAS,EAAC,yDAAyD,aACrE,eAAK,SAAS,EAAC,yBAAyB,aACtC,yBACG,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,CAClB,KAAC,cAAc,IACb,IAAI,EAAE,SAAS,CAAC,IAAI,EACpB,iBAAiB,EAAC,KAAK,EACvB,SAAS,EAAC,MAAM,EAChB,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,SAAS,CAAC,IAAI,CAAC,iBAAiB,EAAE,GACnD,CACH,CAAC,CAAC,CAAC,CACF,SAAS,CAAC,IAAI,CACf,GACI,EACN,SAAS,CAAC,QAAQ,IAAI,CACrB,eAAM,SAAS,EAAC,sEAAsE,yBAE/E,CACR,EACA,kBAAkB,CAAC,SAAS,CAAC,CAAC,IAAI,IAAI,CACrC,eAAM,SAAS,EAAC,+BAA+B,YAC5C,kBAAkB,CAAC,SAAS,CAAC,CAAC,IAAI,GAC9B,CACR,IACG,EACL,SAAS,CAAC,WAAW,IAAI,CACxB,KAAC,QAAQ,
|
|
1
|
+
{"version":3,"file":"ParameterListItem.js","sourceRoot":"","sources":["../../../../src/lib/plugins/openapi/ParameterListItem.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAExD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAIrD,MAAM,kBAAkB,GAAG,CACzB,SAAkC,EACpB,EAAE;IAChB,IAAI,SAAS,CAAC,MAAM,IAAI,IAAI,IAAI,OAAO,SAAS,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;QACrE,OAAO,SAAS,CAAC,MAAM,CAAC;IAC1B,CAAC;IACD,OAAO;QACL,IAAI,EAAE,QAAQ;KACf,CAAC;AACJ,CAAC,CAAC;AAMF,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,EAChC,SAAS,EACT,KAAK,EACL,EAAE,GAKH,EAAE,EAAE,CAAC,CACJ,cAAI,SAAS,EAAC,yDAAyD,aACrE,eAAK,SAAS,EAAC,yBAAyB,aACtC,yBACG,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,CAClB,KAAC,cAAc,IACb,IAAI,EAAE,SAAS,CAAC,IAAI,EACpB,iBAAiB,EAAC,KAAK,EACvB,SAAS,EAAC,MAAM,EAChB,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,SAAS,CAAC,IAAI,CAAC,iBAAiB,EAAE,GACnD,CACH,CAAC,CAAC,CAAC,CACF,SAAS,CAAC,IAAI,CACf,GACI,EACN,SAAS,CAAC,QAAQ,IAAI,CACrB,eAAM,SAAS,EAAC,sEAAsE,yBAE/E,CACR,EACA,kBAAkB,CAAC,SAAS,CAAC,CAAC,IAAI,IAAI,CACrC,eAAM,SAAS,EAAC,+BAA+B,YAC5C,kBAAkB,CAAC,SAAS,CAAC,CAAC,IAAI,GAC9B,CACR,IACG,EACL,SAAS,CAAC,WAAW,IAAI,CACxB,KAAC,QAAQ,IACP,OAAO,EAAE,SAAS,CAAC,WAAW,EAC9B,SAAS,EAAC,sBAAsB,GAChC,CACH,IACE,CACN,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const Editor: () => void;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Editor.js","sourceRoot":"","sources":["../../../../../src/lib/plugins/openapi/playground/Editor.tsx"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,EAAE;IACzB,2DAA2D;IAC3D,mBAAmB;AACrB,CAAC,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { Control, UseFormRegister } from "react-hook-form";
|
|
2
|
+
import type { PlaygroundForm, Header } from "./Playground.js";
|
|
3
|
+
export declare const Headers: ({ control, register, headers, }: {
|
|
4
|
+
register: UseFormRegister<PlaygroundForm>;
|
|
5
|
+
control: Control<PlaygroundForm>;
|
|
6
|
+
headers: Header[];
|
|
7
|
+
}) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useFieldArray } from "react-hook-form";
|
|
3
|
+
import { TrashIcon } from "lucide-react";
|
|
4
|
+
import { InlineInput } from "./InlineInput.js";
|
|
5
|
+
import { useEffect } from "react";
|
|
6
|
+
export const Headers = ({ control, register, headers, }) => {
|
|
7
|
+
const { fields, append, remove } = useFieldArray({
|
|
8
|
+
control,
|
|
9
|
+
name: "headers",
|
|
10
|
+
});
|
|
11
|
+
const headersCount = headers.length;
|
|
12
|
+
const headersLastName = headers.at(-1)?.name;
|
|
13
|
+
const headersValue = headers.at(-1)?.value;
|
|
14
|
+
useEffect(() => {
|
|
15
|
+
if (headersCount === 0) {
|
|
16
|
+
append({ name: "", value: "" });
|
|
17
|
+
}
|
|
18
|
+
if (headersLastName !== "" || headersValue !== "") {
|
|
19
|
+
append({ name: "", value: "" });
|
|
20
|
+
}
|
|
21
|
+
}, [append, headersCount, headersLastName, headersValue]);
|
|
22
|
+
return (_jsx("div", { className: "grid grid-cols-[1fr_1fr_auto]", children: fields.map((header, i) => (_jsxs("div", { className: "grid-cols-subgrid col-span-full grid items-center gap-x-2 has-[:focus]:bg-muted hover:bg-muted rounded overflow-hidden group", children: [_jsx(InlineInput, { ...register(`headers.${i}.name`), placeholder: "Name", className: "peer" }), _jsx(InlineInput, { placeholder: "Value", className: "peer", ...register(`headers.${i}.value`) }), _jsx("button", { className: "hover:bg-black/5 p-1 rounded mr-2 text-muted-foreground invisible group-hover:visible peer-focus:visible", onClick: () => {
|
|
23
|
+
remove(i);
|
|
24
|
+
}, disabled: fields.length === 1, children: _jsx(TrashIcon, { size: 16 }) }), _jsx("div", { className: "col-span-full border-b border-border" })] }, header.id))) }));
|
|
25
|
+
};
|
|
26
|
+
//# sourceMappingURL=Headers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Headers.js","sourceRoot":"","sources":["../../../../../src/lib/plugins/openapi/playground/Headers.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAW,aAAa,EAAmB,MAAM,iBAAiB,CAAC;AAC1E,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAElC,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,EACtB,OAAO,EACP,QAAQ,EACR,OAAO,GAKR,EAAE,EAAE;IACH,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,aAAa,CAAiB;QAC/D,OAAO;QACP,IAAI,EAAE,SAAS;KAChB,CAAC,CAAC;IAEH,MAAM,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC;IACpC,MAAM,eAAe,GAAG,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC;IAC7C,MAAM,YAAY,GAAG,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC;IAE3C,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,YAAY,KAAK,CAAC,EAAE,CAAC;YACvB,MAAM,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;QAClC,CAAC;QACD,IAAI,eAAe,KAAK,EAAE,IAAI,YAAY,KAAK,EAAE,EAAE,CAAC;YAClD,MAAM,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;QAClC,CAAC;IACH,CAAC,EAAE,CAAC,MAAM,EAAE,YAAY,EAAE,eAAe,EAAE,YAAY,CAAC,CAAC,CAAC;IAE1D,OAAO,CACL,cAAK,SAAS,EAAC,+BAA+B,YAC3C,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC,CACzB,eAEE,SAAS,EAAC,8HAA8H,aAGxI,KAAC,WAAW,OACN,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC,EACjC,WAAW,EAAC,MAAM,EAClB,SAAS,EAAC,MAAM,GAChB,EACF,KAAC,WAAW,IACV,WAAW,EAAE,OAAO,EACpB,SAAS,EAAC,MAAM,KACZ,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,GAClC,EACF,iBACE,SAAS,EAAC,0GAA0G,EACpH,OAAO,EAAE,GAAG,EAAE;wBACZ,MAAM,CAAC,CAAC,CAAC,CAAC;oBACZ,CAAC,EACD,QAAQ,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC,YAE7B,KAAC,SAAS,IAAC,IAAI,EAAE,EAAE,GAAI,GAChB,EACT,cAAK,SAAS,EAAC,uCAAuC,GAAO,KAvBxD,MAAM,CAAC,EAAE,CAwBV,CACP,CAAC,GACE,CACP,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export declare const InlineInput: import("react").ForwardRefExoticComponent<Omit<import("react").ClassAttributes<HTMLInputElement> & import("react").InputHTMLAttributes<HTMLInputElement> & {
|
|
2
|
+
className?: import("clsx").ClassValue;
|
|
3
|
+
}, "ref"> & import("react").RefAttributes<HTMLElement>>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InlineInput.js","sourceRoot":"","sources":["../../../../../src/lib/plugins/openapi/playground/InlineInput.tsx"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,MAAM,yCAAyC,CAAC;AAE7E,MAAM,CAAC,MAAM,WAAW,GAAG,sBAAsB,CAC/C,OAAO,EACP,+CAA+C,CAChD,CAAC"}
|
|
@@ -1,4 +1,21 @@
|
|
|
1
|
-
|
|
1
|
+
export type Header = {
|
|
2
|
+
name: string;
|
|
3
|
+
value: string;
|
|
4
|
+
};
|
|
5
|
+
export type QueryParam = {
|
|
6
|
+
name: string;
|
|
7
|
+
value: string;
|
|
8
|
+
};
|
|
9
|
+
export type UrlPart = {
|
|
10
|
+
name: string;
|
|
11
|
+
value: string;
|
|
12
|
+
};
|
|
13
|
+
export type PlaygroundForm = {
|
|
14
|
+
body: string;
|
|
15
|
+
queryParams: QueryParam[];
|
|
16
|
+
urlParts: UrlPart[];
|
|
17
|
+
headers: Header[];
|
|
18
|
+
};
|
|
2
19
|
declare const Playground: ({ url, host, method, defaultHeaders, }: {
|
|
3
20
|
host: string;
|
|
4
21
|
url: string;
|
|
@@ -1,98 +1,87 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
2
|
import { Dialog, DialogContent, DialogDescription, DialogHeader, DialogTitle, DialogTrigger, } from "../../../components/Dialog.js";
|
|
3
3
|
import { Card, CardContent } from "../../../ui/Card.js";
|
|
4
4
|
import { Button } from "../../../ui/Button.js";
|
|
5
5
|
import { Tabs, TabsContent, TabsList, TabsTrigger } from "../../../ui/Tabs.js";
|
|
6
|
-
import { Fragment
|
|
7
|
-
import { TrashIcon } from "lucide-react";
|
|
8
|
-
import createVariantComponent from "../../../util/createVariantComponent.js";
|
|
6
|
+
import { Fragment } from "react";
|
|
9
7
|
import { SyntaxHighlight } from "../../../components/SyntaxHighlight.js";
|
|
10
|
-
import { ColorizedParam
|
|
11
|
-
import { cn } from "../../../util/cn.js";
|
|
8
|
+
import { ColorizedParam } from "../ColorizedParam.js";
|
|
12
9
|
import { useMutation } from "@tanstack/react-query";
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
};
|
|
10
|
+
import { useForm } from "react-hook-form";
|
|
11
|
+
import { Headers } from "./Headers.js";
|
|
12
|
+
import { QueryParams } from "./QueryParams.js";
|
|
13
|
+
import { UrlParts } from "./UrlParts.js";
|
|
14
|
+
import { LoaderCircle } from "lucide-react";
|
|
15
|
+
function mimeTypeToLanguage(mimeType) {
|
|
16
|
+
const mimeTypeMapping = {
|
|
17
|
+
"application/json": "json",
|
|
18
|
+
"text/json": "json",
|
|
19
|
+
"text/html": "html",
|
|
20
|
+
"text/css": "css",
|
|
21
|
+
"text/javascript": "javascript",
|
|
22
|
+
"application/xml": "xml",
|
|
23
|
+
"application/xhtml+xml": "xhtml",
|
|
24
|
+
"text/plain": "plain",
|
|
25
|
+
};
|
|
26
|
+
return Object.entries(mimeTypeMapping).find(([mime]) => mimeType.includes(mime))?.[0][1];
|
|
27
|
+
}
|
|
18
28
|
const Playground = ({ url, host, method, defaultHeaders, }) => {
|
|
19
|
-
const
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
}
|
|
29
|
-
}
|
|
29
|
+
const { register, control, handleSubmit, watch } = useForm({
|
|
30
|
+
defaultValues: {
|
|
31
|
+
body: "",
|
|
32
|
+
queryParams: [{ name: "", value: "" }],
|
|
33
|
+
headers: defaultHeaders ?? [{ name: "", value: "" }],
|
|
34
|
+
urlParts: url
|
|
35
|
+
.split("/")
|
|
36
|
+
.filter((part) => part.startsWith("{") && part.endsWith("}"))
|
|
37
|
+
.map((part) => ({ name: part.slice(1, -1), value: "" })),
|
|
38
|
+
},
|
|
39
|
+
});
|
|
40
|
+
const formState = watch();
|
|
30
41
|
const x = useMutation({
|
|
31
|
-
mutationFn: async () => {
|
|
42
|
+
mutationFn: async (data) => {
|
|
32
43
|
const fullUrl = host +
|
|
33
44
|
url
|
|
34
45
|
.split("/")
|
|
35
|
-
.map((v) =>
|
|
46
|
+
.map((v) => v.startsWith("{") && v.endsWith("}")
|
|
47
|
+
? data.urlParts.find((part) => part.name === v.slice(1, -1))
|
|
48
|
+
?.value ?? v
|
|
49
|
+
: v)
|
|
36
50
|
.join("/");
|
|
37
|
-
console.log(fullUrl, Object.fromEntries(headers.map((header) => [header.name, header.value])));
|
|
38
51
|
const response = await fetch(fullUrl, {
|
|
39
|
-
|
|
40
|
-
headers: Object.fromEntries(
|
|
52
|
+
method: method.toUpperCase(),
|
|
53
|
+
headers: Object.fromEntries(data.urlParts
|
|
41
54
|
.filter((h) => h.name)
|
|
42
55
|
.map((header) => [header.name, header.value])),
|
|
43
56
|
});
|
|
44
57
|
return {
|
|
45
58
|
status: response.status,
|
|
59
|
+
headers: response.headers,
|
|
46
60
|
body: await response.text(),
|
|
47
61
|
};
|
|
48
62
|
},
|
|
49
63
|
});
|
|
50
64
|
const path = url.split("/").map((part) => (_jsxs(Fragment, { children: [part.startsWith("{") && part.endsWith("}") ? (_jsx(ColorizedParam, { name: part.slice(1, -1), backgroundOpacity: "0", onClick: () => {
|
|
51
65
|
console.log("asd");
|
|
52
|
-
}, slug: part.slice(1, -1), children: urlParts.find((p) =>
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
const newHeaders = [...headers];
|
|
72
|
-
newHeaders[i] = {
|
|
73
|
-
...headers[i],
|
|
74
|
-
name: e.target.value,
|
|
75
|
-
};
|
|
76
|
-
return newHeaders;
|
|
77
|
-
}), value: name.slice(1, -1), disabled: true, placeholder: "Name", className: "peer" }), _jsx(ParameterValue, { part: name.slice(1, -1), onChange: (e) => setUrlParts((parts) => {
|
|
78
|
-
const newParts = [...parts];
|
|
79
|
-
newParts[i] = {
|
|
80
|
-
name: "",
|
|
81
|
-
...parts.at(i),
|
|
82
|
-
value: e.target.value,
|
|
83
|
-
};
|
|
84
|
-
return newParts;
|
|
85
|
-
}), [DATA_ATTR]: name.slice(1, -1), value: value, placeholder: "Value", className: "peer" }), _jsx("div", { className: "col-span-full border-b border-border" })] }, i))) })] }), _jsxs(TabsContent, { value: "auth", children: [_jsx(CardContent, { children: url
|
|
86
|
-
.split("/")
|
|
87
|
-
.map((part, i) => part.startsWith("{") && part.endsWith("}")
|
|
88
|
-
? urlParts[i]
|
|
89
|
-
: part)
|
|
90
|
-
.join("/") }), "Change your password here."] })] })] })] }), _jsxs(Card, { children: [_jsxs(CardContent, { children: [method.toUpperCase(), url
|
|
91
|
-
.split("/")
|
|
92
|
-
.map((v) => v.startsWith("{") && v.endsWith("}")
|
|
93
|
-
? urlParts.find((part) => part.name === v)?.value ?? v
|
|
94
|
-
: v)
|
|
95
|
-
.join("/"), _jsx(SyntaxHighlight, { language: "json", noBackground: true, copyable: false, className: "text-xs", code: x.data?.body ?? JSON.stringify("") })] }), x.data?.status] })] }) })] }) })] }));
|
|
66
|
+
}, slug: part.slice(1, -1), children: formState.urlParts.find((p) => {
|
|
67
|
+
console.log(p.name, part.slice(1, -1), p.name === part.slice(1, -1), p.value);
|
|
68
|
+
return p.name === part.slice(1, -1);
|
|
69
|
+
})?.value })) : (part), "/", _jsx("wbr", {})] }, part)));
|
|
70
|
+
const lang = mimeTypeToLanguage(x.data?.headers.get("Content-Type") ?? "");
|
|
71
|
+
return (_jsxs(Dialog, { children: [_jsx(DialogTrigger, { children: "Open" }), _jsx(DialogContent, { className: "max-w-screen-xl w-full h-5/6", children: _jsx("form", { onSubmit: handleSubmit((data) => {
|
|
72
|
+
x.mutateAsync(data);
|
|
73
|
+
}), children: _jsxs(DialogHeader, { children: [_jsx(DialogTitle, { className: "mb-4", children: "API Playground" }), _jsx(DialogDescription, { children: _jsxs("div", { className: "grid grid-cols-2 gap-2", children: [_jsxs(Card, { children: [_jsxs(CardContent, { className: "border-b border-border pt-4", children: [_jsx("div", { className: "font-bold mb-1", children: "URL" }), _jsxs("div", { className: "flex gap-2 items-center", children: [_jsxs("div", { className: "border rounded border-border flex justify-stretch w-full", children: [_jsx("div", { className: "border-r border-border p-2 bg-muted font-mono", children: method.toUpperCase() }), _jsx("div", { className: "p-2 whitespace-nowrap overflow-scroll flex-1", children: path })] }), _jsx(Button, { type: "submit", children: "Send" })] })] }), _jsxs(Tabs, { defaultValue: "parameters", children: [_jsx(CardContent, { className: "border-b border-border py-4", children: _jsxs(TabsList, { children: [_jsx(TabsTrigger, { value: "parameters", children: "Parameters" }), _jsxs(TabsTrigger, { value: "headers", children: ["Headers (", formState.headers.length - 1, ")"] }), _jsx(TabsTrigger, { value: "body", disabled: ["POST", "PUT", "PATCH", "DELETE"].includes(method.toUpperCase()), children: "Body" })] }) }), _jsxs(CardContent, { className: "overflow-auto h-full", children: [_jsx(TabsContent, { value: "headers", children: _jsx(Headers, { control: control, register: register, headers: formState.headers }) }), _jsxs(TabsContent, { value: "parameters", children: [_jsx(UrlParts, { control: control, register: register }), "Query Parameters", _jsx(QueryParams, { control: control, queryParams: formState.queryParams, register: register })] }), _jsxs(TabsContent, { value: "auth", children: [_jsx(CardContent, { children: url
|
|
74
|
+
.split("/")
|
|
75
|
+
.map((part, i) => part.startsWith("{") && part.endsWith("}")
|
|
76
|
+
? formState.urlParts[i]
|
|
77
|
+
: part)
|
|
78
|
+
.join("/") }), "Change your password here."] }), _jsx(TabsContent, { value: "body", children: _jsx("textarea", { ...register("body"), className: "border border-border w-full rounded p-2 bg-muted h-40" }) })] })] })] }), _jsx(Card, { children: _jsxs(CardContent, { children: [_jsxs("div", { className: "mt-2 font-mono gap-2 flex", children: [method.toUpperCase(), " ", x.data?.status, " ", url
|
|
79
|
+
.split("/")
|
|
80
|
+
.map((v) => v.startsWith("{") && v.endsWith("}")
|
|
81
|
+
? formState.urlParts.find((part) => part.name === v)
|
|
82
|
+
?.value ?? v
|
|
83
|
+
: v)
|
|
84
|
+
.join("/")] }), _jsxs("div", { className: "w-full overflow-auto max-h-80 rounded-xl border border-border p-4 dark:!bg-foreground/10 dark:border-transparent", children: [x.isPending && (_jsxs(_Fragment, { children: [_jsx(LoaderCircle, { size: 18, className: "animate-spins" }), " a request to see the response.\""] })), _jsx(SyntaxHighlight, { language: lang ?? "json", noBackground: true, copyable: false, className: "overflow-x-auto ", code: x.data?.body ?? JSON.stringify("") })] })] }) })] }) })] }) }) })] }));
|
|
96
85
|
};
|
|
97
86
|
export { Playground };
|
|
98
87
|
//# sourceMappingURL=Playground.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Playground.js","sourceRoot":"","sources":["../../../../../src/lib/plugins/openapi/playground/Playground.tsx"],"names":[],"mappings":";AAAA,OAAO,EACL,MAAM,EACN,aAAa,EACb,iBAAiB,EACjB,YAAY,EACZ,WAAW,EACX,aAAa,GACd,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC/C,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"Playground.js","sourceRoot":"","sources":["../../../../../src/lib/plugins/openapi/playground/Playground.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { Control, UseFormRegister } from "react-hook-form";
|
|
2
|
+
import { PlaygroundForm, QueryParam } from "./Playground.js";
|
|
3
|
+
export declare const QueryParams: ({ control, register, queryParams, }: {
|
|
4
|
+
register: UseFormRegister<PlaygroundForm>;
|
|
5
|
+
control: Control<PlaygroundForm>;
|
|
6
|
+
queryParams: QueryParam[];
|
|
7
|
+
}) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Controller, useFieldArray, } from "react-hook-form";
|
|
3
|
+
import { TrashIcon } from "lucide-react";
|
|
4
|
+
import { InlineInput } from "./InlineInput.js";
|
|
5
|
+
import { useEffect } from "react";
|
|
6
|
+
export const QueryParams = ({ control, register, queryParams, }) => {
|
|
7
|
+
const { fields, append, remove } = useFieldArray({
|
|
8
|
+
control,
|
|
9
|
+
name: "queryParams",
|
|
10
|
+
});
|
|
11
|
+
const queryCount = queryParams?.length;
|
|
12
|
+
const queryLastName = queryParams.at(-1)?.name;
|
|
13
|
+
const queryLastValue = queryParams.at(-1)?.value;
|
|
14
|
+
useEffect(() => {
|
|
15
|
+
// if (queryCount === 0) {
|
|
16
|
+
// append({ name: "", value: "" });
|
|
17
|
+
// }
|
|
18
|
+
console.log(queryLastName, queryLastValue, queryCount);
|
|
19
|
+
if (queryLastName !== "" || queryLastValue !== "") {
|
|
20
|
+
console.log("appending");
|
|
21
|
+
append({ name: "", value: "" });
|
|
22
|
+
}
|
|
23
|
+
}, [append, queryLastValue, queryLastName, queryCount]);
|
|
24
|
+
return (_jsx("div", { className: "grid grid-cols-[1fr_1fr_auto]", children: fields.map((field, i) => (_jsxs("div", { className: "grid-cols-subgrid col-span-full grid items-center gap-x-2 has-[:focus]:bg-muted hover:bg-muted rounded overflow-hidden group", children: [field.id, _jsx(Controller, { control: control, render: ({ field }) => {
|
|
25
|
+
return (_jsx(InlineInput, { ...field, placeholder: "Name", className: "peer" }));
|
|
26
|
+
}, name: `queryParams.${i}.name` }), _jsx(Controller, { control: control, render: ({ field }) => {
|
|
27
|
+
return (_jsx(InlineInput, { ...field, placeholder: "Value", className: "peer" }));
|
|
28
|
+
}, name: `queryParams.${i}.value` }), _jsx("button", { className: "hover:bg-black/5 p-1 rounded mr-2 text-muted-foreground invisible group-hover:visible peer-focus:visible", onClick: () => remove(i), children: _jsx(TrashIcon, { size: 16 }) }), _jsx("div", { className: "col-span-full border-b border-border" })] }, field.id))) }));
|
|
29
|
+
};
|
|
30
|
+
//# sourceMappingURL=QueryParams.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"QueryParams.js","sourceRoot":"","sources":["../../../../../src/lib/plugins/openapi/playground/QueryParams.tsx"],"names":[],"mappings":";AAAA,OAAO,EAEL,UAAU,EACV,aAAa,GAEd,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAElC,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,EAC1B,OAAO,EACP,QAAQ,EACR,WAAW,GAKZ,EAAE,EAAE;IACH,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,aAAa,CAAiB;QAC/D,OAAO;QACP,IAAI,EAAE,aAAa;KACpB,CAAC,CAAC;IAEH,MAAM,UAAU,GAAG,WAAW,EAAE,MAAM,CAAC;IACvC,MAAM,aAAa,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC;IAC/C,MAAM,cAAc,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC;IAEjD,SAAS,CAAC,GAAG,EAAE;QACb,0BAA0B;QAC1B,qCAAqC;QACrC,IAAI;QACJ,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,cAAc,EAAE,UAAU,CAAC,CAAC;QACvD,IAAI,aAAa,KAAK,EAAE,IAAI,cAAc,KAAK,EAAE,EAAE,CAAC;YAClD,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;YACzB,MAAM,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;QAClC,CAAC;IACH,CAAC,EAAE,CAAC,MAAM,EAAE,cAAc,EAAE,aAAa,EAAE,UAAU,CAAC,CAAC,CAAC;IAExD,OAAO,CACL,cAAK,SAAS,EAAC,+BAA+B,YAC3C,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,CACxB,eAEE,SAAS,EAAC,8HAA8H,aAEvI,KAAK,CAAC,EAAE,EACT,KAAC,UAAU,IACT,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;wBACpB,OAAO,CACL,KAAC,WAAW,OAAK,KAAK,EAAE,WAAW,EAAC,MAAM,EAAC,SAAS,EAAC,MAAM,GAAG,CAC/D,CAAC;oBACJ,CAAC,EACD,IAAI,EAAE,eAAe,CAAC,OAAO,GAC7B,EACF,KAAC,UAAU,IACT,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;wBACpB,OAAO,CACL,KAAC,WAAW,OAAK,KAAK,EAAE,WAAW,EAAC,OAAO,EAAC,SAAS,EAAC,MAAM,GAAG,CAChE,CAAC;oBACJ,CAAC,EACD,IAAI,EAAE,eAAe,CAAC,QAAQ,GAC9B,EAEF,iBACE,SAAS,EAAC,0GAA0G,EACpH,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,YAExB,KAAC,SAAS,IAAC,IAAI,EAAE,EAAE,GAAI,GAChB,EACT,cAAK,SAAS,EAAC,uCAAuC,GAAO,KA7BxD,KAAK,CAAC,EAAE,CA8BT,CACP,CAAC,GACE,CACP,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { Control, UseFormRegister } from "react-hook-form";
|
|
2
|
+
import { PlaygroundForm } from "./Playground.js";
|
|
3
|
+
export declare const UrlParts: ({ control, register, }: {
|
|
4
|
+
register: UseFormRegister<PlaygroundForm>;
|
|
5
|
+
control: Control<PlaygroundForm>;
|
|
6
|
+
}) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useFieldArray } from "react-hook-form";
|
|
3
|
+
import { InlineInput } from "./InlineInput.js";
|
|
4
|
+
import { DATA_ATTR, usePastellizedColor } from "../ColorizedParam.js";
|
|
5
|
+
import { forwardRef } from "react";
|
|
6
|
+
import { cn } from "../../../util/cn.js";
|
|
7
|
+
const ParameterValue = forwardRef(({ part, className, ...props }, ref) => {
|
|
8
|
+
const color = usePastellizedColor(part);
|
|
9
|
+
return (_jsx(InlineInput, { ...props, ref: ref, className: cn(className, "opacity-80 data-[active=true]:opacity-100"), style: {
|
|
10
|
+
// color: `hsl(${color})`,
|
|
11
|
+
outlineColor: `hsl(${color})`,
|
|
12
|
+
} }));
|
|
13
|
+
});
|
|
14
|
+
export const UrlParts = ({ control, register, }) => {
|
|
15
|
+
const { fields } = useFieldArray({
|
|
16
|
+
control,
|
|
17
|
+
name: "urlParts",
|
|
18
|
+
});
|
|
19
|
+
return (_jsx("div", { className: "grid grid-cols-[1fr_1fr_auto]", children: fields.map((part, i) => (_jsxs("div", { className: "grid-cols-subgrid col-span-full grid items-center gap-x-2 has-[:focus]:bg-muted hover:bg-muted rounded overflow-hidden group", children: [_jsx(InlineInput, { ...register(`urlParts.${i}.name`), disabled: true, placeholder: "Name", className: "peer" }), _jsx(ParameterValue, { ...register(`urlParts.${i}.value`), part: part.name, [DATA_ATTR]: part.name, placeholder: "Value", className: "peer" }), _jsx("div", { className: "col-span-full border-b border-border" })] }, part.id))) }));
|
|
20
|
+
};
|
|
21
|
+
//# sourceMappingURL=UrlParts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"UrlParts.js","sourceRoot":"","sources":["../../../../../src/lib/plugins/openapi/playground/UrlParts.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAW,aAAa,EAAmB,MAAM,iBAAiB,CAAC;AAC1E,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,OAAO,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AACtE,OAAO,EAAE,UAAU,EAAuB,MAAM,OAAO,CAAC;AACxD,OAAO,EAAE,EAAE,EAAE,MAAM,qBAAqB,CAAC;AAMzC,MAAM,cAAc,GAAG,UAAU,CAC/B,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE;IACrC,MAAM,KAAK,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC;IACxC,OAAO,CACL,KAAC,WAAW,OACN,KAAK,EACT,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CAAC,SAAS,EAAE,2CAA2C,CAAC,EACrE,KAAK,EAAE;YACL,0BAA0B;YAC1B,YAAY,EAAE,OAAO,KAAK,GAAG;SAC9B,GACD,CACH,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,EACvB,OAAO,EACP,QAAQ,GAIT,EAAE,EAAE;IACH,MAAM,EAAE,MAAM,EAAE,GAAG,aAAa,CAAiB;QAC/C,OAAO;QACP,IAAI,EAAE,UAAU;KACjB,CAAC,CAAC;IAEH,OAAO,CACL,cAAK,SAAS,EAAC,+BAA+B,YAC3C,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CACvB,eAEE,SAAS,EAAC,8HAA8H,aAExI,KAAC,WAAW,OACN,QAAQ,CAAC,YAAY,CAAC,OAAO,CAAC,EAClC,QAAQ,QACR,WAAW,EAAC,MAAM,EAClB,SAAS,EAAC,MAAM,GAChB,EACF,KAAC,cAAc,OACT,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC,EACnC,IAAI,EAAE,IAAI,CAAC,IAAI,EACT,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC,IAAI,EAC5B,WAAW,EAAC,OAAO,EACnB,SAAS,EAAC,MAAM,GAChB,EAEF,cAAK,SAAS,EAAC,sCAAsC,GAAO,KAjBvD,IAAI,CAAC,EAAE,CAkBR,CACP,CAAC,GACE,CACP,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -2,14 +2,7 @@ import { cva } from "class-variance-authority";
|
|
|
2
2
|
import { ClassValue } from "clsx";
|
|
3
3
|
import * as React from "react";
|
|
4
4
|
import { JSX } from "react/jsx-runtime";
|
|
5
|
-
declare const createVariantComponent: <E extends keyof React.ReactHTML, C extends ReturnType<typeof cva>>(tag: E, cvx: ClassValue | C) => {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
}): React.DetailedReactHTMLElement<Omit<JSX.IntrinsicElements[E] & {
|
|
9
|
-
className?: ClassValue;
|
|
10
|
-
}, "className"> & {
|
|
11
|
-
className: any;
|
|
12
|
-
}, HTMLWebViewElement>;
|
|
13
|
-
displayName: string;
|
|
14
|
-
};
|
|
5
|
+
declare const createVariantComponent: <E extends keyof React.ReactHTML, C extends ReturnType<typeof cva>>(tag: E, cvx: ClassValue | C) => React.ForwardRefExoticComponent<React.PropsWithoutRef<JSX.IntrinsicElements[E] & {
|
|
6
|
+
className?: ClassValue;
|
|
7
|
+
}> & React.RefAttributes<HTMLElement>>;
|
|
15
8
|
export default createVariantComponent;
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import * as React from "react";
|
|
2
2
|
import { cn } from "./cn.js";
|
|
3
3
|
const createVariantComponent = (tag, cvx) => {
|
|
4
|
-
const MyVariant = ({ className, ...props }) => React.createElement(tag, {
|
|
4
|
+
const MyVariant = React.forwardRef(({ className, ...props }, ref) => React.createElement(tag, {
|
|
5
5
|
...props,
|
|
6
|
+
ref,
|
|
6
7
|
className: typeof cvx === "function" ? cvx({ className }) : cn(cvx, className),
|
|
7
|
-
});
|
|
8
|
+
}));
|
|
8
9
|
MyVariant.displayName = `VariantComponent(${tag})`;
|
|
9
10
|
return MyVariant;
|
|
10
11
|
};
|