zudoku 0.55.1 → 0.56.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/app/main.d.ts +1 -1
- package/dist/app/main.js +11 -4
- package/dist/app/main.js.map +1 -1
- package/dist/config/validators/InputNavigationSchema.d.ts +4 -0
- package/dist/config/validators/InputNavigationSchema.js +1 -0
- package/dist/config/validators/InputNavigationSchema.js.map +1 -1
- package/dist/config/validators/validate.d.ts +1 -0
- package/dist/config/validators/validate.js +1 -0
- package/dist/config/validators/validate.js.map +1 -1
- package/dist/flat-config.d.ts +329 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/lib/components/BuildCheck.js +7 -0
- package/dist/lib/components/BuildCheck.js.map +1 -1
- package/dist/lib/components/Header.js +1 -1
- package/dist/lib/components/Header.js.map +1 -1
- package/dist/lib/components/Layout.js +4 -7
- package/dist/lib/components/Layout.js.map +1 -1
- package/dist/lib/components/Meta.d.ts +2 -0
- package/dist/lib/components/Meta.js +11 -0
- package/dist/lib/components/Meta.js.map +1 -0
- package/dist/lib/components/context/ZudokuContext.js +1 -1
- package/dist/lib/components/context/ZudokuContext.js.map +1 -1
- package/dist/lib/components/index.d.ts +1 -0
- package/dist/lib/components/index.js +2 -0
- package/dist/lib/components/index.js.map +1 -1
- package/dist/lib/components/navigation/NavigationItem.js +3 -2
- package/dist/lib/components/navigation/NavigationItem.js.map +1 -1
- package/dist/lib/components/navigation/utils.js +12 -11
- package/dist/lib/components/navigation/utils.js.map +1 -1
- package/dist/lib/core/ZudokuContext.d.ts +1 -0
- package/dist/lib/core/ZudokuContext.js.map +1 -1
- package/dist/lib/plugins/custom-pages/index.js +3 -0
- package/dist/lib/plugins/custom-pages/index.js.map +1 -1
- package/dist/lib/ui/CodeBlock.js +2 -2
- package/dist/lib/ui/CodeBlock.js.map +1 -1
- package/dist/lib/ui/Dialog.js +2 -2
- package/dist/lib/ui/Dialog.js.map +1 -1
- package/dist/vite/plugin-mdx.js +1 -1
- package/dist/vite/plugin-mdx.js.map +1 -1
- package/dist/vite/sitemap.js +10 -9
- package/dist/vite/sitemap.js.map +1 -1
- package/lib/{CodeBlock-CVT6z0PP.js → CodeBlock-yJjjRwj-.js} +3 -3
- package/lib/CodeBlock-yJjjRwj-.js.map +1 -0
- package/lib/{Command-BYukybsa.js → Command-CfgGXMfJ.js} +2 -2
- package/lib/{Command-BYukybsa.js.map → Command-CfgGXMfJ.js.map} +1 -1
- package/lib/Dialog-B7YnrNnG.js +114 -0
- package/lib/Dialog-B7YnrNnG.js.map +1 -0
- package/lib/{MdxPage-BKyikAKk.js → MdxPage-D49lfheg.js} +7 -7
- package/lib/{MdxPage-BKyikAKk.js.map → MdxPage-D49lfheg.js.map} +1 -1
- package/lib/{OAuthErrorPage--neTdY8H.js → OAuthErrorPage-COKL9zOi.js} +6 -6
- package/lib/{OAuthErrorPage--neTdY8H.js.map → OAuthErrorPage-COKL9zOi.js.map} +1 -1
- package/lib/{OasProvider-yysXhMVI.js → OasProvider-CCv_-asV.js} +2 -2
- package/lib/{OasProvider-yysXhMVI.js.map → OasProvider-CCv_-asV.js.map} +1 -1
- package/lib/{OperationList-CSYrpcpD.js → OperationList-DkS0B0y1.js} +11 -11
- package/lib/{OperationList-CSYrpcpD.js.map → OperationList-DkS0B0y1.js.map} +1 -1
- package/lib/{Pagination-QsyyJuoq.js → Pagination-VfR2DCXf.js} +2 -2
- package/lib/{Pagination-QsyyJuoq.js.map → Pagination-VfR2DCXf.js.map} +1 -1
- package/lib/{RouteGuard-D17dUEM_.js → RouteGuard-CSi9-hSR.js} +4 -4
- package/lib/{RouteGuard-D17dUEM_.js.map → RouteGuard-CSi9-hSR.js.map} +1 -1
- package/lib/{SchemaList-CSZkqmwI.js → SchemaList-B7ezc5Uy.js} +8 -8
- package/lib/{SchemaList-CSZkqmwI.js.map → SchemaList-B7ezc5Uy.js.map} +1 -1
- package/lib/{SchemaView-bhJ_U4vL.js → SchemaView-BuL-ycaR.js} +4 -4
- package/lib/{SchemaView-bhJ_U4vL.js.map → SchemaView-BuL-ycaR.js.map} +1 -1
- package/lib/{Select-DlfI9FFO.js → Select-B9h5k2Pz.js} +3 -3
- package/lib/{Select-DlfI9FFO.js.map → Select-B9h5k2Pz.js.map} +1 -1
- package/lib/{SignUp-C6ogvx5s.js → SignUp-Cn_gZ7UN.js} +3 -3
- package/lib/{SignUp-C6ogvx5s.js.map → SignUp-Cn_gZ7UN.js.map} +1 -1
- package/lib/{Slot-Dgy8tqef.js → Slot-BFCJzl5J.js} +358 -358
- package/lib/{Slot-Dgy8tqef.js.map → Slot-BFCJzl5J.js.map} +1 -1
- package/lib/{SyntaxHighlight-BD_Z_Csq.js → SyntaxHighlight-CSW4eaIJ.js} +313 -313
- package/lib/SyntaxHighlight-CSW4eaIJ.js.map +1 -0
- package/lib/{Toc-CjX59Ljo.js → Toc-B9K7a2FS.js} +2 -2
- package/lib/{Toc-CjX59Ljo.js.map → Toc-B9K7a2FS.js.map} +1 -1
- package/lib/{ZudokuContext-Coxa0DfE.js → ZudokuContext-mDDq1hft.js} +76 -68
- package/lib/{ZudokuContext-Coxa0DfE.js.map → ZudokuContext-mDDq1hft.js.map} +1 -1
- package/lib/{circular-Q4G1nwyb.js → circular-BMUvC5RK.js} +2 -2
- package/lib/{circular-Q4G1nwyb.js.map → circular-BMUvC5RK.js.map} +1 -1
- package/lib/{createServer-Dtstxqn7.js → createServer-I8dX2VSu.js} +4 -4
- package/lib/{createServer-Dtstxqn7.js.map → createServer-I8dX2VSu.js.map} +1 -1
- package/lib/{errors-BoJYHL2E.js → errors-D2Qdkul6.js} +2 -2
- package/lib/{errors-BoJYHL2E.js.map → errors-D2Qdkul6.js.map} +1 -1
- package/lib/{hook-DEPqwjke.js → hook-CGx8MPrU.js} +2 -2
- package/lib/{hook-DEPqwjke.js.map → hook-CGx8MPrU.js.map} +1 -1
- package/lib/{index-DYs8gxKX.js → index-Cc70HIQT.js} +106 -101
- package/lib/index-Cc70HIQT.js.map +1 -0
- package/lib/{index-Bl1W774G.js → index-ChOC1gfC.js} +2 -2
- package/lib/{index-Bl1W774G.js.map → index-ChOC1gfC.js.map} +1 -1
- package/lib/{index-DRkS-pvf.js → index-DZqSbZzE.js} +16 -16
- package/lib/{index-DRkS-pvf.js.map → index-DZqSbZzE.js.map} +1 -1
- package/lib/ui/CodeBlock.js +1 -1
- package/lib/ui/Command.js +1 -1
- package/lib/ui/Dialog.js +56 -41
- package/lib/ui/Dialog.js.map +1 -1
- package/lib/ui/SyntaxHighlight.js +3 -3
- package/lib/zudoku.auth-auth0.js +1 -1
- package/lib/zudoku.auth-azureb2c.js +5 -5
- package/lib/zudoku.auth-clerk.js +2 -2
- package/lib/zudoku.auth-openid.js +5 -5
- package/lib/zudoku.auth-supabase.js +2 -2
- package/lib/zudoku.components.js +19 -18
- package/lib/zudoku.hooks.js +3 -3
- package/lib/zudoku.plugin-api-catalog.js +6 -6
- package/lib/zudoku.plugin-api-keys.js +6 -6
- package/lib/zudoku.plugin-custom-pages.js +8 -5
- package/lib/zudoku.plugin-custom-pages.js.map +1 -1
- package/lib/zudoku.plugin-markdown.js +1 -1
- package/lib/zudoku.plugin-openapi.js +3 -3
- package/lib/zudoku.plugin-search-pagefind.js +5 -5
- package/package.json +6 -6
- package/src/app/main.tsx +18 -4
- package/src/lib/components/BuildCheck.tsx +10 -0
- package/src/lib/components/Header.tsx +3 -2
- package/src/lib/components/Layout.tsx +2 -21
- package/src/lib/components/Meta.tsx +32 -0
- package/src/lib/components/context/ZudokuContext.ts +1 -1
- package/src/lib/components/index.ts +2 -0
- package/src/lib/components/navigation/NavigationItem.tsx +4 -2
- package/src/lib/components/navigation/utils.ts +12 -12
- package/src/lib/core/ZudokuContext.ts +1 -0
- package/src/lib/plugins/custom-pages/index.tsx +3 -0
- package/src/lib/ui/CodeBlock.tsx +2 -2
- package/src/lib/ui/Dialog.tsx +12 -3
- package/lib/CodeBlock-CVT6z0PP.js.map +0 -1
- package/lib/Dialog-u9Uz9sTt.js +0 -99
- package/lib/Dialog-u9Uz9sTt.js.map +0 -1
- package/lib/SyntaxHighlight-BD_Z_Csq.js.map +0 -1
- package/lib/index-DYs8gxKX.js.map +0 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { j as t } from "./jsx-runtime-C5mzlN2N.js";
|
|
2
2
|
import { LogOutIcon as n } from "lucide-react";
|
|
3
|
-
import { S as i, a, b as u } from "./SignUp-
|
|
3
|
+
import { S as i, a, b as u } from "./SignUp-Cn_gZ7UN.js";
|
|
4
4
|
import { Z as m } from "./invariant-Bm-FVUQE.js";
|
|
5
5
|
class h {
|
|
6
6
|
getRoutes() {
|
|
@@ -42,4 +42,4 @@ export {
|
|
|
42
42
|
h as C,
|
|
43
43
|
f as O
|
|
44
44
|
};
|
|
45
|
-
//# sourceMappingURL=errors-
|
|
45
|
+
//# sourceMappingURL=errors-D2Qdkul6.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors-
|
|
1
|
+
{"version":3,"file":"errors-D2Qdkul6.js","sources":["../src/lib/authentication/AuthenticationPlugin.tsx","../src/lib/authentication/errors.ts"],"sourcesContent":["import { LogOutIcon } from \"lucide-react\";\nimport {\n type CommonPlugin,\n type NavigationPlugin,\n type 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 CoreAuthenticationPlugin 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 category: \"bottom\",\n icon: LogOutIcon,\n } as const,\n ];\n }\n}\n","import type { OAuth2Error } from \"oauth4webapi\";\nimport { ZudokuError, type ZudokuErrorOptions } from \"../util/invariant.js\";\n\nexport class AuthorizationError extends Error {}\n\nexport class OAuthAuthorizationError extends ZudokuError {\n constructor(\n message: string,\n public error: OAuth2Error,\n options?: ZudokuErrorOptions,\n ) {\n super(message, options);\n }\n}\n\nexport type OAuthErrorType =\n // Authorization errors\n | \"invalid_request\"\n | \"unauthorized_client\"\n | \"access_denied\"\n | \"unsupported_response_type\"\n | \"invalid_scope\"\n | \"server_error\"\n | \"temporarily_unavailable\"\n // Token errors\n | \"invalid_client\"\n | \"invalid_grant\"\n | \"unsupported_grant_type\"\n // Custom errors\n | \"invalid_state\"\n | \"missing_code_verifier\"\n | \"network_error\"\n | \"token_expired\"\n | \"configuration_error\"\n | \"unknown_error\";\n"],"names":["CoreAuthenticationPlugin","SignOut","SignIn","SignUp","LogOutIcon","AuthorizationError","OAuthAuthorizationError","ZudokuError","message","error","options"],"mappings":";;;;AAYO,MAAMA,EAAoD;AAAA,EAC/D,YAAY;AACV,WAAO;AAAA,MACL;AAAA,QACE,MAAM;AAAA,QACN,+BAAUC,GAAA,CAAA,CAAQ;AAAA,MAAA;AAAA,MAEpB;AAAA,QACE,MAAM;AAAA,QACN,+BAAUC,GAAA,CAAA,CAAO;AAAA,MAAA;AAAA,MAEnB;AAAA,QACE,MAAM;AAAA,QACN,+BAAUC,GAAA,CAAA,CAAO;AAAA,MAAA;AAAA,IACnB;AAAA,EAEJ;AAAA,EAEA,sBAAsB;AACpB,WAAO;AAAA,MACL;AAAA,QACE,OAAO;AAAA,QACP,MAAM;AAAA,QACN,UAAU;AAAA,QACV,MAAMC;AAAA,MAAA;AAAA,IACR;AAAA,EAEJ;AACF;ACrCO,MAAMC,UAA2B,MAAM;AAAC;AAExC,MAAMC,UAAgCC,EAAY;AAAA,EACvD,YACEC,GACOC,GACPC,GACA;AACA,UAAMF,GAASE,CAAO,GAHf,KAAA,QAAAD;AAAA,EAIT;AACF;"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { c as _ } from "./ZudokuContext-
|
|
1
|
+
import { c as _ } from "./ZudokuContext-mDDq1hft.js";
|
|
2
2
|
import I from "react";
|
|
3
3
|
const E = (t) => {
|
|
4
4
|
let n;
|
|
@@ -244,4 +244,4 @@ export {
|
|
|
244
244
|
x as p,
|
|
245
245
|
O as u
|
|
246
246
|
};
|
|
247
|
-
//# sourceMappingURL=hook-
|
|
247
|
+
//# sourceMappingURL=hook-CGx8MPrU.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hook-DEPqwjke.js","sources":["../../../node_modules/.pnpm/zustand@5.0.6_@types+react@19.1.8_react@19.1.0_use-sync-external-store@1.5.0_react@19.1.0_/node_modules/zustand/esm/vanilla.mjs","../../../node_modules/.pnpm/zustand@5.0.6_@types+react@19.1.8_react@19.1.0_use-sync-external-store@1.5.0_react@19.1.0_/node_modules/zustand/esm/react.mjs","../../../node_modules/.pnpm/zustand@5.0.6_@types+react@19.1.8_react@19.1.0_use-sync-external-store@1.5.0_react@19.1.0_/node_modules/zustand/esm/middleware.mjs","../src/lib/authentication/state.ts","../src/lib/authentication/hook.ts"],"sourcesContent":["const createStoreImpl = (createState) => {\n let state;\n const listeners = /* @__PURE__ */ new Set();\n const setState = (partial, replace) => {\n const nextState = typeof partial === \"function\" ? partial(state) : partial;\n if (!Object.is(nextState, state)) {\n const previousState = state;\n state = (replace != null ? replace : typeof nextState !== \"object\" || nextState === null) ? nextState : Object.assign({}, state, nextState);\n listeners.forEach((listener) => listener(state, previousState));\n }\n };\n const getState = () => state;\n const getInitialState = () => initialState;\n const subscribe = (listener) => {\n listeners.add(listener);\n return () => listeners.delete(listener);\n };\n const api = { setState, getState, getInitialState, subscribe };\n const initialState = state = createState(setState, getState, api);\n return api;\n};\nconst createStore = (createState) => createState ? createStoreImpl(createState) : createStoreImpl;\n\nexport { createStore };\n","import React from 'react';\nimport { createStore } from 'zustand/vanilla';\n\nconst identity = (arg) => arg;\nfunction useStore(api, selector = identity) {\n const slice = React.useSyncExternalStore(\n api.subscribe,\n () => selector(api.getState()),\n () => selector(api.getInitialState())\n );\n React.useDebugValue(slice);\n return slice;\n}\nconst createImpl = (createState) => {\n const api = createStore(createState);\n const useBoundStore = (selector) => useStore(api, selector);\n Object.assign(useBoundStore, api);\n return useBoundStore;\n};\nconst create = (createState) => createState ? createImpl(createState) : createImpl;\n\nexport { create, useStore };\n","const reduxImpl = (reducer, initial) => (set, _get, api) => {\n api.dispatch = (action) => {\n set((state) => reducer(state, action), false, action);\n return action;\n };\n api.dispatchFromDevtools = true;\n return { dispatch: (...args) => api.dispatch(...args), ...initial };\n};\nconst redux = reduxImpl;\n\nconst trackedConnections = /* @__PURE__ */ new Map();\nconst getTrackedConnectionState = (name) => {\n const api = trackedConnections.get(name);\n if (!api) return {};\n return Object.fromEntries(\n Object.entries(api.stores).map(([key, api2]) => [key, api2.getState()])\n );\n};\nconst extractConnectionInformation = (store, extensionConnector, options) => {\n if (store === void 0) {\n return {\n type: \"untracked\",\n connection: extensionConnector.connect(options)\n };\n }\n const existingConnection = trackedConnections.get(options.name);\n if (existingConnection) {\n return { type: \"tracked\", store, ...existingConnection };\n }\n const newConnection = {\n connection: extensionConnector.connect(options),\n stores: {}\n };\n trackedConnections.set(options.name, newConnection);\n return { type: \"tracked\", store, ...newConnection };\n};\nconst removeStoreFromTrackedConnections = (name, store) => {\n if (store === void 0) return;\n const connectionInfo = trackedConnections.get(name);\n if (!connectionInfo) return;\n delete connectionInfo.stores[store];\n if (Object.keys(connectionInfo.stores).length === 0) {\n trackedConnections.delete(name);\n }\n};\nconst findCallerName = (stack) => {\n var _a, _b;\n if (!stack) return void 0;\n const traceLines = stack.split(\"\\n\");\n const apiSetStateLineIndex = traceLines.findIndex(\n (traceLine) => traceLine.includes(\"api.setState\")\n );\n if (apiSetStateLineIndex < 0) return void 0;\n const callerLine = ((_a = traceLines[apiSetStateLineIndex + 1]) == null ? void 0 : _a.trim()) || \"\";\n return (_b = /.+ (.+) .+/.exec(callerLine)) == null ? void 0 : _b[1];\n};\nconst devtoolsImpl = (fn, devtoolsOptions = {}) => (set, get, api) => {\n const { enabled, anonymousActionType, store, ...options } = devtoolsOptions;\n let extensionConnector;\n try {\n extensionConnector = (enabled != null ? enabled : (import.meta.env ? import.meta.env.MODE : void 0) !== \"production\") && window.__REDUX_DEVTOOLS_EXTENSION__;\n } catch (e) {\n }\n if (!extensionConnector) {\n return fn(set, get, api);\n }\n const { connection, ...connectionInformation } = extractConnectionInformation(store, extensionConnector, options);\n let isRecording = true;\n api.setState = (state, replace, nameOrAction) => {\n const r = set(state, replace);\n if (!isRecording) return r;\n const action = nameOrAction === void 0 ? {\n type: anonymousActionType || findCallerName(new Error().stack) || \"anonymous\"\n } : typeof nameOrAction === \"string\" ? { type: nameOrAction } : nameOrAction;\n if (store === void 0) {\n connection == null ? void 0 : connection.send(action, get());\n return r;\n }\n connection == null ? void 0 : connection.send(\n {\n ...action,\n type: `${store}/${action.type}`\n },\n {\n ...getTrackedConnectionState(options.name),\n [store]: api.getState()\n }\n );\n return r;\n };\n api.devtools = {\n cleanup: () => {\n if (connection && typeof connection.unsubscribe === \"function\") {\n connection.unsubscribe();\n }\n removeStoreFromTrackedConnections(options.name, store);\n }\n };\n const setStateFromDevtools = (...a) => {\n const originalIsRecording = isRecording;\n isRecording = false;\n set(...a);\n isRecording = originalIsRecording;\n };\n const initialState = fn(api.setState, get, api);\n if (connectionInformation.type === \"untracked\") {\n connection == null ? void 0 : connection.init(initialState);\n } else {\n connectionInformation.stores[connectionInformation.store] = api;\n connection == null ? void 0 : connection.init(\n Object.fromEntries(\n Object.entries(connectionInformation.stores).map(([key, store2]) => [\n key,\n key === connectionInformation.store ? initialState : store2.getState()\n ])\n )\n );\n }\n if (api.dispatchFromDevtools && typeof api.dispatch === \"function\") {\n let didWarnAboutReservedActionType = false;\n const originalDispatch = api.dispatch;\n api.dispatch = (...args) => {\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\" && args[0].type === \"__setState\" && !didWarnAboutReservedActionType) {\n console.warn(\n '[zustand devtools middleware] \"__setState\" action type is reserved to set state from the devtools. Avoid using it.'\n );\n didWarnAboutReservedActionType = true;\n }\n originalDispatch(...args);\n };\n }\n connection.subscribe((message) => {\n var _a;\n switch (message.type) {\n case \"ACTION\":\n if (typeof message.payload !== \"string\") {\n console.error(\n \"[zustand devtools middleware] Unsupported action format\"\n );\n return;\n }\n return parseJsonThen(\n message.payload,\n (action) => {\n if (action.type === \"__setState\") {\n if (store === void 0) {\n setStateFromDevtools(action.state);\n return;\n }\n if (Object.keys(action.state).length !== 1) {\n console.error(\n `\n [zustand devtools middleware] Unsupported __setState action format.\n When using 'store' option in devtools(), the 'state' should have only one key, which is a value of 'store' that was passed in devtools(),\n and value of this only key should be a state object. Example: { \"type\": \"__setState\", \"state\": { \"abc123Store\": { \"foo\": \"bar\" } } }\n `\n );\n }\n const stateFromDevtools = action.state[store];\n if (stateFromDevtools === void 0 || stateFromDevtools === null) {\n return;\n }\n if (JSON.stringify(api.getState()) !== JSON.stringify(stateFromDevtools)) {\n setStateFromDevtools(stateFromDevtools);\n }\n return;\n }\n if (!api.dispatchFromDevtools) return;\n if (typeof api.dispatch !== \"function\") return;\n api.dispatch(action);\n }\n );\n case \"DISPATCH\":\n switch (message.payload.type) {\n case \"RESET\":\n setStateFromDevtools(initialState);\n if (store === void 0) {\n return connection == null ? void 0 : connection.init(api.getState());\n }\n return connection == null ? void 0 : connection.init(getTrackedConnectionState(options.name));\n case \"COMMIT\":\n if (store === void 0) {\n connection == null ? void 0 : connection.init(api.getState());\n return;\n }\n return connection == null ? void 0 : connection.init(getTrackedConnectionState(options.name));\n case \"ROLLBACK\":\n return parseJsonThen(message.state, (state) => {\n if (store === void 0) {\n setStateFromDevtools(state);\n connection == null ? void 0 : connection.init(api.getState());\n return;\n }\n setStateFromDevtools(state[store]);\n connection == null ? void 0 : connection.init(getTrackedConnectionState(options.name));\n });\n case \"JUMP_TO_STATE\":\n case \"JUMP_TO_ACTION\":\n return parseJsonThen(message.state, (state) => {\n if (store === void 0) {\n setStateFromDevtools(state);\n return;\n }\n if (JSON.stringify(api.getState()) !== JSON.stringify(state[store])) {\n setStateFromDevtools(state[store]);\n }\n });\n case \"IMPORT_STATE\": {\n const { nextLiftedState } = message.payload;\n const lastComputedState = (_a = nextLiftedState.computedStates.slice(-1)[0]) == null ? void 0 : _a.state;\n if (!lastComputedState) return;\n if (store === void 0) {\n setStateFromDevtools(lastComputedState);\n } else {\n setStateFromDevtools(lastComputedState[store]);\n }\n connection == null ? void 0 : connection.send(\n null,\n // FIXME no-any\n nextLiftedState\n );\n return;\n }\n case \"PAUSE_RECORDING\":\n return isRecording = !isRecording;\n }\n return;\n }\n });\n return initialState;\n};\nconst devtools = devtoolsImpl;\nconst parseJsonThen = (stringified, fn) => {\n let parsed;\n try {\n parsed = JSON.parse(stringified);\n } catch (e) {\n console.error(\n \"[zustand devtools middleware] Could not parse the received json\",\n e\n );\n }\n if (parsed !== void 0) fn(parsed);\n};\n\nconst subscribeWithSelectorImpl = (fn) => (set, get, api) => {\n const origSubscribe = api.subscribe;\n api.subscribe = (selector, optListener, options) => {\n let listener = selector;\n if (optListener) {\n const equalityFn = (options == null ? void 0 : options.equalityFn) || Object.is;\n let currentSlice = selector(api.getState());\n listener = (state) => {\n const nextSlice = selector(state);\n if (!equalityFn(currentSlice, nextSlice)) {\n const previousSlice = currentSlice;\n optListener(currentSlice = nextSlice, previousSlice);\n }\n };\n if (options == null ? void 0 : options.fireImmediately) {\n optListener(currentSlice, currentSlice);\n }\n }\n return origSubscribe(listener);\n };\n const initialState = fn(set, get, api);\n return initialState;\n};\nconst subscribeWithSelector = subscribeWithSelectorImpl;\n\nfunction combine(initialState, create) {\n return (...args) => Object.assign({}, initialState, create(...args));\n}\n\nfunction createJSONStorage(getStorage, options) {\n let storage;\n try {\n storage = getStorage();\n } catch (e) {\n return;\n }\n const persistStorage = {\n getItem: (name) => {\n var _a;\n const parse = (str2) => {\n if (str2 === null) {\n return null;\n }\n return JSON.parse(str2, options == null ? void 0 : options.reviver);\n };\n const str = (_a = storage.getItem(name)) != null ? _a : null;\n if (str instanceof Promise) {\n return str.then(parse);\n }\n return parse(str);\n },\n setItem: (name, newValue) => storage.setItem(name, JSON.stringify(newValue, options == null ? void 0 : options.replacer)),\n removeItem: (name) => storage.removeItem(name)\n };\n return persistStorage;\n}\nconst toThenable = (fn) => (input) => {\n try {\n const result = fn(input);\n if (result instanceof Promise) {\n return result;\n }\n return {\n then(onFulfilled) {\n return toThenable(onFulfilled)(result);\n },\n catch(_onRejected) {\n return this;\n }\n };\n } catch (e) {\n return {\n then(_onFulfilled) {\n return this;\n },\n catch(onRejected) {\n return toThenable(onRejected)(e);\n }\n };\n }\n};\nconst persistImpl = (config, baseOptions) => (set, get, api) => {\n let options = {\n storage: createJSONStorage(() => localStorage),\n partialize: (state) => state,\n version: 0,\n merge: (persistedState, currentState) => ({\n ...currentState,\n ...persistedState\n }),\n ...baseOptions\n };\n let hasHydrated = false;\n const hydrationListeners = /* @__PURE__ */ new Set();\n const finishHydrationListeners = /* @__PURE__ */ new Set();\n let storage = options.storage;\n if (!storage) {\n return config(\n (...args) => {\n console.warn(\n `[zustand persist middleware] Unable to update item '${options.name}', the given storage is currently unavailable.`\n );\n set(...args);\n },\n get,\n api\n );\n }\n const setItem = () => {\n const state = options.partialize({ ...get() });\n return storage.setItem(options.name, {\n state,\n version: options.version\n });\n };\n const savedSetState = api.setState;\n api.setState = (state, replace) => {\n savedSetState(state, replace);\n void setItem();\n };\n const configResult = config(\n (...args) => {\n set(...args);\n void setItem();\n },\n get,\n api\n );\n api.getInitialState = () => configResult;\n let stateFromStorage;\n const hydrate = () => {\n var _a, _b;\n if (!storage) return;\n hasHydrated = false;\n hydrationListeners.forEach((cb) => {\n var _a2;\n return cb((_a2 = get()) != null ? _a2 : configResult);\n });\n const postRehydrationCallback = ((_b = options.onRehydrateStorage) == null ? void 0 : _b.call(options, (_a = get()) != null ? _a : configResult)) || void 0;\n return toThenable(storage.getItem.bind(storage))(options.name).then((deserializedStorageValue) => {\n if (deserializedStorageValue) {\n if (typeof deserializedStorageValue.version === \"number\" && deserializedStorageValue.version !== options.version) {\n if (options.migrate) {\n const migration = options.migrate(\n deserializedStorageValue.state,\n deserializedStorageValue.version\n );\n if (migration instanceof Promise) {\n return migration.then((result) => [true, result]);\n }\n return [true, migration];\n }\n console.error(\n `State loaded from storage couldn't be migrated since no migrate function was provided`\n );\n } else {\n return [false, deserializedStorageValue.state];\n }\n }\n return [false, void 0];\n }).then((migrationResult) => {\n var _a2;\n const [migrated, migratedState] = migrationResult;\n stateFromStorage = options.merge(\n migratedState,\n (_a2 = get()) != null ? _a2 : configResult\n );\n set(stateFromStorage, true);\n if (migrated) {\n return setItem();\n }\n }).then(() => {\n postRehydrationCallback == null ? void 0 : postRehydrationCallback(stateFromStorage, void 0);\n stateFromStorage = get();\n hasHydrated = true;\n finishHydrationListeners.forEach((cb) => cb(stateFromStorage));\n }).catch((e) => {\n postRehydrationCallback == null ? void 0 : postRehydrationCallback(void 0, e);\n });\n };\n api.persist = {\n setOptions: (newOptions) => {\n options = {\n ...options,\n ...newOptions\n };\n if (newOptions.storage) {\n storage = newOptions.storage;\n }\n },\n clearStorage: () => {\n storage == null ? void 0 : storage.removeItem(options.name);\n },\n getOptions: () => options,\n rehydrate: () => hydrate(),\n hasHydrated: () => hasHydrated,\n onHydrate: (cb) => {\n hydrationListeners.add(cb);\n return () => {\n hydrationListeners.delete(cb);\n };\n },\n onFinishHydration: (cb) => {\n finishHydrationListeners.add(cb);\n return () => {\n finishHydrationListeners.delete(cb);\n };\n }\n };\n if (!options.skipHydration) {\n hydrate();\n }\n return stateFromStorage || configResult;\n};\nconst persist = persistImpl;\n\nexport { combine, createJSONStorage, devtools, persist, redux, subscribeWithSelector };\n","import { create, type Mutate, type StoreApi } from \"zustand\";\nimport { createJSONStorage, persist } from \"zustand/middleware\";\n\nexport interface AuthState<ProviderData = unknown> {\n isAuthenticated: boolean;\n isPending: boolean;\n profile: UserProfile | null;\n providerData: ProviderData | null;\n setAuthenticationPending: () => void;\n setLoggedOut: () => void;\n setLoggedIn: ({\n profile,\n providerData,\n }: {\n profile: UserProfile;\n providerData: unknown;\n }) => void;\n}\n\nexport type StoreWithPersist<T> = Mutate<\n StoreApi<T>,\n [[\"zustand/persist\", unknown]]\n>;\n\nconst withStorageDOMEvents = <T>(store: StoreWithPersist<T>) => {\n const storageEventCallback = (e: StorageEvent) => {\n if (e.key === store.persist.getOptions().name && e.newValue) {\n void store.persist.rehydrate();\n }\n };\n\n window.addEventListener(\"storage\", storageEventCallback);\n\n return () => {\n window.removeEventListener(\"storage\", storageEventCallback);\n };\n};\n\nexport const useAuthState = create<AuthState>()(\n persist(\n (set) => ({\n isAuthenticated: false,\n isPending: true,\n profile: null,\n providerData: null,\n setAuthenticationPending: () =>\n set(() => ({\n isAuthenticated: false,\n isPending: false,\n profile: null,\n providerData: null,\n })),\n setLoggedOut: () =>\n set(() => ({\n isAuthenticated: false,\n isPending: false,\n profile: null,\n providerData: null,\n })),\n setLoggedIn: ({\n profile,\n providerData,\n }: {\n profile: UserProfile;\n providerData: unknown;\n }) =>\n set(() => ({\n isAuthenticated: true,\n isPending: false,\n profile,\n providerData,\n })),\n }),\n {\n merge: (persistedState, currentState) => {\n return {\n ...currentState,\n isPending: false,\n ...(typeof persistedState === \"object\" ? persistedState : {}),\n };\n },\n name: \"auth-state\",\n storage: createJSONStorage(() => localStorage),\n },\n ),\n);\n\nif (typeof window !== \"undefined\") {\n withStorageDOMEvents(useAuthState);\n}\n\nexport interface UserProfile {\n sub: string;\n email: string | undefined;\n emailVerified: boolean;\n name: string | undefined;\n pictureUrl: string | undefined;\n [key: string]: string | boolean | undefined;\n}\n","import { useZudoku } from \"../components/context/ZudokuContext.js\";\nimport { useAuthState } from \"./state.js\";\n\nexport type UseAuthReturn = ReturnType<typeof useAuth>;\n\nexport const useAuth = () => {\n const { authentication } = useZudoku();\n const authState = useAuthState();\n const isAuthEnabled = typeof authentication !== \"undefined\";\n\n return {\n isAuthEnabled,\n ...authState,\n\n login: async () => {\n if (!isAuthEnabled) {\n throw new Error(\"Authentication is not enabled.\");\n }\n // TODO: Should handle errors/state\n await authentication.signIn({\n redirectTo: window.location.href,\n });\n },\n\n logout: async () => {\n if (!isAuthEnabled) {\n throw new Error(\"Authentication is not enabled.\");\n }\n // TODO: Should handle errors/state\n await authentication.signOut();\n\n // Redirect to home\n window.location.href = \"/\";\n },\n\n signup: async () => {\n if (!isAuthEnabled) {\n throw new Error(\"Authentication is not enabled.\");\n }\n await authentication.signUp({\n redirectTo: window.location.href,\n });\n },\n };\n};\n"],"names":["createStoreImpl","createState","state","listeners","setState","partial","replace","nextState","previousState","listener","getState","api","initialState","createStore","identity","arg","useStore","selector","slice","React","createImpl","useBoundStore","create","createJSONStorage","getStorage","options","storage","name","_a","parse","str2","str","newValue","toThenable","fn","input","result","onFulfilled","_onRejected","_onFulfilled","onRejected","persistImpl","config","baseOptions","set","get","persistedState","currentState","hasHydrated","hydrationListeners","finishHydrationListeners","args","setItem","savedSetState","configResult","stateFromStorage","hydrate","_b","cb","_a2","postRehydrationCallback","deserializedStorageValue","migration","migrationResult","migrated","migratedState","e","newOptions","persist","withStorageDOMEvents","store","storageEventCallback","useAuthState","profile","providerData","useAuth","authentication","useZudoku","authState","isAuthEnabled"],"mappings":"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","x_google_ignoreList":[0,1,2]}
|
|
1
|
+
{"version":3,"file":"hook-CGx8MPrU.js","sources":["../../../node_modules/.pnpm/zustand@5.0.6_@types+react@19.1.8_react@19.1.0_use-sync-external-store@1.5.0_react@19.1.0_/node_modules/zustand/esm/vanilla.mjs","../../../node_modules/.pnpm/zustand@5.0.6_@types+react@19.1.8_react@19.1.0_use-sync-external-store@1.5.0_react@19.1.0_/node_modules/zustand/esm/react.mjs","../../../node_modules/.pnpm/zustand@5.0.6_@types+react@19.1.8_react@19.1.0_use-sync-external-store@1.5.0_react@19.1.0_/node_modules/zustand/esm/middleware.mjs","../src/lib/authentication/state.ts","../src/lib/authentication/hook.ts"],"sourcesContent":["const createStoreImpl = (createState) => {\n let state;\n const listeners = /* @__PURE__ */ new Set();\n const setState = (partial, replace) => {\n const nextState = typeof partial === \"function\" ? partial(state) : partial;\n if (!Object.is(nextState, state)) {\n const previousState = state;\n state = (replace != null ? replace : typeof nextState !== \"object\" || nextState === null) ? nextState : Object.assign({}, state, nextState);\n listeners.forEach((listener) => listener(state, previousState));\n }\n };\n const getState = () => state;\n const getInitialState = () => initialState;\n const subscribe = (listener) => {\n listeners.add(listener);\n return () => listeners.delete(listener);\n };\n const api = { setState, getState, getInitialState, subscribe };\n const initialState = state = createState(setState, getState, api);\n return api;\n};\nconst createStore = (createState) => createState ? createStoreImpl(createState) : createStoreImpl;\n\nexport { createStore };\n","import React from 'react';\nimport { createStore } from 'zustand/vanilla';\n\nconst identity = (arg) => arg;\nfunction useStore(api, selector = identity) {\n const slice = React.useSyncExternalStore(\n api.subscribe,\n () => selector(api.getState()),\n () => selector(api.getInitialState())\n );\n React.useDebugValue(slice);\n return slice;\n}\nconst createImpl = (createState) => {\n const api = createStore(createState);\n const useBoundStore = (selector) => useStore(api, selector);\n Object.assign(useBoundStore, api);\n return useBoundStore;\n};\nconst create = (createState) => createState ? createImpl(createState) : createImpl;\n\nexport { create, useStore };\n","const reduxImpl = (reducer, initial) => (set, _get, api) => {\n api.dispatch = (action) => {\n set((state) => reducer(state, action), false, action);\n return action;\n };\n api.dispatchFromDevtools = true;\n return { dispatch: (...args) => api.dispatch(...args), ...initial };\n};\nconst redux = reduxImpl;\n\nconst trackedConnections = /* @__PURE__ */ new Map();\nconst getTrackedConnectionState = (name) => {\n const api = trackedConnections.get(name);\n if (!api) return {};\n return Object.fromEntries(\n Object.entries(api.stores).map(([key, api2]) => [key, api2.getState()])\n );\n};\nconst extractConnectionInformation = (store, extensionConnector, options) => {\n if (store === void 0) {\n return {\n type: \"untracked\",\n connection: extensionConnector.connect(options)\n };\n }\n const existingConnection = trackedConnections.get(options.name);\n if (existingConnection) {\n return { type: \"tracked\", store, ...existingConnection };\n }\n const newConnection = {\n connection: extensionConnector.connect(options),\n stores: {}\n };\n trackedConnections.set(options.name, newConnection);\n return { type: \"tracked\", store, ...newConnection };\n};\nconst removeStoreFromTrackedConnections = (name, store) => {\n if (store === void 0) return;\n const connectionInfo = trackedConnections.get(name);\n if (!connectionInfo) return;\n delete connectionInfo.stores[store];\n if (Object.keys(connectionInfo.stores).length === 0) {\n trackedConnections.delete(name);\n }\n};\nconst findCallerName = (stack) => {\n var _a, _b;\n if (!stack) return void 0;\n const traceLines = stack.split(\"\\n\");\n const apiSetStateLineIndex = traceLines.findIndex(\n (traceLine) => traceLine.includes(\"api.setState\")\n );\n if (apiSetStateLineIndex < 0) return void 0;\n const callerLine = ((_a = traceLines[apiSetStateLineIndex + 1]) == null ? void 0 : _a.trim()) || \"\";\n return (_b = /.+ (.+) .+/.exec(callerLine)) == null ? void 0 : _b[1];\n};\nconst devtoolsImpl = (fn, devtoolsOptions = {}) => (set, get, api) => {\n const { enabled, anonymousActionType, store, ...options } = devtoolsOptions;\n let extensionConnector;\n try {\n extensionConnector = (enabled != null ? enabled : (import.meta.env ? import.meta.env.MODE : void 0) !== \"production\") && window.__REDUX_DEVTOOLS_EXTENSION__;\n } catch (e) {\n }\n if (!extensionConnector) {\n return fn(set, get, api);\n }\n const { connection, ...connectionInformation } = extractConnectionInformation(store, extensionConnector, options);\n let isRecording = true;\n api.setState = (state, replace, nameOrAction) => {\n const r = set(state, replace);\n if (!isRecording) return r;\n const action = nameOrAction === void 0 ? {\n type: anonymousActionType || findCallerName(new Error().stack) || \"anonymous\"\n } : typeof nameOrAction === \"string\" ? { type: nameOrAction } : nameOrAction;\n if (store === void 0) {\n connection == null ? void 0 : connection.send(action, get());\n return r;\n }\n connection == null ? void 0 : connection.send(\n {\n ...action,\n type: `${store}/${action.type}`\n },\n {\n ...getTrackedConnectionState(options.name),\n [store]: api.getState()\n }\n );\n return r;\n };\n api.devtools = {\n cleanup: () => {\n if (connection && typeof connection.unsubscribe === \"function\") {\n connection.unsubscribe();\n }\n removeStoreFromTrackedConnections(options.name, store);\n }\n };\n const setStateFromDevtools = (...a) => {\n const originalIsRecording = isRecording;\n isRecording = false;\n set(...a);\n isRecording = originalIsRecording;\n };\n const initialState = fn(api.setState, get, api);\n if (connectionInformation.type === \"untracked\") {\n connection == null ? void 0 : connection.init(initialState);\n } else {\n connectionInformation.stores[connectionInformation.store] = api;\n connection == null ? void 0 : connection.init(\n Object.fromEntries(\n Object.entries(connectionInformation.stores).map(([key, store2]) => [\n key,\n key === connectionInformation.store ? initialState : store2.getState()\n ])\n )\n );\n }\n if (api.dispatchFromDevtools && typeof api.dispatch === \"function\") {\n let didWarnAboutReservedActionType = false;\n const originalDispatch = api.dispatch;\n api.dispatch = (...args) => {\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\" && args[0].type === \"__setState\" && !didWarnAboutReservedActionType) {\n console.warn(\n '[zustand devtools middleware] \"__setState\" action type is reserved to set state from the devtools. Avoid using it.'\n );\n didWarnAboutReservedActionType = true;\n }\n originalDispatch(...args);\n };\n }\n connection.subscribe((message) => {\n var _a;\n switch (message.type) {\n case \"ACTION\":\n if (typeof message.payload !== \"string\") {\n console.error(\n \"[zustand devtools middleware] Unsupported action format\"\n );\n return;\n }\n return parseJsonThen(\n message.payload,\n (action) => {\n if (action.type === \"__setState\") {\n if (store === void 0) {\n setStateFromDevtools(action.state);\n return;\n }\n if (Object.keys(action.state).length !== 1) {\n console.error(\n `\n [zustand devtools middleware] Unsupported __setState action format.\n When using 'store' option in devtools(), the 'state' should have only one key, which is a value of 'store' that was passed in devtools(),\n and value of this only key should be a state object. Example: { \"type\": \"__setState\", \"state\": { \"abc123Store\": { \"foo\": \"bar\" } } }\n `\n );\n }\n const stateFromDevtools = action.state[store];\n if (stateFromDevtools === void 0 || stateFromDevtools === null) {\n return;\n }\n if (JSON.stringify(api.getState()) !== JSON.stringify(stateFromDevtools)) {\n setStateFromDevtools(stateFromDevtools);\n }\n return;\n }\n if (!api.dispatchFromDevtools) return;\n if (typeof api.dispatch !== \"function\") return;\n api.dispatch(action);\n }\n );\n case \"DISPATCH\":\n switch (message.payload.type) {\n case \"RESET\":\n setStateFromDevtools(initialState);\n if (store === void 0) {\n return connection == null ? void 0 : connection.init(api.getState());\n }\n return connection == null ? void 0 : connection.init(getTrackedConnectionState(options.name));\n case \"COMMIT\":\n if (store === void 0) {\n connection == null ? void 0 : connection.init(api.getState());\n return;\n }\n return connection == null ? void 0 : connection.init(getTrackedConnectionState(options.name));\n case \"ROLLBACK\":\n return parseJsonThen(message.state, (state) => {\n if (store === void 0) {\n setStateFromDevtools(state);\n connection == null ? void 0 : connection.init(api.getState());\n return;\n }\n setStateFromDevtools(state[store]);\n connection == null ? void 0 : connection.init(getTrackedConnectionState(options.name));\n });\n case \"JUMP_TO_STATE\":\n case \"JUMP_TO_ACTION\":\n return parseJsonThen(message.state, (state) => {\n if (store === void 0) {\n setStateFromDevtools(state);\n return;\n }\n if (JSON.stringify(api.getState()) !== JSON.stringify(state[store])) {\n setStateFromDevtools(state[store]);\n }\n });\n case \"IMPORT_STATE\": {\n const { nextLiftedState } = message.payload;\n const lastComputedState = (_a = nextLiftedState.computedStates.slice(-1)[0]) == null ? void 0 : _a.state;\n if (!lastComputedState) return;\n if (store === void 0) {\n setStateFromDevtools(lastComputedState);\n } else {\n setStateFromDevtools(lastComputedState[store]);\n }\n connection == null ? void 0 : connection.send(\n null,\n // FIXME no-any\n nextLiftedState\n );\n return;\n }\n case \"PAUSE_RECORDING\":\n return isRecording = !isRecording;\n }\n return;\n }\n });\n return initialState;\n};\nconst devtools = devtoolsImpl;\nconst parseJsonThen = (stringified, fn) => {\n let parsed;\n try {\n parsed = JSON.parse(stringified);\n } catch (e) {\n console.error(\n \"[zustand devtools middleware] Could not parse the received json\",\n e\n );\n }\n if (parsed !== void 0) fn(parsed);\n};\n\nconst subscribeWithSelectorImpl = (fn) => (set, get, api) => {\n const origSubscribe = api.subscribe;\n api.subscribe = (selector, optListener, options) => {\n let listener = selector;\n if (optListener) {\n const equalityFn = (options == null ? void 0 : options.equalityFn) || Object.is;\n let currentSlice = selector(api.getState());\n listener = (state) => {\n const nextSlice = selector(state);\n if (!equalityFn(currentSlice, nextSlice)) {\n const previousSlice = currentSlice;\n optListener(currentSlice = nextSlice, previousSlice);\n }\n };\n if (options == null ? void 0 : options.fireImmediately) {\n optListener(currentSlice, currentSlice);\n }\n }\n return origSubscribe(listener);\n };\n const initialState = fn(set, get, api);\n return initialState;\n};\nconst subscribeWithSelector = subscribeWithSelectorImpl;\n\nfunction combine(initialState, create) {\n return (...args) => Object.assign({}, initialState, create(...args));\n}\n\nfunction createJSONStorage(getStorage, options) {\n let storage;\n try {\n storage = getStorage();\n } catch (e) {\n return;\n }\n const persistStorage = {\n getItem: (name) => {\n var _a;\n const parse = (str2) => {\n if (str2 === null) {\n return null;\n }\n return JSON.parse(str2, options == null ? void 0 : options.reviver);\n };\n const str = (_a = storage.getItem(name)) != null ? _a : null;\n if (str instanceof Promise) {\n return str.then(parse);\n }\n return parse(str);\n },\n setItem: (name, newValue) => storage.setItem(name, JSON.stringify(newValue, options == null ? void 0 : options.replacer)),\n removeItem: (name) => storage.removeItem(name)\n };\n return persistStorage;\n}\nconst toThenable = (fn) => (input) => {\n try {\n const result = fn(input);\n if (result instanceof Promise) {\n return result;\n }\n return {\n then(onFulfilled) {\n return toThenable(onFulfilled)(result);\n },\n catch(_onRejected) {\n return this;\n }\n };\n } catch (e) {\n return {\n then(_onFulfilled) {\n return this;\n },\n catch(onRejected) {\n return toThenable(onRejected)(e);\n }\n };\n }\n};\nconst persistImpl = (config, baseOptions) => (set, get, api) => {\n let options = {\n storage: createJSONStorage(() => localStorage),\n partialize: (state) => state,\n version: 0,\n merge: (persistedState, currentState) => ({\n ...currentState,\n ...persistedState\n }),\n ...baseOptions\n };\n let hasHydrated = false;\n const hydrationListeners = /* @__PURE__ */ new Set();\n const finishHydrationListeners = /* @__PURE__ */ new Set();\n let storage = options.storage;\n if (!storage) {\n return config(\n (...args) => {\n console.warn(\n `[zustand persist middleware] Unable to update item '${options.name}', the given storage is currently unavailable.`\n );\n set(...args);\n },\n get,\n api\n );\n }\n const setItem = () => {\n const state = options.partialize({ ...get() });\n return storage.setItem(options.name, {\n state,\n version: options.version\n });\n };\n const savedSetState = api.setState;\n api.setState = (state, replace) => {\n savedSetState(state, replace);\n void setItem();\n };\n const configResult = config(\n (...args) => {\n set(...args);\n void setItem();\n },\n get,\n api\n );\n api.getInitialState = () => configResult;\n let stateFromStorage;\n const hydrate = () => {\n var _a, _b;\n if (!storage) return;\n hasHydrated = false;\n hydrationListeners.forEach((cb) => {\n var _a2;\n return cb((_a2 = get()) != null ? _a2 : configResult);\n });\n const postRehydrationCallback = ((_b = options.onRehydrateStorage) == null ? void 0 : _b.call(options, (_a = get()) != null ? _a : configResult)) || void 0;\n return toThenable(storage.getItem.bind(storage))(options.name).then((deserializedStorageValue) => {\n if (deserializedStorageValue) {\n if (typeof deserializedStorageValue.version === \"number\" && deserializedStorageValue.version !== options.version) {\n if (options.migrate) {\n const migration = options.migrate(\n deserializedStorageValue.state,\n deserializedStorageValue.version\n );\n if (migration instanceof Promise) {\n return migration.then((result) => [true, result]);\n }\n return [true, migration];\n }\n console.error(\n `State loaded from storage couldn't be migrated since no migrate function was provided`\n );\n } else {\n return [false, deserializedStorageValue.state];\n }\n }\n return [false, void 0];\n }).then((migrationResult) => {\n var _a2;\n const [migrated, migratedState] = migrationResult;\n stateFromStorage = options.merge(\n migratedState,\n (_a2 = get()) != null ? _a2 : configResult\n );\n set(stateFromStorage, true);\n if (migrated) {\n return setItem();\n }\n }).then(() => {\n postRehydrationCallback == null ? void 0 : postRehydrationCallback(stateFromStorage, void 0);\n stateFromStorage = get();\n hasHydrated = true;\n finishHydrationListeners.forEach((cb) => cb(stateFromStorage));\n }).catch((e) => {\n postRehydrationCallback == null ? void 0 : postRehydrationCallback(void 0, e);\n });\n };\n api.persist = {\n setOptions: (newOptions) => {\n options = {\n ...options,\n ...newOptions\n };\n if (newOptions.storage) {\n storage = newOptions.storage;\n }\n },\n clearStorage: () => {\n storage == null ? void 0 : storage.removeItem(options.name);\n },\n getOptions: () => options,\n rehydrate: () => hydrate(),\n hasHydrated: () => hasHydrated,\n onHydrate: (cb) => {\n hydrationListeners.add(cb);\n return () => {\n hydrationListeners.delete(cb);\n };\n },\n onFinishHydration: (cb) => {\n finishHydrationListeners.add(cb);\n return () => {\n finishHydrationListeners.delete(cb);\n };\n }\n };\n if (!options.skipHydration) {\n hydrate();\n }\n return stateFromStorage || configResult;\n};\nconst persist = persistImpl;\n\nexport { combine, createJSONStorage, devtools, persist, redux, subscribeWithSelector };\n","import { create, type Mutate, type StoreApi } from \"zustand\";\nimport { createJSONStorage, persist } from \"zustand/middleware\";\n\nexport interface AuthState<ProviderData = unknown> {\n isAuthenticated: boolean;\n isPending: boolean;\n profile: UserProfile | null;\n providerData: ProviderData | null;\n setAuthenticationPending: () => void;\n setLoggedOut: () => void;\n setLoggedIn: ({\n profile,\n providerData,\n }: {\n profile: UserProfile;\n providerData: unknown;\n }) => void;\n}\n\nexport type StoreWithPersist<T> = Mutate<\n StoreApi<T>,\n [[\"zustand/persist\", unknown]]\n>;\n\nconst withStorageDOMEvents = <T>(store: StoreWithPersist<T>) => {\n const storageEventCallback = (e: StorageEvent) => {\n if (e.key === store.persist.getOptions().name && e.newValue) {\n void store.persist.rehydrate();\n }\n };\n\n window.addEventListener(\"storage\", storageEventCallback);\n\n return () => {\n window.removeEventListener(\"storage\", storageEventCallback);\n };\n};\n\nexport const useAuthState = create<AuthState>()(\n persist(\n (set) => ({\n isAuthenticated: false,\n isPending: true,\n profile: null,\n providerData: null,\n setAuthenticationPending: () =>\n set(() => ({\n isAuthenticated: false,\n isPending: false,\n profile: null,\n providerData: null,\n })),\n setLoggedOut: () =>\n set(() => ({\n isAuthenticated: false,\n isPending: false,\n profile: null,\n providerData: null,\n })),\n setLoggedIn: ({\n profile,\n providerData,\n }: {\n profile: UserProfile;\n providerData: unknown;\n }) =>\n set(() => ({\n isAuthenticated: true,\n isPending: false,\n profile,\n providerData,\n })),\n }),\n {\n merge: (persistedState, currentState) => {\n return {\n ...currentState,\n isPending: false,\n ...(typeof persistedState === \"object\" ? persistedState : {}),\n };\n },\n name: \"auth-state\",\n storage: createJSONStorage(() => localStorage),\n },\n ),\n);\n\nif (typeof window !== \"undefined\") {\n withStorageDOMEvents(useAuthState);\n}\n\nexport interface UserProfile {\n sub: string;\n email: string | undefined;\n emailVerified: boolean;\n name: string | undefined;\n pictureUrl: string | undefined;\n [key: string]: string | boolean | undefined;\n}\n","import { useZudoku } from \"../components/context/ZudokuContext.js\";\nimport { useAuthState } from \"./state.js\";\n\nexport type UseAuthReturn = ReturnType<typeof useAuth>;\n\nexport const useAuth = () => {\n const { authentication } = useZudoku();\n const authState = useAuthState();\n const isAuthEnabled = typeof authentication !== \"undefined\";\n\n return {\n isAuthEnabled,\n ...authState,\n\n login: async () => {\n if (!isAuthEnabled) {\n throw new Error(\"Authentication is not enabled.\");\n }\n // TODO: Should handle errors/state\n await authentication.signIn({\n redirectTo: window.location.href,\n });\n },\n\n logout: async () => {\n if (!isAuthEnabled) {\n throw new Error(\"Authentication is not enabled.\");\n }\n // TODO: Should handle errors/state\n await authentication.signOut();\n\n // Redirect to home\n window.location.href = \"/\";\n },\n\n signup: async () => {\n if (!isAuthEnabled) {\n throw new Error(\"Authentication is not enabled.\");\n }\n await authentication.signUp({\n redirectTo: window.location.href,\n });\n },\n };\n};\n"],"names":["createStoreImpl","createState","state","listeners","setState","partial","replace","nextState","previousState","listener","getState","api","initialState","createStore","identity","arg","useStore","selector","slice","React","createImpl","useBoundStore","create","createJSONStorage","getStorage","options","storage","name","_a","parse","str2","str","newValue","toThenable","fn","input","result","onFulfilled","_onRejected","_onFulfilled","onRejected","persistImpl","config","baseOptions","set","get","persistedState","currentState","hasHydrated","hydrationListeners","finishHydrationListeners","args","setItem","savedSetState","configResult","stateFromStorage","hydrate","_b","cb","_a2","postRehydrationCallback","deserializedStorageValue","migration","migrationResult","migrated","migratedState","e","newOptions","persist","withStorageDOMEvents","store","storageEventCallback","useAuthState","profile","providerData","useAuth","authentication","useZudoku","authState","isAuthEnabled"],"mappings":"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","x_google_ignoreList":[0,1,2]}
|
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
import { B as Rt, a as It, H as Me, R as tn } from "./RouteGuard-
|
|
1
|
+
import { B as Rt, a as It, H as Me, R as tn } from "./RouteGuard-CSi9-hSR.js";
|
|
2
2
|
import { z as Dt, M as rn, J as nn, u as on } from "./useExposedProps-DUoV7MCU.js";
|
|
3
3
|
import { R as sn, S as an, c as we, e as Fe, f as cn, L as qe, O as Mt } from "./chunk-QMGIS6GS-CdEm9pzB.js";
|
|
4
|
-
import { a as se, u as un } from "./hook-
|
|
5
|
-
import { h as ln, E as Ft, a as A, A as dn, i as fn, s as hn, N as Je, j as pn, T as qt, C as mn, H as gn, k as vn, l as yn, m as xn, V as _n, R as bn, M as wn } from "./Slot-
|
|
4
|
+
import { a as se, u as un } from "./hook-CGx8MPrU.js";
|
|
5
|
+
import { h as ln, E as Ft, a as A, A as dn, i as fn, s as hn, N as Je, j as pn, T as qt, C as mn, H as gn, k as vn, l as yn, m as xn, V as _n, R as bn, M as wn } from "./Slot-BFCJzl5J.js";
|
|
6
6
|
import { j as i } from "./jsx-runtime-C5mzlN2N.js";
|
|
7
7
|
import { Button as Ut } from "./ui/Button.js";
|
|
8
8
|
import { Callout as jn } from "./ui/Callout.js";
|
|
9
|
-
import { S as Lt, m as Qt, Q as kn, n as I, o as Xe, p as et, f as L, q as zn, r as $n, v as Pn, w as En, x as tt, y as rt, z as Sn, h as nt, A as ot, B as Zn, D as Tn, e as Bt, E as Kt, i as Cn, c as M, F as Ht, G as Wt, j as te, H as On, b as Nn, N as An, Z as Rn, d as In, C as Dn } from "./ZudokuContext-
|
|
9
|
+
import { S as Lt, m as Qt, Q as kn, n as I, o as Xe, p as et, f as L, q as zn, r as $n, v as Pn, w as En, x as tt, y as rt, z as Sn, h as nt, A as ot, B as Zn, D as Tn, e as Bt, E as Kt, i as Cn, c as M, F as Ht, G as Wt, j as te, H as On, b as Nn, N as An, Z as Rn, d as In, C as Dn } from "./ZudokuContext-mDDq1hft.js";
|
|
10
10
|
import * as K from "react";
|
|
11
|
-
import { createContext as Ue, StrictMode as Vt,
|
|
11
|
+
import { createContext as Ue, StrictMode as Vt, useEffect as F, useRef as H, useState as J, useCallback as B, Suspense as Le, Fragment as Mn, memo as Yt, Component as Fn, createElement as st, useMemo as Ee, useContext as qn } from "react";
|
|
12
12
|
import * as Un from "react-dom";
|
|
13
13
|
import { CircleFadingArrowUpIcon as Ln, LoaderCircleIcon as Qn, ExternalLink as Bn, CircleXIcon as Kn, ChevronRightIcon as Hn, SearchIcon as Wn, SunIcon as Vn, MoonIcon as Yn, MenuIcon as Gn, PanelLeftIcon as Jn } from "lucide-react";
|
|
14
14
|
import { C as re } from "./ClientOnly-E7hGysn1.js";
|
|
@@ -2593,7 +2593,9 @@ const hc = Qa({
|
|
|
2593
2593
|
return s.json();
|
|
2594
2594
|
}).then((s) => hc.parse(s))
|
|
2595
2595
|
});
|
|
2596
|
-
if (
|
|
2596
|
+
if (F(() => {
|
|
2597
|
+
n.data?.status === "success" && n.data.buildId && (document.cookie = `zuplo-build=${n.data.buildId}; path=/; max-age=300; secure; SameSite=None`);
|
|
2598
|
+
}, [n.data]), n.isError || !n.data || n.data.buildId === e)
|
|
2597
2599
|
return null;
|
|
2598
2600
|
const o = n.data.status === "success";
|
|
2599
2601
|
return /* @__PURE__ */ i.jsxs("div", { className: "fixed flex flex-col gap-3 p-4 rounded-xl w-96 border z-20 bg-background left-0 right-0 top-4 mx-auto shadow-lg", children: [
|
|
@@ -2634,7 +2636,7 @@ const hc = Qa({
|
|
|
2634
2636
|
alt: e
|
|
2635
2637
|
}
|
|
2636
2638
|
) : e, vc = (e) => /^https?:/.test(e), yc = () => {
|
|
2637
|
-
const { site: e } =
|
|
2639
|
+
const { site: e } = au(), t = e?.footer;
|
|
2638
2640
|
return t ? /* @__PURE__ */ i.jsx("footer", { className: "border-t bg-background", children: /* @__PURE__ */ i.jsxs("div", { className: "mx-auto max-w-screen-2xl px-4 lg:px-8 py-8 pt-20", children: [
|
|
2639
2641
|
/* @__PURE__ */ i.jsxs(
|
|
2640
2642
|
"div",
|
|
@@ -3461,31 +3463,28 @@ const Pr = ({ className: e }) => {
|
|
|
3461
3463
|
/* @__PURE__ */ i.jsxs("div", { className: N(p, "relative"), children: [
|
|
3462
3464
|
/* @__PURE__ */ i.jsx($r, {}),
|
|
3463
3465
|
/* @__PURE__ */ i.jsxs("div", { className: "max-w-screen-2xl mx-auto flex items-center justify-between h-(--top-header-height) px-4 lg:px-8 border-transparent", children: [
|
|
3464
|
-
/* @__PURE__ */ i.jsx("div", { className: "flex", children: /* @__PURE__ */ i.jsx(qe, { to: a?.logo?.href ?? "/", children: /* @__PURE__ */ i.
|
|
3465
|
-
|
|
3466
|
-
|
|
3467
|
-
|
|
3468
|
-
|
|
3469
|
-
|
|
3470
|
-
|
|
3471
|
-
|
|
3472
|
-
|
|
3473
|
-
|
|
3474
|
-
|
|
3475
|
-
|
|
3476
|
-
|
|
3477
|
-
|
|
3478
|
-
|
|
3479
|
-
|
|
3480
|
-
|
|
3481
|
-
|
|
3482
|
-
|
|
3483
|
-
|
|
3484
|
-
|
|
3485
|
-
|
|
3486
|
-
] }),
|
|
3487
|
-
/* @__PURE__ */ i.jsx("span", { className: "font-semibold text-2xl", children: a?.title })
|
|
3488
|
-
] }) }) }),
|
|
3466
|
+
/* @__PURE__ */ i.jsx("div", { className: "flex", children: /* @__PURE__ */ i.jsx(qe, { to: a?.logo?.href ?? "/", children: /* @__PURE__ */ i.jsx("div", { className: "flex items-center gap-3.5", children: a?.logo ? /* @__PURE__ */ i.jsxs(i.Fragment, { children: [
|
|
3467
|
+
/* @__PURE__ */ i.jsx(
|
|
3468
|
+
"img",
|
|
3469
|
+
{
|
|
3470
|
+
src: v,
|
|
3471
|
+
alt: a.logo.alt ?? a.title,
|
|
3472
|
+
style: { width: a.logo.width },
|
|
3473
|
+
className: "max-h-(--top-header-height) dark:hidden",
|
|
3474
|
+
loading: "lazy"
|
|
3475
|
+
}
|
|
3476
|
+
),
|
|
3477
|
+
/* @__PURE__ */ i.jsx(
|
|
3478
|
+
"img",
|
|
3479
|
+
{
|
|
3480
|
+
src: m,
|
|
3481
|
+
alt: a.logo.alt ?? a.title,
|
|
3482
|
+
style: { width: a.logo.width },
|
|
3483
|
+
className: "max-h-(--top-header-height) hidden dark:block",
|
|
3484
|
+
loading: "lazy"
|
|
3485
|
+
}
|
|
3486
|
+
)
|
|
3487
|
+
] }) : /* @__PURE__ */ i.jsx("span", { className: "font-semibold text-2xl", children: a?.title }) }) }) }),
|
|
3489
3488
|
/* @__PURE__ */ i.jsx("div", { className: "absolute inset-x-0 justify-center items-center hidden lg:flex w-full pointer-events-none", children: /* @__PURE__ */ i.jsx(Pr, { className: "pointer-events-auto" }) }),
|
|
3490
3489
|
/* @__PURE__ */ i.jsxs("div", { className: "flex items-center gap-8", children: [
|
|
3491
3490
|
/* @__PURE__ */ i.jsx(Ac, {}),
|
|
@@ -3702,25 +3701,10 @@ const qc = ({
|
|
|
3702
3701
|
}
|
|
3703
3702
|
);
|
|
3704
3703
|
}, Lc = () => /* @__PURE__ */ i.jsx("main", { className: "col-span-full row-span-full grid place-items-center", children: /* @__PURE__ */ i.jsx(Gt, {}) }), Qc = ({ children: e }) => {
|
|
3705
|
-
const {
|
|
3704
|
+
const { authentication: t } = M();
|
|
3706
3705
|
return pn(), mc(), F(() => {
|
|
3707
|
-
|
|
3708
|
-
}, [
|
|
3709
|
-
/* @__PURE__ */ i.jsxs(Me, { titleTemplate: t?.title, children: [
|
|
3710
|
-
n.canonicalUrlOrigin && /* @__PURE__ */ i.jsx(
|
|
3711
|
-
"link",
|
|
3712
|
-
{
|
|
3713
|
-
rel: "canonical",
|
|
3714
|
-
href: te(
|
|
3715
|
-
n.canonicalUrlOrigin,
|
|
3716
|
-
n.basePath,
|
|
3717
|
-
o.pathname
|
|
3718
|
-
)
|
|
3719
|
-
}
|
|
3720
|
-
),
|
|
3721
|
-
t?.description && /* @__PURE__ */ i.jsx("meta", { name: "description", content: t.description }),
|
|
3722
|
-
t?.favicon && /* @__PURE__ */ i.jsx("link", { rel: "icon", href: t.favicon })
|
|
3723
|
-
] }),
|
|
3706
|
+
t?.onPageLoad?.();
|
|
3707
|
+
}, [t]), /* @__PURE__ */ i.jsxs(i.Fragment, { children: [
|
|
3724
3708
|
/* @__PURE__ */ i.jsx(A.Target, { name: "layout-before-head" }),
|
|
3725
3709
|
/* @__PURE__ */ i.jsx(Tr, {}),
|
|
3726
3710
|
/* @__PURE__ */ i.jsx(A.Target, { name: "layout-after-head" }),
|
|
@@ -3737,7 +3721,27 @@ const qc = ({
|
|
|
3737
3721
|
),
|
|
3738
3722
|
/* @__PURE__ */ i.jsx(yc, {})
|
|
3739
3723
|
] });
|
|
3740
|
-
}, Bc = ({
|
|
3724
|
+
}, Bc = ({ children: e }) => {
|
|
3725
|
+
const { meta: t, options: r } = M(), n = we();
|
|
3726
|
+
return /* @__PURE__ */ i.jsxs(i.Fragment, { children: [
|
|
3727
|
+
/* @__PURE__ */ i.jsxs(Me, { titleTemplate: t?.title, defaultTitle: t?.defaultTitle, children: [
|
|
3728
|
+
r.canonicalUrlOrigin && /* @__PURE__ */ i.jsx(
|
|
3729
|
+
"link",
|
|
3730
|
+
{
|
|
3731
|
+
rel: "canonical",
|
|
3732
|
+
href: te(
|
|
3733
|
+
r.canonicalUrlOrigin,
|
|
3734
|
+
r.basePath,
|
|
3735
|
+
n.pathname
|
|
3736
|
+
)
|
|
3737
|
+
}
|
|
3738
|
+
),
|
|
3739
|
+
t?.description && /* @__PURE__ */ i.jsx("meta", { name: "description", content: t.description }),
|
|
3740
|
+
t?.favicon && /* @__PURE__ */ i.jsx("link", { rel: "icon", href: t.favicon })
|
|
3741
|
+
] }),
|
|
3742
|
+
e
|
|
3743
|
+
] });
|
|
3744
|
+
}, Kc = ({
|
|
3741
3745
|
title: e = "An error occurred",
|
|
3742
3746
|
message: t,
|
|
3743
3747
|
category: r
|
|
@@ -3745,7 +3749,7 @@ const qc = ({
|
|
|
3745
3749
|
r && /* @__PURE__ */ i.jsx(mn, { children: r }),
|
|
3746
3750
|
e && /* @__PURE__ */ i.jsx(gn, { level: 1, className: "flex gap-3.5 items-center", children: e }),
|
|
3747
3751
|
/* @__PURE__ */ i.jsx("p", { children: t })
|
|
3748
|
-
] }),
|
|
3752
|
+
] }), Hc = (e) => {
|
|
3749
3753
|
switch (e) {
|
|
3750
3754
|
case 400:
|
|
3751
3755
|
return {
|
|
@@ -3808,23 +3812,23 @@ const qc = ({
|
|
|
3808
3812
|
message: "Something went wrong while processing your request."
|
|
3809
3813
|
};
|
|
3810
3814
|
}
|
|
3811
|
-
},
|
|
3815
|
+
}, Wc = ({ statusCode: e, message: t }) => {
|
|
3812
3816
|
if (e === 404)
|
|
3813
3817
|
return /* @__PURE__ */ i.jsx(vn, {});
|
|
3814
|
-
const r =
|
|
3818
|
+
const r = Hc(e);
|
|
3815
3819
|
return /* @__PURE__ */ i.jsx(
|
|
3816
|
-
|
|
3820
|
+
Kc,
|
|
3817
3821
|
{
|
|
3818
3822
|
title: r.title,
|
|
3819
3823
|
message: t ?? r.message,
|
|
3820
3824
|
category: e
|
|
3821
3825
|
}
|
|
3822
3826
|
);
|
|
3823
|
-
},
|
|
3827
|
+
}, Vc = Ue(null), Te = {
|
|
3824
3828
|
didCatch: !1,
|
|
3825
3829
|
error: null
|
|
3826
3830
|
};
|
|
3827
|
-
class
|
|
3831
|
+
class Yc extends Fn {
|
|
3828
3832
|
constructor(t) {
|
|
3829
3833
|
super(t), this.resetErrorBoundary = this.resetErrorBoundary.bind(this), this.state = Te;
|
|
3830
3834
|
}
|
|
@@ -3857,7 +3861,7 @@ class Vc extends Fn {
|
|
|
3857
3861
|
} = this.state, {
|
|
3858
3862
|
resetKeys: o
|
|
3859
3863
|
} = this.props;
|
|
3860
|
-
if (n && r.error !== null &&
|
|
3864
|
+
if (n && r.error !== null && Gc(t.resetKeys, o)) {
|
|
3861
3865
|
var s, a;
|
|
3862
3866
|
(s = (a = this.props).onReset) === null || s === void 0 || s.call(a, {
|
|
3863
3867
|
next: o,
|
|
@@ -3891,7 +3895,7 @@ class Vc extends Fn {
|
|
|
3891
3895
|
else
|
|
3892
3896
|
throw a;
|
|
3893
3897
|
}
|
|
3894
|
-
return st(
|
|
3898
|
+
return st(Vc.Provider, {
|
|
3895
3899
|
value: {
|
|
3896
3900
|
didCatch: s,
|
|
3897
3901
|
error: a,
|
|
@@ -3900,11 +3904,11 @@ class Vc extends Fn {
|
|
|
3900
3904
|
}, c);
|
|
3901
3905
|
}
|
|
3902
3906
|
}
|
|
3903
|
-
function
|
|
3907
|
+
function Gc() {
|
|
3904
3908
|
let e = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : [], t = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : [];
|
|
3905
3909
|
return e.length !== t.length || e.some((r, n) => !Object.is(r, t[n]));
|
|
3906
3910
|
}
|
|
3907
|
-
let
|
|
3911
|
+
let Jc = () => ({
|
|
3908
3912
|
emit(e, ...t) {
|
|
3909
3913
|
for (let r = this.events[e] || [], n = 0, o = r.length; n < o; n++)
|
|
3910
3914
|
r[n](...t);
|
|
@@ -3930,8 +3934,8 @@ const Nt = vr([
|
|
|
3930
3934
|
(r) => r.auth.isAuthenticated
|
|
3931
3935
|
])
|
|
3932
3936
|
) : e;
|
|
3933
|
-
}),
|
|
3934
|
-
class
|
|
3937
|
+
}), Xc = (e) => Object.entries(e);
|
|
3938
|
+
class eu {
|
|
3935
3939
|
plugins;
|
|
3936
3940
|
navigation;
|
|
3937
3941
|
meta;
|
|
@@ -3940,7 +3944,7 @@ class Xc {
|
|
|
3940
3944
|
queryClient;
|
|
3941
3945
|
options;
|
|
3942
3946
|
navigationPlugins;
|
|
3943
|
-
emitter =
|
|
3947
|
+
emitter = Jc();
|
|
3944
3948
|
constructor(t, r) {
|
|
3945
3949
|
const o = {
|
|
3946
3950
|
...Object.fromEntries(
|
|
@@ -3953,7 +3957,7 @@ class Xc {
|
|
|
3953
3957
|
...Nt.parse(t.protectedRoutes)
|
|
3954
3958
|
};
|
|
3955
3959
|
this.queryClient = r, this.options = { ...t, protectedRoutes: o }, this.plugins = t.plugins ?? [], this.navigation = t.navigation ?? [], this.navigationPlugins = this.plugins.filter(it), this.authentication = this.plugins.find(eo), this.meta = t.metadata, this.site = t.site, this.plugins.forEach((s) => {
|
|
3956
|
-
to(s) &&
|
|
3960
|
+
to(s) && Xc(s.events).forEach(([a, c]) => {
|
|
3957
3961
|
this.emitter.on(a, c);
|
|
3958
3962
|
});
|
|
3959
3963
|
}), un.subscribe((s, a) => {
|
|
@@ -3980,25 +3984,25 @@ class Xc {
|
|
|
3980
3984
|
(n) => n.getNavigation?.(te(t), this)
|
|
3981
3985
|
)
|
|
3982
3986
|
)).flatMap((n) => n ?? []);
|
|
3983
|
-
getProfileMenuItems = () => this.plugins.filter((r) => Jt(r)).flatMap((r) => r.getProfileMenuItems(this)).sort(
|
|
3987
|
+
getProfileMenuItems = () => this.plugins.filter((r) => Jt(r)).flatMap((r) => r.getProfileMenuItems(this)).sort(tu(["top", "middle", "bottom"])).sort((r) => r.weight ?? 0);
|
|
3984
3988
|
signRequest = async (t) => {
|
|
3985
3989
|
if (!this.authentication)
|
|
3986
3990
|
throw new Error("No authentication provider configured");
|
|
3987
3991
|
return await this.authentication.signRequest(t);
|
|
3988
3992
|
};
|
|
3989
3993
|
}
|
|
3990
|
-
const
|
|
3994
|
+
const tu = (e) => (t, r) => {
|
|
3991
3995
|
const n = e.indexOf(t.category ?? "middle"), o = e.indexOf(r.category ?? "middle");
|
|
3992
3996
|
return n - o;
|
|
3993
3997
|
};
|
|
3994
|
-
function
|
|
3998
|
+
function ru({ error: e, resetErrorBoundary: t }) {
|
|
3995
3999
|
return /* @__PURE__ */ i.jsx(Ft, { error: e });
|
|
3996
4000
|
}
|
|
3997
4001
|
const ge = globalThis;
|
|
3998
4002
|
(!ge.requestIdleCallback || !ge.cancelIdleCallback) && (ge.requestIdleCallback = (e) => setTimeout(e, 1), ge.cancelIdleCallback = clearTimeout);
|
|
3999
4003
|
const Ar = {
|
|
4000
4004
|
Header: Tr
|
|
4001
|
-
},
|
|
4005
|
+
}, nu = Ue(Ar), ou = nu.Provider, su = () => {
|
|
4002
4006
|
const e = we(), t = M(), r = H(void 0);
|
|
4003
4007
|
return F(() => {
|
|
4004
4008
|
t.emitEvent("location", {
|
|
@@ -4006,7 +4010,7 @@ const Ar = {
|
|
|
4006
4010
|
to: e
|
|
4007
4011
|
}), r.current = e;
|
|
4008
4012
|
}, [t, e]), null;
|
|
4009
|
-
},
|
|
4013
|
+
}, iu = ({
|
|
4010
4014
|
children: e,
|
|
4011
4015
|
context: t
|
|
4012
4016
|
}) => (Nn({
|
|
@@ -4034,49 +4038,50 @@ const Rr = Yt(
|
|
|
4034
4038
|
), l = Fe(), v = Bt();
|
|
4035
4039
|
F(() => {
|
|
4036
4040
|
a || c(!0);
|
|
4037
|
-
}, [a, l.location]), At ??= new
|
|
4041
|
+
}, [a, l.location]), At ??= new eu(t, v);
|
|
4038
4042
|
const m = t.plugins?.flatMap(
|
|
4039
4043
|
(p) => so(p) ? p.getHead?.({ location: n }) ?? [] : []
|
|
4040
4044
|
).map((p, d) => /* @__PURE__ */ i.jsx(Me, { children: p }, d));
|
|
4041
4045
|
return /* @__PURE__ */ i.jsxs(i.Fragment, { children: [
|
|
4042
4046
|
m,
|
|
4043
|
-
/* @__PURE__ */ i.jsx(Oe.Provider, { value: f, children: /* @__PURE__ */ i.jsxs(
|
|
4044
|
-
/* @__PURE__ */ i.jsx(
|
|
4045
|
-
/* @__PURE__ */ i.jsx(xn, { slots: t.slots ?? t.UNSAFE_slotlets, children: /* @__PURE__ */ i.jsx(rn, { components: o, children: /* @__PURE__ */ i.jsx(nn, { attribute: "class", disableTransitionOnChange: !0, children: /* @__PURE__ */ i.jsx(
|
|
4047
|
+
/* @__PURE__ */ i.jsx(Oe.Provider, { value: f, children: /* @__PURE__ */ i.jsxs(iu, { context: At, children: [
|
|
4048
|
+
/* @__PURE__ */ i.jsx(su, {}),
|
|
4049
|
+
/* @__PURE__ */ i.jsx(xn, { slots: t.slots ?? t.UNSAFE_slotlets, children: /* @__PURE__ */ i.jsx(rn, { components: o, children: /* @__PURE__ */ i.jsx(nn, { attribute: "class", disableTransitionOnChange: !0, children: /* @__PURE__ */ i.jsx(ou, { value: r, children: /* @__PURE__ */ i.jsx(_n, { children: e ?? /* @__PURE__ */ i.jsx(Mt, {}) }) }) }) }) })
|
|
4046
4050
|
] }) })
|
|
4047
4051
|
] });
|
|
4048
4052
|
}
|
|
4049
4053
|
);
|
|
4050
4054
|
Rr.displayName = "ZudokoInner";
|
|
4051
|
-
const Ir = (e) => /* @__PURE__ */ i.jsx(
|
|
4055
|
+
const Ir = (e) => /* @__PURE__ */ i.jsx(Yc, { FallbackComponent: ru, children: /* @__PURE__ */ i.jsx(Rr, { ...e }) });
|
|
4052
4056
|
Ir.displayName = "Zudoku";
|
|
4053
|
-
const
|
|
4057
|
+
const Eu = Qc, Su = bn, Zu = zo, Tu = Eo, Cu = So, Ou = tn, Nu = Me, Au = Wc, Ru = jn, Iu = wn, Du = Gt, Mu = re, Fu = Ut, qu = qe, Uu = pc, Lu = Ir, Qu = qt, Bu = Bc, Ku = on, au = M, Hu = se, Wu = In, Vu = Dn, Yu = Dt;
|
|
4054
4058
|
export {
|
|
4055
|
-
|
|
4056
|
-
|
|
4057
|
-
|
|
4058
|
-
|
|
4059
|
-
|
|
4060
|
-
|
|
4061
|
-
|
|
4062
|
-
|
|
4063
|
-
|
|
4064
|
-
|
|
4059
|
+
Fu as B,
|
|
4060
|
+
Ru as C,
|
|
4061
|
+
Yc as E,
|
|
4062
|
+
Nu as H,
|
|
4063
|
+
qu as L,
|
|
4064
|
+
Iu as M,
|
|
4065
|
+
Su as R,
|
|
4066
|
+
Du as S,
|
|
4067
|
+
Qu as T,
|
|
4068
|
+
Lu as Z,
|
|
4065
4069
|
Tc as a,
|
|
4066
|
-
|
|
4067
|
-
|
|
4068
|
-
|
|
4069
|
-
|
|
4070
|
-
|
|
4071
|
-
|
|
4072
|
-
|
|
4073
|
-
|
|
4074
|
-
|
|
4075
|
-
|
|
4070
|
+
Hu as b,
|
|
4071
|
+
Eu as c,
|
|
4072
|
+
Zu as d,
|
|
4073
|
+
Tu as e,
|
|
4074
|
+
Cu as f,
|
|
4075
|
+
Ou as g,
|
|
4076
|
+
Au as h,
|
|
4077
|
+
Mu as i,
|
|
4078
|
+
Uu as j,
|
|
4079
|
+
Bu as k,
|
|
4076
4080
|
Ku as l,
|
|
4077
|
-
|
|
4078
|
-
|
|
4079
|
-
|
|
4080
|
-
|
|
4081
|
+
Wu as m,
|
|
4082
|
+
Vu as n,
|
|
4083
|
+
Xc as o,
|
|
4084
|
+
Yu as p,
|
|
4085
|
+
au as u
|
|
4081
4086
|
};
|
|
4082
|
-
//# sourceMappingURL=index-
|
|
4087
|
+
//# sourceMappingURL=index-Cc70HIQT.js.map
|