zudoku 0.17.0 → 0.18.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 (275) hide show
  1. package/dist/app/demo.js +0 -2
  2. package/dist/app/demo.js.map +1 -1
  3. package/dist/app/entry.client.js +14 -0
  4. package/dist/app/entry.client.js.map +1 -1
  5. package/dist/app/entry.server.js +5 -4
  6. package/dist/app/entry.server.js.map +1 -1
  7. package/dist/app/standalone.js +0 -2
  8. package/dist/app/standalone.js.map +1 -1
  9. package/dist/codegen.d.ts +3 -0
  10. package/dist/codegen.js +45 -0
  11. package/dist/codegen.js.map +1 -0
  12. package/dist/config/validators/InputSidebarSchema.d.ts +10 -10
  13. package/dist/config/validators/validate.d.ts +74 -74
  14. package/dist/lib/authentication/hook.d.ts +5 -4
  15. package/dist/lib/authentication/hook.js +1 -3
  16. package/dist/lib/authentication/hook.js.map +1 -1
  17. package/dist/lib/authentication/providers/auth0.js +11 -11
  18. package/dist/lib/authentication/providers/auth0.js.map +1 -1
  19. package/dist/lib/authentication/providers/openid.d.ts +0 -1
  20. package/dist/lib/authentication/providers/openid.js +11 -26
  21. package/dist/lib/authentication/providers/openid.js.map +1 -1
  22. package/dist/lib/authentication/state.d.ts +25 -4
  23. package/dist/lib/authentication/state.js +28 -5
  24. package/dist/lib/authentication/state.js.map +1 -1
  25. package/dist/lib/components/Bootstrap.d.ts +3 -1
  26. package/dist/lib/components/Bootstrap.js +11 -3
  27. package/dist/lib/components/Bootstrap.js.map +1 -1
  28. package/dist/lib/components/DeveloperHint.js +2 -1
  29. package/dist/lib/components/DeveloperHint.js.map +1 -1
  30. package/dist/lib/components/Header.js +3 -7
  31. package/dist/lib/components/Header.js.map +1 -1
  32. package/dist/lib/components/Heading.d.ts +1 -1
  33. package/dist/lib/components/Layout.js +11 -3
  34. package/dist/lib/components/Layout.js.map +1 -1
  35. package/dist/lib/components/MobileTopNavigation.js +6 -7
  36. package/dist/lib/components/MobileTopNavigation.js.map +1 -1
  37. package/dist/lib/components/SyntaxHighlight.js +16 -12
  38. package/dist/lib/components/SyntaxHighlight.js.map +1 -1
  39. package/dist/lib/components/ThemeSwitch.d.ts +1 -0
  40. package/dist/lib/components/ThemeSwitch.js +13 -0
  41. package/dist/lib/components/ThemeSwitch.js.map +1 -0
  42. package/dist/lib/components/TopNavigation.d.ts +2 -0
  43. package/dist/lib/components/TopNavigation.js +13 -7
  44. package/dist/lib/components/TopNavigation.js.map +1 -1
  45. package/dist/lib/components/Zudoku.js +4 -5
  46. package/dist/lib/components/Zudoku.js.map +1 -1
  47. package/dist/lib/components/context/ZudokuContext.d.ts +3 -3
  48. package/dist/lib/components/context/ZudokuContext.js +7 -12
  49. package/dist/lib/components/context/ZudokuContext.js.map +1 -1
  50. package/dist/lib/components/index.d.ts +14 -3
  51. package/dist/lib/components/navigation/Sidebar.js +1 -1
  52. package/dist/lib/components/navigation/Sidebar.js.map +1 -1
  53. package/dist/lib/components/navigation/utils.js +2 -2
  54. package/dist/lib/components/navigation/utils.js.map +1 -1
  55. package/dist/lib/core/ZudokuContext.d.ts +0 -4
  56. package/dist/lib/core/ZudokuContext.js +0 -5
  57. package/dist/lib/core/ZudokuContext.js.map +1 -1
  58. package/dist/lib/errors/ErrorAlert.js +1 -1
  59. package/dist/lib/errors/ErrorAlert.js.map +1 -1
  60. package/dist/lib/plugins/openapi/ColorizedParam.js +13 -9
  61. package/dist/lib/plugins/openapi/ColorizedParam.js.map +1 -1
  62. package/dist/lib/plugins/openapi/Endpoint.d.ts +1 -1
  63. package/dist/lib/plugins/openapi/Endpoint.js +5 -9
  64. package/dist/lib/plugins/openapi/Endpoint.js.map +1 -1
  65. package/dist/lib/plugins/openapi/OperationList.d.ts +2 -2
  66. package/dist/lib/plugins/openapi/OperationList.js +6 -21
  67. package/dist/lib/plugins/openapi/OperationList.js.map +1 -1
  68. package/dist/lib/plugins/openapi/Route.d.ts +4 -4
  69. package/dist/lib/plugins/openapi/Route.js +2 -4
  70. package/dist/lib/plugins/openapi/Route.js.map +1 -1
  71. package/dist/lib/plugins/openapi/Sidecar.d.ts +1 -1
  72. package/dist/lib/plugins/openapi/Sidecar.js +8 -11
  73. package/dist/lib/plugins/openapi/Sidecar.js.map +1 -1
  74. package/dist/lib/plugins/openapi/client/GraphQLClient.d.ts +8 -0
  75. package/dist/lib/plugins/openapi/client/GraphQLClient.js +102 -0
  76. package/dist/lib/plugins/openapi/client/GraphQLClient.js.map +1 -0
  77. package/dist/lib/plugins/openapi/client/GraphQLContext.d.ts +7 -0
  78. package/dist/lib/plugins/openapi/client/GraphQLContext.js +5 -0
  79. package/dist/lib/plugins/openapi/client/GraphQLContext.js.map +1 -0
  80. package/dist/lib/plugins/openapi/client/createServer.d.ts +1 -0
  81. package/dist/lib/plugins/openapi/client/useCreateQuery.d.ts +5 -0
  82. package/dist/lib/plugins/openapi/client/useCreateQuery.js +13 -0
  83. package/dist/lib/plugins/openapi/client/useCreateQuery.js.map +1 -0
  84. package/dist/lib/plugins/openapi/client/worker.d.ts +4 -1
  85. package/dist/lib/plugins/openapi/client/worker.js +23 -14
  86. package/dist/lib/plugins/openapi/client/worker.js.map +1 -1
  87. package/dist/lib/plugins/openapi/graphql/fragment-masking.d.ts +3 -3
  88. package/dist/lib/plugins/openapi/graphql/fragment-masking.js +3 -4
  89. package/dist/lib/plugins/openapi/graphql/fragment-masking.js.map +1 -1
  90. package/dist/lib/plugins/openapi/graphql/gql.d.ts +5 -52
  91. package/dist/lib/plugins/openapi/graphql/gql.js +2 -1
  92. package/dist/lib/plugins/openapi/graphql/gql.js.map +1 -1
  93. package/dist/lib/plugins/openapi/graphql/graphql.d.ts +134 -9
  94. package/dist/lib/plugins/openapi/graphql/graphql.js +194 -778
  95. package/dist/lib/plugins/openapi/graphql/graphql.js.map +1 -1
  96. package/dist/lib/plugins/openapi/index.js +40 -53
  97. package/dist/lib/plugins/openapi/index.js.map +1 -1
  98. package/dist/lib/plugins/openapi/schema/SchemaView.js.map +1 -1
  99. package/dist/lib/plugins/openapi-worker.d.ts +1 -1
  100. package/dist/lib/plugins/openapi-worker.js +7 -1
  101. package/dist/lib/plugins/openapi-worker.js.map +1 -1
  102. package/dist/lib/util/MdxComponents.d.ts +1 -1
  103. package/dist/vite/config.js +0 -1
  104. package/dist/vite/config.js.map +1 -1
  105. package/dist/vite/html.js +0 -2
  106. package/dist/vite/html.js.map +1 -1
  107. package/dist/vite/plugin-component.js +1 -1
  108. package/dist/vite/plugin-component.js.map +1 -1
  109. package/dist/vite/plugin-mdx.js +3 -2
  110. package/dist/vite/plugin-mdx.js.map +1 -1
  111. package/dist/vite/plugin.js +0 -2
  112. package/dist/vite/plugin.js.map +1 -1
  113. package/dist/vite/remarkStaticGeneration.d.ts +3 -0
  114. package/dist/vite/remarkStaticGeneration.js +125 -0
  115. package/dist/vite/remarkStaticGeneration.js.map +1 -0
  116. package/lib/{AnchorLink-DYbUOP9U.js → AnchorLink-CDlhr8gL.js} +11 -10
  117. package/lib/{AnchorLink-DYbUOP9U.js.map → AnchorLink-CDlhr8gL.js.map} +1 -1
  118. package/lib/{AuthenticationPlugin-bqGAKfot.js → AuthenticationPlugin-DeGDVa1r.js} +6 -5
  119. package/lib/{AuthenticationPlugin-bqGAKfot.js.map → AuthenticationPlugin-DeGDVa1r.js.map} +1 -1
  120. package/lib/{Spinner-ChOGyPls.js → Button-jK0EsymC.js} +12 -15
  121. package/lib/Button-jK0EsymC.js.map +1 -0
  122. package/lib/Markdown-ievDDhFT.js +15192 -0
  123. package/lib/Markdown-ievDDhFT.js.map +1 -0
  124. package/lib/{MdxPage-DRKqyn2b.js → MdxPage-Bwn-VSsH.js} +5 -5
  125. package/lib/{MdxPage-DRKqyn2b.js.map → MdxPage-Bwn-VSsH.js.map} +1 -1
  126. package/lib/OperationList-BwBl1xrD.js +4691 -0
  127. package/lib/OperationList-BwBl1xrD.js.map +1 -0
  128. package/lib/Route-DlG_HTMu.js +11 -0
  129. package/lib/Route-DlG_HTMu.js.map +1 -0
  130. package/lib/{Select-DYKDahHt.js → Select-O9ZM3ZgX.js} +7 -7
  131. package/lib/Select-O9ZM3ZgX.js.map +1 -0
  132. package/lib/SidebarBadge-DxFJcJ6V.js +51 -0
  133. package/lib/SidebarBadge-DxFJcJ6V.js.map +1 -0
  134. package/lib/SlotletProvider-DyomlzGx.js +252 -0
  135. package/lib/SlotletProvider-DyomlzGx.js.map +1 -0
  136. package/lib/Spinner-3cQDBVGr.js +7 -0
  137. package/lib/Spinner-3cQDBVGr.js.map +1 -0
  138. package/lib/SyntaxHighlight-DkLOsjHS.js +2983 -0
  139. package/lib/SyntaxHighlight-DkLOsjHS.js.map +1 -0
  140. package/lib/assets/{worker-YA-aCP3P.js → worker-CPsGZsve.js} +24 -22
  141. package/lib/assets/{worker-YA-aCP3P.js.map → worker-CPsGZsve.js.map} +1 -1
  142. package/lib/context-D1nXWxm7.js +22 -0
  143. package/lib/context-D1nXWxm7.js.map +1 -0
  144. package/lib/createServer-DK-g7kbB.js +16089 -0
  145. package/lib/createServer-DK-g7kbB.js.map +1 -0
  146. package/lib/{hook-CjQERPa7.js → hook-hEqe7fPB.js} +12 -14
  147. package/lib/hook-hEqe7fPB.js.map +1 -0
  148. package/lib/index-Czzd9rjU.js +899 -0
  149. package/lib/index-Czzd9rjU.js.map +1 -0
  150. package/lib/index-DNxQ_rCt.js +1273 -0
  151. package/lib/index-DNxQ_rCt.js.map +1 -0
  152. package/lib/index-Yn8c3UWE.js +921 -0
  153. package/lib/index-Yn8c3UWE.js.map +1 -0
  154. package/lib/{router-BsfSoK2j.js → router-lfyopgBI.js} +23 -23
  155. package/lib/{router-BsfSoK2j.js.map → router-lfyopgBI.js.map} +1 -1
  156. package/lib/state-tsXBLONe.js +203 -0
  157. package/lib/state-tsXBLONe.js.map +1 -0
  158. package/lib/ui/ActionButton.js +11 -10
  159. package/lib/ui/ActionButton.js.map +1 -1
  160. package/lib/useExposedProps-CTPtylCV.js +10 -0
  161. package/lib/{useExposedProps-BxyHjPNN.js.map → useExposedProps-CTPtylCV.js.map} +1 -1
  162. package/lib/{utils-DNAltzXc.js → utils-DcpDOncX.js} +197 -202
  163. package/lib/utils-DcpDOncX.js.map +1 -0
  164. package/lib/zudoku.auth-auth0.js +24 -18
  165. package/lib/zudoku.auth-auth0.js.map +1 -1
  166. package/lib/zudoku.auth-clerk.js +2 -2
  167. package/lib/zudoku.auth-openid.js +124 -138
  168. package/lib/zudoku.auth-openid.js.map +1 -1
  169. package/lib/zudoku.components.js +1133 -992
  170. package/lib/zudoku.components.js.map +1 -1
  171. package/lib/zudoku.openapi-worker.js +10 -16346
  172. package/lib/zudoku.openapi-worker.js.map +1 -1
  173. package/lib/zudoku.plugin-api-keys.js +18 -18
  174. package/lib/zudoku.plugin-custom-pages.js +2 -2
  175. package/lib/zudoku.plugin-markdown.js +1 -1
  176. package/lib/zudoku.plugin-openapi.js +5 -9
  177. package/lib/zudoku.plugin-openapi.js.map +1 -1
  178. package/lib/zudoku.plugin-redirect.js +1 -1
  179. package/package.json +14 -4
  180. package/src/app/demo.tsx +0 -3
  181. package/src/app/entry.client.tsx +14 -0
  182. package/src/app/entry.server.tsx +59 -57
  183. package/src/app/standalone.tsx +0 -3
  184. package/src/lib/authentication/hook.ts +1 -3
  185. package/src/lib/authentication/providers/auth0.tsx +16 -11
  186. package/src/lib/authentication/providers/openid.tsx +12 -30
  187. package/src/lib/authentication/state.ts +44 -10
  188. package/src/lib/components/Bootstrap.tsx +36 -9
  189. package/src/lib/components/DeveloperHint.tsx +6 -1
  190. package/src/lib/components/Header.tsx +31 -42
  191. package/src/lib/components/Layout.tsx +48 -36
  192. package/src/lib/components/MobileTopNavigation.tsx +15 -18
  193. package/src/lib/components/SyntaxHighlight.tsx +81 -46
  194. package/src/lib/components/ThemeSwitch.tsx +26 -0
  195. package/src/lib/components/TopNavigation.tsx +27 -19
  196. package/src/lib/components/Zudoku.tsx +5 -10
  197. package/src/lib/components/context/ZudokuContext.ts +8 -13
  198. package/src/lib/components/navigation/Sidebar.tsx +3 -3
  199. package/src/lib/components/navigation/utils.ts +2 -2
  200. package/src/lib/core/ZudokuContext.ts +0 -8
  201. package/src/lib/errors/ErrorAlert.tsx +2 -1
  202. package/src/lib/plugins/openapi/ColorizedParam.tsx +23 -14
  203. package/src/lib/plugins/openapi/Endpoint.tsx +5 -10
  204. package/src/lib/plugins/openapi/OperationList.tsx +5 -40
  205. package/src/lib/plugins/openapi/Route.tsx +11 -12
  206. package/src/lib/plugins/openapi/Sidecar.tsx +10 -13
  207. package/src/lib/plugins/openapi/client/GraphQLClient.tsx +140 -0
  208. package/src/lib/plugins/openapi/client/GraphQLContext.tsx +16 -0
  209. package/src/lib/plugins/openapi/client/createServer.ts +2 -0
  210. package/src/lib/plugins/openapi/client/useCreateQuery.ts +18 -0
  211. package/src/lib/plugins/openapi/client/worker.ts +38 -24
  212. package/src/lib/plugins/openapi/graphql/fragment-masking.ts +11 -18
  213. package/src/lib/plugins/openapi/graphql/gql.ts +7 -25
  214. package/src/lib/plugins/openapi/graphql/graphql.ts +351 -782
  215. package/src/lib/plugins/openapi/index.tsx +40 -63
  216. package/src/lib/plugins/openapi/schema/SchemaView.tsx +1 -1
  217. package/src/lib/plugins/openapi-worker.ts +11 -1
  218. package/dist/lib/components/context/ThemeContext.d.ts +0 -2
  219. package/dist/lib/components/context/ThemeContext.js +0 -7
  220. package/dist/lib/components/context/ThemeContext.js.map +0 -1
  221. package/dist/lib/components/context/ThemeProvider.d.ts +0 -4
  222. package/dist/lib/components/context/ThemeProvider.js +0 -23
  223. package/dist/lib/components/context/ThemeProvider.js.map +0 -1
  224. package/dist/lib/plugins/openapi/client/createMemoryClient.d.ts +0 -9
  225. package/dist/lib/plugins/openapi/client/createMemoryClient.js +0 -54
  226. package/dist/lib/plugins/openapi/client/createMemoryClient.js.map +0 -1
  227. package/dist/lib/plugins/openapi/client/createWorkerClient.d.ts +0 -10
  228. package/dist/lib/plugins/openapi/client/createWorkerClient.js +0 -62
  229. package/dist/lib/plugins/openapi/client/createWorkerClient.js.map +0 -1
  230. package/dist/lib/plugins/openapi/client/interfaces.d.ts +0 -4
  231. package/dist/lib/plugins/openapi/client/interfaces.js +0 -2
  232. package/dist/lib/plugins/openapi/client/interfaces.js.map +0 -1
  233. package/dist/lib/themeToggle.d.ts +0 -1
  234. package/dist/lib/themeToggle.js +0 -7
  235. package/dist/lib/themeToggle.js.map +0 -1
  236. package/dist/lib/util/createWaitForNotify.d.ts +0 -1
  237. package/dist/lib/util/createWaitForNotify.js +0 -15
  238. package/dist/lib/util/createWaitForNotify.js.map +0 -1
  239. package/dist/vite/plugin-html-transform.d.ts +0 -2
  240. package/dist/vite/plugin-html-transform.js +0 -15
  241. package/dist/vite/plugin-html-transform.js.map +0 -1
  242. package/lib/DeveloperHint-DHdLXGHA.js +0 -16
  243. package/lib/DeveloperHint-DHdLXGHA.js.map +0 -1
  244. package/lib/Markdown-D6UxMbZm.js +0 -18059
  245. package/lib/Markdown-D6UxMbZm.js.map +0 -1
  246. package/lib/OperationList-BHUBGM0c.js +0 -621
  247. package/lib/OperationList-BHUBGM0c.js.map +0 -1
  248. package/lib/Route-B0XuN1oC.js +0 -13
  249. package/lib/Route-B0XuN1oC.js.map +0 -1
  250. package/lib/Select-DYKDahHt.js.map +0 -1
  251. package/lib/SidebarBadge-Bbt92M5K.js +0 -38
  252. package/lib/SidebarBadge-Bbt92M5K.js.map +0 -1
  253. package/lib/SlotletProvider-mhjLPG44.js +0 -241
  254. package/lib/SlotletProvider-mhjLPG44.js.map +0 -1
  255. package/lib/Spinner-ChOGyPls.js.map +0 -1
  256. package/lib/StaggeredRender-DDHSzQKE.js +0 -17
  257. package/lib/StaggeredRender-DDHSzQKE.js.map +0 -1
  258. package/lib/hook-CjQERPa7.js.map +0 -1
  259. package/lib/index-BRg5pi5D.js +0 -5902
  260. package/lib/index-BRg5pi5D.js.map +0 -1
  261. package/lib/index-DM9hrcCG.js +0 -1783
  262. package/lib/index-DM9hrcCG.js.map +0 -1
  263. package/lib/state-BsPrOUAh.js +0 -252
  264. package/lib/state-BsPrOUAh.js.map +0 -1
  265. package/lib/urql-core-35Qt_U4i.js +0 -1511
  266. package/lib/urql-core-35Qt_U4i.js.map +0 -1
  267. package/lib/useExposedProps-BxyHjPNN.js +0 -9
  268. package/lib/utils-DNAltzXc.js.map +0 -1
  269. package/src/lib/components/context/ThemeContext.tsx +0 -8
  270. package/src/lib/components/context/ThemeProvider.tsx +0 -27
  271. package/src/lib/plugins/openapi/client/createMemoryClient.ts +0 -65
  272. package/src/lib/plugins/openapi/client/createWorkerClient.ts +0 -79
  273. package/src/lib/plugins/openapi/client/interfaces.ts +0 -5
  274. package/src/lib/themeToggle.ts +0 -7
  275. package/src/lib/util/createWaitForNotify.ts +0 -18
