zudoku 0.13.5 → 0.13.6

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 (75) hide show
  1. package/dist/lib/authentication/components/CallbackHandler.js +21 -31
  2. package/dist/lib/authentication/components/CallbackHandler.js.map +1 -1
  3. package/dist/lib/errors/ErrorAlert.d.ts +1 -1
  4. package/dist/lib/errors/ErrorAlert.js +8 -3
  5. package/dist/lib/errors/ErrorAlert.js.map +1 -1
  6. package/dist/lib/util/invariant.d.ts +9 -0
  7. package/dist/lib/util/invariant.js +7 -3
  8. package/dist/lib/util/invariant.js.map +1 -1
  9. package/lib/{AuthenticationPlugin-D1nhROkO.js → AuthenticationPlugin-tBvLKsFg.js} +3 -3
  10. package/lib/{AuthenticationPlugin-D1nhROkO.js.map → AuthenticationPlugin-tBvLKsFg.js.map} +1 -1
  11. package/lib/{CategoryHeading-B7TlPvuN.js → CategoryHeading-D2WS6sRI.js} +2 -2
  12. package/lib/{CategoryHeading-B7TlPvuN.js.map → CategoryHeading-D2WS6sRI.js.map} +1 -1
  13. package/lib/{DeveloperHint-B_QCCafl.js → DeveloperHint-CRiZjqd2.js} +2 -2
  14. package/lib/{DeveloperHint-B_QCCafl.js.map → DeveloperHint-CRiZjqd2.js.map} +1 -1
  15. package/lib/{Input-DrR6P3mq.js → Input-CO-1DOZa.js} +4 -4
  16. package/lib/{Input-DrR6P3mq.js.map → Input-CO-1DOZa.js.map} +1 -1
  17. package/lib/{Markdown-Y__eLG0x.js → Markdown-DM4zv3MA.js} +9 -8
  18. package/lib/{Markdown-Y__eLG0x.js.map → Markdown-DM4zv3MA.js.map} +1 -1
  19. package/lib/{MdxPage-B4FcPIi5.js → MdxPage-tWI_P8wP.js} +6 -6
  20. package/lib/{MdxPage-B4FcPIi5.js.map → MdxPage-tWI_P8wP.js.map} +1 -1
  21. package/lib/{OperationList-C2jKCTwZ.js → OperationList-Cd3lue0b.js} +11 -12
  22. package/lib/{OperationList-C2jKCTwZ.js.map → OperationList-Cd3lue0b.js.map} +1 -1
  23. package/lib/{Route-DWXcQzRK.js → Route-DI0Y0pIV.js} +3 -3
  24. package/lib/{Route-DWXcQzRK.js.map → Route-DI0Y0pIV.js.map} +1 -1
  25. package/lib/SlotletProvider-CBqY8mp6.js +241 -0
  26. package/lib/SlotletProvider-CBqY8mp6.js.map +1 -0
  27. package/lib/{SidebarBadge-C0iWtji9.js → Spinner-DFQhPMBl.js} +60 -58
  28. package/lib/Spinner-DFQhPMBl.js.map +1 -0
  29. package/lib/{ZudokuContext-MRoel6bS.js → ZudokuContext-DEoP3GGJ.js} +2 -2
  30. package/lib/{ZudokuContext-MRoel6bS.js.map → ZudokuContext-DEoP3GGJ.js.map} +1 -1
  31. package/lib/_commonjsHelpers-BkfeUUK-.js +29 -0
  32. package/lib/_commonjsHelpers-BkfeUUK-.js.map +1 -0
  33. package/lib/index-Bn6Lc9tq.js +9 -0
  34. package/lib/{index-DJqnphbT.js.map → index-Bn6Lc9tq.js.map} +1 -1
  35. package/lib/{index-Dso_b0di.js → index-Bs9roz8y.js} +518 -510
  36. package/lib/index-Bs9roz8y.js.map +1 -0
  37. package/lib/{index-Ch8VO_uX.js → index-CBr6BM_4.js} +12 -12
  38. package/lib/{index-Ch8VO_uX.js.map → index-CBr6BM_4.js.map} +1 -1
  39. package/lib/{index-DFN92YJN.js → index-CRo94sKK.js} +5 -4
  40. package/lib/{index-DFN92YJN.js.map → index-CRo94sKK.js.map} +1 -1
  41. package/lib/{index-D06ATMgg.js → index-LNp6rxyU.js} +2 -2
  42. package/lib/{index-D06ATMgg.js.map → index-LNp6rxyU.js.map} +1 -1
  43. package/lib/{index-bYAqbdYl.js → index-UUT9q9f9.js} +3 -3
  44. package/lib/{index-bYAqbdYl.js.map → index-UUT9q9f9.js.map} +1 -1
  45. package/lib/invariant-Caa8-XvF.js +26 -0
  46. package/lib/invariant-Caa8-XvF.js.map +1 -0
  47. package/lib/{useExposedProps-BWwxa-Hg.js → useExposedProps-B9K-9GTc.js} +2 -2
  48. package/lib/{useExposedProps-BWwxa-Hg.js.map → useExposedProps-B9K-9GTc.js.map} +1 -1
  49. package/lib/{utils-C8S3st2k.js → utils-G5XSiZc9.js} +4 -4
  50. package/lib/{utils-C8S3st2k.js.map → utils-G5XSiZc9.js.map} +1 -1
  51. package/lib/zudoku.auth-clerk.js +1 -1
  52. package/lib/zudoku.auth-openid.js +477 -483
  53. package/lib/zudoku.auth-openid.js.map +1 -1
  54. package/lib/zudoku.components.js +26 -27
  55. package/lib/zudoku.components.js.map +1 -1
  56. package/lib/zudoku.openapi-worker.js +2 -2
  57. package/lib/zudoku.plugin-api-keys.js +60 -70
  58. package/lib/zudoku.plugin-api-keys.js.map +1 -1
  59. package/lib/zudoku.plugin-custom-pages.js +2 -2
  60. package/lib/zudoku.plugin-markdown.js +1 -1
  61. package/lib/zudoku.plugin-openapi.js +6 -7
  62. package/lib/zudoku.plugin-openapi.js.map +1 -1
  63. package/package.json +1 -1
  64. package/src/lib/authentication/components/CallbackHandler.tsx +20 -51
  65. package/src/lib/errors/ErrorAlert.tsx +18 -5
  66. package/src/lib/util/invariant.ts +15 -3
  67. package/lib/ErrorPage-DqqAV1dr.js +0 -16
  68. package/lib/ErrorPage-DqqAV1dr.js.map +0 -1
  69. package/lib/SidebarBadge-C0iWtji9.js.map +0 -1
  70. package/lib/SlotletProvider-DmqWiVFt.js +0 -239
  71. package/lib/SlotletProvider-DmqWiVFt.js.map +0 -1
  72. package/lib/Spinner-3cQDBVGr.js +0 -7
  73. package/lib/Spinner-3cQDBVGr.js.map +0 -1
  74. package/lib/index-DJqnphbT.js +0 -35
  75. package/lib/index-Dso_b0di.js.map +0 -1
