zudoku 0.4.3-dev.22 → 0.4.3-dev.24

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.
@@ -1,31 +1,29 @@
1
- import { j as m } from "./jsx-runtime-B6kdoens.js";
2
- const u = (t, e) => Object.entries(t).flatMap(([a, r]) => {
1
+ import { j as c } from "./jsx-runtime-B6kdoens.js";
2
+ const i = (t, e) => Object.entries(t).flatMap(([a, s]) => {
3
3
  const n = a.match(/pages\/(.*).mdx?$/), o = n == null ? void 0 : n.at(1);
4
- if (!o) return [];
5
- const s = o.split("/");
6
- return {
7
- path: s.at(-1) === "index" ? s.slice(0, -1).join("/") : o,
4
+ return o ? {
5
+ path: o,
8
6
  lazy: async () => {
9
- const { MdxPage: i } = await import("./MdxPage-DKD6W5vO.js"), { default: p, ...c } = await r();
7
+ const { MdxPage: r } = await import("./MdxPage-DKD6W5vO.js"), { default: p, ...m } = await s();
10
8
  return {
11
- element: /* @__PURE__ */ m.jsx(
12
- i,
9
+ element: /* @__PURE__ */ c.jsx(
10
+ r,
13
11
  {
14
12
  mdxComponent: p,
15
- ...c,
13
+ ...m,
16
14
  defaultOptions: e
17
15
  }
18
16
  )
19
17
  };
20
18
  }
21
- };
22
- }), g = ({
19
+ } : [];
20
+ }), x = ({
23
21
  markdownFiles: t,
24
22
  defaultOptions: e
25
23
  }) => ({
26
- getRoutes: () => u(t, e)
24
+ getRoutes: () => i(t, e)
27
25
  });
28
26
  export {
29
- g as markdownPlugin
27
+ x as markdownPlugin
30
28
  };
31
29
  //# sourceMappingURL=zudoku.plugin-markdown.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"zudoku.plugin-markdown.js","sources":["../src/lib/plugins/markdown/generateRoutes.tsx","../src/lib/plugins/markdown/index.tsx"],"sourcesContent":["import { type RouteObject } from \"react-router-dom\";\n\nimport {\n MarkdownPluginDefaultOptions,\n MarkdownPluginOptions,\n} from \"./index.js\";\n\nexport const generateRoutes = (\n markdownFiles: MarkdownPluginOptions[\"markdownFiles\"],\n defaultOptions?: MarkdownPluginDefaultOptions,\n): RouteObject[] =>\n Object.entries(markdownFiles).flatMap(([file, importPromise]) => {\n // @todo we can pass in the folder name and then filter the markdown files based on that path\n const match = file.match(/pages\\/(.*).mdx?$/);\n const path = match?.at(1);\n\n if (!path) return [];\n\n const pathSegments = path.split(\"/\");\n const isIndexFile = pathSegments.at(-1) === \"index\";\n const routePath = isIndexFile ? pathSegments.slice(0, -1).join(\"/\") : path;\n\n return {\n path: routePath,\n lazy: async () => {\n const { MdxPage } = await import(\"./MdxPage.js\");\n const { default: Component, ...props } = await importPromise();\n return {\n element: (\n <MdxPage\n mdxComponent={Component}\n {...props}\n defaultOptions={defaultOptions}\n />\n ),\n };\n },\n } satisfies RouteObject;\n });\n","import type { Toc } from \"@stefanprobst/rehype-extract-toc\";\nimport type { MDXProps } from \"mdx/types.js\";\nimport type { DevPortalPlugin } from \"../../core/plugins.js\";\nimport { generateRoutes } from \"./generateRoutes.js\";\n\nexport type MarkdownPluginOptions = {\n markdownFiles: Record<string, () => Promise<MDXImport>>;\n defaultOptions?: MarkdownPluginDefaultOptions;\n};\nexport type MarkdownPluginDefaultOptions = Pick<\n Frontmatter,\n \"toc\" | \"disablePager\"\n>;\n\nexport type Frontmatter = {\n title?: string;\n description?: string;\n category?: string;\n toc?: boolean;\n disablePager?: boolean;\n};\n\nexport type MDXImport = {\n tableOfContents: Toc;\n frontmatter: Frontmatter;\n default: (props: MDXProps) => JSX.Element;\n};\n\nexport const markdownPlugin = ({\n markdownFiles,\n defaultOptions,\n}: MarkdownPluginOptions): DevPortalPlugin => ({\n getRoutes: () => generateRoutes(markdownFiles, defaultOptions),\n});\n"],"names":["generateRoutes","markdownFiles","defaultOptions","file","importPromise","match","path","pathSegments","MdxPage","Component","props","jsx","markdownPlugin"],"mappings":";AAOO,MAAMA,IAAiB,CAC5BC,GACAC,MAEA,OAAO,QAAQD,CAAa,EAAE,QAAQ,CAAC,CAACE,GAAMC,CAAa,MAAM;AAEzD,QAAAC,IAAQF,EAAK,MAAM,mBAAmB,GACtCG,IAAOD,KAAA,gBAAAA,EAAO,GAAG;AAEnB,MAAA,CAACC,EAAM,QAAO;AAEZ,QAAAC,IAAeD,EAAK,MAAM,GAAG;AAI5B,SAAA;AAAA,IACL,MAJkBC,EAAa,GAAG,EAAE,MAAM,UACZA,EAAa,MAAM,GAAG,EAAE,EAAE,KAAK,GAAG,IAAID;AAAA,IAIpE,MAAM,YAAY;AAChB,YAAM,EAAE,SAAAE,EAAA,IAAY,MAAM,OAAO,uBAAc,GACzC,EAAE,SAASC,GAAW,GAAGC,EAAM,IAAI,MAAMN;AACxC,aAAA;AAAA,QACL,SACEO,gBAAAA,EAAA;AAAA,UAACH;AAAA,UAAA;AAAA,YACC,cAAcC;AAAA,YACb,GAAGC;AAAA,YACJ,gBAAAR;AAAA,UAAA;AAAA,QACF;AAAA,MAAA;AAAA,IAGN;AAAA,EAAA;AAEJ,CAAC,GCVUU,IAAiB,CAAC;AAAA,EAC7B,eAAAX;AAAA,EACA,gBAAAC;AACF,OAA+C;AAAA,EAC7C,WAAW,MAAMF,EAAeC,GAAeC,CAAc;AAC/D;"}
1
+ {"version":3,"file":"zudoku.plugin-markdown.js","sources":["../src/lib/plugins/markdown/generateRoutes.tsx","../src/lib/plugins/markdown/index.tsx"],"sourcesContent":["import { type RouteObject } from \"react-router-dom\";\n\nimport {\n MarkdownPluginDefaultOptions,\n MarkdownPluginOptions,\n} from \"./index.js\";\n\nexport const generateRoutes = (\n markdownFiles: MarkdownPluginOptions[\"markdownFiles\"],\n defaultOptions?: MarkdownPluginDefaultOptions,\n): RouteObject[] =>\n Object.entries(markdownFiles).flatMap(([file, importPromise]) => {\n // @todo we can pass in the folder name and then filter the markdown files based on that path\n const match = file.match(/pages\\/(.*).mdx?$/);\n const path = match?.at(1);\n\n if (!path) return [];\n\n return {\n path,\n lazy: async () => {\n const { MdxPage } = await import(\"./MdxPage.js\");\n const { default: Component, ...props } = await importPromise();\n return {\n element: (\n <MdxPage\n mdxComponent={Component}\n {...props}\n defaultOptions={defaultOptions}\n />\n ),\n };\n },\n } satisfies RouteObject;\n });\n","import type { Toc } from \"@stefanprobst/rehype-extract-toc\";\nimport type { MDXProps } from \"mdx/types.js\";\nimport type { DevPortalPlugin } from \"../../core/plugins.js\";\nimport { generateRoutes } from \"./generateRoutes.js\";\n\nexport type MarkdownPluginOptions = {\n markdownFiles: Record<string, () => Promise<MDXImport>>;\n defaultOptions?: MarkdownPluginDefaultOptions;\n};\nexport type MarkdownPluginDefaultOptions = Pick<\n Frontmatter,\n \"toc\" | \"disablePager\"\n>;\n\nexport type Frontmatter = {\n title?: string;\n description?: string;\n category?: string;\n toc?: boolean;\n disablePager?: boolean;\n};\n\nexport type MDXImport = {\n tableOfContents: Toc;\n frontmatter: Frontmatter;\n default: (props: MDXProps) => JSX.Element;\n};\n\nexport const markdownPlugin = ({\n markdownFiles,\n defaultOptions,\n}: MarkdownPluginOptions): DevPortalPlugin => ({\n getRoutes: () => generateRoutes(markdownFiles, defaultOptions),\n});\n"],"names":["generateRoutes","markdownFiles","defaultOptions","file","importPromise","match","path","MdxPage","Component","props","jsx","markdownPlugin"],"mappings":";AAOO,MAAMA,IAAiB,CAC5BC,GACAC,MAEA,OAAO,QAAQD,CAAa,EAAE,QAAQ,CAAC,CAACE,GAAMC,CAAa,MAAM;AAEzD,QAAAC,IAAQF,EAAK,MAAM,mBAAmB,GACtCG,IAAOD,KAAA,gBAAAA,EAAO,GAAG;AAEnB,SAACC,IAEE;AAAA,IACL,MAAAA;AAAA,IACA,MAAM,YAAY;AAChB,YAAM,EAAE,SAAAC,EAAA,IAAY,MAAM,OAAO,uBAAc,GACzC,EAAE,SAASC,GAAW,GAAGC,EAAM,IAAI,MAAML;AACxC,aAAA;AAAA,QACL,SACEM,gBAAAA,EAAA;AAAA,UAACH;AAAA,UAAA;AAAA,YACC,cAAcC;AAAA,YACb,GAAGC;AAAA,YACJ,gBAAAP;AAAA,UAAA;AAAA,QACF;AAAA,MAAA;AAAA,IAGN;AAAA,EAAA,IAhBgB;AAkBpB,CAAC,GCNUS,IAAiB,CAAC;AAAA,EAC7B,eAAAV;AAAA,EACA,gBAAAC;AACF,OAA+C;AAAA,EAC7C,WAAW,MAAMF,EAAeC,GAAeC,CAAc;AAC/D;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "zudoku",
3
- "version": "0.4.3-dev.22",
3
+ "version": "0.4.3-dev.24",
4
4
  "type": "module",
5
5
  "files": [
6
6
  "dist",
package/src/app/demo.tsx CHANGED
@@ -3,6 +3,7 @@ import { createRoot } from "react-dom/client";
3
3
  import { createBrowserRouter } from "react-router-dom";
4
4
  import { Bootstrap } from "zudoku/components";
5
5
  import type { ZudokuConfig } from "../config/validators/validate.js";
6
+ import DemoAnnouncement from "../lib/demo/DemoAnnouncement.js";
6
7
  import { openApiPlugin } from "../lib/plugins/openapi/index.js";
7
8
  import { themeToggle } from "../lib/themeToggle.js";
8
9
  import "../lib/util/logInit.js";
@@ -41,6 +42,9 @@ const config = {
41
42
  label: "API Reference",
42
43
  },
43
44
  ],
45
+ slotlets: {
46
+ "layout-before-head": <DemoAnnouncement />,
47
+ },
44
48
  plugins: [
45
49
  // Using the plugin directly because there's no config file to load in the virtual plugins
46
50
  openApiPlugin({
@@ -45,6 +45,7 @@ export const Layout = ({ children }: { children?: ReactNode }) => {
45
45
  )}
46
46
  {meta?.favicon && <link rel="icon" href={meta.favicon} />}
47
47
  </Helmet>
48
+ <Slotlet name="layout-before-head" />
48
49
  <Header />
49
50
 
50
51
  <div className="w-full max-w-screen-2xl mx-auto px-10 lg:px-12">
@@ -0,0 +1,14 @@
1
+ export const DemoAnnouncement = () => (
2
+ <div className="h-12 w-full bg-pink-900 text-pink-100 text-center text-sm font-medium py-2 flex items-center justify-center ">
3
+ This demo hosting of your OpenAPI isn't as fast or flexible as self-hosting;{" "}
4
+ <a
5
+ href="https://github.com/zuplo/zudoku"
6
+ className="px-1 underline hover:white"
7
+ >
8
+ Get started here
9
+ </a>{" "}
10
+ to see Zudoku at full tilt.
11
+ </div>
12
+ );
13
+
14
+ export default DemoAnnouncement;
@@ -16,12 +16,8 @@ export const generateRoutes = (
16
16
 
17
17
  if (!path) return [];
18
18
 
19
- const pathSegments = path.split("/");
20
- const isIndexFile = pathSegments.at(-1) === "index";
21
- const routePath = isIndexFile ? pathSegments.slice(0, -1).join("/") : path;
22
-
23
19
  return {
24
- path: routePath,
20
+ path,
25
21
  lazy: async () => {
26
22
  const { MdxPage } = await import("./MdxPage.js");
27
23
  const { default: Component, ...props } = await importPromise();