zudoku 0.7.2-dev.11 → 0.7.2-dev.13

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 (111) hide show
  1. package/dist/cli/cli.js +3 -3
  2. package/dist/cli/cli.js.map +1 -1
  3. package/dist/cli/common/analytics/lib.js +1 -1
  4. package/dist/cli/common/analytics/lib.js.map +1 -1
  5. package/dist/cli/common/outdated.js +20 -11
  6. package/dist/cli/common/outdated.js.map +1 -1
  7. package/dist/cli/common/xdg/lib.d.ts +3 -3
  8. package/dist/cli/common/xdg/lib.js +3 -3
  9. package/dist/cli/common/xdg/lib.js.map +1 -1
  10. package/dist/cli/dev/handler.js +26 -7
  11. package/dist/cli/dev/handler.js.map +1 -1
  12. package/dist/config/validators/InputSidebarSchema.d.ts +9 -0
  13. package/dist/config/validators/InputSidebarSchema.js +2 -0
  14. package/dist/config/validators/InputSidebarSchema.js.map +1 -1
  15. package/dist/config/validators/SidebarSchema.d.ts +9 -3
  16. package/dist/config/validators/SidebarSchema.js +7 -3
  17. package/dist/config/validators/SidebarSchema.js.map +1 -1
  18. package/dist/lib/components/navigation/SidebarCategory.js +5 -3
  19. package/dist/lib/components/navigation/SidebarCategory.js.map +1 -1
  20. package/dist/lib/components/navigation/SidebarItem.js +2 -2
  21. package/dist/lib/components/navigation/SidebarItem.js.map +1 -1
  22. package/dist/lib/icons.d.ts +1 -0
  23. package/dist/lib/icons.js +2 -0
  24. package/dist/lib/icons.js.map +1 -0
  25. package/dist/lib/ui/Button.d.ts +2 -2
  26. package/dist/vite/config.d.ts +3 -3
  27. package/dist/vite/config.js +23 -22
  28. package/dist/vite/config.js.map +1 -1
  29. package/dist/vite/config.test.js +1 -4
  30. package/dist/vite/config.test.js.map +1 -1
  31. package/dist/vite/dev-server.js +1 -4
  32. package/dist/vite/dev-server.js.map +1 -1
  33. package/dist/vite/plugin-icons.d.ts +3 -0
  34. package/dist/vite/plugin-icons.js +47 -0
  35. package/dist/vite/plugin-icons.js.map +1 -0
  36. package/dist/vite/plugin-sidebar.js +10 -1
  37. package/dist/vite/plugin-sidebar.js.map +1 -1
  38. package/dist/vite/plugin.js +2 -0
  39. package/dist/vite/plugin.js.map +1 -1
  40. package/lib/{AuthenticationPlugin-DYnkydqa.js → AuthenticationPlugin-Bx9FK124.js} +3 -3
  41. package/lib/{AuthenticationPlugin-DYnkydqa.js.map → AuthenticationPlugin-Bx9FK124.js.map} +1 -1
  42. package/lib/{CategoryHeading-w2EW676o.js → CategoryHeading-XnFqN2lJ.js} +2 -2
  43. package/lib/{CategoryHeading-w2EW676o.js.map → CategoryHeading-XnFqN2lJ.js.map} +1 -1
  44. package/lib/{DeveloperHint-D87KcpDW.js → DeveloperHint-FBb2uXJe.js} +2 -2
  45. package/lib/{DeveloperHint-D87KcpDW.js.map → DeveloperHint-FBb2uXJe.js.map} +1 -1
  46. package/lib/{ErrorPage-BdHAg3Rg.js → ErrorPage-knunPbKI.js} +4 -4
  47. package/lib/{ErrorPage-BdHAg3Rg.js.map → ErrorPage-knunPbKI.js.map} +1 -1
  48. package/lib/{Input-BmwltPfA.js → Input-BEDZAKw0.js} +350 -366
  49. package/lib/Input-BEDZAKw0.js.map +1 -0
  50. package/lib/{Markdown-BZUoEvL7.js → Markdown-B4aR03g6.js} +2494 -2650
  51. package/lib/Markdown-B4aR03g6.js.map +1 -0
  52. package/lib/{MdxPage-E4NFxzHQ.js → MdxPage-BZyQsH8Z.js} +44 -55
  53. package/lib/MdxPage-BZyQsH8Z.js.map +1 -0
  54. package/lib/{OperationList-DVIuzHN7.js → OperationList-2NeWEM0u.js} +103 -171
  55. package/lib/OperationList-2NeWEM0u.js.map +1 -0
  56. package/lib/{Route-5sI-urRK.js → Route-BZPewmrN.js} +3 -3
  57. package/lib/{Route-5sI-urRK.js.map → Route-BZPewmrN.js.map} +1 -1
  58. package/lib/{SidebarBadge-6EEz-Bwe.js → SidebarBadge-COz0hgfa.js} +39 -39
  59. package/lib/{SidebarBadge-6EEz-Bwe.js.map → SidebarBadge-COz0hgfa.js.map} +1 -1
  60. package/lib/{SlotletProvider-CNyl5wU0.js → SlotletProvider-DJMaOUDs.js} +70 -94
  61. package/lib/SlotletProvider-DJMaOUDs.js.map +1 -0
  62. package/lib/Spinner-3cQDBVGr.js +7 -0
  63. package/lib/Spinner-3cQDBVGr.js.map +1 -0
  64. package/lib/{ZudokuContext-BHNQL3XO.js → ZudokuContext-cr-pTRY1.js} +25 -25
  65. package/lib/{ZudokuContext-BHNQL3XO.js.map → ZudokuContext-cr-pTRY1.js.map} +1 -1
  66. package/lib/{_commonjsHelpers-BVfed4GL.js → _commonjsHelpers-BkfeUUK-.js} +3 -3
  67. package/lib/_commonjsHelpers-BkfeUUK-.js.map +1 -0
  68. package/lib/{index-CbJpF8Yf.js → index-1EDgIO6b.js} +7 -7
  69. package/lib/{index-CbJpF8Yf.js.map → index-1EDgIO6b.js.map} +1 -1
  70. package/lib/{index-ChhUJhLT.js → index-BG0g4WW0.js} +10 -10
  71. package/lib/{index-ChhUJhLT.js.map → index-BG0g4WW0.js.map} +1 -1
  72. package/lib/{index-DdUotMOQ.js → index-Dv2KZuEw.js} +1113 -1169
  73. package/lib/index-Dv2KZuEw.js.map +1 -0
  74. package/lib/{index-BGY8VjAV.js → index-Zezcv0xb.js} +24 -24
  75. package/lib/{index-BGY8VjAV.js.map → index-Zezcv0xb.js.map} +1 -1
  76. package/lib/{router-BiRCp01d.js → router-D2p7Olpn.js} +22 -22
  77. package/lib/{router-BiRCp01d.js.map → router-D2p7Olpn.js.map} +1 -1
  78. package/lib/{slugify-CiPVjteN.js → slugify-DbLhpSPt.js} +2 -2
  79. package/lib/{slugify-CiPVjteN.js.map → slugify-DbLhpSPt.js.map} +1 -1
  80. package/lib/{state-DsXXkBLH.js → state-lIwt9isb.js} +15 -15
  81. package/lib/{state-DsXXkBLH.js.map → state-lIwt9isb.js.map} +1 -1
  82. package/lib/{utils-BPHLKjns.js → utils-ByIc_KIM.js} +68 -68
  83. package/lib/{utils-BPHLKjns.js.map → utils-ByIc_KIM.js.map} +1 -1
  84. package/lib/zudoku.auth-auth0.js +1 -1
  85. package/lib/zudoku.auth-clerk.js +2 -2
  86. package/lib/zudoku.auth-openid.js +8 -8
  87. package/lib/zudoku.components.js +754 -834
  88. package/lib/zudoku.components.js.map +1 -1
  89. package/lib/zudoku.icons.js +2 -0
  90. package/lib/zudoku.icons.js.map +1 -0
  91. package/lib/zudoku.openapi-worker.js +2 -2
  92. package/lib/zudoku.plugin-api-keys.js +80 -131
  93. package/lib/zudoku.plugin-api-keys.js.map +1 -1
  94. package/lib/zudoku.plugin-custom-page.js +1 -1
  95. package/lib/zudoku.plugin-markdown.js +1 -1
  96. package/lib/zudoku.plugin-openapi.js +9 -8
  97. package/lib/zudoku.plugin-openapi.js.map +1 -1
  98. package/lib/zudoku.plugin-redirect.js +3 -3
  99. package/package.json +7 -3
  100. package/src/lib/components/navigation/SidebarCategory.tsx +43 -31
  101. package/src/lib/components/navigation/SidebarItem.tsx +2 -1
  102. package/src/lib/icons.ts +1 -0
  103. package/lib/Input-BmwltPfA.js.map +0 -1
  104. package/lib/Markdown-BZUoEvL7.js.map +0 -1
  105. package/lib/MdxPage-E4NFxzHQ.js.map +0 -1
  106. package/lib/OperationList-DVIuzHN7.js.map +0 -1
  107. package/lib/SlotletProvider-CNyl5wU0.js.map +0 -1
  108. package/lib/Spinner-B9eFggre.js +0 -15
  109. package/lib/Spinner-B9eFggre.js.map +0 -1
  110. package/lib/_commonjsHelpers-BVfed4GL.js.map +0 -1
  111. package/lib/index-DdUotMOQ.js.map +0 -1