@@ -1,34 +1,24 @@
1
- import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
- import logger from "loglevel";
3
- import { useEffect, useRef, useState } from "react";
4
- import { useNavigate } from "react-router-dom";
5
- import { DeveloperHint } from "../../components/DeveloperHint.js";
6
- import { ErrorPage } from "../../components/ErrorPage.js";
7
- import { Spinner } from "../../components/Spinner.js";
8
- import { SyntaxHighlight } from "../../components/SyntaxHighlight.js";
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { useSuspenseQuery } from "@tanstack/react-query";
3
+ import { Navigate } from "react-router-dom";
4
+ import { ZudokuError } from "../../util/invariant.js";
9
5
  export function CallbackHandler({ handleCallback, }) {
10
- const [error, setError] = useState(null);
11
- const navigate = useNavigate();
12
- // Deal with double mount in dev mode which will break
13
- // the OAuth flow because you can only use the code once
14
- const didInitialize = useRef(false);
15
- useEffect(() => {
16
- if (didInitialize.current) {
17
- return;
18
- }
19
- didInitialize.current = true;
20
- handleCallback()
21
- .then((redirect) => {
22
- navigate(redirect);
23
- })
24
- .catch((err) => {
25
- logger.error(err);
26
- setError(err);
27
- });
28
- }, [navigate, handleCallback]);
29
- if (error) {
30
- return (_jsx(ErrorPage, { category: "Error", title: "Authentication Error", message: _jsxs(_Fragment, { children: [_jsx(DeveloperHint, { className: "mb-4", children: "Check the configuration of your authorization provider and ensure all settings such as the callback URL are configured correctly." }), "An error occurred while authorizing the user.", _jsx(SyntaxHighlight, { code: error.toString(), language: "plain" })] }) }));
31
- }
32
- return (_jsx("div", { className: "grid h-full place-items-center", children: _jsx(Spinner, {}) }));
6
+ const executeCallback = useSuspenseQuery({
7
+ retry: false,
8
+ queryKey: ["oauth-callback"],
9
+ queryFn: async () => {
10
+ try {
11
+ return await handleCallback();
12
+ }
13
+ catch (error) {
14
+ throw new ZudokuError("Could not validate user", {
15
+ cause: error,
16
+ title: "Authentication Error",
17
+ developerHint: "Check the configuration of your authorization provider and ensure all settings such as the callback URL are configured correctly.",
18
+ });
19
+ }
20
+ },
21
+ });
22
+ return _jsx(Navigate, { to: executeCallback.data });
33
23
  }
