wendang-react 0.6.2 → 0.6.4
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/NOTICE.md +1 -1
- package/README.md +105 -0
- package/dist/bindings/yjs.js +1 -5
- package/dist/chunks/AnchoredPanel-C7jMoPze.js +1 -0
- package/dist/chunks/DocumentExportMenu-CUMsgq3w.js +2 -0
- package/dist/chunks/Dropdown-D98tXfe0.js +3 -0
- package/dist/chunks/MindMapCanvas-CVXQXNOg.js +163 -0
- package/dist/chunks/MindMapViewer-BI8zbQM1.js +13 -0
- package/dist/chunks/SpreadsheetViewer-CoQ4VIgj.js +23 -0
- package/dist/chunks/code-highlight-BmaqTe1m.js +1 -30
- package/dist/chunks/code-highlight-engine-BFDzDPzy.js +1 -40
- package/dist/chunks/comment-hint-BhUxKjKK.js +14 -0
- package/dist/chunks/composition-state-Bl-U1R_2.js +1 -40
- package/dist/chunks/extensions-C1fCBnEs.js +14 -0
- package/dist/chunks/fuzzy-match-DYQR-4w2.js +1 -89
- package/dist/chunks/hooks-C53Dp0pr.js +1 -35
- package/dist/chunks/i18n-B0kCsIjc.js +2 -0
- package/dist/chunks/index-COeA2QcQ.js +15 -0
- package/dist/chunks/katex-WjrodtTU.js +1 -71
- package/dist/chunks/locale-DWpIJ_9X.js +1 -0
- package/dist/chunks/mind-map-controller-Ce76mETT.js +1 -0
- package/dist/chunks/mind-map-delete-CVsxdXfs.js +1 -31
- package/dist/chunks/mind-map-input-CEWRz_t6.js +1 -43
- package/dist/chunks/mind-topic-text-Bn1waxff.js +31 -0
- package/dist/chunks/popover-placement-D3xVYdkt.js +1 -47
- package/dist/chunks/worksheet-engine-c84sdD4N.js +1 -0
- package/dist/chunks/worksheet-preview-DsDVWxIM.js +1 -129
- package/dist/document/viewer.js +30 -289
- package/dist/document.js +120 -3622
- package/dist/export/json.js +1 -5
- package/dist/export/markdown.js +1 -2
- package/dist/export/mindmap.js +1 -2
- package/dist/export/pdf.js +1 -6
- package/dist/export/word.js +1 -2
- package/dist/export.js +1 -2
- package/dist/i18n.js +1 -0
- package/dist/index.js +1 -8
- package/dist/locales/en-US.js +1 -0
- package/dist/locales/es-ES.js +1 -0
- package/dist/locales/ja-JP.js +1 -0
- package/dist/locales/ko-KR.js +1 -0
- package/dist/locales/zh-CN.js +1 -0
- package/dist/locales/zh-TW.js +1 -0
- package/dist/mindmap/viewer.js +1 -6
- package/dist/mindmap.js +3 -123
- package/dist/shared.js +1 -52
- package/dist/spreadsheet/viewer.js +1 -5
- package/dist/spreadsheet/xlsx.js +1 -299
- package/dist/spreadsheet.js +2 -120
- package/dist/styles/callout.css +1 -34
- package/dist/styles/code-block.css +1 -58
- package/dist/styles/content-style.css +1 -619
- package/dist/styles/content-tokens.css +1 -29
- package/dist/styles/editor-interaction.css +1 -621
- package/dist/styles/file-video.css +1 -12
- package/dist/styles/image-preview.css +1 -103
- package/dist/styles/mind-map-block.css +1 -14
- package/dist/styles/mind-map-canvas.css +1 -80
- package/dist/styles/mind-map-comments.css +1 -93
- package/dist/styles/mind-map-details.css +1 -7
- package/dist/styles/mind-map-preview.css +1 -7
- package/dist/styles/mind-map-topic.css +1 -112
- package/dist/styles/page-picker.css +1 -47
- package/dist/styles/renderer.css +1 -45
- package/dist/styles/spreadsheet-editor.css +1 -3
- package/dist/styles/tokens.css +1 -142
- package/dist/styles/video-dialog.css +1 -41
- package/dist/styles/video-embed.css +1 -35
- package/dist/styles.css +1 -2631
- package/dist/types/editor/BlockAffordance.d.ts +5 -2
- package/dist/types/editor/CalloutView.d.ts +2 -1
- package/dist/types/editor/ImagePreview.d.ts +1 -1
- package/dist/types/editor/PagePicker.d.ts +1 -1
- package/dist/types/editor/extensions.d.ts +4 -1
- package/dist/types/engine/editor/block-commands.d.ts +1 -1
- package/dist/types/engine/editor/block-menu-hover.d.ts +16 -0
- package/dist/types/engine/editor/extensions/locale.d.ts +3 -0
- package/dist/types/engine/editor/nodes/image-nodeview.d.ts +1 -1
- package/dist/types/engine/host.d.ts +60 -2
- package/dist/types/engine/renderer/attachments.d.ts +3 -3
- package/dist/types/engine/shared/video-feedback.d.ts +1 -1
- package/dist/types/engine/worksheets/worksheet-engine.d.ts +1 -0
- package/dist/types/engine/worksheets/worksheet-xlsx.d.ts +6 -1
- package/dist/types/engine/wui/core/overlay-scrollbar.d.ts +4 -0
- package/dist/types/host-types.d.ts +2 -60
- package/dist/types/host.d.ts +8 -1
- package/dist/types/i18n.d.ts +3 -0
- package/dist/types/index.d.ts +2 -0
- package/dist/types/locales/en-US.d.ts +1 -0
- package/dist/types/locales/es-ES.d.ts +1 -0
- package/dist/types/locales/ja-JP.d.ts +1 -0
- package/dist/types/locales/ko-KR.d.ts +1 -0
- package/dist/types/locales/zh-CN.d.ts +1 -0
- package/dist/types/locales/zh-TW.d.ts +1 -0
- package/dist/types/spreadsheet/xlsx.d.ts +1 -1
- package/dist/types/wui/Dropdown.d.ts +2 -1
- package/dist/types/wui/index.d.ts +2 -1
- package/integrity.json +3135 -0
- package/package.json +15 -5
- package/verify-integrity.mjs +138 -0
- package/dist/chunks/AnchoredPanel-CSXrveAT.js +0 -68
- package/dist/chunks/DocumentExportMenu-DgDXDChd.js +0 -75
- package/dist/chunks/MindMapCanvas-I5M1SIyX.js +0 -2090
- package/dist/chunks/MindMapViewer-Nu3nEVHQ.js +0 -180
- package/dist/chunks/SpreadsheetViewer-CLDlnWyM.js +0 -163
- package/dist/chunks/comment-hint-Coq1laiR.js +0 -296
- package/dist/chunks/extensions-DMQedgOl.js +0 -4210
- package/dist/chunks/host-C-V688Rq.js +0 -197
- package/dist/chunks/index-CqaMYb3A.js +0 -720
- package/dist/chunks/mind-map-controller-B6SxK3GZ.js +0 -479
- package/dist/chunks/mind-topic-text-DYQR2Dzf.js +0 -446
- package/dist/chunks/nodes-iKqTGr_N.js +0 -291
- package/dist/chunks/worksheet-engine-TJ54m0KC.js +0 -125
- package/third-party-notices/wendang-export@0.6.0-NOTICE.md.txt +0 -51
- package/third-party-notices/wendang-export@0.6.1-LICENSE.txt +0 -21
- package/third-party-notices/wendang-export@0.6.2-LICENSE.txt +0 -21
- package/third-party-notices/wendang-export@0.6.2-NOTICE.md.txt +0 -70
- /package/third-party-notices/{wendang-export@0.6.0-LICENSE.txt → wendang-export@0.6.3-LICENSE.txt} +0 -0
- /package/third-party-notices/{wendang-export@0.6.1-NOTICE.md.txt → wendang-export@0.6.3-NOTICE.md.txt} +0 -0
package/dist/spreadsheet.js
CHANGED
|
@@ -1,120 +1,2 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
|
|
3
|
-
import { forwardRef, useRef, useState, useEffect, useImperativeHandle } from "react";
|
|
4
|
-
import { emptyWorkbook, validateWorkbook } from "wendang/spreadsheet";
|
|
5
|
-
import { a as useContentContext } from "./chunks/host-C-V688Rq.js";
|
|
6
|
-
import { u as useLatest, a as useReady, b as asError } from "./chunks/hooks-C53Dp0pr.js";
|
|
7
|
-
const SpreadsheetEditor = forwardRef(function SpreadsheetEditor2(props, ref) {
|
|
8
|
-
const root = useRef(null), engine = useRef(null);
|
|
9
|
-
const latest = useLatest(props), initial = useRef(props.value ?? props.defaultValue ?? emptyWorkbook("react-workbook"));
|
|
10
|
-
const emitted = useRef(null), [error, setError] = useState(""), [loading, setLoading] = useState(true);
|
|
11
|
-
const ready = useReady(), theme = useContentContext().theme;
|
|
12
|
-
const currentTheme = useLatest(props.theme ?? theme);
|
|
13
|
-
const fail = (error2) => {
|
|
14
|
-
var _a, _b;
|
|
15
|
-
setError(asError(error2).message);
|
|
16
|
-
(_b = (_a = latest.current).onError) == null ? void 0 : _b.call(_a, asError(error2));
|
|
17
|
-
};
|
|
18
|
-
useEffect(() => {
|
|
19
|
-
const host = root.current;
|
|
20
|
-
if (!host) return;
|
|
21
|
-
let disposed = false, instance = null;
|
|
22
|
-
const container = document.createElement("div");
|
|
23
|
-
container.style.cssText = "height:100%;min-height:0";
|
|
24
|
-
host.append(container);
|
|
25
|
-
void import("./chunks/worksheet-engine-TJ54m0KC.js").then((module) => {
|
|
26
|
-
var _a, _b;
|
|
27
|
-
if (disposed) return;
|
|
28
|
-
instance = module.createWorksheetEngine(container, validateWorkbook(latest.current.value ?? initial.current), () => {
|
|
29
|
-
var _a2, _b2;
|
|
30
|
-
if (!disposed && instance && !latest.current.disabled) {
|
|
31
|
-
try {
|
|
32
|
-
emitted.current = instance.snapshot();
|
|
33
|
-
(_b2 = (_a2 = latest.current).onChange) == null ? void 0 : _b2.call(_a2, emitted.current);
|
|
34
|
-
} catch (error2) {
|
|
35
|
-
fail(error2);
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
}, { theme: currentTheme.current });
|
|
39
|
-
engine.current = instance;
|
|
40
|
-
instance.setEditable(!latest.current.disabled);
|
|
41
|
-
ready.markReady();
|
|
42
|
-
setLoading(false);
|
|
43
|
-
(_b = (_a = latest.current).onReady) == null ? void 0 : _b.call(_a);
|
|
44
|
-
}).catch((error2) => {
|
|
45
|
-
if (!disposed) {
|
|
46
|
-
fail(error2);
|
|
47
|
-
setLoading(false);
|
|
48
|
-
}
|
|
49
|
-
});
|
|
50
|
-
return () => {
|
|
51
|
-
disposed = true;
|
|
52
|
-
engine.current = null;
|
|
53
|
-
queueMicrotask(() => {
|
|
54
|
-
instance == null ? void 0 : instance.dispose();
|
|
55
|
-
container.remove();
|
|
56
|
-
});
|
|
57
|
-
};
|
|
58
|
-
}, []);
|
|
59
|
-
useEffect(() => {
|
|
60
|
-
if (props.value && engine.current && props.value !== emitted.current) try {
|
|
61
|
-
engine.current.replace(validateWorkbook(props.value));
|
|
62
|
-
engine.current.setEditable(!latest.current.disabled);
|
|
63
|
-
} catch (error2) {
|
|
64
|
-
fail(error2);
|
|
65
|
-
}
|
|
66
|
-
}, [props.value]);
|
|
67
|
-
useEffect(() => {
|
|
68
|
-
var _a;
|
|
69
|
-
(_a = engine.current) == null ? void 0 : _a.setEditable(!props.disabled);
|
|
70
|
-
}, [props.disabled]);
|
|
71
|
-
useEffect(() => {
|
|
72
|
-
var _a;
|
|
73
|
-
(_a = engine.current) == null ? void 0 : _a.setTheme(props.theme ?? theme);
|
|
74
|
-
}, [props.theme, theme]);
|
|
75
|
-
const snapshot = () => {
|
|
76
|
-
var _a;
|
|
77
|
-
return ((_a = engine.current) == null ? void 0 : _a.snapshot()) ?? latest.current.value ?? initial.current;
|
|
78
|
-
};
|
|
79
|
-
useImperativeHandle(ref, () => ({
|
|
80
|
-
isReady: ready.isReady,
|
|
81
|
-
whenReady: ready.whenReady,
|
|
82
|
-
getSnapshot: snapshot,
|
|
83
|
-
snapshot,
|
|
84
|
-
async prepareSnapshot() {
|
|
85
|
-
if (!engine.current) throw new Error("工作表尚未就绪");
|
|
86
|
-
await engine.current.finishEditing();
|
|
87
|
-
return validateWorkbook(engine.current.snapshot());
|
|
88
|
-
},
|
|
89
|
-
isEditing: () => {
|
|
90
|
-
var _a;
|
|
91
|
-
return ((_a = engine.current) == null ? void 0 : _a.isEditing()) ?? false;
|
|
92
|
-
},
|
|
93
|
-
finishEditing: async () => {
|
|
94
|
-
var _a;
|
|
95
|
-
await ((_a = engine.current) == null ? void 0 : _a.finishEditing());
|
|
96
|
-
},
|
|
97
|
-
settleCalculation: async () => {
|
|
98
|
-
var _a;
|
|
99
|
-
await ((_a = engine.current) == null ? void 0 : _a.settleCalculation());
|
|
100
|
-
},
|
|
101
|
-
replace(value) {
|
|
102
|
-
if (!engine.current) throw new Error("工作表尚未就绪");
|
|
103
|
-
engine.current.replace(validateWorkbook(value));
|
|
104
|
-
engine.current.setEditable(!latest.current.disabled);
|
|
105
|
-
},
|
|
106
|
-
dispose() {
|
|
107
|
-
var _a;
|
|
108
|
-
(_a = engine.current) == null ? void 0 : _a.dispose();
|
|
109
|
-
engine.current = null;
|
|
110
|
-
}
|
|
111
|
-
}));
|
|
112
|
-
return /* @__PURE__ */ jsxs("section", { className: "wendang-spreadsheet", "aria-label": "工作表编辑器", children: [
|
|
113
|
-
loading && /* @__PURE__ */ jsx("p", { role: "status", children: "正在加载工作表…" }),
|
|
114
|
-
error && /* @__PURE__ */ jsx("p", { role: "alert", children: error }),
|
|
115
|
-
/* @__PURE__ */ jsx("div", { ref: root, className: "worksheet-grid" })
|
|
116
|
-
] });
|
|
117
|
-
});
|
|
118
|
-
export {
|
|
119
|
-
SpreadsheetEditor
|
|
120
|
-
};
|
|
1
|
+
"use client";import{jsxs as e,jsx as r}from"react/jsx-runtime";import{c as t,a as n}from"./chunks/i18n-B0kCsIjc.js";import{forwardRef as a,useRef as l,useState as c,useEffect as s,useImperativeHandle as u}from"react";import{emptyWorkbook as i,validateWorkbook as o}from"wendang/spreadsheet";import{u as d,a as h,b as p}from"./chunks/hooks-C53Dp0pr.js";const m=a(function SpreadsheetEditor2(a,m){const v=t(),f=v.text,g=l(null),w=l(null),E=d(a),b=l(a.value??a.defaultValue??i("react-workbook")),y=l(null),[k,R]=c(""),[j,C]=c(!0),x=h(),N=n().theme,S=d(a.theme??N),fail=e=>{var r,t;R(p(e).message),null==(t=(r=E.current).onError)||t.call(r,p(e))};s(()=>{const e=g.current;if(!e)return;let r=!1,t=null;const n=document.createElement("div");return n.style.cssText="height:100%;min-height:0",e.append(n),import("./chunks/worksheet-engine-c84sdD4N.js").then(async e=>{var a,l;r||(t=e.createWorksheetEngine(n,o(E.current.value??b.current),()=>{var e,n;if(!r&&t&&!E.current.disabled)try{y.current=t.snapshot(),null==(n=(e=E.current).onChange)||n.call(e,y.current)}catch(e){fail(e)}},{theme:S.current}),w.current=t,await t.setLocale(v.locale),r||(t.setEditable(!E.current.disabled),x.markReady(),C(!1),null==(l=(a=E.current).onReady)||l.call(a)))}).catch(e=>{r||(fail(e),C(!1))}),()=>{r=!0,w.current=null,queueMicrotask(()=>{null==t||t.dispose(),n.remove()})}},[]),s(()=>{if(a.value&&w.current&&a.value!==y.current)try{w.current.replace(o(a.value)),w.current.setEditable(!E.current.disabled)}catch(e){fail(e)}},[a.value]),s(()=>{var e;null==(e=w.current)||e.setEditable(!a.disabled)},[a.disabled]),s(()=>{var e;null==(e=w.current)||e.setTheme(a.theme??N)},[a.theme,N]),s(()=>{var e;null==(e=w.current)||e.setLocale(v.locale).catch(fail)},[v.locale]);const snapshot=()=>{var e;return(null==(e=w.current)?void 0:e.snapshot())??E.current.value??b.current};return u(m,()=>({isReady:x.isReady,whenReady:x.whenReady,getSnapshot:snapshot,snapshot:snapshot,async prepareSnapshot(){if(!w.current)throw new Error(f("工作表尚未就绪"));return await w.current.finishEditing(),o(w.current.snapshot())},isEditing:()=>{var e;return(null==(e=w.current)?void 0:e.isEditing())??!1},finishEditing:async()=>{var e;await(null==(e=w.current)?void 0:e.finishEditing())},settleCalculation:async()=>{var e;await(null==(e=w.current)?void 0:e.settleCalculation())},replace(e){if(!w.current)throw new Error(f("工作表尚未就绪"));w.current.replace(o(e)),w.current.setEditable(!E.current.disabled)},dispose(){var e;null==(e=w.current)||e.dispose(),w.current=null}})),/* @__PURE__ */e("section",{className:"wendang-spreadsheet","aria-label":f("工作表编辑器"),children:[j&&/* @__PURE__ */r("p",{role:"status",children:f("正在加载工作表…")}),k&&/* @__PURE__ */r("p",{role:"alert",children:k}),
|
|
2
|
+
/* @__PURE__ */r("div",{ref:g,className:"worksheet-grid"})]})});export{m as SpreadsheetEditor};
|
package/dist/styles/callout.css
CHANGED
|
@@ -1,34 +1 @@
|
|
|
1
|
-
|
|
2
|
-
[data-wendang-theme] {
|
|
3
|
-
--callout-border-gray:#c7cbd1;--callout-border-red:#f0a2a2;--callout-border-orange:#ffc078;--callout-border-yellow:#e3ca71;
|
|
4
|
-
--callout-border-green:#91d4a0;--callout-border-blue:#9ac5ef;--callout-border-purple:#c0a4ed;
|
|
5
|
-
}
|
|
6
|
-
[data-wendang-theme='dark'] {
|
|
7
|
-
--callout-border-gray:#697181;--callout-border-red:#a7606b;--callout-border-orange:#a97843;--callout-border-yellow:#97844a;
|
|
8
|
-
--callout-border-green:#5c8b6c;--callout-border-blue:#587fa9;--callout-border-purple:#8667af;
|
|
9
|
-
}
|
|
10
|
-
.ywiki-content .doc-callout {
|
|
11
|
-
--callout-first-line-height:calc(var(--content-font-size) * var(--content-line-height));
|
|
12
|
-
position:relative;display:grid;grid-template-columns:var(--content-callout-icon-width) minmax(0,1fr);column-gap:var(--content-callout-gap);align-items:start;
|
|
13
|
-
border:1px solid var(--callout-border,var(--callout-border-blue));border-radius:var(--content-callout-radius);
|
|
14
|
-
background:var(--callout-fill,var(--doc-highlight-blue));color:var(--callout-text,var(--content-text-color));
|
|
15
|
-
padding:var(--content-callout-padding-y) var(--content-callout-padding-x);
|
|
16
|
-
}
|
|
17
|
-
.ywiki-content .doc-callout[data-icon-hidden='true'] {grid-template-columns:minmax(0,1fr);}
|
|
18
|
-
.callout-controls-host {display:contents;}
|
|
19
|
-
.ywiki-content .doc-callout-content {grid-column:2;grid-row:1;min-width:0;color:inherit;}
|
|
20
|
-
.ywiki-content .doc-callout[data-icon-hidden='true']>.doc-callout-content {grid-column:1;}
|
|
21
|
-
.ywiki-content .doc-callout .callout-icon {
|
|
22
|
-
grid-column:1;grid-row:1;align-self:start;display:inline-flex;align-items:center;justify-content:center;
|
|
23
|
-
width:var(--content-callout-icon-width);min-width:var(--content-callout-icon-width);height:var(--callout-first-line-height);min-height:0;padding:0;
|
|
24
|
-
font-size:var(--content-callout-icon-size);line-height:1;user-select:none;color:inherit;
|
|
25
|
-
}
|
|
26
|
-
/* A heading on the first line has its own size and leading; later paragraphs do not move the icon. */
|
|
27
|
-
.ywiki-content .doc-callout:has(>.doc-callout-content>h1:first-child){--callout-first-line-height:calc(var(--content-font-size) * 1.625 * 1.3);}
|
|
28
|
-
.ywiki-content .doc-callout:has(>.doc-callout-content>h2:first-child){--callout-first-line-height:calc(var(--content-font-size) * 1.375 * 1.3);}
|
|
29
|
-
.ywiki-content .doc-callout:has(>.doc-callout-content>h3:first-child){--callout-first-line-height:calc(var(--content-font-size) * 1.125 * 1.3);}
|
|
30
|
-
.ywiki-content .doc-callout:has(>.doc-callout-content>:is(h4,h5,h6):first-child){--callout-first-line-height:calc(var(--content-font-size) * 1.3);}
|
|
31
|
-
.ywiki-content .doc-callout>.doc-callout-content>:first-child {margin-top:0;}
|
|
32
|
-
.ywiki-content .doc-callout>.doc-callout-content>:last-child {margin-bottom:0;}
|
|
33
|
-
.ywiki-content .doc-callout-content :where(h1,h2,h3,h4,h5,h6) {color:inherit;}
|
|
34
|
-
@media(max-width:600px){.ywiki-content .doc-callout{padding:12px;column-gap:9px;}}
|
|
1
|
+
[data-wendang-theme]{--callout-border-gray:#c7cbd1;--callout-border-red:#f0a2a2;--callout-border-orange:#ffc078;--callout-border-yellow:#e3ca71;--callout-border-green:#91d4a0;--callout-border-blue:#9ac5ef;--callout-border-purple:#c0a4ed}[data-wendang-theme=dark]{--callout-border-gray:#697181;--callout-border-red:#a7606b;--callout-border-orange:#a97843;--callout-border-yellow:#97844a;--callout-border-green:#5c8b6c;--callout-border-blue:#587fa9;--callout-border-purple:#8667af}.ywiki-content .doc-callout{--callout-first-line-height:calc(var(--content-font-size) * var(--content-line-height));position:relative;display:grid;grid-template-columns:var(--content-callout-icon-width) minmax(0,1fr);column-gap:var(--content-callout-gap);align-items:start;border:1px solid var(--callout-border,var(--callout-border-blue));border-radius:var(--content-callout-radius);background:var(--callout-fill,var(--doc-highlight-blue));color:var(--callout-text,var(--content-text-color));padding:var(--content-callout-padding-y) var(--content-callout-padding-x)}.ywiki-content .doc-callout[data-icon-hidden=true]{grid-template-columns:minmax(0,1fr)}.callout-controls-host{display:contents}.ywiki-content .doc-callout-content{grid-column:2;grid-row:1;min-width:0;color:inherit}.ywiki-content .doc-callout[data-icon-hidden=true]>.doc-callout-content{grid-column:1}.ywiki-content .doc-callout .callout-icon{grid-column:1;grid-row:1;align-self:start;display:inline-flex;align-items:center;justify-content:center;width:var(--content-callout-icon-width);min-width:var(--content-callout-icon-width);height:var(--callout-first-line-height);min-height:0;padding:0;font-size:var(--content-callout-icon-size);line-height:1;user-select:none;color:inherit}.ywiki-content .doc-callout .callout-icon-button:hover{background:transparent}.callout-toolbar .callout-toolbar-button.callout-palette-button{padding:0}.ywiki-content .doc-callout:has(>.doc-callout-content>h1:first-child){--callout-first-line-height:calc(var(--content-font-size) * 1.625 * 1.3)}.ywiki-content .doc-callout:has(>.doc-callout-content>h2:first-child){--callout-first-line-height:calc(var(--content-font-size) * 1.375 * 1.3)}.ywiki-content .doc-callout:has(>.doc-callout-content>h3:first-child){--callout-first-line-height:calc(var(--content-font-size) * 1.125 * 1.3)}.ywiki-content .doc-callout:has(>.doc-callout-content>:is(h4,h5,h6):first-child){--callout-first-line-height:calc(var(--content-font-size) * 1.3)}.ywiki-content .doc-callout>.doc-callout-content>:first-child{margin-top:0}.ywiki-content .doc-callout>.doc-callout-content>:last-child{margin-bottom:0}.ywiki-content .doc-callout-content :where(h1,h2,h3,h4,h5,h6){color:inherit}@media(max-width:600px){.ywiki-content .doc-callout{padding:12px;column-gap:9px}}
|
|
@@ -1,58 +1 @@
|
|
|
1
|
-
|
|
2
|
-
.ywiki-content .ywiki-code-panel {
|
|
3
|
-
--code-bg:#ffffff;--code-header:#f7f8fa;--code-border:#e2e5e9;--code-text:#303640;--code-muted:#8a9099;
|
|
4
|
-
--code-keyword:#d13b52;--code-string:#2e8764;--code-number:#a66e12;--code-title:#8250b5;--code-property:#476f9c;--code-comment:#8a9099;--code-tag:#bf3c51;
|
|
5
|
-
position:relative;min-width:0;max-width:100%;border:1px solid var(--code-border);border-radius:7px;
|
|
6
|
-
background:var(--code-bg);color:var(--code-text);isolation:isolate;
|
|
7
|
-
}
|
|
8
|
-
.ywiki-content .ywiki-code-panel.code-theme-soft {
|
|
9
|
-
--code-bg:#f5f8fc;--code-header:#edf2f8;--code-border:#dce4ef;--code-text:#34445b;--code-muted:#8492a7;
|
|
10
|
-
--code-keyword:#3478bd;--code-string:#318b6d;--code-number:#9b7a1e;--code-title:#9851c4;--code-property:#516c9f;--code-comment:#8492a7;--code-tag:#b14c6c;
|
|
11
|
-
}
|
|
12
|
-
[data-wendang-theme='dark'] .ywiki-content .ywiki-code-panel.code-theme-auto,
|
|
13
|
-
.ywiki-content .ywiki-code-panel.code-theme-night {
|
|
14
|
-
--code-bg:#20242c;--code-header:#272c35;--code-border:#373e49;--code-text:#d7dde7;--code-muted:#929cac;
|
|
15
|
-
--code-keyword:#f58196;--code-string:#a5cf8b;--code-number:#efbc82;--code-title:#c6a0ee;--code-property:#89b9ee;--code-comment:#919cab;--code-tag:#f08a9d;
|
|
16
|
-
}
|
|
17
|
-
.code-toolbar {display:flex;align-items:center;gap:7px;min-height:38px;padding:4px 9px;background:var(--code-header);border-bottom:1px solid var(--code-border);border-radius:6px 6px 0 0;font:12px/1.5 var(--font-sans,system-ui,sans-serif);color:var(--code-muted);user-select:none;}
|
|
18
|
-
.code-toolbar-host {position:relative;z-index:2;}
|
|
19
|
-
.code-toolbar-actions {display:flex;align-items:center;gap:7px;margin-left:auto;min-width:0;}
|
|
20
|
-
.code-toolbar-summary {font-size:11px;font-variant-numeric:tabular-nums;white-space:nowrap;}
|
|
21
|
-
/*
|
|
22
|
-
* 语言选择器在代码块的深色标题栏里,必须把 wui 的语义变量改指向代码块色板,
|
|
23
|
-
* 否则会是一块白底控件。面板本身渲染在 portal 根(正文之外),不继承这些
|
|
24
|
-
* 变量,因此下拉列表仍是普通的浅色菜单 —— 与其它菜单一致。
|
|
25
|
-
*/
|
|
26
|
-
.code-language-select {width:146px;font-size:12px;--w-surface:var(--code-header);--w-text:var(--code-text);--w-text-faint:var(--code-muted);--w-border-strong:var(--code-border);--w-border:var(--code-border);--w-surface-subtle:color-mix(in srgb,var(--code-text) 10%,transparent);}
|
|
27
|
-
.code-language-label {max-width:190px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;}
|
|
28
|
-
.code-toolbar-divider {height:15px;border-left:1px solid var(--code-border);margin:0 2px;}
|
|
29
|
-
.code-toolbar .code-copy-button,.code-toolbar .code-settings-button,.code-toolbar .code-fold-button {color:var(--code-muted);background:transparent;}
|
|
30
|
-
.code-toolbar .code-copy-button {min-width:86px;}
|
|
31
|
-
.code-toolbar .code-copy-button:hover,.code-toolbar .code-settings-button:hover,.code-toolbar .code-fold-button:hover {color:var(--code-text);background:color-mix(in srgb,var(--code-text) 6%,transparent);}
|
|
32
|
-
.code-copy-button svg {vertical-align:middle;}
|
|
33
|
-
.code-copy-announcement {position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);}
|
|
34
|
-
.code-option-check {float:right;margin-left:24px;}
|
|
35
|
-
.code-theme-swatch {display:inline-block;width:13px;height:13px;vertical-align:-2px;margin-right:8px;border:1px solid #c7ccd4;border-radius:3px;background:#fff;}
|
|
36
|
-
.code-theme-swatch[data-code-swatch='auto'] {background:linear-gradient(90deg,#fff 50%,#303743 50%);}
|
|
37
|
-
.code-theme-swatch[data-code-swatch='soft'] {background:#e6effa;}
|
|
38
|
-
.code-theme-swatch[data-code-swatch='night'] {background:#272c35;}
|
|
39
|
-
.ywiki-content .ywiki-code-panel .code-scroll {display:flex;align-items:stretch;position:relative;overflow:auto;max-height:464px;border-radius:0 0 6px 6px;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:color-mix(in srgb,var(--code-muted) 45%,transparent) transparent;background:var(--code-bg);}
|
|
40
|
-
.ywiki-content .ywiki-code-panel .code-scroll[hidden] {display:none;}
|
|
41
|
-
.ywiki-content .ywiki-code-panel.is-unlimited .code-scroll {max-height:none;}
|
|
42
|
-
.ywiki-content .ywiki-code-panel .code-line-numbers,
|
|
43
|
-
.ywiki-content .ywiki-code-panel pre.doc-code {font:13px/22px ui-monospace,SFMono-Regular,Menlo,Consolas,'Liberation Mono',monospace;font-variant-ligatures:none;tab-size:2;white-space:pre;}
|
|
44
|
-
.ywiki-content .ywiki-code-panel .code-line-numbers {position:sticky;left:0;z-index:1;align-self:stretch;flex:0 0 auto;min-width:42px;box-sizing:border-box;padding:12px 10px 12px 12px;text-align:right;color:var(--code-muted);background:var(--code-bg);border-right:1px solid color-mix(in srgb,var(--code-border) 65%,transparent);user-select:none;pointer-events:none;}
|
|
45
|
-
.ywiki-content .ywiki-code-panel pre.doc-code {flex:1 0 auto;min-width:0;max-width:none;margin:0!important;padding:12px 16px;border:0;border-radius:0;background:var(--code-bg);color:var(--code-text);overflow:visible;}
|
|
46
|
-
.ywiki-content .ywiki-code-panel pre.doc-code code {display:block;margin:0;padding:0;border:0;background:none;color:var(--code-text);font:inherit;white-space:inherit;tab-size:inherit;border-radius:0;}
|
|
47
|
-
.ywiki-content .ywiki-code-panel.is-collapsed .code-toolbar {border-bottom:0;border-radius:6px;}
|
|
48
|
-
.ywiki-content .ywiki-code-panel:focus-within {border-color:color-mix(in srgb,var(--color-accent) 45%,var(--code-border));}
|
|
49
|
-
.ywiki-content .ywiki-code-panel .code-scroll:focus-visible {outline:2px solid var(--color-accent);outline-offset:-2px;}
|
|
50
|
-
.ywiki-content .ywiki-code-panel :where(.hljs-keyword,.hljs-selector-tag,.hljs-literal,.hljs-meta) {color:var(--code-keyword);}
|
|
51
|
-
.ywiki-content .ywiki-code-panel :where(.hljs-string,.hljs-regexp,.hljs-addition,.hljs-attribute) {color:var(--code-string);}
|
|
52
|
-
.ywiki-content .ywiki-code-panel :where(.hljs-number,.hljs-symbol,.hljs-bullet,.hljs-variable,.hljs-template-variable) {color:var(--code-number);}
|
|
53
|
-
.ywiki-content .ywiki-code-panel :where(.hljs-title,.hljs-section,.hljs-selector-class,.hljs-selector-id,.hljs-type) {color:var(--code-title);}
|
|
54
|
-
.ywiki-content .ywiki-code-panel :where(.hljs-built_in,.hljs-attr,.hljs-property) {color:var(--code-property);}
|
|
55
|
-
.ywiki-content .ywiki-code-panel :where(.hljs-comment,.hljs-quote) {color:var(--code-comment);font-style:normal;}
|
|
56
|
-
.ywiki-content .ywiki-code-panel :where(.hljs-tag,.hljs-name,.hljs-deletion) {color:var(--code-tag);}
|
|
57
|
-
@media(max-width:600px){.code-toolbar{gap:4px;padding-inline:6px}.code-toolbar-actions{gap:4px}.code-language-select{width:108px}.code-toolbar-summary{display:none}.code-toolbar-divider{margin:0}.code-language-label{max-width:100px}.code-copy-button{min-width:72px!important}}
|
|
58
|
-
@media print{.ywiki-content .ywiki-code-panel .code-scroll{max-height:none!important;overflow:visible!important;display:flex!important}.code-toolbar-actions,.code-fold-button{display:none!important}.ywiki-content .ywiki-code-panel{break-inside:avoid}.ywiki-content .ywiki-code-panel pre.doc-code{white-space:pre-wrap;overflow-wrap:anywhere;flex-shrink:1}}
|
|
1
|
+
.ywiki-content .ywiki-code-panel{--code-bg:#ffffff;--code-header:#f7f8fa;--code-border:#e2e5e9;--code-text:#303640;--code-muted:#8a9099;--code-keyword:#d13b52;--code-string:#2e8764;--code-number:#a66e12;--code-title:#8250b5;--code-property:#476f9c;--code-comment:#8a9099;--code-tag:#bf3c51;position:relative;min-width:0;max-width:100%;border:1px solid var(--code-border);border-radius:7px;background:var(--code-bg);color:var(--code-text);isolation:isolate}.ywiki-content .ywiki-code-panel.code-theme-soft{--code-bg:#f5f8fc;--code-header:#edf2f8;--code-border:#dce4ef;--code-text:#34445b;--code-muted:#8492a7;--code-keyword:#3478bd;--code-string:#318b6d;--code-number:#9b7a1e;--code-title:#9851c4;--code-property:#516c9f;--code-comment:#8492a7;--code-tag:#b14c6c}[data-wendang-theme=dark] .ywiki-content .ywiki-code-panel.code-theme-auto,.ywiki-content .ywiki-code-panel.code-theme-night{--code-bg:#20242c;--code-header:#272c35;--code-border:#373e49;--code-text:#d7dde7;--code-muted:#929cac;--code-keyword:#f58196;--code-string:#a5cf8b;--code-number:#efbc82;--code-title:#c6a0ee;--code-property:#89b9ee;--code-comment:#919cab;--code-tag:#f08a9d}.code-toolbar{display:flex;align-items:center;gap:7px;min-height:38px;padding:4px 9px;background:var(--code-header);border-bottom:1px solid var(--code-border);border-radius:6px 6px 0 0;font:12px/1.5 var(--font-sans,system-ui,sans-serif);color:var(--code-muted);user-select:none}.code-toolbar-host{position:relative;z-index:2}.code-toolbar-actions{display:flex;align-items:center;gap:7px;margin-left:auto;min-width:0}.code-toolbar-summary{font-size:11px;font-variant-numeric:tabular-nums;white-space:nowrap}.code-language-select{width:146px;font-size:12px;--w-surface:var(--code-header);--w-text:var(--code-text);--w-text-faint:var(--code-muted);--w-border-strong:var(--code-border);--w-border:var(--code-border);--w-surface-subtle:color-mix(in srgb,var(--code-text) 10%,transparent)}.code-language-label{max-width:190px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px}.code-toolbar-divider{height:15px;border-left:1px solid var(--code-border);margin:0 2px}.code-toolbar .code-copy-button,.code-toolbar .code-settings-button,.code-toolbar .code-fold-button{color:var(--code-muted);background:transparent}.code-toolbar .code-copy-button{min-width:86px}.code-toolbar .code-copy-button:hover,.code-toolbar .code-settings-button:hover,.code-toolbar .code-fold-button:hover{color:var(--code-text);background:color-mix(in srgb,var(--code-text) 6%,transparent)}.code-copy-button svg{vertical-align:middle}.code-copy-announcement{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.code-option-check{float:right;margin-left:24px}.code-theme-swatch{display:inline-block;width:13px;height:13px;vertical-align:-2px;margin-right:8px;border:1px solid #c7ccd4;border-radius:3px;background:#fff}.code-theme-swatch[data-code-swatch=auto]{background:linear-gradient(90deg,#fff 50%,#303743 50%)}.code-theme-swatch[data-code-swatch=soft]{background:#e6effa}.code-theme-swatch[data-code-swatch=night]{background:#272c35}.ywiki-content .ywiki-code-panel .code-scroll{display:flex;align-items:stretch;position:relative;overflow:auto;max-height:464px;border-radius:0 0 6px 6px;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:color-mix(in srgb,var(--code-muted) 45%,transparent) transparent;background:var(--code-bg)}.ywiki-content .ywiki-code-panel .code-scroll[hidden]{display:none}.ywiki-content .ywiki-code-panel.is-unlimited .code-scroll{max-height:none}.ywiki-content .ywiki-code-panel .code-line-numbers,.ywiki-content .ywiki-code-panel pre.doc-code{font:13px/22px ui-monospace,SFMono-Regular,Menlo,Consolas,Liberation Mono,monospace;font-variant-ligatures:none;tab-size:2;white-space:pre}.ywiki-content .ywiki-code-panel .code-line-numbers{position:sticky;left:0;z-index:1;align-self:stretch;flex:0 0 auto;min-width:42px;box-sizing:border-box;padding:12px 10px 12px 12px;text-align:right;color:var(--code-muted);background:var(--code-bg);border-right:1px solid color-mix(in srgb,var(--code-border) 65%,transparent);user-select:none;pointer-events:none}.ywiki-content .ywiki-code-panel pre.doc-code{flex:1 0 auto;min-width:0;max-width:none;margin:0!important;padding:12px 16px;border:0;border-radius:0;background:var(--code-bg);color:var(--code-text);overflow:visible}.ywiki-content .ywiki-code-panel pre.doc-code code{display:block;margin:0;padding:0;border:0;background:none;color:var(--code-text);font:inherit;white-space:inherit;tab-size:inherit;border-radius:0}.ywiki-content .ywiki-code-panel.is-collapsed .code-toolbar{border-bottom:0;border-radius:6px}.ywiki-content .ywiki-code-panel:focus-within{border-color:color-mix(in srgb,var(--color-accent) 45%,var(--code-border))}.ywiki-content .ywiki-code-panel .code-scroll:focus-visible{outline:2px solid var(--color-accent);outline-offset:-2px}.ywiki-content .ywiki-code-panel :where(.hljs-keyword,.hljs-selector-tag,.hljs-literal,.hljs-meta){color:var(--code-keyword)}.ywiki-content .ywiki-code-panel :where(.hljs-string,.hljs-regexp,.hljs-addition,.hljs-attribute){color:var(--code-string)}.ywiki-content .ywiki-code-panel :where(.hljs-number,.hljs-symbol,.hljs-bullet,.hljs-variable,.hljs-template-variable){color:var(--code-number)}.ywiki-content .ywiki-code-panel :where(.hljs-title,.hljs-section,.hljs-selector-class,.hljs-selector-id,.hljs-type){color:var(--code-title)}.ywiki-content .ywiki-code-panel :where(.hljs-built_in,.hljs-attr,.hljs-property){color:var(--code-property)}.ywiki-content .ywiki-code-panel :where(.hljs-comment,.hljs-quote){color:var(--code-comment);font-style:normal}.ywiki-content .ywiki-code-panel :where(.hljs-tag,.hljs-name,.hljs-deletion){color:var(--code-tag)}@media(max-width:600px){.code-toolbar{gap:4px;padding-inline:6px}.code-toolbar-actions{gap:4px}.code-language-select{width:108px}.code-toolbar-summary{display:none}.code-toolbar-divider{margin:0}.code-language-label{max-width:100px}.code-copy-button{min-width:72px!important}}@media print{.ywiki-content .ywiki-code-panel .code-scroll{max-height:none!important;overflow:visible!important;display:flex!important}.code-toolbar-actions,.code-fold-button{display:none!important}.ywiki-content .ywiki-code-panel{break-inside:avoid}.ywiki-content .ywiki-code-panel pre.doc-code{white-space:pre-wrap;overflow-wrap:anywhere;flex-shrink:1}}
|