zudoku 0.55.1 → 0.56.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (129) hide show
  1. package/dist/app/main.d.ts +1 -1
  2. package/dist/app/main.js +11 -4
  3. package/dist/app/main.js.map +1 -1
  4. package/dist/config/validators/InputNavigationSchema.d.ts +4 -0
  5. package/dist/config/validators/InputNavigationSchema.js +1 -0
  6. package/dist/config/validators/InputNavigationSchema.js.map +1 -1
  7. package/dist/config/validators/validate.d.ts +1 -0
  8. package/dist/config/validators/validate.js +1 -0
  9. package/dist/config/validators/validate.js.map +1 -1
  10. package/dist/flat-config.d.ts +329 -0
  11. package/dist/index.d.ts +1 -0
  12. package/dist/index.js +1 -0
  13. package/dist/index.js.map +1 -1
  14. package/dist/lib/components/BuildCheck.js +7 -0
  15. package/dist/lib/components/BuildCheck.js.map +1 -1
  16. package/dist/lib/components/Header.js +1 -1
  17. package/dist/lib/components/Header.js.map +1 -1
  18. package/dist/lib/components/Layout.js +4 -7
  19. package/dist/lib/components/Layout.js.map +1 -1
  20. package/dist/lib/components/Meta.d.ts +2 -0
  21. package/dist/lib/components/Meta.js +11 -0
  22. package/dist/lib/components/Meta.js.map +1 -0
  23. package/dist/lib/components/context/ZudokuContext.js +1 -1
  24. package/dist/lib/components/context/ZudokuContext.js.map +1 -1
  25. package/dist/lib/components/index.d.ts +1 -0
  26. package/dist/lib/components/index.js +2 -0
  27. package/dist/lib/components/index.js.map +1 -1
  28. package/dist/lib/components/navigation/NavigationItem.js +3 -2
  29. package/dist/lib/components/navigation/NavigationItem.js.map +1 -1
  30. package/dist/lib/components/navigation/utils.js +12 -11
  31. package/dist/lib/components/navigation/utils.js.map +1 -1
  32. package/dist/lib/core/ZudokuContext.d.ts +1 -0
  33. package/dist/lib/core/ZudokuContext.js.map +1 -1
  34. package/dist/lib/plugins/custom-pages/index.js +3 -0
  35. package/dist/lib/plugins/custom-pages/index.js.map +1 -1
  36. package/dist/lib/ui/CodeBlock.js +2 -2
  37. package/dist/lib/ui/CodeBlock.js.map +1 -1
  38. package/dist/lib/ui/Dialog.js +2 -2
  39. package/dist/lib/ui/Dialog.js.map +1 -1
  40. package/dist/vite/plugin-mdx.js +1 -1
  41. package/dist/vite/plugin-mdx.js.map +1 -1
  42. package/dist/vite/sitemap.js +10 -9
  43. package/dist/vite/sitemap.js.map +1 -1
  44. package/lib/{CodeBlock-CVT6z0PP.js → CodeBlock-yJjjRwj-.js} +3 -3
  45. package/lib/CodeBlock-yJjjRwj-.js.map +1 -0
  46. package/lib/{Command-BYukybsa.js → Command-CfgGXMfJ.js} +2 -2
  47. package/lib/{Command-BYukybsa.js.map → Command-CfgGXMfJ.js.map} +1 -1
  48. package/lib/Dialog-B7YnrNnG.js +114 -0
  49. package/lib/Dialog-B7YnrNnG.js.map +1 -0
  50. package/lib/{MdxPage-BKyikAKk.js → MdxPage-D49lfheg.js} +7 -7
  51. package/lib/{MdxPage-BKyikAKk.js.map → MdxPage-D49lfheg.js.map} +1 -1
  52. package/lib/{OAuthErrorPage--neTdY8H.js → OAuthErrorPage-COKL9zOi.js} +6 -6
  53. package/lib/{OAuthErrorPage--neTdY8H.js.map → OAuthErrorPage-COKL9zOi.js.map} +1 -1
  54. package/lib/{OasProvider-yysXhMVI.js → OasProvider-CCv_-asV.js} +2 -2
  55. package/lib/{OasProvider-yysXhMVI.js.map → OasProvider-CCv_-asV.js.map} +1 -1
  56. package/lib/{OperationList-CSYrpcpD.js → OperationList-DkS0B0y1.js} +11 -11
  57. package/lib/{OperationList-CSYrpcpD.js.map → OperationList-DkS0B0y1.js.map} +1 -1
  58. package/lib/{Pagination-QsyyJuoq.js → Pagination-VfR2DCXf.js} +2 -2
  59. package/lib/{Pagination-QsyyJuoq.js.map → Pagination-VfR2DCXf.js.map} +1 -1
  60. package/lib/{RouteGuard-D17dUEM_.js → RouteGuard-CSi9-hSR.js} +4 -4
  61. package/lib/{RouteGuard-D17dUEM_.js.map → RouteGuard-CSi9-hSR.js.map} +1 -1
  62. package/lib/{SchemaList-CSZkqmwI.js → SchemaList-B7ezc5Uy.js} +8 -8
  63. package/lib/{SchemaList-CSZkqmwI.js.map → SchemaList-B7ezc5Uy.js.map} +1 -1
  64. package/lib/{SchemaView-bhJ_U4vL.js → SchemaView-BuL-ycaR.js} +4 -4
  65. package/lib/{SchemaView-bhJ_U4vL.js.map → SchemaView-BuL-ycaR.js.map} +1 -1
  66. package/lib/{Select-DlfI9FFO.js → Select-B9h5k2Pz.js} +3 -3
  67. package/lib/{Select-DlfI9FFO.js.map → Select-B9h5k2Pz.js.map} +1 -1
  68. package/lib/{SignUp-C6ogvx5s.js → SignUp-Cn_gZ7UN.js} +3 -3
  69. package/lib/{SignUp-C6ogvx5s.js.map → SignUp-Cn_gZ7UN.js.map} +1 -1
  70. package/lib/{Slot-Dgy8tqef.js → Slot-BFCJzl5J.js} +358 -358
  71. package/lib/{Slot-Dgy8tqef.js.map → Slot-BFCJzl5J.js.map} +1 -1
  72. package/lib/{SyntaxHighlight-BD_Z_Csq.js → SyntaxHighlight-CSW4eaIJ.js} +313 -313
  73. package/lib/SyntaxHighlight-CSW4eaIJ.js.map +1 -0
  74. package/lib/{Toc-CjX59Ljo.js → Toc-B9K7a2FS.js} +2 -2
  75. package/lib/{Toc-CjX59Ljo.js.map → Toc-B9K7a2FS.js.map} +1 -1
  76. package/lib/{ZudokuContext-Coxa0DfE.js → ZudokuContext-mDDq1hft.js} +76 -68
  77. package/lib/{ZudokuContext-Coxa0DfE.js.map → ZudokuContext-mDDq1hft.js.map} +1 -1
  78. package/lib/{circular-Q4G1nwyb.js → circular-BMUvC5RK.js} +2 -2
  79. package/lib/{circular-Q4G1nwyb.js.map → circular-BMUvC5RK.js.map} +1 -1
  80. package/lib/{createServer-Dtstxqn7.js → createServer-I8dX2VSu.js} +4 -4
  81. package/lib/{createServer-Dtstxqn7.js.map → createServer-I8dX2VSu.js.map} +1 -1
  82. package/lib/{errors-BoJYHL2E.js → errors-D2Qdkul6.js} +2 -2
  83. package/lib/{errors-BoJYHL2E.js.map → errors-D2Qdkul6.js.map} +1 -1
  84. package/lib/{hook-DEPqwjke.js → hook-CGx8MPrU.js} +2 -2
  85. package/lib/{hook-DEPqwjke.js.map → hook-CGx8MPrU.js.map} +1 -1
  86. package/lib/{index-DYs8gxKX.js → index-Cc70HIQT.js} +106 -101
  87. package/lib/index-Cc70HIQT.js.map +1 -0
  88. package/lib/{index-Bl1W774G.js → index-ChOC1gfC.js} +2 -2
  89. package/lib/{index-Bl1W774G.js.map → index-ChOC1gfC.js.map} +1 -1
  90. package/lib/{index-DRkS-pvf.js → index-DZqSbZzE.js} +16 -16
  91. package/lib/{index-DRkS-pvf.js.map → index-DZqSbZzE.js.map} +1 -1
  92. package/lib/ui/CodeBlock.js +1 -1
  93. package/lib/ui/Command.js +1 -1
  94. package/lib/ui/Dialog.js +56 -41
  95. package/lib/ui/Dialog.js.map +1 -1
  96. package/lib/ui/SyntaxHighlight.js +3 -3
  97. package/lib/zudoku.auth-auth0.js +1 -1
  98. package/lib/zudoku.auth-azureb2c.js +5 -5
  99. package/lib/zudoku.auth-clerk.js +2 -2
  100. package/lib/zudoku.auth-openid.js +5 -5
  101. package/lib/zudoku.auth-supabase.js +2 -2
  102. package/lib/zudoku.components.js +19 -18
  103. package/lib/zudoku.hooks.js +3 -3
  104. package/lib/zudoku.plugin-api-catalog.js +6 -6
  105. package/lib/zudoku.plugin-api-keys.js +6 -6
  106. package/lib/zudoku.plugin-custom-pages.js +8 -5
  107. package/lib/zudoku.plugin-custom-pages.js.map +1 -1
  108. package/lib/zudoku.plugin-markdown.js +1 -1
  109. package/lib/zudoku.plugin-openapi.js +3 -3
  110. package/lib/zudoku.plugin-search-pagefind.js +5 -5
  111. package/package.json +6 -6
  112. package/src/app/main.tsx +18 -4
  113. package/src/lib/components/BuildCheck.tsx +10 -0
  114. package/src/lib/components/Header.tsx +3 -2
  115. package/src/lib/components/Layout.tsx +2 -21
  116. package/src/lib/components/Meta.tsx +32 -0
  117. package/src/lib/components/context/ZudokuContext.ts +1 -1
  118. package/src/lib/components/index.ts +2 -0
  119. package/src/lib/components/navigation/NavigationItem.tsx +4 -2
  120. package/src/lib/components/navigation/utils.ts +12 -12
  121. package/src/lib/core/ZudokuContext.ts +1 -0
  122. package/src/lib/plugins/custom-pages/index.tsx +3 -0
  123. package/src/lib/ui/CodeBlock.tsx +2 -2
  124. package/src/lib/ui/Dialog.tsx +12 -3
  125. package/lib/CodeBlock-CVT6z0PP.js.map +0 -1
  126. package/lib/Dialog-u9Uz9sTt.js +0 -99
  127. package/lib/Dialog-u9Uz9sTt.js.map +0 -1
  128. package/lib/SyntaxHighlight-BD_Z_Csq.js.map +0 -1
  129. package/lib/index-DYs8gxKX.js.map +0 -1