34
24
  //# sourceMappingURL=CallbackHandler.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CallbackHandler.js","sourceRoot":"","sources":["../../../../src/lib/authentication/components/CallbackHandler.tsx"],"names":[],"mappings":";AAAA,OAAO,MAAM,MAAM,UAAU,CAAC;AAC9B,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAClE,OAAO,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAC1D,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAC;AAEtE,MAAM,UAAU,eAAe,CAAC,EAC9B,cAAc,GAGf;IACC,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAe,IAAI,CAAC,CAAC;IACvD,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IAC/B,sDAAsD;IACtD,wDAAwD;IACxD,MAAM,aAAa,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAEpC,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,aAAa,CAAC,OAAO,EAAE,CAAC;YAC1B,OAAO;QACT,CAAC;QACD,aAAa,CAAC,OAAO,GAAG,IAAI,CAAC;QAC7B,cAAc,EAAE;aACb,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE;YACjB,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACrB,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;YACb,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAClB,QAAQ,CAAC,GAAG,CAAC,CAAC;QAChB,CAAC,CAAC,CAAC;IACP,CAAC,EAAE,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC,CAAC;IAE/B,IAAI,KAAK,EAAE,CAAC;QACV,OAAO,CACL,KAAC,SAAS,IACR,QAAQ,EAAC,OAAO,EAChB,KAAK,EAAC,sBAAsB,EAC5B,OAAO,EACL,8BACE,KAAC,aAAa,IAAC,SAAS,EAAC,MAAM,kJAGf,mDAEhB,KAAC,eAAe,IAAC,IAAI,EAAE,KAAK,CAAC,QAAQ,EAAE,EAAE,QAAQ,EAAC,OAAO,GAAG,IAC3D,GAEL,CACH,CAAC;IACJ,CAAC;IAED,OAAO,CACL,cAAK,SAAS,EAAC,gCAAgC,YAC7C,KAAC,OAAO,KAAG,GACP,CACP,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"CallbackHandler.js","sourceRoot":"","sources":["../../../../src/lib/authentication/components/CallbackHandler.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAEtD,MAAM,UAAU,eAAe,CAAC,EAC9B,cAAc,GAGf;IACC,MAAM,eAAe,GAAG,gBAAgB,CAAC;QACvC,KAAK,EAAE,KAAK;QACZ,QAAQ,EAAE,CAAC,gBAAgB,CAAC;QAC5B,OAAO,EAAE,KAAK,IAAI,EAAE;YAClB,IAAI,CAAC;gBACH,OAAO,MAAM,cAAc,EAAE,CAAC;YAChC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,IAAI,WAAW,CAAC,yBAAyB,EAAE;oBAC/C,KAAK,EAAE,KAAK;oBACZ,KAAK,EAAE,sBAAsB;oBAC7B,aAAa,EACX,mIAAmI;iBACtI,CAAC,CAAC;YACL,CAAC;QACH,CAAC;KACF,CAAC,CAAC;IAEH,OAAO,KAAC,QAAQ,IAAC,EAAE,EAAE,eAAe,CAAC,IAAI,GAAI,CAAC;AAChD,CAAC"}
@@ -1,3 +1,3 @@
1
1
  export declare function ErrorAlert({ error }: {
2
- error: any;
2
+ error: unknown;
3
3
  }): import("react/jsx-runtime").JSX.Element;
@@ -1,8 +1,13 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
3
+ import { DeveloperHint } from "../components/DeveloperHint.js";
4
+ import { ZudokuError } from "../util/invariant.js";
3
5
  export function ErrorAlert({ error }) {
4
- const message = error?.message ?? "Something went wrong";
5
- const stack = error?.stack;
6
- return (_jsx("div", { className: "flex h-screen max-h-screen min-h-full items-center justify-center bg-primary-background px-4 py-16 lg:px-8", children: _jsxs("div", { className: "mx-auto max-w-[85%] sm:max-w-[50%]", children: [_jsx("h1", { className: "text-4xl font-bold tracking-tight text-h1-text sm:text-5xl", children: "Something went wrong" }), _jsx("p", { className: "mt-5 text-h1-text", children: message }), stack ? (_jsx("pre", { className: "mt-5 max-h-[400px] w-full overflow-scroll rounded-md border border-input-border bg-input-background p-3 text-property-name-text text-red-700", children: stack })) : null] }) }));
6
+ const message = error instanceof Error ? error.message : "Something went wrong";
7
+ const hint = error instanceof ZudokuError ? error.developerHint : undefined;
8
+ const title = error instanceof ZudokuError ? error.title : "Something went wrong";
9
+ const stack = error instanceof Error ? error.stack : undefined;
10
+ const cause = error instanceof Error ? error.cause : undefined;
11
+ return (_jsx("div", { className: "flex h-screen max-h-screen min-h-full items-center justify-center bg-primary-background px-4 py-16 lg:px-8", children: _jsxs("div", { className: "mx-auto max-w-[85%] sm:max-w-[50%]", children: [_jsx("h1", { className: "text-4xl font-bold tracking-tight text-h1-text sm:text-5xl", children: title }), _jsx("p", { className: "mt-5 text-h1-text", children: message }), hint && _jsx(DeveloperHint, { className: "mb-4", children: hint }), cause instanceof Error ? (_jsx("pre", { className: "mt-5 max-h-[400px] w-full overflow-scroll rounded-md border border-input-border bg-input-background p-3 text-property-name-text text-red-700", children: cause.stack })) : stack ? (_jsx("pre", { className: "mt-5 max-h-[400px] w-full overflow-scroll rounded-md border border-input-border bg-input-background p-3 text-property-name-text text-red-700", children: stack })) : null] }) }));
7
12
  }
