zudoku 0.34.3 → 0.35.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 (124) hide show
  1. package/dist/config/config.d.ts +13 -8
  2. package/dist/config/validators/common.d.ts +977 -111
  3. package/dist/config/validators/common.js +26 -1
  4. package/dist/config/validators/common.js.map +1 -1
  5. package/dist/config/validators/validate.d.ts +357 -42
  6. package/dist/lib/authentication/providers/clerk.d.ts +2 -2
  7. package/dist/lib/authentication/providers/supabase.d.ts +4 -0
  8. package/dist/lib/authentication/providers/supabase.js +112 -0
  9. package/dist/lib/authentication/providers/supabase.js.map +1 -0
  10. package/dist/lib/components/Header.js +3 -3
  11. package/dist/lib/components/Header.js.map +1 -1
  12. package/dist/lib/components/InlineCode.js +1 -1
  13. package/dist/lib/components/InlineCode.js.map +1 -1
  14. package/dist/lib/components/Layout.js +4 -10
  15. package/dist/lib/components/Layout.js.map +1 -1
  16. package/dist/lib/components/Main.d.ts +2 -0
  17. package/dist/lib/components/Main.js +15 -0
  18. package/dist/lib/components/Main.js.map +1 -0
  19. package/dist/lib/components/context/ViewportAnchorContext.d.ts +2 -4
  20. package/dist/lib/components/context/ViewportAnchorContext.js +2 -4
  21. package/dist/lib/components/context/ViewportAnchorContext.js.map +1 -1
  22. package/dist/lib/components/index.d.ts +2 -1
  23. package/dist/lib/components/navigation/Sidebar.d.ts +3 -1
  24. package/dist/lib/components/navigation/Sidebar.js +2 -4
  25. package/dist/lib/components/navigation/Sidebar.js.map +1 -1
  26. package/dist/lib/components/navigation/SidebarWrapper.d.ts +8 -6
  27. package/dist/lib/components/navigation/SidebarWrapper.js +1 -2
  28. package/dist/lib/components/navigation/SidebarWrapper.js.map +1 -1
  29. package/dist/lib/core/RouteGuard.js +2 -1
  30. package/dist/lib/core/RouteGuard.js.map +1 -1
  31. package/dist/lib/oas/graphql/index.js +34 -0
  32. package/dist/lib/oas/graphql/index.js.map +1 -1
  33. package/dist/lib/plugins/markdown/MdxPage.d.ts +1 -1
  34. package/dist/lib/plugins/markdown/MdxPage.js +1 -1
  35. package/dist/lib/plugins/markdown/MdxPage.js.map +1 -1
  36. package/dist/lib/plugins/openapi/OperationList.js +10 -6
  37. package/dist/lib/plugins/openapi/OperationList.js.map +1 -1
  38. package/dist/lib/plugins/openapi/Sidecar.js +9 -4
  39. package/dist/lib/plugins/openapi/Sidecar.js.map +1 -1
  40. package/dist/lib/plugins/openapi/SimpleSelect.js +1 -1
  41. package/dist/lib/plugins/openapi/SimpleSelect.js.map +1 -1
  42. package/dist/lib/plugins/openapi/graphql/gql.d.ts +1 -1
  43. package/dist/lib/plugins/openapi/graphql/gql.js +1 -1
  44. package/dist/lib/plugins/openapi/graphql/gql.js.map +1 -1
  45. package/dist/lib/plugins/openapi/graphql/graphql.d.ts +6 -0
  46. package/dist/lib/plugins/openapi/graphql/graphql.js +2 -0
  47. package/dist/lib/plugins/openapi/graphql/graphql.js.map +1 -1
  48. package/dist/lib/plugins/openapi/index.d.ts +1 -1
  49. package/dist/lib/plugins/openapi/index.js +8 -8
  50. package/dist/lib/plugins/openapi/index.js.map +1 -1
  51. package/dist/lib/plugins/openapi/interfaces.d.ts +7 -10
  52. package/dist/lib/ui/Callout.d.ts +2 -1
  53. package/dist/lib/ui/Callout.js +3 -2
  54. package/dist/lib/ui/Callout.js.map +1 -1
  55. package/dist/lib/util/MdxComponents.d.ts +2 -1
  56. package/dist/vite/plugin-api.js +6 -10
  57. package/dist/vite/plugin-api.js.map +1 -1
  58. package/lib/{Callout-B_sEhkYd.js → Callout-B2vsR09t.js} +70 -52
  59. package/lib/{Callout-B_sEhkYd.js.map → Callout-B2vsR09t.js.map} +1 -1
  60. package/lib/Drawer-kDAfOq_2.js +1133 -0
  61. package/lib/Drawer-kDAfOq_2.js.map +1 -0
  62. package/lib/{Markdown-DZXjQjpH.js → Markdown-D1Y3cd9l.js} +4471 -3315
  63. package/lib/Markdown-D1Y3cd9l.js.map +1 -0
  64. package/lib/{MdxPage-52vRwa_7.js → MdxPage-CUL_SQzW.js} +9 -9
  65. package/lib/MdxPage-CUL_SQzW.js.map +1 -0
  66. package/lib/{OasProvider-CR2nG1Eg.js → OasProvider-DEL8ulKm.js} +2 -2
  67. package/lib/{OasProvider-CR2nG1Eg.js.map → OasProvider-DEL8ulKm.js.map} +1 -1
  68. package/lib/{OperationList-DndcCJUG.js → OperationList-D6goKbzX.js} +1961 -1948
  69. package/lib/OperationList-D6goKbzX.js.map +1 -0
  70. package/lib/{SlotletProvider-TydSHROc.js → SlotletProvider-iDmNlxD5.js} +2 -2
  71. package/lib/{SlotletProvider-TydSHROc.js.map → SlotletProvider-iDmNlxD5.js.map} +1 -1
  72. package/lib/{createServer-DmusVVsi.js → createServer-BNBGpbLa.js} +1764 -1734
  73. package/lib/{createServer-DmusVVsi.js.map → createServer-BNBGpbLa.js.map} +1 -1
  74. package/lib/{index-DK7IuUyR.js → index-PKytqmuw.js} +348 -346
  75. package/lib/index-PKytqmuw.js.map +1 -0
  76. package/lib/prism-bash.min-HHIMdNJ_.js.map +1 -1
  77. package/lib/prism-csharp.min-bQAo2pmx.js.map +1 -1
  78. package/lib/prism-java.min-BpvsOuIa.js.map +1 -1
  79. package/lib/prism-javascript.min-CEqHqgbm.js.map +1 -1
  80. package/lib/prism-json.min-B1GJqK1k.js.map +1 -1
  81. package/lib/prism-markdown.min-C0Qn0m-5.js.map +1 -1
  82. package/lib/prism-markup-BNGj0Tvm.js.map +1 -1
  83. package/lib/prism-objectivec.min-BXSWqpJJ.js.map +1 -1
  84. package/lib/prism-ruby.min-Dx9KO9ds.js.map +1 -1
  85. package/lib/prism-typescript.min-CD7H2IYQ.js.map +1 -1
  86. package/lib/ui/Callout.js +39 -21
  87. package/lib/ui/Callout.js.map +1 -1
  88. package/lib/ui/Drawer.js +14 -1129
  89. package/lib/ui/Drawer.js.map +1 -1
  90. package/lib/zudoku.auth-clerk.js.map +1 -1
  91. package/lib/zudoku.components.js +675 -621
  92. package/lib/zudoku.components.js.map +1 -1
  93. package/lib/zudoku.plugin-api-catalog.js +1 -1
  94. package/lib/zudoku.plugin-api-keys.js +1 -1
  95. package/lib/zudoku.plugin-custom-pages.js +1 -1
  96. package/lib/zudoku.plugin-markdown.js +1 -1
  97. package/lib/zudoku.plugin-openapi.js +1 -1
  98. package/lib/zudoku.plugin-search-pagefind.js +1 -1
  99. package/package.json +11 -6
  100. package/src/app/main.css +5 -3
  101. package/src/lib/authentication/providers/clerk.tsx +2 -2
  102. package/src/lib/authentication/providers/supabase.tsx +151 -0
  103. package/src/lib/components/Header.tsx +10 -6
  104. package/src/lib/components/InlineCode.tsx +1 -1
  105. package/src/lib/components/Layout.tsx +5 -40
  106. package/src/lib/components/Main.tsx +47 -0
  107. package/src/lib/components/context/ViewportAnchorContext.tsx +3 -9
  108. package/src/lib/components/navigation/Sidebar.tsx +7 -9
  109. package/src/lib/components/navigation/SidebarWrapper.tsx +13 -15
  110. package/src/lib/core/RouteGuard.tsx +2 -1
  111. package/src/lib/oas/graphql/index.ts +35 -0
  112. package/src/lib/plugins/markdown/MdxPage.tsx +2 -2
  113. package/src/lib/plugins/openapi/OperationList.tsx +21 -6
  114. package/src/lib/plugins/openapi/Sidecar.tsx +11 -4
  115. package/src/lib/plugins/openapi/SimpleSelect.tsx +1 -1
  116. package/src/lib/plugins/openapi/graphql/gql.ts +3 -3
  117. package/src/lib/plugins/openapi/graphql/graphql.ts +8 -0
  118. package/src/lib/plugins/openapi/index.tsx +10 -11
  119. package/src/lib/plugins/openapi/interfaces.ts +11 -15
  120. package/src/lib/ui/Callout.tsx +28 -10
  121. package/lib/Markdown-DZXjQjpH.js.map +0 -1
  122. package/lib/MdxPage-52vRwa_7.js.map +0 -1
  123. package/lib/OperationList-DndcCJUG.js.map +0 -1
  124. package/lib/index-DK7IuUyR.js.map +0 -1
