@vezham/start 26.0.0-alpha.5 → 26.0.0-alpha.7
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/README.md +2 -0
- package/dist/lib/layouts/app/index.d.ts +15 -0
- package/dist/lib/layouts/app/index.d.ts.map +1 -0
- package/dist/lib/layouts/app/index.js +44 -0
- package/dist/lib/layouts/docs/components.d.ts +4 -0
- package/dist/lib/layouts/docs/components.d.ts.map +1 -0
- package/dist/lib/layouts/docs/components.js +29 -0
- package/dist/lib/layouts/docs/index.d.ts +3 -0
- package/dist/lib/layouts/docs/index.d.ts.map +1 -0
- package/dist/lib/layouts/docs/index.js +2 -0
- package/dist/lib/layouts/docs/layout-components.d.ts +9 -0
- package/dist/lib/layouts/docs/layout-components.d.ts.map +1 -0
- package/dist/lib/layouts/docs/layout-components.js +81 -0
- package/dist/lib/layouts/docs/layouts.d.ts +6 -0
- package/dist/lib/layouts/docs/layouts.d.ts.map +1 -0
- package/dist/lib/layouts/docs/layouts.js +11 -0
- package/dist/lib/layouts/docs/page-actions.d.ts +4 -0
- package/dist/lib/layouts/docs/page-actions.d.ts.map +1 -0
- package/dist/lib/layouts/docs/page-actions.js +154 -0
- package/dist/lib/layouts/docs/page-actions.variants.d.ts +44 -0
- package/dist/lib/layouts/docs/page-actions.variants.d.ts.map +1 -0
- package/dist/lib/layouts/docs/page-actions.variants.js +17 -0
- package/dist/lib/layouts/docs/page-content.d.ts +11 -0
- package/dist/lib/layouts/docs/page-content.d.ts.map +1 -0
- package/dist/lib/layouts/docs/page-content.js +13 -0
- package/dist/lib/layouts/docs/pages.d.ts +57 -0
- package/dist/lib/layouts/docs/pages.d.ts.map +1 -0
- package/dist/lib/layouts/docs/pages.js +36 -0
- package/dist/lib/layouts/docs/types.d.ts +21 -0
- package/dist/lib/layouts/docs/types.d.ts.map +1 -0
- package/dist/lib/mdx/index.d.ts +26 -0
- package/dist/lib/mdx/index.d.ts.map +1 -0
- package/dist/lib/mdx/index.js +10 -0
- package/dist/lib/pages/docs/openapi/index.d.ts +2 -0
- package/dist/lib/pages/docs/openapi/index.d.ts.map +1 -0
- package/dist/lib/pages/docs/openapi/index.js +5 -0
- package/dist/lib/pages/docs/route/index.d.ts +35 -0
- package/dist/lib/pages/docs/route/index.d.ts.map +1 -0
- package/dist/lib/pages/docs/route/index.js +59 -0
- package/dist/lib/provider/next/config.d.ts +3 -0
- package/dist/lib/provider/next/config.d.ts.map +1 -0
- package/dist/lib/provider/next/config.js +6 -0
- package/dist/lib/provider/next/index.d.ts +3 -0
- package/dist/lib/provider/next/index.d.ts.map +1 -0
- package/dist/lib/provider/next/index.js +3 -0
- package/dist/lib/provider/next/provider.d.ts +3 -0
- package/dist/lib/provider/next/provider.d.ts.map +1 -0
- package/dist/lib/provider/next/provider.js +24 -0
- package/dist/lib/provider/next/root-document.d.ts +3 -0
- package/dist/lib/provider/next/root-document.d.ts.map +1 -0
- package/dist/lib/provider/next/root-document.js +27 -0
- package/dist/lib/provider/shared/config.d.ts +4 -0
- package/dist/lib/provider/shared/config.d.ts.map +1 -0
- package/dist/lib/provider/shared/config.js +10 -0
- package/dist/lib/provider/shared/devtools.d.ts +10 -0
- package/dist/lib/provider/shared/devtools.d.ts.map +1 -0
- package/dist/lib/provider/shared/devtools.js +24 -0
- package/dist/lib/provider/shared/provider.d.ts +13 -0
- package/dist/lib/provider/shared/provider.d.ts.map +1 -0
- package/dist/lib/provider/shared/provider.js +40 -0
- package/dist/lib/provider/shared/types.d.ts +32 -0
- package/dist/lib/provider/shared/types.d.ts.map +1 -0
- package/dist/lib/provider/shared/types.js +4 -0
- package/dist/lib/provider/tanstack/config.d.ts +4 -0
- package/dist/lib/provider/tanstack/config.d.ts.map +1 -0
- package/dist/lib/provider/tanstack/config.js +11 -0
- package/dist/lib/provider/tanstack/index.d.ts +4 -0
- package/dist/lib/provider/tanstack/index.d.ts.map +1 -0
- package/dist/lib/provider/tanstack/index.js +4 -0
- package/dist/lib/provider/tanstack/provider.d.ts +3 -0
- package/dist/lib/provider/tanstack/provider.d.ts.map +1 -0
- package/dist/lib/provider/tanstack/provider.js +22 -0
- package/dist/lib/provider/tanstack/root-document.d.ts +8 -0
- package/dist/lib/provider/tanstack/root-document.d.ts.map +1 -0
- package/dist/lib/provider/tanstack/root-document.js +28 -0
- package/dist/lib/provider/tanstack-docs/config.d.ts +14 -0
- package/dist/lib/provider/tanstack-docs/config.d.ts.map +1 -0
- package/dist/lib/provider/tanstack-docs/config.js +39 -0
- package/dist/lib/provider/tanstack-docs/i18n.d.ts +4 -0
- package/dist/lib/provider/tanstack-docs/i18n.d.ts.map +1 -0
- package/dist/lib/provider/tanstack-docs/i18n.js +30 -0
- package/dist/lib/provider/tanstack-docs/index.d.ts +5 -0
- package/dist/lib/provider/tanstack-docs/index.d.ts.map +1 -0
- package/dist/lib/provider/tanstack-docs/index.js +5 -0
- package/dist/lib/provider/tanstack-docs/routes.d.ts +13 -0
- package/dist/lib/provider/tanstack-docs/routes.d.ts.map +1 -0
- package/dist/lib/provider/tanstack-docs/routes.js +23 -0
- package/dist/lib/provider/tanstack-docs/search.d.ts +4 -0
- package/dist/lib/provider/tanstack-docs/search.d.ts.map +1 -0
- package/dist/lib/provider/tanstack-docs/search.js +24 -0
- package/dist/lib/provider/vite/config.d.ts +3 -0
- package/dist/lib/provider/vite/config.d.ts.map +1 -0
- package/dist/lib/provider/vite/config.js +29 -0
- package/dist/lib/provider/vite/index.d.ts +4 -0
- package/dist/lib/provider/vite/index.d.ts.map +1 -0
- package/dist/lib/provider/vite/index.js +4 -0
- package/dist/lib/provider/vite/provider.d.ts +3 -0
- package/dist/lib/provider/vite/provider.d.ts.map +1 -0
- package/dist/lib/provider/vite/provider.js +13 -0
- package/dist/lib/router/tanstack/index.d.ts +3 -0
- package/dist/lib/router/tanstack/index.d.ts.map +1 -0
- package/dist/lib/router/tanstack/index.js +3 -0
- package/dist/lib/router/tanstack/root.d.ts +3 -0
- package/dist/lib/router/tanstack/root.d.ts.map +1 -0
- package/dist/lib/router/tanstack/root.js +22 -0
- package/dist/lib/router/tanstack/router.d.ts +3 -0
- package/dist/lib/router/tanstack/router.d.ts.map +1 -0
- package/dist/lib/router/tanstack/router.js +22 -0
- package/dist/lib/runtime/docs/head.d.ts +46 -0
- package/dist/lib/runtime/docs/head.d.ts.map +1 -0
- package/dist/lib/runtime/docs/head.js +80 -0
- package/dist/lib/runtime/docs/i18n.d.ts +33 -0
- package/dist/lib/runtime/docs/i18n.d.ts.map +1 -0
- package/dist/lib/runtime/docs/i18n.js +41 -0
- package/dist/lib/runtime/docs/icons.d.ts +26 -0
- package/dist/lib/runtime/docs/icons.d.ts.map +1 -0
- package/dist/lib/runtime/docs/icons.js +103 -0
- package/dist/lib/runtime/docs/index.d.ts +9 -0
- package/dist/lib/runtime/docs/index.d.ts.map +1 -0
- package/dist/lib/runtime/docs/index.js +9 -0
- package/dist/lib/runtime/docs/openapi.d.ts +41 -0
- package/dist/lib/runtime/docs/openapi.d.ts.map +1 -0
- package/dist/lib/runtime/docs/openapi.js +40 -0
- package/dist/lib/runtime/docs/pages.d.ts +98 -0
- package/dist/lib/runtime/docs/pages.d.ts.map +1 -0
- package/dist/lib/runtime/docs/pages.js +89 -0
- package/dist/lib/runtime/docs/routes.d.ts +17 -0
- package/dist/lib/runtime/docs/routes.d.ts.map +1 -0
- package/dist/lib/runtime/docs/routes.js +45 -0
- package/dist/lib/runtime/docs/runtime.d.ts +185 -0
- package/dist/lib/runtime/docs/runtime.d.ts.map +1 -0
- package/dist/lib/runtime/docs/runtime.js +55 -0
- package/dist/lib/runtime/docs/static.d.ts +16 -0
- package/dist/lib/runtime/docs/static.d.ts.map +1 -0
- package/dist/lib/runtime/docs/static.js +20 -0
- package/dist/lib/story/index.d.ts +2 -0
- package/dist/lib/story/index.d.ts.map +1 -0
- package/dist/lib/story/index.js +5 -0
- package/dist/styles/docs/index.css +2 -0
- package/package.json +78 -2
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
//#region src/lib/provider/tanstack-docs/i18n.ts
|
|
2
|
+
var displayNameLanguageCode = (language) => {
|
|
3
|
+
return language === "cn" ? "zh" : language;
|
|
4
|
+
};
|
|
5
|
+
var displayNames = /* @__PURE__ */ new Map();
|
|
6
|
+
var getDisplayNames = (languageCode) => {
|
|
7
|
+
const cached = displayNames.get(languageCode);
|
|
8
|
+
if (cached) return cached;
|
|
9
|
+
const formatter = new Intl.DisplayNames([languageCode], { type: "language" });
|
|
10
|
+
displayNames.set(languageCode, formatter);
|
|
11
|
+
return formatter;
|
|
12
|
+
};
|
|
13
|
+
var getLanguageDisplayName = (language) => {
|
|
14
|
+
const languageCode = displayNameLanguageCode(language);
|
|
15
|
+
try {
|
|
16
|
+
return getDisplayNames(languageCode).of(languageCode) ?? language;
|
|
17
|
+
} catch {
|
|
18
|
+
return language;
|
|
19
|
+
}
|
|
20
|
+
};
|
|
21
|
+
var createDocsTranslations = (i18n, overrides) => {
|
|
22
|
+
const translations = {};
|
|
23
|
+
for (const language of i18n.languages) translations[language] = {
|
|
24
|
+
displayName: getLanguageDisplayName(language),
|
|
25
|
+
...overrides?.[language]
|
|
26
|
+
};
|
|
27
|
+
return translations;
|
|
28
|
+
};
|
|
29
|
+
//#endregion
|
|
30
|
+
export { createDocsTranslations, getLanguageDisplayName };
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export { createRootComponent, defineConfig } from './config';
|
|
2
|
+
export { getLanguageDisplayName } from './i18n';
|
|
3
|
+
export { assertRouteLocale, parseRouteLocale, redirectDefaultLocale } from './routes';
|
|
4
|
+
export { DocsSearchDialog } from './search';
|
|
5
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/provider/tanstack-docs/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAC5D,OAAO,EAAE,sBAAsB,EAAE,MAAM,QAAQ,CAAA;AAC/C,OAAO,EACL,iBAAiB,EACjB,gBAAgB,EAChB,qBAAqB,EACtB,MAAM,UAAU,CAAA;AACjB,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { getLanguageDisplayName } from "./i18n.js";
|
|
2
|
+
import { DocsSearchDialog } from "./search.js";
|
|
3
|
+
import { createRootComponent, defineConfig } from "./config.js";
|
|
4
|
+
import { assertRouteLocale, parseRouteLocale, redirectDefaultLocale } from "./routes.js";
|
|
5
|
+
export { DocsSearchDialog, assertRouteLocale, createRootComponent, defineConfig, getLanguageDisplayName, parseRouteLocale, redirectDefaultLocale };
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { I18nAPI } from '@vezham/docs-core/i18n';
|
|
2
|
+
export declare const parseRouteLocale: <Language extends string, Params extends {
|
|
3
|
+
lang?: string;
|
|
4
|
+
}>(i18n: I18nAPI<Language>, params: Params) => false | Params;
|
|
5
|
+
export declare const assertRouteLocale: <Language extends string, Params extends {
|
|
6
|
+
lang?: string;
|
|
7
|
+
}>(i18n: I18nAPI<Language>, params: Params, location: {
|
|
8
|
+
href: string;
|
|
9
|
+
}) => void;
|
|
10
|
+
export declare const redirectDefaultLocale: <Language extends string>(i18n: I18nAPI<Language>, location: {
|
|
11
|
+
href: string;
|
|
12
|
+
}) => void;
|
|
13
|
+
//# sourceMappingURL=routes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../../../src/lib/provider/tanstack-docs/routes.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAA;AAOrD,eAAO,MAAM,gBAAgB,GAC3B,QAAQ,SAAS,MAAM,EACvB,MAAM,SAAS;IAAE,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,EAEhC,MAAM,OAAO,CAAC,QAAQ,CAAC,EACvB,QAAQ,MAAM,mBAGf,CAAA;AAED,eAAO,MAAM,iBAAiB,GAC5B,QAAQ,SAAS,MAAM,EACvB,MAAM,SAAS;IAAE,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,EAEhC,MAAM,OAAO,CAAC,QAAQ,CAAC,EACvB,QAAQ,MAAM,EACd,UAAU;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,SAc3B,CAAA;AAED,eAAO,MAAM,qBAAqB,GAAI,QAAQ,SAAS,MAAM,EAC3D,MAAM,OAAO,CAAC,QAAQ,CAAC,EACvB,UAAU;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,SAU3B,CAAA"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { getDefaultLocaleRedirectHref, isOptionalLocaleParam } from "../../runtime/docs/i18n.js";
|
|
2
|
+
import { notFound, redirect } from "@tanstack/react-router";
|
|
3
|
+
//#region src/lib/provider/tanstack-docs/routes.ts
|
|
4
|
+
var parseRouteLocale = (i18n, params) => {
|
|
5
|
+
return isOptionalLocaleParam(i18n, params.lang) ? params : false;
|
|
6
|
+
};
|
|
7
|
+
var assertRouteLocale = (i18n, params, location) => {
|
|
8
|
+
if (!isOptionalLocaleParam(i18n, params.lang)) throw notFound();
|
|
9
|
+
const redirectHref = getDefaultLocaleRedirectHref(i18n, location.href);
|
|
10
|
+
if (redirectHref) throw redirect({
|
|
11
|
+
href: redirectHref,
|
|
12
|
+
statusCode: 301
|
|
13
|
+
});
|
|
14
|
+
};
|
|
15
|
+
var redirectDefaultLocale = (i18n, location) => {
|
|
16
|
+
const redirectHref = getDefaultLocaleRedirectHref(i18n, location.href);
|
|
17
|
+
if (redirectHref) throw redirect({
|
|
18
|
+
href: redirectHref,
|
|
19
|
+
statusCode: 301
|
|
20
|
+
});
|
|
21
|
+
};
|
|
22
|
+
//#endregion
|
|
23
|
+
export { assertRouteLocale, parseRouteLocale, redirectDefaultLocale };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../../../src/lib/provider/tanstack-docs/search.tsx"],"names":[],"mappings":"AAIA,OAAO,EASL,KAAK,WAAW,EACjB,MAAM,6CAA6C,CAAA;AAGpD,QAAA,MAAM,gBAAgB,GAAI,OAAO,WAAW,gCAyB3C,CAAA;AAED,OAAO,EAAE,gBAAgB,EAAE,CAAA"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { useDocsSearch } from "@vezham/docs-core/search/client";
|
|
4
|
+
import { staticClient } from "@vezham/docs-core/search/client/orama-static";
|
|
5
|
+
import { SearchDialog, SearchDialogClose, SearchDialogContent, SearchDialogHeader, SearchDialogIcon, SearchDialogInput, SearchDialogList, SearchDialogOverlay } from "@vezham/docs-react/components/dialog/search";
|
|
6
|
+
import { useI18n } from "@vezham/docs-react/contexts/i18n";
|
|
7
|
+
//#region src/lib/provider/tanstack-docs/search.tsx
|
|
8
|
+
var DocsSearchDialog = (props) => {
|
|
9
|
+
const { locale } = useI18n();
|
|
10
|
+
const { search, setSearch, query } = useDocsSearch({ client: staticClient({ locale }) });
|
|
11
|
+
return /* @__PURE__ */ jsxs(SearchDialog, {
|
|
12
|
+
search,
|
|
13
|
+
onSearchChange: setSearch,
|
|
14
|
+
isLoading: query.isLoading,
|
|
15
|
+
...props,
|
|
16
|
+
children: [/* @__PURE__ */ jsx(SearchDialogOverlay, {}), /* @__PURE__ */ jsxs(SearchDialogContent, { children: [/* @__PURE__ */ jsxs(SearchDialogHeader, { children: [
|
|
17
|
+
/* @__PURE__ */ jsx(SearchDialogIcon, {}),
|
|
18
|
+
/* @__PURE__ */ jsx(SearchDialogInput, {}),
|
|
19
|
+
/* @__PURE__ */ jsx(SearchDialogClose, {})
|
|
20
|
+
] }), /* @__PURE__ */ jsx(SearchDialogList, { items: query.data !== "empty" ? query.data : null })] })]
|
|
21
|
+
});
|
|
22
|
+
};
|
|
23
|
+
//#endregion
|
|
24
|
+
export { DocsSearchDialog };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../../src/lib/provider/vite/config.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAa,KAAK,KAAK,EAAE,MAAM,iBAAiB,CAAA;AAGvD,eAAO,MAAM,YAAY,GAAI,OAAO,KAAK,SAqBxC,CAAA"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { config, preConfig } from "../shared/config.js";
|
|
2
|
+
import { NAMESPACE } from "../shared/types.js";
|
|
3
|
+
import { Provider } from "./provider.js";
|
|
4
|
+
import { jsx } from "react/jsx-runtime";
|
|
5
|
+
import ReactDOM from "react-dom/client";
|
|
6
|
+
import { APP_ID, APP_NAME, APP_VER } from "@vezham/env/vite";
|
|
7
|
+
import { useLogger } from "@vezham/use-logger";
|
|
8
|
+
//#region src/lib/provider/vite/config.tsx
|
|
9
|
+
var defineConfig = (props) => {
|
|
10
|
+
const options = {
|
|
11
|
+
...props,
|
|
12
|
+
id: props.id || APP_ID,
|
|
13
|
+
name: props.name || APP_NAME,
|
|
14
|
+
version: props.version || APP_VER
|
|
15
|
+
};
|
|
16
|
+
const el = document.getElementById("root");
|
|
17
|
+
if (el && !el.getAttribute("data-vx-app")) {
|
|
18
|
+
document.documentElement.lang = options.lang ?? "en";
|
|
19
|
+
preConfig(options);
|
|
20
|
+
ReactDOM.createRoot(el).render(/* @__PURE__ */ jsx(Provider, {
|
|
21
|
+
...options,
|
|
22
|
+
runtime: "vite"
|
|
23
|
+
}));
|
|
24
|
+
el.setAttribute("data-vx-app", options.name || "");
|
|
25
|
+
config(options);
|
|
26
|
+
} else useLogger.log(NAMESPACE, "[provider] | root el is missing");
|
|
27
|
+
};
|
|
28
|
+
//#endregion
|
|
29
|
+
export { defineConfig };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/provider/vite/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../../../src/lib/provider/vite/provider.tsx"],"names":[],"mappings":"AAWA,QAAA,MAAM,QAAQ,qDAEZ,CAAA;AAEF,OAAO,EAAE,QAAQ,EAAE,CAAA"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { createProvider } from "../shared/provider.js";
|
|
2
|
+
import { APP_ENV, APP_ID, APP_NAME, APP_VER, __DEBUG__, __DEV__ } from "@vezham/env/vite";
|
|
3
|
+
//#region src/lib/provider/vite/provider.tsx
|
|
4
|
+
var Provider = createProvider({ env: {
|
|
5
|
+
APP_ID,
|
|
6
|
+
APP_NAME,
|
|
7
|
+
APP_VER,
|
|
8
|
+
APP_ENV,
|
|
9
|
+
__DEBUG__,
|
|
10
|
+
__DEV__
|
|
11
|
+
} });
|
|
12
|
+
//#endregion
|
|
13
|
+
export { Provider };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/router/tanstack/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAA;AACnC,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"root.d.ts","sourceRoot":"","sources":["../../../../src/lib/router/tanstack/root.tsx"],"names":[],"mappings":"AAOA,eAAO,MAAM,UAAU,mCActB,CAAA;AAED,eAAO,MAAM,eAAe,mCAE3B,CAAA"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { ClientDevtools } from "../../provider/shared/devtools.js";
|
|
2
|
+
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { APP_ENV, APP_ID, APP_NAME, APP_VER, __DEV__ } from "@vezham/env/vite";
|
|
4
|
+
import { Outlet } from "@tanstack/react-router";
|
|
5
|
+
import { NotFound } from "@vezham/template/components";
|
|
6
|
+
//#region src/lib/router/tanstack/root.tsx
|
|
7
|
+
var RouterRoot = () => /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx(Outlet, {}), /* @__PURE__ */ jsx(ClientDevtools, {
|
|
8
|
+
app: {
|
|
9
|
+
id: APP_ID,
|
|
10
|
+
name: APP_NAME,
|
|
11
|
+
version: APP_VER,
|
|
12
|
+
environment: APP_ENV,
|
|
13
|
+
runtime: "vite"
|
|
14
|
+
},
|
|
15
|
+
env: __DEV__
|
|
16
|
+
})] });
|
|
17
|
+
var DefaultNotFound = () => /* @__PURE__ */ jsx(NotFound, {
|
|
18
|
+
app: APP_NAME,
|
|
19
|
+
version: APP_VER
|
|
20
|
+
});
|
|
21
|
+
//#endregion
|
|
22
|
+
export { DefaultNotFound, RouterRoot };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../../../../src/lib/router/tanstack/router.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,YAAY,IAAI,oBAAoB,EACrC,MAAM,wBAAwB,CAAA;AAM/B,eAAO,MAAM,YAAY,EAAE,OAAO,oBAkBjC,CAAA"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { DefaultNotFound } from "./root.js";
|
|
2
|
+
import { createRouter } from "@tanstack/react-router";
|
|
3
|
+
import { ErrorPage, Loading } from "@vezham/template/components";
|
|
4
|
+
//#region src/lib/router/tanstack/router.ts
|
|
5
|
+
var createRouter$1 = (options) => {
|
|
6
|
+
const notFoundComponent = options.defaultNotFoundComponent ?? DefaultNotFound;
|
|
7
|
+
const configureRoute = (route) => {
|
|
8
|
+
if (route !== options.routeTree && !route.options.notFoundComponent) route.update({ notFoundComponent });
|
|
9
|
+
route.children?.forEach(configureRoute);
|
|
10
|
+
};
|
|
11
|
+
if (options.routeTree) configureRoute(options.routeTree);
|
|
12
|
+
return createRouter({
|
|
13
|
+
scrollRestoration: true,
|
|
14
|
+
defaultPreload: "intent",
|
|
15
|
+
defaultPendingComponent: Loading,
|
|
16
|
+
defaultErrorComponent: ErrorPage,
|
|
17
|
+
defaultNotFoundComponent: notFoundComponent,
|
|
18
|
+
...options
|
|
19
|
+
});
|
|
20
|
+
};
|
|
21
|
+
//#endregion
|
|
22
|
+
export { createRouter$1 as createRouter };
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
export type DocsRouteHeadData = {
|
|
2
|
+
description?: string;
|
|
3
|
+
locale: string;
|
|
4
|
+
routePath: string;
|
|
5
|
+
title?: string;
|
|
6
|
+
};
|
|
7
|
+
export type DocsRouteHeadOptions = {
|
|
8
|
+
appName: string;
|
|
9
|
+
defaultLanguage: string;
|
|
10
|
+
docsImageRoute?: string;
|
|
11
|
+
docsRoute?: string;
|
|
12
|
+
languages: readonly string[];
|
|
13
|
+
openGraphImage: string;
|
|
14
|
+
openGraphImageSource?: string;
|
|
15
|
+
siteDescription: string;
|
|
16
|
+
siteUrl: string;
|
|
17
|
+
};
|
|
18
|
+
export declare const getDocsOgImagePath: ({ docsImageRoute, docsRoute, languages, openGraphImage, openGraphImageSource, routePath }: {
|
|
19
|
+
docsImageRoute?: string;
|
|
20
|
+
docsRoute?: string;
|
|
21
|
+
languages: readonly string[];
|
|
22
|
+
openGraphImage: string;
|
|
23
|
+
openGraphImageSource?: string;
|
|
24
|
+
routePath: string;
|
|
25
|
+
}) => string;
|
|
26
|
+
export declare const getDocsRouteHead: (data: DocsRouteHeadData | undefined, { appName, defaultLanguage, docsImageRoute, docsRoute, languages, openGraphImage, openGraphImageSource, siteDescription, siteUrl }: DocsRouteHeadOptions) => {
|
|
27
|
+
meta?: undefined;
|
|
28
|
+
} | {
|
|
29
|
+
meta: ({
|
|
30
|
+
title: string;
|
|
31
|
+
name?: undefined;
|
|
32
|
+
content?: undefined;
|
|
33
|
+
property?: undefined;
|
|
34
|
+
} | {
|
|
35
|
+
name: string;
|
|
36
|
+
content: string;
|
|
37
|
+
title?: undefined;
|
|
38
|
+
property?: undefined;
|
|
39
|
+
} | {
|
|
40
|
+
property: string;
|
|
41
|
+
content: string;
|
|
42
|
+
title?: undefined;
|
|
43
|
+
name?: undefined;
|
|
44
|
+
})[];
|
|
45
|
+
};
|
|
46
|
+
//# sourceMappingURL=head.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"head.d.ts","sourceRoot":"","sources":["../../../../src/lib/runtime/docs/head.ts"],"names":[],"mappings":"AAMA,MAAM,MAAM,iBAAiB,GAAG;IAC9B,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,MAAM,EAAE,MAAM,CAAA;IACd,SAAS,EAAE,MAAM,CAAA;IACjB,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,CAAA;AAED,MAAM,MAAM,oBAAoB,GAAG;IACjC,OAAO,EAAE,MAAM,CAAA;IACf,eAAe,EAAE,MAAM,CAAA;IACvB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,EAAE,SAAS,MAAM,EAAE,CAAA;IAC5B,cAAc,EAAE,MAAM,CAAA;IACtB,oBAAoB,CAAC,EAAE,MAAM,CAAA;IAC7B,eAAe,EAAE,MAAM,CAAA;IACvB,OAAO,EAAE,MAAM,CAAA;CAChB,CAAA;AAED,eAAO,MAAM,kBAAkB,GAAI,2FAOhC;IACD,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,EAAE,SAAS,MAAM,EAAE,CAAA;IAC5B,cAAc,EAAE,MAAM,CAAA;IACtB,oBAAoB,CAAC,EAAE,MAAM,CAAA;IAC7B,SAAS,EAAE,MAAM,CAAA;CAClB,WAkBA,CAAA;AAMD,eAAO,MAAM,gBAAgB,GAC3B,MAAM,iBAAiB,GAAG,SAAS,EACnC,oIAUG,oBAAoB;;;;;;;;;;;;;;;;;;;CAsCxB,CAAA"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import { defaultDocsImageRoute, defaultDocsRoute, normalizeDocsRoutePath } from "./routes.js";
|
|
2
|
+
//#region src/lib/runtime/docs/head.ts
|
|
3
|
+
var getDocsOgImagePath = ({ docsImageRoute = defaultDocsImageRoute, docsRoute = defaultDocsRoute, languages, openGraphImage, openGraphImageSource, routePath }) => {
|
|
4
|
+
if (!(openGraphImageSource === "default" || openGraphImage === "/og/image.png")) return openGraphImage;
|
|
5
|
+
const docsPath = normalizeDocsRoutePath({
|
|
6
|
+
docsRoute,
|
|
7
|
+
languages,
|
|
8
|
+
routePath
|
|
9
|
+
});
|
|
10
|
+
const docsImageRouteRoot = docsImageRoute.split("/").slice(0, -1).join("/");
|
|
11
|
+
if (docsPath !== docsRoute && !docsPath.startsWith(`${docsRoute}/`)) return `${docsImageRouteRoot}${docsPath}/image.png`;
|
|
12
|
+
return `${docsImageRoute}${docsPath === docsRoute ? "" : docsPath.slice(docsRoute.length)}/image.png`;
|
|
13
|
+
};
|
|
14
|
+
var absoluteSiteUrl = (pathname, siteUrl) => {
|
|
15
|
+
return new URL(pathname, `${siteUrl}/`).toString();
|
|
16
|
+
};
|
|
17
|
+
var getDocsRouteHead = (data, { appName, defaultLanguage, docsImageRoute, docsRoute = defaultDocsRoute, languages, openGraphImage, openGraphImageSource, siteDescription, siteUrl }) => {
|
|
18
|
+
if (!data) return {};
|
|
19
|
+
const title = data.title ? `${data.title} | ${appName}` : appName;
|
|
20
|
+
const description = data.description ?? siteDescription;
|
|
21
|
+
const docsPath = normalizeDocsRoutePath({
|
|
22
|
+
docsRoute,
|
|
23
|
+
languages,
|
|
24
|
+
routePath: data.routePath
|
|
25
|
+
});
|
|
26
|
+
const pageUrl = data.locale === defaultLanguage ? docsPath : `/${data.locale}${docsPath}`;
|
|
27
|
+
const imageUrl = getDocsOgImagePath({
|
|
28
|
+
docsImageRoute,
|
|
29
|
+
docsRoute,
|
|
30
|
+
languages,
|
|
31
|
+
openGraphImage,
|
|
32
|
+
openGraphImageSource,
|
|
33
|
+
routePath: docsPath
|
|
34
|
+
});
|
|
35
|
+
return { meta: [
|
|
36
|
+
{ title },
|
|
37
|
+
{
|
|
38
|
+
name: "description",
|
|
39
|
+
content: description
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
property: "og:title",
|
|
43
|
+
content: title
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
property: "og:description",
|
|
47
|
+
content: description
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
property: "og:image",
|
|
51
|
+
content: imageUrl
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
property: "og:url",
|
|
55
|
+
content: absoluteSiteUrl(pageUrl, siteUrl)
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
name: "twitter:title",
|
|
59
|
+
content: title
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
name: "twitter:description",
|
|
63
|
+
content: description
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
name: "twitter:image",
|
|
67
|
+
content: imageUrl
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
name: "twitter:url",
|
|
71
|
+
content: absoluteSiteUrl(pageUrl, siteUrl)
|
|
72
|
+
},
|
|
73
|
+
{
|
|
74
|
+
name: "twitter:card",
|
|
75
|
+
content: "summary_large_image"
|
|
76
|
+
}
|
|
77
|
+
] };
|
|
78
|
+
};
|
|
79
|
+
//#endregion
|
|
80
|
+
export { getDocsOgImagePath, getDocsRouteHead };
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { I18nConfig } from '@vezham/docs-core/i18n';
|
|
2
|
+
export type DocsI18nInput<Languages extends readonly string[]> = {
|
|
3
|
+
defaultLanguage: Languages[number];
|
|
4
|
+
hideLocale?: I18nConfig<Languages[number]>['hideLocale'];
|
|
5
|
+
languages: Languages;
|
|
6
|
+
};
|
|
7
|
+
export declare const createDocsI18n: <const Languages extends readonly string[]>(config: DocsI18nInput<Languages>) => import('@vezham/docs-core/i18n').I18nAPI<Languages[number]>;
|
|
8
|
+
export declare const normalizeLocale: <Locale extends string>(i18n: {
|
|
9
|
+
defaultLanguage: Locale;
|
|
10
|
+
languages: readonly Locale[];
|
|
11
|
+
}, lang?: string) => Locale;
|
|
12
|
+
export declare const isOptionalLocaleParam: <Locale extends string>(i18n: {
|
|
13
|
+
languages: readonly Locale[];
|
|
14
|
+
}, lang?: string) => lang is Locale | undefined;
|
|
15
|
+
export declare const isDefaultLocaleParam: <Locale extends string>(i18n: {
|
|
16
|
+
defaultLanguage: Locale;
|
|
17
|
+
}, lang?: string) => lang is Locale;
|
|
18
|
+
export declare const getDefaultLocaleRedirectHref: <Locale extends string>(i18n: {
|
|
19
|
+
defaultLanguage: Locale;
|
|
20
|
+
}, href: string) => string | undefined;
|
|
21
|
+
export declare const localizedUrl: <Locale extends string>(i18n: {
|
|
22
|
+
defaultLanguage: Locale;
|
|
23
|
+
}, locale: Locale, path: string) => string;
|
|
24
|
+
export declare const localizedRouteParam: <Locale extends string>(i18n: {
|
|
25
|
+
defaultLanguage: Locale;
|
|
26
|
+
}, locale?: Locale) => Locale | undefined;
|
|
27
|
+
export declare const localizeRouteBase: <Locale extends string>({ defaultLanguage, lang, languages, routeBase }: {
|
|
28
|
+
defaultLanguage?: Locale;
|
|
29
|
+
lang?: string;
|
|
30
|
+
languages: readonly Locale[];
|
|
31
|
+
routeBase: string;
|
|
32
|
+
}) => string;
|
|
33
|
+
//# sourceMappingURL=i18n.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"i18n.d.ts","sourceRoot":"","sources":["../../../../src/lib/runtime/docs/i18n.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,UAAU,EAAc,MAAM,wBAAwB,CAAA;AAEpE,MAAM,MAAM,aAAa,CAAC,SAAS,SAAS,SAAS,MAAM,EAAE,IAAI;IAC/D,eAAe,EAAE,SAAS,CAAC,MAAM,CAAC,CAAA;IAClC,UAAU,CAAC,EAAE,UAAU,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAA;IACxD,SAAS,EAAE,SAAS,CAAA;CACrB,CAAA;AAED,eAAO,MAAM,cAAc,GAAI,KAAK,CAAC,SAAS,SAAS,SAAS,MAAM,EAAE,EACtE,QAAQ,aAAa,CAAC,SAAS,CAAC,gEASjC,CAAA;AAED,eAAO,MAAM,eAAe,GAAI,MAAM,SAAS,MAAM,EACnD,MAAM;IACJ,eAAe,EAAE,MAAM,CAAA;IACvB,SAAS,EAAE,SAAS,MAAM,EAAE,CAAA;CAC7B,EACD,OAAO,MAAM,KACZ,MAIF,CAAA;AAED,eAAO,MAAM,qBAAqB,GAAI,MAAM,SAAS,MAAM,EACzD,MAAM;IACJ,SAAS,EAAE,SAAS,MAAM,EAAE,CAAA;CAC7B,EACD,OAAO,MAAM,KACZ,IAAI,IAAI,MAAM,GAAG,SAEnB,CAAA;AAED,eAAO,MAAM,oBAAoB,GAAI,MAAM,SAAS,MAAM,EACxD,MAAM;IACJ,eAAe,EAAE,MAAM,CAAA;CACxB,EACD,OAAO,MAAM,KACZ,IAAI,IAAI,MAEV,CAAA;AAMD,eAAO,MAAM,4BAA4B,GAAI,MAAM,SAAS,MAAM,EAChE,MAAM;IACJ,eAAe,EAAE,MAAM,CAAA;CACxB,EACD,MAAM,MAAM,uBAYb,CAAA;AAED,eAAO,MAAM,YAAY,GAAI,MAAM,SAAS,MAAM,EAChD,MAAM;IACJ,eAAe,EAAE,MAAM,CAAA;CACxB,EACD,QAAQ,MAAM,EACd,MAAM,MAAM,WAOb,CAAA;AAED,eAAO,MAAM,mBAAmB,GAAI,MAAM,SAAS,MAAM,EACvD,MAAM;IACJ,eAAe,EAAE,MAAM,CAAA;CACxB,EACD,SAAS,MAAM,uBAGhB,CAAA;AAED,eAAO,MAAM,iBAAiB,GAAI,MAAM,SAAS,MAAM,EAAE,iDAKtD;IACD,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,SAAS,EAAE,SAAS,MAAM,EAAE,CAAA;IAC5B,SAAS,EAAE,MAAM,CAAA;CAClB,WAMA,CAAA"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { defineI18n } from "@vezham/docs-core/i18n";
|
|
2
|
+
//#region src/lib/runtime/docs/i18n.ts
|
|
3
|
+
var createDocsI18n = (config) => {
|
|
4
|
+
const { hideLocale = "default-locale", languages, ...i18nConfig } = config;
|
|
5
|
+
return defineI18n({
|
|
6
|
+
...i18nConfig,
|
|
7
|
+
hideLocale,
|
|
8
|
+
languages: [...languages]
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var normalizeLocale = (i18n, lang) => {
|
|
12
|
+
return i18n.languages.includes(lang) ? lang : i18n.defaultLanguage;
|
|
13
|
+
};
|
|
14
|
+
var isOptionalLocaleParam = (i18n, lang) => {
|
|
15
|
+
return !lang || i18n.languages.includes(lang);
|
|
16
|
+
};
|
|
17
|
+
var isDefaultLocaleParam = (i18n, lang) => {
|
|
18
|
+
return lang === i18n.defaultLanguage;
|
|
19
|
+
};
|
|
20
|
+
var escapeRegExp = (value) => {
|
|
21
|
+
return value.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
22
|
+
};
|
|
23
|
+
var getDefaultLocaleRedirectHref = (i18n, href) => {
|
|
24
|
+
const defaultLocalePattern = escapeRegExp(i18n.defaultLanguage);
|
|
25
|
+
const defaultLocalePrefix = new RegExp(`^/${defaultLocalePattern}(?=/|\\?|#|$)`);
|
|
26
|
+
if (!defaultLocalePrefix.test(href)) return;
|
|
27
|
+
return href.replace(defaultLocalePrefix, "") || "/";
|
|
28
|
+
};
|
|
29
|
+
var localizedUrl = (i18n, locale, path) => {
|
|
30
|
+
const normalizedPath = path.startsWith("/") ? path : `/${path}`;
|
|
31
|
+
return locale === i18n.defaultLanguage ? normalizedPath : `/${locale}${normalizedPath}`;
|
|
32
|
+
};
|
|
33
|
+
var localizedRouteParam = (i18n, locale) => {
|
|
34
|
+
return locale && locale !== i18n.defaultLanguage ? locale : void 0;
|
|
35
|
+
};
|
|
36
|
+
var localizeRouteBase = ({ defaultLanguage, lang, languages, routeBase }) => {
|
|
37
|
+
const locale = languages.find((language) => language === lang);
|
|
38
|
+
return locale && locale !== defaultLanguage ? `/${locale}${routeBase}` : routeBase;
|
|
39
|
+
};
|
|
40
|
+
//#endregion
|
|
41
|
+
export { createDocsI18n, getDefaultLocaleRedirectHref, isDefaultLocaleParam, isOptionalLocaleParam, localizeRouteBase, localizedRouteParam, localizedUrl, normalizeLocale };
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { CSSProperties, ReactNode } from 'react';
|
|
2
|
+
import { LoaderPlugin } from '@vezham/docs-core/source';
|
|
3
|
+
import { metaSchema, pageSchema } from '@vezham/docs-core/source/schema';
|
|
4
|
+
export declare const defaultDocsIconAssetBaseUrl = "https://cdn.jsdelivr.net/npm/@vezham/icons@1.0.7/dist/cdn/icons";
|
|
5
|
+
export type DocsIconName = string;
|
|
6
|
+
export type DocsIconWeight = 'outline' | 'filled' | 'duotone';
|
|
7
|
+
export type DocsIconAlt = string | ((iconName: DocsIconName) => string);
|
|
8
|
+
export type DocsIconFrontmatter = {
|
|
9
|
+
iconAlt?: string;
|
|
10
|
+
iconColor?: CSSProperties['color'];
|
|
11
|
+
iconWeight?: DocsIconWeight;
|
|
12
|
+
};
|
|
13
|
+
export type DocsIconResolverOptions = {
|
|
14
|
+
alt?: DocsIconAlt;
|
|
15
|
+
assetBaseUrl?: string;
|
|
16
|
+
color?: CSSProperties['color'];
|
|
17
|
+
defaultIcon?: DocsIconName;
|
|
18
|
+
size?: number | string;
|
|
19
|
+
weight?: DocsIconWeight;
|
|
20
|
+
};
|
|
21
|
+
export declare const docsPageSchema: typeof pageSchema;
|
|
22
|
+
export declare const docsMetaSchema: typeof metaSchema;
|
|
23
|
+
export declare const toDocsIconName: (value: string) => string;
|
|
24
|
+
export declare const createDocsIconResolver: ({ alt, assetBaseUrl, color, defaultIcon, size, weight }?: DocsIconResolverOptions) => (icon?: string) => ReactNode;
|
|
25
|
+
export declare const docsIconsPlugin: (options?: DocsIconResolverOptions) => LoaderPlugin;
|
|
26
|
+
//# sourceMappingURL=icons.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"icons.d.ts","sourceRoot":"","sources":["../../../../src/lib/runtime/docs/icons.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,SAAS,EAAiB,MAAM,OAAO,CAAA;AAEzE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAC5D,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAA;AAExE,eAAO,MAAM,2BAA2B,oEAC2B,CAAA;AAEnE,MAAM,MAAM,YAAY,GAAG,MAAM,CAAA;AAEjC,MAAM,MAAM,cAAc,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,CAAA;AAE7D,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,CAAC,CAAC,QAAQ,EAAE,YAAY,KAAK,MAAM,CAAC,CAAA;AAEvE,MAAM,MAAM,mBAAmB,GAAG;IAChC,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,SAAS,CAAC,EAAE,aAAa,CAAC,OAAO,CAAC,CAAA;IAClC,UAAU,CAAC,EAAE,cAAc,CAAA;CAC5B,CAAA;AAED,MAAM,MAAM,uBAAuB,GAAG;IACpC,GAAG,CAAC,EAAE,WAAW,CAAA;IACjB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,KAAK,CAAC,EAAE,aAAa,CAAC,OAAO,CAAC,CAAA;IAC9B,WAAW,CAAC,EAAE,YAAY,CAAA;IAC1B,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACtB,MAAM,CAAC,EAAE,cAAc,CAAA;CACxB,CAAA;AAED,eAAO,MAAM,cAAc,EAIV,OAAO,UAAU,CAAA;AAElC,eAAO,MAAM,cAAc,EAIV,OAAO,UAAU,CAAA;AAUlC,eAAO,MAAM,cAAc,GAAI,OAAO,MAAM,WAE3C,CAAA;AAuBD,eAAO,MAAM,sBAAsB,GAAI,0DAOpC,uBAA4B,MACrB,OAAO,MAAM,KAAG,SAoCzB,CAAA;AAgDD,eAAO,MAAM,eAAe,GAC1B,UAAS,uBAA4B,KACpC,YAuBD,CAAA"}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
import { createElement } from "react";
|
|
2
|
+
import { metaSchema, pageSchema } from "@vezham/docs-core/source/schema";
|
|
3
|
+
//#region src/lib/runtime/docs/icons.ts
|
|
4
|
+
var defaultDocsIconAssetBaseUrl = "https://cdn.jsdelivr.net/npm/@vezham/icons@1.0.7/dist/cdn/icons";
|
|
5
|
+
var docsPageSchema = pageSchema.extend({
|
|
6
|
+
iconAlt: pageSchema.shape.description,
|
|
7
|
+
iconColor: pageSchema.shape.description,
|
|
8
|
+
iconWeight: pageSchema.shape.description
|
|
9
|
+
});
|
|
10
|
+
var docsMetaSchema = metaSchema.extend({
|
|
11
|
+
iconAlt: metaSchema.shape.description,
|
|
12
|
+
iconColor: metaSchema.shape.description,
|
|
13
|
+
iconWeight: metaSchema.shape.description
|
|
14
|
+
});
|
|
15
|
+
var toKebabIconName = (value) => {
|
|
16
|
+
return value.replace(/_/g, "-").replace(/([a-z0-9])([A-Z])/g, "$1-$2").replace(/([A-Z]+)([A-Z][a-z])/g, "$1-$2").toLowerCase();
|
|
17
|
+
};
|
|
18
|
+
var toDocsIconName = (value) => {
|
|
19
|
+
return toKebabIconName(value);
|
|
20
|
+
};
|
|
21
|
+
var isDocsIconWeight = (value) => {
|
|
22
|
+
return value === "outline" || value === "filled" || value === "duotone";
|
|
23
|
+
};
|
|
24
|
+
var getDocsIconAlt = (alt, iconName) => {
|
|
25
|
+
return typeof alt === "function" ? alt(iconName) : alt;
|
|
26
|
+
};
|
|
27
|
+
var getDocsIconAssetUrl = (iconName, weight, assetBaseUrl) => {
|
|
28
|
+
const suffix = weight === "filled" || weight === "duotone" ? `-${weight}` : "";
|
|
29
|
+
return `${assetBaseUrl.replace(/\/$/, "")}/${iconName}${suffix}.svg`;
|
|
30
|
+
};
|
|
31
|
+
var createDocsIconResolver = ({ alt, assetBaseUrl = defaultDocsIconAssetBaseUrl, color, defaultIcon, size = 16, weight } = {}) => {
|
|
32
|
+
return (icon) => {
|
|
33
|
+
const iconName = icon ?? defaultIcon;
|
|
34
|
+
if (iconName === void 0) return;
|
|
35
|
+
const normalizedIconName = toDocsIconName(iconName);
|
|
36
|
+
const iconSize = typeof size === "number" ? `${size}px` : size;
|
|
37
|
+
const iconUrl = getDocsIconAssetUrl(normalizedIconName, weight, assetBaseUrl);
|
|
38
|
+
const altText = getDocsIconAlt(alt, normalizedIconName);
|
|
39
|
+
const style = {
|
|
40
|
+
WebkitMask: `url("${iconUrl}") center / contain no-repeat`,
|
|
41
|
+
backgroundColor: "currentColor",
|
|
42
|
+
color,
|
|
43
|
+
display: "inline-block",
|
|
44
|
+
flexShrink: 0,
|
|
45
|
+
height: iconSize,
|
|
46
|
+
mask: `url("${iconUrl}") center / contain no-repeat`,
|
|
47
|
+
verticalAlign: "middle",
|
|
48
|
+
width: iconSize
|
|
49
|
+
};
|
|
50
|
+
return createElement("span", {
|
|
51
|
+
...altText ? {
|
|
52
|
+
"aria-label": altText,
|
|
53
|
+
role: "img"
|
|
54
|
+
} : { "aria-hidden": true },
|
|
55
|
+
"data-vx-icon": normalizedIconName,
|
|
56
|
+
"data-vx-icon-weight": weight,
|
|
57
|
+
style
|
|
58
|
+
});
|
|
59
|
+
};
|
|
60
|
+
};
|
|
61
|
+
var getString = (value) => {
|
|
62
|
+
return typeof value === "string" ? value : void 0;
|
|
63
|
+
};
|
|
64
|
+
var getDocsIconFrontmatter = (data) => {
|
|
65
|
+
if (!data || typeof data !== "object") return {};
|
|
66
|
+
const frontmatter = data;
|
|
67
|
+
const iconWeight = frontmatter.iconWeight;
|
|
68
|
+
return {
|
|
69
|
+
iconAlt: getString(frontmatter.iconAlt),
|
|
70
|
+
iconColor: getString(frontmatter.iconColor),
|
|
71
|
+
iconWeight: isDocsIconWeight(iconWeight) ? iconWeight : void 0
|
|
72
|
+
};
|
|
73
|
+
};
|
|
74
|
+
var createFrontmatterDocsIconResolver = (frontmatter, options) => {
|
|
75
|
+
return createDocsIconResolver({
|
|
76
|
+
...options,
|
|
77
|
+
alt: frontmatter.iconAlt ?? options.alt,
|
|
78
|
+
color: frontmatter.iconColor ?? options.color,
|
|
79
|
+
weight: frontmatter.iconWeight ?? options.weight
|
|
80
|
+
});
|
|
81
|
+
};
|
|
82
|
+
var resolveDocsNodeIcon = (node, options, frontmatter = {}) => {
|
|
83
|
+
if (node.icon === void 0 || typeof node.icon === "string") node.icon = createFrontmatterDocsIconResolver(frontmatter, options)(node.icon);
|
|
84
|
+
return node;
|
|
85
|
+
};
|
|
86
|
+
var docsIconsPlugin = (options = {}) => ({
|
|
87
|
+
name: "vezham:docs-icons",
|
|
88
|
+
transformPageTree: {
|
|
89
|
+
file(node, filePath) {
|
|
90
|
+
const file = filePath ? this.storage.read(filePath) : void 0;
|
|
91
|
+
return resolveDocsNodeIcon(node, options, file?.format === "page" ? getDocsIconFrontmatter(file.data) : void 0);
|
|
92
|
+
},
|
|
93
|
+
folder(node, _folderPath, metaPath) {
|
|
94
|
+
const file = metaPath ? this.storage.read(metaPath) : void 0;
|
|
95
|
+
return resolveDocsNodeIcon(node, options, file?.format === "meta" ? getDocsIconFrontmatter(file.data) : void 0);
|
|
96
|
+
},
|
|
97
|
+
separator(node) {
|
|
98
|
+
return resolveDocsNodeIcon(node, options);
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
});
|
|
102
|
+
//#endregion
|
|
103
|
+
export { createDocsIconResolver, defaultDocsIconAssetBaseUrl, docsIconsPlugin, docsMetaSchema, docsPageSchema, toDocsIconName };
|