@clarify-labs/renderer 0.10.0 → 0.10.1
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/output/{ClarifyShell-CxhXBtsR.js → ClarifyShell-1LuBliwt.js} +124 -40
- package/output/ClarifyShell-1LuBliwt.js.map +1 -0
- package/output/{ClarifyShell-DjLRRW8T.cjs → ClarifyShell-C6li72Ce.cjs} +136 -52
- package/output/ClarifyShell-C6li72Ce.cjs.map +1 -0
- package/output/MermaidViewer-B6-BMCJG.cjs +101 -0
- package/output/MermaidViewer-B6-BMCJG.cjs.map +1 -0
- package/output/MermaidViewer-dXsomvM7.js +98 -0
- package/output/MermaidViewer-dXsomvM7.js.map +1 -0
- package/output/{OpenApiOperation-CyBkzvob.js → OpenApiOperation-CqNM-no4.js} +250 -188
- package/output/OpenApiOperation-CqNM-no4.js.map +1 -0
- package/output/{OpenApiOperation-qp5tFaWP.cjs → OpenApiOperation-DK46w2dq.cjs} +277 -203
- package/output/OpenApiOperation-DK46w2dq.cjs.map +1 -0
- package/output/{PageActions-GS_cxeJN.cjs → PageActions-BjB6PYmL.cjs} +73 -734
- package/output/PageActions-BjB6PYmL.cjs.map +1 -0
- package/output/{PageActions-Dn8IGWoL.js → PageActions-D7K9LDGf.js} +67 -680
- package/output/PageActions-D7K9LDGf.js.map +1 -0
- package/output/SearchDialog-CIPvXMT3.cjs +414 -0
- package/output/SearchDialog-CIPvXMT3.cjs.map +1 -0
- package/output/SearchDialog-CxYLjRi5.js +411 -0
- package/output/SearchDialog-CxYLjRi5.js.map +1 -0
- package/output/app/AppShell.d.ts +2 -2
- package/output/app/SectionHashSync.d.ts +6 -0
- package/output/client.cjs +3 -3
- package/output/client.js +3 -3
- package/output/components/MermaidViewer.d.ts +7 -0
- package/output/context.d.ts +1 -1
- package/output/core/context.d.ts +3 -4
- package/output/core/i18n.d.ts +1 -1
- package/output/core/index.d.ts +1 -1
- package/output/core/types.d.ts +36 -19
- package/output/i18n-DnqZHFT7.js +247 -0
- package/output/i18n-DnqZHFT7.js.map +1 -0
- package/output/i18n-b4iTLeia.cjs +294 -0
- package/output/i18n-b4iTLeia.cjs.map +1 -0
- package/output/index.cjs +90 -93
- package/output/index.cjs.map +1 -1
- package/output/index.d.ts +5 -5
- package/output/index.js +83 -86
- package/output/index.js.map +1 -1
- package/output/openapi/components/EndpointSections.d.ts +3 -1
- package/output/openapi/components/ExamplePanels.d.ts +3 -1
- package/output/openapi/components/OpenApiOperation.d.ts +3 -1
- package/output/openapi/components/OpenApiOperation.state.d.ts +3 -3
- package/output/openapi/components/SchemaProperties.d.ts +1 -0
- package/output/openapi/components/helpers.d.ts +2 -2
- package/output/openapi/entry.d.ts +0 -1
- package/output/openapi/lib/helpers.d.ts +5 -3
- package/output/openapi/lib/request-code.d.ts +2 -1
- package/output/openapi/lib/spec-path.d.ts +6 -1
- package/output/openapi/lib/utils.d.ts +10 -4
- package/output/preview.cjs +7 -5
- package/output/preview.cjs.map +1 -1
- package/output/preview.js +5 -3
- package/output/preview.js.map +1 -1
- package/output/{render-CV0a-qtD.js → render-DKj24Jqw.js} +15 -8
- package/output/render-DKj24Jqw.js.map +1 -0
- package/output/{render-CCCoUWDP.cjs → render-Di5B6Zc0.cjs} +15 -8
- package/output/render-Di5B6Zc0.cjs.map +1 -0
- package/output/renderer.css +54 -0
- package/output/runtime/ClarifyShell.d.ts +5 -6
- package/output/server.cjs +4 -4
- package/output/server.cjs.map +1 -1
- package/output/server.js +4 -4
- package/output/server.js.map +1 -1
- package/output/shell/Navigation.d.ts +1 -0
- package/output/shell/search/SearchDialog.d.ts +1 -1
- package/output/slots/RuntimeSlot.d.ts +7 -7
- package/output/slots/context.d.ts +5 -5
- package/output/slots/index.d.ts +2 -2
- package/output/slots/types.d.ts +1 -1
- package/output/utils/path.d.ts +1 -1
- package/package.json +1 -1
- package/output/ClarifyShell-CxhXBtsR.js.map +0 -1
- package/output/ClarifyShell-DjLRRW8T.cjs.map +0 -1
- package/output/OpenApiOperation-CyBkzvob.js.map +0 -1
- package/output/OpenApiOperation-qp5tFaWP.cjs.map +0 -1
- package/output/PageActions-Dn8IGWoL.js.map +0 -1
- package/output/PageActions-GS_cxeJN.cjs.map +0 -1
- package/output/render-CCCoUWDP.cjs.map +0 -1
- package/output/render-CV0a-qtD.js.map +0 -1
|
@@ -1,20 +1,22 @@
|
|
|
1
|
-
import { t as ClarifyShell } from "./ClarifyShell-
|
|
1
|
+
import { t as ClarifyShell } from "./ClarifyShell-1LuBliwt.js";
|
|
2
2
|
import { StrictMode } from "react";
|
|
3
3
|
import { BrowserRouter } from "react-router-dom";
|
|
4
4
|
import { jsx } from "react/jsx-runtime";
|
|
5
5
|
import { createRoot, hydrateRoot } from "react-dom/client";
|
|
6
6
|
//#region source/runtime/render.tsx
|
|
7
|
+
var root;
|
|
7
8
|
/**
|
|
8
9
|
* Clarify 客户端 Hydration 入口。
|
|
9
10
|
* 在文档项目的 main.tsx 中调用:
|
|
10
11
|
* ```ts
|
|
11
12
|
* import { render } from '@clarify-labs/renderer';
|
|
12
|
-
* import { routes } from 'virtual:clarify
|
|
13
|
-
* import { config } from 'virtual:clarify
|
|
13
|
+
* import { routes } from 'virtual:clarify/routes';
|
|
14
|
+
* import { config } from 'virtual:clarify/config';
|
|
14
15
|
* render({ config, routes });
|
|
15
16
|
* ```
|
|
16
17
|
*/
|
|
17
18
|
function isHydrationDebugEnabled() {
|
|
19
|
+
if (typeof window === "undefined") return false;
|
|
18
20
|
try {
|
|
19
21
|
return new URLSearchParams(window.location.search).get("clarifyHydrationDebug") === "1" || window.localStorage.getItem("clarify:hydration-debug") === "1";
|
|
20
22
|
} catch {
|
|
@@ -22,7 +24,7 @@ function isHydrationDebugEnabled() {
|
|
|
22
24
|
}
|
|
23
25
|
}
|
|
24
26
|
function render(options) {
|
|
25
|
-
const { config, routes, navigation,
|
|
27
|
+
const { config, routes, navigation, openApiSpecs = {}, runtimeSlots, container, themeEditor = false } = options;
|
|
26
28
|
const target = container ?? document.getElementById("root");
|
|
27
29
|
if (!target) throw new Error("[clarify] 渲染失败:找不到挂载节点,请确保 HTML 中存在 id=\"root\" 的元素");
|
|
28
30
|
const app = /* @__PURE__ */ jsx(StrictMode, { children: /* @__PURE__ */ jsx(BrowserRouter, {
|
|
@@ -31,22 +33,27 @@ function render(options) {
|
|
|
31
33
|
config,
|
|
32
34
|
routes,
|
|
33
35
|
navigation,
|
|
34
|
-
|
|
36
|
+
openApiSpecs,
|
|
35
37
|
runtimeSlots,
|
|
36
38
|
themeEditor
|
|
37
39
|
})
|
|
38
40
|
}) });
|
|
39
41
|
const hydrationDebug = isHydrationDebugEnabled();
|
|
42
|
+
if (root) {
|
|
43
|
+
root.render(app);
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
40
46
|
try {
|
|
41
|
-
hydrateRoot(target, app, { onRecoverableError(error, errorInfo) {
|
|
47
|
+
root = hydrateRoot(target, app, { onRecoverableError(error, errorInfo) {
|
|
42
48
|
if (hydrationDebug) console.warn("[clarify] Recoverable hydration error:", error, errorInfo);
|
|
43
49
|
} });
|
|
44
50
|
} catch (err) {
|
|
45
51
|
console.warn("[clarify] Hydration failed, falling back to client render:", err);
|
|
46
|
-
createRoot(target)
|
|
52
|
+
root = createRoot(target);
|
|
53
|
+
root.render(app);
|
|
47
54
|
}
|
|
48
55
|
}
|
|
49
56
|
//#endregion
|
|
50
57
|
export { render as t };
|
|
51
58
|
|
|
52
|
-
//# sourceMappingURL=render-
|
|
59
|
+
//# sourceMappingURL=render-DKj24Jqw.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"render-DKj24Jqw.js","names":[],"sources":["../source/runtime/render.tsx"],"sourcesContent":["import { StrictMode } from 'react'\nimport { hydrateRoot, createRoot, type Root } from 'react-dom/client'\nimport { BrowserRouter } from 'react-router-dom'\n\nimport type { RenderOptions } from '../types'\n\nimport { ClarifyShell } from './ClarifyShell'\n\nlet root: Root | undefined\n\n/**\n * Clarify 客户端 Hydration 入口。\n * 在文档项目的 main.tsx 中调用:\n * ```ts\n * import { render } from '@clarify-labs/renderer';\n * import { routes } from 'virtual:clarify/routes';\n * import { config } from 'virtual:clarify/config';\n * render({ config, routes });\n * ```\n */\nfunction isHydrationDebugEnabled(): boolean {\n if (typeof window === 'undefined') return false\n\n try {\n const params = new URLSearchParams(window.location.search)\n return params.get('clarifyHydrationDebug') === '1' || window.localStorage.getItem('clarify:hydration-debug') === '1'\n } catch {\n return false\n }\n}\n\nexport function render(options: RenderOptions) {\n const { config, routes, navigation, openApiSpecs = {}, runtimeSlots, container, themeEditor = false } = options\n\n const target = container ?? document.getElementById('root')\n if (!target) {\n throw new Error('[clarify] 渲染失败:找不到挂载节点,请确保 HTML 中存在 id=\"root\" 的元素')\n }\n\n const app = (\n <StrictMode>\n <BrowserRouter basename={config.routePrefix}>\n <ClarifyShell\n config={config}\n routes={routes}\n navigation={navigation}\n openApiSpecs={openApiSpecs}\n runtimeSlots={runtimeSlots}\n themeEditor={themeEditor}\n />\n </BrowserRouter>\n </StrictMode>\n )\n\n const hydrationDebug = isHydrationDebugEnabled()\n\n if (root) {\n root.render(app)\n return\n }\n\n try {\n root = hydrateRoot(target as Element, app, {\n onRecoverableError(error, errorInfo) {\n // Phase 1: suppress hydration mismatch noise by default. React 19\n // recovers automatically, but diagnostics can be enabled explicitly.\n if (hydrationDebug) {\n console.warn('[clarify] Recoverable hydration error:', error, errorInfo)\n }\n },\n })\n } catch (err) {\n console.warn('[clarify] Hydration failed, falling back to client render:', err)\n root = createRoot(target as Element)\n root.render(app)\n }\n}\n"],"mappings":";;;;;;AAQA,IAAI;;;;;;;;;;;AAYJ,SAAS,0BAAmC;CAC1C,IAAI,OAAO,WAAW,aAAa,OAAO;CAE1C,IAAI;EAEF,OAAO,IADY,gBAAgB,OAAO,SAAS,MAC5C,CAAA,CAAO,IAAI,uBAAuB,MAAM,OAAO,OAAO,aAAa,QAAQ,yBAAyB,MAAM;CACnH,QAAQ;EACN,OAAO;CACT;AACF;AAEA,SAAgB,OAAO,SAAwB;CAC7C,MAAM,EAAE,QAAQ,QAAQ,YAAY,eAAe,CAAC,GAAG,cAAc,WAAW,cAAc,UAAU;CAExG,MAAM,SAAS,aAAa,SAAS,eAAe,MAAM;CAC1D,IAAI,CAAC,QACH,MAAM,IAAI,MAAM,qDAAmD;CAGrE,MAAM,MACJ,oBAAC,YAAD,EAAA,UACE,oBAAC,eAAD;EAAe,UAAU,OAAO;YAC9B,oBAAC,cAAD;GACU;GACA;GACI;GACE;GACA;GACD;EACd,CAAA;CACY,CAAA,EACL,CAAA;CAGd,MAAM,iBAAiB,wBAAwB;CAE/C,IAAI,MAAM;EACR,KAAK,OAAO,GAAG;EACf;CACF;CAEA,IAAI;EACF,OAAO,YAAY,QAAmB,KAAK,EACzC,mBAAmB,OAAO,WAAW;GAGnC,IAAI,gBACF,QAAQ,KAAK,0CAA0C,OAAO,SAAS;EAE3E,EACF,CAAC;CACH,SAAS,KAAK;EACZ,QAAQ,KAAK,8DAA8D,GAAG;EAC9E,OAAO,WAAW,MAAiB;EACnC,KAAK,OAAO,GAAG;CACjB;AACF"}
|
|
@@ -1,20 +1,22 @@
|
|
|
1
|
-
const require_ClarifyShell = require("./ClarifyShell-
|
|
1
|
+
const require_ClarifyShell = require("./ClarifyShell-C6li72Ce.cjs");
|
|
2
2
|
let react = require("react");
|
|
3
3
|
let react_router_dom = require("react-router-dom");
|
|
4
4
|
let react_jsx_runtime = require("react/jsx-runtime");
|
|
5
5
|
let react_dom_client = require("react-dom/client");
|
|
6
6
|
//#region source/runtime/render.tsx
|
|
7
|
+
var root;
|
|
7
8
|
/**
|
|
8
9
|
* Clarify 客户端 Hydration 入口。
|
|
9
10
|
* 在文档项目的 main.tsx 中调用:
|
|
10
11
|
* ```ts
|
|
11
12
|
* import { render } from '@clarify-labs/renderer';
|
|
12
|
-
* import { routes } from 'virtual:clarify
|
|
13
|
-
* import { config } from 'virtual:clarify
|
|
13
|
+
* import { routes } from 'virtual:clarify/routes';
|
|
14
|
+
* import { config } from 'virtual:clarify/config';
|
|
14
15
|
* render({ config, routes });
|
|
15
16
|
* ```
|
|
16
17
|
*/
|
|
17
18
|
function isHydrationDebugEnabled() {
|
|
19
|
+
if (typeof window === "undefined") return false;
|
|
18
20
|
try {
|
|
19
21
|
return new URLSearchParams(window.location.search).get("clarifyHydrationDebug") === "1" || window.localStorage.getItem("clarify:hydration-debug") === "1";
|
|
20
22
|
} catch {
|
|
@@ -22,7 +24,7 @@ function isHydrationDebugEnabled() {
|
|
|
22
24
|
}
|
|
23
25
|
}
|
|
24
26
|
function render(options) {
|
|
25
|
-
const { config, routes, navigation,
|
|
27
|
+
const { config, routes, navigation, openApiSpecs = {}, runtimeSlots, container, themeEditor = false } = options;
|
|
26
28
|
const target = container ?? document.getElementById("root");
|
|
27
29
|
if (!target) throw new Error("[clarify] 渲染失败:找不到挂载节点,请确保 HTML 中存在 id=\"root\" 的元素");
|
|
28
30
|
const app = /* @__PURE__ */ (0, react_jsx_runtime.jsx)(react.StrictMode, { children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(react_router_dom.BrowserRouter, {
|
|
@@ -31,19 +33,24 @@ function render(options) {
|
|
|
31
33
|
config,
|
|
32
34
|
routes,
|
|
33
35
|
navigation,
|
|
34
|
-
|
|
36
|
+
openApiSpecs,
|
|
35
37
|
runtimeSlots,
|
|
36
38
|
themeEditor
|
|
37
39
|
})
|
|
38
40
|
}) });
|
|
39
41
|
const hydrationDebug = isHydrationDebugEnabled();
|
|
42
|
+
if (root) {
|
|
43
|
+
root.render(app);
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
40
46
|
try {
|
|
41
|
-
(0, react_dom_client.hydrateRoot)(target, app, { onRecoverableError(error, errorInfo) {
|
|
47
|
+
root = (0, react_dom_client.hydrateRoot)(target, app, { onRecoverableError(error, errorInfo) {
|
|
42
48
|
if (hydrationDebug) console.warn("[clarify] Recoverable hydration error:", error, errorInfo);
|
|
43
49
|
} });
|
|
44
50
|
} catch (err) {
|
|
45
51
|
console.warn("[clarify] Hydration failed, falling back to client render:", err);
|
|
46
|
-
(0, react_dom_client.createRoot)(target)
|
|
52
|
+
root = (0, react_dom_client.createRoot)(target);
|
|
53
|
+
root.render(app);
|
|
47
54
|
}
|
|
48
55
|
}
|
|
49
56
|
//#endregion
|
|
@@ -54,4 +61,4 @@ Object.defineProperty(exports, "render", {
|
|
|
54
61
|
}
|
|
55
62
|
});
|
|
56
63
|
|
|
57
|
-
//# sourceMappingURL=render-
|
|
64
|
+
//# sourceMappingURL=render-Di5B6Zc0.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"render-Di5B6Zc0.cjs","names":[],"sources":["../source/runtime/render.tsx"],"sourcesContent":["import { StrictMode } from 'react'\nimport { hydrateRoot, createRoot, type Root } from 'react-dom/client'\nimport { BrowserRouter } from 'react-router-dom'\n\nimport type { RenderOptions } from '../types'\n\nimport { ClarifyShell } from './ClarifyShell'\n\nlet root: Root | undefined\n\n/**\n * Clarify 客户端 Hydration 入口。\n * 在文档项目的 main.tsx 中调用:\n * ```ts\n * import { render } from '@clarify-labs/renderer';\n * import { routes } from 'virtual:clarify/routes';\n * import { config } from 'virtual:clarify/config';\n * render({ config, routes });\n * ```\n */\nfunction isHydrationDebugEnabled(): boolean {\n if (typeof window === 'undefined') return false\n\n try {\n const params = new URLSearchParams(window.location.search)\n return params.get('clarifyHydrationDebug') === '1' || window.localStorage.getItem('clarify:hydration-debug') === '1'\n } catch {\n return false\n }\n}\n\nexport function render(options: RenderOptions) {\n const { config, routes, navigation, openApiSpecs = {}, runtimeSlots, container, themeEditor = false } = options\n\n const target = container ?? document.getElementById('root')\n if (!target) {\n throw new Error('[clarify] 渲染失败:找不到挂载节点,请确保 HTML 中存在 id=\"root\" 的元素')\n }\n\n const app = (\n <StrictMode>\n <BrowserRouter basename={config.routePrefix}>\n <ClarifyShell\n config={config}\n routes={routes}\n navigation={navigation}\n openApiSpecs={openApiSpecs}\n runtimeSlots={runtimeSlots}\n themeEditor={themeEditor}\n />\n </BrowserRouter>\n </StrictMode>\n )\n\n const hydrationDebug = isHydrationDebugEnabled()\n\n if (root) {\n root.render(app)\n return\n }\n\n try {\n root = hydrateRoot(target as Element, app, {\n onRecoverableError(error, errorInfo) {\n // Phase 1: suppress hydration mismatch noise by default. React 19\n // recovers automatically, but diagnostics can be enabled explicitly.\n if (hydrationDebug) {\n console.warn('[clarify] Recoverable hydration error:', error, errorInfo)\n }\n },\n })\n } catch (err) {\n console.warn('[clarify] Hydration failed, falling back to client render:', err)\n root = createRoot(target as Element)\n root.render(app)\n }\n}\n"],"mappings":";;;;;;AAQA,IAAI;;;;;;;;;;;AAYJ,SAAS,0BAAmC;CAC1C,IAAI,OAAO,WAAW,aAAa,OAAO;CAE1C,IAAI;EAEF,OAAO,IADY,gBAAgB,OAAO,SAAS,MAC5C,CAAA,CAAO,IAAI,uBAAuB,MAAM,OAAO,OAAO,aAAa,QAAQ,yBAAyB,MAAM;CACnH,QAAQ;EACN,OAAO;CACT;AACF;AAEA,SAAgB,OAAO,SAAwB;CAC7C,MAAM,EAAE,QAAQ,QAAQ,YAAY,eAAe,CAAC,GAAG,cAAc,WAAW,cAAc,UAAU;CAExG,MAAM,SAAS,aAAa,SAAS,eAAe,MAAM;CAC1D,IAAI,CAAC,QACH,MAAM,IAAI,MAAM,qDAAmD;CAGrE,MAAM,MACJ,iBAAA,GAAA,kBAAA,IAAA,CAAC,MAAA,YAAD,EAAA,UACE,iBAAA,GAAA,kBAAA,IAAA,CAAC,iBAAA,eAAD;EAAe,UAAU,OAAO;YAC9B,iBAAA,GAAA,kBAAA,IAAA,CAAC,qBAAA,cAAD;GACU;GACA;GACI;GACE;GACA;GACD;EACd,CAAA;CACY,CAAA,EACL,CAAA;CAGd,MAAM,iBAAiB,wBAAwB;CAE/C,IAAI,MAAM;EACR,KAAK,OAAO,GAAG;EACf;CACF;CAEA,IAAI;EACF,QAAA,GAAA,iBAAA,YAAA,CAAmB,QAAmB,KAAK,EACzC,mBAAmB,OAAO,WAAW;GAGnC,IAAI,gBACF,QAAQ,KAAK,0CAA0C,OAAO,SAAS;EAE3E,EACF,CAAC;CACH,SAAS,KAAK;EACZ,QAAQ,KAAK,8DAA8D,GAAG;EAC9E,QAAA,GAAA,iBAAA,WAAA,CAAkB,MAAiB;EACnC,KAAK,OAAO,GAAG;CACjB;AACF"}
|
package/output/renderer.css
CHANGED
|
@@ -106,9 +106,11 @@
|
|
|
106
106
|
--color-sky-700: oklch(50% .134 242.749);
|
|
107
107
|
--color-sky-900: oklch(39.1% .09 240.876);
|
|
108
108
|
--color-sky-950: oklch(29.3% .066 243.157);
|
|
109
|
+
--color-violet-200: oklch(89.4% .057 293.283);
|
|
109
110
|
--color-violet-300: oklch(81.1% .111 293.571);
|
|
110
111
|
--color-violet-400: oklch(70.2% .183 293.541);
|
|
111
112
|
--color-violet-500: oklch(60.6% .25 292.717);
|
|
113
|
+
--color-violet-700: oklch(49.1% .27 292.581);
|
|
112
114
|
--color-fuchsia-400: oklch(74% .238 322.16);
|
|
113
115
|
--color-fuchsia-500: oklch(66.7% .295 322.15);
|
|
114
116
|
--color-pink-300: oklch(82.3% .12 346.018);
|
|
@@ -739,6 +741,17 @@
|
|
|
739
741
|
|
|
740
742
|
:root, .clarify-app {
|
|
741
743
|
--clarify-http-method-delete-text: var(--color-rose-700);
|
|
744
|
+
--clarify-http-method-webhook-background: #a685ff3d;
|
|
745
|
+
}
|
|
746
|
+
|
|
747
|
+
@supports (color: color-mix(in lab, red, red)) {
|
|
748
|
+
:root, .clarify-app {
|
|
749
|
+
--clarify-http-method-webhook-background: color-mix(in srgb, var(--color-violet-400) 24%, transparent);
|
|
750
|
+
}
|
|
751
|
+
}
|
|
752
|
+
|
|
753
|
+
:root, .clarify-app {
|
|
754
|
+
--clarify-http-method-webhook-text: var(--color-violet-700);
|
|
742
755
|
--clarify-http-method-default-background: #9f9fa933;
|
|
743
756
|
}
|
|
744
757
|
|
|
@@ -955,6 +968,17 @@
|
|
|
955
968
|
|
|
956
969
|
.dark, .dark .clarify-app {
|
|
957
970
|
--clarify-http-method-delete-text: var(--color-rose-200);
|
|
971
|
+
--clarify-http-method-webhook-background: #a685ff4d;
|
|
972
|
+
}
|
|
973
|
+
|
|
974
|
+
@supports (color: color-mix(in lab, red, red)) {
|
|
975
|
+
.dark, .dark .clarify-app {
|
|
976
|
+
--clarify-http-method-webhook-background: color-mix(in srgb, var(--color-violet-400) 30%, transparent);
|
|
977
|
+
}
|
|
978
|
+
}
|
|
979
|
+
|
|
980
|
+
.dark, .dark .clarify-app {
|
|
981
|
+
--clarify-http-method-webhook-text: var(--color-violet-200);
|
|
958
982
|
--clarify-http-method-default-background: #9f9fa942;
|
|
959
983
|
}
|
|
960
984
|
|
|
@@ -3023,6 +3047,10 @@
|
|
|
3023
3047
|
background-color: var(--clarify-http-method-put-background);
|
|
3024
3048
|
}
|
|
3025
3049
|
|
|
3050
|
+
.bg-\(--clarify-http-method-webhook-background\) {
|
|
3051
|
+
background-color: var(--clarify-http-method-webhook-background);
|
|
3052
|
+
}
|
|
3053
|
+
|
|
3026
3054
|
.bg-\(--clarify-skeleton-accent-background\) {
|
|
3027
3055
|
background-color: var(--clarify-skeleton-accent-background);
|
|
3028
3056
|
}
|
|
@@ -3199,6 +3227,10 @@
|
|
|
3199
3227
|
}
|
|
3200
3228
|
}
|
|
3201
3229
|
|
|
3230
|
+
.bg-sky-100 {
|
|
3231
|
+
background-color: var(--color-sky-100);
|
|
3232
|
+
}
|
|
3233
|
+
|
|
3202
3234
|
.bg-sky-400\/10 {
|
|
3203
3235
|
background-color: #00bcfe1a;
|
|
3204
3236
|
}
|
|
@@ -3724,6 +3756,10 @@
|
|
|
3724
3756
|
color: var(--clarify-http-method-put-text);
|
|
3725
3757
|
}
|
|
3726
3758
|
|
|
3759
|
+
.text-\(--clarify-http-method-webhook-text\) {
|
|
3760
|
+
color: var(--clarify-http-method-webhook-text);
|
|
3761
|
+
}
|
|
3762
|
+
|
|
3727
3763
|
.text-\(--clarify-theme-tokens-colors-background\) {
|
|
3728
3764
|
color: var(--clarify-theme-tokens-colors-background);
|
|
3729
3765
|
}
|
|
@@ -3848,6 +3884,10 @@
|
|
|
3848
3884
|
color: var(--color-sky-600);
|
|
3849
3885
|
}
|
|
3850
3886
|
|
|
3887
|
+
.text-sky-700 {
|
|
3888
|
+
color: var(--color-sky-700);
|
|
3889
|
+
}
|
|
3890
|
+
|
|
3851
3891
|
.text-sky-900 {
|
|
3852
3892
|
color: var(--color-sky-900);
|
|
3853
3893
|
}
|
|
@@ -5056,6 +5096,16 @@
|
|
|
5056
5096
|
}
|
|
5057
5097
|
}
|
|
5058
5098
|
|
|
5099
|
+
.dark\:bg-sky-400\/15:where(.dark, .dark *) {
|
|
5100
|
+
background-color: #00bcfe26;
|
|
5101
|
+
}
|
|
5102
|
+
|
|
5103
|
+
@supports (color: color-mix(in lab, red, red)) {
|
|
5104
|
+
.dark\:bg-sky-400\/15:where(.dark, .dark *) {
|
|
5105
|
+
background-color: color-mix(in oklab, var(--color-sky-400) 15%, transparent);
|
|
5106
|
+
}
|
|
5107
|
+
}
|
|
5108
|
+
|
|
5059
5109
|
.dark\:bg-white:where(.dark, .dark *) {
|
|
5060
5110
|
background-color: var(--color-white);
|
|
5061
5111
|
}
|
|
@@ -5200,6 +5250,10 @@
|
|
|
5200
5250
|
color: var(--color-sky-100);
|
|
5201
5251
|
}
|
|
5202
5252
|
|
|
5253
|
+
.dark\:text-sky-200:where(.dark, .dark *) {
|
|
5254
|
+
color: var(--color-sky-200);
|
|
5255
|
+
}
|
|
5256
|
+
|
|
5203
5257
|
.dark\:text-sky-400:where(.dark, .dark *) {
|
|
5204
5258
|
color: var(--color-sky-400);
|
|
5205
5259
|
}
|
|
@@ -1,19 +1,18 @@
|
|
|
1
1
|
import { ReactNode } from 'react';
|
|
2
|
-
import { Config, NavigationTree, RouteItem } from '../core/types';
|
|
3
|
-
import {
|
|
4
|
-
import { RuntimeSlots } from '../slots';
|
|
2
|
+
import { Config, NavigationTree, OpenApiRegistry, RouteItem } from '../core/types';
|
|
3
|
+
import { RuntimeSlotRegistry } from '../slots';
|
|
5
4
|
export type ClarifyShellProps = {
|
|
6
5
|
config: Config;
|
|
7
6
|
routes: RouteItem[];
|
|
8
7
|
navigation?: NavigationTree;
|
|
9
|
-
|
|
10
|
-
runtimeSlots?:
|
|
8
|
+
openApiSpecs: OpenApiRegistry;
|
|
9
|
+
runtimeSlots?: RuntimeSlotRegistry;
|
|
11
10
|
themeEditor?: boolean;
|
|
12
11
|
children?: ReactNode;
|
|
13
12
|
};
|
|
14
13
|
/**
|
|
15
14
|
* Shared provider chain used by both client-side render and server-side
|
|
16
|
-
* renderToHTML. Wraps AppShell with ConfigContext →
|
|
15
|
+
* renderToHTML. Wraps AppShell with ConfigContext → OpenApiSpecsContext →
|
|
17
16
|
* ThemeProvider → ThemeRoot.
|
|
18
17
|
*
|
|
19
18
|
* The outer Router (BrowserRouter / StaticRouter) is left to the caller
|
package/output/server.cjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
-
const
|
|
3
|
-
const
|
|
2
|
+
const require_ClarifyShell = require("./ClarifyShell-C6li72Ce.cjs");
|
|
3
|
+
const require_PageActions = require("./PageActions-BjB6PYmL.cjs");
|
|
4
4
|
let react = require("react");
|
|
5
5
|
let react_router_dom = require("react-router-dom");
|
|
6
6
|
let react_jsx_runtime = require("react/jsx-runtime");
|
|
@@ -12,7 +12,7 @@ let react_dom_server = require("react-dom/server");
|
|
|
12
12
|
* 返回 `div#root` 内部的 HTML,由 Clarify CLI 组装为完整的 HTML 文档。
|
|
13
13
|
*/
|
|
14
14
|
function renderToHTML(options) {
|
|
15
|
-
const { config, routes, navigation,
|
|
15
|
+
const { config, routes, navigation, openApiSpecs = {}, runtimeSlots, url, themeEditor = false } = options;
|
|
16
16
|
const location = require_PageActions.prefixHref(url, config.routePrefix);
|
|
17
17
|
return (0, react_dom_server.renderToString)(/* @__PURE__ */ (0, react_jsx_runtime.jsx)(react.StrictMode, { children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(react_router_dom.StaticRouter, {
|
|
18
18
|
basename: config.routePrefix,
|
|
@@ -21,7 +21,7 @@ function renderToHTML(options) {
|
|
|
21
21
|
config,
|
|
22
22
|
routes,
|
|
23
23
|
navigation,
|
|
24
|
-
|
|
24
|
+
openApiSpecs,
|
|
25
25
|
runtimeSlots,
|
|
26
26
|
themeEditor
|
|
27
27
|
})
|
package/output/server.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.cjs","names":[],"sources":["../source/runtime/server.tsx"],"sourcesContent":["import { StrictMode } from 'react'\nimport { renderToString } from 'react-dom/server'\nimport { StaticRouter } from 'react-router-dom'\n\nimport type { ServerRenderOptions } from '../types'\nimport { prefixHref } from '../utils/href'\n\nimport { ClarifyShell } from './ClarifyShell'\n\n/**\n * Clarify 服务端渲染入口。\n * 由 @clarify-labs/cli 在构建时调用,为每条路由生成 React HTML 片段。\n * 返回 `div#root` 内部的 HTML,由 Clarify CLI 组装为完整的 HTML 文档。\n */\nexport function renderToHTML(options: ServerRenderOptions): string {\n const { config, routes, navigation,
|
|
1
|
+
{"version":3,"file":"server.cjs","names":[],"sources":["../source/runtime/server.tsx"],"sourcesContent":["import { StrictMode } from 'react'\nimport { renderToString } from 'react-dom/server'\nimport { StaticRouter } from 'react-router-dom'\n\nimport type { ServerRenderOptions } from '../types'\nimport { prefixHref } from '../utils/href'\n\nimport { ClarifyShell } from './ClarifyShell'\n\n/**\n * Clarify 服务端渲染入口。\n * 由 @clarify-labs/cli 在构建时调用,为每条路由生成 React HTML 片段。\n * 返回 `div#root` 内部的 HTML,由 Clarify CLI 组装为完整的 HTML 文档。\n */\nexport function renderToHTML(options: ServerRenderOptions): string {\n const { config, routes, navigation, openApiSpecs = {}, runtimeSlots, url, themeEditor = false } = options\n const location = prefixHref(url, config.routePrefix)\n\n return renderToString(\n <StrictMode>\n <StaticRouter basename={config.routePrefix} location={location}>\n <ClarifyShell\n config={config}\n routes={routes}\n navigation={navigation}\n openApiSpecs={openApiSpecs}\n runtimeSlots={runtimeSlots}\n themeEditor={themeEditor}\n />\n </StaticRouter>\n </StrictMode>\n )\n}\n"],"mappings":";;;;;;;;;;;;;AAcA,SAAgB,aAAa,SAAsC;CACjE,MAAM,EAAE,QAAQ,QAAQ,YAAY,eAAe,CAAC,GAAG,cAAc,KAAK,cAAc,UAAU;CAClG,MAAM,WAAW,oBAAA,WAAW,KAAK,OAAO,WAAW;CAEnD,QAAA,GAAA,iBAAA,eAAA,CACE,iBAAA,GAAA,kBAAA,IAAA,CAAC,MAAA,YAAD,EAAA,UACE,iBAAA,GAAA,kBAAA,IAAA,CAAC,iBAAA,cAAD;EAAc,UAAU,OAAO;EAAuB;YACpD,iBAAA,GAAA,kBAAA,IAAA,CAAC,qBAAA,cAAD;GACU;GACA;GACI;GACE;GACA;GACD;EACd,CAAA;CACW,CAAA,EACJ,CAAA,CACd;AACF"}
|
package/output/server.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { t as ClarifyShell } from "./ClarifyShell-1LuBliwt.js";
|
|
2
|
+
import { T as prefixHref } from "./PageActions-D7K9LDGf.js";
|
|
3
3
|
import { StrictMode } from "react";
|
|
4
4
|
import { StaticRouter } from "react-router-dom";
|
|
5
5
|
import { jsx } from "react/jsx-runtime";
|
|
@@ -11,7 +11,7 @@ import { renderToString } from "react-dom/server";
|
|
|
11
11
|
* 返回 `div#root` 内部的 HTML,由 Clarify CLI 组装为完整的 HTML 文档。
|
|
12
12
|
*/
|
|
13
13
|
function renderToHTML(options) {
|
|
14
|
-
const { config, routes, navigation,
|
|
14
|
+
const { config, routes, navigation, openApiSpecs = {}, runtimeSlots, url, themeEditor = false } = options;
|
|
15
15
|
const location = prefixHref(url, config.routePrefix);
|
|
16
16
|
return renderToString(/* @__PURE__ */ jsx(StrictMode, { children: /* @__PURE__ */ jsx(StaticRouter, {
|
|
17
17
|
basename: config.routePrefix,
|
|
@@ -20,7 +20,7 @@ function renderToHTML(options) {
|
|
|
20
20
|
config,
|
|
21
21
|
routes,
|
|
22
22
|
navigation,
|
|
23
|
-
|
|
23
|
+
openApiSpecs,
|
|
24
24
|
runtimeSlots,
|
|
25
25
|
themeEditor
|
|
26
26
|
})
|
package/output/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","names":[],"sources":["../source/runtime/server.tsx"],"sourcesContent":["import { StrictMode } from 'react'\nimport { renderToString } from 'react-dom/server'\nimport { StaticRouter } from 'react-router-dom'\n\nimport type { ServerRenderOptions } from '../types'\nimport { prefixHref } from '../utils/href'\n\nimport { ClarifyShell } from './ClarifyShell'\n\n/**\n * Clarify 服务端渲染入口。\n * 由 @clarify-labs/cli 在构建时调用,为每条路由生成 React HTML 片段。\n * 返回 `div#root` 内部的 HTML,由 Clarify CLI 组装为完整的 HTML 文档。\n */\nexport function renderToHTML(options: ServerRenderOptions): string {\n const { config, routes, navigation,
|
|
1
|
+
{"version":3,"file":"server.js","names":[],"sources":["../source/runtime/server.tsx"],"sourcesContent":["import { StrictMode } from 'react'\nimport { renderToString } from 'react-dom/server'\nimport { StaticRouter } from 'react-router-dom'\n\nimport type { ServerRenderOptions } from '../types'\nimport { prefixHref } from '../utils/href'\n\nimport { ClarifyShell } from './ClarifyShell'\n\n/**\n * Clarify 服务端渲染入口。\n * 由 @clarify-labs/cli 在构建时调用,为每条路由生成 React HTML 片段。\n * 返回 `div#root` 内部的 HTML,由 Clarify CLI 组装为完整的 HTML 文档。\n */\nexport function renderToHTML(options: ServerRenderOptions): string {\n const { config, routes, navigation, openApiSpecs = {}, runtimeSlots, url, themeEditor = false } = options\n const location = prefixHref(url, config.routePrefix)\n\n return renderToString(\n <StrictMode>\n <StaticRouter basename={config.routePrefix} location={location}>\n <ClarifyShell\n config={config}\n routes={routes}\n navigation={navigation}\n openApiSpecs={openApiSpecs}\n runtimeSlots={runtimeSlots}\n themeEditor={themeEditor}\n />\n </StaticRouter>\n </StrictMode>\n )\n}\n"],"mappings":";;;;;;;;;;;;AAcA,SAAgB,aAAa,SAAsC;CACjE,MAAM,EAAE,QAAQ,QAAQ,YAAY,eAAe,CAAC,GAAG,cAAc,KAAK,cAAc,UAAU;CAClG,MAAM,WAAW,WAAW,KAAK,OAAO,WAAW;CAEnD,OAAO,eACL,oBAAC,YAAD,EAAA,UACE,oBAAC,cAAD;EAAc,UAAU,OAAO;EAAuB;YACpD,oBAAC,cAAD;GACU;GACA;GACI;GACE;GACA;GACD;EACd,CAAA;CACW,CAAA,EACJ,CAAA,CACd;AACF"}
|
|
@@ -5,7 +5,7 @@ import { UISlotName } from './types';
|
|
|
5
5
|
* One registered slot component, as compiled by the CLI into
|
|
6
6
|
* `virtual:clarify/slots`.
|
|
7
7
|
*
|
|
8
|
-
* `
|
|
8
|
+
* `loadComponent` is a lazy import factory `() => import('path')`. On the client
|
|
9
9
|
* it is passed to `React.lazy`. During SSR the factory is pre-resolved and
|
|
10
10
|
* the resulting component is stored in `_resolved`, which the renderer uses
|
|
11
11
|
* directly (no Suspense needed for `renderToString`).
|
|
@@ -14,21 +14,21 @@ export type RuntimeSlotEntry = {
|
|
|
14
14
|
/** Plugin that registered this component, used as a stable render key. */
|
|
15
15
|
plugin: string;
|
|
16
16
|
/** Lazy import factory — `() => import('path')`. Set by CLI virtual module. */
|
|
17
|
-
|
|
17
|
+
loadComponent: () => Promise<{
|
|
18
18
|
default: ComponentType;
|
|
19
19
|
}>;
|
|
20
20
|
/** @internal Pre-resolved component set by SSR before {@link renderToHTML}. */
|
|
21
21
|
_resolved?: ComponentType;
|
|
22
22
|
};
|
|
23
23
|
/** Registry keyed by slot name. */
|
|
24
|
-
export type
|
|
24
|
+
export type RuntimeSlotRegistry = Partial<Record<UISlotName, RuntimeSlotEntry[]>>;
|
|
25
25
|
type RuntimeSlotsContextValue = {
|
|
26
|
-
slots:
|
|
26
|
+
slots: RuntimeSlotRegistry;
|
|
27
27
|
route?: RouteItem;
|
|
28
28
|
};
|
|
29
29
|
export declare const RuntimeSlotsContext: import('react').Context<RuntimeSlotsContextValue>;
|
|
30
30
|
type RuntimeSlotsProviderProps = {
|
|
31
|
-
slots?:
|
|
31
|
+
slots?: RuntimeSlotRegistry;
|
|
32
32
|
route?: RouteItem;
|
|
33
33
|
children: ReactNode;
|
|
34
34
|
};
|
|
@@ -36,7 +36,7 @@ type RuntimeSlotsProviderProps = {
|
|
|
36
36
|
* Makes the compiled slot registry and the current route available to every
|
|
37
37
|
* {@link RuntimeSlot} in the tree. Mounted once near the top of `AppShell`.
|
|
38
38
|
*/
|
|
39
|
-
export declare function RuntimeSlotsProvider(
|
|
39
|
+
export declare function RuntimeSlotsProvider(props: RuntimeSlotsProviderProps): ReactNode;
|
|
40
40
|
type RuntimeSlotProps = {
|
|
41
41
|
name: UISlotName;
|
|
42
42
|
/** Built-in default component for replacement slots. */
|
|
@@ -54,5 +54,5 @@ type RuntimeSlotProps = {
|
|
|
54
54
|
* compatibility with `renderToString`. Otherwise, `React.lazy` + `Suspense`
|
|
55
55
|
* is used for client-side code-splitting.
|
|
56
56
|
*/
|
|
57
|
-
export declare function RuntimeSlot(
|
|
57
|
+
export declare function RuntimeSlot(props: RuntimeSlotProps): ReactNode;
|
|
58
58
|
export {};
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { ReactNode } from 'react';
|
|
2
|
-
import { UISlotName,
|
|
3
|
-
export type { UISlotName,
|
|
2
|
+
import { UISlotName, UISlotContext } from './types';
|
|
3
|
+
export type { UISlotName, UISlotContext };
|
|
4
4
|
type SlotProviderProps = {
|
|
5
|
-
value:
|
|
5
|
+
value: UISlotContext;
|
|
6
6
|
children: ReactNode;
|
|
7
7
|
};
|
|
8
8
|
/**
|
|
9
|
-
* Provides an isolated {@link
|
|
9
|
+
* Provides an isolated {@link UISlotContext} for a single slot component.
|
|
10
10
|
* `RuntimeSlot` wraps every rendered slot component with this provider.
|
|
11
11
|
*/
|
|
12
12
|
export declare function SlotProvider(arg0: SlotProviderProps): ReactNode;
|
|
@@ -17,4 +17,4 @@ export declare function SlotProvider(arg0: SlotProviderProps): ReactNode;
|
|
|
17
17
|
* slot provider throws, which helps plugin authors notice that the component was
|
|
18
18
|
* not mounted through a Clarify slot.
|
|
19
19
|
*/
|
|
20
|
-
export declare function useSlot():
|
|
20
|
+
export declare function useSlot(): UISlotContext;
|
package/output/slots/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export { SlotProvider, useSlot } from './context';
|
|
2
|
-
export type {
|
|
2
|
+
export type { UISlotContext, UISlotName } from './context';
|
|
3
3
|
export { RuntimeSlot, RuntimeSlotsProvider, RuntimeSlotsContext } from './RuntimeSlot';
|
|
4
|
-
export type { RuntimeSlotEntry,
|
|
4
|
+
export type { RuntimeSlotEntry, RuntimeSlotRegistry } from './RuntimeSlot';
|
|
5
5
|
export type { UISlotRegistration } from './types';
|
package/output/slots/types.d.ts
CHANGED
|
@@ -16,7 +16,7 @@ export type UISlotName = 'page.footer.before' | 'page.banner.replace' | 'page.fo
|
|
|
16
16
|
* everything they need from this hook, which keeps slot components as ordinary
|
|
17
17
|
* React components and lets the slot context grow without changing signatures.
|
|
18
18
|
*/
|
|
19
|
-
export type
|
|
19
|
+
export type UISlotContext = {
|
|
20
20
|
/** The slot the current component is mounted into. */
|
|
21
21
|
name: UISlotName;
|
|
22
22
|
/** Name of the plugin that registered the current slot component. */
|
package/output/utils/path.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export declare function normalizeRoutePath(path: string): string;
|
|
2
|
-
export declare function isSameRoutePath(a: string | undefined, b: string | undefined): boolean;
|
|
2
|
+
export declare function isSameRoutePath(a: string | undefined, b: string | undefined, locale?: string): boolean;
|