@@ -1,26 +1,23 @@
1
- import { matchPath, useRouteError, type RouteObject } from "react-router-dom";
2
- import { Client as UrqlClient, cacheExchange, fetchExchange } from "urql";
1
+ import { matchPath, type RouteObject } from "react-router-dom";
3
2
  import { type ZudokuPlugin } from "../../core/plugins.js";
4
3
  import { graphql } from "./graphql/index.js";
5
4
 
6
5
  import { useQuery } from "@tanstack/react-query";
7
6
  import { CirclePlayIcon, LogInIcon } from "lucide-react";
8
- import { createClient } from "zudoku/openapi-worker";
9
7
  import type { SidebarItem } from "../../../config/validators/SidebarSchema.js";
10
8
  import { useAuth } from "../../authentication/hook.js";
11
- import { ErrorPage } from "../../components/ErrorPage.js";
12
9
  import { ColorMap } from "../../components/navigation/SidebarBadge.js";
13
- import { SyntaxHighlight } from "../../components/SyntaxHighlight.js";
14
10
  import { Button } from "../../ui/Button.js";
15
11
  import { joinPath } from "../../util/joinPath.js";
12
+ import { GraphQLClient } from "./client/GraphQLClient.js";
16
13
  import { OasPluginConfig } from "./interfaces.js";