@@ -1,4 +1,4 @@
1
- import { ClerkAuthenticationConfig } from "../../../config/config.js";
2
- import { AuthenticationProviderInitializer } from "../authentication.js";
1
+ import { type ClerkAuthenticationConfig } from "../../../config/config.js";
2
+ import { type AuthenticationProviderInitializer } from "../authentication.js";
3
3
  declare const clerkAuth: AuthenticationProviderInitializer<ClerkAuthenticationConfig>;
4
4
  export default clerkAuth;
@@ -0,0 +1,4 @@
1
+ import { type SupabaseAuthenticationConfig } from "../../../config/config.js";
2
+ import { type AuthenticationProviderInitializer } from "../authentication.js";
3
+ declare const supabaseAuth: AuthenticationProviderInitializer<SupabaseAuthenticationConfig>;
4
+ export default supabaseAuth;
@@ -0,0 +1,112 @@
1
+ import { createClient, } from "@supabase/supabase-js";
2
+ import { AuthenticationPlugin } from "../AuthenticationPlugin.js";
3
+ import { AuthorizationError } from "../errors.js";
4
+ import { useAuthState } from "../state.js";
5
+ class SupabaseAuthPlugin extends AuthenticationPlugin {
6
+ }
7
+ class SupabaseAuthenticationProvider {
8
+ client;
9
+ provider;
10
+ redirectToAfterSignUp;
11
+ redirectToAfterSignIn;
12
+ redirectToAfterSignOut;
13
+ constructor({ supabaseUrl, supabaseKey, provider, redirectToAfterSignUp, redirectToAfterSignIn, redirectToAfterSignOut, basePath, }) {
14
+ this.provider = provider;
15
+ this.client = createClient(supabaseUrl, supabaseKey, {
16
+ auth: {
17
+ autoRefreshToken: true,
18
+ persistSession: true,
19
+ },
20
+ });
21
+ const root = basePath ?? "/";
22
+ this.redirectToAfterSignUp = redirectToAfterSignUp ?? root;
23
+ this.redirectToAfterSignIn = redirectToAfterSignIn ?? root;
24
+ this.redirectToAfterSignOut = redirectToAfterSignOut ?? root;
25
+ this.client.auth.onAuthStateChange(async (event, session) => {
26
+ if (session && (event === "SIGNED_IN" || event === "TOKEN_REFRESHED")) {
27
+ await this.updateUserState(session);
28
+ }
29
+ else if (event === "SIGNED_OUT") {
30
+ useAuthState.setState({
31
+ isAuthenticated: false,
32
+ isPending: false,
33
+ profile: undefined,
34
+ providerData: undefined,
35
+ });
36
+ }
37
+ });
38
+ }
39
+ async updateUserState(session) {
40
+ const { user } = session;
41
+ const profile = {
42
+ sub: user.id,
43
+ email: user.email,
44
+ name: user.user_metadata.full_name || user.user_metadata.name,
45
+ emailVerified: user.email_confirmed_at != null,
46
+ pictureUrl: user.user_metadata.avatar_url,
47
+ };
48
+ useAuthState.setState({
49
+ isAuthenticated: true,
50
+ isPending: false,
51
+ profile,
52
+ providerData: { session },
53
+ });
54
+ }
55
+ async getAccessToken() {
56
+ const { data, error } = await this.client.auth.getSession();
57
+ if (error || !data.session) {
58
+ throw new AuthorizationError("User is not authenticated");
59
+ }
60
+ return data.session.access_token;
61
+ }
62
+ signUp = async ({ redirectTo }) => {
63
+ const finalRedirectTo = redirectTo ?? this.redirectToAfterSignUp;
64
+ // Open Supabase Auth UI in a new window
65
+ await this.client.auth.signInWithOAuth({
66
+ provider: this.provider,
67
+ options: {
68
+ redirectTo: window.location.origin + finalRedirectTo,
69
+ },
70
+ });
71
+ };
72
+ signIn = async ({ redirectTo }) => {
73
+ const finalRedirectTo = redirectTo ?? this.redirectToAfterSignIn;
74
+ await this.client.auth.signInWithOAuth({
75
+ provider: this.provider,
76
+ options: {
77
+ redirectTo: window.location.origin + finalRedirectTo,
78
+ queryParams: {
79
+ access_type: "offline",
80
+ prompt: "consent",
81
+ },
82
+ },
83
+ });
84
+ };
85
+ signOut = async () => {
86
+ await new Promise((resolve) => {
87
+ const { data } = this.client.auth.onAuthStateChange(async (event) => {
88
+ if (event !== "SIGNED_OUT")
89
+ return;
90
+ data.subscription.unsubscribe();
91
+ resolve();
92
+ });
93
+ void this.client.auth.signOut();
94
+ });
95
+ useAuthState.setState({
96
+ isAuthenticated: false,
97
+ isPending: false,
98
+ profile: undefined,
99
+ providerData: undefined,
100
+ });
101
+ };
102
+ getAuthenticationPlugin = () => new SupabaseAuthPlugin();
103
+ onPageLoad = async () => {
104
+ const { data, error } = await this.client.auth.getSession();
105
+ if (!error && data.session) {
106
+ await this.updateUserState(data.session);
107
+ }
108
+ };
109
+ }
110
+ const supabaseAuth = (options) => new SupabaseAuthenticationProvider(options);
111
+ export default supabaseAuth;
112
+ //# sourceMappingURL=supabase.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"supabase.js","sourceRoot":"","sources":["../../../../src/lib/authentication/providers/supabase.tsx"],"names":[],"mappings":"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"}
@@ -4,7 +4,7 @@ import { Link } from "react-router";
4
4
  import { Button } from "zudoku/ui/Button.js";