@@ -2,15 +2,17 @@ import { vitePluginSsrCss } from "@hiogawa/vite-plugin-ssr-css";
2
2
  import autoprefixer from "autoprefixer";
3
3
  import { stat } from "node:fs/promises";
4
4
  import path from "node:path";
5
+ import { fileURLToPath } from "node:url";
5
6
  import colors from "picocolors";
6
7
  import tailwindcss from "tailwindcss";
8
+ import { tsImport } from "tsx/esm/api";
7
9
  import { loadConfigFromFile, mergeConfig, } from "vite";
8
10
  import tailwindConfig from "../app/tailwind.js";
9
11
  import { logger } from "../cli/common/logger.js";
10
12
  import { isPortAvailable } from "../cli/common/utils/ports.js";
11
13
  import { validateConfig } from "../config/validators/validate.js";
12
14
  import vitePlugin from "./plugin.js";
13
- export const zuploConfigFiles = [
15
+ export const zudokuConfigFiles = [
14
16
  "zudoku.config.js",
15
17
  "zudoku.config.jsx",
16
18
  "zudoku.config.ts",
@@ -26,7 +28,7 @@ export async function getConfigFilePath(rootDir) {
26
28
  if (configPath && (await fileExists(configPath))) {
27
29
  return configPath;
28
30
  }
29
- for (const fileName of zuploConfigFiles) {
31
+ for (const fileName of zudokuConfigFiles) {
30
32
  const filepath = path.join(rootDir, fileName);
31
33
  if (await fileExists(filepath)) {
32
34
  configPath = filepath;
@@ -37,8 +39,8 @@ export async function getConfigFilePath(rootDir) {
37
39
  throw new Error(`No zudoku config file found in project root.`);
38
40
  }
39
41
  let config;
40
- export async function loadZudokuConfig(rootDir, configEnv) {
41
- if (!configEnv.forceReload && config) {
42
+ export async function loadZudokuConfig(rootDir, forceReload) {
43
+ if (!forceReload && config) {
42
44
  return config;
43
45
  }
44
46
  const filepath = await getConfigFilePath(rootDir);
@@ -46,23 +48,22 @@ export async function loadZudokuConfig(rootDir, configEnv) {
46
48
  logger.info(colors.yellow(`loaded config file `) + colors.dim(filepath), {
47
49
  timestamp: true,
48
50
  });
49
- // NOTE: This function technically is for loading vite configs, but it
50
- // doesn't actually have anything to do with vite config, it just loads
51
- // typescript files. So we can use it to load our zudoku config file.
52
- // It is possible they change this and it wont work in the future.
53
- const loaded = await loadConfigFromFile(configEnv, filepath, rootDir);
54
- if (!loaded) {
51
+ const dependencies = [];
52
+ const loadedConfig = await tsImport(filepath, {
53
+ parentURL: import.meta.url,
54
+ onImport: (file) => {
55
+ const path = fileURLToPath(file);
56
+ if (path.startsWith(rootDir)) {
57
+ dependencies.push(path);
58
+ }
59
+ },
60
+ }).then((m) => m.default);
61
+ if (!loadedConfig) {
55
62
  throw new Error(`Failed to load config file: ${filepath}`);
56
63
  }
57
- // Using `loaded` directly breaks Vite in unexpected ways:
58
- // Errors with: "(intermediate value).glob is not a function"
59
- // Maybe worth revisiting at some point in time
60
64
  config = {
61
- ...loaded.config,
62
- vite: {
63
- dependencies: loaded.dependencies,
64
- path: loaded.path,
65
- },
65
+ ...loadedConfig,
66
+ __meta: { dependencies, path: filepath },
66
67
  };
67
68
  return config;
68
69
  }
@@ -104,8 +105,8 @@ export function getPluginOptions({ dir, mode, }) {
104
105
  };
105
106
  }
106
107
  export async function getViteConfig(dir, configEnv) {
107
- const config = await loadZudokuConfig(dir, configEnv);
108
- const onConfigChange = () => loadZudokuConfig(dir, { ...configEnv, forceReload: true });
108
+ const config = await loadZudokuConfig(dir);
109
+ const onConfigChange = () => loadZudokuConfig(dir, true);
109
110
  validateConfig(config);
110
111
  let websocketPort = 9800;
111
112
  while (!(await isPortAvailable("localhost", websocketPort)) &&
@@ -190,8 +191,8 @@ export async function getViteConfig(dir, configEnv) {
190
191
  // Tailwind seems to crash if it tries to parse compiled .js files
191
192
  // as a workaround, we will just ship the source file and use those
192
193
  // `${moduleDir}/lib/**/*.{js,ts,jsx,tsx,md,mdx}`,
193
- config.vite.path,
194
- ...config.vite.dependencies.map((dep) => `${path.dirname(config.vite.path)}/${dep}`),
194
+ config.__meta.path,
195
+ ...config.__meta.dependencies.map((dep) => `${path.dirname(config.__meta.path)}/${dep}`),
195
196
  `${pluginOptions.moduleDir}/src/lib/**/*.{js,ts,jsx,tsx,md,mdx}`,
196
197
  // Users custom components
197
198
  // NOTE: For now we are requiring components to be in `src` folder
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/vite/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,YAAY,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACxC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,MAAM,MAAM,YAAY,CAAC;AAChC,OAAO,WAAW,MAAM,aAAa,CAAC;AACtC,OAAO,EAIL,kBAAkB,EAClB,WAAW,GACZ,MAAM,MAAM,CAAC;AACd,OAAO,cAAc,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAE/D,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAElE,OAAO,UAAU,MAAM,aAAa,CAAC;AAErC,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,kBAAkB;IAClB,mBAAmB;IACnB,kBAAkB;IAClB,mBAAmB;IACnB,mBAAmB;CACpB,CAAC;AAEF,MAAM,UAAU,GAAG,CAAC,IAAY,EAAE,EAAE,CAClC,IAAI,CAAC,IAAI,CAAC;KACP,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC;KAChB,KAAK,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC;AAExB,IAAI,UAA8B,CAAC;AAEnC,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,OAAe;IACrD,iFAAiF;IACjF,IAAI,UAAU,IAAI,CAAC,MAAM,UAAU,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC;QACjD,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,KAAK,MAAM,QAAQ,IAAI,gBAAgB,EAAE,CAAC;QACxC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QAE9C,IAAI,MAAM,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC/B,UAAU,GAAG,QAAQ,CAAC;YACtB,OAAO,QAAQ,CAAC;QAClB,CAAC;IACH,CAAC;IACD,UAAU,GAAG,SAAS,CAAC;IACvB,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;AAClE,CAAC;AAWD,IAAI,MAAgC,CAAC;AAErC,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,OAAe,EACf,SAA0B;IAE1B,IAAI,CAAC,SAAS,CAAC,WAAW,IAAI,MAAM,EAAE,CAAC;QACrC,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,MAAM,QAAQ,GAAG,MAAM,iBAAiB,CAAC,OAAO,CAAC,CAAC;IAElD,IAAI,CAAC;QACH,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,qBAAqB,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;YACvE,SAAS,EAAE,IAAI;SAChB,CAAC,CAAC;QACH,sEAAsE;QACtE,uEAAuE;QACvE,qEAAqE;QACrE,kEAAkE;QAClE,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC,SAAS,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;QACtE,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,+BAA+B,QAAQ,EAAE,CAAC,CAAC;QAC7D,CAAC;QACD,0DAA0D;QAC1D,6DAA6D;QAC7D,+CAA+C;QAC/C,MAAM,GAAG;YACP,GAAI,MAAM,CAAC,MAAuB;YAClC,IAAI,EAAE;gBACJ,YAAY,EAAE,MAAM,CAAC,YAAY;gBACjC,IAAI,EAAE,MAAM,CAAC,IAAI;aAClB;SACF,CAAC;QACF,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,iBAAiB;IACjB,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,8CAA8C,CAAC,EAAE;QACvE,SAAS,EAAE,IAAI;KAChB,CAAC,CAAC;IACH,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,SAAS,YAAY;IACnB,oEAAoE;IACpE,6DAA6D;IAC7D,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC;IAC9D,IAAI,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QAC5B,OAAO,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAChC,CAAC;SAAM,CAAC;QACN,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,qBAAqB;IACnC,MAAM,MAAM,GAAG,YAAY,EAAE,CAAC;IAC9B,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,kBAAkB,CAAC,CAAC;AAC7D,CAAC;AAED,MAAM,UAAU,qBAAqB;IACnC,MAAM,MAAM,GAAG,YAAY,EAAE,CAAC;IAC9B,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,kBAAkB,CAAC,CAAC;AAC7D,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,EAC/B,GAAG,EACH,IAAI,GAIL;IACC,MAAM,SAAS,GAAG,YAAY,EAAE,CAAC;IACjC,OAAO;QACL,GAAG,MAAM;QACT,OAAO,EAAE,GAAG;QACZ,SAAS;QACT,IAAI;KACL,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,GAAW,EACX,SAA0B;IAE1B,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;IAEtD,MAAM,cAAc,GAAG,GAAG,EAAE,CAC1B,gBAAgB,CAAC,GAAG,EAAE,EAAE,GAAG,SAAS,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;IAE7D,cAAc,CAAC,MAAM,CAAC,CAAC;IAEvB,IAAI,aAAa,GAAG,IAAI,CAAC;IACzB,OACE,CAAC,CAAC,MAAM,eAAe,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;QACpD,aAAa,GAAG,IAAI,EACpB,CAAC;QACD,aAAa,EAAE,CAAC;IAClB,CAAC;IAED,MAAM,aAAa,GAAG,gBAAgB,CAAC;QACrC,GAAG;QACH,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ;KAC9D,CAAC,CAAC;IAEH,MAAM,UAAU,GAAiB;QAC/B,IAAI,EAAE,GAAG;QACT,IAAI,EAAE,MAAM,CAAC,QAAQ;QACrB,OAAO,EAAE,QAAQ;QACjB,UAAU,EAAE,KAAK;QACjB,WAAW,EAAE,KAAK;QAClB,QAAQ,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,IAAI,MAAM,CAAa;QACvD,YAAY,EAAE,MAAM;QACpB,SAAS,EAAE,SAAS;QACpB,MAAM,EAAE;YACN,MAAM,EAAE,IAAI;SACb;QACD,GAAG,EAAE;YACH,MAAM,EAAE,MAAM;YACd,UAAU,EAAE,EAAE;SACf;QACD,MAAM,EAAE;YACN,cAAc,EAAE,IAAI;YACpB,IAAI,EAAE,IAAI;YACV,GAAG,EAAE;gBACH,IAAI,EAAE,aAAa;aACpB;YACD,KAAK,EAAE;gBACL,OAAO,EAAE;oBACP,GAAG,GAAG,OAAO;oBACb,GAAG,GAAG,MAAM;oBACZ,GAAG,GAAG,OAAO;oBACb,GAAG,aAAa,CAAC,SAAS,WAAW;oBACrC,GAAG,aAAa,CAAC,SAAS,UAAU;iBACrC;aACF;SACF;QACD,KAAK,EAAE;YACL,GAAG,EAAE,SAAS,CAAC,UAAU;YACzB,SAAS,EAAE,IAAI;YACf,MAAM,EAAE,IAAI,CAAC,OAAO,CAClB,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAC7D;YACD,WAAW,EAAE,IAAI;YACjB,aAAa,EAAE;gBACb,KAAK,EACH,SAAS,CAAC,OAAO,KAAK,OAAO;oBAC3B,CAAC,CAAC,SAAS,CAAC,UAAU;wBACpB,CAAC,CAAC,CAAC,6BAA6B,EAAE,UAAW,CAAC;wBAC9C,CAAC,CAAC,6BAA6B;oBACjC,CAAC,CAAC,SAAS;aAChB;SACF;QACD,YAAY,EAAE;YACZ,OAAO,EAAE;gBACP,SAAS,CAAC,UAAU;oBAClB,CAAC,CAAC,qBAAqB,EAAE;oBACzB,CAAC,CAAC,qBAAqB,EAAE;aAC5B;YACD,OAAO,EAAE,CAAC,kBAAkB,CAAC;YAC7B,OAAO,EAAE;gBACP,sDAAsD;gBACtD,uBAAuB;gBACvB,QAAQ;aACT;SACF;QACD,OAAO,EAAE;YACP,gBAAgB,CAAC;gBACf,OAAO,EAAE,CAAC,GAAG,aAAa,CAAC,SAAS,2BAA2B,CAAC;aACjE,CAAC;YACF,UAAU,CAAC,aAAa,EAAE,cAAc,CAAC;SAC1C;QACD,GAAG,EAAE;YACH,OAAO,EAAE;gBACP,OAAO,EAAE;oBACP,WAAW,CAAC;wBACV,GAAG,cAAc;wBACjB,OAAO,EAAE;4BACP,+BAA+B;4BAC/B,kEAAkE;4BAClE,mEAAmE;4BACnE,kDAAkD;4BAClD,MAAM,CAAC,IAAI,CAAC,IAAI;4BAChB,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAC7B,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,EAAE,CACpD;4BACD,GAAG,aAAa,CAAC,SAAS,sCAAsC;4BAChE,0BAA0B;4BAC1B,kEAAkE;4BAClE,+DAA+D;4BAC/D,sCAAsC;4BACtC,GAAG,GAAG,kCAAkC;yBACzC;qBACF,CAAC;oBACF,YAAY;iBACb;aACF;SACF;KACF,CAAC;IAEF,kEAAkE;IAClE,MAAM,UAAU,GAAG,MAAM,kBAAkB,CAAC,SAAS,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC;IACvE,IAAI,UAAU,EAAE,CAAC;QACf,MAAM,MAAM,GAAiB,WAAW,CACtC,UAAU,CAAC,MAAM,EACjB,UAAU,EACV,IAAI,CACL,CAAC;QAEF,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/vite/config.ts"],"names":[],"mappings":"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"}
@@ -4,10 +4,7 @@ import test from "node:test";
4
4
  import { loadZudokuConfig } from "./config.js";
5
5
  test("Should correctly load zudoku.config.ts file", async () => {
6
6
  const rootPath = path.resolve("../../examples/with-config/");
7
- const config = await loadZudokuConfig(rootPath, {
8
- mode: "development",
9
- command: "build",
10
- });
7
+ const config = await loadZudokuConfig(rootPath);
11
8
  assert.equal(config.metadata?.title, "My Portal");
12
9
  });
13
10
  //# sourceMappingURL=config.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.test.js","sourceRoot":"","sources":["../../src/vite/config.test.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAE/C,IAAI,CAAC,6CAA6C,EAAE,KAAK,IAAI,EAAE;IAC7D,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,6BAA6B,CAAC,CAAC;IAC7D,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,QAAQ,EAAE;QAC9C,IAAI,EAAE,aAAa;QACnB,OAAO,EAAE,OAAO;KACjB,CAAC,CAAC;IACH,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;AACpD,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"config.test.js","sourceRoot":"","sources":["../../src/vite/config.test.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAE/C,IAAI,CAAC,6CAA6C,EAAE,KAAK,IAAI,EAAE;IAC7D,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,6BAA6B,CAAC,CAAC;IAC7D,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAChD,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;AACpD,CAAC,CAAC,CAAC"}
@@ -21,10 +21,7 @@ export class DevServer {
21
21
  isSsrBuild: this.options.ssr,
22
22
  });
23
23
  const vite = await createViteServer(viteConfig);
24
- this.currentConfig = await loadZudokuConfig(this.options.dir, {
25
- command: "serve",
26
- mode: "development",
27
- });
24
+ this.currentConfig = await loadZudokuConfig(this.options.dir);
28
25
  const graphql = createGraphQLServer({
29
26
  graphqlEndpoint: "/__z/graphql",
30
27
  });
@@ -1 +1 @@
1
- {"version":3,"file":"dev-server.js","sourceRoot":"","sources":["../../src/vite/dev-server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dev-server.js","sourceRoot":"","sources":["../../src/vite/dev-server.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { Plugin } from "vite";
2
+ export declare const replaceSidebarIcons: (code: string) => string;
3
+ export declare const viteIconsPlugin: () => Plugin;
@@ -0,0 +1,47 @@
1
+ import matter from "gray-matter";
2
+ import { readFile } from "node:fs/promises";
3
+ const matchIconAnnotation = /"icon":\s*"(.*?)"/g;
4
+ const toPascalCase = (str) => str.replace(/(^\w|-\w)/g, (match) => match.replace("-", "").toUpperCase());
5
+ export const replaceSidebarIcons = (code) => {
6
+ const collectedIcons = new Set();
7
+ let match;
8
+ while ((match = matchIconAnnotation.exec(code)) !== null) {
9
+ collectedIcons.add(match[1]);
10
+ }
11
+ const importStatement = `import { ${[...collectedIcons].map(toPascalCase).join(", ")} } from "zudoku/icons";`;
12
+ const replacedString = code.replaceAll(matchIconAnnotation,
13
+ // The element will be created by the implementers side
14
+ (_, iconName) => `"icon": ${toPascalCase(iconName)}`);
15
+ return `${importStatement}export const configuredSidebar = ${replacedString};`;
16
+ };
17
+ // This plugin is responsible to restart the dev server when a sidebar icon is changed inside a markdown file.
18
+ export const viteIconsPlugin = () => {
19
+ const iconMap = new Map();
20
+ return {
21
+ enforce: "pre",
22
+ name: "zudoku-icons-plugin",
23
+ configureServer: ({ watcher, restart }) => {
24
+ watcher.on("change", async (filePath) => {
25
+ if (/\.mdx?$/.test(filePath)) {
26
+ const code = await readFile(filePath, "utf-8");
27
+ const { sidebar_icon: sidebarIcon } = matter(code).data;
28
+ const previousIcon = iconMap.get(filePath);
29
+ if ((!previousIcon && sidebarIcon) ||
30
+ (previousIcon && !sidebarIcon) ||
31
+ previousIcon !== sidebarIcon) {
32
+ await restart();
33
+ }
34
+ iconMap.set(filePath, sidebarIcon);
35
+ }
36
+ });
37
+ },
38
+ async load(id) {
39
+ if (/\.mdx?$/.test(id)) {
40
+ const code = await readFile(id, "utf-8");
41
+ const { sidebar_icon: sidebarIcon } = matter(code).data;
42
+ iconMap.set(id, sidebarIcon);
43
+ }
44
+ },
45
+ };
46
+ };
47
+ //# sourceMappingURL=plugin-icons.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin-icons.js","sourceRoot":"","sources":["../../src/vite/plugin-icons.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAG5C,MAAM,mBAAmB,GAAG,oBAAoB,CAAC;AAEjD,MAAM,YAAY,GAAG,CAAC,GAAW,EAAE,EAAE,CACnC,GAAG,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;AAE7E,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,IAAY,EAAE,EAAE;IAClD,MAAM,cAAc,GAAG,IAAI,GAAG,EAAU,CAAC;IAEzC,IAAI,KAAK,CAAC;IACV,OAAO,CAAC,KAAK,GAAG,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QACzD,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/B,CAAC;IAED,MAAM,eAAe,GAAG,YAAY,CAAC,GAAG,cAAc,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,yBAAyB,CAAC;IAC9G,MAAM,cAAc,GAAG,IAAI,CAAC,UAAU,CACpC,mBAAmB;IACnB,uDAAuD;IACvD,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,CAAC,WAAW,YAAY,CAAC,QAAQ,CAAC,EAAE,CACrD,CAAC;IAEF,OAAO,GAAG,eAAe,oCAAoC,cAAc,GAAG,CAAC;AACjF,CAAC,CAAC;AAEF,8GAA8G;AAC9G,MAAM,CAAC,MAAM,eAAe,GAAG,GAAW,EAAE;IAC1C,MAAM,OAAO,GAAG,IAAI,GAAG,EAAyB,CAAC;IAEjD,OAAO;QACL,OAAO,EAAE,KAAK;QACd,IAAI,EAAE,qBAAqB;QAC3B,eAAe,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE;YACxC,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE;gBACtC,IAAI,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAC7B,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;oBAC/C,MAAM,EAAE,YAAY,EAAE,WAAW,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC;oBACxD,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;oBAE3C,IACE,CAAC,CAAC,YAAY,IAAI,WAAW,CAAC;wBAC9B,CAAC,YAAY,IAAI,CAAC,WAAW,CAAC;wBAC9B,YAAY,KAAK,WAAW,EAC5B,CAAC;wBACD,MAAM,OAAO,EAAE,CAAC;oBAClB,CAAC;oBAED,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;gBACrC,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,EAAE;YACX,IAAI,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;gBACvB,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;gBACzC,MAAM,EAAE,YAAY,EAAE,WAAW,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC;gBACxD,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC;YAC/B,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import { resolveSidebar } from "../config/validators/SidebarSchema.js";
2
+ import { replaceSidebarIcons } from "./plugin-icons.js";
2
3
  export const viteSidebarPlugin = (getConfig) => {
3
4
  const virtualModuleId = "virtual:zudoku-sidebar";
4
5
  const resolvedVirtualModuleId = "\0" + virtualModuleId;
@@ -17,7 +18,15 @@ export const viteSidebarPlugin = (getConfig) => {
17
18
  parentId,
18
19
  await resolveSidebar(config.rootDir, parentId, sidebar),
19
20
  ])));
20
- return `export const configuredSidebar = ${JSON.stringify(resolvedSidebar)};`;
21
+ return JSON.stringify(resolvedSidebar);
22
+ },
23
+ async transform(code, id) {
24
+ if (id !== resolvedVirtualModuleId)
25
+ return;
26
+ // In the stringified config all occurrences of icons are replaced with icon components
27
+ // and their imports are added to the top.
28
+ // They will be created as elements when the sidebar is rendered.
29
+ return replaceSidebarIcons(code);
21
30
  },
22
31
  };
23
32
  };
@@ -1 +1 @@
1
- {"version":3,"file":"plugin-sidebar.js","sourceRoot":"","sources":["../../src/vite/plugin-sidebar.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,uCAAuC,CAAC;AAEvE,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAC/B,SAAoC,EAC5B,EAAE;IACV,MAAM,eAAe,GAAG,wBAAwB,CAAC;IACjD,MAAM,uBAAuB,GAAG,IAAI,GAAG,eAAe,CAAC;IAEvD,OAAO;QACL,IAAI,EAAE,uBAAuB;QAC7B,SAAS,CAAC,EAAE;YACV,IAAI,EAAE,KAAK,eAAe,EAAE,CAAC;gBAC3B,OAAO,uBAAuB,CAAC;YACjC,CAAC;QACH,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,EAAE;YACX,IAAI,EAAE,KAAK,uBAAuB;gBAAE,OAAO;YAC3C,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;YAE3B,MAAM,eAAe,GAAG,MAAM,CAAC,WAAW,CACxC,MAAM,OAAO,CAAC,GAAG,CACf,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,GAAG,CACtC,KAAK,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC;gBAC7B,QAAQ;gBACR,MAAM,cAAc,CAAC,MAAM,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC;aACxD,CACF,CACF,CACF,CAAC;YAEF,OAAO,oCAAoC,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,GAAG,CAAC;QAChF,CAAC;KACF,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"plugin-sidebar.js","sourceRoot":"","sources":["../../src/vite/plugin-sidebar.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,uCAAuC,CAAC;AACvE,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAExD,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAC/B,SAAoC,EAC5B,EAAE;IACV,MAAM,eAAe,GAAG,wBAAwB,CAAC;IACjD,MAAM,uBAAuB,GAAG,IAAI,GAAG,eAAe,CAAC;IAEvD,OAAO;QACL,IAAI,EAAE,uBAAuB;QAC7B,SAAS,CAAC,EAAE;YACV,IAAI,EAAE,KAAK,eAAe,EAAE,CAAC;gBAC3B,OAAO,uBAAuB,CAAC;YACjC,CAAC;QACH,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,EAAE;YACX,IAAI,EAAE,KAAK,uBAAuB;gBAAE,OAAO;YAC3C,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;YAE3B,MAAM,eAAe,GAAG,MAAM,CAAC,WAAW,CACxC,MAAM,OAAO,CAAC,GAAG,CACf,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,GAAG,CACtC,KAAK,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC;gBAC7B,QAAQ;gBACR,MAAM,cAAc,CAAC,MAAM,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC;aACxD,CACF,CACF,CACF,CAAC;YAEF,OAAO,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;QACzC,CAAC;QACD,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE;YACtB,IAAI,EAAE,KAAK,uBAAuB;gBAAE,OAAO;YAE3C,uFAAuF;YACvF,0CAA0C;YAC1C,iEAAiE;YACjE,OAAO,mBAAmB,CAAC,IAAI,CAAC,CAAC;QACnC,CAAC;KACF,CAAC;AACJ,CAAC,CAAC"}
@@ -8,6 +8,7 @@ import viteConfigPlugin from "./plugin-config.js";
8
8
  import viteCustomCss from "./plugin-custom-css.js";
9
9
  import viteDocsPlugin from "./plugin-docs.js";
10
10
  import { viteHtmlTransform } from "./plugin-html-transform.js";
11
+ import { viteIconsPlugin } from "./plugin-icons.js";
11
12
  import viteMdxPlugin from "./plugin-mdx.js";
12
13
  import viteRedirectPlugin from "./plugin-redirect.js";
13
14
  import { viteSidebarPlugin } from "./plugin-sidebar.js";
@@ -20,6 +21,7 @@ export default function vitePlugin(initialConfig, onConfigChange) {
20
21
  viteApiKeysPlugin(getCurrentConfig),
21
22
  viteAuthPlugin(getCurrentConfig),
22
23
  viteDocsPlugin(getCurrentConfig),
24
+ viteIconsPlugin(),
23
25
  viteSidebarPlugin(getCurrentConfig),
24
26
  viteApiPlugin(getCurrentConfig),
25
27
  viteAliasPlugin(getCurrentConfig),
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../src/vite/plugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,sBAAsB,CAAC;AAIzC,OAAO,iBAAiB,MAAM,sBAAsB,CAAC;AACrD,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAC5C,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAC9C,OAAO,eAAe,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAClD,OAAO,aAAa,MAAM,wBAAwB,CAAC;AACnD,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAC5C,OAAO,kBAAkB,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD,MAAM,CAAC,OAAO,UAAU,UAAU,CAChC,aAAkC,EAClC,cAA4C;IAE5C,MAAM,CAAC,kBAAkB,EAAE,gBAAgB,CAAC,GAAG,wBAAwB,CACrE,aAAa,EACb,cAAc,CACf,CAAC;IAEF,OAAO;QACL,aAAa,CAAC,gBAAgB,CAAC;QAC/B,KAAK,CAAC,EAAE,OAAO,EAAE,qBAAqB,EAAE,CAAC;QACzC,gBAAgB,CAAC,aAAa,CAAC;QAC/B,iBAAiB,CAAC,gBAAgB,CAAC;QACnC,cAAc,CAAC,gBAAgB,CAAC;QAChC,cAAc,CAAC,gBAAgB,CAAC;QAChC,iBAAiB,CAAC,gBAAgB,CAAC;QACnC,aAAa,CAAC,gBAAgB,CAAC;QAC/B,eAAe,CAAC,gBAAgB,CAAC;QACjC,kBAAkB,CAAC,gBAAgB,CAAC;QACpC,aAAa,CAAC,gBAAgB,CAAC;QAC/B,iBAAiB,EAAE;QACnB,kBAAkB;KACnB,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../src/vite/plugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,sBAAsB,CAAC;AAIzC,OAAO,iBAAiB,MAAM,sBAAsB,CAAC;AACrD,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAC5C,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAC9C,OAAO,eAAe,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAClD,OAAO,aAAa,MAAM,wBAAwB,CAAC;AACnD,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAC5C,OAAO,kBAAkB,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD,MAAM,CAAC,OAAO,UAAU,UAAU,CAChC,aAAkC,EAClC,cAA4C;IAE5C,MAAM,CAAC,kBAAkB,EAAE,gBAAgB,CAAC,GAAG,wBAAwB,CACrE,aAAa,EACb,cAAc,CACf,CAAC;IAEF,OAAO;QACL,aAAa,CAAC,gBAAgB,CAAC;QAC/B,KAAK,CAAC,EAAE,OAAO,EAAE,qBAAqB,EAAE,CAAC;QACzC,gBAAgB,CAAC,aAAa,CAAC;QAC/B,iBAAiB,CAAC,gBAAgB,CAAC;QACnC,cAAc,CAAC,gBAAgB,CAAC;QAChC,cAAc,CAAC,gBAAgB,CAAC;QAChC,eAAe,EAAE;QACjB,iBAAiB,CAAC,gBAAgB,CAAC;QACnC,aAAa,CAAC,gBAAgB,CAAC;QAC/B,eAAe,CAAC,gBAAgB,CAAC;QACjC,kBAAkB,CAAC,gBAAgB,CAAC;QACpC,aAAa,CAAC,gBAAgB,CAAC;QAC/B,iBAAiB,EAAE;QACnB,kBAAkB;KACnB,CAAC;AACJ,CAAC"}
@@ -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, e as u } from "./index-ChhUJhLT.js";
4
- import { u as s } from "./ZudokuContext-BHNQL3XO.js";
3
+ import { u as a, a as u } from "./index-BG0g4WW0.js";
4
+ import { u as s } from "./ZudokuContext-cr-pTRY1.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-DYnkydqa.js.map
55
+ //# sourceMappingURL=AuthenticationPlugin-Bx9FK124.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AuthenticationPlugin-DYnkydqa.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-Bx9FK124.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 { b as m } from "./Markdown-BZUoEvL7.js";
2
+ import { c as m } from "./Markdown-B4aR03g6.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-w2EW676o.js.map
10
+ //# sourceMappingURL=CategoryHeading-XnFqN2lJ.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CategoryHeading-w2EW676o.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-XnFqN2lJ.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 { f as i } from "./Markdown-BZUoEvL7.js";
2
+ import { C as i } from "./Markdown-B4aR03g6.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-D87KcpDW.js.map
16
+ //# sourceMappingURL=DeveloperHint-FBb2uXJe.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DeveloperHint-D87KcpDW.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-FBb2uXJe.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,7 +1,7 @@
1
1
  import { j as r } from "./jsx-runtime-B6kdoens.js";
2
- import { L as a } from "./index-ChhUJhLT.js";
3
- import { C as n } from "./CategoryHeading-w2EW676o.js";
4
- import { P as i, H as t } from "./Markdown-BZUoEvL7.js";
2
+ import { L as a } from "./index-BG0g4WW0.js";
3
+ import { C as n } from "./CategoryHeading-XnFqN2lJ.js";
4
+ import { P as i, H as t } from "./Markdown-B4aR03g6.js";
5
5
  const p = ({
6
6
  title: e = "An error occurred",
7
7
  message: o,
@@ -15,4 +15,4 @@ const p = ({
15
15
  export {
16
16
  p as E
17
17
  };
18
- //# sourceMappingURL=ErrorPage-BdHAg3Rg.js.map
18
+ //# sourceMappingURL=ErrorPage-knunPbKI.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ErrorPage-BdHAg3Rg.js","sources":["../src/lib/components/ErrorPage.tsx"],"sourcesContent":["import type { ReactNode } from \"react\";\nimport { Link } from \"react-router-dom\";\nimport { CategoryHeading } from \"./CategoryHeading.js\";\nimport { Heading } from \"./Heading.js\";\nimport { ProseClasses } from \"./Markdown.js\";\n\nexport const ErrorPage = ({\n title = \"An error occurred\",\n message,\n category,\n}: {\n title?: ReactNode;\n message?: ReactNode;\n category?: ReactNode;\n}) => {\n return (\n <div className={ProseClasses + \" h-full pt-[--padding-content-top]\"}>\n {category && <CategoryHeading>{category}</CategoryHeading>}\n {title && (\n <Heading level={1} className=\"flex gap-3.5 items-center\">\n {title}\n </Heading>\n )}\n <p>{message}</p>\n <Link to=\"/\">Go back home</Link>\n </div>\n );\n};\n"],"names":["ErrorPage","title","message","category","jsxs","ProseClasses","jsx","CategoryHeading","Heading","Link"],"mappings":";;;;AAMO,MAAMA,IAAY,CAAC;AAAA,EACxB,OAAAC,IAAQ;AAAA,EACR,SAAAC;AAAA,EACA,UAAAC;AACF,MAMKC,gBAAAA,EAAAA,KAAA,OAAA,EAAI,WAAWC,IAAe,sCAC5B,UAAA;AAAA,EAAYF,KAAAG,gBAAAA,EAAAA,IAACC,KAAiB,UAASJ,EAAA,CAAA;AAAA,EACvCF,KACEK,gBAAAA,EAAAA,IAAAE,GAAA,EAAQ,OAAO,GAAG,WAAU,6BAC1B,UACHP,GAAA;AAAA,EAEFK,gBAAAA,EAAAA,IAAC,OAAG,UAAQJ,EAAA,CAAA;AAAA,EACXI,gBAAAA,EAAA,IAAAG,GAAA,EAAK,IAAG,KAAI,UAAY,gBAAA;AAC3B,EAAA,CAAA;"}
1
+ {"version":3,"file":"ErrorPage-knunPbKI.js","sources":["../src/lib/components/ErrorPage.tsx"],"sourcesContent":["import type { ReactNode } from \"react\";\nimport { Link } from \"react-router-dom\";\nimport { CategoryHeading } from \"./CategoryHeading.js\";\nimport { Heading } from \"./Heading.js\";\nimport { ProseClasses } from \"./Markdown.js\";\n\nexport const ErrorPage = ({\n title = \"An error occurred\",\n message,\n category,\n}: {\n title?: ReactNode;\n message?: ReactNode;\n category?: ReactNode;\n}) => {\n return (\n <div className={ProseClasses + \" h-full pt-[--padding-content-top]\"}>\n {category && <CategoryHeading>{category}</CategoryHeading>}\n {title && (\n <Heading level={1} className=\"flex gap-3.5 items-center\">\n {title}\n </Heading>\n )}\n <p>{message}</p>\n <Link to=\"/\">Go back home</Link>\n </div>\n );\n};\n"],"names":["ErrorPage","title","message","category","jsxs","ProseClasses","jsx","CategoryHeading","Heading","Link"],"mappings":";;;;AAMO,MAAMA,IAAY,CAAC;AAAA,EACxB,OAAAC,IAAQ;AAAA,EACR,SAAAC;AAAA,EACA,UAAAC;AACF,MAMKC,gBAAAA,EAAAA,KAAA,OAAA,EAAI,WAAWC,IAAe,sCAC5B,UAAA;AAAA,EAAYF,KAAAG,gBAAAA,EAAAA,IAACC,KAAiB,UAASJ,EAAA,CAAA;AAAA,EACvCF,KACEK,gBAAAA,EAAAA,IAAAE,GAAA,EAAQ,OAAO,GAAG,WAAU,6BAC1B,UACHP,GAAA;AAAA,EAEFK,gBAAAA,EAAAA,IAAC,OAAG,UAAQJ,EAAA,CAAA;AAAA,EACXI,gBAAAA,EAAA,IAAAG,GAAA,EAAK,IAAG,KAAI,UAAY,gBAAA;AAC3B,EAAA,CAAA;"}