zudoku 0.3.0-dev.51 → 0.3.0-dev.53

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.
Files changed (82) hide show
  1. package/dist/app/main.js +2 -2
  2. package/dist/app/main.js.map +1 -1
  3. package/dist/lib/authentication/providers/clerk.js +1 -1
  4. package/dist/lib/authentication/providers/clerk.js.map +1 -1
  5. package/dist/lib/components/Bootstrap.js +1 -1
  6. package/dist/lib/components/Bootstrap.js.map +1 -1
  7. package/dist/lib/components/DevPortal.js +1 -1
  8. package/dist/lib/components/DevPortal.js.map +1 -1
  9. package/dist/lib/core/DevPortalContext.d.ts +3 -1
  10. package/dist/lib/core/DevPortalContext.js.map +1 -1
  11. package/dist/lib/plugins/openapi/OperationListItem.js +1 -1
  12. package/dist/lib/plugins/openapi/OperationListItem.js.map +1 -1
  13. package/dist/lib/plugins/openapi/PlaygroundDialogWrapper.js +1 -13
  14. package/dist/lib/plugins/openapi/PlaygroundDialogWrapper.js.map +1 -1
  15. package/dist/lib/plugins/openapi/playground/Playground.d.ts +2 -2
  16. package/dist/lib/plugins/openapi/playground/Playground.js +15 -2
  17. package/dist/lib/plugins/openapi/playground/Playground.js.map +1 -1
  18. package/dist/lib/plugins/openapi/playground/PlaygroundDialog.js +4 -2
  19. package/dist/lib/plugins/openapi/playground/PlaygroundDialog.js.map +1 -1
  20. package/dist/vite/config.d.ts +1 -0
  21. package/dist/vite/config.js +1 -1
  22. package/dist/vite/config.js.map +1 -1
  23. package/dist/vite/dev-server.js +1 -0
  24. package/dist/vite/dev-server.js.map +1 -1
  25. package/dist/vite/prerender.js +4 -0
  26. package/dist/vite/prerender.js.map +1 -1
  27. package/lib/{AnchorLink-CZUp-F0P.js → AnchorLink-BCN_a_Uz.js} +2 -2
  28. package/lib/{AnchorLink-CZUp-F0P.js.map → AnchorLink-BCN_a_Uz.js.map} +1 -1
  29. package/lib/Combination-B0Iu6mhJ.js +915 -0
  30. package/lib/Combination-B0Iu6mhJ.js.map +1 -0
  31. package/lib/{Markdown-Dbzrtopg.js → Markdown-aE_XoLNs.js} +3 -3
  32. package/lib/{Markdown-Dbzrtopg.js.map → Markdown-aE_XoLNs.js.map} +1 -1
  33. package/lib/{MdxPage-JvboTsbK.js → MdxPage-Bsc79cD-.js} +3 -3
  34. package/lib/{MdxPage-JvboTsbK.js.map → MdxPage-Bsc79cD-.js.map} +1 -1
  35. package/lib/OperationList-K-JWBxau.js +5091 -0
  36. package/lib/OperationList-K-JWBxau.js.map +1 -0
  37. package/lib/Playground-Czy7ha9z.js +502 -0
  38. package/lib/Playground-Czy7ha9z.js.map +1 -0
  39. package/lib/{Route-C1LyvITr.js → Route-D-egsGHx.js} +2 -2
  40. package/lib/{Route-C1LyvITr.js.map → Route-D-egsGHx.js.map} +1 -1
  41. package/lib/Select-CcBbwJ2R.js +3667 -0
  42. package/lib/Select-CcBbwJ2R.js.map +1 -0
  43. package/lib/Spinner-C9_Opdev.js +15 -0
  44. package/lib/Spinner-C9_Opdev.js.map +1 -0
  45. package/lib/{hook-CGFJQf_n.js → hook-CKqQERWo.js} +2 -2
  46. package/lib/{hook-CGFJQf_n.js.map → hook-CKqQERWo.js.map} +1 -1
  47. package/lib/index-ByHya67R.js +207 -0
  48. package/lib/index-ByHya67R.js.map +1 -0
  49. package/lib/{Spinner-BSk0ImmP.js → index-DseBZFJ-.js} +34 -46
  50. package/lib/index-DseBZFJ-.js.map +1 -0
  51. package/lib/{index-DSZ4Cj5q.js → index-jsFBaizC.js} +10 -10
  52. package/lib/{index-DSZ4Cj5q.js.map → index-jsFBaizC.js.map} +1 -1
  53. package/lib/mutation-DjbQSHzT.js +208 -0
  54. package/lib/mutation-DjbQSHzT.js.map +1 -0
  55. package/lib/{urql-DMlBWUKL.js → urql-DEKdguFl.js} +3 -3
  56. package/lib/{urql-DMlBWUKL.js.map → urql-DEKdguFl.js.map} +1 -1
  57. package/lib/zudoku.auth-clerk.js +5 -4
  58. package/lib/zudoku.auth-clerk.js.map +1 -1
  59. package/lib/zudoku.components.js +83 -79
  60. package/lib/zudoku.components.js.map +1 -1
  61. package/lib/zudoku.openapi-worker.js +1 -1
  62. package/lib/zudoku.plugin-api-keys.js +11 -10
  63. package/lib/zudoku.plugin-api-keys.js.map +1 -1
  64. package/lib/zudoku.plugin-markdown.js +1 -1
  65. package/lib/zudoku.plugin-openapi.js +3 -3
  66. package/package.json +1 -1
  67. package/src/app/main.tsx +2 -2
  68. package/src/lib/authentication/providers/clerk.tsx +1 -1
  69. package/src/lib/components/Bootstrap.tsx +1 -1
  70. package/src/lib/components/DevPortal.tsx +2 -2
  71. package/src/lib/core/DevPortalContext.ts +3 -1
  72. package/src/lib/plugins/openapi/OperationListItem.tsx +13 -11
  73. package/src/lib/plugins/openapi/PlaygroundDialogWrapper.tsx +0 -16
  74. package/src/lib/plugins/openapi/playground/Playground.tsx +17 -3
  75. package/src/lib/plugins/openapi/playground/PlaygroundDialog.tsx +7 -3
  76. package/lib/OperationList-DGdaixGa.js +0 -5562
  77. package/lib/OperationList-DGdaixGa.js.map +0 -1
  78. package/lib/Select-DHm1jDdS.js +0 -4571
  79. package/lib/Select-DHm1jDdS.js.map +0 -1
  80. package/lib/Spinner-BSk0ImmP.js.map +0 -1
  81. package/lib/index-CXXn0D4E.js +0 -412
  82. package/lib/index-CXXn0D4E.js.map +0 -1