8
13
  //# sourceMappingURL=ErrorAlert.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ErrorAlert.js","sourceRoot":"","sources":["../../../src/lib/errors/ErrorAlert.tsx"],"names":[],"mappings":";AAAA,8DAA8D;AAC9D,MAAM,UAAU,UAAU,CAAC,EAAE,KAAK,EAAkB;IAClD,MAAM,OAAO,GAAG,KAAK,EAAE,OAAO,IAAI,sBAAsB,CAAC;IACzD,MAAM,KAAK,GAAG,KAAK,EAAE,KAAK,CAAC;IAE3B,OAAO,CACL,cAAK,SAAS,EAAC,4GAA4G,YACzH,eAAK,SAAS,EAAC,oCAAoC,aACjD,aAAI,SAAS,EAAC,4DAA4D,qCAErE,EACL,YAAG,SAAS,EAAC,mBAAmB,YAAE,OAAO,GAAK,EAC7C,KAAK,CAAC,CAAC,CAAC,CACP,cAAK,SAAS,EAAC,8IAA8I,YAC1J,KAAK,GACF,CACP,CAAC,CAAC,CAAC,IAAI,IACJ,GACF,CACP,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"ErrorAlert.js","sourceRoot":"","sources":["../../../src/lib/errors/ErrorAlert.tsx"],"names":[],"mappings":";AAAA,8DAA8D;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAEnD,MAAM,UAAU,UAAU,CAAC,EAAE,KAAK,EAAsB;IACtD,MAAM,OAAO,GACX,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,sBAAsB,CAAC;IAClE,MAAM,IAAI,GAAG,KAAK,YAAY,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC;IAC5E,MAAM,KAAK,GACT,KAAK,YAAY,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,sBAAsB,CAAC;IACtE,MAAM,KAAK,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;IAC/D,MAAM,KAAK,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;IAE/D,OAAO,CACL,cAAK,SAAS,EAAC,4GAA4G,YACzH,eAAK,SAAS,EAAC,oCAAoC,aACjD,aAAI,SAAS,EAAC,4DAA4D,YACvE,KAAK,GACH,EACL,YAAG,SAAS,EAAC,mBAAmB,YAAE,OAAO,GAAK,EAC7C,IAAI,IAAI,KAAC,aAAa,IAAC,SAAS,EAAC,MAAM,YAAE,IAAI,GAAiB,EAC9D,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,CACxB,cAAK,SAAS,EAAC,8IAA8I,YAC1J,KAAK,CAAC,KAAK,GACR,CACP,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CACV,cAAK,SAAS,EAAC,8IAA8I,YAC1J,KAAK,GACF,CACP,CAAC,CAAC,CAAC,IAAI,IACJ,GACF,CACP,CAAC;AACJ,CAAC"}
@@ -4,3 +4,12 @@ export default function invariant(condition: any,
4
4
  * the message takes a fair amount of effort to compute
5
5
  */
6
6
  message?: string | (() => string)): asserts condition;
7
+ export declare class ZudokuError extends Error {
8
+ developerHint: string | undefined;
9
+ title: string | undefined;
10
+ constructor(message: string, { developerHint, title, cause, }?: {
11
+ developerHint?: string;
12
+ title?: string;
13
+ cause?: Error;
14
+ });
15
+ }
@@ -12,10 +12,14 @@ message) {
12
12
  const provided = typeof message === "function" ? message() : message;
13
13
  throw new ZudokuError(provided ?? "Invariant failed");
14
14
  }
