zudoku 0.52.0 → 0.52.2

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