@@ -0,0 +1,502 @@
1
+ import { j as e } from "./jsx-runtime-CJZJivg2.js";
2
+ import { g as A, h as B, i as X, C as P, u as Y, a as Z, F as ee, S as se, b as ae, c as re, d as te, f as D } from "./Select-CcBbwJ2R.js";
3
+ import * as u from "react";
4
+ import { forwardRef as ne, Fragment as $ } from "react";
5
+ import { a as le } from "./urql-DEKdguFl.js";
6
+ import { v as de } from "./DevPortalProvider-Do9oJqme.js";
7
+ import { S as M } from "./Spinner-C9_Opdev.js";
8
+ import { e as c, j as oe, S as ie } from "./Markdown-aE_XoLNs.js";
9
+ import { B as L } from "./Combination-B0Iu6mhJ.js";
10
+ import { X as J, u as ce, D as me, C as ue, T as Q, a as W, b as C, c as w } from "./OperationList-K-JWBxau.js";
11
+ import { u as he } from "./context-_fYfJFgk.js";
12
+ import { g as xe } from "./index-jsFBaizC.js";
13
+ import { S as pe } from "./index-ByHya67R.js";
14
+ const V = u.forwardRef(({ className: s, ...a }, r) => /* @__PURE__ */ e.jsx(
15
+ "div",
16
+ {
17
+ ref: r,
18
+ className: c(
19
+ "rounded-xl border border-border bg-card text-card-foreground shadow",
20
+ s
21
+ ),
22
+ ...a
23
+ }
24
+ ));
25
+ V.displayName = "Card";
26
+ const fe = u.forwardRef(({ className: s, ...a }, r) => /* @__PURE__ */ e.jsx(
27
+ "div",
28
+ {
29
+ ref: r,
30
+ className: c("flex flex-col space-y-1.5 p-6", s),
31
+ ...a
32
+ }
33
+ ));
34
+ fe.displayName = "CardHeader";
35
+ const je = u.forwardRef(({ className: s, ...a }, r) => /* @__PURE__ */ e.jsx(
36
+ "h3",
37
+ {
38
+ ref: r,
39
+ className: c("font-semibold leading-none tracking-tight", s),
40
+ ...a
41
+ }
42
+ ));
43
+ je.displayName = "CardTitle";
44
+ const ge = u.forwardRef(({ className: s, ...a }, r) => /* @__PURE__ */ e.jsx(
45
+ "p",
46
+ {
47
+ ref: r,
48
+ className: c("text-sm text-muted-foreground", s),
49
+ ...a
50
+ }
51
+ ));
52
+ ge.displayName = "CardDescription";
53
+ const be = u.forwardRef(({ className: s, ...a }, r) => /* @__PURE__ */ e.jsx("div", { ref: r, className: c("p-6 pt-0", s), ...a }));
54
+ be.displayName = "CardContent";
55
+ const ve = u.forwardRef(({ className: s, ...a }, r) => /* @__PURE__ */ e.jsx(
56
+ "div",
57
+ {
58
+ ref: r,
59
+ className: c("flex items-center p-6 pt-0", s),
60
+ ...a
61
+ }
62
+ ));
63
+ ve.displayName = "CardFooter";
64
+ const Ne = (s, a, r) => {
65
+ const l = new URL(
66
+ s + a.split("/").map(
67
+ (n) => {
68
+ var d;
69
+ return n.startsWith("{") && n.endsWith("}") ? ((d = r.pathParams.find((o) => o.name === n.slice(1, -1))) == null ? void 0 : d.value) ?? n : n;
70
+ }
71
+ ).join("/")
72
+ );
73
+ return r.queryParams.forEach((n) => {
74
+ l.searchParams.set(n.name, n.value);
75
+ }), l;
76
+ }, ye = (s, a) => {
77
+ const r = u.forwardRef(({ className: l, asChild: n, ...d }, o) => {
78
+ const j = n ? pe : s;
79
+ return u.createElement(j, {
80
+ ...d,
81
+ ref: o,
82
+ className: c(a, l)
83
+ });
84
+ });
85
+ return r.displayName = `VariantComponent(${s})`, r;
86
+ }, f = ye(
87
+ "input",
88
+ "px-2 bg-transparent h-6 font-mono text-xs m-2"
89
+ ), Ce = ({
90
+ control: s,
91
+ register: a
92
+ }) => {
93
+ const { fields: r, append: l, remove: n } = A({
94
+ control: s,
95
+ name: "headers"
96
+ }), d = B({ name: "identity", control: s }), o = B({ name: "headers", control: s }), j = d !== T;
97
+ return /* @__PURE__ */ e.jsxs("div", { className: "grid grid-cols-[1fr_1fr_auto]", children: [
98
+ r.map((h, m) => {
99
+ var g;
100
+ const x = j && ((g = o.at(m)) == null ? void 0 : g.name) === "Authorization";
101
+ return /* @__PURE__ */ e.jsxs(
102
+ "div",
103
+ {
104
+ className: c(
105
+ "grid-cols-subgrid col-span-full grid items-center gap-x-2 has-[:focus]:bg-muted hover:bg-muted rounded overflow-hidden group",
106
+ x && "line-through"
107
+ ),
108
+ title: x ? "This header is disabled because authentication was selected" : void 0,
109
+ children: [
110
+ /* @__PURE__ */ e.jsxs("div", { className: "flex gap-2 items-center", children: [
111
+ /* @__PURE__ */ e.jsx(
112
+ f,
113
+ {
114
+ ...a(`headers.${m}.name`),
115
+ placeholder: "Name",
116
+ className: "peer",
117
+ autoComplete: "off"
118
+ }
119
+ ),
120
+ x && /* @__PURE__ */ e.jsx(oe, { size: 16, className: "text-amber-500" })
121
+ ] }),
122
+ /* @__PURE__ */ e.jsx(
123
+ f,
124
+ {
125
+ placeholder: "Value",
126
+ className: "peer",
127
+ ...a(`headers.${m}.value`),
128
+ autoComplete: "off"
129
+ }
130
+ ),
131
+ /* @__PURE__ */ e.jsx(
132
+ "button",
133
+ {
134
+ className: "hover:bg-black/5 p-1 rounded mr-2 text-muted-foreground invisible group-hover:visible peer-focus:visible",
135
+ onClick: () => {
136
+ n(m);
137
+ },
138
+ type: "button",
139
+ children: /* @__PURE__ */ e.jsx(J, { size: 16 })
140
+ }
141
+ ),
142
+ /* @__PURE__ */ e.jsx("div", { className: "col-span-full border-b border-border" })
143
+ ]
144
+ },
145
+ h.id
146
+ );
147
+ }),
148
+ /* @__PURE__ */ e.jsx(
149
+ L,
150
+ {
151
+ className: "col-span-full mt-4",
152
+ onClick: () => l({ name: "", value: "" }),
153
+ type: "button",
154
+ children: "Add header"
155
+ }
156
+ )
157
+ ] });
158
+ }, we = ne(
159
+ function({ part: a, className: r, ...l }, n) {
160
+ const d = ce(a);
161
+ return /* @__PURE__ */ e.jsx(
162
+ f,
163
+ {
164
+ ...l,
165
+ ref: n,
166
+ className: c(r, "opacity-80 data-[active=true]:opacity-100"),
167
+ style: {
168
+ // color: `hsl(${color})`,
169
+ outlineColor: `hsl(${d})`
170
+ }
171
+ }
172
+ );
173
+ }
174
+ ), Pe = ({
175
+ control: s,
176
+ register: a
177
+ }) => {
178
+ const { fields: r } = A({
179
+ control: s,
180
+ name: "pathParams"
181
+ });
182
+ return r.map((l, n) => /* @__PURE__ */ e.jsxs(
183
+ "div",
184
+ {
185
+ className: "grid-cols-subgrid col-span-full grid items-center gap-x-2 has-[:focus]:bg-muted hover:bg-muted rounded overflow-hidden group",
186
+ children: [
187
+ /* @__PURE__ */ e.jsx(
188
+ f,
189
+ {
190
+ ...a(`pathParams.${n}.name`),
191
+ disabled: !0,
192
+ placeholder: "Name",
193
+ className: "peer"
194
+ }
195
+ ),
196
+ /* @__PURE__ */ e.jsx(
197
+ we,
198
+ {
199
+ ...a(`pathParams.${n}.value`),
200
+ part: l.name,
201
+ [me]: l.name,
202
+ placeholder: "Value",
203
+ className: "peer"
204
+ }
205
+ ),
206
+ /* @__PURE__ */ e.jsx("div", { className: "col-span-full border-b border-border" })
207
+ ]
208
+ },
209
+ l.id
210
+ ));
211
+ }, Te = ({
212
+ control: s
213
+ }) => {
214
+ const { fields: a } = A({
215
+ control: s,
216
+ name: "queryParams"
217
+ }), l = X().getValues("queryParams").map((n) => n.isRequired);
218
+ return a.map((n, d) => /* @__PURE__ */ e.jsxs(
219
+ "div",
220
+ {
221
+ className: "px-2 grid-cols-subgrid col-span-full grid items-center gap-x-2 has-[:focus]:bg-muted hover:bg-accent rounded overflow-hidden group",
222
+ children: [
223
+ /* @__PURE__ */ e.jsx(
224
+ P,
225
+ {
226
+ control: s,
227
+ name: `queryParams.${d}.active`,
228
+ render: ({ field: o }) => /* @__PURE__ */ e.jsx(
229
+ "input",
230
+ {
231
+ type: "checkbox",
232
+ id: `queryParams.${d}.active`,
233
+ checked: o.value,
234
+ onChange: o.onChange
235
+ }
236
+ )
237
+ }
238
+ ),
239
+ /* @__PURE__ */ e.jsx(
240
+ P,
241
+ {
242
+ control: s,
243
+ render: ({ field: o }) => /* @__PURE__ */ e.jsx(f, { asChild: !0, children: /* @__PURE__ */ e.jsxs(
244
+ "label",
245
+ {
246
+ className: "flex items-center",
247
+ htmlFor: `queryParams.${d}.active`,
248
+ title: l[d] ? "Required field" : void 0,
249
+ children: [
250
+ o.value,
251
+ l[d] && /* @__PURE__ */ e.jsx("sup", { className: "text-destructive", children: "*" })
252
+ ]
253
+ }
254
+ ) }),
255
+ name: `queryParams.${d}.name`
256
+ }
257
+ ),
258
+ /* @__PURE__ */ e.jsx(
259
+ P,
260
+ {
261
+ control: s,
262
+ render: ({ field: o }) => /* @__PURE__ */ e.jsx(f, { ...o, placeholder: "Value", className: "peer" }),
263
+ name: `queryParams.${d}.value`
264
+ }
265
+ ),
266
+ /* @__PURE__ */ e.jsx(
267
+ P,
268
+ {
269
+ control: s,
270
+ render: ({ field: o }) => /* @__PURE__ */ e.jsx(
271
+ "button",
272
+ {
273
+ type: "button",
274
+ className: c(
275
+ "hover:bg-black/5 p-1 rounded mr-2 text-muted-foreground invisible group-hover:visible peer-focus:visible",
276
+ o.value.length === 0 && "opacity-0 pointer-events-none"
277
+ ),
278
+ onClick: () => o.onChange(""),
279
+ children: /* @__PURE__ */ e.jsx(J, { size: 16 })
280
+ }
281
+ ),
282
+ name: `queryParams.${d}.value`
283
+ }
284
+ ),
285
+ /* @__PURE__ */ e.jsx("div", { className: "-mx-2 col-span-full border-b border-border" })
286
+ ]
287
+ },
288
+ n.id
289
+ ));
290
+ }, T = "__none", Se = xe(
291
+ /* GraphQL */
292
+ `
293
+ query getServerQuery($input: JSON!, $type: SchemaType!) {
294
+ schema(input: $input, type: $type) {
295
+ url
296
+ }
297
+ }
298
+ `
299
+ );
300
+ function qe(s) {
301
+ var r;
302
+ return (r = Object.entries({
303
+ "application/json": "json",
304
+ "text/json": "json",
305
+ "text/html": "html",
306
+ "text/css": "css",
307
+ "text/javascript": "javascript",
308
+ "application/xml": "xml",
309
+ "application/xhtml+xml": "xhtml",
310
+ "text/plain": "plain"
311
+ }).find(
312
+ ([l]) => s.includes(l)
313
+ )) == null ? void 0 : r[0][1];
314
+ }
315
+ const Re = {
316
+ 200: "OK",
317
+ 201: "Created",
318
+ 202: "Accepted",
319
+ 204: "No Content",
320
+ 400: "Bad Request",
321
+ 401: "Unauthorized",
322
+ 403: "Forbidden",
323
+ 404: "Not Found",
324
+ 405: "Method Not Allowed",
325
+ 500: "Internal Server Error"
326
+ }, Be = ({
327
+ url: s,
328
+ method: a,
329
+ headers: r = [{ name: "", value: "" }],
330
+ queryParams: l = [],
331
+ pathParams: n = [],
332
+ hasParams: d
333
+ }) => {
334
+ var E, k, O;
335
+ const o = he(), [j] = le({ query: Se, variables: o }), { register: h, control: m, handleSubmit: x, watch: g, ...F } = Y({
336
+ defaultValues: {
337
+ body: "",
338
+ queryParams: l,
339
+ headers: r,
340
+ pathParams: n,
341
+ identity: T
342
+ }
343
+ }), b = g(), S = de(), i = Z({
344
+ mutationFn: async (t) => {
345
+ var H, I, U;
346
+ const v = Ne(((H = j.data) == null ? void 0 : H.schema.url) ?? "", s, t), R = performance.now(), N = new Request(v, {
347
+ method: a.toUpperCase(),
348
+ headers: Object.fromEntries(
349
+ t.headers.filter((p) => p.name).map((p) => [p.name, p.value])
350
+ )
351
+ });
352
+ t.identity !== T && ((U = (I = S.data) == null ? void 0 : I.find((p) => p.id === t.identity)) == null || U.authorizeRequest(N));
353
+ const y = await fetch(N), _ = await y.text();
354
+ return {
355
+ status: y.status,
356
+ headers: y.headers,
357
+ size: _.length,
358
+ body: _,
359
+ time: performance.now() - R
360
+ };
361
+ }
362
+ }), K = s.split("/").map((t, v, R) => {
363
+ var N;
364
+ return /* @__PURE__ */ e.jsxs($, { children: [
365
+ t.startsWith("{") && t.endsWith("}") ? /* @__PURE__ */ e.jsx(
366
+ ue,
367
+ {
368
+ name: t,
369
+ backgroundOpacity: "0",
370
+ slug: t.slice(1, -1),
371
+ children: (N = b.pathParams.find((y) => y.name === t.slice(1, -1))) == null ? void 0 : N.value
372
+ }
373
+ ) : t,
374
+ v < R.length - 1 && "/",
375
+ /* @__PURE__ */ e.jsx("wbr", {})
376
+ ] }, t);
377
+ }), G = qe(
378
+ ((E = i.data) == null ? void 0 : E.headers.get("Content-Type")) ?? ""
379
+ ), q = Array.from(((k = i.data) == null ? void 0 : k.headers.entries()) ?? []), z = b.queryParams.filter((t) => t.active).map((t) => /* @__PURE__ */ e.jsxs($, { children: [
380
+ t.name,
381
+ "=",
382
+ t.value,
383
+ /* @__PURE__ */ e.jsx("wbr", {})
384
+ ] }, t.name));
385
+ return /* @__PURE__ */ e.jsx(ee, { register: h, control: m, handleSubmit: x, watch: g, ...F, children: /* @__PURE__ */ e.jsx("form", { onSubmit: x((t) => i.mutateAsync(t)), children: /* @__PURE__ */ e.jsxs("div", { className: "grid grid-cols-2 text-sm h-full", children: [
386
+ /* @__PURE__ */ e.jsxs("div", { className: "flex flex-col gap-4 p-8 bg-muted/50 after:bg-muted-foreground/20 relative after:absolute after:w-px after:inset-0 after:left-auto", children: [
387
+ /* @__PURE__ */ e.jsxs("div", { className: "flex gap-2 items-stretch", children: [
388
+ /* @__PURE__ */ e.jsxs("div", { className: "flex flex-1 items-center w-full border rounded-md border-border", children: [
389
+ /* @__PURE__ */ e.jsx("div", { className: "border-r border-border p-2 bg-muted rounded-l-md self-stretch font-semibold font-mono", children: a.toUpperCase() }),
390
+ /* @__PURE__ */ e.jsxs("div", { className: "p-2 font-mono text-xs", children: [
391
+ K,
392
+ z.length > 0 ? "?" : "",
393
+ z
394
+ ] })
395
+ ] }),
396
+ /* @__PURE__ */ e.jsx(L, { type: "submit", className: "h-auto flex gap-1", children: "Send" })
397
+ ] }),
398
+ /* @__PURE__ */ e.jsxs(Q, { defaultValue: d ? "parameters" : "headers", children: [
399
+ /* @__PURE__ */ e.jsxs("div", { className: "flex justify-between", children: [
400
+ /* @__PURE__ */ e.jsxs(W, { children: [
401
+ d && /* @__PURE__ */ e.jsx(C, { value: "parameters", children: "Parameters" }),
402
+ /* @__PURE__ */ e.jsxs(C, { value: "headers", children: [
403
+ "Headers",
404
+ " ",
405
+ b.headers.length > 0 && `(${b.headers.length})`
406
+ ] }),
407
+ /* @__PURE__ */ e.jsx(
408
+ C,
409
+ {
410
+ value: "body",
411
+ disabled: ["POST", "PUT", "PATCH", "DELETE"].includes(
412
+ a.toUpperCase()
413
+ ),
414
+ children: "Body"
415
+ }
416
+ )
417
+ ] }),
418
+ /* @__PURE__ */ e.jsxs("div", { className: "flex gap-2 items-center", children: [
419
+ "Auth:",
420
+ /* @__PURE__ */ e.jsxs(
421
+ se,
422
+ {
423
+ onValueChange: (t) => F.setValue("identity", t),
424
+ defaultValue: b.identity,
425
+ children: [
426
+ /* @__PURE__ */ e.jsx(ae, { className: "w-[180px] flex", children: S.isPending ? /* @__PURE__ */ e.jsx(M, {}) : /* @__PURE__ */ e.jsx(re, {}) }),
427
+ /* @__PURE__ */ e.jsxs(te, { align: "center", children: [
428
+ /* @__PURE__ */ e.jsx(D, { value: T, children: "None" }),
429
+ (O = S.data) == null ? void 0 : O.map((t) => /* @__PURE__ */ e.jsx(D, { value: t.id, children: t.label }, t.id))
430
+ ] })
431
+ ]
432
+ }
433
+ )
434
+ ] })
435
+ ] }),
436
+ /* @__PURE__ */ e.jsx(w, { value: "headers", children: /* @__PURE__ */ e.jsx(Ce, { control: m, register: h }) }),
437
+ /* @__PURE__ */ e.jsx(w, { value: "parameters", children: /* @__PURE__ */ e.jsxs("div", { className: "grid grid-cols-[min-content_1fr_1fr_auto]", children: [
438
+ n.length > 0 && /* @__PURE__ */ e.jsx("div", { className: "font-semibold my-3 col-span-3", children: "Path Parameters" }),
439
+ /* @__PURE__ */ e.jsx(Pe, { control: m, register: h }),
440
+ l.length > 0 && /* @__PURE__ */ e.jsx("span", { className: "font-semibold my-3 col-span-3", children: "Query Parameters" }),
441
+ /* @__PURE__ */ e.jsx(Te, { control: m })
442
+ ] }) }),
443
+ /* @__PURE__ */ e.jsx(w, { value: "body", children: /* @__PURE__ */ e.jsx(
444
+ "textarea",
445
+ {
446
+ ...h("body"),
447
+ className: "border border-border w-full rounded p-2 bg-muted h-40"
448
+ }
449
+ ) })
450
+ ] })
451
+ ] }),
452
+ /* @__PURE__ */ e.jsx("div", { className: "flex flex-col gap-4 p-8 bg-muted/70", children: i.error ? /* @__PURE__ */ e.jsx("div", { children: i.error.message }) : i.data ? /* @__PURE__ */ e.jsxs("div", { className: "flex flex-col gap-2", children: [
453
+ /* @__PURE__ */ e.jsx("div", { className: "flex gap-2", children: /* @__PURE__ */ e.jsxs("div", { className: "flex text-xs gap-6", children: [
454
+ /* @__PURE__ */ e.jsxs("div", { children: [
455
+ "Status: ",
456
+ i.data.status,
457
+ " ",
458
+ Re[i.data.status] ?? ""
459
+ ] }),
460
+ /* @__PURE__ */ e.jsxs("div", { children: [
461
+ "Time: ",
462
+ i.data.time.toFixed(0),
463
+ "ms"
464
+ ] }),
465
+ /* @__PURE__ */ e.jsxs("div", { children: [
466
+ "Size: ",
467
+ i.data.size,
468
+ " B"
469
+ ] })
470
+ ] }) }),
471
+ /* @__PURE__ */ e.jsxs(Q, { defaultValue: "response", children: [
472
+ /* @__PURE__ */ e.jsxs(W, { children: [
473
+ /* @__PURE__ */ e.jsx(C, { value: "response", children: "Response" }),
474
+ /* @__PURE__ */ e.jsx(C, { value: "headers", children: q.length ? `Headers (${q.length})` : "No headers" })
475
+ ] }),
476
+ /* @__PURE__ */ e.jsx(w, { value: "response", children: /* @__PURE__ */ e.jsx(V, { className: "shadow-none p-4", children: /* @__PURE__ */ e.jsx(
477
+ ie,
478
+ {
479
+ language: G ?? "json",
480
+ noBackground: !0,
481
+ className: "overflow-x-auto ",
482
+ code: i.data.body ?? JSON.stringify("")
483
+ }
484
+ ) }) }),
485
+ /* @__PURE__ */ e.jsx(w, { value: "headers", children: /* @__PURE__ */ e.jsxs(V, { className: "grid grid-cols-2 w-full gap-2.5 font-mono text-xs shadow-none p-4", children: [
486
+ /* @__PURE__ */ e.jsx("div", { className: "font-semibold", children: "Key" }),
487
+ /* @__PURE__ */ e.jsx("div", { className: "font-semibold", children: "Value" }),
488
+ q.map(([t, v]) => /* @__PURE__ */ e.jsxs($, { children: [
489
+ /* @__PURE__ */ e.jsx("div", { children: t }),
490
+ /* @__PURE__ */ e.jsx("div", { children: v })
491
+ ] }, t))
492
+ ] }) })
493
+ ] })
494
+ ] }) : /* @__PURE__ */ e.jsx("div", { className: "grid place-items-center h-full", children: /* @__PURE__ */ e.jsx("span", { className: "text-[16px] font-semibold text-muted-foreground", children: i.isPending ? /* @__PURE__ */ e.jsx(M, {}) : "Send a request first to see the response here" }) }) })
495
+ ] }) }) });
496
+ };
497
+ export {
498
+ T as NO_IDENTITY,
499
+ Be as Playground,
500
+ Be as default
501
+ };
502
+ //# sourceMappingURL=Playground-Czy7ha9z.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Playground-Czy7ha9z.js","sources":["../src/lib/ui/Card.tsx","../src/lib/plugins/openapi/playground/createUrl.ts","../src/lib/util/createVariantComponent.tsx","../src/lib/plugins/openapi/playground/InlineInput.tsx","../src/lib/plugins/openapi/playground/Headers.tsx","../src/lib/plugins/openapi/playground/PathParams.tsx","../src/lib/plugins/openapi/playground/QueryParams.tsx","../src/lib/plugins/openapi/playground/Playground.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { cn } from \"../util/cn.js\";\n\nconst Card = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\n \"rounded-xl border border-border bg-card text-card-foreground shadow\",\n className,\n )}\n {...props}\n />\n));\nCard.displayName = \"Card\";\n\nconst CardHeader = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\"flex flex-col space-y-1.5 p-6\", className)}\n {...props}\n />\n));\nCardHeader.displayName = \"CardHeader\";\n\nconst CardTitle = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLHeadingElement>\n>(({ className, ...props }, ref) => (\n <h3\n ref={ref}\n className={cn(\"font-semibold leading-none tracking-tight\", className)}\n {...props}\n />\n));\nCardTitle.displayName = \"CardTitle\";\n\nconst CardDescription = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLParagraphElement>\n>(({ className, ...props }, ref) => (\n <p\n ref={ref}\n className={cn(\"text-sm text-muted-foreground\", className)}\n {...props}\n />\n));\nCardDescription.displayName = \"CardDescription\";\n\nconst CardContent = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div ref={ref} className={cn(\"p-6 pt-0\", className)} {...props} />\n));\nCardContent.displayName = \"CardContent\";\n\nconst CardFooter = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\"flex items-center p-6 pt-0\", className)}\n {...props}\n />\n));\nCardFooter.displayName = \"CardFooter\";\n\nexport {\n Card,\n CardContent,\n CardDescription,\n CardFooter,\n CardHeader,\n CardTitle,\n};\n","import type { PlaygroundForm } from \"./Playground.js\";\n\nexport const createUrl = (host: string, path: string, data: PlaygroundForm) => {\n const url = new URL(\n host +\n path\n .split(\"/\")\n .map((v) =>\n v.startsWith(\"{\") && v.endsWith(\"}\")\n ? data.pathParams.find((part) => part.name === v.slice(1, -1))\n ?.value ?? v\n : v,\n )\n .join(\"/\"),\n );\n\n data.queryParams.forEach((param) => {\n url.searchParams.set(param.name, param.value);\n });\n\n return url;\n};\n","import { Slot } from \"@radix-ui/react-slot\";\nimport { cva } from \"class-variance-authority\";\nimport type { ClassValue } from \"clsx\";\nimport * as React from \"react\";\nimport type { JSX } from \"react/jsx-runtime\";\nimport { cn } from \"./cn.js\";\n\nconst createVariantComponent = <\n E extends keyof React.ReactHTML,\n C extends ReturnType<typeof cva>,\n>(\n tag: E,\n cvx: ClassValue | C,\n // variantProps: Array<keyof VariantProps<C>> = [],\n) => {\n const MyVariant = React.forwardRef<\n HTMLElement,\n JSX.IntrinsicElements[E] & { className?: ClassValue; asChild?: boolean }\n >(({ className, asChild, ...props }, ref) => {\n const Comp = asChild ? Slot : tag;\n\n return React.createElement(Comp, {\n ...props,\n ref,\n className:\n typeof cvx === \"function\" ? cvx({ className }) : cn(cvx, className),\n });\n });\n\n MyVariant.displayName = `VariantComponent(${tag})`;\n\n return MyVariant;\n};\n\nexport default createVariantComponent;\n","import createVariantComponent from \"../../../util/createVariantComponent.js\";\n\nexport const InlineInput = createVariantComponent(\n \"input\",\n \"px-2 bg-transparent h-6 font-mono text-xs m-2\",\n);\n","import { TriangleAlertIcon, XIcon } from \"lucide-react\";\nimport {\n Control,\n useFieldArray,\n UseFormRegister,\n useWatch,\n} from \"react-hook-form\";\nimport { Button } from \"../../../ui/Button.js\";\nimport { cn } from \"../../../util/cn.js\";\nimport { InlineInput } from \"./InlineInput.js\";\nimport { NO_IDENTITY, type PlaygroundForm } from \"./Playground.js\";\n\nexport const Headers = ({\n control,\n register,\n}: {\n register: UseFormRegister<PlaygroundForm>;\n control: Control<PlaygroundForm>;\n}) => {\n const { fields, append, remove } = useFieldArray<PlaygroundForm>({\n control,\n name: \"headers\",\n });\n const selectedIdentity = useWatch({ name: \"identity\", control });\n const liveHeaders = useWatch({ name: \"headers\", control });\n\n const disableAuth = selectedIdentity !== NO_IDENTITY;\n\n return (\n <div className=\"grid grid-cols-[1fr_1fr_auto]\">\n {fields.map((header, i) => {\n const isDisabledByAuth =\n disableAuth && liveHeaders.at(i)?.name === \"Authorization\";\n\n return (\n <div\n key={header.id}\n className={cn(\n \"grid-cols-subgrid col-span-full grid items-center gap-x-2 has-[:focus]:bg-muted hover:bg-muted rounded overflow-hidden group\",\n isDisabledByAuth && \"line-through\",\n )}\n title={\n isDisabledByAuth\n ? \"This header is disabled because authentication was selected\"\n : undefined\n }\n >\n <div className=\"flex gap-2 items-center\">\n <InlineInput\n {...register(`headers.${i}.name`)}\n placeholder=\"Name\"\n className=\"peer\"\n autoComplete=\"off\"\n />\n {isDisabledByAuth && (\n <TriangleAlertIcon size={16} className=\"text-amber-500\" />\n )}\n </div>\n <InlineInput\n placeholder={\"Value\"}\n className=\"peer\"\n {...register(`headers.${i}.value`)}\n autoComplete=\"off\"\n />\n <button\n className=\"hover:bg-black/5 p-1 rounded mr-2 text-muted-foreground invisible group-hover:visible peer-focus:visible\"\n onClick={() => {\n remove(i);\n }}\n type=\"button\"\n >\n <XIcon size={16} />\n </button>\n <div className=\"col-span-full border-b border-border\"></div>\n </div>\n );\n })}\n <Button\n className=\"col-span-full mt-4\"\n onClick={() => append({ name: \"\", value: \"\" })}\n type=\"button\"\n >\n Add header\n </Button>\n </div>\n );\n};\n","import { forwardRef, InputHTMLAttributes } from \"react\";\nimport { Control, useFieldArray, UseFormRegister } from \"react-hook-form\";\nimport { cn } from \"../../../util/cn.js\";\nimport { DATA_ATTR, usePastellizedColor } from \"../ColorizedParam.js\";\nimport { InlineInput } from \"./InlineInput.js\";\nimport type { PlaygroundForm } from \"./Playground.js\";\n\ntype ParameterValueProps = {\n part: string;\n} & InputHTMLAttributes<HTMLInputElement>;\n\nconst ParameterValue = forwardRef<HTMLInputElement, ParameterValueProps>(\n function ParameterValue({ part, className, ...props }, ref) {\n const color = usePastellizedColor(part);\n return (\n <InlineInput\n {...props}\n ref={ref}\n className={cn(className, \"opacity-80 data-[active=true]:opacity-100\")}\n style={{\n // color: `hsl(${color})`,\n outlineColor: `hsl(${color})`,\n }}\n />\n );\n },\n);\n\nexport const PathParams = ({\n control,\n register,\n}: {\n register: UseFormRegister<PlaygroundForm>;\n control: Control<PlaygroundForm>;\n}) => {\n const { fields } = useFieldArray<PlaygroundForm>({\n control,\n name: \"pathParams\",\n });\n\n return fields.map((part, i) => (\n <div\n key={part.id}\n className=\"grid-cols-subgrid col-span-full grid items-center gap-x-2 has-[:focus]:bg-muted hover:bg-muted rounded overflow-hidden group\"\n >\n <InlineInput\n {...register(`pathParams.${i}.name`)}\n disabled\n placeholder=\"Name\"\n className=\"peer\"\n />\n <ParameterValue\n {...register(`pathParams.${i}.value`)}\n part={part.name}\n {...{ [DATA_ATTR]: part.name }}\n placeholder=\"Value\"\n className=\"peer\"\n />\n\n <div className=\"col-span-full border-b border-border\"></div>\n </div>\n ));\n};\n","import { XIcon } from \"lucide-react\";\nimport {\n Control,\n Controller,\n useFieldArray,\n useFormContext,\n} from \"react-hook-form\";\nimport { cn } from \"../../../util/cn.js\";\nimport { InlineInput } from \"./InlineInput.js\";\nimport type { PlaygroundForm } from \"./Playground.js\";\n\nexport const QueryParams = ({\n control,\n}: {\n control: Control<PlaygroundForm>;\n}) => {\n const { fields } = useFieldArray<PlaygroundForm>({\n control,\n name: \"queryParams\",\n });\n const form = useFormContext<PlaygroundForm>();\n\n const requiredFields = form\n .getValues(`queryParams`)\n .map((param) => param.isRequired);\n\n return fields.map((field, i) => (\n <div\n key={field.id}\n className=\"px-2 grid-cols-subgrid col-span-full grid items-center gap-x-2 has-[:focus]:bg-muted hover:bg-accent rounded overflow-hidden group\"\n >\n <Controller\n control={control}\n name={`queryParams.${i}.active`}\n render={({ field }) => (\n <input\n type=\"checkbox\"\n id={`queryParams.${i}.active`}\n checked={field.value}\n onChange={field.onChange}\n />\n )}\n />\n\n <Controller\n control={control}\n render={({ field }) => {\n return (\n <InlineInput asChild>\n <label\n className=\"flex items-center\"\n htmlFor={`queryParams.${i}.active`}\n title={requiredFields[i] ? \"Required field\" : undefined}\n >\n {field.value}\n {requiredFields[i] && <sup className=\"text-destructive\">*</sup>}\n </label>\n </InlineInput>\n );\n }}\n name={`queryParams.${i}.name`}\n />\n <Controller\n control={control}\n render={({ field }) => {\n return (\n <InlineInput {...field} placeholder=\"Value\" className=\"peer\" />\n );\n }}\n name={`queryParams.${i}.value`}\n />\n <Controller\n control={control}\n render={({ field }) => {\n return (\n <button\n type=\"button\"\n className={cn(\n \"hover:bg-black/5 p-1 rounded mr-2 text-muted-foreground invisible group-hover:visible peer-focus:visible\",\n field.value.length === 0 && \"opacity-0 pointer-events-none\",\n )}\n onClick={() => field.onChange(\"\")}\n >\n <XIcon size={16} />\n </button>\n );\n }}\n name={`queryParams.${i}.value`}\n />\n\n <div className=\"-mx-2 col-span-full border-b border-border\"></div>\n </div>\n ));\n};\n","import { useMutation } from \"@tanstack/react-query\";\nimport { Fragment } from \"react\";\nimport { FormProvider, useForm } from \"react-hook-form\";\nimport { useQuery } from \"urql\";\nimport { useApiIdentities } from \"../../../components/context/DevPortalProvider.js\";\nimport {\n Select,\n SelectContent,\n SelectItem,\n SelectTrigger,\n SelectValue,\n} from \"../../../components/Select.js\";\nimport { Spinner } from \"../../../components/Spinner.js\";\nimport { SyntaxHighlight } from \"../../../components/SyntaxHighlight.js\";\nimport { Button } from \"../../../ui/Button.js\";\nimport { Card } from \"../../../ui/Card.js\";\nimport { Tabs, TabsContent, TabsList, TabsTrigger } from \"../../../ui/Tabs.js\";\nimport { ColorizedParam } from \"../ColorizedParam.js\";\nimport { useOasConfig } from \"../context.js\";\nimport { graphql } from \"../graphql/index.js\";\nimport { createUrl } from \"./createUrl.js\";\nimport { Headers } from \"./Headers.js\";\nimport { PathParams } from \"./PathParams.js\";\nimport { QueryParams } from \"./QueryParams.js\";\n\nexport const NO_IDENTITY = \"__none\";\n\nconst GetServerQuery = graphql(/* GraphQL */ `\n query getServerQuery($input: JSON!, $type: SchemaType!) {\n schema(input: $input, type: $type) {\n url\n }\n }\n`);\n\nfunction mimeTypeToLanguage(mimeType: string) {\n const mimeTypeMapping = {\n \"application/json\": \"json\",\n \"text/json\": \"json\",\n \"text/html\": \"html\",\n \"text/css\": \"css\",\n \"text/javascript\": \"javascript\",\n \"application/xml\": \"xml\",\n \"application/xhtml+xml\": \"xhtml\",\n \"text/plain\": \"plain\",\n } as const;\n\n return Object.entries(mimeTypeMapping).find(([mime]) =>\n mimeType.includes(mime),\n )?.[0][1];\n}\n\nconst statusCodeMap: Record<number, string> = {\n 200: \"OK\",\n 201: \"Created\",\n 202: \"Accepted\",\n 204: \"No Content\",\n 400: \"Bad Request\",\n 401: \"Unauthorized\",\n 403: \"Forbidden\",\n 404: \"Not Found\",\n 405: \"Method Not Allowed\",\n 500: \"Internal Server Error\",\n};\n\nexport type Header = {\n name: string;\n value: string;\n};\nexport type QueryParam = {\n name: string;\n value: string;\n active: boolean;\n isRequired: boolean;\n};\nexport type PathParam = {\n name: string;\n value: string;\n};\n\nexport type PlaygroundForm = {\n body: string;\n queryParams: QueryParam[];\n pathParams: PathParam[];\n headers: Header[];\n identity?: string;\n};\n\nexport type PlaygroundContentProps = {\n url: string;\n method: string;\n headers?: Header[];\n queryParams?: QueryParam[];\n pathParams?: PathParam[];\n hasParams: boolean;\n};\n\nexport const Playground = ({\n url,\n method,\n headers = [{ name: \"\", value: \"\" }],\n queryParams = [],\n pathParams = [],\n hasParams,\n}: PlaygroundContentProps) => {\n const variables = useOasConfig();\n const [server] = useQuery({ query: GetServerQuery, variables });\n\n const { register, control, handleSubmit, watch, ...form } =\n useForm<PlaygroundForm>({\n defaultValues: {\n body: \"\",\n queryParams,\n headers,\n pathParams,\n identity: NO_IDENTITY,\n },\n });\n const formState = watch();\n const identities = useApiIdentities();\n\n const queryMutation = useMutation({\n mutationFn: async (data: PlaygroundForm) => {\n const requestUrl = createUrl(server.data?.schema.url ?? \"\", url, data);\n const start = performance.now();\n\n const request = new Request(requestUrl, {\n method: method.toUpperCase(),\n headers: Object.fromEntries(\n data.headers\n .filter((h) => h.name)\n .map((header) => [header.name, header.value]),\n ),\n });\n\n if (data.identity !== NO_IDENTITY) {\n identities.data\n ?.find((i) => i.id === data.identity)\n ?.authorizeRequest(request);\n }\n const response = await fetch(request);\n\n const body = await response.text();\n\n return {\n status: response.status,\n headers: response.headers,\n size: body.length,\n body,\n time: performance.now() - start,\n };\n },\n });\n\n const path = url.split(\"/\").map((part, i, arr) => (\n <Fragment key={part}>\n {part.startsWith(\"{\") && part.endsWith(\"}\") ? (\n <ColorizedParam\n name={part}\n backgroundOpacity=\"0\"\n slug={part.slice(1, -1)}\n >\n {\n formState.pathParams.find((p) => p.name === part.slice(1, -1))\n ?.value\n }\n </ColorizedParam>\n ) : (\n part\n )}\n {i < arr.length - 1 && \"/\"}\n <wbr />\n </Fragment>\n ));\n\n const lang = mimeTypeToLanguage(\n queryMutation.data?.headers.get(\"Content-Type\") ?? \"\",\n );\n\n const headerEntries = Array.from(queryMutation.data?.headers.entries() ?? []);\n\n const urlQueryParams = formState.queryParams\n .filter((p) => p.active)\n .map((p) => (\n <Fragment key={p.name}>\n {p.name}={p.value}\n <wbr />\n </Fragment>\n ));\n return (\n <FormProvider {...{ register, control, handleSubmit, watch, ...form }}>\n <form onSubmit={handleSubmit((data) => queryMutation.mutateAsync(data))}>\n <div className=\"grid grid-cols-2 text-sm h-full\">\n <div className=\"flex flex-col gap-4 p-8 bg-muted/50 after:bg-muted-foreground/20 relative after:absolute after:w-px after:inset-0 after:left-auto\">\n <div className=\"flex gap-2 items-stretch\">\n <div className=\"flex flex-1 items-center w-full border rounded-md border-border\">\n <div className=\"border-r border-border p-2 bg-muted rounded-l-md self-stretch font-semibold font-mono\">\n {method.toUpperCase()}\n </div>\n <div className=\"p-2 font-mono text-xs\">\n {path}\n {urlQueryParams.length > 0 ? \"?\" : \"\"}\n {urlQueryParams}\n </div>\n </div>\n <Button type=\"submit\" className=\"h-auto flex gap-1\">\n Send\n </Button>\n </div>\n <Tabs defaultValue={hasParams ? \"parameters\" : \"headers\"}>\n <div className=\"flex justify-between\">\n <TabsList>\n {hasParams && (\n <TabsTrigger value=\"parameters\">Parameters</TabsTrigger>\n )}\n <TabsTrigger value=\"headers\">\n Headers{\" \"}\n {formState.headers.length > 0 &&\n `(${formState.headers.length})`}\n </TabsTrigger>\n <TabsTrigger\n value=\"body\"\n disabled={[\"POST\", \"PUT\", \"PATCH\", \"DELETE\"].includes(\n method.toUpperCase(),\n )}\n >\n Body\n </TabsTrigger>\n </TabsList>\n <div className=\"flex gap-2 items-center\">\n Auth:\n <Select\n onValueChange={(value) => form.setValue(\"identity\", value)}\n defaultValue={formState.identity}\n >\n <SelectTrigger className=\"w-[180px] flex\">\n {identities.isPending ? <Spinner /> : <SelectValue />}\n </SelectTrigger>\n <SelectContent align=\"center\">\n <SelectItem value={NO_IDENTITY}>None</SelectItem>\n {identities.data?.map((identity) => (\n <SelectItem key={identity.id} value={identity.id}>\n {identity.label}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n </div>\n </div>\n <TabsContent value=\"headers\">\n <Headers control={control} register={register} />\n </TabsContent>\n <TabsContent value=\"parameters\">\n <div className=\"grid grid-cols-[min-content_1fr_1fr_auto]\">\n {pathParams.length > 0 && (\n <div className=\"font-semibold my-3 col-span-3\">\n Path Parameters\n </div>\n )}\n <PathParams control={control} register={register} />\n {queryParams.length > 0 && (\n <span className=\"font-semibold my-3 col-span-3\">\n Query Parameters\n </span>\n )}\n <QueryParams control={control} />\n </div>\n </TabsContent>\n <TabsContent value=\"body\">\n <textarea\n {...register(\"body\")}\n className=\"border border-border w-full rounded p-2 bg-muted h-40\"\n />\n </TabsContent>\n </Tabs>\n </div>\n <div className=\"flex flex-col gap-4 p-8 bg-muted/70\">\n {queryMutation.error ? (\n <div>{queryMutation.error.message}</div>\n ) : queryMutation.data ? (\n <div className=\"flex flex-col gap-2\">\n <div className=\"flex gap-2\">\n <div className=\"flex text-xs gap-6\">\n <div>\n Status: {queryMutation.data.status}{\" \"}\n {statusCodeMap[queryMutation.data.status] ?? \"\"}\n </div>\n <div>Time: {queryMutation.data.time.toFixed(0)}ms</div>\n <div>Size: {queryMutation.data.size} B</div>\n </div>\n </div>\n {/*<UrlDisplay host={host} path={url} />*/}\n <Tabs defaultValue=\"response\">\n <TabsList>\n <TabsTrigger value=\"response\">Response</TabsTrigger>\n <TabsTrigger value=\"headers\">\n {headerEntries.length\n ? `Headers (${headerEntries.length})`\n : \"No headers\"}\n </TabsTrigger>\n </TabsList>\n\n <TabsContent value=\"response\">\n <Card className=\"shadow-none p-4\">\n <SyntaxHighlight\n language={lang ?? \"json\"}\n noBackground\n className=\"overflow-x-auto \"\n code={queryMutation.data.body ?? JSON.stringify(\"\")}\n />\n </Card>\n </TabsContent>\n <TabsContent value=\"headers\">\n <Card className=\"grid grid-cols-2 w-full gap-2.5 font-mono text-xs shadow-none p-4\">\n <div className=\"font-semibold\">Key</div>\n <div className=\"font-semibold\">Value</div>\n {headerEntries.map(([key, value]) => (\n <Fragment key={key}>\n <div>{key}</div>\n <div>{value}</div>\n </Fragment>\n ))}\n </Card>\n </TabsContent>\n </Tabs>\n </div>\n ) : (\n <div className=\"grid place-items-center h-full\">\n <span className=\"text-[16px] font-semibold text-muted-foreground\">\n {queryMutation.isPending ? (\n <Spinner />\n ) : (\n \"Send a request first to see the response here\"\n )}\n </span>\n </div>\n )}\n </div>\n </div>\n </form>\n </FormProvider>\n );\n};\n\nexport default Playground;\n"],"names":["Card","React","className","props","ref","jsx","cn","CardHeader","CardTitle","CardDescription","CardContent","CardFooter","createUrl","host","path","data","url","v","_a","part","param","createVariantComponent","tag","cvx","MyVariant","asChild","Comp","Slot","InlineInput","Headers","control","register","fields","append","remove","useFieldArray","selectedIdentity","useWatch","liveHeaders","disableAuth","NO_IDENTITY","jsxs","header","i","isDisabledByAuth","TriangleAlertIcon","XIcon","Button","ParameterValue","forwardRef","color","usePastellizedColor","PathParams","DATA_ATTR","QueryParams","requiredFields","useFormContext","field","Controller","GetServerQuery","graphql","mimeTypeToLanguage","mimeType","mime","statusCodeMap","Playground","method","headers","queryParams","pathParams","hasParams","variables","useOasConfig","server","useQuery","handleSubmit","watch","form","useForm","formState","identities","useApiIdentities","queryMutation","useMutation","requestUrl","start","request","h","_c","_b","response","body","arr","Fragment","ColorizedParam","p","lang","headerEntries","urlQueryParams","FormProvider","Tabs","TabsList","TabsTrigger","Select","value","SelectTrigger","Spinner","SelectValue","SelectContent","SelectItem","identity","TabsContent","SyntaxHighlight","key"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { j as r, O as i } from "./jsx-runtime-CJZJivg2.js";
2
2
  import { O as t } from "./context-_fYfJFgk.js";