15
- class ZudokuError extends Error {
16
- constructor(message) {
17
- super(message);
15
+ export class ZudokuError extends Error {
16
+ developerHint;
17
+ title;
18
+ constructor(message, { developerHint, title, cause, } = {}) {
19
+ super(message, { cause });
18
20
  this.name = "ZudokuError";
21
+ this.title = title;
22
+ this.developerHint = developerHint;
19
23
  }
20
24
  }
21
25
  //# sourceMappingURL=invariant.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"invariant.js","sourceRoot":"","sources":["../../../src/lib/util/invariant.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,OAAO,UAAU,SAAS,CAC/B,SAAc;AACd,gFAAgF;AAChF;;;GAGG;AACH,OAAiC;IAEjC,IAAI,SAAS,EAAE,CAAC;QACd,OAAO;IACT,CAAC;IACD,uBAAuB;IAEvB,MAAM,QAAQ,GACZ,OAAO,OAAO,KAAK,UAAU,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;IAEtD,MAAM,IAAI,WAAW,CAAC,QAAQ,IAAI,kBAAkB,CAAC,CAAC;AACxD,CAAC;AAED,MAAM,WAAY,SAAQ,KAAK;IAC7B,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,aAAa,CAAC;IAC5B,CAAC;CACF"}
1
+ {"version":3,"file":"invariant.js","sourceRoot":"","sources":["../../../src/lib/util/invariant.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,OAAO,UAAU,SAAS,CAC/B,SAAc;AACd,gFAAgF;AAChF;;;GAGG;AACH,OAAiC;IAEjC,IAAI,SAAS,EAAE,CAAC;QACd,OAAO;IACT,CAAC;IACD,uBAAuB;IAEvB,MAAM,QAAQ,GACZ,OAAO,OAAO,KAAK,UAAU,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;IAEtD,MAAM,IAAI,WAAW,CAAC,QAAQ,IAAI,kBAAkB,CAAC,CAAC;AACxD,CAAC;AAED,MAAM,OAAO,WAAY,SAAQ,KAAK;IAC7B,aAAa,CAAqB;IAClC,KAAK,CAAqB;IAEjC,YACE,OAAe,EACf,EACE,aAAa,EACb,KAAK,EACL,KAAK,MACwD,EAAE;QAEjE,KAAK,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;QAC1B,IAAI,CAAC,IAAI,GAAG,aAAa,CAAC;QAC1B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;IACrC,CAAC;CACF"}
@@ -1,7 +1,7 @@
1
1
  import { j as i } from "./jsx-runtime-B6kdoens.js";
2
2
  import { useEffect as o } from "react";
3
- import { b as a, a as u } from "./index-DFN92YJN.js";
4
- import { u as s } from "./ZudokuContext-MRoel6bS.js";
3
+ import { b as a, a as u } from "./index-CRo94sKK.js";
4
+ import { u as s } from "./ZudokuContext-DEoP3GGJ.js";
5
5
  const r = () => {
6
6
  const t = s(), [n] = a();
7
7
  return o(() => {
@@ -52,4 +52,4 @@ class x {
52
52
  export {
53
53
  x as A
54
54
  };
55
- //# sourceMappingURL=AuthenticationPlugin-D1nhROkO.js.map
55
+ //# sourceMappingURL=AuthenticationPlugin-tBvLKsFg.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AuthenticationPlugin-D1nhROkO.js","sources":["../src/lib/authentication/components/SignIn.tsx","../src/lib/authentication/components/SignOut.tsx","../src/lib/authentication/components/SignUp.tsx","../src/lib/authentication/AuthenticationPlugin.tsx"],"sourcesContent":["import { useEffect } from \"react\";\nimport { useSearchParams } from \"react-router-dom\";\nimport { useZudoku } from \"../../components/context/ZudokuContext.js\";\n\nexport const SignIn = () => {\n const context = useZudoku();\n const [search] = useSearchParams();\n useEffect(() => {\n void context.authentication?.signIn({\n redirectTo: search.get(\"redirect\") ?? undefined,\n });\n }, [context.authentication, search]);\n\n return null;\n};\n","import { useEffect } from \"react\";\nimport { useNavigate } from \"react-router-dom\";\nimport { useZudoku } from \"../../components/context/ZudokuContext.js\";\n\nexport const SignOut = () => {\n const context = useZudoku();\n const navigate = useNavigate();\n useEffect(() => {\n void context.authentication?.signOut().then(() => navigate(\"/\"));\n }, [navigate, context.authentication]);\n\n return null;\n};\n","import { useEffect } from \"react\";\nimport { useZudoku } from \"../../components/context/ZudokuContext.js\";\n\nexport const SignUp = () => {\n const context = useZudoku();\n useEffect(() => {\n void (context.authentication?.signUp() ?? context.authentication?.signIn());\n }, [context.authentication]);\n\n return null;\n};\n","import {\n CommonPlugin,\n NavigationPlugin,\n ProfileMenuPlugin,\n} from \"../core/plugins.js\";\nimport { SignIn } from \"./components/SignIn.js\";\nimport { SignOut } from \"./components/SignOut.js\";\nimport { SignUp } from \"./components/SignUp.js\";\n\ntype PluginInterface = NavigationPlugin & CommonPlugin & ProfileMenuPlugin;\n\nexport class AuthenticationPlugin implements PluginInterface {\n getRoutes() {\n return [\n {\n path: \"/signout\",\n element: <SignOut />,\n },\n {\n path: \"/signin\",\n element: <SignIn />,\n },\n {\n path: \"/signup\",\n element: <SignUp />,\n },\n ];\n }\n\n getProfileMenuItems() {\n return [\n {\n label: \"Logout\",\n path: \"/signout\",\n },\n ];\n }\n}\n"],"names":["SignIn","context","useZudoku","search","useSearchParams","useEffect","_a","SignOut","navigate","useNavigate","SignUp","_b","AuthenticationPlugin"],"mappings":";;;;AAIO,MAAMA,IAAS,MAAM;AAC1B,QAAMC,IAAUC,KACV,CAACC,CAAM,IAAIC;AACjB,SAAAC,EAAU,MAAM;;AACT,KAAAC,IAAAL,EAAQ,mBAAR,QAAAK,EAAwB,OAAO;AAAA,MAClC,YAAYH,EAAO,IAAI,UAAU,KAAK;AAAA,IAAA;AAAA,EAEvC,GAAA,CAACF,EAAQ,gBAAgBE,CAAM,CAAC,GAE5B;AACT,GCVaI,IAAU,MAAM;AAC3B,QAAMN,IAAUC,KACVM,IAAWC;AACjB,SAAAJ,EAAU,MAAM;;AACT,KAAAC,IAAAL,EAAQ,mBAAR,QAAAK,EAAwB,UAAU,KAAK,MAAME,EAAS,GAAG;AAAA,EAC7D,GAAA,CAACA,GAAUP,EAAQ,cAAc,CAAC,GAE9B;AACT,GCTaS,IAAS,MAAM;AAC1B,QAAMT,IAAUC;AAChB,SAAAG,EAAU,MAAM;;AACd,MAAMC,IAAAL,EAAQ,mBAAR,gBAAAK,EAAwB,eAAYK,IAAAV,EAAQ,mBAAR,QAAAU,EAAwB;AAAA,EAAO,GACxE,CAACV,EAAQ,cAAc,CAAC,GAEpB;AACT;ACCO,MAAMW,EAAgD;AAAA,EAC3D,YAAY;AACH,WAAA;AAAA,MACL;AAAA,QACE,MAAM;AAAA,QACN,+BAAUL,GAAQ,EAAA;AAAA,MACpB;AAAA,MACA;AAAA,QACE,MAAM;AAAA,QACN,+BAAUP,GAAO,EAAA;AAAA,MACnB;AAAA,MACA;AAAA,QACE,MAAM;AAAA,QACN,+BAAUU,GAAO,EAAA;AAAA,MACnB;AAAA,IAAA;AAAA,EAEJ;AAAA,EAEA,sBAAsB;AACb,WAAA;AAAA,MACL;AAAA,QACE,OAAO;AAAA,QACP,MAAM;AAAA,MACR;AAAA,IAAA;AAAA,EAEJ;AACF;"}
1
+ {"version":3,"file":"AuthenticationPlugin-tBvLKsFg.js","sources":["../src/lib/authentication/components/SignIn.tsx","../src/lib/authentication/components/SignOut.tsx","../src/lib/authentication/components/SignUp.tsx","../src/lib/authentication/AuthenticationPlugin.tsx"],"sourcesContent":["import { useEffect } from \"react\";\nimport { useSearchParams } from \"react-router-dom\";\nimport { useZudoku } from \"../../components/context/ZudokuContext.js\";\n\nexport const SignIn = () => {\n const context = useZudoku();\n const [search] = useSearchParams();\n useEffect(() => {\n void context.authentication?.signIn({\n redirectTo: search.get(\"redirect\") ?? undefined,\n });\n }, [context.authentication, search]);\n\n return null;\n};\n","import { useEffect } from \"react\";\nimport { useNavigate } from \"react-router-dom\";\nimport { useZudoku } from \"../../components/context/ZudokuContext.js\";\n\nexport const SignOut = () => {\n const context = useZudoku();\n const navigate = useNavigate();\n useEffect(() => {\n void context.authentication?.signOut().then(() => navigate(\"/\"));\n }, [navigate, context.authentication]);\n\n return null;\n};\n","import { useEffect } from \"react\";\nimport { useZudoku } from \"../../components/context/ZudokuContext.js\";\n\nexport const SignUp = () => {\n const context = useZudoku();\n useEffect(() => {\n void (context.authentication?.signUp() ?? context.authentication?.signIn());\n }, [context.authentication]);\n\n return null;\n};\n","import {\n CommonPlugin,\n NavigationPlugin,\n ProfileMenuPlugin,\n} from \"../core/plugins.js\";\nimport { SignIn } from \"./components/SignIn.js\";\nimport { SignOut } from \"./components/SignOut.js\";\nimport { SignUp } from \"./components/SignUp.js\";\n\ntype PluginInterface = NavigationPlugin & CommonPlugin & ProfileMenuPlugin;\n\nexport class AuthenticationPlugin implements PluginInterface {\n getRoutes() {\n return [\n {\n path: \"/signout\",\n element: <SignOut />,\n },\n {\n path: \"/signin\",\n element: <SignIn />,\n },\n {\n path: \"/signup\",\n element: <SignUp />,\n },\n ];\n }\n\n getProfileMenuItems() {\n return [\n {\n label: \"Logout\",\n path: \"/signout\",\n },\n ];\n }\n}\n"],"names":["SignIn","context","useZudoku","search","useSearchParams","useEffect","_a","SignOut","navigate","useNavigate","SignUp","_b","AuthenticationPlugin"],"mappings":";;;;AAIO,MAAMA,IAAS,MAAM;AAC1B,QAAMC,IAAUC,KACV,CAACC,CAAM,IAAIC;AACjB,SAAAC,EAAU,MAAM;;AACT,KAAAC,IAAAL,EAAQ,mBAAR,QAAAK,EAAwB,OAAO;AAAA,MAClC,YAAYH,EAAO,IAAI,UAAU,KAAK;AAAA,IAAA;AAAA,EAEvC,GAAA,CAACF,EAAQ,gBAAgBE,CAAM,CAAC,GAE5B;AACT,GCVaI,IAAU,MAAM;AAC3B,QAAMN,IAAUC,KACVM,IAAWC;AACjB,SAAAJ,EAAU,MAAM;;AACT,KAAAC,IAAAL,EAAQ,mBAAR,QAAAK,EAAwB,UAAU,KAAK,MAAME,EAAS,GAAG;AAAA,EAC7D,GAAA,CAACA,GAAUP,EAAQ,cAAc,CAAC,GAE9B;AACT,GCTaS,IAAS,MAAM;AAC1B,QAAMT,IAAUC;AAChB,SAAAG,EAAU,MAAM;;AACd,MAAMC,IAAAL,EAAQ,mBAAR,gBAAAK,EAAwB,eAAYK,IAAAV,EAAQ,mBAAR,QAAAU,EAAwB;AAAA,EAAO,GACxE,CAACV,EAAQ,cAAc,CAAC,GAEpB;AACT;ACCO,MAAMW,EAAgD;AAAA,EAC3D,YAAY;AACH,WAAA;AAAA,MACL;AAAA,QACE,MAAM;AAAA,QACN,+BAAUL,GAAQ,EAAA;AAAA,MACpB;AAAA,MACA;AAAA,QACE,MAAM;AAAA,QACN,+BAAUP,GAAO,EAAA;AAAA,MACnB;AAAA,MACA;AAAA,QACE,MAAM;AAAA,QACN,+BAAUU,GAAO,EAAA;AAAA,MACnB;AAAA,IAAA;AAAA,EAEJ;AAAA,EAEA,sBAAsB;AACb,WAAA;AAAA,MACL;AAAA,QACE,OAAO;AAAA,QACP,MAAM;AAAA,MACR;AAAA,IAAA;AAAA,EAEJ;AACF;"}
@@ -1,5 +1,5 @@
1
1
  import { j as s } from "./jsx-runtime-B6kdoens.js";
2
- import { c as m } from "./Markdown-Y__eLG0x.js";
2
+ import { c as m } from "./Markdown-DM4zv3MA.js";
3
3
  const a = ({
4
4
  children: t,
5
5
  className: r
@@ -7,4 +7,4 @@ const a = ({
7
7
  export {
8
8
  a as C
9
9
  };
10
- //# sourceMappingURL=CategoryHeading-B7TlPvuN.js.map
10
+ //# sourceMappingURL=CategoryHeading-D2WS6sRI.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CategoryHeading-B7TlPvuN.js","sources":["../src/lib/components/CategoryHeading.tsx"],"sourcesContent":["import { cx } from \"class-variance-authority\";\nimport type { ReactNode } from \"react\";\n\nexport const CategoryHeading = ({\n children,\n className,\n}: {\n children: ReactNode;\n className?: string;\n}) => {\n return (\n <div className={cx(\"text-sm font-semibold text-primary mb-2\", className)}>\n {children}\n </div>\n );\n};\n"],"names":["CategoryHeading","children","className","cx"],"mappings":";;AAGO,MAAMA,IAAkB,CAAC;AAAA,EAC9B,UAAAC;AAAA,EACA,WAAAC;AACF,4BAKK,OAAI,EAAA,WAAWC,EAAG,2CAA2CD,CAAS,GACpE,UAAAD,EACH,CAAA;"}
1
+ {"version":3,"file":"CategoryHeading-D2WS6sRI.js","sources":["../src/lib/components/CategoryHeading.tsx"],"sourcesContent":["import { cx } from \"class-variance-authority\";\nimport type { ReactNode } from \"react\";\n\nexport const CategoryHeading = ({\n children,\n className,\n}: {\n children: ReactNode;\n className?: string;\n}) => {\n return (\n <div className={cx(\"text-sm font-semibold text-primary mb-2\", className)}>\n {children}\n </div>\n );\n};\n"],"names":["CategoryHeading","children","className","cx"],"mappings":";;AAGO,MAAMA,IAAkB,CAAC;AAAA,EAC9B,UAAAC;AAAA,EACA,WAAAC;AACF,4BAKK,OAAI,EAAA,WAAWC,EAAG,2CAA2CD,CAAS,GACpE,UAAAD,EACH,CAAA;"}
@@ -1,5 +1,5 @@
1
1
  import { j as e } from "./jsx-runtime-B6kdoens.js";
2
- import { C as i } from "./Markdown-Y__eLG0x.js";
2
+ import { C as i } from "./Markdown-DM4zv3MA.js";
3
3
  const n = ({
4
4
  children: s,
5
5
  className: t
@@ -13,4 +13,4 @@ const n = ({
13
13
  export {
14
14
  n as D
15
15
  };
16
- //# sourceMappingURL=DeveloperHint-B_QCCafl.js.map
16
+ //# sourceMappingURL=DeveloperHint-CRiZjqd2.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DeveloperHint-B_QCCafl.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;"}
1
+ {"version":3,"file":"DeveloperHint-CRiZjqd2.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;"}
@@ -5,12 +5,12 @@ var _t = (e, r, t) => r.has(e) || zt("Cannot " + t);
5
5
  var Z = (e, r, t) => (_t(e, r, "read from private field"), t ? t.call(e) : r.get(e)), Ue = (e, r, t) => r.has(e) ? zt("Cannot add the same private member more than once") : r instanceof WeakSet ? r.add(e) : r.set(e, t), He = (e, r, t, s) => (_t(e, r, "write to private field"), s ? s.call(e, t) : r.set(e, t), t), We = (e, r, t) => (_t(e, r, "access private method"), t);
6
6
  import * as p from "react";
7
7
  import I from "react";
8
- import { o as ps, f as hs, c as ms, p as ir, d as _e, A as ys, P as me, b as oe, e as De, j as gs, k as vs, R as xs, S as _s, F as Ss, D as bs, C as ws, a as Bt, q as Cs, V as As, i as Vs, m as Fs, h as Es, u as Yt, r as Ts } from "./index-Ch8VO_uX.js";
9
- import { S as Is, s as Rs, h as Xt, n as ar, a as Ns, d as Ds, e as Ps } from "./ZudokuContext-MRoel6bS.js";
8
+ import { o as ps, g as hs, c as ms, p as ir, d as _e, A as ys, P as me, b as oe, e as De, k as gs, l as vs, R as xs, S as _s, F as Ss, D as bs, C as ws, a as Bt, q as Cs, V as As, j as Vs, n as Fs, i as Es, u as Yt, r as Ts } from "./index-CBr6BM_4.js";
9
+ import { S as Is, s as Rs, h as Xt, n as ar, a as Ns, d as Ds, e as Ps } from "./ZudokuContext-DEoP3GGJ.js";
10
10
  import { j as b } from "./jsx-runtime-B6kdoens.js";
11
11
  import * as lr from "react-dom";
12
12
  import { ChevronDown as cr, ChevronUp as ks, Check as Ms } from "lucide-react";
13
- import { a as Ee } from "./Markdown-Y__eLG0x.js";
13
+ import { a as Ee } from "./Markdown-DM4zv3MA.js";
14
14
  var Re, Ne, de, Ae, Fe, nt, Nt, nr, Os = (nr = class extends Is {
15
15
  constructor(r, t) {
16
16
  super();
@@ -2226,4 +2226,4 @@ export {
2226
2226
  pt as h,
2227
2227
  qo as u
2228
2228
  };
2229
- //# sourceMappingURL=Input-DrR6P3mq.js.map
2229
+ //# sourceMappingURL=Input-CO-1DOZa.js.map