17
14
  import type { PlaygroundContentProps } from "./playground/Playground.js";
18
15
  import { PlaygroundDialog } from "./playground/PlaygroundDialog.js";
19
- import { GetServerQuery } from "./Sidecar.js";
20
16
 
21
17
  const GetCategoriesQuery = graphql(`
22
18
  query GetCategories($input: JSON!, $type: SchemaType!) {
23
19
  schema(input: $input, type: $type) {
20
+ url
24
21
  tags {
25
22
  __typename
26
23
  name
@@ -38,20 +35,6 @@ const GetCategoriesQuery = graphql(`
38
35
  }
39
36
  `);
40
37
 
41
- const OpenApiErrorPage = () => {
42
- const error = useRouteError();
43
- const message =
44
- error instanceof Error ? (
45
- <SyntaxHighlight code={error.message} />
46
- ) : (
47
- "An unknown error occurred"
48
- );
49
-
50
- return (
51
- <ErrorPage category="Error" title="An error occurred" message={message} />
52
- );
53
- };
54
-
55
38
  type InternalOasPluginConfig = { inMemory?: boolean };
56
39
 
57
40
  const MethodColorMap: Record<string, keyof typeof ColorMap> = {
@@ -69,12 +52,7 @@ export type OpenApiPluginOptions = OasPluginConfig & InternalOasPluginConfig;
69
52
  export const openApiPlugin = (config: OpenApiPluginOptions): ZudokuPlugin => {
70
53
  const basePath = joinPath(config.navigationId ?? "/reference");
71
54
 
72
- const client = config.server
73
- ? new UrqlClient({
74
- url: config.server,
75
- exchanges: [cacheExchange, fetchExchange],
76
- })
77
- : createClient({ useMemoryClient: config.inMemory ?? false });
55
+ const client = new GraphQLClient(config);
78
56
 
79
57
  return {
80
58
  getHead: () => {
@@ -102,15 +80,13 @@ export const openApiPlugin = (config: OpenApiPluginOptions): ZudokuPlugin => {
102
80
  ...props
103
81
  }: Partial<PlaygroundContentProps> & { requireAuth: boolean }) => {
104
82
  const auth = useAuth();
83
+ // We don't have the GraphQL context here
105
84
  const serverQuery = useQuery({
106
- queryFn: async () => {
107
- const result = await client.query(GetServerQuery, {
85
+ queryFn: () =>
86
+ client.fetch(GetCategoriesQuery, {
108
87
  type: config.type,
109
88
  input: config.input,
110
- });
111
-
112
- return result.data;
113
- },
89
+ }),
114
90
  enabled: !server,
115
91
  queryKey: ["playground-server"],
116
92
  });
@@ -148,38 +124,40 @@ export const openApiPlugin = (config: OpenApiPluginOptions): ZudokuPlugin => {
148
124
  return [];
149
125
  }
150
126
 
151
- const { data } = await client.query(GetCategoriesQuery, {
152
- input: config.input,
153
- type: config.type,
154
- });
155
-
156
- if (!data) return [];
157
-
158
- const categories = data.schema.tags
159
- .filter((tag) => tag.operations.length > 0)
160
- .map<SidebarItem>((tag) => ({
161
- type: "category",
162
- label: tag.name || "Other endpoints",
163
- collapsible: true,
164
- collapsed: false,
165
- items: tag.operations.map((operation) => ({
166
- type: "link",
167
- label: operation.summary ?? operation.path,
168
- href: `#${operation.slug}`,
169
- badge: {
170
- label: operation.method,
171
- color: MethodColorMap[operation.method.toLowerCase()]!,
172
- },
173
- })),
174
- }));
127
+ try {
128
+ const data = await client.fetch(GetCategoriesQuery, {
129
+ type: config.type,
130
+ input: config.input,
131
+ });
175
132
 
176
- categories.unshift({
177
- type: "link",
178
- label: "Overview",
179
- href: "#description",
180
- });
133
+ const categories = data.schema.tags
134
+ .filter((tag) => tag.operations.length > 0)
135
+ .map<SidebarItem>((tag) => ({
136
+ type: "category",
137
+ label: tag.name || "Other endpoints",
138
+ collapsible: true,
139
+ collapsed: false,
140
+ items: tag.operations.map((operation) => ({
141
+ type: "link",
142
+ label: operation.summary ?? operation.path,
143
+ href: `#${operation.slug}`,
144
+ badge: {
145
+ label: operation.method,
146
+ color: MethodColorMap[operation.method.toLowerCase()]!,
147
+ },
148
+ })),
149
+ }));
150
+
151
+ categories.unshift({
152
+ type: "link",
153
+ label: "Overview",
154
+ href: "#description",
155
+ });
181
156
 
182
- return categories;
157
+ return categories;
158
+ } catch {
159
+ return [];
160
+ }
183
161
  },