5
5
  import { Skeleton } from "zudoku/ui/Skeleton.js";
6
6
  import { useAuth } from "../authentication/hook.js";
7
- import { isProfileMenuPlugin } from "../core/plugins.js";
7
+ import { isProfileMenuPlugin, } from "../core/plugins.js";
8
8
  import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuSeparator, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, } from "../ui/DropdownMenu.js";
9
9
  import { joinUrl } from "../util/joinUrl.js";
10
10
  import { Banner } from "./Banner.js";
@@ -29,11 +29,11 @@ export const Header = memo(function HeaderInner() {
29
29
  .filter((p) => isProfileMenuPlugin(p))
30
30
  .flatMap((p) => p.getProfileMenuItems(context))
31
31
  .sort((i) => i.weight ?? 0);
32
- return (_jsxs("header", { className: "sticky lg:top-0 z-10 bg-background/80 backdrop-blur w-full", children: [_jsx(Banner, {}), _jsx("div", { className: "border-b", children: _jsxs("div", { className: "max-w-screen-2xl 2xl:border-x mx-auto grid grid-cols-[1fr_auto] lg:grid-cols-[calc(var(--side-nav-width))_1fr] lg:gap-12 items-center px-4 lg:px-8 h-[--top-header-height]", children: [_jsx("div", { className: "flex", children: _jsx(Link, { to: "/", children: _jsxs("div", { className: "flex items-center gap-3.5", children: [page?.logo && (_jsxs(_Fragment, { children: [_jsx("img", { src: /https?:\/\//.test(page.logo.src.light)
32
+ return (_jsxs("header", { className: "sticky lg:top-0 z-10 bg-background/80 backdrop-blur w-full", children: [_jsx(Banner, {}), _jsx("div", { className: "border-b", children: _jsxs("div", { className: "max-w-screen-2xl 2xl:border-x mx-auto flex relative items-center justify-between px-4 lg:px-8 h-[--top-header-height]", children: [_jsx("div", { className: "flex", children: _jsx(Link, { to: "/", children: _jsxs("div", { className: "flex items-center gap-3.5", children: [page?.logo && (_jsxs(_Fragment, { children: [_jsx("img", { src: /https?:\/\//.test(page.logo.src.light)
33
33
  ? page.logo.src.light
34
34
  : joinUrl(import.meta.env.BASE_URL, page.logo.src.light), alt: page.logo.alt ?? page.pageTitle, style: { width: page.logo.width }, className: "h-10 dark:hidden", loading: "lazy" }), _jsx("img", { src: /https?:\/\//.test(page.logo.src.dark)
35
35
  ? page.logo.src.dark
36
- : joinUrl(import.meta.env.BASE_URL, page.logo.src.dark), alt: page.logo.alt ?? page.pageTitle, style: { width: page.logo.width }, className: "h-10 hidden dark:block", loading: "lazy" })] })), _jsx("span", { className: "font-bold text-2xl text-foreground/85 tracking-wide", children: page?.pageTitle })] }) }) }), _jsxs("div", { className: "grid grid-cols-1 lg:grid-cols-[--sidecar-grid-cols] items-center gap-8", children: [_jsx("div", { className: "w-full justify-center hidden lg:flex", children: _jsx(Search, {}) }), _jsx(MobileTopNavigation, {}), _jsxs("div", { className: "hidden lg:flex items-center justify-self-end text-sm gap-2", children: [_jsx(Slotlet, { name: "head-navigation-start" }), isAuthEnabled && (_jsx(ClientOnly, { fallback: _jsx(Skeleton, { className: "rounded h-5 w-24 mr-4" }), children: !isAuthenticated ? (_jsx(Button, { variant: "ghost", onClick: () => auth.login(), children: "Login" })) : (Object.values(accountItems).length > 0 && (_jsxs(DropdownMenu, { modal: false, children: [_jsx(DropdownMenuTrigger, { asChild: true, children: _jsx(Button, { variant: "ghost", children: profile?.name ? `${profile.name}` : "My Account" }) }), _jsxs(DropdownMenuContent, { className: "w-56", children: [_jsxs(DropdownMenuLabel, { children: [profile?.name ? `${profile.name}` : "My Account", profile?.email && (_jsx("div", { className: "font-normal text-muted-foreground", children: profile.email }))] }), accountItems.filter((i) => i.category === "top")
36
+ : joinUrl(import.meta.env.BASE_URL, page.logo.src.dark), alt: page.logo.alt ?? page.pageTitle, style: { width: page.logo.width }, className: "h-10 hidden dark:block", loading: "lazy" })] })), _jsx("span", { className: "font-bold text-2xl text-foreground/85 tracking-wide", children: page?.pageTitle })] }) }) }), _jsx("div", { className: "absolute inset-x-0 justify-center items-center hidden lg:flex w-full pointer-events-none", children: _jsx(Search, { className: "pointer-events-auto" }) }), _jsxs("div", { className: "flex items-center gap-8", children: [_jsx(MobileTopNavigation, {}), _jsxs("div", { className: "hidden lg:flex items-center justify-self-end text-sm gap-2", children: [_jsx(Slotlet, { name: "head-navigation-start" }), isAuthEnabled && (_jsx(ClientOnly, { fallback: _jsx(Skeleton, { className: "rounded h-5 w-24 mr-4" }), children: !isAuthenticated ? (_jsx(Button, { variant: "ghost", onClick: () => auth.login(), children: "Login" })) : (Object.values(accountItems).length > 0 && (_jsxs(DropdownMenu, { modal: false, children: [_jsx(DropdownMenuTrigger, { asChild: true, children: _jsx(Button, { variant: "ghost", children: profile?.name ? `${profile.name}` : "My Account" }) }), _jsxs(DropdownMenuContent, { className: "w-56", children: [_jsxs(DropdownMenuLabel, { children: [profile?.name ? `${profile.name}` : "My Account", profile?.email && (_jsx("div", { className: "font-normal text-muted-foreground", children: profile.email }))] }), accountItems.filter((i) => i.category === "top")
37
37
  .length > 0 && _jsx(DropdownMenuSeparator, {}), accountItems
38
38
  .filter((i) => i.category === "top")
39
39
  .map((i) => (_jsx(RecursiveMenu, { item: i }, i.label))), accountItems.filter((i) => !i.category || i.category === "middle").length > 0 && _jsx(DropdownMenuSeparator, {}), accountItems
@@ -1 +1 @@
1
- {"version":3,"file":"Header.js","sourceRoot":"","sources":["../../../src/lib/components/Header.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Header.js","sourceRoot":"","sources":["../../../src/lib/components/Header.tsx"],"names":[],"mappings":"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"}
@@ -8,5 +8,5 @@ export const InlineCode = ({ className, children, selectOnClick, }) => (_jsx("co
8
8
  range.selectNodeContents(e.currentTarget);
9
9
  selection?.removeAllRanges();
10
10
  selection?.addRange(range);
11
- }, className: cn("font-mono border p-1 py-0.5 rounded bg-border/50 dark:bg-border/70 whitespace-nowrap", className), children: children }));
11
+ }, className: cn("font-mono border p-1 py-0.5 rounded bg-border/50 dark:bg-border/70 [overflow-wrap:anywhere]", className), children: children }));
12
12
  //# sourceMappingURL=InlineCode.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"InlineCode.js","sourceRoot":"","sources":["../../../src/lib/components/InlineCode.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,EAAE,EAAE,MAAM,eAAe,CAAC;AAEnC,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,EACzB,SAAS,EACT,QAAQ,EACR,aAAa,GAKd,EAAE,EAAE,CAAC,CACJ,eACE,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE;QACb,IAAI,CAAC,aAAa;YAAE,OAAO;QAC3B,MAAM,SAAS,GAAG,MAAM,CAAC,YAAY,EAAE,CAAC;QACxC,MAAM,KAAK,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC;QACrC,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC;QAC1C,SAAS,EAAE,eAAe,EAAE,CAAC;QAC7B,SAAS,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC7B,CAAC,EACD,SAAS,EAAE,EAAE,CACX,sFAAsF,EACtF,SAAS,CACV,YAEA,QAAQ,GACJ,CACR,CAAC"}
1
+ {"version":3,"file":"InlineCode.js","sourceRoot":"","sources":["../../../src/lib/components/InlineCode.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,EAAE,EAAE,MAAM,eAAe,CAAC;AAEnC,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,EACzB,SAAS,EACT,QAAQ,EACR,aAAa,GAKd,EAAE,EAAE,CAAC,CACJ,eACE,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE;QACb,IAAI,CAAC,aAAa;YAAE,OAAO;QAC3B,MAAM,SAAS,GAAG,MAAM,CAAC,YAAY,EAAE,CAAC;QACxC,MAAM,KAAK,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC;QACrC,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC;QAC1C,SAAS,EAAE,eAAe,EAAE,CAAC;QAC7B,SAAS,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC7B,CAAC,EACD,SAAS,EAAE,EAAE,CACX,6FAA6F,EAC7F,SAAS,CACV,YAEA,QAAQ,GACJ,CACR,CAAC"}
@@ -1,20 +1,17 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
2
  import { Helmet } from "@zudoku/react-helmet-async";
3
- import { PanelLeftIcon } from "lucide-react";
4
- import { Suspense, useEffect, useRef, useState } from "react";
3
+ import { Suspense, useEffect, useRef } from "react";
5
4
  import { Outlet, useLocation, useNavigation } from "react-router";
6
5
  import { useSpinDelay } from "spin-delay";
7
- import { Drawer, DrawerTrigger } from "../ui/Drawer.js";
8
- import { cn } from "../util/cn.js";
9
6
  import { useScrollToAnchor } from "../util/useScrollToAnchor.js";
10
7
  import { useScrollToTop } from "../util/useScrollToTop.js";
11
8
  import { useViewportAnchor } from "./context/ViewportAnchorContext.js";
12
9
  import { useZudoku } from "./context/ZudokuContext.js";
13
10
  import { Header } from "./Header.js";
14
- import { Sidebar } from "./navigation/Sidebar.js";
11
+ import { Main } from "./Main.js";
15
12
  import { Slotlet } from "./SlotletProvider.js";
16
13
  import { Spinner } from "./Spinner.js";
17
- const LoadingFallback = () => (_jsx("main", { className: "grid h-[calc(100vh-var(--header-height))] place-items-center", children: _jsx(Spinner, {}) }));
14
+ const LoadingFallback = () => (_jsx("main", { className: "col-span-full grid place-items-center", children: _jsx(Spinner, {}) }));
18
15
  export const Layout = ({ children }) => {
19
16
  const location = useLocation();
20
17
  const { setActiveAnchor } = useViewportAnchor();
@@ -39,9 +36,6 @@ export const Layout = ({ children }) => {
39
36
  delay: 300,
40
37
  minDuration: 500,
41
38
  });
42
- const [isDrawerOpen, setDrawerOpen] = useState(false);
43
- return (_jsxs(_Fragment, { children: [import.meta.env.MODE === "standalone" && (_jsx("style", { children: `:root { --top-nav-height: 0px; }` })), _jsxs(Helmet, { titleTemplate: meta?.title, children: [meta?.description && (_jsx("meta", { name: "description", content: meta.description })), meta?.favicon && _jsx("link", { rel: "icon", href: meta.favicon })] }), _jsx(Slotlet, { name: "layout-before-head" }), _jsx(Header, {}), _jsx(Slotlet, { name: "layout-after-head" }), _jsx("div", { className: "w-full min-h-[calc(100vh-var(--header-height))] max-w-screen-2xl mx-auto px-4 lg:px-8 2xl:border-x", children: showSpinner ? (_jsx(LoadingFallback, {})) : (_jsx(Suspense, { fallback: _jsx(LoadingFallback, {}), children: _jsxs(Drawer, { direction: "left", open: isDrawerOpen, onOpenChange: (open) => setDrawerOpen(open), children: [_jsx(Sidebar, { onRequestClose: () => setDrawerOpen(false) }), _jsx("div", { className: cn("lg:hidden -mx-4 px-4 py-2 sticky bg-background/80 backdrop-blur z-10 top-0 left-0 right-0 border-b", "peer-data-[navigation=false]:hidden"), children: _jsxs(DrawerTrigger, { className: "flex items-center gap-2", children: [_jsx(PanelLeftIcon, { size: 16, strokeWidth: 1.5 }), _jsx("span", { className: "text-sm", children: "Menu" })] }) }), _jsxs("main", { "data-pagefind-body": true, className: cn("h-full dark:border-white/10 translate-x-0", "lg:overflow-visible",
44
- // This works in tandem with the `SidebarWrapper` component
45
- "lg:peer-data-[navigation=true]:w-[calc(100%-var(--side-nav-width))]", "lg:peer-data-[navigation=true]:translate-x-[--side-nav-width] lg:peer-data-[navigation=true]:pl-12"), children: [_jsx(Slotlet, { name: "zudoku-before-content" }), children ?? _jsx(Outlet, {}), _jsx(Slotlet, { name: "zudoku-after-content" })] })] }) })) })] }));
39
+ return (_jsxs(_Fragment, { children: [import.meta.env.MODE === "standalone" && (_jsx("style", { children: `:root { --top-nav-height: 0px; }` })), _jsxs(Helmet, { titleTemplate: meta?.title, children: [meta?.description && (_jsx("meta", { name: "description", content: meta.description })), meta?.favicon && _jsx("link", { rel: "icon", href: meta.favicon })] }), _jsx(Slotlet, { name: "layout-before-head" }), _jsx(Header, {}), _jsx(Slotlet, { name: "layout-after-head" }), _jsx("div", { className: "grid lg:grid-cols-[var(--side-nav-width)_1fr] max-w-screen-2xl w-full lg:mx-auto px-4 lg:px-8 2xl:border-x", children: showSpinner ? (_jsx(LoadingFallback, {})) : (_jsx(Suspense, { fallback: _jsx(LoadingFallback, {}), children: _jsx(Main, { children: children ?? _jsx(Outlet, {}) }) })) })] }));
46
40
  };
47
41
  //# sourceMappingURL=Layout.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Layout.js","sourceRoot":"","sources":["../../../src/lib/components/Layout.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Layout.js","sourceRoot":"","sources":["../../../src/lib/components/Layout.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import { type PropsWithChildren } from "react";
2
+ export declare const Main: ({ children }: PropsWithChildren) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,15 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { PanelLeftIcon } from "lucide-react";
3
+ import { useState } from "react";
4
+ import { Drawer, DrawerTrigger } from "zudoku/ui/Drawer.js";
5
+ import { cn } from "../util/cn.js";
6
+ import { useCurrentNavigation } from "./context/ZudokuContext.js";
7
+ import { Sidebar } from "./navigation/Sidebar.js";
8
+ import { Slotlet } from "./SlotletProvider.js";
9
+ export const Main = ({ children }) => {
10
+ const [isDrawerOpen, setDrawerOpen] = useState(false);
11
+ const { sidebar } = useCurrentNavigation();
12
+ const hasSidebar = sidebar.length > 0;
13
+ return (_jsxs(Drawer, { direction: "left", open: isDrawerOpen, onOpenChange: (open) => setDrawerOpen(open), children: [hasSidebar && (_jsx(Sidebar, { onRequestClose: () => setDrawerOpen(false), sidebar: sidebar })), hasSidebar && (_jsx("div", { className: "lg:hidden -mx-4 px-4 py-2 sticky bg-background/80 backdrop-blur z-10 top-0 left-0 right-0 border-b", children: _jsxs(DrawerTrigger, { className: "flex items-center gap-2", children: [_jsx(PanelLeftIcon, { size: 16, strokeWidth: 1.5 }), _jsx("span", { className: "text-sm", children: "Menu" })] }) })), _jsxs("main", { "data-pagefind-body": true, className: cn("h-auto dark:border-white/10 translate-x-0", hasSidebar ? "lg:pl-12" : "col-span-full"), children: [_jsx(Slotlet, { name: "zudoku-before-content" }), children, _jsx(Slotlet, { name: "zudoku-after-content" })] })] }));
14
+ };
15
+ //# sourceMappingURL=Main.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Main.js","sourceRoot":"","sources":["../../../src/lib/components/Main.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAA0B,QAAQ,EAAE,MAAM,OAAO,CAAC;AACzD,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,EAAE,EAAE,MAAM,eAAe,CAAC;AACnC,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAClD,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAE/C,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,EAAE,QAAQ,EAAqB,EAAE,EAAE;IACtD,MAAM,CAAC,YAAY,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IACtD,MAAM,EAAE,OAAO,EAAE,GAAG,oBAAoB,EAAE,CAAC;IAC3C,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;IAEtC,OAAO,CACL,MAAC,MAAM,IACL,SAAS,EAAC,MAAM,EAChB,IAAI,EAAE,YAAY,EAClB,YAAY,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,aAE1C,UAAU,IAAI,CACb,KAAC,OAAO,IACN,cAAc,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,EAC1C,OAAO,EAAE,OAAO,GAChB,CACH,EACA,UAAU,IAAI,CACb,cAAK,SAAS,EAAC,oGAAoG,YACjH,MAAC,aAAa,IAAC,SAAS,EAAC,yBAAyB,aAChD,KAAC,aAAa,IAAC,IAAI,EAAE,EAAE,EAAE,WAAW,EAAE,GAAG,GAAI,EAC7C,eAAM,SAAS,EAAC,SAAS,qBAAY,IACvB,GACZ,CACP,EACD,4CAEE,SAAS,EAAE,EAAE,CACX,2CAA2C,EAC3C,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,eAAe,CAC1C,aAED,KAAC,OAAO,IAAC,IAAI,EAAC,uBAAuB,GAAG,EACvC,QAAQ,EACT,KAAC,OAAO,IAAC,IAAI,EAAC,sBAAsB,GAAG,IAClC,IACA,CACV,CAAC;AACJ,CAAC,CAAC"}
@@ -1,4 +1,4 @@
1
- import { type ReactNode } from "react";
1
+ import { type PropsWithChildren } from "react";
2
2
  type AnchorContextType = {
3
3
  activeAnchor?: string;
4
4
  setActiveAnchor: (anchor: string) => void;
@@ -9,7 +9,5 @@ export declare const useViewportAnchor: () => AnchorContextType;
9
9
  export declare const useRegisterAnchorElement: () => {
10
10
  ref: (el: HTMLElement | null) => void;
11
11
  };
12
- export declare const ViewportAnchorProvider: ({ children, }: {
13
- children: ReactNode;
14
- }) => import("react/jsx-runtime").JSX.Element;
12
+ export declare const ViewportAnchorProvider: ({ children }: PropsWithChildren) => import("react/jsx-runtime").JSX.Element;
15
13
  export {};
@@ -25,7 +25,7 @@ export const useRegisterAnchorElement = () => {
25
25
  }, []);
26
26
  return { ref: setRef };
27
27
  };
28
- export const ViewportAnchorProvider = ({ children, }) => {
28
+ export const ViewportAnchorProvider = ({ children }) => {
29
29
  const [activeAnchor, setActiveAnchor] = useState("");
30
30
  const observerRef = useRef(null);
31
31
  const registeredElements = useRef(new Set());
@@ -38,9 +38,7 @@ export const ViewportAnchorProvider = ({ children, }) => {
38
38
  }
39
39
  }
40
40
  }, {
41
- // 115px is the height of the sticky header
42
- // see --header-height in `main.css`
43
- rootMargin: "115px 0px -80% 0px",
41
+ rootMargin: "0px 0px -80% 0px",
44
42
  threshold: 0.75,
45
43
  });
46
44
  // Process any elements that tried to register before observer was ready
@@ -1 +1 @@
1
- {"version":3,"file":"ViewportAnchorContext.js","sourceRoot":"","sources":["../../../../src/lib/components/context/ViewportAnchorContext.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ViewportAnchorContext.js","sourceRoot":"","sources":["../../../../src/lib/components/context/ViewportAnchorContext.tsx"],"names":[],"mappings":";AAAA,OAAO,EACL,aAAa,EACb,WAAW,EACX,UAAU,EACV,SAAS,EACT,OAAO,EACP,MAAM,EACN,QAAQ,GAET,MAAM,OAAO,CAAC;AASf,MAAM,qBAAqB,GAAG,aAAa,CACzC,SAAS,CACV,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAAG,EAAE;IACpC,MAAM,OAAO,GAAG,UAAU,CAAC,qBAAqB,CAAC,CAAC;IAElD,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CACb,+DAA+D,CAChE,CAAC;IACJ,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,wBAAwB,GAAG,GAAG,EAAE;IAC3C,MAAM,UAAU,GAAG,MAAM,CAAqB,IAAI,CAAC,CAAC;IAEpD,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,iBAAiB,EAAE,CAAC;IAEnD,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC;QAEnC,IAAI,CAAC,OAAO;YAAE,OAAO;QAErB,OAAO,CAAC,OAAO,CAAC,CAAC;QAEjB,OAAO,GAAG,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IAClC,CAAC,EAAE,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC;IAEzB,MAAM,MAAM,GAAG,WAAW,CAAC,CAAC,EAAsB,EAAE,EAAE;QACpD,IAAI,CAAC,EAAE;YAAE,OAAO;QAChB,UAAU,CAAC,OAAO,GAAG,EAAE,CAAC;IAC1B,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC;AACzB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,EAAE,QAAQ,EAAqB,EAAE,EAAE;IACxE,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IACrD,MAAM,WAAW,GAAG,MAAM,CAA8B,IAAI,CAAC,CAAC;IAC9D,MAAM,kBAAkB,GAAG,MAAM,CAAC,IAAI,GAAG,EAAe,CAAC,CAAC;IAC1D,MAAM,eAAe,GAAG,MAAM,CAAC,IAAI,GAAG,EAAe,CAAC,CAAC;IAEvD,SAAS,CAAC,GAAG,EAAE;QACb,WAAW,CAAC,OAAO,GAAG,IAAI,oBAAoB,CAC5C,CAAC,OAAO,EAAE,EAAE;YACV,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;gBAC5B,IAAI,KAAK,CAAC,cAAc,IAAI,KAAK,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;oBAC5C,eAAe,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBACnC,CAAC;YACH,CAAC;QACH,CAAC,EACD;YACE,UAAU,EAAE,kBAAkB;YAC9B,SAAS,EAAE,IAAI;SAChB,CACF,CAAC;QAEF,wEAAwE;QACxE,eAAe,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC1C,kBAAkB,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACxC,WAAW,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;QACxC,CAAC,CAAC,CAAC;QACH,eAAe,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QAEhC,OAAO,GAAG,EAAE,CAAC,WAAW,CAAC,OAAO,EAAE,UAAU,EAAE,CAAC;IACjD,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,QAAQ,GAAG,kBAAkB,CAAC,OAAO,CAAC;QAC5C,MAAM,YAAY,GAAG,GAAG,EAAE;YACxB,MAAM,aAAa,GAAG,MAAM,CAAC,OAAO,KAAK,CAAC,CAAC;YAC3C,MAAM,gBAAgB,GACpB,MAAM,CAAC,WAAW,GAAG,MAAM,CAAC,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC;YAEpE,IAAI,aAAa,EAAE,CAAC;gBAClB,gDAAgD;gBAChD,eAAe,CAAC,EAAE,CAAC,CAAC;YACtB,CAAC;iBAAM,IAAI,gBAAgB,EAAE,CAAC;gBAC5B,mBAAmB,CAAC,GAAG,EAAE;oBACvB,+CAA+C;oBAC/C,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,EAAE,CAAC;oBAC5C,eAAe,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;gBACtC,CAAC,CAAC,CAAC;YACL,CAAC;QACH,CAAC,CAAC;QAEF,QAAQ,CAAC,gBAAgB,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;QAElD,OAAO,GAAG,EAAE;YACV,QAAQ,CAAC,KAAK,EAAE,CAAC;YACjB,QAAQ,CAAC,mBAAmB,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;QACvD,CAAC,CAAC;IACJ,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,EAAE;QAC9B,OAAO;YACL,OAAO,EAAE,CAAC,OAA2B,EAAE,EAAE;gBACvC,IAAI,CAAC,OAAO;oBAAE,OAAO;gBAErB,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;oBACzB,eAAe,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;oBACrC,OAAO;gBACT,CAAC;gBAED,kBAAkB,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;gBACxC,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YACvC,CAAC;YACD,SAAS,EAAE,CAAC,OAA2B,EAAE,EAAE;gBACzC,IAAI,CAAC,OAAO;oBAAE,OAAO;gBAErB,eAAe,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;gBACxC,kBAAkB,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;gBAC3C,WAAW,CAAC,OAAO,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC;YAC1C,CAAC;SACF,CAAC;IACJ,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,KAAK,GAAG,OAAO,CACnB,GAAG,EAAE,CAAC,CAAC,EAAE,YAAY,EAAE,eAAe,EAAE,GAAG,UAAU,EAAE,CAAC,EACxD,CAAC,YAAY,EAAE,eAAe,EAAE,UAAU,CAAC,CAC5C,CAAC;IAEF,OAAO,CACL,KAAC,qBAAqB,IAAC,KAAK,EAAE,KAAK,YAAG,QAAQ,GAAyB,CACxE,CAAC;AACJ,CAAC,CAAC"}
@@ -46,11 +46,12 @@ export declare const StatusPage: ({ statusCode, message }: {
46
46
  statusCode: number;
47
47
  message?: import("react").ReactNode;
48
48
  }) => import("react/jsx-runtime").JSX.Element;
49
- export declare const Callout: ({ type, children, title, className }: {
49
+ export declare const Callout: ({ type, children, title, className, icon, }: {
50
50
  type: "info" | "note" | "tip" | "caution" | "danger";
51
51
  title?: string;
52
52
  children: import("react").ReactNode;
53
53
  className?: string;
54
+ icon?: boolean;
54
55
  }) => import("react/jsx-runtime").JSX.Element;
55
56
  export declare const Markdown: import("react").MemoExoticComponent<({ content, className }: {
56
57
  content: string;
@@ -1,3 +1,5 @@
1
- export declare const Sidebar: ({ onRequestClose, }: {
1
+ import type { SidebarItem as SidebarItemType } from "../../../config/validators/SidebarSchema.js";
2
+ export declare const Sidebar: ({ onRequestClose, sidebar, }: {
2
3
  onRequestClose?: () => void;
4
+ sidebar: SidebarItemType[];
3
5
  }) => import("react/jsx-runtime").JSX.Element;
@@ -3,17 +3,15 @@ import { useEffect, useRef } from "react";
3
3
  import { VisuallyHidden } from "@radix-ui/react-visually-hidden";
4
4
  import { DrawerContent, DrawerTitle } from "../../ui/Drawer.js";
5
5
  import { scrollIntoViewIfNeeded } from "../../util/scrollIntoViewIfNeeded.js";
6
- import { useCurrentNavigation } from "../context/ZudokuContext.js";
7
6
  import { Slotlet } from "../SlotletProvider.js";
8
7
  import { SidebarItem } from "./SidebarItem.js";
9
8
  import { SidebarWrapper } from "./SidebarWrapper.js";
10
- export const Sidebar = ({ onRequestClose, }) => {
9
+ export const Sidebar = ({ onRequestClose, sidebar, }) => {
11
10
  const navRef = useRef(null);
12
- const navigation = useCurrentNavigation();
13
11
  useEffect(() => {
14
12
  const active = navRef.current?.querySelector('[aria-current="page"]');
15
13
  scrollIntoViewIfNeeded(active ?? null);
16
14
  }, []);
17
- return (_jsxs(_Fragment, { children: [_jsxs(SidebarWrapper, { ref: navRef, pushMainContent: navigation.sidebar.length > 0, children: [_jsx(Slotlet, { name: "zudoku-before-navigation" }), navigation.sidebar.map((item) => (_jsx(SidebarItem, { item: item }, item.label))), _jsx(Slotlet, { name: "zudoku-after-navigation" })] }), _jsx(DrawerContent, { className: "lg:hidden h-[100dvh] left-0 w-[320px] rounded-none", "aria-describedby": undefined, children: _jsxs("div", { className: "p-4 overflow-y-auto overscroll-none", children: [_jsx(VisuallyHidden, { children: _jsx(DrawerTitle, { children: "Sidebar" }) }), navigation.sidebar.map((item) => (_jsx(SidebarItem, { item: item, onRequestClose: onRequestClose }, item.label)))] }) })] }));
15
+ return (_jsxs(_Fragment, { children: [_jsxs(SidebarWrapper, { ref: navRef, children: [_jsx(Slotlet, { name: "zudoku-before-navigation" }), sidebar.map((item) => (_jsx(SidebarItem, { item: item }, item.label))), _jsx(Slotlet, { name: "zudoku-after-navigation" })] }), _jsx(DrawerContent, { className: "lg:hidden h-[100dvh] left-0 w-[320px] rounded-none", "aria-describedby": undefined, children: _jsxs("div", { className: "p-4 overflow-y-auto overscroll-none", children: [_jsx(VisuallyHidden, { children: _jsx(DrawerTitle, { children: "Sidebar" }) }), sidebar.map((item) => (_jsx(SidebarItem, { item: item, onRequestClose: onRequestClose }, item.label)))] }) })] }));
18
16
  };
19
17
  //# sourceMappingURL=Sidebar.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Sidebar.js","sourceRoot":"","sources":["../../../../src/lib/components/navigation/Sidebar.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAE1C,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAChE,OAAO,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AAC9E,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,EACtB,cAAc,GAGf,EAAE,EAAE;IACH,MAAM,MAAM,GAAG,MAAM,CAAwB,IAAI,CAAC,CAAC;IACnD,MAAM,UAAU,GAAG,oBAAoB,EAAE,CAAC;IAE1C,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,EAAE,aAAa,CAAC,uBAAuB,CAAC,CAAC;QACtE,sBAAsB,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC;IACzC,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,CACL,8BACE,MAAC,cAAc,IACb,GAAG,EAAE,MAAM,EACX,eAAe,EAAE,UAAU,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,aAE9C,KAAC,OAAO,IAAC,IAAI,EAAC,0BAA0B,GAAG,EAC1C,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAChC,KAAC,WAAW,IAAkB,IAAI,EAAE,IAAI,IAAtB,IAAI,CAAC,KAAK,CAAgB,CAC7C,CAAC,EACF,KAAC,OAAO,IAAC,IAAI,EAAC,yBAAyB,GAAG,IAC3B,EACjB,KAAC,aAAa,IACZ,SAAS,EAAC,oDAAoD,sBAC5C,SAAS,YAE3B,eAAK,SAAS,EAAC,qCAAqC,aAClD,KAAC,cAAc,cACb,KAAC,WAAW,0BAAsB,GACnB,EAChB,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAChC,KAAC,WAAW,IAEV,IAAI,EAAE,IAAI,EACV,cAAc,EAAE,cAAc,IAFzB,IAAI,CAAC,KAAK,CAGf,CACH,CAAC,IACE,GACQ,IACf,CACJ,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"Sidebar.js","sourceRoot":"","sources":["../../../../src/lib/components/navigation/Sidebar.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAE1C,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAEjE,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAChE,OAAO,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AAC9E,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,EACtB,cAAc,EACd,OAAO,GAIR,EAAE,EAAE;IACH,MAAM,MAAM,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAC;IAE5C,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,EAAE,aAAa,CAAC,uBAAuB,CAAC,CAAC;QACtE,sBAAsB,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC;IACzC,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,CACL,8BACE,MAAC,cAAc,IAAC,GAAG,EAAE,MAAM,aACzB,KAAC,OAAO,IAAC,IAAI,EAAC,0BAA0B,GAAG,EAC1C,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CACrB,KAAC,WAAW,IAAkB,IAAI,EAAE,IAAI,IAAtB,IAAI,CAAC,KAAK,CAAgB,CAC7C,CAAC,EACF,KAAC,OAAO,IAAC,IAAI,EAAC,yBAAyB,GAAG,IAC3B,EACjB,KAAC,aAAa,IACZ,SAAS,EAAC,oDAAoD,sBAC5C,SAAS,YAE3B,eAAK,SAAS,EAAC,qCAAqC,aAClD,KAAC,cAAc,cACb,KAAC,WAAW,0BAAsB,GACnB,EAChB,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CACrB,KAAC,WAAW,IAEV,IAAI,EAAE,IAAI,EACV,cAAc,EAAE,cAAc,IAFzB,IAAI,CAAC,KAAK,CAGf,CACH,CAAC,IACE,GACQ,IACf,CACJ,CAAC;AACJ,CAAC,CAAC"}
@@ -1,6 +1,8 @@
1
- export declare const SidebarWrapper: import("react").ForwardRefExoticComponent<{
2
- pushMainContent?: boolean;
3
- className?: string;
4
- } & {
5
- children?: import("react").ReactNode | undefined;
6
- } & import("react").RefAttributes<HTMLDivElement>>;
1
+ import { type PropsWithChildren, type Ref } from "react";
2
+ export declare const SidebarWrapper: {
3
+ ({ children, className, ref, }: PropsWithChildren<{
4
+ className?: string;
5
+ ref?: Ref<HTMLDivElement>;
6
+ }>): import("react/jsx-runtime").JSX.Element;
7
+ displayName: string;
8
+ };
@@ -1,6 +1,5 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
- import { forwardRef } from "react";
3
2
  import { cn } from "../../util/cn.js";
4
- export const SidebarWrapper = forwardRef(({ children, className, pushMainContent }, ref) => (_jsx("nav", { "data-navigation": String(pushMainContent), className: cn("scrollbar peer hidden lg:flex flex-col fixed text-sm overflow-y-auto shrink-0 border-r pr-6", "-mx-[--padding-nav-item] pb-20 pt-[--padding-content-top]", "w-[--side-nav-width] h-[calc(100%-var(--header-height))] scroll-pt-2 gap-2", !pushMainContent && "border-r-0", className), ref: ref, children: children })));
3
+ export const SidebarWrapper = ({ children, className, ref, }) => (_jsx("nav", { className: cn("hidden lg:flex h-full scrollbar peer flex-col overflow-y-auto shrink-0 text-sm border-r pr-6", "sticky top-[--header-height] h-[calc(100vh-var(--header-height))]", "-mx-[--padding-nav-item] max-w-[--side-nav-width] pb-20 pt-[--padding-content-top] scroll-pt-2 gap-2", className), ref: ref, children: children }));
5
4
  SidebarWrapper.displayName = "SidebarWrapper";
6
5
  //# sourceMappingURL=SidebarWrapper.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SidebarWrapper.js","sourceRoot":"","sources":["../../../../src/lib/components/navigation/SidebarWrapper.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAA0B,MAAM,OAAO,CAAC;AAC3D,OAAO,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AAEtC,MAAM,CAAC,MAAM,cAAc,GAAG,UAAU,CAGtC,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,eAAe,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CACnD,iCAKmB,MAAM,CAAC,eAAe,CAAC,EACxC,SAAS,EAAE,EAAE,CACX,6FAA6F,EAC7F,2DAA2D,EAC3D,4EAA4E,EAC5E,CAAC,eAAe,IAAI,YAAY,EAChC,SAAS,CACV,EACD,GAAG,EAAE,GAAG,YAEP,QAAQ,GACL,CACP,CAAC,CAAC;AAEH,cAAc,CAAC,WAAW,GAAG,gBAAgB,CAAC"}
1
+ {"version":3,"file":"SidebarWrapper.js","sourceRoot":"","sources":["../../../../src/lib/components/navigation/SidebarWrapper.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AAEtC,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,EAC7B,QAAQ,EACR,SAAS,EACT,GAAG,GAIH,EAAE,EAAE,CAAC,CACL,cACE,SAAS,EAAE,EAAE,CACX,8FAA8F,EAC9F,mEAAmE,EACnE,sGAAsG,EACtG,SAAS,CACV,EACD,GAAG,EAAE,GAAG,YAEP,QAAQ,GACL,CACP,CAAC;AAEF,cAAc,CAAC,WAAW,GAAG,gBAAgB,CAAC"}
@@ -12,7 +12,8 @@ export const RouteGuard = () => {
12
12
  const navigate = useNavigate();
13
13
  const location = useLocation();
14
14
  const latestPath = useLatest(location.pathname);
15
- const isProtected = zudoku.options.protectedRoutes?.some((path) => matchPath({ path, end: true }, location.pathname));
15
+ const { protectedRoutes = [] } = zudoku.options;
16
+ const isProtected = protectedRoutes.some((path) => matchPath({ path, end: true }, location.pathname));
16
17
  useQuery({
17
18
  queryKey: ["login-redirect"],
18
19
  queryFn: async () => {
@@ -1 +1 @@
1
- {"version":3,"file":"RouteGuard.js","sourceRoot":"","sources":["../../../src/lib/core/RouteGuard.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3E,OAAO,EACL,MAAM,EACN,aAAa,EACb,iBAAiB,EACjB,YAAY,EACZ,WAAW,GACZ,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,wCAAwC,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEjD,MAAM,CAAC,MAAM,UAAU,GAAG,GAAG,EAAE;IAC7B,MAAM,IAAI,GAAG,OAAO,EAAE,CAAC;IACvB,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IAC/B,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IAC/B,MAAM,UAAU,GAAG,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAEhD,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAChE,SAAS,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAClD,CAAC;IAEF,QAAQ,CAAC;QACP,QAAQ,EAAE,CAAC,gBAAgB,CAAC;QAC5B,OAAO,EAAE,KAAK,IAAI,EAAE;YAClB,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;YAC1D,MAAM,MAAM,CAAC,cAAc,EAAE,MAAM,CAAC;gBAClC,UAAU,EAAE,UAAU,CAAC,OAAO;aAC/B,CAAC,CAAC;YACH,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,EACL,OAAO,MAAM,KAAK,WAAW;YAC7B,WAAW;YACX,CAAC,IAAI,CAAC,SAAS;YACf,CAAC,IAAI,CAAC,eAAe;KACxB,CAAC,CAAC;IAEH,IAAI,WAAW,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;QACzC,OAAO,CACL,KAAC,MAAM,IACL,IAAI,EAAE,IAAI,EACV,YAAY,EAAE,CAAC,IAAI,EAAE,EAAE;gBACrB,IAAI,CAAC,IAAI,EAAE,CAAC;oBACV,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;gBACpB,CAAC;YACH,CAAC,YAED,MAAC,aAAa,eACZ,KAAC,YAAY,cACX,KAAC,WAAW,oCAAgC,GAC/B,EACf,KAAC,iBAAiB,mDAEE,IACN,GACT,CACV,CAAC;IACJ,CAAC;IAED,IAAI,WAAW,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;QACvC,MAAM,IAAI,WAAW,CAAC,+BAA+B,EAAE;YACrD,KAAK,EAAE,+BAA+B;YACtC,aAAa,EACX,8DAA8D;SACjE,CAAC,CAAC;IACL,CAAC;IAED,OAAO,KAAC,MAAM,KAAG,CAAC;AACpB,CAAC,CAAC"}
1
+ {"version":3,"file":"RouteGuard.js","sourceRoot":"","sources":["../../../src/lib/core/RouteGuard.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3E,OAAO,EACL,MAAM,EACN,aAAa,EACb,iBAAiB,EACjB,YAAY,EACZ,WAAW,GACZ,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,wCAAwC,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEjD,MAAM,CAAC,MAAM,UAAU,GAAG,GAAG,EAAE;IAC7B,MAAM,IAAI,GAAG,OAAO,EAAE,CAAC;IACvB,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IAC/B,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IAC/B,MAAM,UAAU,GAAG,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAChD,MAAM,EAAE,eAAe,GAAG,EAAE,EAAE,GAAG,MAAM,CAAC,OAAO,CAAC;IAEhD,MAAM,WAAW,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAChD,SAAS,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAClD,CAAC;IAEF,QAAQ,CAAC;QACP,QAAQ,EAAE,CAAC,gBAAgB,CAAC;QAC5B,OAAO,EAAE,KAAK,IAAI,EAAE;YAClB,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;YAC1D,MAAM,MAAM,CAAC,cAAc,EAAE,MAAM,CAAC;gBAClC,UAAU,EAAE,UAAU,CAAC,OAAO;aAC/B,CAAC,CAAC;YACH,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,EACL,OAAO,MAAM,KAAK,WAAW;YAC7B,WAAW;YACX,CAAC,IAAI,CAAC,SAAS;YACf,CAAC,IAAI,CAAC,eAAe;KACxB,CAAC,CAAC;IAEH,IAAI,WAAW,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;QACzC,OAAO,CACL,KAAC,MAAM,IACL,IAAI,EAAE,IAAI,EACV,YAAY,EAAE,CAAC,IAAI,EAAE,EAAE;gBACrB,IAAI,CAAC,IAAI,EAAE,CAAC;oBACV,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;gBACpB,CAAC;YACH,CAAC,YAED,MAAC,aAAa,eACZ,KAAC,YAAY,cACX,KAAC,WAAW,oCAAgC,GAC/B,EACf,KAAC,iBAAiB,mDAEE,IACN,GACT,CACV,CAAC;IACJ,CAAC;IAED,IAAI,WAAW,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;QACvC,MAAM,IAAI,WAAW,CAAC,+BAA+B,EAAE;YACrD,KAAK,EAAE,+BAA+B;YACtC,aAAa,EACX,8DAA8D;SACjE,CAAC,CAAC;IACL,CAAC;IAED,OAAO,KAAC,MAAM,KAAG,CAAC;AACpB,CAAC,CAAC"}
@@ -18,6 +18,15 @@ const builder = new SchemaBuilder({
18
18
  const JSONScalar = builder.addScalarType("JSON", GraphQLJSON);
19
19
  const JSONObjectScalar = builder.addScalarType("JSONObject", GraphQLJSONObject);
20
20
  const JSONSchemaScalar = builder.addScalarType("JSONSchema", GraphQLJSONSchema);
21
+ const resolveExtensions = (obj) => {
22
+ const extensions = {};
23
+ for (const [key, value] of Object.entries(obj)) {
24
+ if (key.startsWith("x-")) {
25
+ extensions[key] = value;
26
+ }
27
+ }
28
+ return extensions;
29
+ };
21
30
  export const getAllTags = (schema) => {
22
31
  const rootTags = schema.tags ?? [];
23
32
  const operationTags = new Set(Object.values(schema.paths ?? {})
@@ -97,6 +106,11 @@ const TagItem = builder.objectRef("TagItem").implement({
97
106
  fields: (t) => ({
98
107
  name: t.exposeString("name"),
99
108
  description: t.exposeString("description", { nullable: true }),
109
+ extensions: t.field({
110
+ type: JSONObjectScalar,
111
+ resolve: (parent) => resolveExtensions(parent),
112
+ nullable: true,
113
+ }),
100
114
  }),
101
115
  });
102
116
  const EncodingItem = builder
@@ -150,6 +164,11 @@ const ParameterItem = builder
150
164
  nullable: true,
151
165
  }),
152
166
  schema: t.expose("schema", { type: JSONSchemaScalar, nullable: true }),
167
+ extensions: t.field({
168
+ type: JSONObjectScalar,
169
+ resolve: (parent) => resolveExtensions(parent),
170
+ nullable: true,
171
+ }),
153
172
  }),
154
173
  });
155
174
  const MediaTypeItem = builder
@@ -180,6 +199,11 @@ const ResponseItem = builder
180
199
  content: t.expose("content", { type: [MediaTypeItem], nullable: true }),
181
200
  headers: t.expose("headers", { type: JSONScalar, nullable: true }),
182
201
  links: t.expose("links", { type: JSONScalar, nullable: true }),
202
+ extensions: t.field({
203
+ type: JSONObjectScalar,
204
+ resolve: (parent) => resolveExtensions(parent),
205
+ nullable: true,
206
+ }),
183
207
  }),
184
208
  });
185
209
  const OperationItem = builder
@@ -261,6 +285,11 @@ const OperationItem = builder
261
285
  nullable: true,
262
286
  }),
263
287
  deprecated: t.exposeBoolean("deprecated", { nullable: true }),
288
+ extensions: t.field({
289
+ type: JSONObjectScalar,
290
+ resolve: (parent) => resolveExtensions(parent),
291
+ nullable: true,
292
+ }),
264
293
  }),
265
294
  });
266
295
  const Schema = builder.objectRef("Schema").implement({
@@ -319,6 +348,11 @@ const Schema = builder.objectRef("Schema").implement({
319
348
  (!args.untagged || (op.tags ?? []).length === 0));
320
349
  }),
321
350
  }),
351
+ extensions: t.field({
352
+ type: JSONObjectScalar,
353
+ resolve: (root) => resolveExtensions(root),
354
+ nullable: true,
355
+ }),
322
356
  }),
323
357
  });
324
358
  const SchemaSource = builder.enumType("SchemaType", {