3
- import { P as s } from "./urql-DMlBWUKL.js";
3
+ import { P as s } from "./urql-DEKdguFl.js";
4
4
  function p({
5
5
  config: o,
6
6
  client: e
@@ -10,4 +10,4 @@ function p({
10
10
  export {
11
11
  p as OpenApiRoute
12
12
  };
13
- //# sourceMappingURL=Route-C1LyvITr.js.map
13
+ //# sourceMappingURL=Route-D-egsGHx.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Route-C1LyvITr.js","sources":["../src/lib/plugins/openapi/Route.tsx"],"sourcesContent":["import { Outlet } from \"react-router-dom\";\nimport { OasConfigProvider } from \"./context.js\";\nimport { OasPluginConfig } from \"./interfaces.js\";\n\nimport { Provider, Client as UrqlClient } from \"./util/urql.js\";\n\nexport function OpenApiRoute({\n config,\n client,\n}: {\n config: OasPluginConfig;\n client: typeof UrqlClient;\n}) {\n return (\n <Provider value={client}>\n <OasConfigProvider value={{ config }}>\n <Outlet />\n </OasConfigProvider>\n </Provider>\n );\n}\n"],"names":["OpenApiRoute","config","client","jsx","Provider","OasConfigProvider","Outlet"],"mappings":";;;AAMO,SAASA,EAAa;AAAA,EAC3B,QAAAC;AAAA,EACA,QAAAC;AACF,GAGG;AACD,SACGC,gBAAAA,EAAAA,IAAAC,GAAA,EAAS,OAAOF,GACf,UAACC,gBAAAA,EAAA,IAAAE,GAAA,EAAkB,OAAO,EAAE,QAAAJ,EAAO,GACjC,UAACE,gBAAAA,EAAA,IAAAG,GAAA,EAAO,GACV,EACF,CAAA;AAEJ;"}
1
+ {"version":3,"file":"Route-D-egsGHx.js","sources":["../src/lib/plugins/openapi/Route.tsx"],"sourcesContent":["import { Outlet } from \"react-router-dom\";\nimport { OasConfigProvider } from \"./context.js\";\nimport { OasPluginConfig } from \"./interfaces.js\";\n\nimport { Provider, Client as UrqlClient } from \"./util/urql.js\";\n\nexport function OpenApiRoute({\n config,\n client,\n}: {\n config: OasPluginConfig;\n client: typeof UrqlClient;\n}) {\n return (\n <Provider value={client}>\n <OasConfigProvider value={{ config }}>\n <Outlet />\n </OasConfigProvider>\n </Provider>\n );\n}\n"],"names":["OpenApiRoute","config","client","jsx","Provider","OasConfigProvider","Outlet"],"mappings":";;;AAMO,SAASA,EAAa;AAAA,EAC3B,QAAAC;AAAA,EACA,QAAAC;AACF,GAGG;AACD,SACGC,gBAAAA,EAAAA,IAAAC,GAAA,EAAS,OAAOF,GACf,UAACC,gBAAAA,EAAA,IAAAE,GAAA,EAAkB,OAAO,EAAE,QAAAJ,EAAO,GACjC,UAACE,gBAAAA,EAAA,IAAAG,GAAA,EAAO,GACV,EACF,CAAA;AAEJ;"}