184
162
  getRoutes: () =>
185
163
  [
@@ -190,7 +168,6 @@ export const openApiPlugin = (config: OpenApiPluginOptions): ZudokuPlugin => {
190
168
  element: <OpenApiRoute client={client} config={config} />,
191
169
  };
192
170
  },
193
- errorElement: <OpenApiErrorPage />,
194
171
  children: [
195
172
  {
196
173
  path: basePath,
@@ -73,7 +73,7 @@ export const SchemaView = ({
73
73
  ) {
74
74
  return (
75
75
  <Card className="p-4 flex gap-2 items-center">
76
- {"name" in schema && <>{schema.name}</>}
76
+ {"name" in schema && <>{schema.name as string}</>}
77
77
  <span className="text-sm text-muted-foreground">object</span>
78
78
  {schema.description && (
79
79
  <Markdown
@@ -1 +1,11 @@
1
- export { createClient } from "./openapi/client/createWorkerClient.js";
1
+ export const initializeWorker = () => {
2
+ const worker = new SharedWorker(
3
+ new URL("./openapi/client/worker.ts", import.meta.url),
4
+ { type: "module" },
5
+ );
6
+ // eslint-disable-next-line no-console
7
+ worker.onerror = (e) => console.error(e);
8
+ worker.port.start();
9
+
10
+ return worker;
11
+ };
@@ -1,2 +0,0 @@
1
- export declare const ThemeContext: import("react").Context<readonly [boolean, () => void]>;
2
- export declare const useTheme: () => readonly [boolean, () => void];
@@ -1,7 +0,0 @@
1
- import { createContext, useContext } from "react";
2
- export const ThemeContext = createContext([
3
- false,
4
- () => { },
5
- ]);
6
- export const useTheme = () => useContext(ThemeContext);
7
- //# sourceMappingURL=ThemeContext.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ThemeContext.js","sourceRoot":"","sources":["../../../../src/lib/components/context/ThemeContext.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAElD,MAAM,CAAC,MAAM,YAAY,GAAG,aAAa,CAAiC;IACxE,KAAK;IACL,GAAG,EAAE,GAAE,CAAC;CACT,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,QAAQ,GAAG,GAAG,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC"}
@@ -1,4 +0,0 @@
1
- import { ReactNode } from "react";
2
- export declare const ThemeProvider: (props: {
3
- children: ReactNode;
4
- }) => import("react/jsx-runtime").JSX.Element;
@@ -1,23 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import { useCallback, useEffect, useState } from "react";
3
- import { ThemeContext } from "./ThemeContext.js";
4
- export const ThemeProvider = (props) => {
5
- const [dark, setDark] = useState(false);
6
- // On mount, read the preferred theme from the persistence
7
- useEffect(() => {
8
- const theme = localStorage.getItem("theme");
9
- const prefersDark = window.matchMedia("(prefers-color-scheme: dark)");
10
- const isDark = theme === "dark" || (!theme && prefersDark.matches);
11
- setDark(isDark);
12
- }, [dark]);
13
- // To toggle between dark and light modes
14
- const toggle = useCallback(() => {
15
- const toggled = !dark;
16
- document.documentElement.classList.toggle("dark", toggled);
17
- localStorage.setItem("theme", toggled ? "dark" : "light");
18
- setDark(toggled);
19
- }, [dark]);
20
- const value = [dark, toggle];
21
- return _jsx(ThemeContext.Provider, { value: value, ...props });
22
- };
23
- //# sourceMappingURL=ThemeProvider.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ThemeProvider.js","sourceRoot":"","sources":["../../../../src/lib/components/context/ThemeProvider.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAa,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACpE,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,KAA8B,EAAE,EAAE;IAC9D,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAExC,0DAA0D;IAC1D,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,KAAK,GAAG,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC5C,MAAM,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC,8BAA8B,CAAC,CAAC;QACtE,MAAM,MAAM,GAAG,KAAK,KAAK,MAAM,IAAI,CAAC,CAAC,KAAK,IAAI,WAAW,CAAC,OAAO,CAAC,CAAC;QAEnE,OAAO,CAAC,MAAM,CAAC,CAAC;IAClB,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IAEX,yCAAyC;IACzC,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,EAAE;QAC9B,MAAM,OAAO,GAAG,CAAC,IAAI,CAAC;QACtB,QAAQ,CAAC,eAAe,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC3D,YAAY,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QAC1D,OAAO,CAAC,OAAO,CAAC,CAAC;IACnB,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IAEX,MAAM,KAAK,GAAG,CAAC,IAAI,EAAE,MAAM,CAAU,CAAC;IAEtC,OAAO,KAAC,YAAY,CAAC,QAAQ,IAAC,KAAK,EAAE,KAAK,KAAM,KAAK,GAAI,CAAC;AAC5D,CAAC,CAAC"}
@@ -1,9 +0,0 @@
1
- import { CreateClientFunction } from "./interfaces.js";
2
- export declare const ssr: import("urql").SSRExchange;
3
- /**
4
- * Creates an in memory Client that does not use Workers. This allows
5
- * developers to run the simple standalone version of zudoku using the CDN
6
- * hosted scripts. Worker's cannot be loaded cross domain so in this case
7
- * we sacrifice performance for making it work cross domain.
8
- */
9
- export declare const createClient: CreateClientFunction;
@@ -1,54 +0,0 @@
1
- /* eslint-disable no-console */
2
- import { cacheExchange, Client, fetchExchange, mapExchange, ssrExchange, } from "urql";
3
- import { createServer } from "./createServer.js";
4
- const localServer = createServer();
5
- const initialState =
6
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
7
- typeof window !== "undefined" ? window.__URQL_DATA__ : undefined;
8
- export const ssr = ssrExchange({
9
- isClient: typeof window !== "undefined",
10
- initialState,
11
- });
12
- /**
13
- * Creates an in memory Client that does not use Workers. This allows
14
- * developers to run the simple standalone version of zudoku using the CDN
15
- * hosted scripts. Worker's cannot be loaded cross domain so in this case
16
- * we sacrifice performance for making it work cross domain.
17
- */
18
- export const createClient = () => {
19
- return new Client({
20
- url: "/__z/graphql",
21
- // Custom fetch to send the GraphQL request to the worker and convert the response back to a `Response` object
22
- fetch: async (req, init) => {
23
- if (!init?.body)
24
- throw new Error("No body");
25
- const response = await localServer.fetch(new Request("http://localhost/__z/graphql", {
26
- method: "POST",
27
- body: init.body,
28
- headers: {
29
- "Content-Type": "application/json",
30
- },
31
- }));
32
- return response;
33
- // port.postMessage({
34
- // id: e.data.id,
35
- // body: await response.text(),
36
- // } satisfies WorkerGraphQLMessage);
37
- },
38
- exchanges: [
39
- cacheExchange,
40
- mapExchange({
41
- onError(error, operation) {
42
- console.error(error);
43
- console.groupCollapsed("Operation info");
44
- console.log("body", operation.query.loc?.source.body.trim());
45
- console.log("variables", operation.variables);
46
- console.groupEnd();
47
- },
48
- }),
49
- ssr,
50
- fetchExchange,
51
- ],
52
- });
53
- };
54
- //# sourceMappingURL=createMemoryClient.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"createMemoryClient.js","sourceRoot":"","sources":["../../../../../src/lib/plugins/openapi/client/createMemoryClient.ts"],"names":[],"mappings":"AAAA,+BAA+B;AAC/B,OAAO,EACL,aAAa,EACb,MAAM,EACN,aAAa,EACb,WAAW,EACX,WAAW,GACZ,MAAM,MAAM,CAAC;AACd,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAGjD,MAAM,WAAW,GAAG,YAAY,EAAE,CAAC;AAEnC,MAAM,YAAY;AAChB,8DAA8D;AAC9D,OAAO,MAAM,KAAK,WAAW,CAAC,CAAC,CAAE,MAAc,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC;AAE5E,MAAM,CAAC,MAAM,GAAG,GAAG,WAAW,CAAC;IAC7B,QAAQ,EAAE,OAAO,MAAM,KAAK,WAAW;IACvC,YAAY;CACb,CAAC,CAAC;AAEH;;;;;GAKG;AACH,MAAM,CAAC,MAAM,YAAY,GAAyB,GAAG,EAAE;IACrD,OAAO,IAAI,MAAM,CAAC;QAChB,GAAG,EAAE,cAAc;QACnB,8GAA8G;QAC9G,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;YACzB,IAAI,CAAC,IAAI,EAAE,IAAI;gBAAE,MAAM,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC;YAC5C,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,KAAK,CACtC,IAAI,OAAO,CAAC,8BAA8B,EAAE;gBAC1C,MAAM,EAAE,MAAM;gBACd,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,OAAO,EAAE;oBACP,cAAc,EAAE,kBAAkB;iBACnC;aACF,CAAC,CACH,CAAC;YACF,OAAO,QAAQ,CAAC;YAChB,qBAAqB;YACrB,mBAAmB;YACnB,iCAAiC;YACjC,qCAAqC;QACvC,CAAC;QACD,SAAS,EAAE;YACT,aAAa;YACb,WAAW,CAAC;gBACV,OAAO,CAAC,KAAK,EAAE,SAAS;oBACtB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;oBACrB,OAAO,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC;oBACzC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;oBAC7D,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;oBAC9C,OAAO,CAAC,QAAQ,EAAE,CAAC;gBACrB,CAAC;aACF,CAAC;YACF,GAAG;YACH,aAAa;SACd;KACF,CAAC,CAAC;AACL,CAAC,CAAC"}
@@ -1,10 +0,0 @@
1
- import { CreateClientFunction } from "./interfaces.js";
2
- export type WorkerGraphQLMessage = {
3
- id: string;
4
- body: string;
5
- };
6
- /**
7
- * This loads the client from a worker and uses mess port to send requests
8
- * and responses between the main thread and the worker.
9
- */
10
- export declare const createClient: CreateClientFunction;
@@ -1,62 +0,0 @@
1
- /* eslint-disable no-console */
2
- import { monotonicFactory } from "ulidx";
3
- import { cacheExchange, Client, fetchExchange, mapExchange } from "urql";
4
- import { createWaitForNotify } from "../../../util/createWaitForNotify.js";
5
- import { createClient as createMemoryClient, ssr, } from "./createMemoryClient.js";
6
- const ulid = monotonicFactory();
7
- /**
8
- * This loads the client from a worker and uses mess port to send requests
9
- * and responses between the main thread and the worker.
10
- */
11
- export const createClient = ({ useMemoryClient, }) => {
12
- if (useMemoryClient || typeof SharedWorker === "undefined") {
13
- return createMemoryClient({ useMemoryClient });
14
- }
15
- // NOTE: This URL needs to be inline with the SharedWorker otherwse
16
- // vite build does not recognize the worker file as a module.
17
- const worker = new SharedWorker(new URL("./worker.ts", import.meta.url), {
18
- type: "module",
19
- });
20
- worker.onerror = (e) => {
21
- console.error(e);
22
- };
23
- worker.port.start();
24
- const [waitFor, notify] = createWaitForNotify();
25
- worker.port.onmessage = (e) => {
26
- notify(e.data.id, e.data.body);
27
- };
28
- return new Client({
29
- url: "/__z/graphql",
30
- // Custom fetch to send the GraphQL request to the worker and convert the response back to a `Response` object
31
- fetch: async (_req, init) => {
32
- if (!init?.body)
33
- throw new Error("No body");
34
- const id = ulid();
35
- worker.port.postMessage({
36
- id,
37
- body: init.body,
38
- });
39
- const body = await waitFor(id);
40
- return new Response(body, {
41
- headers: {
42
- "Content-Type": "application/json",
43
- },
44
- });
45
- },
46
- exchanges: [
47
- cacheExchange,
48
- mapExchange({
49
- onError(error, operation) {
50
- console.error(error);
51
- console.groupCollapsed("Operation info");
52
- console.log("body", operation.query.loc?.source.body.trim());
53
- console.log("variables", operation.variables);
54
- console.groupEnd();
55
- },
56
- }),
57
- ssr,
58
- fetchExchange,
59
- ],
60
- });
61
- };
62
- //# sourceMappingURL=createWorkerClient.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"createWorkerClient.js","sourceRoot":"","sources":["../../../../../src/lib/plugins/openapi/client/createWorkerClient.ts"],"names":[],"mappings":"AAAA,+BAA+B;AAC/B,OAAO,EAAE,gBAAgB,EAAE,MAAM,OAAO,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,MAAM,CAAC;AACzE,OAAO,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAC3E,OAAO,EACL,YAAY,IAAI,kBAAkB,EAClC,GAAG,GACJ,MAAM,yBAAyB,CAAC;AAIjC,MAAM,IAAI,GAAG,gBAAgB,EAAE,CAAC;AAEhC;;;GAGG;AACH,MAAM,CAAC,MAAM,YAAY,GAAyB,CAAC,EACjD,eAAe,GAGhB,EAAE,EAAE;IACH,IAAI,eAAe,IAAI,OAAO,YAAY,KAAK,WAAW,EAAE,CAAC;QAC3D,OAAO,kBAAkB,CAAC,EAAE,eAAe,EAAE,CAAC,CAAC;IACjD,CAAC;IACD,mEAAmE;IACnE,6DAA6D;IAC7D,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC,IAAI,GAAG,CAAC,aAAa,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;QACvE,IAAI,EAAE,QAAQ;KACf,CAAC,CAAC;IAEH,MAAM,CAAC,OAAO,GAAG,CAAC,CAAC,EAAE,EAAE;QACrB,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACnB,CAAC,CAAC;IAEF,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;IAEpB,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,GAAG,mBAAmB,EAAU,CAAC;IAExD,MAAM,CAAC,IAAI,CAAC,SAAS,GAAG,CAAC,CAAqC,EAAE,EAAE;QAChE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC,CAAC;IAEF,OAAO,IAAI,MAAM,CAAC;QAChB,GAAG,EAAE,cAAc;QACnB,8GAA8G;QAC9G,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE;YAC1B,IAAI,CAAC,IAAI,EAAE,IAAI;gBAAE,MAAM,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC;YAE5C,MAAM,EAAE,GAAG,IAAI,EAAE,CAAC;YAClB,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC;gBACtB,EAAE;gBACF,IAAI,EAAE,IAAI,CAAC,IAAc;aACK,CAAC,CAAC;YAElC,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,EAAE,CAAC,CAAC;YAE/B,OAAO,IAAI,QAAQ,CAAC,IAAI,EAAE;gBACxB,OAAO,EAAE;oBACP,cAAc,EAAE,kBAAkB;iBACnC;aACF,CAAC,CAAC;QACL,CAAC;QACD,SAAS,EAAE;YACT,aAAa;YACb,WAAW,CAAC;gBACV,OAAO,CAAC,KAAK,EAAE,SAAS;oBACtB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;oBACrB,OAAO,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC;oBACzC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;oBAC7D,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;oBAC9C,OAAO,CAAC,QAAQ,EAAE,CAAC;gBACrB,CAAC;aACF,CAAC;YACF,GAAG;YACH,aAAa;SACd;KACF,CAAC,CAAC;AACL,CAAC,CAAC"}
@@ -1,4 +0,0 @@
1
- import { Client } from "urql";
2
- export type CreateClientFunction = (config: {
3
- useMemoryClient: boolean;
4
- }) => Client;
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=interfaces.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../../../../src/lib/plugins/openapi/client/interfaces.ts"],"names":[],"mappings":""}
@@ -1 +0,0 @@
1
- export declare const themeToggle: () => void;
@@ -1,7 +0,0 @@
1
- export const themeToggle = () => {
2
- const isDarkMode = localStorage.getItem("theme") === "dark" ||
3
- (!localStorage.getItem("theme") &&
4
- window.matchMedia("(prefers-color-scheme: dark)").matches);
5
- document.documentElement.classList.toggle("dark", isDarkMode);
6
- };
7
- //# sourceMappingURL=themeToggle.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"themeToggle.js","sourceRoot":"","sources":["../../src/lib/themeToggle.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,WAAW,GAAG,GAAG,EAAE;IAC9B,MAAM,UAAU,GACd,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,MAAM;QACxC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC;YAC7B,MAAM,CAAC,UAAU,CAAC,8BAA8B,CAAC,CAAC,OAAO,CAAC,CAAC;IAC/D,QAAQ,CAAC,eAAe,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;AAChE,CAAC,CAAC"}
@@ -1 +0,0 @@
1
- export declare const createWaitForNotify: <T extends NonNullable<unknown>>() => readonly [(id: string) => Promise<T>, (id: string, data: T) => void];
@@ -1,15 +0,0 @@
1
- export const createWaitForNotify = () => {
2
- const resolveMap = new Map();
3
- const waitFor = (id) => new Promise((resolve) => {
4
- resolveMap.set(id, resolve);
5
- });
6
- const notify = (id, data) => {
7
- const resolveFn = resolveMap.get(id);
8
- if (resolveFn) {
9
- resolveFn(data);
10
- resolveMap.delete(id);
11
- }
12
- };
13
- return [waitFor, notify];
14
- };
15
- //# sourceMappingURL=createWaitForNotify.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"createWaitForNotify.js","sourceRoot":"","sources":["../../../src/lib/util/createWaitForNotify.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAAmC,EAAE;IACtE,MAAM,UAAU,GAAG,IAAI,GAAG,EAA+C,CAAC;IAE1E,MAAM,OAAO,GAAG,CAAC,EAAU,EAAE,EAAE,CAC7B,IAAI,OAAO,CAAI,CAAC,OAAO,EAAE,EAAE;QACzB,UAAU,CAAC,GAAG,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;IAC9B,CAAC,CAAC,CAAC;IAEL,MAAM,MAAM,GAAG,CAAC,EAAU,EAAE,IAAO,EAAE,EAAE;QACrC,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACrC,IAAI,SAAS,EAAE,CAAC;YACd,SAAS,CAAC,IAAI,CAAC,CAAC;YAChB,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACxB,CAAC;IACH,CAAC,CAAC;IAEF,OAAO,CAAC,OAAO,EAAE,MAAM,CAAU,CAAC;AACpC,CAAC,CAAC"}
@@ -1,2 +0,0 @@
1
- import { type Plugin } from "vite";
2
- export declare const viteHtmlTransform: () => Plugin;
@@ -1,15 +0,0 @@
1
- import { themeToggle } from "../lib/themeToggle.js";
2
- export const viteHtmlTransform = () => {
3
- return {
4
- name: "zudoku-html-transform",
5
- transformIndexHtml: () => [
6
- {
7
- tag: "script",
8
- attrs: { type: "module" },
9
- injectTo: "head",
10
- children: `(${themeToggle.toString()})();`,
11
- },
12
- ],
13
- };
14
- };
15
- //# sourceMappingURL=plugin-html-transform.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"plugin-html-transform.js","sourceRoot":"","sources":["../../src/vite/plugin-html-transform.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEpD,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAAW,EAAE;IAC5C,OAAO;QACL,IAAI,EAAE,uBAAuB;QAC7B,kBAAkB,EAAE,GAAG,EAAE,CAAC;YACxB;gBACE,GAAG,EAAE,QAAQ;gBACb,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBACzB,QAAQ,EAAE,MAAM;gBAChB,QAAQ,EAAE,IAAI,WAAW,CAAC,QAAQ,EAAE,MAAM;aAC3C;SACF;KACF,CAAC;AACJ,CAAC,CAAC"}
@@ -1,16 +0,0 @@
1
- import { j as e } from "./jsx-runtime-B6kdoens.js";
2
- import { Callout as i } from "./ui/Callout.js";
3
- const n = ({
4
- children: s,
5
- className: t
6
- }) => {
7
- if (process.env.NODE_ENV === "development")
8
- return /* @__PURE__ */ e.jsx(i, { type: "caution", title: "Developer hint", className: t, children: /* @__PURE__ */ e.jsxs("div", { className: "flex flex-col gap-2", children: [
9
- /* @__PURE__ */ e.jsx("div", { children: s }),
10
- /* @__PURE__ */ e.jsx("small", { className: "italic", children: "Note: This hint is only shown in development mode." })
11
- ] }) });
12
- };
13
- export {
14
- n as D
15
- };
16
- //# sourceMappingURL=DeveloperHint-DHdLXGHA.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DeveloperHint-DHdLXGHA.js","sources":["../src/lib/components/DeveloperHint.tsx"],"sourcesContent":["import type { ReactNode } from \"react\";\nimport { Callout } from \"../ui/Callout.js\";\n\nexport const DeveloperHint = ({\n children,\n className,\n}: {\n children: ReactNode;\n className?: string;\n}) => {\n if (process.env.NODE_ENV !== \"development\") return;\n\n return (\n <Callout type=\"caution\" title=\"Developer hint\" className={className}>\n <div className=\"flex flex-col gap-2\">\n <div>{children}</div>\n <small className=\"italic\">\n Note: This hint is only shown in development mode.\n </small>\n </div>\n </Callout>\n );\n};\n"],"names":["DeveloperHint","children","className","jsx","Callout","jsxs"],"mappings":";;AAGO,MAAMA,IAAgB,CAAC;AAAA,EAC5B,UAAAC;AAAA,EACA,WAAAC;AACF,MAGM;AACA,MAAA,QAAQ,IAAI,aAAa;AAG3B,WAAAC,gBAAAA,EAAAA,IAACC,GAAQ,EAAA,MAAK,WAAU,OAAM,kBAAiB,WAAAF,GAC7C,UAAAG,gBAAAA,EAAA,KAAC,OAAI,EAAA,WAAU,uBACb,UAAA;AAAA,MAAAF,gBAAAA,MAAC,SAAK,UAAAF,GAAS;AAAA,MACdE,gBAAAA,EAAA,IAAA,SAAA,EAAM,WAAU,UAAS,UAE1B,sDAAA;AAAA,IAAA,EACF,CAAA,EACF,CAAA;AAEJ;"}