@@ -2,7 +2,7 @@ import "../jsx-runtime-C5mzlN2N.js";
2
2
  import "lucide-react";
3
3
  import "react";
4
4
  import "../cn-dYga0KKN.js";
5
- import { C as e } from "../CodeBlock-CVT6z0PP.js";
5
+ import { C as e } from "../CodeBlock-yJjjRwj-.js";
6
6
  export {
7
7
  e as CodeBlock
8
8
  };
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-u9Uz9sTt.js";
5
+ import { D as p, a as l } from "../Dialog-B7YnrNnG.js";
6
6
  import { c as r } from "../cn-dYga0KKN.js";
7
7
  const m = s.forwardRef(({ className: a, ...e }, d) => /* @__PURE__ */ o.jsx(
8
8
  t,
package/lib/ui/Dialog.js CHANGED
@@ -1,99 +1,114 @@
1
- import { j as o } from "../jsx-runtime-C5mzlN2N.js";
1
+ import { j as t } from "../jsx-runtime-C5mzlN2N.js";
2
2
  import * as e from "@radix-ui/react-dialog";
3
3
  import * as l from "react";
4
- import { XIcon as c } from "lucide-react";
5
- import { c as i } from "../cn-dYga0KKN.js";
6
- const j = e.Root, b = e.Trigger, m = e.Portal, h = e.Close, n = l.forwardRef(({ className: a, ...t }, s) => /* @__PURE__ */ o.jsx(
4
+ import { CircleIcon as c, XIcon as p } from "lucide-react";
5
+ import { c as r } from "../cn-dYga0KKN.js";
6
+ const j = e.Root, b = e.Trigger, m = e.Portal, v = e.Close, i = l.forwardRef(({ className: a, ...o }, s) => /* @__PURE__ */ t.jsx(
7
7
  e.Overlay,
8
8
  {
9
9
  ref: s,
10
- className: i(
10
+ className: r(
11
11
  "fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",
12
12
  a
13
13
  ),
14
- ...t
14
+ ...o
15
15
  }
16
16
  ));
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
- /* @__PURE__ */ o.jsx(n, {}),
20
- /* @__PURE__ */ o.jsxs(
17
+ i.displayName = e.Overlay.displayName;
18
+ const f = l.forwardRef(({ className: a, children: o, showCloseButton: s = !0, ...n }, d) => /* @__PURE__ */ t.jsxs(m, { children: [
19
+ /* @__PURE__ */ t.jsx(i, {}),
20
+ /* @__PURE__ */ t.jsxs(
21
21
  e.Content,
22
22
  {
23
- ref: r,
24
- className: i(
23
+ ref: d,
24
+ className: r(
25
25
  "fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg",
26
26
  a
27
27
  ),
28
- ...d,
28
+ ...n,
29
29
  children: [
30
- t,
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
- /* @__PURE__ */ o.jsx("span", { className: "sr-only", children: "Close" })
30
+ o,
31
+ s && /* @__PURE__ */ t.jsxs(e.Close, { className: "absolute p-3 group -left-1.5 -top-1.5 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__ */ t.jsx(
33
+ c,
34
+ {
35
+ className: "h-2 w-2 transition-all border border-transparent group-hover:border-white/20 rounded-full group-hover:scale-180 group-hover:text-red-400",
36
+ strokeWidth: 2,
37
+ fill: "currentColor"
38
+ }
39
+ ),
40
+ /* @__PURE__ */ t.jsx(
41
+ p,
42
+ {
43
+ className: "h-2 w-2 absolute top-3 left-3 text-transparent group-hover:text-red-800 transition-colors",
44
+ strokeWidth: 2,
45
+ fill: "currentColor"
46
+ }
47
+ ),
48
+ /* @__PURE__ */ t.jsx("span", { className: "sr-only", children: "Close" })
34
49
  ] })
35
50
  ]
36
51
  }
37
52
  )
38
53
  ] }));
39
54
  f.displayName = e.Content.displayName;
40
- const p = ({
55
+ const g = ({
41
56
  className: a,
42
- ...t
43
- }) => /* @__PURE__ */ o.jsx(
57
+ ...o
58
+ }) => /* @__PURE__ */ t.jsx(
44
59
  "div",
45
60
  {
46
- className: i(
61
+ className: r(
47
62
  "flex flex-col space-y-1.5 text-center sm:text-left",
48
63
  a
49
64
  ),
50
- ...t
65
+ ...o
51
66
  }
52
67
  );
53
- p.displayName = "DialogHeader";
54
- const g = ({
68
+ g.displayName = "DialogHeader";
69
+ const u = ({
55
70
  className: a,
56
- ...t
57
- }) => /* @__PURE__ */ o.jsx(
71
+ ...o
72
+ }) => /* @__PURE__ */ t.jsx(
58
73
  "div",
59
74
  {
60
- className: i(
75
+ className: r(
61
76
  "flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",
62
77
  a
63
78
  ),
64
- ...t
79
+ ...o
65
80
  }
66
81
  );
67
- g.displayName = "DialogFooter";
68
- const x = l.forwardRef(({ className: a, ...t }, s) => /* @__PURE__ */ o.jsx(
82
+ u.displayName = "DialogFooter";
83
+ const x = l.forwardRef(({ className: a, ...o }, s) => /* @__PURE__ */ t.jsx(
69
84
  e.Title,
70
85
  {
71
86
  ref: s,
72
- className: i(
87
+ className: r(
73
88
  "text-lg font-semibold leading-none tracking-tight",
74
89
  a
75
90
  ),
76
- ...t
91
+ ...o
77
92
  }
78
93
  ));
79
94
  x.displayName = e.Title.displayName;
80
- const u = l.forwardRef(({ className: a, ...t }, s) => /* @__PURE__ */ o.jsx(
95
+ const y = l.forwardRef(({ className: a, ...o }, s) => /* @__PURE__ */ t.jsx(
81
96
  e.Description,
82
97
  {
83
98
  ref: s,
84
- className: i("text-sm text-muted-foreground", a),
85
- ...t
99
+ className: r("text-sm text-muted-foreground", a),
100
+ ...o
86
101
  }
87
102
  ));
88
- u.displayName = e.Description.displayName;
103
+ y.displayName = e.Description.displayName;
89
104
  export {
90
105
  j as Dialog,
91
- h as DialogClose,
106
+ v as DialogClose,
92
107
  f as DialogContent,
93
- u as DialogDescription,
94
- g as DialogFooter,
95
- p as DialogHeader,
96
- n as DialogOverlay,
108
+ y as DialogDescription,
109
+ u as DialogFooter,
110
+ g as DialogHeader,
111
+ i as DialogOverlay,
97
112
  m as DialogPortal,
98
113
  x as DialogTitle,
99
114
  b as DialogTrigger
@@ -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 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,EAAA,GAASC,MAC1BC,gBAAAA,EAAAA;AAAAA,EAACT,EAAgB;AAAA,EAAhB;AAAA,IACC,KAAAQ;AAAA,IACA,WAAWE;AAAA,MACT;AAAA,MACAJ;AAAA,IAAA;AAAA,IAED,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,EAAA,GAASC,6BAC3DN,GAAA,EACC,UAAA;AAAA,EAAAO,gBAAAA,EAAAA,IAACL,GAAA,EAAc;AAAA,EACfU,gBAAAA,EAAAA;AAAAA,IAACd,EAAgB;AAAA,IAAhB;AAAA,MACC,KAAAQ;AAAA,MACA,WAAWE;AAAA,QACT;AAAA,QACAJ;AAAA,MAAA;AAAA,MAED,GAAGC;AAAA,MAEH,UAAA;AAAA,QAAAK;AAAA,QACAC,KACCC,gBAAAA,EAAAA,KAACd,EAAgB,OAAhB,EAAsB,WAAU,kRAC/B,UAAA;AAAA,UAAAS,gBAAAA,EAAAA,IAACM,GAAA,EAAM,WAAU,WAAU,aAAa,GAAG;AAAA,UAC3CN,gBAAAA,EAAAA,IAAC,QAAA,EAAK,WAAU,WAAU,UAAA,QAAA,CAAK;AAAA,QAAA,EAAA,CACjC;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,EAAAA;AAAAA,EAAC;AAAA,EAAA;AAAA,IACC,WAAWC;AAAA,MACT;AAAA,MACAJ;AAAA,IAAA;AAAA,IAED,GAAGC;AAAA,EAAA;AACN;AAEFS,EAAa,cAAc;AAE3B,MAAMC,IAAe,CAAC;AAAA,EACpB,WAAAX;AAAA,EACA,GAAGC;AACL,MACEE,gBAAAA,EAAAA;AAAAA,EAAC;AAAA,EAAA;AAAA,IACC,WAAWC;AAAA,MACT;AAAA,MACAJ;AAAA,IAAA;AAAA,IAED,GAAGC;AAAA,EAAA;AACN;AAEFU,EAAa,cAAc;AAE3B,MAAMC,IAAcb,EAAM,WAGxB,CAAC,EAAE,WAAAC,GAAW,GAAGC,EAAA,GAASC,MAC1BC,gBAAAA,EAAAA;AAAAA,EAACT,EAAgB;AAAA,EAAhB;AAAA,IACC,KAAAQ;AAAA,IACA,WAAWE;AAAA,MACT;AAAA,MACAJ;AAAA,IAAA;AAAA,IAED,GAAGC;AAAA,EAAA;AACN,CACD;AACDW,EAAY,cAAclB,EAAgB,MAAM;AAEhD,MAAMmB,IAAoBd,EAAM,WAG9B,CAAC,EAAE,WAAAC,GAAW,GAAGC,EAAA,GAASC,MAC1BC,gBAAAA,EAAAA;AAAAA,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 { CircleIcon, 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 p-3 group -left-1.5 -top-1.5 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 <CircleIcon\n className=\"h-2 w-2 transition-all border border-transparent group-hover:border-white/20 rounded-full group-hover:scale-180 group-hover:text-red-400\"\n strokeWidth={2}\n fill=\"currentColor\"\n />\n <XIcon\n className=\"h-2 w-2 absolute top-3 left-3 text-transparent group-hover:text-red-800 transition-colors\"\n strokeWidth={2}\n fill=\"currentColor\"\n />\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","CircleIcon","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,EAAA,GAASC,MAC1BC,gBAAAA,EAAAA;AAAAA,EAACT,EAAgB;AAAA,EAAhB;AAAA,IACC,KAAAQ;AAAA,IACA,WAAWE;AAAA,MACT;AAAA,MACAJ;AAAA,IAAA;AAAA,IAED,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,EAAA,GAASC,6BAC3DN,GAAA,EACC,UAAA;AAAA,EAAAO,gBAAAA,EAAAA,IAACL,GAAA,EAAc;AAAA,EACfU,gBAAAA,EAAAA;AAAAA,IAACd,EAAgB;AAAA,IAAhB;AAAA,MACC,KAAAQ;AAAA,MACA,WAAWE;AAAA,QACT;AAAA,QACAJ;AAAA,MAAA;AAAA,MAED,GAAGC;AAAA,MAEH,UAAA;AAAA,QAAAK;AAAA,QACAC,KACCC,gBAAAA,EAAAA,KAACd,EAAgB,OAAhB,EAAsB,WAAU,kSAC/B,UAAA;AAAA,UAAAS,gBAAAA,EAAAA;AAAAA,YAACM;AAAA,YAAA;AAAA,cACC,WAAU;AAAA,cACV,aAAa;AAAA,cACb,MAAK;AAAA,YAAA;AAAA,UAAA;AAAA,UAEPN,gBAAAA,EAAAA;AAAAA,YAACO;AAAA,YAAA;AAAA,cACC,WAAU;AAAA,cACV,aAAa;AAAA,cACb,MAAK;AAAA,YAAA;AAAA,UAAA;AAAA,UAEPP,gBAAAA,EAAAA,IAAC,QAAA,EAAK,WAAU,WAAU,UAAA,QAAA,CAAK;AAAA,QAAA,EAAA,CACjC;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAEJ,GACF,CACD;AACDE,EAAc,cAAcX,EAAgB,QAAQ;AAEpD,MAAMiB,IAAe,CAAC;AAAA,EACpB,WAAAX;AAAA,EACA,GAAGC;AACL,MACEE,gBAAAA,EAAAA;AAAAA,EAAC;AAAA,EAAA;AAAA,IACC,WAAWC;AAAA,MACT;AAAA,MACAJ;AAAA,IAAA;AAAA,IAED,GAAGC;AAAA,EAAA;AACN;AAEFU,EAAa,cAAc;AAE3B,MAAMC,IAAe,CAAC;AAAA,EACpB,WAAAZ;AAAA,EACA,GAAGC;AACL,MACEE,gBAAAA,EAAAA;AAAAA,EAAC;AAAA,EAAA;AAAA,IACC,WAAWC;AAAA,MACT;AAAA,MACAJ;AAAA,IAAA;AAAA,IAED,GAAGC;AAAA,EAAA;AACN;AAEFW,EAAa,cAAc;AAE3B,MAAMC,IAAcd,EAAM,WAGxB,CAAC,EAAE,WAAAC,GAAW,GAAGC,EAAA,GAASC,MAC1BC,gBAAAA,EAAAA;AAAAA,EAACT,EAAgB;AAAA,EAAhB;AAAA,IACC,KAAAQ;AAAA,IACA,WAAWE;AAAA,MACT;AAAA,MACAJ;AAAA,IAAA;AAAA,IAED,GAAGC;AAAA,EAAA;AACN,CACD;AACDY,EAAY,cAAcnB,EAAgB,MAAM;AAEhD,MAAMoB,IAAoBf,EAAM,WAG9B,CAAC,EAAE,WAAAC,GAAW,GAAGC,EAAA,GAASC,MAC1BC,gBAAAA,EAAAA;AAAAA,EAACT,EAAgB;AAAA,EAAhB;AAAA,IACC,KAAAQ;AAAA,IACA,WAAWE,EAAG,iCAAiCJ,CAAS;AAAA,IACvD,GAAGC;AAAA,EAAA;AACN,CACD;AACDa,EAAkB,cAAcpB,EAAgB,YAAY;"}
@@ -1,9 +1,9 @@
1
1
  import "../jsx-runtime-C5mzlN2N.js";
2
2
  import "react";
3
- import "../ZudokuContext-Coxa0DfE.js";
4
- import { S as h } from "../SyntaxHighlight-BD_Z_Csq.js";
3
+ import "../ZudokuContext-mDDq1hft.js";
4
+ import { S as h } from "../SyntaxHighlight-CSW4eaIJ.js";
5
5
  import "../invariant-Bm-FVUQE.js";
6
- import "../CodeBlock-CVT6z0PP.js";
6
+ import "../CodeBlock-yJjjRwj-.js";
7
7
  import "./EmbeddedCodeBlock.js";
8
8
  export {
9
9
  h as SyntaxHighlight
@@ -1,4 +1,4 @@
1
- import { u as o } from "./hook-DEPqwjke.js";
1
+ import { u as o } from "./hook-CGx8MPrU.js";
2
2
  import { OpenIDAuthenticationProvider as r } from "./zudoku.auth-openid.js";
3
3
  class a extends r {
4
4
  constructor(e) {
@@ -1,11 +1,11 @@
1
1
  import { j as o } from "./jsx-runtime-C5mzlN2N.js";
2
2
  import { PublicClientApplication as A, EventType as f } from "@azure/msal-browser";
3
- import { E as I } from "./index-DYs8gxKX.js";
3
+ import { E as I } from "./index-Cc70HIQT.js";
4
4
  import { C as T } from "./ClientOnly-E7hGysn1.js";
5
- import { j as S } from "./ZudokuContext-Coxa0DfE.js";
6
- import { C, A as c } from "./errors-BoJYHL2E.js";
7
- import { C as k, O as w } from "./OAuthErrorPage--neTdY8H.js";
8
- import { u as h } from "./hook-DEPqwjke.js";
5
+ import { j as S } from "./ZudokuContext-mDDq1hft.js";
6
+ import { C, A as c } from "./errors-D2Qdkul6.js";
7
+ import { C as k, O as w } from "./OAuthErrorPage-COKL9zOi.js";
8
+ import { u as h } from "./hook-CGx8MPrU.js";
9
9
  const u = "/oauth/callback";
10
10
  class y extends C {
11
11
  msalInstance;
@@ -1,7 +1,7 @@
1
1
  import { j as l } from "./jsx-runtime-C5mzlN2N.js";
2
2
  import { LogOutIcon as f } from "lucide-react";
3
- import { S as w, a as p, b as v } from "./SignUp-C6ogvx5s.js";
4
- import { u as n } from "./hook-DEPqwjke.js";
3
+ import { S as w, a as p, b as v } from "./SignUp-Cn_gZ7UN.js";
4
+ import { u as n } from "./hook-CGx8MPrU.js";
5
5
  const b = ({
6
6
  clerkPubKey: d,
7
7
  jwtTemplateName: m,
@@ -1,11 +1,11 @@
1
1
  import { j as D } from "./jsx-runtime-C5mzlN2N.js";
2
2
  import { g as Le } from "./invariant-Bm-FVUQE.js";
3
- import { E as Ue } from "./index-DYs8gxKX.js";
3
+ import { E as Ue } from "./index-Cc70HIQT.js";
4
4
  import { C as xe } from "./ClientOnly-E7hGysn1.js";
5
- import { j as Ce } from "./ZudokuContext-Coxa0DfE.js";
6
- import { C as Ie, O as re, A as R } from "./errors-BoJYHL2E.js";
7
- import { C as je, O as Oe } from "./OAuthErrorPage--neTdY8H.js";
8
- import { u as S } from "./hook-DEPqwjke.js";
5
+ import { j as Ce } from "./ZudokuContext-mDDq1hft.js";
6
+ import { C as Ie, O as re, A as R } from "./errors-D2Qdkul6.js";
7
+ import { C as je, O as Oe } from "./OAuthErrorPage-COKL9zOi.js";
8
+ import { u as S } from "./hook-CGx8MPrU.js";
9
9
  var J = { exports: {} }, De = J.exports, oe;
10
10
  function Je() {
11
11
  return oe || (oe = 1, function(t) {
@@ -1,6 +1,6 @@
1
1
  import { createClient as l } from "@supabase/supabase-js";
2
- import { C as g, A as p } from "./errors-BoJYHL2E.js";
3
- import { u as r } from "./hook-DEPqwjke.js";
2
+ import { C as g, A as p } from "./errors-D2Qdkul6.js";
3
+ import { u as r } from "./hook-CGx8MPrU.js";
4
4
  class f extends g {
5
5
  client;
6
6
  provider;
@@ -1,12 +1,12 @@
1
- import "./RouteGuard-D17dUEM_.js";
1
+ import "./RouteGuard-CSi9-hSR.js";
2
2
  import "./useExposedProps-DUoV7MCU.js";
3
3
  import "./chunk-QMGIS6GS-CdEm9pzB.js";
4
- import "./hook-DEPqwjke.js";
5
- import "./Slot-Dgy8tqef.js";
6
- import { e as d, f as h, j as k, B as l, m as S, C as B, i as c, H as y, c as E, L as g, M as H, g as L, R as M, d as R, S as T, h as Z, T as f, Z as A, b, l as j, k as v, n as w, u as x } from "./index-DYs8gxKX.js";
4
+ import "./hook-CGx8MPrU.js";
5
+ import "./Slot-BFCJzl5J.js";
6
+ import { e as d, f as h, j as k, B as l, n as S, C as B, i as c, H as y, c as E, L as M, M as g, k as H, g as L, R, d as T, S as Z, h as f, T as A, Z as b, b as j, m as v, l as w, p as x, u as D } from "./index-Cc70HIQT.js";
7
7
  import "./ui/Button.js";
8
8
  import "./ui/Callout.js";
9
- import "./ZudokuContext-Coxa0DfE.js";
9
+ import "./ZudokuContext-mDDq1hft.js";
10
10
  import "./ClientOnly-E7hGysn1.js";
11
11
  import "./Spinner-mNLZ6awP.js";
12
12
  export {
@@ -19,19 +19,20 @@ export {
19
19
  c as ClientOnly,
20
20
  y as Head,
21
21
  E as Layout,
22
- g as Link,
23
- H as Markdown,
22
+ M as Link,
23
+ g as Markdown,
24
+ H as Meta,
24
25
  L as RouteGuard,
25
- M as RouterError,
26
- R as ServerError,
27
- T as Spinner,
28
- Z as StatusPage,
29
- f as Typography,
30
- A as Zudoku,
31
- b as useAuth,
32
- j as useCache,
33
- v as useMDXComponents,
34
- w as useTheme,
35
- x as useZudoku
26
+ R as RouterError,
27
+ T as ServerError,
28
+ Z as Spinner,
29
+ f as StatusPage,
30
+ A as Typography,
31
+ b as Zudoku,
32
+ j as useAuth,
33
+ v as useCache,
34
+ w as useMDXComponents,
35
+ x as useTheme,
36
+ D as useZudoku
36
37
  };
37
38
  //# sourceMappingURL=zudoku.components.js.map
@@ -1,7 +1,7 @@
1
1
  import { z as m, a as p, u as c } from "./useExposedProps-DUoV7MCU.js";
2
- import { a as f } from "./hook-DEPqwjke.js";
3
- import { c as n, d } from "./ZudokuContext-Coxa0DfE.js";
4
- import { C as k } from "./ZudokuContext-Coxa0DfE.js";
2
+ import { a as f } from "./hook-CGx8MPrU.js";
3
+ import { c as n, d } from "./ZudokuContext-mDDq1hft.js";
4
+ import { C as k } from "./ZudokuContext-mDDq1hft.js";
5
5
  import { useState as E, useEffect as i } from "react";
6
6
  function C(e, s) {
7
7
  const t = n(), [r, o] = E();
@@ -1,11 +1,11 @@
1
1
  import { j as t } from "./jsx-runtime-C5mzlN2N.js";
2
- import { s as f } from "./index-Bl1W774G.js";
2
+ import { s as f } from "./index-ChOC1gfC.js";
3
3
  import { u as b, m as j } from "./chunk-QMGIS6GS-CdEm9pzB.js";
4
- import { b as x, j as d } from "./ZudokuContext-Coxa0DfE.js";
5
- import { H as v } from "./RouteGuard-D17dUEM_.js";
6
- import { L as y } from "./index-DYs8gxKX.js";
7
- import { u as N } from "./hook-DEPqwjke.js";
8
- import { H as k, M as S } from "./Slot-Dgy8tqef.js";
4
+ import { b as x, j as d } from "./ZudokuContext-mDDq1hft.js";
5
+ import { H as v } from "./RouteGuard-CSi9-hSR.js";
6
+ import { L as y } from "./index-Cc70HIQT.js";
7
+ import { u as N } from "./hook-CGx8MPrU.js";
8
+ import { H as k, M as S } from "./Slot-BFCJzl5J.js";
9
9
  const w = ({
10
10
  items: o,
11
11
  filterCatalogItems: r = (n) => n,
@@ -1,19 +1,19 @@
1
1
  import { j as e } from "./jsx-runtime-C5mzlN2N.js";
2
2
  import { CircleSlashIcon as $, CheckIcon as te, XIcon as ue, PencilLineIcon as he, RefreshCwIcon as fe, EyeOffIcon as pe, EyeIcon as me, CopyIcon as xe, TrashIcon as ye, KeyRoundIcon as ge } from "lucide-react";
3
- import { D as je, a as Y, R as Ce } from "./Slot-Dgy8tqef.js";
3
+ import { D as je, a as Y, R as Ce } from "./Slot-BFCJzl5J.js";
4
4
  import { i as P } from "./invariant-Bm-FVUQE.js";
5
5
  import { O as ve, b as we, L as be } from "./chunk-QMGIS6GS-CdEm9pzB.js";
6
- import { a as ke } from "./hook-DEPqwjke.js";
6
+ import { a as ke } from "./hook-CGx8MPrU.js";
7
7
  import { Button as y } from "./ui/Button.js";
8
- import { c as se, e as ne, b as Ne } from "./ZudokuContext-Coxa0DfE.js";
9
- import { u as z, A as O, a as M, b as Ee, S as Ke, c as De, d as Ie, e as Ae, f as Pe, g as Z } from "./Select-DlfI9FFO.js";
8
+ import { c as se, e as ne, b as Ne } from "./ZudokuContext-mDDq1hft.js";
9
+ import { u as z, A as O, a as M, b as Ee, S as Ke, c as De, d as Ie, e as Ae, f as Pe, g as Z } from "./Select-B9h5k2Pz.js";
10
10
  import * as _ from "react";
11
11
  import Re, { createContext as G, useRef as D, useLayoutEffect as Se, useEffect as ie, useId as J, useContext as U, useInsertionEffect as Te, useMemo as F, useCallback as ze, Children as Oe, isValidElement as Me, useState as K, forwardRef as qe } from "react";
12
12
  import { C as $e, a as Fe } from "./Card-CMDQUPM4.js";
13
- import { e as W, f as I, D as L, g as Q, a as B, c as H, b as V, d as re } from "./Dialog-u9Uz9sTt.js";
13
+ import { e as W, f as I, D as L, g as Q, a as B, c as H, b as V, d as re } from "./Dialog-B7YnrNnG.js";
14
14
  import { Input as ae } from "./ui/Input.js";
15
15
  import { c as N } from "./cn-dYga0KKN.js";
16
- import { u as Le } from "./CodeBlock-CVT6z0PP.js";
16
+ import { u as Le } from "./CodeBlock-yJjjRwj-.js";
17
17
  import { a as Qe } from "./index.esm-CdzlRw50.js";
18
18
  import { B as Be } from "./Button-B3o-2Xdf.js";
19
19
  import { S as He } from "./Spinner-mNLZ6awP.js";
@@ -1,16 +1,19 @@
1
- import { t as o } from "./ZudokuContext-Coxa0DfE.js";
2
- const n = (s = []) => ({
1
+ import { t as o } from "./ZudokuContext-mDDq1hft.js";
2
+ const u = (a = []) => ({
3
3
  getRoutes: () => {
4
4
  const e = [];
5
- return o(s, (t) => {
5
+ return o(a, (t) => {
6
6
  t.type === "custom-page" && e.push({
7
7
  path: t.path,
8
- element: t.element
8
+ element: t.element,
9
+ handle: {
10
+ layout: t.layout ?? "default"
11
+ }
9
12
  });
10
13
  }), e;
11
14
  }
12
15
  });
13
16
  export {
14
- n as customPagesPlugin
17
+ u as customPagesPlugin
15
18
  };
16
19
  //# sourceMappingURL=zudoku.plugin-custom-pages.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"zudoku.plugin-custom-pages.js","sources":["../src/lib/plugins/custom-pages/index.tsx"],"sourcesContent":["import { type ReactNode } from \"react\";\nimport type { RouteObject } from \"react-router\";\nimport type { NavigationItem } from \"../../../config/validators/NavigationSchema.js\";\nimport { traverseNavigation } from \"../../components/navigation/utils.js\";\nimport type { NavigationPlugin } from \"../../core/plugins.js\";\n\nexport type CustomPageConfig = {\n path: string;\n element?: ReactNode;\n};\n\nexport const customPagesPlugin = (\n navigation: NavigationItem[] = [],\n): NavigationPlugin => ({\n getRoutes: (): RouteObject[] => {\n const customPages: RouteObject[] = [];\n\n traverseNavigation(navigation, (item) => {\n if (item.type === \"custom-page\") {\n customPages.push({\n path: item.path,\n element: item.element,\n });\n }\n });\n\n return customPages;\n },\n});\n"],"names":["customPagesPlugin","navigation","customPages","traverseNavigation","item"],"mappings":";AAWO,MAAMA,IAAoB,CAC/BC,IAA+B,QACT;AAAA,EACtB,WAAW,MAAqB;AAC9B,UAAMC,IAA6B,CAAA;AAEnC,WAAAC,EAAmBF,GAAY,CAACG,MAAS;AACvC,MAAIA,EAAK,SAAS,iBAChBF,EAAY,KAAK;AAAA,QACf,MAAME,EAAK;AAAA,QACX,SAASA,EAAK;AAAA,MAAA,CACf;AAAA,IAEL,CAAC,GAEMF;AAAA,EACT;AACF;"}
1
+ {"version":3,"file":"zudoku.plugin-custom-pages.js","sources":["../src/lib/plugins/custom-pages/index.tsx"],"sourcesContent":["import { type ReactNode } from \"react\";\nimport type { RouteObject } from \"react-router\";\nimport type { NavigationItem } from \"../../../config/validators/NavigationSchema.js\";\nimport { traverseNavigation } from \"../../components/navigation/utils.js\";\nimport type { NavigationPlugin } from \"../../core/plugins.js\";\n\nexport type CustomPageConfig = {\n path: string;\n element?: ReactNode;\n};\n\nexport const customPagesPlugin = (\n navigation: NavigationItem[] = [],\n): NavigationPlugin => ({\n getRoutes: (): RouteObject[] => {\n const customPages: RouteObject[] = [];\n\n traverseNavigation(navigation, (item) => {\n if (item.type === \"custom-page\") {\n customPages.push({\n path: item.path,\n element: item.element,\n handle: {\n layout: item.layout ?? \"default\",\n },\n });\n }\n });\n\n return customPages;\n },\n});\n"],"names":["customPagesPlugin","navigation","customPages","traverseNavigation","item"],"mappings":";AAWO,MAAMA,IAAoB,CAC/BC,IAA+B,QACT;AAAA,EACtB,WAAW,MAAqB;AAC9B,UAAMC,IAA6B,CAAA;AAEnC,WAAAC,EAAmBF,GAAY,CAACG,MAAS;AACvC,MAAIA,EAAK,SAAS,iBAChBF,EAAY,KAAK;AAAA,QACf,MAAME,EAAK;AAAA,QACX,SAASA,EAAK;AAAA,QACd,QAAQ;AAAA,UACN,QAAQA,EAAK,UAAU;AAAA,QAAA;AAAA,MACzB,CACD;AAAA,IAEL,CAAC,GAEMF;AAAA,EACT;AACF;"}
@@ -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-BKyikAKk.js"), { default: a, ...r } = await n();
7
+ const { MdxPage: o } = await import("./MdxPage-D49lfheg.js"), { default: a, ...r } = await n();
8
8
  return {
9
9
  element: /* @__PURE__ */ s.jsx(
10
10
  o,
@@ -1,10 +1,10 @@
1
1
  import "./jsx-runtime-C5mzlN2N.js";
2
2
  import "lucide-react";
3
3
  import "./chunk-QMGIS6GS-CdEm9pzB.js";
4
- import "./hook-DEPqwjke.js";
4
+ import "./hook-CGx8MPrU.js";
5
5
  import "./ui/Button.js";
6
- import "./ZudokuContext-Coxa0DfE.js";
7
- import { y as n, U as s, z as A } from "./index-DRkS-pvf.js";
6
+ import "./ZudokuContext-mDDq1hft.js";
7
+ import { y as n, U as s, z as A } from "./index-DZqSbZzE.js";
8
8
  export {
9
9
  n as GetNavigationOperationsQuery,
10
10
  s as UNTAGGED_PATH,
@@ -1,15 +1,15 @@
1
1
  import { j as e } from "./jsx-runtime-C5mzlN2N.js";
2
2
  import { C as v } from "./ClientOnly-E7hGysn1.js";
3
3
  import { VisuallyHidden as I } from "@radix-ui/react-visually-hidden";
4
- import { j as k, c as j, i as C, k as N } from "./ZudokuContext-Coxa0DfE.js";
4
+ import { j as k, c as j, i as C, k as N } from "./ZudokuContext-mDDq1hft.js";
5
5
  import { useRef as S, useLayoutEffect as L, useState as T } from "react";
6
6
  import { B as E } from "./Button-B3o-2Xdf.js";
7
7
  import { ShieldAlertIcon as R, AlertTriangleIcon as F, InfoIcon as b, LightbulbIcon as q, BracketsIcon as z, FileTextIcon as A } from "lucide-react";
8
8
  import { c as u } from "./cn-dYga0KKN.js";
9
- import { C as P, a as f, b as h, c as $, d as D, e as B } from "./Command-BYukybsa.js";
10
- import { b as O } from "./Dialog-u9Uz9sTt.js";
11
- import { u as U } from "./hook-DEPqwjke.js";
12
- import { S as G } from "./RouteGuard-D17dUEM_.js";
9
+ import { C as P, a as f, b as h, c as $, d as D, e as B } from "./Command-CfgGXMfJ.js";
10
+ import { b as O } from "./Dialog-B7YnrNnG.js";
11
+ import { u as U } from "./hook-CGx8MPrU.js";
12
+ import { S as G } from "./RouteGuard-CSi9-hSR.js";
13
13
  import { b as H, L as p } from "./chunk-QMGIS6GS-CdEm9pzB.js";
14
14
  const K = {
15
15
  note: {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "zudoku",
3
- "version": "0.55.1",
3
+ "version": "0.56.0",
4
4
  "type": "module",
5
5
  "homepage": "https://zudoku.dev",
6
6
  "repository": {
@@ -164,10 +164,10 @@
164
164
  "@radix-ui/react-visually-hidden": "1.2.3",
165
165
  "@scalar/openapi-parser": "0.18.0",
166
166
  "@sentry/node": "9.26.0",
167
- "@shikijs/langs": "3.8.0",
168
- "@shikijs/rehype": "3.8.0",
169
- "@shikijs/themes": "3.8.0",
170
- "@shikijs/transformers": "3.8.0",
167
+ "@shikijs/langs": "3.8.1",
168
+ "@shikijs/rehype": "3.8.1",
169
+ "@shikijs/themes": "3.8.1",
170
+ "@shikijs/transformers": "3.8.1",
171
171
  "@sindresorhus/slugify": "2.2.1",
172
172
  "@stefanprobst/rehype-extract-toc": "3.0.0",
173
173
  "@tailwindcss/typography": "0.5.16",
@@ -234,7 +234,7 @@
234
234
  "remark-rehype": "^11.1.2",
235
235
  "rollup": "4.45.0",
236
236
  "semver": "7.7.2",
237
- "shiki": "3.8.0",
237
+ "shiki": "3.8.1",
238
238
  "sitemap": "8.0.0",
239
239
  "spin-delay": "2.0.1",
240
240
  "strip-ansi": "7.1.0",
package/src/app/main.tsx CHANGED
@@ -1,4 +1,4 @@
1
- import type { RouteObject } from "react-router";
1
+ import { Outlet, type RouteObject } from "react-router";
2
2
  import { configuredApiKeysPlugin } from "virtual:zudoku-api-keys-plugin";
3
3
  import {
4
4
  configuredApiCatalogPlugins,
@@ -15,6 +15,7 @@ import "virtual:zudoku-theme.css";
15
15
  import {
16
16
  BuildCheck,
17
17
  Layout,
18
+ Meta,
18
19
  RouteGuard,
19
20
  RouterError,
20
21
  StatusPage,
@@ -110,17 +111,30 @@ export const getRoutesByConfig = (config: ZudokuConfig): RouteObject[] => {
110
111
  buildId={import.meta.env.ZUPLO_BUILD_ID}
111
112
  environmentType={import.meta.env.ZUPLO_ENVIRONMENT_TYPE}
112
113
  />
113
- <Layout />
114
+ <Outlet />
114
115
  </Zudoku>
115
116
  ),
116
117
  hydrateFallbackElement: <div>Loading...</div>,
117
118
  children: [
118
119
  {
119
- element: <RouteGuard />,
120
+ element: (
121
+ <Meta>
122
+ <RouteGuard />
123
+ </Meta>
124
+ ),
120
125
  errorElement: <RouterError />,
121
- children: routes,
126
+ children: routes.map((r) =>
127
+ r.handle?.layout === "none" ? r : wrapWithLayout(r),
128
+ ),
122
129
  },
123
130
  ],
124
131
  },
125
132
  ];
126
133
  };
134
+
135
+ const wrapWithLayout = (route: RouteObject) => {
136
+ return {
137
+ element: <Layout />,
138
+ children: [route],
139
+ };
140
+ };
@@ -1,5 +1,6 @@
1
1
  import { useQuery } from "@tanstack/react-query";
2
2
  import { CircleFadingArrowUpIcon, LoaderCircleIcon } from "lucide-react";
3
+ import { useEffect } from "react";
3
4
  import { z } from "zod/v4";
4
5
  import { Button } from "../ui/Button.js";
5
6
 
@@ -32,6 +33,15 @@ export const BuildCheck = ({
32
33
  .then((data) => BuildStatusSchema.parse(data)),
33
34
  });
34
35
 
36
+ useEffect(() => {
37
+ if (
38
+ buildStatusQuery.data?.status === "success" &&
39
+ buildStatusQuery.data.buildId
40
+ ) {
41
+ document.cookie = `zuplo-build=${buildStatusQuery.data.buildId}; path=/; max-age=300; secure; SameSite=None`;
42
+ }
43
+ }, [buildStatusQuery.data]);
44
+
35
45
  if (
36
46
  buildStatusQuery.isError ||
37
47
  !buildStatusQuery.data ||
@@ -92,7 +92,7 @@ export const Header = memo(function HeaderInner() {
92
92
  <div className="flex">
93
93
  <Link to={site?.logo?.href ?? "/"}>
94
94
  <div className="flex items-center gap-3.5">
95
- {site?.logo && (
95
+ {site?.logo ? (
96
96
  <>
97
97
  <img
98
98
  src={logoLightSrc}
@@ -109,8 +109,9 @@ export const Header = memo(function HeaderInner() {
109
109
  loading="lazy"
110
110
  />
111
111
  </>
112
+ ) : (
113
+ <span className="font-semibold text-2xl">{site?.title}</span>
112
114
  )}
113
- <span className="font-semibold text-2xl">{site?.title}</span>
114
115
  </div>
115
116
  </Link>
116
117
  </div>