@haklex/rich-ext-nested-doc 0.0.65 → 0.0.67
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 +144 -0
- package/dist/NestedDocEditDecorator.d.ts +1 -1
- package/dist/NestedDocEditDecorator.d.ts.map +1 -1
- package/dist/NestedDocEditNode.d.ts +1 -1
- package/dist/NestedDocEditNode.d.ts.map +1 -1
- package/dist/NestedDocRenderer.d.ts.map +1 -1
- package/dist/NestedDocStaticDecorator.d.ts +1 -1
- package/dist/NestedDocStaticDecorator.d.ts.map +1 -1
- package/dist/index.mjs +33 -68
- package/dist/rich-ext-nested-doc.css +1 -1
- package/dist/static.mjs +5 -5
- package/dist/styles.css.d.ts +0 -3
- package/dist/styles.css.d.ts.map +1 -1
- package/dist/{transformer-D5KOI4CL.js → transformer-DDYim0ph.js} +19 -34
- package/dist/transformer.d.ts.map +1 -1
- package/package.json +18 -13
package/README.md
ADDED
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
# @haklex/rich-ext-nested-doc
|
|
2
|
+
|
|
3
|
+
Nested document extension for embedding sub-documents as card blocks.
|
|
4
|
+
|
|
5
|
+
## Installation
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
pnpm add @haklex/rich-ext-nested-doc
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Peer Dependencies
|
|
12
|
+
|
|
13
|
+
| Package | Version |
|
|
14
|
+
| --- | --- |
|
|
15
|
+
| `@lexical/react` | `^0.41.0` |
|
|
16
|
+
| `lexical` | `^0.41.0` |
|
|
17
|
+
| `lucide-react` | `^0.574.0` |
|
|
18
|
+
| `react` | `>= 19` |
|
|
19
|
+
| `react-dom` | `>= 19` |
|
|
20
|
+
|
|
21
|
+
## Usage
|
|
22
|
+
|
|
23
|
+
### Register nodes in your editor config
|
|
24
|
+
|
|
25
|
+
```ts
|
|
26
|
+
import { nestedDocEditNodes } from '@haklex/rich-ext-nested-doc'
|
|
27
|
+
|
|
28
|
+
const editorConfig = {
|
|
29
|
+
nodes: [...nestedDocEditNodes],
|
|
30
|
+
}
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
For static/read-only rendering:
|
|
34
|
+
|
|
35
|
+
```ts
|
|
36
|
+
import { nestedDocNodes } from '@haklex/rich-ext-nested-doc/static'
|
|
37
|
+
|
|
38
|
+
const staticConfig = {
|
|
39
|
+
nodes: [...nestedDocNodes],
|
|
40
|
+
}
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
### Use the nested doc plugin
|
|
44
|
+
|
|
45
|
+
```tsx
|
|
46
|
+
import { NestedDocPlugin } from '@haklex/rich-ext-nested-doc'
|
|
47
|
+
|
|
48
|
+
function EditorPlugins() {
|
|
49
|
+
return <NestedDocPlugin />
|
|
50
|
+
}
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
### Insert a nested document programmatically
|
|
54
|
+
|
|
55
|
+
```ts
|
|
56
|
+
import { INSERT_NESTED_DOC_COMMAND } from '@haklex/rich-ext-nested-doc'
|
|
57
|
+
|
|
58
|
+
editor.dispatchCommand(INSERT_NESTED_DOC_COMMAND, { docId: '...' })
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
### Provide the dialog editor context
|
|
62
|
+
|
|
63
|
+
```tsx
|
|
64
|
+
import { NestedDocDialogEditorProvider, useNestedDocDialogEditor } from '@haklex/rich-ext-nested-doc'
|
|
65
|
+
|
|
66
|
+
function App() {
|
|
67
|
+
return (
|
|
68
|
+
<NestedDocDialogEditorProvider>
|
|
69
|
+
<Editor />
|
|
70
|
+
</NestedDocDialogEditorProvider>
|
|
71
|
+
)
|
|
72
|
+
}
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
### Use renderers and decorators
|
|
76
|
+
|
|
77
|
+
```tsx
|
|
78
|
+
import { NestedDocEditDecorator } from '@haklex/rich-ext-nested-doc'
|
|
79
|
+
import { NestedDocRenderer, NestedDocStaticDecorator } from '@haklex/rich-ext-nested-doc/static'
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
### Markdown transformer
|
|
83
|
+
|
|
84
|
+
```ts
|
|
85
|
+
import { NESTED_DOC_BLOCK_TRANSFORMER } from '@haklex/rich-ext-nested-doc'
|
|
86
|
+
|
|
87
|
+
const transformers = [NESTED_DOC_BLOCK_TRANSFORMER]
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
### Import styles
|
|
91
|
+
|
|
92
|
+
```ts
|
|
93
|
+
import '@haklex/rich-ext-nested-doc/style.css'
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
## Exports
|
|
97
|
+
|
|
98
|
+
### Nodes
|
|
99
|
+
|
|
100
|
+
- `NestedDocNode` -- static (read-only) node
|
|
101
|
+
- `NestedDocEditNode` -- edit node with interactive UI
|
|
102
|
+
- `$createNestedDocNode()` / `$isNestedDocNode()` -- Lexical helpers
|
|
103
|
+
- `nestedDocNodes` -- array of static nodes for config registration
|
|
104
|
+
- `nestedDocEditNodes` -- array of edit nodes for config registration
|
|
105
|
+
|
|
106
|
+
### Renderers / Decorators
|
|
107
|
+
|
|
108
|
+
- `NestedDocRenderer` -- static renderer
|
|
109
|
+
- `NestedDocEditDecorator` -- edit-mode decorator
|
|
110
|
+
- `NestedDocStaticDecorator` -- static-mode decorator
|
|
111
|
+
|
|
112
|
+
### Plugin
|
|
113
|
+
|
|
114
|
+
- `NestedDocPlugin` -- editor plugin for nested doc insertion
|
|
115
|
+
- `INSERT_NESTED_DOC_COMMAND` -- Lexical command for programmatic insertion
|
|
116
|
+
|
|
117
|
+
### Context
|
|
118
|
+
|
|
119
|
+
- `NestedDocDialogEditorProvider` -- context provider for nested doc dialog editor
|
|
120
|
+
- `useNestedDocDialogEditor` -- hook to access nested doc dialog editor context
|
|
121
|
+
|
|
122
|
+
### Transformers
|
|
123
|
+
|
|
124
|
+
- `NESTED_DOC_BLOCK_TRANSFORMER` -- Markdown block transformer
|
|
125
|
+
|
|
126
|
+
### Types
|
|
127
|
+
|
|
128
|
+
- Serialized node types and payload interfaces are exported for type-safe usage.
|
|
129
|
+
|
|
130
|
+
### Sub-path Exports
|
|
131
|
+
|
|
132
|
+
| Path | Description |
|
|
133
|
+
| --- | --- |
|
|
134
|
+
| `@haklex/rich-ext-nested-doc` | Full exports (edit + static) |
|
|
135
|
+
| `@haklex/rich-ext-nested-doc/static` | Static-only (no heavy UI deps) |
|
|
136
|
+
| `@haklex/rich-ext-nested-doc/style.css` | Stylesheet |
|
|
137
|
+
|
|
138
|
+
## Part of Haklex
|
|
139
|
+
|
|
140
|
+
This package is part of the [Haklex](../../README.md) rich editor ecosystem.
|
|
141
|
+
|
|
142
|
+
## License
|
|
143
|
+
|
|
144
|
+
MIT
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { LexicalEditor, SerializedEditorState } from 'lexical';
|
|
2
2
|
interface NestedDocEditDecoratorProps {
|
|
3
|
-
nodeKey: string;
|
|
4
3
|
contentEditor: LexicalEditor;
|
|
5
4
|
contentState: SerializedEditorState;
|
|
5
|
+
nodeKey: string;
|
|
6
6
|
}
|
|
7
7
|
export declare function NestedDocEditDecorator({ nodeKey, contentEditor, contentState, }: NestedDocEditDecoratorProps): import("react/jsx-runtime").JSX.Element;
|
|
8
8
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NestedDocEditDecorator.d.ts","sourceRoot":"","sources":["../src/NestedDocEditDecorator.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"NestedDocEditDecorator.d.ts","sourceRoot":"","sources":["../src/NestedDocEditDecorator.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAmCpE,UAAU,2BAA2B;IACnC,aAAa,EAAE,aAAa,CAAC;IAC7B,YAAY,EAAE,qBAAqB,CAAC;IACpC,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,wBAAgB,sBAAsB,CAAC,EACrC,OAAO,EACP,aAAa,EACb,YAAY,GACb,EAAE,2BAA2B,2CAgE7B"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { CommandItemConfig } from '@haklex/rich-editor';
|
|
1
|
+
import { CommandItemConfig } from '@haklex/rich-editor/commands';
|
|
2
2
|
import { EditorConfig, LexicalEditor, SerializedEditorState } from 'lexical';
|
|
3
3
|
import { ReactElement } from 'react';
|
|
4
4
|
import { NestedDocNode, SerializedNestedDocNode } from './NestedDocNode';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NestedDocEditNode.d.ts","sourceRoot":"","sources":["../src/NestedDocEditNode.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"NestedDocEditNode.d.ts","sourceRoot":"","sources":["../src/NestedDocEditNode.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAEtE,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAGlF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAI1C,OAAO,EAAE,aAAa,EAAE,KAAK,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAa9E,qBAAa,iBAAkB,SAAQ,aAAa;IAClD,eAAe,EAAE,aAAa,CAAC;IAE/B,MAAM,CAAC,YAAY,EAAE,iBAAiB,EAAE,CAetC;IAEF,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,iBAAiB,GAAG,iBAAiB;gBAM5C,YAAY,CAAC,EAAE,qBAAqB,EAAE,GAAG,CAAC,EAAE,MAAM;IAS9D,gBAAgB,IAAI,aAAa;IAIjC,MAAM,CAAC,UAAU,CAAC,cAAc,EAAE,uBAAuB,GAAG,iBAAiB;IAI7E,UAAU,IAAI,uBAAuB;IASrC,QAAQ,CAAC,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,YAAY,GAAG,YAAY;CAOtE;AAED,wBAAgB,wBAAwB,CAAC,YAAY,CAAC,EAAE,qBAAqB,GAAG,iBAAiB,CAEhG;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,IAAI,iBAAiB,CAE7E"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NestedDocRenderer.d.ts","sourceRoot":"","sources":["../src/NestedDocRenderer.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"NestedDocRenderer.d.ts","sourceRoot":"","sources":["../src/NestedDocRenderer.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAErD,wBAAgB,iBAAiB,CAAC,EAAE,KAAK,EAAE,EAAE;IAAE,KAAK,EAAE,qBAAqB,CAAA;CAAE,2CAQ5E"}
|
|
@@ -2,6 +2,6 @@ import { SerializedEditorState } from 'lexical';
|
|
|
2
2
|
interface NestedDocStaticDecoratorProps {
|
|
3
3
|
contentState: SerializedEditorState;
|
|
4
4
|
}
|
|
5
|
-
export declare function NestedDocStaticDecorator({ contentState
|
|
5
|
+
export declare function NestedDocStaticDecorator({ contentState }: NestedDocStaticDecoratorProps): import("react/jsx-runtime").JSX.Element | null;
|
|
6
6
|
export {};
|
|
7
7
|
//# sourceMappingURL=NestedDocStaticDecorator.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NestedDocStaticDecorator.d.ts","sourceRoot":"","sources":["../src/NestedDocStaticDecorator.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,SAAS,
|
|
1
|
+
{"version":3,"file":"NestedDocStaticDecorator.d.ts","sourceRoot":"","sources":["../src/NestedDocStaticDecorator.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAUrD,UAAU,6BAA6B;IACrC,YAAY,EAAE,qBAAqB,CAAC;CACrC;AAED,wBAAgB,wBAAwB,CAAC,EAAE,YAAY,EAAE,EAAE,6BAA6B,kDA0DvF"}
|
package/dist/index.mjs
CHANGED
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
var __defProp = Object.defineProperty;
|
|
2
2
|
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
3
3
|
var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
4
|
-
import { t as truncateEditorState, h as hasRenderableEditorState, d as dialogPopup, e as editOverlayRoot, p as previewSurface, N as NestedDocRenderer, a as previewEmpty, b as editOverlay, $ as $isNestedDocNode, c as dialogShell, f as dialogHeader, g as dialogHeaderMain, i as dialogHeaderIcon, j as dialogHeaderText, k as dialogTitle, l as editorArea, m as dialogFooter, n as
|
|
5
|
-
import {
|
|
6
|
-
import { useColorScheme, editorTheme
|
|
4
|
+
import { t as truncateEditorState, h as hasRenderableEditorState, d as dialogPopup, e as editOverlayRoot, p as previewSurface, N as NestedDocRenderer, a as previewEmpty, b as editOverlay, $ as $isNestedDocNode, c as dialogShell, f as dialogHeader, g as dialogHeaderMain, i as dialogHeaderIcon, j as dialogHeaderText, k as dialogTitle, l as editorArea, m as dialogFooter, n as NestedDocNode } from "./transformer-DDYim0ph.js";
|
|
5
|
+
import { o, q, r } from "./transformer-DDYim0ph.js";
|
|
6
|
+
import { useColorScheme, editorTheme } from "@haklex/rich-editor";
|
|
7
|
+
import { getResolvedEditNodes } from "@haklex/rich-editor/nodes";
|
|
7
8
|
import { $getNodeByKey, $insertNodes, createEditor, createCommand, COMMAND_PRIORITY_EDITOR } from "lexical";
|
|
8
9
|
import { Pencil, FileText, X, Save } from "lucide-react";
|
|
9
10
|
import { createContext, use, useMemo, useCallback, useRef, useState, createElement, useEffect } from "react";
|
|
10
11
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
12
|
+
import { ActionBar, ActionButton } from "@haklex/rich-editor-ui";
|
|
11
13
|
import { usePortalTheme, PortalContainerProvider } from "@haklex/rich-style-token";
|
|
12
14
|
import { useLexicalComposerContext } from "@lexical/react/LexicalComposerContext";
|
|
13
15
|
const NestedDocDialogEditorContext = createContext(null);
|
|
@@ -58,12 +60,12 @@ function NestedDocEditDecorator({
|
|
|
58
60
|
content: ({ dismiss }) => /* @__PURE__ */ jsx(
|
|
59
61
|
NestedDocDialogContent,
|
|
60
62
|
{
|
|
63
|
+
DialogEditor,
|
|
64
|
+
contentEditor,
|
|
61
65
|
initialState: contentEditor.getEditorState().toJSON(),
|
|
62
|
-
parentEditor: editor,
|
|
63
66
|
nodeKey,
|
|
64
|
-
|
|
65
|
-
onDismiss: dismiss
|
|
66
|
-
DialogEditor
|
|
67
|
+
parentEditor: editor,
|
|
68
|
+
onDismiss: dismiss
|
|
67
69
|
}
|
|
68
70
|
),
|
|
69
71
|
className: dialogPopup,
|
|
@@ -72,22 +74,15 @@ function NestedDocEditDecorator({
|
|
|
72
74
|
showCloseButton: true,
|
|
73
75
|
clickOutsideToDismiss: false
|
|
74
76
|
});
|
|
75
|
-
}, [
|
|
76
|
-
DialogEditor,
|
|
77
|
-
colorScheme,
|
|
78
|
-
contentEditor,
|
|
79
|
-
editor,
|
|
80
|
-
nodeKey,
|
|
81
|
-
portalClassName
|
|
82
|
-
]);
|
|
77
|
+
}, [DialogEditor, colorScheme, contentEditor, editor, nodeKey, portalClassName]);
|
|
83
78
|
return /* @__PURE__ */ jsxs(
|
|
84
79
|
"div",
|
|
85
80
|
{
|
|
81
|
+
"aria-label": "Open nested document editor",
|
|
86
82
|
className: editOverlayRoot,
|
|
87
|
-
onClick: handleOpenDialog,
|
|
88
83
|
role: "button",
|
|
89
84
|
tabIndex: 0,
|
|
90
|
-
|
|
85
|
+
onClick: handleOpenDialog,
|
|
91
86
|
onKeyDown: (event) => {
|
|
92
87
|
if (event.key === "Enter" || event.key === " ") {
|
|
93
88
|
event.preventDefault();
|
|
@@ -96,7 +91,7 @@ function NestedDocEditDecorator({
|
|
|
96
91
|
},
|
|
97
92
|
children: [
|
|
98
93
|
/* @__PURE__ */ jsx("div", { className: "rich-nested-doc-content", children: hasPreview ? /* @__PURE__ */ jsx("div", { className: previewSurface, children: /* @__PURE__ */ jsx(NestedDocRenderer, { value: previewState }) }) : /* @__PURE__ */ jsx("p", { className: previewEmpty, children: "Empty nested document. Click to edit." }) }),
|
|
99
|
-
/* @__PURE__ */ jsx("div", {
|
|
94
|
+
/* @__PURE__ */ jsx("div", { "aria-hidden": true, className: editOverlay, children: /* @__PURE__ */ jsx(Pencil, { size: 24 }) })
|
|
100
95
|
]
|
|
101
96
|
}
|
|
102
97
|
);
|
|
@@ -141,53 +136,23 @@ function NestedDocDialogContent({
|
|
|
141
136
|
const handleEditorReady = useCallback((editor) => {
|
|
142
137
|
dialogEditorRef.current = editor;
|
|
143
138
|
}, []);
|
|
144
|
-
return /* @__PURE__ */ jsxs(
|
|
145
|
-
"div",
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
) }) }),
|
|
162
|
-
/* @__PURE__ */ jsx("div", { className: dialogFooter, children: /* @__PURE__ */ jsxs("div", { className: dialogActions, children: [
|
|
163
|
-
/* @__PURE__ */ jsxs(
|
|
164
|
-
"button",
|
|
165
|
-
{
|
|
166
|
-
type: "button",
|
|
167
|
-
className: secondaryButton,
|
|
168
|
-
onClick: onDismiss,
|
|
169
|
-
children: [
|
|
170
|
-
/* @__PURE__ */ jsx(X, { size: 15 }),
|
|
171
|
-
"Cancel"
|
|
172
|
-
]
|
|
173
|
-
}
|
|
174
|
-
),
|
|
175
|
-
/* @__PURE__ */ jsxs(
|
|
176
|
-
"button",
|
|
177
|
-
{
|
|
178
|
-
type: "button",
|
|
179
|
-
className: primaryButton,
|
|
180
|
-
onClick: handleDone,
|
|
181
|
-
children: [
|
|
182
|
-
/* @__PURE__ */ jsx(Save, { size: 15 }),
|
|
183
|
-
"Save"
|
|
184
|
-
]
|
|
185
|
-
}
|
|
186
|
-
)
|
|
187
|
-
] }) })
|
|
188
|
-
]
|
|
189
|
-
}
|
|
190
|
-
);
|
|
139
|
+
return /* @__PURE__ */ jsxs("div", { className: dialogShell, ref: setShellEl, onKeyDownCapture: handleKeyDownCapture, children: [
|
|
140
|
+
/* @__PURE__ */ jsx("div", { className: dialogHeader, children: /* @__PURE__ */ jsxs("div", { className: dialogHeaderMain, children: [
|
|
141
|
+
/* @__PURE__ */ jsx("span", { className: dialogHeaderIcon, children: /* @__PURE__ */ jsx(FileText, { size: 18 }) }),
|
|
142
|
+
/* @__PURE__ */ jsx("div", { className: dialogHeaderText, children: /* @__PURE__ */ jsx("h3", { className: dialogTitle, children: "Nested document" }) })
|
|
143
|
+
] }) }),
|
|
144
|
+
/* @__PURE__ */ jsx("div", { className: editorArea, children: shellEl && /* @__PURE__ */ jsx(PortalContainerProvider, { value: shellEl, children: /* @__PURE__ */ jsx(DialogEditor, { initialValue: safeInitialState, onEditorReady: handleEditorReady }) }) }),
|
|
145
|
+
/* @__PURE__ */ jsx("div", { className: dialogFooter, children: /* @__PURE__ */ jsxs(ActionBar, { gap: "0.625rem", children: [
|
|
146
|
+
/* @__PURE__ */ jsxs(ActionButton, { size: "lg", variant: "outline", onClick: onDismiss, children: [
|
|
147
|
+
/* @__PURE__ */ jsx(X, { size: 15 }),
|
|
148
|
+
"Cancel"
|
|
149
|
+
] }),
|
|
150
|
+
/* @__PURE__ */ jsxs(ActionButton, { size: "lg", variant: "accent", onClick: handleDone, children: [
|
|
151
|
+
/* @__PURE__ */ jsx(Save, { size: 15 }),
|
|
152
|
+
"Save"
|
|
153
|
+
] })
|
|
154
|
+
] }) })
|
|
155
|
+
] });
|
|
191
156
|
}
|
|
192
157
|
function createContentEditor() {
|
|
193
158
|
return createEditor({
|
|
@@ -278,18 +243,18 @@ const nestedDocNodes = [NestedDocNode];
|
|
|
278
243
|
const nestedDocEditNodes = [NestedDocEditNode];
|
|
279
244
|
export {
|
|
280
245
|
$createNestedDocEditNode,
|
|
281
|
-
|
|
246
|
+
o as $createNestedDocNode,
|
|
282
247
|
$isNestedDocEditNode,
|
|
283
248
|
$isNestedDocNode,
|
|
284
249
|
INSERT_NESTED_DOC_COMMAND,
|
|
285
|
-
|
|
250
|
+
q as NESTED_DOC_BLOCK_TRANSFORMER,
|
|
286
251
|
NestedDocDialogEditorProvider,
|
|
287
252
|
NestedDocEditDecorator,
|
|
288
253
|
NestedDocEditNode,
|
|
289
254
|
NestedDocNode,
|
|
290
255
|
NestedDocPlugin,
|
|
291
256
|
NestedDocRenderer,
|
|
292
|
-
|
|
257
|
+
r as NestedDocStaticDecorator,
|
|
293
258
|
nestedDocEditNodes,
|
|
294
259
|
nestedDocNodes,
|
|
295
260
|
useNestedDocDialogEditor
|
|
@@ -1 +1 @@
|
|
|
1
|
-
:root{--rc-text: #000;--rc-text-secondary: #27272a;--rc-text-tertiary: #71717a;--rc-text-quaternary: #a1a1aa;--rc-bg: #ffffff;--rc-bg-secondary: #fafafa;--rc-bg-tertiary: #f4f4f5;--rc-fill: #e8e8ec;--rc-fill-secondary: #eeeeef;--rc-fill-tertiary: #f4f4f6;--rc-fill-quaternary: #f9f9fa;--rc-border: #f4f4f5;--rc-accent: #2563eb;--rc-accent-light: #2563eb20;--rc-link: #2563eb;--rc-code-text: #3f3f46;--rc-code-bg: #f4f4f5;--rc-hr-border: #e4e4e7;--rc-quote-border: #2563eb;--rc-quote-bg: #eff6ff;--rc-alert-info: #006bb7;--rc-alert-warning: #cc5500;--rc-alert-tip: #11cc00;--rc-alert-caution: #cc0011;--rc-alert-important: #5500cc;--rc-max-width: 700px;--rc-shadow-top-bar: 0 8px 30px rgba(0, 0, 0, .12), 0 2px 8px rgba(0, 0, 0, .06);--rc-shadow-modal: 0 10px 15px -3px rgba(0,0,0,.1), 0 4px 6px -4px rgba(0,0,0,.1);--rc-shadow-menu: 0 1px 4px rgba(0,0,0,.04), 0 4px 16px rgba(0,0,0,.08);--rc-space-xs: 4px;--rc-space-sm: 8px;--rc-space-md: 16px;--rc-space-lg: 24px;--rc-space-xl: 32px;--rc-font-family-sans: "PingFang SC", "Microsoft YaHei", "Segoe UI", Roboto, Helvetica, "noto sans sc", "hiragino sans gb", -apple-system, system-ui, sans-serif, Apple Color Emoji, Segoe UI Emoji, Not Color Emoji;--rc-font-family-serif: "Noto Serif CJK SC", "Source Han Serif SC", "Source Han Serif", "source-han-serif-sc", "Songti SC", STSong, "华文宋体", serif;--rc-font-mono: "SF Mono", SFMono-Regular, ui-monospace, "DejaVu Sans Mono", Menlo, Consolas, monospace;--rc-font-size-2xs: .625em;--rc-font-size-xs: .75em;--rc-font-size-sm: .8125em;--rc-font-size-md: .875em;--rc-font-size-lg: 1.25em;--rc-font-size-base: 16px;--rc-font-size-small: 14px;--rc-line-height: 1.7;--rc-line-height-tight: 1.4;--rc-font-family: "PingFang SC", "Microsoft YaHei", "Segoe UI", Roboto, Helvetica, "noto sans sc", "hiragino sans gb", -apple-system, system-ui, sans-serif, Apple Color Emoji, Segoe UI Emoji, Not Color Emoji;--rc-radius-sm: 4px;--rc-radius-md: 8px;--rc-radius-lg: 12px}:root.dark{--rc-text: #fafafa;--rc-text-secondary: #a1a1aa;--rc-text-tertiary: #71717a;--rc-text-quaternary: #52525b;--rc-bg: #09090b;--rc-bg-secondary: #18181b;--rc-bg-tertiary: #27272a;--rc-fill: #2a2a2f;--rc-fill-secondary: #222226;--rc-fill-tertiary: #1b1b1f;--rc-fill-quaternary: #131316;--rc-border: #27272a;--rc-accent: #60a5fa;--rc-accent-light: #60a5fa20;--rc-link: #60a5fa;--rc-code-text: #e4e4e7;--rc-code-bg: #27272a;--rc-hr-border: #27272a;--rc-quote-border: #60a5fa;--rc-quote-bg: #1e3a5f;--rc-alert-info: #7db9e5;--rc-alert-warning: #da864a;--rc-alert-tip: #54da48;--rc-alert-caution: #e16973;--rc-alert-important: #9966e0;--rc-max-width: 700px;--rc-shadow-top-bar: 0 8px 30px rgba(0, 0, 0, .45), 0 2px 8px rgba(0, 0, 0, .3);--rc-shadow-modal: 0 10px 15px -3px rgba(0,0,0,.4), 0 4px 6px -4px rgba(0,0,0,.35);--rc-shadow-menu: 0 1px 4px rgba(0,0,0,.25), 0 4px 16px rgba(0,0,0,.4);--rc-space-xs: 4px;--rc-space-sm: 8px;--rc-space-md: 16px;--rc-space-lg: 24px;--rc-space-xl: 32px;--rc-font-family-sans: "PingFang SC", "Microsoft YaHei", "Segoe UI", Roboto, Helvetica, "noto sans sc", "hiragino sans gb", -apple-system, system-ui, sans-serif, Apple Color Emoji, Segoe UI Emoji, Not Color Emoji;--rc-font-family-serif: "Noto Serif CJK SC", "Source Han Serif SC", "Source Han Serif", "source-han-serif-sc", "Songti SC", STSong, "华文宋体", serif;--rc-font-mono: "SF Mono", SFMono-Regular, ui-monospace, "DejaVu Sans Mono", Menlo, Consolas, monospace;--rc-font-size-2xs: .625em;--rc-font-size-xs: .75em;--rc-font-size-sm: .8125em;--rc-font-size-md: .875em;--rc-font-size-lg: 1.25em;--rc-font-size-base: 16px;--rc-font-size-small: 14px;--rc-line-height: 1.7;--rc-line-height-tight: 1.4;--rc-font-family: "PingFang SC", "Microsoft YaHei", "Segoe UI", Roboto, Helvetica, "noto sans sc", "hiragino sans gb", -apple-system, system-ui, sans-serif, Apple Color Emoji, Segoe UI Emoji, Not Color Emoji;--rc-radius-sm: 4px;--rc-radius-md: 8px;--rc-radius-lg: 12px}._1kl9cd60{--rc-text: #000;--rc-text-secondary: #27272a;--rc-text-tertiary: #71717a;--rc-text-quaternary: #a1a1aa;--rc-bg: #ffffff;--rc-bg-secondary: #fafafa;--rc-bg-tertiary: #f4f4f5;--rc-fill: #e8e8ec;--rc-fill-secondary: #eeeeef;--rc-fill-tertiary: #f4f4f6;--rc-fill-quaternary: #f9f9fa;--rc-border: #f4f4f5;--rc-accent: #2563eb;--rc-accent-light: #2563eb20;--rc-link: #2563eb;--rc-code-text: #3f3f46;--rc-code-bg: #f4f4f5;--rc-hr-border: #e4e4e7;--rc-quote-border: #2563eb;--rc-quote-bg: #eff6ff;--rc-alert-info: #006bb7;--rc-alert-warning: #cc5500;--rc-alert-tip: #11cc00;--rc-alert-caution: #cc0011;--rc-alert-important: #5500cc;--rc-max-width: 700px;--rc-shadow-top-bar: 0 8px 30px rgba(0, 0, 0, .12), 0 2px 8px rgba(0, 0, 0, .06);--rc-shadow-modal: 0 10px 15px -3px rgba(0,0,0,.1), 0 4px 6px -4px rgba(0,0,0,.1);--rc-shadow-menu: 0 1px 4px rgba(0,0,0,.04), 0 4px 16px rgba(0,0,0,.08);--rc-space-xs: 4px;--rc-space-sm: 8px;--rc-space-md: 16px;--rc-space-lg: 24px;--rc-space-xl: 32px;--rc-font-family-sans: "PingFang SC", "Microsoft YaHei", "Segoe UI", Roboto, Helvetica, "noto sans sc", "hiragino sans gb", -apple-system, system-ui, sans-serif, Apple Color Emoji, Segoe UI Emoji, Not Color Emoji;--rc-font-family-serif: "Noto Serif CJK SC", "Source Han Serif SC", "Source Han Serif", "source-han-serif-sc", "Songti SC", STSong, "华文宋体", serif;--rc-font-mono: "SF Mono", SFMono-Regular, ui-monospace, "DejaVu Sans Mono", Menlo, Consolas, monospace;--rc-font-size-2xs: .625em;--rc-font-size-xs: .75em;--rc-font-size-sm: .8125em;--rc-font-size-md: .875em;--rc-font-size-lg: 1.25em;--rc-font-size-base: 16px;--rc-font-size-small: 14px;--rc-line-height: 1.7;--rc-line-height-tight: 1.4;--rc-font-family: "PingFang SC", "Microsoft YaHei", "Segoe UI", Roboto, Helvetica, "noto sans sc", "hiragino sans gb", -apple-system, system-ui, sans-serif, Apple Color Emoji, Segoe UI Emoji, Not Color Emoji;--rc-radius-sm: 4px;--rc-radius-md: 8px;--rc-radius-lg: 12px}._1kl9cd61{--rc-text: #000;--rc-text-secondary: #27272a;--rc-text-tertiary: #71717a;--rc-text-quaternary: #a1a1aa;--rc-bg: #ffffff;--rc-bg-secondary: #fafafa;--rc-bg-tertiary: #f4f4f5;--rc-fill: #e8e8ec;--rc-fill-secondary: #eeeeef;--rc-fill-tertiary: #f4f4f6;--rc-fill-quaternary: #f9f9fa;--rc-border: #f4f4f5;--rc-accent: #2563eb;--rc-accent-light: #2563eb20;--rc-link: #2563eb;--rc-code-text: #3f3f46;--rc-code-bg: #f4f4f5;--rc-hr-border: #e4e4e7;--rc-quote-border: #2563eb;--rc-quote-bg: #eff6ff;--rc-alert-info: #006bb7;--rc-alert-warning: #cc5500;--rc-alert-tip: #11cc00;--rc-alert-caution: #cc0011;--rc-alert-important: #5500cc;--rc-max-width: 700px;--rc-shadow-top-bar: 0 8px 30px rgba(0, 0, 0, .12), 0 2px 8px rgba(0, 0, 0, .06);--rc-shadow-modal: 0 10px 15px -3px rgba(0,0,0,.1), 0 4px 6px -4px rgba(0,0,0,.1);--rc-shadow-menu: 0 1px 4px rgba(0,0,0,.04), 0 4px 16px rgba(0,0,0,.08);--rc-space-xs: 4px;--rc-space-sm: 8px;--rc-space-md: 16px;--rc-space-lg: 24px;--rc-space-xl: 32px;--rc-font-family-sans: "PingFang SC", "Microsoft YaHei", "Segoe UI", Roboto, Helvetica, "noto sans sc", "hiragino sans gb", -apple-system, system-ui, sans-serif, Apple Color Emoji, Segoe UI Emoji, Not Color Emoji;--rc-font-family-serif: "Noto Serif CJK SC", "Source Han Serif SC", "Source Han Serif", "source-han-serif-sc", "Songti SC", STSong, "华文宋体", serif;--rc-font-mono: "SF Mono", SFMono-Regular, ui-monospace, "DejaVu Sans Mono", Menlo, Consolas, monospace;--rc-font-size-2xs: .625em;--rc-font-size-xs: .75em;--rc-font-size-sm: .8125em;--rc-font-size-md: .875em;--rc-font-size-lg: 1.25em;--rc-font-size-base: 16px;--rc-font-size-small: 14px;--rc-line-height: 1.8;--rc-line-height-tight: 1.4;--rc-font-family: "Noto Serif CJK SC", "Source Han Serif SC", "Source Han Serif", "source-han-serif-sc", "Songti SC", STSong, "华文宋体", serif;--rc-radius-sm: 4px;--rc-radius-md: 8px;--rc-radius-lg: 12px}._1kl9cd62{--rc-text: #000;--rc-text-secondary: #27272a;--rc-text-tertiary: #71717a;--rc-text-quaternary: #a1a1aa;--rc-bg: #ffffff;--rc-bg-secondary: #fafafa;--rc-bg-tertiary: #f4f4f5;--rc-fill: #e8e8ec;--rc-fill-secondary: #eeeeef;--rc-fill-tertiary: #f4f4f6;--rc-fill-quaternary: #f9f9fa;--rc-border: #f4f4f5;--rc-accent: #2563eb;--rc-accent-light: #2563eb20;--rc-link: #2563eb;--rc-code-text: #3f3f46;--rc-code-bg: #f4f4f5;--rc-hr-border: #e4e4e7;--rc-quote-border: #a1a1aa;--rc-quote-bg: #fafafa;--rc-alert-info: #006bb7;--rc-alert-warning: #cc5500;--rc-alert-tip: #11cc00;--rc-alert-caution: #cc0011;--rc-alert-important: #5500cc;--rc-max-width: none;--rc-shadow-top-bar: 0 8px 30px rgba(0, 0, 0, .12), 0 2px 8px rgba(0, 0, 0, .06);--rc-shadow-modal: 0 10px 15px -3px rgba(0,0,0,.1), 0 4px 6px -4px rgba(0,0,0,.1);--rc-shadow-menu: 0 1px 4px rgba(0,0,0,.04), 0 4px 16px rgba(0,0,0,.08);--rc-space-xs: 2px;--rc-space-sm: 4px;--rc-space-md: 10px;--rc-space-lg: 16px;--rc-space-xl: 20px;--rc-font-family-sans: "PingFang SC", "Microsoft YaHei", "Segoe UI", Roboto, Helvetica, "noto sans sc", "hiragino sans gb", -apple-system, system-ui, sans-serif, Apple Color Emoji, Segoe UI Emoji, Not Color Emoji;--rc-font-family-serif: "Noto Serif CJK SC", "Source Han Serif SC", "Source Han Serif", "source-han-serif-sc", "Songti SC", STSong, "华文宋体", serif;--rc-font-mono: "SF Mono", SFMono-Regular, ui-monospace, "DejaVu Sans Mono", Menlo, Consolas, monospace;--rc-font-size-2xs: .625em;--rc-font-size-xs: .75em;--rc-font-size-sm: .8125em;--rc-font-size-md: .875em;--rc-font-size-lg: 1.25em;--rc-font-size-base: 14px;--rc-font-size-small: 12px;--rc-line-height: 1.5;--rc-line-height-tight: 1.3;--rc-font-family: "PingFang SC", "Microsoft YaHei", "Segoe UI", Roboto, Helvetica, "noto sans sc", "hiragino sans gb", -apple-system, system-ui, sans-serif, Apple Color Emoji, Segoe UI Emoji, Not Color Emoji;--rc-radius-sm: 3px;--rc-radius-md: 6px;--rc-radius-lg: 8px}.dark ._1kl9cd60,[data-theme=dark] ._1kl9cd60,.dark._1kl9cd60,[data-theme=dark]._1kl9cd60,.dark ._1kl9cd61,[data-theme=dark] ._1kl9cd61,.dark._1kl9cd61,[data-theme=dark]._1kl9cd61,.dark ._1kl9cd62,[data-theme=dark] ._1kl9cd62,.dark._1kl9cd62,[data-theme=dark]._1kl9cd62{--rc-text: #fafafa;--rc-text-secondary: #a1a1aa;--rc-text-tertiary: #71717a;--rc-text-quaternary: #52525b;--rc-bg: #09090b;--rc-bg-secondary: #18181b;--rc-bg-tertiary: #27272a;--rc-fill: #2a2a2f;--rc-fill-secondary: #222226;--rc-fill-tertiary: #1b1b1f;--rc-fill-quaternary: #131316;--rc-border: #27272a;--rc-accent: #60a5fa;--rc-accent-light: #60a5fa20;--rc-link: #60a5fa;--rc-code-text: #e4e4e7;--rc-code-bg: #27272a;--rc-hr-border: #27272a;--rc-quote-border: #60a5fa;--rc-quote-bg: #1e3a5f;--rc-alert-info: #7db9e5;--rc-alert-warning: #da864a;--rc-alert-tip: #54da48;--rc-alert-caution: #e16973;--rc-alert-important: #9966e0;--rc-shadow-top-bar: 0 8px 30px rgba(0, 0, 0, .45), 0 2px 8px rgba(0, 0, 0, .3);--rc-shadow-modal: 0 10px 15px -3px rgba(0,0,0,.4), 0 4px 6px -4px rgba(0,0,0,.35);--rc-shadow-menu: 0 1px 4px rgba(0,0,0,.25), 0 4px 16px rgba(0,0,0,.4)}@keyframes ds1tv41{to{--rc-hl-highlighted: 1}}@keyframes ds1tv42{0%{background-color:#ef44443d}to{background-color:transparent}}.ds1tv40{font-family:var(--rc-font-family);font-size:var(--rc-font-size-base);line-height:var(--rc-line-height);color:var(--rc-text);word-wrap:break-word;overflow-wrap:break-word}.ds1tv40 .rich-paragraph{margin:0 0 1em;line-height:var(--rc-line-height)}.ds1tv40 .rich-text-bold{font-weight:700}.ds1tv40 .rich-text-italic{font-style:italic}.ds1tv40 .rich-text-underline{text-decoration:underline}.ds1tv40 .rich-text-strikethrough{text-decoration:line-through}.ds1tv40 .rich-text-superscript{vertical-align:super;font-size:.8em}.ds1tv40 .rich-text-subscript{vertical-align:sub;font-size:.8em}.ds1tv40 .rich-text-code{font-family:var(--rc-font-mono);font-size:.9em;background-color:var(--rc-code-bg);color:var(--rc-code-text);padding:2px 6px;border-radius:var(--rc-radius-sm);border:1px solid var(--rc-border)}.ds1tv40 mark{background:transparent}.ds1tv40 .rich-text-highlight{--rc-hl-lightness: .3;--rc-hl-highlighted: 1;--rc-hl-color: oklch(from var(--rc-accent) l c h / var(--rc-hl-lightness));background:linear-gradient(120deg,var(--rc-hl-color, lightblue) 50%,transparent 50%) 110% 0 / 200% 100% no-repeat;background-position:calc((1 - var(--rc-hl-highlighted)) * 110%) 0;color:var(--rc-text);transition:background-position 1s}[contenteditable=true] .rich-text-highlight{--rc-hl-highlighted: 1;animation:none}[data-theme=dark] .ds1tv40 .rich-text-highlight{--rc-hl-lightness: .35}.ds1tv40 :is(.rich-heading-h1,.rich-heading-h2,.rich-heading-h3,.rich-heading-h4,.rich-heading-h5,.rich-heading-h6){position:relative}.ds1tv40 .rich-heading-anchor{position:absolute;left:-1.25rem;top:0;bottom:0;display:flex;align-items:center;text-decoration:none;color:var(--rc-text-secondary);opacity:0;transition:opacity .15s ease;font-size:.8rem}.ds1tv40 .rich-heading-anchor svg{flex-shrink:0}.ds1tv40 :is(.rich-heading-h1,.rich-heading-h2,.rich-heading-h3,.rich-heading-h4,.rich-heading-h5,.rich-heading-h6):hover .rich-heading-anchor{opacity:.5}.ds1tv40 :is(.rich-heading-h1,.rich-heading-h2,.rich-heading-h3,.rich-heading-h4,.rich-heading-h5,.rich-heading-h6):hover .rich-heading-anchor:hover{opacity:1}[contenteditable=true] .rich-heading-h1:before,[contenteditable=true] .rich-heading-h2:before,[contenteditable=true] .rich-heading-h3:before,[contenteditable=true] .rich-heading-h4:before,[contenteditable=true] .rich-heading-h5:before,[contenteditable=true] .rich-heading-h6:before{position:absolute;left:-1.5rem;bottom:.5rem;display:flex;font-size:.5rem;font-weight:600;color:var(--rc-text-secondary);opacity:.6;pointer-events:none;font-family:var(--rc-font-mono)}[contenteditable=true] .rich-heading-h1:before{content:"H1"}[contenteditable=true] .rich-heading-h2:before{content:"H2"}[contenteditable=true] .rich-heading-h3:before{content:"H3"}[contenteditable=true] .rich-heading-h4:before{content:"H4"}[contenteditable=true] .rich-heading-h5:before{content:"H5"}[contenteditable=true] .rich-heading-h6:before{content:"H6"}.ds1tv40 .rich-heading-h1{font-size:2em;font-weight:700;line-height:var(--rc-line-height-tight);margin-top:1.5em;margin-bottom:.5em}.ds1tv40 .rich-heading-h2{font-size:1.5em;font-weight:700;line-height:var(--rc-line-height-tight);margin-top:1.4em;margin-bottom:.45em}.ds1tv40 .rich-heading-h3{font-size:1.25em;font-weight:600;line-height:var(--rc-line-height-tight);margin-top:1.3em;margin-bottom:.4em}.ds1tv40 .rich-heading-h4{font-size:1.125em;font-weight:600;line-height:var(--rc-line-height-tight);margin-top:1.2em;margin-bottom:.35em}.ds1tv40 .rich-heading-h5{font-size:1em;font-weight:600;line-height:var(--rc-line-height-tight);margin-top:1.1em;margin-bottom:.3em}.ds1tv40 .rich-heading-h6{font-size:.875em;font-weight:600;line-height:var(--rc-line-height-tight);margin-top:1em;margin-bottom:.25em;color:var(--rc-text)}.ds1tv40 .rich-link{color:var(--rc-link);text-decoration:none;transition:color .2s ease}.ds1tv40 .rich-link:hover{text-decoration:underline}.ds1tv40 .rich-link[data-favicon=loaded]:before{content:"";display:inline-block;width:1em;height:1em;margin-right:.2em;vertical-align:-.125em;background-image:var(--rc-link-favicon);background-size:contain;background-repeat:no-repeat;background-position:center;border-radius:2px}.ds1tv40 .rich-link-favicon{display:inline-flex;align-items:center;margin-right:.15em;vertical-align:-.125em}.ds1tv40 .rich-link-favicon img{width:1em;height:1em;border-radius:2px;object-fit:contain}.ds1tv40 .rich-link-favicon svg{width:.9em;height:.9em}.ds1tv40 .rich-list-ol{list-style-type:decimal;padding-left:var(--rc-space-lg);margin-bottom:1em}.ds1tv40 .rich-list-ul{list-style-type:disc;padding-left:var(--rc-space-lg);margin-bottom:1em}.ds1tv40 .rich-list-item{margin-bottom:.25em}.ds1tv40 .rich-list-nested-item{list-style-type:none}.ds1tv40 .rich-list-nested-item .rich-list-ol{list-style-type:lower-alpha}.ds1tv40 .rich-list-nested-item .rich-list-ul{list-style-type:circle}.ds1tv40 .rich-checklist{list-style-type:none;padding-left:0}.ds1tv40 .rich-list-item.rich-list-item-checked,.ds1tv40 .rich-list-item.rich-list-item-unchecked{--rc-cb-size: 1.125rem;position:relative;padding-left:2em;list-style-type:none;outline:none}.ds1tv40 .rich-list-item.rich-list-item-unchecked:before,.ds1tv40 .rich-list-item.rich-list-item-checked:before{content:"";position:absolute;left:0;top:calc((1lh - var(--rc-cb-size)) / 2);width:var(--rc-cb-size);height:var(--rc-cb-size);border:2px solid color-mix(in oklab,var(--rc-text-secondary) 60%,transparent);border-radius:var(--rc-radius-sm);box-sizing:border-box;cursor:pointer;vertical-align:middle;color:var(--rc-text);background-color:transparent;transition:background-color .2s ease,border-color .2s ease,box-shadow .2s ease}[contenteditable=true] .ds1tv40 .rich-list-item.rich-list-item-unchecked:hover:before{border-color:color-mix(in oklab,var(--rc-text-secondary) 80%,transparent)}.ds1tv40 .rich-list-item.rich-list-item-unchecked:after,.ds1tv40 .rich-list-item.rich-list-item-checked:after{content:"";position:absolute;left:0;top:calc((1lh - var(--rc-cb-size)) / 2);width:var(--rc-cb-size);height:var(--rc-cb-size);opacity:0;clip-path:polygon(20% 100%,20% 80%,50% 80%,50% 80%,70% 80%,70% 100%);background-color:#fff;box-sizing:border-box;display:block;pointer-events:none;transform:rotate(45deg);transform-origin:center;transition:clip-path .25s cubic-bezier(.34,1.56,.64,1),opacity .15s}.ds1tv40 .rich-list-item.rich-list-item-checked:before{background-color:var(--rc-accent);border-color:var(--rc-accent);box-shadow:0 0 0 1px var(--rc-accent)}.ds1tv40 .rich-list-item.rich-list-item-checked:after{clip-path:polygon(20% 100%,20% 80%,50% 80%,50% 0%,70% 0%,70% 100%);opacity:1;transform:rotate(45deg) scale(.7)}.ds1tv40 .rich-list-item-checked{text-decoration:line-through;color:var(--rc-text-secondary)}.ds1tv40 .rich-quote{border-left:4px solid var(--rc-quote-border);background-color:var(--rc-quote-bg);margin:var(--rc-space-md) 0;padding:var(--rc-space-sm) var(--rc-space-md);font-style:italic;color:var(--rc-text-secondary);border-radius:0 var(--rc-radius-sm) var(--rc-radius-sm) 0}.ds1tv40 .rich-quote>.rich-paragraph:first-child{margin-top:0}.ds1tv40 .rich-quote>.rich-paragraph:last-child{margin-bottom:0}.ds1tv40 .rich-hr{border:none;border-top:1px solid var(--rc-hr-border);margin:var(--rc-space-lg) auto;width:60px}.ds1tv40 .rich-table-scrollable-wrapper{overflow-x:auto}.ds1tv40 .rich-table{width:100%;border-collapse:separate;border-spacing:0;margin:var(--rc-space-lg) 0;font-size:var(--rc-font-size-small);border:1px solid var(--rc-border);border-radius:var(--rc-radius-md);overflow:hidden}.ds1tv40 .rich-table-cell{border:none;border-bottom:1px solid var(--rc-border);border-right:1px solid var(--rc-border);padding:1.25em var(--rc-space-lg);text-align:left;vertical-align:middle;line-height:1.5}.ds1tv40 .rich-table-cell:last-child{border-right:none}.ds1tv40 .rich-table tbody tr:last-child .rich-table-cell{border-bottom:none}.ds1tv40 .rich-table-cell .rich-paragraph{margin:0;padding:0;line-height:inherit}.ds1tv40 .rich-table-cell>:first-child{margin-top:0}.ds1tv40 .rich-table-cell>:last-child{margin-bottom:0}.ds1tv40 .rich-table-cell-header{border:none;border-bottom:1px solid var(--rc-border);border-right:1px solid var(--rc-border);padding:var(--rc-space-md) var(--rc-space-lg);text-align:left;font-weight:600;font-size:.75em;text-transform:uppercase;letter-spacing:.05em;color:var(--rc-text-secondary);background-color:var(--rc-bg-secondary);vertical-align:middle;line-height:1.5;position:sticky;top:0;z-index:1}.ds1tv40 .rich-table-cell-header:last-child{border-right:none}.ds1tv40 .rich-table-cell-header .rich-paragraph{margin:0;padding:0;line-height:inherit}.ds1tv40 .rich-table-cell-header>:first-child{margin-top:0}.ds1tv40 .rich-table-cell-header>:last-child{margin-bottom:0}.ds1tv40 img{max-width:100%;height:auto;border-radius:var(--rc-radius-md)}.ds1tv40 .rich-spoiler{background-color:var(--rc-text);color:transparent;border-radius:var(--rc-radius-sm);padding-inline:4px;cursor:pointer;transition:background-color .3s ease,color .3s ease;user-select:none}[contenteditable=true] .rich-spoiler{background-color:color-mix(in srgb,var(--rc-text) 30%,transparent);color:inherit;user-select:auto;cursor:text}.ds1tv40 .rich-spoiler:hover,.ds1tv40 .rich-spoiler-revealed{background-color:transparent;color:inherit;user-select:auto}.ds1tv40 .rich-ruby{ruby-position:over;ruby-align:center}.ds1tv40 .rich-ruby-rt{font-size:.58em;line-height:1;color:var(--rc-text-secondary);user-select:none}[contenteditable=true] .rich-ruby[data-ruby]{position:relative;display:inline-block;padding-top:.72em;line-height:1.2}[contenteditable=true] .rich-ruby[data-ruby]:before{content:attr(data-ruby);position:absolute;left:0;right:0;top:0;transform:translateY(-.68em);font-size:.58em;line-height:1;text-align:center;color:var(--rc-text-secondary);pointer-events:none;white-space:nowrap}.ds1tv40 .rich-footnote{vertical-align:super;font-size:.8em}.ds1tv40 .rich-footnote-ref{display:inline-flex;align-items:center;justify-content:center;min-width:1.5em;text-decoration:none;color:var(--rc-accent);background-color:var(--rc-accent-light);border-radius:999px;padding:0 .35em;line-height:1.45;font-weight:600;font-size:.82em;transition:filter .15s ease}.ds1tv40 .rich-footnote-ref:hover{filter:brightness(.96)}.ds1tv40 .rich-footnote-highlight{animation:ds1tv42 1.2s ease-out}.ds1tv40 .rich-footnote-ref-wrapper{position:relative;display:inline}.ds1tv40 .rich-footnote-section{margin-top:var(--rc-space-lg)}.ds1tv40 .rich-footnote-section-divider{border:none;border-top:1px solid var(--rc-border);margin:var(--rc-space-lg) 0 var(--rc-space-md)}.ds1tv40 .rich-footnote-section-list{list-style-type:decimal;padding-left:var(--rc-space-lg);font-size:var(--rc-font-size-small);color:var(--rc-text-secondary);line-height:1.6}.ds1tv40 .rich-footnote-section-item{margin-bottom:var(--rc-space-sm);padding-left:var(--rc-space-xs)}.ds1tv40 .rich-footnote-back-ref{display:inline-flex;align-items:center;margin-left:var(--rc-space-xs);color:var(--rc-accent);text-decoration:none;font-size:.85em;transition:opacity .15s ease;font-family:var(--rc-font-mono)}.ds1tv40 .rich-footnote-back-ref:hover{opacity:.7}.ds1tv40 .rich-footnote-section-item-edit{display:flex;align-items:center;gap:var(--rc-space-sm);list-style-type:none}.ds1tv40 .rich-footnote-section-item-num{flex-shrink:0;color:var(--rc-text-secondary);font-size:var(--rc-font-size-small);font-weight:600;min-width:1.5em}.ds1tv40 .rich-footnote-section-item-input{flex:1;border:1px solid var(--rc-border);border-radius:var(--rc-radius-sm);padding:var(--rc-space-xs) var(--rc-space-sm);font-size:var(--rc-font-size-small);color:var(--rc-text);background-color:transparent;outline:none;transition:border-color .15s ease}.ds1tv40 .rich-footnote-section-item-input:focus{border-color:var(--rc-accent)}.ds1tv40 .rich-footnote-section-item-remove{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border:none;background:none;color:var(--rc-text-secondary);cursor:pointer;border-radius:var(--rc-radius-sm);font-size:14px;transition:color .15s ease,background-color .15s ease}.ds1tv40 .rich-footnote-section-item-remove:hover{color:#ef4444;background-color:#ef44441a}.rich-drag-handle{position:absolute;display:flex;align-items:center;justify-content:center;width:20px;height:20px;cursor:grab;border-radius:var(--rc-radius-sm);color:var(--rc-text-secondary);opacity:.4;transition:opacity .15s ease,background-color .15s ease;z-index:10}.rich-drag-handle:hover{opacity:1;background-color:var(--rc-fill-secondary)}.rich-drag-handle:active{cursor:grabbing}.rich-drop-indicator{position:absolute;height:2px;background-color:var(--rc-accent);border-radius:1px;pointer-events:none;z-index:10}.ds1tv40 .rich-alert{margin:2em 0;padding:0 1em;background-color:transparent;border:none;border-radius:0}.ds1tv40>*:first-child,.ds1tv40 .rich-editor__content>*:first-child{margin-top:0}.ds1tv40>*:last-child,.ds1tv40 .rich-editor__content>*:last-child{margin-bottom:0}@supports (animation-timeline: view()){.ds1tv40 .rich-text-highlight{--rc-hl-highlighted: 0;animation:ds1tv41 steps(1) both;animation-timeline:view();animation-range:entry 100% cover 10%}}._1pke0ca0{max-width:var(--rc-max-width);font-size:var(--rc-font-size-base);line-height:1.75;color:var(--rc-text)}._1pke0ca0 .rich-paragraph{margin-top:1.5em;margin-bottom:1.5em}._1pke0ca0 .rich-heading-h1{color:var(--rc-text);font-weight:800;font-size:3em;margin-top:0;margin-bottom:.8333333333333334em;line-height:1}._1pke0ca0 .rich-heading-h2{color:var(--rc-text);font-weight:700;font-size:1.875em;margin-top:1.8666666666666667em;margin-bottom:1.0666666666666667em;line-height:1.3333333}._1pke0ca0 .rich-heading-h3{color:var(--rc-text);font-weight:600;font-size:1.5em;margin-top:1.6666666666666667em;margin-bottom:.6666666666666666em;line-height:1.5}._1pke0ca0 .rich-heading-h4{color:var(--rc-text);font-weight:600;margin-top:2em;margin-bottom:.5em;line-height:1.5625}._1pke0ca0 .rich-heading-h2+*,._1pke0ca0 .rich-heading-h3+*,._1pke0ca0 .rich-heading-h4+*{margin-top:0}._1pke0ca0 .rich-quote{font-weight:500;font-style:italic;color:var(--rc-text);border-left-width:.25rem;border-left-style:solid;border-left-color:var(--rc-quote-border);margin-top:2.5em;margin-bottom:2.5em;padding-left:1.5em;background-color:transparent;border-radius:0;quotes:"“""”""‘""’"}._1pke0ca0 .rich-quote .rich-paragraph:first-of-type:before{content:open-quote}._1pke0ca0 .rich-quote .rich-paragraph:last-of-type:after{content:close-quote}._1pke0ca0 .rich-quote .rich-paragraph:first-child{margin-top:0}._1pke0ca0 .rich-quote .rich-paragraph:last-child{margin-bottom:0}._1pke0ca0 .rich-text-code{color:var(--rc-text);font-weight:600;font-size:.875em;background-color:var(--rc-code-bg);padding:.2em .4em;border-radius:var(--rc-radius-sm);font-family:var(--rc-font-mono)}._1pke0ca0 .rich-text-code:before,._1pke0ca0 .rich-text-code:after{content:"`";color:var(--rc-text-secondary);opacity:.5}._1pke0ca0 .rich-code-block{color:var(--rc-text);background-color:var(--rc-code-bg);border-radius:.375rem;margin-top:2em;margin-bottom:2em;font-size:.875em;line-height:1.75}._1pke0ca0 .rich-code-block pre{padding:1em 1.5em;margin:0}._1pke0ca0 .rich-list-ul,._1pke0ca0 .rich-list-ol{margin-top:1.5em;margin-bottom:1.5em;padding-left:1.75em}._1pke0ca0 .rich-list-item{margin-top:.75em;margin-bottom:.75em;padding-left:.5em}._1pke0ca0 .rich-list-item .rich-paragraph{margin-top:1em;margin-bottom:1em}._1pke0ca0 .rich-list-item>.rich-paragraph:first-child{margin-top:1.5em}._1pke0ca0 .rich-list-item>.rich-paragraph:last-child{margin-bottom:1.5em}._1pke0ca0 .rich-list-ul .rich-list-ul,._1pke0ca0 .rich-list-ul .rich-list-ol,._1pke0ca0 .rich-list-ol .rich-list-ul,._1pke0ca0 .rich-list-ol .rich-list-ol{margin-top:1em;margin-bottom:1em}._1pke0ca0 .rich-table{margin-top:2em;margin-bottom:2em;font-size:.875em;line-height:1.5}._1pke0ca0 .rich-table .rich-paragraph{margin:0;padding:0;line-height:inherit}._1pke0ca0 .rich-image{margin-top:2em;margin-bottom:2em}._1pke0ca0 .rich-image>*{margin-top:0;margin-bottom:0}._1pke0ca0 .rich-image figcaption{color:var(--rc-text-secondary);font-size:.875em;line-height:1.5;margin-top:1em}._1pke0ca0 .rich-hr{border-color:var(--rc-hr-border);border-top-width:1px;width:60px;margin:3.5em auto}._1pke0ca0 .rich-hr+*{margin-top:0}._1pke0ca0 .rich-link{font-weight:500;text-decoration:underline}._1pke0ca0 .rich-banner,._1pke0ca0 .rich-code-snippet,._1pke0ca0 .rich-details{margin:2em 0}._1pke0ca0>*:first-child{margin-top:0}._1pke0ca0>*:last-child{margin-bottom:0}._1iyoz3l0{font-size:var(--rc-font-size-base);line-height:var(--rc-line-height)}._1iyoz3l0 .rich-paragraph{margin-bottom:.6em}._1iyoz3l0 .rich-heading-h1{font-size:1.35em;font-weight:700;margin-top:.8em;margin-bottom:.3em}._1iyoz3l0 .rich-heading-h2{font-size:1.2em;font-weight:700;margin-top:.7em;margin-bottom:.25em}._1iyoz3l0 .rich-heading-h3{font-size:1.1em;font-weight:600;margin-top:.6em;margin-bottom:.2em}._1iyoz3l0 .rich-heading-h4{font-size:1em;font-weight:600;margin-top:.5em;margin-bottom:.15em}._1iyoz3l0 .rich-heading-h5{font-size:.9em;font-weight:600;margin-top:.45em;margin-bottom:.1em}._1iyoz3l0 .rich-heading-h6{font-size:.85em;font-weight:600;margin-top:.4em;margin-bottom:.1em}._1iyoz3l0 .rich-quote{border-left-width:3px;padding:var(--rc-space-sm) var(--rc-space-md);margin:var(--rc-space-sm) 0;font-size:.95em}._1iyoz3l0 .rich-list-ol,._1iyoz3l0 .rich-list-ul{margin-bottom:.6em;padding-left:var(--rc-space-md)}._1iyoz3l0 .rich-list-item{margin-bottom:.1em}._1iyoz3l0 .rich-code-block{margin:var(--rc-space-sm) 0;border-radius:var(--rc-radius-sm);font-size:var(--rc-font-size-small)}._1iyoz3l0 .rich-code-block pre{padding:var(--rc-space-sm)}._1iyoz3l0 .line:before{display:none!important}._1iyoz3l0 .rich-table{margin:var(--rc-space-sm) 0;font-size:var(--rc-font-size-small)}._1iyoz3l0 .rich-table-cell,._1iyoz3l0 .rich-table-cell-header{padding:var(--rc-space-xs) var(--rc-space-sm)}._1iyoz3l0 .rich-image{margin:var(--rc-space-sm) 0}._1iyoz3l0 .rich-image figcaption{font-size:var(--rc-font-size-small)}._1iyoz3l0 .rich-hr{border:none;border-top:1px solid var(--rc-hr-border);margin:var(--rc-space-lg) auto;width:60px}._1iyoz3l0 .rich-alert{padding:var(--rc-space-sm) var(--rc-space-md);padding-left:var(--rc-space-lg);margin:var(--rc-space-sm) 0}._1iyoz3l0 .rich-katex-block{padding:var(--rc-space-sm) 0;margin:var(--rc-space-sm) 0}.g7jfj60{max-width:var(--rc-max-width);font-size:var(--rc-font-size-base);line-height:1.8;color:var(--rc-text)}.g7jfj60>.rich-paragraph,.g7jfj60 .rich-editor__content>.rich-paragraph,.g7jfj60 .rich-content__body>.rich-paragraph{margin-top:1.25em;margin-bottom:1.25em;line-height:1.8}.g7jfj60>.rich-paragraph:first-of-type,.g7jfj60 .rich-editor__content>.rich-paragraph:first-of-type,.g7jfj60 .rich-content__body>.rich-paragraph:first-of-type{margin-top:0;margin-bottom:2rem}.g7jfj60>.rich-paragraph:not(:first-of-type)>[data-lexical-text]:first-child,.g7jfj60 .rich-editor__content>.rich-paragraph:not(:first-of-type)>[data-lexical-text]:first-child,.g7jfj60 .rich-content__body>.rich-paragraph:not(:first-of-type)>[data-lexical-text]:first-child{margin-inline-start:2rem}.g7jfj60>.rich-paragraph:first-of-type:first-letter,.g7jfj60 .rich-content__body>.rich-paragraph:first-of-type:first-letter{float:left;font-size:2.4em;margin-right:.2em;line-height:1}.g7jfj60 .rich-editor__content>.rich-paragraph:first-of-type:first-letter{font-size:1.5em;font-weight:700;color:var(--rc-accent)}.g7jfj60>.rich-paragraph:last-child,.g7jfj60 .rich-editor__content>.rich-paragraph:last-child,.g7jfj60 .rich-content__body>.rich-paragraph:last-child{margin-bottom:0}.g7jfj60 .rich-text-bold{font-family:var(--rc-font-family);font-weight:600;color:var(--rc-text)}.g7jfj60 .rich-heading-h1{font-size:2.25em;font-weight:800;line-height:1.1111111;margin-top:0;margin-bottom:.8888889em;letter-spacing:-.025em;color:var(--rc-text)}.g7jfj60 .rich-heading-h2{font-size:1.5em;font-weight:700;line-height:1.3333333;margin-top:2em;margin-bottom:1em;letter-spacing:-.025em;color:var(--rc-text)}.g7jfj60 .rich-heading-h2+*{margin-top:0}.g7jfj60 .rich-heading-h3{font-size:1.25em;font-weight:600;line-height:1.6;margin-top:1.6em;margin-bottom:.6em;letter-spacing:-.025em;color:var(--rc-text)}.g7jfj60 .rich-heading-h3+*{margin-top:0}.g7jfj60 .rich-heading-h4{font-size:1.125em;font-weight:600;line-height:1.5;margin-top:1.5em;margin-bottom:.5em;color:var(--rc-text)}.g7jfj60 .rich-heading-h4+*{margin-top:0}.g7jfj60 .rich-heading-h5{font-size:1em;font-weight:600;line-height:1.5;margin-top:1.5em;margin-bottom:.5em;color:var(--rc-text)}.g7jfj60 .rich-heading-h5+*{margin-top:0}.g7jfj60 .rich-heading-h6{font-size:.875em;font-weight:600;line-height:1.5;margin-top:1.5em;margin-bottom:.5em;color:var(--rc-text);text-transform:uppercase}.g7jfj60 .rich-heading-h6+*{margin-top:0}.g7jfj60 .rich-quote{font-style:normal;line-height:1.8;color:inherit;border-left:none;background-color:color-mix(in srgb,var(--rc-accent) 10%,transparent);margin-top:1.6em;margin-bottom:1.6em;margin-left:-1rem;margin-right:-1rem;padding:1em 2em;border-radius:0}.g7jfj60 .rich-quote .rich-paragraph:first-child:first-letter{float:none;font-size:inherit;margin-right:0}.g7jfj60 .rich-link{font-weight:500;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:2px;transition:color .15s ease}.g7jfj60 .rich-link:hover{text-decoration-thickness:2px}.g7jfj60 .rich-text-code{font-size:.875em;font-family:var(--rc-font-mono);font-weight:500;padding:.2em .4em;border-radius:var(--rc-radius-sm);background-color:var(--rc-code-bg)}.g7jfj60 .rich-list-ol,.g7jfj60 .rich-list-ul{margin-top:1.25em;margin-bottom:1.25em;padding-left:1.625em}.g7jfj60 .rich-list-ol{list-style-type:decimal}.g7jfj60 .rich-list-ul{list-style-type:disc}.g7jfj60 .rich-list-item{margin-top:.5em;margin-bottom:.5em;padding-left:.375em}.g7jfj60 .rich-list-item::marker{color:var(--rc-text-secondary)}.g7jfj60 .rich-code-block{font-size:.875em;line-height:1.7142857;margin-top:1.7142857em;margin-bottom:1.7142857em;border-radius:var(--rc-radius-md);overflow-x:auto}.g7jfj60 .rich-code-block pre{padding:.8571429em 1.1428571em;margin:0}.g7jfj60 .rich-table{margin-top:2em;margin-bottom:2em;font-size:.875em;line-height:1.7142857}.g7jfj60 .rich-table .rich-paragraph{margin:0;padding:0;line-height:inherit}.g7jfj60 .rich-table .rich-paragraph:first-child:first-letter{float:none;font-size:inherit;margin-right:0}.g7jfj60 .rich-image{margin-top:2em;margin-bottom:2em}.g7jfj60 .rich-image img{border-radius:var(--rc-radius-md)}.g7jfj60 .rich-image figcaption{font-size:.875em;line-height:1.4285714;margin-top:.8571429em;color:var(--rc-text-secondary);text-align:center}.g7jfj60 .rich-hr{border:none;border-top:1px solid var(--rc-hr-border);opacity:.2;margin-top:.5rem;margin-bottom:.5rem;width:60px;margin-left:auto;margin-right:auto}.g7jfj60 .rich-katex-block{margin-top:1.6em;margin-bottom:1.6em;overflow-x:auto;padding:1em 0}.g7jfj60 .rich-spoiler{border-radius:var(--rc-radius-sm);padding-inline:.25em}.g7jfj60>*:first-child{margin-top:0}.g7jfj60>*:last-child{margin-bottom:0}._1an6v8d0{position:relative;display:block;cursor:pointer;margin:var(--rc-space-md) 0;border-radius:var(--rc-radius-md);border:1px solid var(--rc-border);overflow:clip}._1an6v8d1{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:#00000059;color:#fff;opacity:0;pointer-events:none;transition:opacity .2s,background .2s}._1an6v8d0:hover ._1an6v8d1{opacity:1;background:#00000080}.ds1tv40 .rich-nested-doc-content{padding-block:var(--rc-space-md);padding-inline:var(--rc-space-xl);max-height:400px;overflow:clip}._1an6v8d2._1an6v8d2{padding:0;gap:0;width:700px;max-width:90vw;max-height:min(900px,calc(100vh - 1rem));overflow:hidden}._1an6v8d3{display:grid;grid-template-rows:auto minmax(0,1fr) auto;height:min(800px,calc(100vh - 1rem));background:var(--rc-bg)}._1an6v8d4{display:grid;gap:0;padding:.75rem 3rem .75rem .875rem;border-bottom:1px solid var(--rc-border);background:linear-gradient(180deg,color-mix(in srgb,var(--rc-text) 3%,transparent),transparent)}._1an6v8d5{display:flex;align-items:center;gap:.75rem}._1an6v8d6{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:var(--rc-radius-sm);background:color-mix(in srgb,var(--rc-accent) 14%,transparent);color:var(--rc-text);flex-shrink:0}._1an6v8d7{min-width:0}._1an6v8d8{margin:0;font-size:1.125rem;font-weight:700;line-height:1.1;color:var(--rc-text)}._1an6v8d9{padding:0 .75rem .5rem;border-bottom:1px solid var(--rc-border);background:var(--rc-bg)}._1an6v8da{margin:0;max-width:none;border-radius:0;position:sticky;top:0}._1an6v8da{border:none;box-shadow:none;background-color:transparent;backdrop-filter:none}._1an6v8da>div{padding-inline:0}._1an6v8db{min-height:0;overflow:hidden;background:linear-gradient(180deg,color-mix(in srgb,var(--rc-text) 2%,transparent),transparent)}._1an6v8db .rich-editor{display:flex;flex-direction:column;height:100%}._1an6v8db .rich-editor__content-wrapper{max-width:none;overflow-y:auto}._1an6v8db .rich-editor__content{padding-left:1.5rem;padding-right:1.5rem}._1an6v8db .rich-editor__placeholder{left:1.5rem}._1an6v8db .ds1tv40>*:first-child{border-top:none;border-left:none;border-right:none;box-shadow:none;border-radius:0;margin:0;max-width:none;backdrop-filter:none;background-color:transparent}._1an6v8dc{height:100%;overflow-y:auto;overflow-x:hidden;scrollbar-gutter:stable both-edges}._1an6v8dd{display:flex;min-height:100%;background:var(--rc-bg);overflow:hidden}._1an6v8de{flex:1;min-height:460px;padding:1.25rem 1.5rem 1.75rem;outline:none;overflow:visible}._1an6v8df{display:flex;align-items:center;justify-content:flex-end;gap:1rem;padding:.875rem 1.25rem 1rem;border-top:1px solid var(--rc-border);background:color-mix(in srgb,var(--rc-text) 2%,transparent)}._1an6v8dg{display:flex;align-items:center;gap:.625rem;flex-shrink:0}._1an6v8dh{display:inline-flex;align-items:center;justify-content:center;gap:.45rem;height:36px;padding:0 .875rem;border-radius:var(--rc-radius-sm);border:1px solid transparent;font-size:var(--rc-font-size-xs);font-weight:600;cursor:pointer;transition:background-color .15s ease,border-color .15s ease,color .15s ease}._1an6v8di{border-color:var(--rc-border);background:var(--rc-bg);color:var(--rc-text-secondary)}._1an6v8di:hover{background:var(--rc-fill-secondary);color:var(--rc-text)}._1an6v8dj{background:var(--rc-text);color:var(--rc-bg)}._1an6v8dj:hover{background:color-mix(in srgb,var(--rc-text) 86%,transparent)}._1an6v8dk{position:relative;display:block;cursor:pointer;margin:var(--rc-space-md) 0;border-radius:var(--rc-radius-md);border:1px solid var(--rc-border);overflow:clip}._1an6v8dl{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:#00000040;color:#fff;opacity:0;pointer-events:none;transition:opacity .2s;z-index:1}._1an6v8dk:hover ._1an6v8dl{opacity:1}._1an6v8dm{position:absolute;bottom:0;left:0;right:0;height:4rem;background:linear-gradient(to bottom,transparent,var(--rc-bg));pointer-events:none}._1an6v8dn._1an6v8dn{display:flex;flex-direction:column;width:700px;max-width:90vw;height:min(800px,calc(100vh - 2rem));max-height:min(800px,calc(100vh - 2rem));overflow:hidden}._1an6v8do{flex:1;min-height:0;margin:-1.5rem;padding:1.5rem;overflow-y:auto;overflow-x:hidden}._1an6v8dp{pointer-events:none}._1an6v8dq{margin:0;color:var(--rc-text-secondary);font-size:var(--rc-font-size-md);opacity:.72}._1an6v8de .rich-paragraph:first-child,._1an6v8dp .rich-paragraph:first-child{margin-top:0}._1an6v8dp .rich-paragraph:last-child{margin-bottom:0}
|
|
1
|
+
:root{--rc-text: #000;--rc-text-secondary: #27272a;--rc-text-tertiary: #71717a;--rc-text-quaternary: #a1a1aa;--rc-bg: #ffffff;--rc-bg-secondary: #fafafa;--rc-bg-tertiary: #f4f4f5;--rc-fill: #e8e8ec;--rc-fill-secondary: #eeeeef;--rc-fill-tertiary: #f4f4f6;--rc-fill-quaternary: #f9f9fa;--rc-border: #f4f4f5;--rc-accent: #2563eb;--rc-accent-light: #2563eb20;--rc-link: #2563eb;--rc-code-text: #3f3f46;--rc-code-bg: #f4f4f5;--rc-hr-border: #e4e4e7;--rc-quote-border: #2563eb;--rc-quote-bg: #eff6ff;--rc-alert-info: #006bb7;--rc-alert-warning: #cc5500;--rc-alert-tip: #11cc00;--rc-alert-caution: #cc0011;--rc-alert-important: #5500cc;--rc-max-width: 700px;--rc-shadow-top-bar: 0 8px 30px rgba(0, 0, 0, .12), 0 2px 8px rgba(0, 0, 0, .06);--rc-shadow-modal: 0 10px 15px -3px rgba(0,0,0,.1), 0 4px 6px -4px rgba(0,0,0,.1);--rc-shadow-menu: 0 1px 4px rgba(0,0,0,.04), 0 4px 16px rgba(0,0,0,.08);--rc-space-xs: 4px;--rc-space-sm: 8px;--rc-space-md: 16px;--rc-space-lg: 24px;--rc-space-xl: 32px;--rc-font-family-sans: "PingFang SC", "Microsoft YaHei", "Segoe UI", Roboto, Helvetica, "noto sans sc", "hiragino sans gb", -apple-system, system-ui, sans-serif, Apple Color Emoji, Segoe UI Emoji, Not Color Emoji;--rc-font-family-serif: "Noto Serif CJK SC", "Source Han Serif SC", "Source Han Serif", "source-han-serif-sc", "Songti SC", STSong, "华文宋体", serif;--rc-font-mono: "SF Mono", SFMono-Regular, ui-monospace, "DejaVu Sans Mono", Menlo, Consolas, monospace;--rc-font-size-2xs: .625em;--rc-font-size-xs: .75em;--rc-font-size-sm: .8125em;--rc-font-size-md: .875em;--rc-font-size-lg: 1.25em;--rc-font-size-base: 16px;--rc-font-size-small: 14px;--rc-line-height: 1.7;--rc-line-height-tight: 1.4;--rc-font-family: "PingFang SC", "Microsoft YaHei", "Segoe UI", Roboto, Helvetica, "noto sans sc", "hiragino sans gb", -apple-system, system-ui, sans-serif, Apple Color Emoji, Segoe UI Emoji, Not Color Emoji;--rc-radius-sm: 4px;--rc-radius-md: 8px;--rc-radius-lg: 12px}:root.dark{--rc-text: #fafafa;--rc-text-secondary: #a1a1aa;--rc-text-tertiary: #71717a;--rc-text-quaternary: #52525b;--rc-bg: #09090b;--rc-bg-secondary: #18181b;--rc-bg-tertiary: #27272a;--rc-fill: #2a2a2f;--rc-fill-secondary: #222226;--rc-fill-tertiary: #1b1b1f;--rc-fill-quaternary: #131316;--rc-border: #27272a;--rc-accent: #60a5fa;--rc-accent-light: #60a5fa20;--rc-link: #60a5fa;--rc-code-text: #e4e4e7;--rc-code-bg: #27272a;--rc-hr-border: #27272a;--rc-quote-border: #60a5fa;--rc-quote-bg: #1e3a5f;--rc-alert-info: #7db9e5;--rc-alert-warning: #da864a;--rc-alert-tip: #54da48;--rc-alert-caution: #e16973;--rc-alert-important: #9966e0;--rc-max-width: 700px;--rc-shadow-top-bar: 0 8px 30px rgba(0, 0, 0, .45), 0 2px 8px rgba(0, 0, 0, .3);--rc-shadow-modal: 0 10px 15px -3px rgba(0,0,0,.4), 0 4px 6px -4px rgba(0,0,0,.35);--rc-shadow-menu: 0 1px 4px rgba(0,0,0,.25), 0 4px 16px rgba(0,0,0,.4);--rc-space-xs: 4px;--rc-space-sm: 8px;--rc-space-md: 16px;--rc-space-lg: 24px;--rc-space-xl: 32px;--rc-font-family-sans: "PingFang SC", "Microsoft YaHei", "Segoe UI", Roboto, Helvetica, "noto sans sc", "hiragino sans gb", -apple-system, system-ui, sans-serif, Apple Color Emoji, Segoe UI Emoji, Not Color Emoji;--rc-font-family-serif: "Noto Serif CJK SC", "Source Han Serif SC", "Source Han Serif", "source-han-serif-sc", "Songti SC", STSong, "华文宋体", serif;--rc-font-mono: "SF Mono", SFMono-Regular, ui-monospace, "DejaVu Sans Mono", Menlo, Consolas, monospace;--rc-font-size-2xs: .625em;--rc-font-size-xs: .75em;--rc-font-size-sm: .8125em;--rc-font-size-md: .875em;--rc-font-size-lg: 1.25em;--rc-font-size-base: 16px;--rc-font-size-small: 14px;--rc-line-height: 1.7;--rc-line-height-tight: 1.4;--rc-font-family: "PingFang SC", "Microsoft YaHei", "Segoe UI", Roboto, Helvetica, "noto sans sc", "hiragino sans gb", -apple-system, system-ui, sans-serif, Apple Color Emoji, Segoe UI Emoji, Not Color Emoji;--rc-radius-sm: 4px;--rc-radius-md: 8px;--rc-radius-lg: 12px}._1kl9cd60{--rc-text: #000;--rc-text-secondary: #27272a;--rc-text-tertiary: #71717a;--rc-text-quaternary: #a1a1aa;--rc-bg: #ffffff;--rc-bg-secondary: #fafafa;--rc-bg-tertiary: #f4f4f5;--rc-fill: #e8e8ec;--rc-fill-secondary: #eeeeef;--rc-fill-tertiary: #f4f4f6;--rc-fill-quaternary: #f9f9fa;--rc-border: #f4f4f5;--rc-accent: #2563eb;--rc-accent-light: #2563eb20;--rc-link: #2563eb;--rc-code-text: #3f3f46;--rc-code-bg: #f4f4f5;--rc-hr-border: #e4e4e7;--rc-quote-border: #2563eb;--rc-quote-bg: #eff6ff;--rc-alert-info: #006bb7;--rc-alert-warning: #cc5500;--rc-alert-tip: #11cc00;--rc-alert-caution: #cc0011;--rc-alert-important: #5500cc;--rc-max-width: 700px;--rc-shadow-top-bar: 0 8px 30px rgba(0, 0, 0, .12), 0 2px 8px rgba(0, 0, 0, .06);--rc-shadow-modal: 0 10px 15px -3px rgba(0,0,0,.1), 0 4px 6px -4px rgba(0,0,0,.1);--rc-shadow-menu: 0 1px 4px rgba(0,0,0,.04), 0 4px 16px rgba(0,0,0,.08);--rc-space-xs: 4px;--rc-space-sm: 8px;--rc-space-md: 16px;--rc-space-lg: 24px;--rc-space-xl: 32px;--rc-font-family-sans: "PingFang SC", "Microsoft YaHei", "Segoe UI", Roboto, Helvetica, "noto sans sc", "hiragino sans gb", -apple-system, system-ui, sans-serif, Apple Color Emoji, Segoe UI Emoji, Not Color Emoji;--rc-font-family-serif: "Noto Serif CJK SC", "Source Han Serif SC", "Source Han Serif", "source-han-serif-sc", "Songti SC", STSong, "华文宋体", serif;--rc-font-mono: "SF Mono", SFMono-Regular, ui-monospace, "DejaVu Sans Mono", Menlo, Consolas, monospace;--rc-font-size-2xs: .625em;--rc-font-size-xs: .75em;--rc-font-size-sm: .8125em;--rc-font-size-md: .875em;--rc-font-size-lg: 1.25em;--rc-font-size-base: 16px;--rc-font-size-small: 14px;--rc-line-height: 1.7;--rc-line-height-tight: 1.4;--rc-font-family: "PingFang SC", "Microsoft YaHei", "Segoe UI", Roboto, Helvetica, "noto sans sc", "hiragino sans gb", -apple-system, system-ui, sans-serif, Apple Color Emoji, Segoe UI Emoji, Not Color Emoji;--rc-radius-sm: 4px;--rc-radius-md: 8px;--rc-radius-lg: 12px}._1kl9cd61{--rc-text: #000;--rc-text-secondary: #27272a;--rc-text-tertiary: #71717a;--rc-text-quaternary: #a1a1aa;--rc-bg: #ffffff;--rc-bg-secondary: #fafafa;--rc-bg-tertiary: #f4f4f5;--rc-fill: #e8e8ec;--rc-fill-secondary: #eeeeef;--rc-fill-tertiary: #f4f4f6;--rc-fill-quaternary: #f9f9fa;--rc-border: #f4f4f5;--rc-accent: #2563eb;--rc-accent-light: #2563eb20;--rc-link: #2563eb;--rc-code-text: #3f3f46;--rc-code-bg: #f4f4f5;--rc-hr-border: #e4e4e7;--rc-quote-border: #2563eb;--rc-quote-bg: #eff6ff;--rc-alert-info: #006bb7;--rc-alert-warning: #cc5500;--rc-alert-tip: #11cc00;--rc-alert-caution: #cc0011;--rc-alert-important: #5500cc;--rc-max-width: 700px;--rc-shadow-top-bar: 0 8px 30px rgba(0, 0, 0, .12), 0 2px 8px rgba(0, 0, 0, .06);--rc-shadow-modal: 0 10px 15px -3px rgba(0,0,0,.1), 0 4px 6px -4px rgba(0,0,0,.1);--rc-shadow-menu: 0 1px 4px rgba(0,0,0,.04), 0 4px 16px rgba(0,0,0,.08);--rc-space-xs: 4px;--rc-space-sm: 8px;--rc-space-md: 16px;--rc-space-lg: 24px;--rc-space-xl: 32px;--rc-font-family-sans: "PingFang SC", "Microsoft YaHei", "Segoe UI", Roboto, Helvetica, "noto sans sc", "hiragino sans gb", -apple-system, system-ui, sans-serif, Apple Color Emoji, Segoe UI Emoji, Not Color Emoji;--rc-font-family-serif: "Noto Serif CJK SC", "Source Han Serif SC", "Source Han Serif", "source-han-serif-sc", "Songti SC", STSong, "华文宋体", serif;--rc-font-mono: "SF Mono", SFMono-Regular, ui-monospace, "DejaVu Sans Mono", Menlo, Consolas, monospace;--rc-font-size-2xs: .625em;--rc-font-size-xs: .75em;--rc-font-size-sm: .8125em;--rc-font-size-md: .875em;--rc-font-size-lg: 1.25em;--rc-font-size-base: 16px;--rc-font-size-small: 14px;--rc-line-height: 1.8;--rc-line-height-tight: 1.4;--rc-font-family: "Noto Serif CJK SC", "Source Han Serif SC", "Source Han Serif", "source-han-serif-sc", "Songti SC", STSong, "华文宋体", serif;--rc-radius-sm: 4px;--rc-radius-md: 8px;--rc-radius-lg: 12px}._1kl9cd62{--rc-text: #000;--rc-text-secondary: #27272a;--rc-text-tertiary: #71717a;--rc-text-quaternary: #a1a1aa;--rc-bg: #ffffff;--rc-bg-secondary: #fafafa;--rc-bg-tertiary: #f4f4f5;--rc-fill: #e8e8ec;--rc-fill-secondary: #eeeeef;--rc-fill-tertiary: #f4f4f6;--rc-fill-quaternary: #f9f9fa;--rc-border: #f4f4f5;--rc-accent: #2563eb;--rc-accent-light: #2563eb20;--rc-link: #2563eb;--rc-code-text: #3f3f46;--rc-code-bg: #f4f4f5;--rc-hr-border: #e4e4e7;--rc-quote-border: #a1a1aa;--rc-quote-bg: #fafafa;--rc-alert-info: #006bb7;--rc-alert-warning: #cc5500;--rc-alert-tip: #11cc00;--rc-alert-caution: #cc0011;--rc-alert-important: #5500cc;--rc-max-width: none;--rc-shadow-top-bar: 0 8px 30px rgba(0, 0, 0, .12), 0 2px 8px rgba(0, 0, 0, .06);--rc-shadow-modal: 0 10px 15px -3px rgba(0,0,0,.1), 0 4px 6px -4px rgba(0,0,0,.1);--rc-shadow-menu: 0 1px 4px rgba(0,0,0,.04), 0 4px 16px rgba(0,0,0,.08);--rc-space-xs: 2px;--rc-space-sm: 4px;--rc-space-md: 10px;--rc-space-lg: 16px;--rc-space-xl: 20px;--rc-font-family-sans: "PingFang SC", "Microsoft YaHei", "Segoe UI", Roboto, Helvetica, "noto sans sc", "hiragino sans gb", -apple-system, system-ui, sans-serif, Apple Color Emoji, Segoe UI Emoji, Not Color Emoji;--rc-font-family-serif: "Noto Serif CJK SC", "Source Han Serif SC", "Source Han Serif", "source-han-serif-sc", "Songti SC", STSong, "华文宋体", serif;--rc-font-mono: "SF Mono", SFMono-Regular, ui-monospace, "DejaVu Sans Mono", Menlo, Consolas, monospace;--rc-font-size-2xs: .625em;--rc-font-size-xs: .75em;--rc-font-size-sm: .8125em;--rc-font-size-md: .875em;--rc-font-size-lg: 1.25em;--rc-font-size-base: 14px;--rc-font-size-small: 12px;--rc-line-height: 1.5;--rc-line-height-tight: 1.3;--rc-font-family: "PingFang SC", "Microsoft YaHei", "Segoe UI", Roboto, Helvetica, "noto sans sc", "hiragino sans gb", -apple-system, system-ui, sans-serif, Apple Color Emoji, Segoe UI Emoji, Not Color Emoji;--rc-radius-sm: 3px;--rc-radius-md: 6px;--rc-radius-lg: 8px}.dark ._1kl9cd60,[data-theme=dark] ._1kl9cd60,.dark._1kl9cd60,[data-theme=dark]._1kl9cd60,.dark ._1kl9cd61,[data-theme=dark] ._1kl9cd61,.dark._1kl9cd61,[data-theme=dark]._1kl9cd61,.dark ._1kl9cd62,[data-theme=dark] ._1kl9cd62,.dark._1kl9cd62,[data-theme=dark]._1kl9cd62{--rc-text: #fafafa;--rc-text-secondary: #a1a1aa;--rc-text-tertiary: #71717a;--rc-text-quaternary: #52525b;--rc-bg: #09090b;--rc-bg-secondary: #18181b;--rc-bg-tertiary: #27272a;--rc-fill: #2a2a2f;--rc-fill-secondary: #222226;--rc-fill-tertiary: #1b1b1f;--rc-fill-quaternary: #131316;--rc-border: #27272a;--rc-accent: #60a5fa;--rc-accent-light: #60a5fa20;--rc-link: #60a5fa;--rc-code-text: #e4e4e7;--rc-code-bg: #27272a;--rc-hr-border: #27272a;--rc-quote-border: #60a5fa;--rc-quote-bg: #1e3a5f;--rc-alert-info: #7db9e5;--rc-alert-warning: #da864a;--rc-alert-tip: #54da48;--rc-alert-caution: #e16973;--rc-alert-important: #9966e0;--rc-shadow-top-bar: 0 8px 30px rgba(0, 0, 0, .45), 0 2px 8px rgba(0, 0, 0, .3);--rc-shadow-modal: 0 10px 15px -3px rgba(0,0,0,.4), 0 4px 6px -4px rgba(0,0,0,.35);--rc-shadow-menu: 0 1px 4px rgba(0,0,0,.25), 0 4px 16px rgba(0,0,0,.4)}@keyframes ds1tv41{to{--rc-hl-highlighted: 1}}@keyframes ds1tv42{0%{background-color:#ef44443d}to{background-color:transparent}}.ds1tv40{font-family:var(--rc-font-family);font-size:var(--rc-font-size-base);line-height:var(--rc-line-height);color:var(--rc-text);word-wrap:break-word;overflow-wrap:break-word}.ds1tv40 .rich-paragraph{margin:0 0 1em;line-height:var(--rc-line-height)}.ds1tv40 .rich-text-bold{font-weight:700}.ds1tv40 .rich-text-italic{font-style:italic}.ds1tv40 .rich-text-underline{text-decoration:underline}.ds1tv40 .rich-text-strikethrough{text-decoration:line-through}.ds1tv40 .rich-text-superscript{vertical-align:super;font-size:.8em}.ds1tv40 .rich-text-subscript{vertical-align:sub;font-size:.8em}.ds1tv40 .rich-text-code{font-family:var(--rc-font-mono);font-size:.9em;background-color:var(--rc-code-bg);color:var(--rc-code-text);padding:2px 6px;border-radius:var(--rc-radius-sm);border:1px solid var(--rc-border)}.ds1tv40 mark{background:transparent}.ds1tv40 .rich-text-highlight{--rc-hl-lightness: .3;--rc-hl-highlighted: 1;--rc-hl-color: oklch(from var(--rc-accent) l c h / var(--rc-hl-lightness));background:linear-gradient(120deg,var(--rc-hl-color, lightblue) 50%,transparent 50%) 110% 0 / 200% 100% no-repeat;background-position:calc((1 - var(--rc-hl-highlighted)) * 110%) 0;color:var(--rc-text);transition:background-position 1s}[contenteditable=true] .rich-text-highlight{--rc-hl-highlighted: 1;animation:none}[data-theme=dark] .ds1tv40 .rich-text-highlight{--rc-hl-lightness: .35}.ds1tv40 :is(.rich-heading-h1,.rich-heading-h2,.rich-heading-h3,.rich-heading-h4,.rich-heading-h5,.rich-heading-h6){position:relative}.ds1tv40 .rich-heading-anchor{position:absolute;left:-1.25rem;top:0;bottom:0;display:flex;align-items:center;text-decoration:none;color:var(--rc-text-secondary);opacity:0;transition:opacity .15s ease;font-size:.8rem}.ds1tv40 .rich-heading-anchor svg{flex-shrink:0}.ds1tv40 :is(.rich-heading-h1,.rich-heading-h2,.rich-heading-h3,.rich-heading-h4,.rich-heading-h5,.rich-heading-h6):hover .rich-heading-anchor{opacity:.5}.ds1tv40 :is(.rich-heading-h1,.rich-heading-h2,.rich-heading-h3,.rich-heading-h4,.rich-heading-h5,.rich-heading-h6):hover .rich-heading-anchor:hover{opacity:1}[contenteditable=true] .rich-heading-h1:before,[contenteditable=true] .rich-heading-h2:before,[contenteditable=true] .rich-heading-h3:before,[contenteditable=true] .rich-heading-h4:before,[contenteditable=true] .rich-heading-h5:before,[contenteditable=true] .rich-heading-h6:before{position:absolute;left:-1.5rem;bottom:.5rem;display:flex;font-size:.5rem;font-weight:600;color:var(--rc-text-secondary);opacity:.6;pointer-events:none;font-family:var(--rc-font-mono)}[contenteditable=true] .rich-heading-h1:before{content:"H1"}[contenteditable=true] .rich-heading-h2:before{content:"H2"}[contenteditable=true] .rich-heading-h3:before{content:"H3"}[contenteditable=true] .rich-heading-h4:before{content:"H4"}[contenteditable=true] .rich-heading-h5:before{content:"H5"}[contenteditable=true] .rich-heading-h6:before{content:"H6"}.ds1tv40 .rich-heading-h1{font-size:2em;font-weight:700;line-height:var(--rc-line-height-tight);margin-top:1.5em;margin-bottom:.5em}.ds1tv40 .rich-heading-h2{font-size:1.5em;font-weight:700;line-height:var(--rc-line-height-tight);margin-top:1.4em;margin-bottom:.45em}.ds1tv40 .rich-heading-h3{font-size:1.25em;font-weight:600;line-height:var(--rc-line-height-tight);margin-top:1.3em;margin-bottom:.4em}.ds1tv40 .rich-heading-h4{font-size:1.125em;font-weight:600;line-height:var(--rc-line-height-tight);margin-top:1.2em;margin-bottom:.35em}.ds1tv40 .rich-heading-h5{font-size:1em;font-weight:600;line-height:var(--rc-line-height-tight);margin-top:1.1em;margin-bottom:.3em}.ds1tv40 .rich-heading-h6{font-size:.875em;font-weight:600;line-height:var(--rc-line-height-tight);margin-top:1em;margin-bottom:.25em;color:var(--rc-text)}.ds1tv40 .rich-link{color:var(--rc-link);text-decoration:none;transition:color .2s ease}.ds1tv40 .rich-link:hover{text-decoration:underline}.ds1tv40 .rich-link[data-favicon=loaded]:before{content:"";display:inline-block;width:1em;height:1em;margin-right:.2em;vertical-align:-.125em;background-image:var(--rc-link-favicon);background-size:contain;background-repeat:no-repeat;background-position:center;border-radius:2px}.ds1tv40 .rich-link-favicon{display:inline-flex;align-items:center;margin-right:.15em;vertical-align:-.125em}.ds1tv40 .rich-link-favicon img{width:1em;height:1em;border-radius:2px;object-fit:contain}.ds1tv40 .rich-link-favicon svg{width:.9em;height:.9em}.ds1tv40 .rich-list-ol{list-style-type:decimal;padding-left:var(--rc-space-lg);margin-bottom:1em}.ds1tv40 .rich-list-ul{list-style-type:disc;padding-left:var(--rc-space-lg);margin-bottom:1em}.ds1tv40 .rich-list-item{margin-bottom:.25em}.ds1tv40 .rich-list-nested-item{list-style-type:none}.ds1tv40 .rich-list-nested-item .rich-list-ol{list-style-type:lower-alpha}.ds1tv40 .rich-list-nested-item .rich-list-ul{list-style-type:circle}.ds1tv40 .rich-checklist{list-style-type:none;padding-left:0}.ds1tv40 .rich-list-item.rich-list-item-checked,.ds1tv40 .rich-list-item.rich-list-item-unchecked{--rc-cb-size: 1.125rem;position:relative;padding-left:2em;list-style-type:none;outline:none}.ds1tv40 .rich-list-item.rich-list-item-unchecked:before,.ds1tv40 .rich-list-item.rich-list-item-checked:before{content:"";position:absolute;left:0;top:calc((1lh - var(--rc-cb-size)) / 2);width:var(--rc-cb-size);height:var(--rc-cb-size);border:2px solid color-mix(in oklab,var(--rc-text-secondary) 60%,transparent);border-radius:var(--rc-radius-sm);box-sizing:border-box;cursor:pointer;vertical-align:middle;color:var(--rc-text);background-color:transparent;transition:background-color .2s ease,border-color .2s ease,box-shadow .2s ease}[contenteditable=true] .ds1tv40 .rich-list-item.rich-list-item-unchecked:hover:before{border-color:color-mix(in oklab,var(--rc-text-secondary) 80%,transparent)}.ds1tv40 .rich-list-item.rich-list-item-unchecked:after,.ds1tv40 .rich-list-item.rich-list-item-checked:after{content:"";position:absolute;left:0;top:calc((1lh - var(--rc-cb-size)) / 2);width:var(--rc-cb-size);height:var(--rc-cb-size);opacity:0;clip-path:polygon(20% 100%,20% 80%,50% 80%,50% 80%,70% 80%,70% 100%);background-color:#fff;box-sizing:border-box;display:block;pointer-events:none;transform:rotate(45deg);transform-origin:center;transition:clip-path .25s cubic-bezier(.34,1.56,.64,1),opacity .15s}.ds1tv40 .rich-list-item.rich-list-item-checked:before{background-color:var(--rc-accent);border-color:var(--rc-accent);box-shadow:0 0 0 1px var(--rc-accent)}.ds1tv40 .rich-list-item.rich-list-item-checked:after{clip-path:polygon(20% 100%,20% 80%,50% 80%,50% 0%,70% 0%,70% 100%);opacity:1;transform:rotate(45deg) scale(.7)}.ds1tv40 .rich-list-item-checked{text-decoration:line-through;color:var(--rc-text-secondary)}.ds1tv40 .rich-quote{position:relative;background-color:var(--rc-quote-bg);margin:var(--rc-space-md) 0;padding:var(--rc-space-sm) var(--rc-space-md);padding-left:calc(var(--rc-space-md) + 4px);font-style:italic;color:var(--rc-text-secondary);border-radius:0 var(--rc-radius-sm) var(--rc-radius-sm) 0}.ds1tv40 .rich-quote:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;border-radius:var(--rc-radius-sm);background-color:var(--rc-quote-border)}.ds1tv40 .rich-quote>.rich-paragraph:first-child{margin-top:0}.ds1tv40 .rich-quote>.rich-paragraph:last-child{margin-bottom:0}.ds1tv40 .rich-hr{border:none;border-top:1px solid var(--rc-hr-border);margin:var(--rc-space-lg) auto;width:60px}.ds1tv40 .rich-table-scrollable-wrapper{overflow-x:auto}.ds1tv40 .rich-table{width:100%;border-collapse:separate;border-spacing:0;margin:var(--rc-space-lg) 0;font-size:var(--rc-font-size-small);border:1px solid var(--rc-border);border-radius:var(--rc-radius-md);overflow:hidden}.ds1tv40 .rich-table-cell{border:none;border-bottom:1px solid var(--rc-border);border-right:1px solid var(--rc-border);padding:1.25em var(--rc-space-lg);text-align:left;vertical-align:middle;line-height:1.5}.ds1tv40 .rich-table-cell:last-child{border-right:none}.ds1tv40 .rich-table tbody tr:last-child .rich-table-cell{border-bottom:none}.ds1tv40 .rich-table-cell .rich-paragraph{margin:0;padding:0;line-height:inherit}.ds1tv40 .rich-table-cell>:first-child{margin-top:0}.ds1tv40 .rich-table-cell>:last-child{margin-bottom:0}.ds1tv40 .rich-table-cell-header{border:none;border-bottom:1px solid var(--rc-border);border-right:1px solid var(--rc-border);padding:var(--rc-space-md) var(--rc-space-lg);text-align:left;font-weight:600;font-size:.75em;text-transform:uppercase;letter-spacing:.05em;color:var(--rc-text-secondary);background-color:var(--rc-bg-secondary);vertical-align:middle;line-height:1.5;position:sticky;top:0;z-index:1}.ds1tv40 .rich-table-cell-header:last-child{border-right:none}.ds1tv40 .rich-table-cell-header .rich-paragraph{margin:0;padding:0;line-height:inherit}.ds1tv40 .rich-table-cell-header>:first-child{margin-top:0}.ds1tv40 .rich-table-cell-header>:last-child{margin-bottom:0}.ds1tv40 img{max-width:100%;height:auto;border-radius:var(--rc-radius-md)}.ds1tv40 .rich-spoiler{background-color:var(--rc-text);color:transparent;border-radius:var(--rc-radius-sm);padding-inline:4px;cursor:pointer;transition:background-color .3s ease,color .3s ease;user-select:none}[contenteditable=true] .rich-spoiler{background-color:color-mix(in srgb,var(--rc-text) 30%,transparent);color:inherit;user-select:auto;cursor:text}.ds1tv40 .rich-spoiler:hover,.ds1tv40 .rich-spoiler-revealed{background-color:transparent;color:inherit;user-select:auto}.ds1tv40 .rich-ruby{ruby-position:over;ruby-align:center}.ds1tv40 .rich-ruby-rt{font-size:.58em;line-height:1;color:var(--rc-text-secondary);user-select:none}[contenteditable=true] .rich-ruby[data-ruby]{position:relative;display:inline-block;padding-top:.72em;line-height:1.2}[contenteditable=true] .rich-ruby[data-ruby]:before{content:attr(data-ruby);position:absolute;left:0;right:0;top:0;transform:translateY(-.68em);font-size:.58em;line-height:1;text-align:center;color:var(--rc-text-secondary);pointer-events:none;white-space:nowrap}.ds1tv40 .rich-footnote{vertical-align:super;font-size:.8em}.ds1tv40 .rich-footnote-ref{display:inline-flex;align-items:center;justify-content:center;min-width:1.5em;text-decoration:none;color:var(--rc-accent);background-color:var(--rc-accent-light);border-radius:999px;padding:0 .35em;line-height:1.45;font-weight:600;font-size:.82em;transition:filter .15s ease}.ds1tv40 .rich-footnote-ref:hover{filter:brightness(.96)}.ds1tv40 .rich-footnote-highlight{animation:ds1tv42 1.2s ease-out}.ds1tv40 .rich-footnote-ref-wrapper{position:relative;display:inline}.ds1tv40 .rich-footnote-section{margin-top:var(--rc-space-lg)}.ds1tv40 .rich-footnote-section-divider{border:none;border-top:1px solid var(--rc-border);margin:var(--rc-space-lg) 0 var(--rc-space-md)}.ds1tv40 .rich-footnote-section-list{list-style-type:decimal;padding-left:var(--rc-space-lg);font-size:var(--rc-font-size-small);color:var(--rc-text-secondary);line-height:1.6}.ds1tv40 .rich-footnote-section-item{margin-bottom:var(--rc-space-sm);padding-left:var(--rc-space-xs)}.ds1tv40 .rich-footnote-back-ref{display:inline-flex;align-items:center;margin-left:var(--rc-space-xs);color:var(--rc-accent);text-decoration:none;font-size:.85em;transition:opacity .15s ease;font-family:var(--rc-font-mono)}.ds1tv40 .rich-footnote-back-ref:hover{opacity:.7}.ds1tv40 .rich-footnote-section-item-edit{display:flex;align-items:center;gap:var(--rc-space-sm);list-style-type:none}.ds1tv40 .rich-footnote-section-item-num{flex-shrink:0;color:var(--rc-text-secondary);font-size:var(--rc-font-size-small);font-weight:600;min-width:1.5em}.ds1tv40 .rich-footnote-section-item-input{flex:1;border:1px solid var(--rc-border);border-radius:var(--rc-radius-sm);padding:var(--rc-space-xs) var(--rc-space-sm);font-size:var(--rc-font-size-small);color:var(--rc-text);background-color:transparent;outline:none;transition:border-color .15s ease}.ds1tv40 .rich-footnote-section-item-input:focus{border-color:var(--rc-accent)}.ds1tv40 .rich-footnote-section-item-remove{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border:none;background:none;color:var(--rc-text-secondary);cursor:pointer;border-radius:var(--rc-radius-sm);font-size:14px;transition:color .15s ease,background-color .15s ease}.ds1tv40 .rich-footnote-section-item-remove:hover{color:#ef4444;background-color:#ef44441a}.rich-drag-handle{position:absolute;display:flex;align-items:center;justify-content:center;width:20px;height:20px;cursor:grab;border-radius:var(--rc-radius-sm);color:var(--rc-text-secondary);opacity:.4;transition:opacity .15s ease,background-color .15s ease;z-index:10}.rich-drag-handle:hover{opacity:1;background-color:var(--rc-fill-secondary)}.rich-drag-handle:active{cursor:grabbing}.rich-drop-indicator{position:absolute;height:2px;background-color:var(--rc-accent);border-radius:1px;pointer-events:none;z-index:10}.ds1tv40 .rich-alert{margin:2em 0;padding:0 1em;background-color:transparent;border:none;border-radius:0}.ds1tv40>*:first-child,.ds1tv40 .rich-editor__content>*:first-child{margin-top:0}.ds1tv40>*:last-child,.ds1tv40 .rich-editor__content>*:last-child{margin-bottom:0}@supports (animation-timeline: view()){.ds1tv40 .rich-text-highlight{--rc-hl-highlighted: 0;animation:ds1tv41 steps(1) both;animation-timeline:view();animation-range:entry 100% cover 10%}}._1pke0ca0{max-width:var(--rc-max-width);font-size:var(--rc-font-size-base);line-height:1.75;color:var(--rc-text)}._1pke0ca0 .rich-paragraph{margin-top:1.5em;margin-bottom:1.5em}._1pke0ca0 .rich-heading-h1{color:var(--rc-text);font-weight:800;font-size:3em;margin-top:0;margin-bottom:.8333333333333334em;line-height:1}._1pke0ca0 .rich-heading-h2{color:var(--rc-text);font-weight:700;font-size:1.875em;margin-top:1.8666666666666667em;margin-bottom:1.0666666666666667em;line-height:1.3333333}._1pke0ca0 .rich-heading-h3{color:var(--rc-text);font-weight:600;font-size:1.5em;margin-top:1.6666666666666667em;margin-bottom:.6666666666666666em;line-height:1.5}._1pke0ca0 .rich-heading-h4{color:var(--rc-text);font-weight:600;margin-top:2em;margin-bottom:.5em;line-height:1.5625}._1pke0ca0 .rich-heading-h2+*,._1pke0ca0 .rich-heading-h3+*,._1pke0ca0 .rich-heading-h4+*{margin-top:0}._1pke0ca0 .rich-quote{font-weight:500;font-style:italic;color:var(--rc-text);margin-top:2.5em;margin-bottom:2.5em;padding-left:calc(1.5em + 4px);background-color:transparent;border-radius:0;quotes:"“""”""‘""’"}._1pke0ca0 .rich-quote .rich-paragraph:first-of-type:before{content:open-quote}._1pke0ca0 .rich-quote .rich-paragraph:last-of-type:after{content:close-quote}._1pke0ca0 .rich-quote .rich-paragraph:first-child{margin-top:0}._1pke0ca0 .rich-quote .rich-paragraph:last-child{margin-bottom:0}._1pke0ca0 .rich-text-code{color:var(--rc-text);font-weight:600;font-size:.875em;background-color:var(--rc-code-bg);padding:.2em .4em;border-radius:var(--rc-radius-sm);font-family:var(--rc-font-mono)}._1pke0ca0 .rich-text-code:before,._1pke0ca0 .rich-text-code:after{content:"`";color:var(--rc-text-secondary);opacity:.5}._1pke0ca0 .rich-code-block{color:var(--rc-text);background-color:var(--rc-code-bg);border-radius:.375rem;margin-top:2em;margin-bottom:2em;font-size:.875em;line-height:1.75}._1pke0ca0 .rich-code-block pre{padding:1em 1.5em;margin:0}._1pke0ca0 .rich-list-ul,._1pke0ca0 .rich-list-ol{margin-top:1.5em;margin-bottom:1.5em;padding-left:1.75em}._1pke0ca0 .rich-list-item{margin-top:.75em;margin-bottom:.75em;padding-left:.5em}._1pke0ca0 .rich-list-item .rich-paragraph{margin-top:1em;margin-bottom:1em}._1pke0ca0 .rich-list-item>.rich-paragraph:first-child{margin-top:1.5em}._1pke0ca0 .rich-list-item>.rich-paragraph:last-child{margin-bottom:1.5em}._1pke0ca0 .rich-list-ul .rich-list-ul,._1pke0ca0 .rich-list-ul .rich-list-ol,._1pke0ca0 .rich-list-ol .rich-list-ul,._1pke0ca0 .rich-list-ol .rich-list-ol{margin-top:1em;margin-bottom:1em}._1pke0ca0 .rich-table{margin-top:2em;margin-bottom:2em;font-size:.875em;line-height:1.5}._1pke0ca0 .rich-table .rich-paragraph{margin:0;padding:0;line-height:inherit}._1pke0ca0 .rich-image{margin-top:2em;margin-bottom:2em}._1pke0ca0 .rich-image>*{margin-top:0;margin-bottom:0}._1pke0ca0 .rich-image figcaption{color:var(--rc-text-secondary);font-size:.875em;line-height:1.5;margin-top:1em}._1pke0ca0 .rich-hr{border-color:var(--rc-hr-border);border-top-width:1px;width:60px;margin:3.5em auto}._1pke0ca0 .rich-hr+*{margin-top:0}._1pke0ca0 .rich-link{font-weight:500;text-decoration:underline}._1pke0ca0 .rich-banner,._1pke0ca0 .rich-code-snippet,._1pke0ca0 .rich-details{margin:2em 0}._1pke0ca0>*:first-child{margin-top:0}._1pke0ca0>*:last-child{margin-bottom:0}._1iyoz3l0{font-size:var(--rc-font-size-base);line-height:var(--rc-line-height)}._1iyoz3l0 .rich-paragraph{margin-bottom:.6em}._1iyoz3l0 .rich-heading-h1{font-size:1.35em;font-weight:700;margin-top:.8em;margin-bottom:.3em}._1iyoz3l0 .rich-heading-h2{font-size:1.2em;font-weight:700;margin-top:.7em;margin-bottom:.25em}._1iyoz3l0 .rich-heading-h3{font-size:1.1em;font-weight:600;margin-top:.6em;margin-bottom:.2em}._1iyoz3l0 .rich-heading-h4{font-size:1em;font-weight:600;margin-top:.5em;margin-bottom:.15em}._1iyoz3l0 .rich-heading-h5{font-size:.9em;font-weight:600;margin-top:.45em;margin-bottom:.1em}._1iyoz3l0 .rich-heading-h6{font-size:.85em;font-weight:600;margin-top:.4em;margin-bottom:.1em}._1iyoz3l0 .rich-quote{padding:var(--rc-space-sm) var(--rc-space-md);padding-left:calc(var(--rc-space-md) + 3px);margin:var(--rc-space-sm) 0;font-size:.95em}._1iyoz3l0 .rich-quote:before{width:3px}._1iyoz3l0 .rich-list-ol,._1iyoz3l0 .rich-list-ul{margin-bottom:.6em;padding-left:var(--rc-space-md)}._1iyoz3l0 .rich-list-item{margin-bottom:.1em}._1iyoz3l0 .rich-code-block{margin:var(--rc-space-sm) 0;border-radius:var(--rc-radius-sm);font-size:var(--rc-font-size-small)}._1iyoz3l0 .rich-code-block pre{padding:var(--rc-space-sm)}._1iyoz3l0 .line:before{display:none!important}._1iyoz3l0 .rich-table{margin:var(--rc-space-sm) 0;font-size:var(--rc-font-size-small)}._1iyoz3l0 .rich-table-cell,._1iyoz3l0 .rich-table-cell-header{padding:var(--rc-space-xs) var(--rc-space-sm)}._1iyoz3l0 .rich-image{margin:var(--rc-space-sm) 0}._1iyoz3l0 .rich-image figcaption{font-size:var(--rc-font-size-small)}._1iyoz3l0 .rich-hr{border:none;border-top:1px solid var(--rc-hr-border);margin:var(--rc-space-lg) auto;width:60px}._1iyoz3l0 .rich-alert{padding:var(--rc-space-sm) var(--rc-space-md);padding-left:var(--rc-space-lg);margin:var(--rc-space-sm) 0}._1iyoz3l0 .rich-katex-block{padding:var(--rc-space-sm) 0;margin:var(--rc-space-sm) 0}.g7jfj60{max-width:var(--rc-max-width);font-size:var(--rc-font-size-base);line-height:1.8;color:var(--rc-text)}.g7jfj60>.rich-paragraph,.g7jfj60 .rich-editor__content>.rich-paragraph,.g7jfj60 .rich-content__body>.rich-paragraph{margin-top:1.25em;margin-bottom:1.25em;line-height:1.8}.g7jfj60>.rich-paragraph:first-of-type,.g7jfj60 .rich-editor__content>.rich-paragraph:first-of-type,.g7jfj60 .rich-content__body>.rich-paragraph:first-of-type{margin-top:0;margin-bottom:2rem}.g7jfj60>.rich-paragraph:not(:first-of-type)>[data-lexical-text]:first-child,.g7jfj60 .rich-editor__content>.rich-paragraph:not(:first-of-type)>[data-lexical-text]:first-child,.g7jfj60 .rich-content__body>.rich-paragraph:not(:first-of-type)>[data-lexical-text]:first-child{margin-inline-start:2rem}.g7jfj60>.rich-paragraph:first-of-type:first-letter,.g7jfj60 .rich-content__body>.rich-paragraph:first-of-type:first-letter{float:left;font-size:2.4em;margin-right:.2em;line-height:1}.g7jfj60 .rich-editor__content>.rich-paragraph:first-of-type:first-letter{font-size:1.5em;font-weight:700;color:var(--rc-accent)}.g7jfj60>.rich-paragraph:last-child,.g7jfj60 .rich-editor__content>.rich-paragraph:last-child,.g7jfj60 .rich-content__body>.rich-paragraph:last-child{margin-bottom:0}.g7jfj60 .rich-text-bold{font-family:var(--rc-font-family);font-weight:600;color:var(--rc-text)}.g7jfj60 .rich-heading-h1{font-size:2.25em;font-weight:800;line-height:1.1111111;margin-top:0;margin-bottom:.8888889em;letter-spacing:-.025em;color:var(--rc-text)}.g7jfj60 .rich-heading-h2{font-size:1.5em;font-weight:700;line-height:1.3333333;margin-top:2em;margin-bottom:1em;letter-spacing:-.025em;color:var(--rc-text)}.g7jfj60 .rich-heading-h2+*{margin-top:0}.g7jfj60 .rich-heading-h3{font-size:1.25em;font-weight:600;line-height:1.6;margin-top:1.6em;margin-bottom:.6em;letter-spacing:-.025em;color:var(--rc-text)}.g7jfj60 .rich-heading-h3+*{margin-top:0}.g7jfj60 .rich-heading-h4{font-size:1.125em;font-weight:600;line-height:1.5;margin-top:1.5em;margin-bottom:.5em;color:var(--rc-text)}.g7jfj60 .rich-heading-h4+*{margin-top:0}.g7jfj60 .rich-heading-h5{font-size:1em;font-weight:600;line-height:1.5;margin-top:1.5em;margin-bottom:.5em;color:var(--rc-text)}.g7jfj60 .rich-heading-h5+*{margin-top:0}.g7jfj60 .rich-heading-h6{font-size:.875em;font-weight:600;line-height:1.5;margin-top:1.5em;margin-bottom:.5em;color:var(--rc-text);text-transform:uppercase}.g7jfj60 .rich-heading-h6+*{margin-top:0}.g7jfj60 .rich-quote{font-style:normal;line-height:1.8;color:inherit;background-color:color-mix(in srgb,var(--rc-accent) 10%,transparent);margin-top:1.6em;margin-bottom:1.6em;margin-left:-1rem;margin-right:-1rem;padding:1em 2em;border-radius:0}.g7jfj60 .rich-quote:before{display:none}.g7jfj60 .rich-quote .rich-paragraph:first-child:first-letter{float:none;font-size:inherit;margin-right:0}.g7jfj60 .rich-link{font-weight:500;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:2px;transition:color .15s ease}.g7jfj60 .rich-link:hover{text-decoration-thickness:2px}.g7jfj60 .rich-text-code{font-size:.875em;font-family:var(--rc-font-mono);font-weight:500;padding:.2em .4em;border-radius:var(--rc-radius-sm);background-color:var(--rc-code-bg)}.g7jfj60 .rich-list-ol,.g7jfj60 .rich-list-ul{margin-top:1.25em;margin-bottom:1.25em;padding-left:1.625em}.g7jfj60 .rich-list-ol{list-style-type:decimal}.g7jfj60 .rich-list-ul{list-style-type:disc}.g7jfj60 .rich-list-item{margin-top:.5em;margin-bottom:.5em;padding-left:.375em}.g7jfj60 .rich-list-item::marker{color:var(--rc-text-secondary)}.g7jfj60 .rich-code-block{font-size:.875em;line-height:1.7142857;margin-top:1.7142857em;margin-bottom:1.7142857em;border-radius:var(--rc-radius-md);overflow-x:auto}.g7jfj60 .rich-code-block pre{padding:.8571429em 1.1428571em;margin:0}.g7jfj60 .rich-table{margin-top:2em;margin-bottom:2em;font-size:.875em;line-height:1.7142857}.g7jfj60 .rich-table .rich-paragraph{margin:0;padding:0;line-height:inherit}.g7jfj60 .rich-table .rich-paragraph:first-child:first-letter{float:none;font-size:inherit;margin-right:0}.g7jfj60 .rich-image{margin-top:2em;margin-bottom:2em}.g7jfj60 .rich-image img{border-radius:var(--rc-radius-md)}.g7jfj60 .rich-image figcaption{font-size:.875em;line-height:1.4285714;margin-top:.8571429em;color:var(--rc-text-secondary);text-align:center}.g7jfj60 .rich-hr{border:none;border-top:1px solid var(--rc-hr-border);opacity:.2;margin-top:.5rem;margin-bottom:.5rem;width:60px;margin-left:auto;margin-right:auto}.g7jfj60 .rich-katex-block{margin-top:1.6em;margin-bottom:1.6em;overflow-x:auto;padding:1em 0}.g7jfj60 .rich-spoiler{border-radius:var(--rc-radius-sm);padding-inline:.25em}.g7jfj60>*:first-child{margin-top:0}.g7jfj60>*:last-child{margin-bottom:0}._1an6v8d0{position:relative;display:block;cursor:pointer;margin:var(--rc-space-md) 0;border-radius:var(--rc-radius-md);border:1px solid var(--rc-border);overflow:clip}._1an6v8d1{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:#00000059;color:#fff;opacity:0;pointer-events:none;transition:opacity .2s,background .2s}._1an6v8d0:hover ._1an6v8d1{opacity:1;background:#00000080}.ds1tv40 .rich-nested-doc-content{padding-block:var(--rc-space-md);padding-inline:var(--rc-space-xl);max-height:400px;overflow:clip}._1an6v8d2._1an6v8d2{padding:0;gap:0;width:700px;max-width:90vw;max-height:min(900px,calc(100vh - 1rem));overflow:hidden}._1an6v8d3{display:grid;grid-template-rows:auto minmax(0,1fr) auto;height:min(800px,calc(100vh - 1rem));background:var(--rc-bg)}._1an6v8d4{display:grid;gap:0;padding:.75rem 3rem .75rem .875rem;border-bottom:1px solid var(--rc-border);background:linear-gradient(180deg,color-mix(in srgb,var(--rc-text) 3%,transparent),transparent)}._1an6v8d5{display:flex;align-items:center;gap:.75rem}._1an6v8d6{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:var(--rc-radius-sm);background:color-mix(in srgb,var(--rc-accent) 14%,transparent);color:var(--rc-text);flex-shrink:0}._1an6v8d7{min-width:0}._1an6v8d8{margin:0;font-size:1.125rem;font-weight:700;line-height:1.1;color:var(--rc-text)}._1an6v8d9{padding:0 .75rem .5rem;border-bottom:1px solid var(--rc-border);background:var(--rc-bg)}._1an6v8da{margin:0;max-width:none;border-radius:0;position:sticky;top:0}._1an6v8da{border:none;box-shadow:none;background-color:transparent;backdrop-filter:none}._1an6v8da>div{padding-inline:0}._1an6v8db{min-height:0;overflow:hidden;background:linear-gradient(180deg,color-mix(in srgb,var(--rc-text) 2%,transparent),transparent)}._1an6v8db .rich-editor{display:flex;flex-direction:column;height:100%}._1an6v8db .rich-editor__content-wrapper{max-width:none;overflow-y:auto}._1an6v8db .rich-editor__content{padding-left:1.5rem;padding-right:1.5rem}._1an6v8db .rich-editor__placeholder{left:1.5rem}._1an6v8db .ds1tv40>*:first-child{border-top:none;border-left:none;border-right:none;box-shadow:none;border-radius:0;margin:0;max-width:none;backdrop-filter:none;background-color:transparent}._1an6v8dc{height:100%;overflow-y:auto;overflow-x:hidden;scrollbar-gutter:stable both-edges}._1an6v8dd{display:flex;min-height:100%;background:var(--rc-bg);overflow:hidden}._1an6v8de{flex:1;min-height:460px;padding:1.25rem 1.5rem 1.75rem;outline:none;overflow:visible}._1an6v8df{display:flex;align-items:center;justify-content:flex-end;gap:1rem;padding:.875rem 1.25rem 1rem;border-top:1px solid var(--rc-border);background:color-mix(in srgb,var(--rc-text) 2%,transparent)}._1an6v8dg{position:relative;display:block;cursor:pointer;margin:var(--rc-space-md) 0;border-radius:var(--rc-radius-md);border:1px solid var(--rc-border);overflow:clip}._1an6v8dh{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:#00000040;color:#fff;opacity:0;pointer-events:none;transition:opacity .2s;z-index:1}._1an6v8dg:hover ._1an6v8dh{opacity:1}._1an6v8di{position:absolute;bottom:0;left:0;right:0;height:4rem;background:linear-gradient(to bottom,transparent,var(--rc-bg));pointer-events:none}._1an6v8dj._1an6v8dj{display:flex;flex-direction:column;width:700px;max-width:90vw;height:min(800px,calc(100vh - 2rem));max-height:min(800px,calc(100vh - 2rem));overflow:hidden}._1an6v8dk{flex:1;min-height:0;margin:-1.5rem;padding:1.5rem;overflow-y:auto;overflow-x:hidden}._1an6v8dl{pointer-events:none}._1an6v8dm{margin:0;color:var(--rc-text-secondary);font-size:var(--rc-font-size-md);opacity:.72}._1an6v8de .rich-paragraph:first-child,._1an6v8dl .rich-paragraph:first-child{margin-top:0}._1an6v8dl .rich-paragraph:last-child{margin-bottom:0}
|
package/dist/static.mjs
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { n as NestedDocNode } from "./transformer-DDYim0ph.js";
|
|
2
|
+
import { o, $, q, N, r } from "./transformer-DDYim0ph.js";
|
|
3
3
|
const nestedDocNodes = [NestedDocNode];
|
|
4
4
|
export {
|
|
5
|
-
|
|
5
|
+
o as $createNestedDocNode,
|
|
6
6
|
$ as $isNestedDocNode,
|
|
7
|
-
|
|
7
|
+
q as NESTED_DOC_BLOCK_TRANSFORMER,
|
|
8
8
|
NestedDocNode,
|
|
9
9
|
N as NestedDocRenderer,
|
|
10
|
-
|
|
10
|
+
r as NestedDocStaticDecorator,
|
|
11
11
|
nestedDocNodes
|
|
12
12
|
};
|
package/dist/styles.css.d.ts
CHANGED
|
@@ -14,9 +14,6 @@ export declare const editorScrollContainer: string;
|
|
|
14
14
|
export declare const editorCard: string;
|
|
15
15
|
export declare const editorEditable: string;
|
|
16
16
|
export declare const dialogFooter: string;
|
|
17
|
-
export declare const dialogActions: string;
|
|
18
|
-
export declare const secondaryButton: string;
|
|
19
|
-
export declare const primaryButton: string;
|
|
20
17
|
export declare const staticOverlayRoot: string;
|
|
21
18
|
export declare const staticOverlay: string;
|
|
22
19
|
export declare const staticGradientMask: string;
|
package/dist/styles.css.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"styles.css.d.ts","sourceRoot":"","sources":["../src/styles.css.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,eAAe,QAQ1B,CAAA;AAEF,eAAO,MAAM,WAAW,QAiBtB,CAAA;AASF,eAAO,MAAM,WAAW,QAAY,CAAA;AAWpC,eAAO,MAAM,WAAW,QAKtB,CAAA;AAEF,eAAO,MAAM,YAAY,QAMvB,CAAA;AAEF,eAAO,MAAM,gBAAgB,QAI3B,CAAA;AAEF,eAAO,MAAM,gBAAgB,QAU3B,CAAA;AAEF,eAAO,MAAM,gBAAgB,QAE3B,CAAA;AAEF,eAAO,MAAM,WAAW,QAMtB,CAAA;AAEF,eAAO,MAAM,oBAAoB,QAI/B,CAAA;AAEF,eAAO,MAAM,aAAa,QAMxB,CAAA;AAaF,eAAO,MAAM,UAAU,QAKrB,CAAA;AAkCF,eAAO,MAAM,qBAAqB,QAKhC,CAAA;AAEF,eAAO,MAAM,UAAU,QAKrB,CAAA;AAEF,eAAO,MAAM,cAAc,QAMzB,CAAA;AAEF,eAAO,MAAM,YAAY,QAQvB,CAAA;AAEF,eAAO,MAAM,
|
|
1
|
+
{"version":3,"file":"styles.css.d.ts","sourceRoot":"","sources":["../src/styles.css.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,eAAe,QAQ1B,CAAA;AAEF,eAAO,MAAM,WAAW,QAiBtB,CAAA;AASF,eAAO,MAAM,WAAW,QAAY,CAAA;AAWpC,eAAO,MAAM,WAAW,QAKtB,CAAA;AAEF,eAAO,MAAM,YAAY,QAMvB,CAAA;AAEF,eAAO,MAAM,gBAAgB,QAI3B,CAAA;AAEF,eAAO,MAAM,gBAAgB,QAU3B,CAAA;AAEF,eAAO,MAAM,gBAAgB,QAE3B,CAAA;AAEF,eAAO,MAAM,WAAW,QAMtB,CAAA;AAEF,eAAO,MAAM,oBAAoB,QAI/B,CAAA;AAEF,eAAO,MAAM,aAAa,QAMxB,CAAA;AAaF,eAAO,MAAM,UAAU,QAKrB,CAAA;AAkCF,eAAO,MAAM,qBAAqB,QAKhC,CAAA;AAEF,eAAO,MAAM,UAAU,QAKrB,CAAA;AAEF,eAAO,MAAM,cAAc,QAMzB,CAAA;AAEF,eAAO,MAAM,YAAY,QAQvB,CAAA;AAEF,eAAO,MAAM,iBAAiB,QAQ5B,CAAA;AAEF,eAAO,MAAM,aAAa,QAiBxB,CAAA;AAEF,eAAO,MAAM,kBAAkB,QAQ7B,CAAA;AAEF,eAAO,MAAM,iBAAiB,QAAY,CAAA;AAY1C,eAAO,MAAM,gBAAgB,QAO3B,CAAA;AAEF,eAAO,MAAM,cAAc,QAEzB,CAAA;AAEF,eAAO,MAAM,YAAY,QAKvB,CAAA"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
var __defProp = Object.defineProperty;
|
|
2
2
|
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
3
3
|
var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
4
|
-
import { extractTextContent as extractTextContent$1 } from "@haklex/rich-editor";
|
|
4
|
+
import { extractTextContent as extractTextContent$1 } from "@haklex/rich-editor/commands";
|
|
5
5
|
import { useVariant, useColorScheme, useRendererConfig, extractTextContent } from "@haklex/rich-editor/static";
|
|
6
6
|
import { DecoratorNode } from "lexical";
|
|
7
7
|
import { useMemo, useCallback, createElement } from "react";
|
|
@@ -20,29 +20,18 @@ var dialogHeaderText = "_1an6v8d7";
|
|
|
20
20
|
var dialogTitle = "_1an6v8d8";
|
|
21
21
|
var editorArea = "_1an6v8db";
|
|
22
22
|
var dialogFooter = "_1an6v8df";
|
|
23
|
-
var
|
|
24
|
-
var
|
|
25
|
-
var
|
|
26
|
-
var
|
|
27
|
-
var
|
|
28
|
-
var
|
|
29
|
-
var
|
|
30
|
-
var staticDialogBody = "_1an6v8do";
|
|
31
|
-
var previewSurface = "_1an6v8dp";
|
|
32
|
-
var previewEmpty = "_1an6v8dq";
|
|
23
|
+
var staticOverlayRoot = "_1an6v8dg";
|
|
24
|
+
var staticOverlay = "_1an6v8dh";
|
|
25
|
+
var staticGradientMask = "_1an6v8di";
|
|
26
|
+
var staticDialogPopup = "_1an6v8dj";
|
|
27
|
+
var staticDialogBody = "_1an6v8dk";
|
|
28
|
+
var previewSurface = "_1an6v8dl";
|
|
29
|
+
var previewEmpty = "_1an6v8dm";
|
|
33
30
|
function NestedDocRenderer({ value }) {
|
|
34
31
|
const variant = useVariant();
|
|
35
32
|
const theme = useColorScheme();
|
|
36
33
|
const rendererConfig = useRendererConfig();
|
|
37
|
-
return /* @__PURE__ */ jsx(
|
|
38
|
-
RichRenderer,
|
|
39
|
-
{
|
|
40
|
-
value,
|
|
41
|
-
variant,
|
|
42
|
-
theme,
|
|
43
|
-
rendererConfig
|
|
44
|
-
}
|
|
45
|
-
);
|
|
34
|
+
return /* @__PURE__ */ jsx(RichRenderer, { rendererConfig, theme, value, variant });
|
|
46
35
|
}
|
|
47
36
|
function truncateEditorState(state, maxNodes) {
|
|
48
37
|
const root = state.root;
|
|
@@ -68,9 +57,7 @@ function hasRenderableEditorState(state) {
|
|
|
68
57
|
}) ?? false;
|
|
69
58
|
}
|
|
70
59
|
const PREVIEW_NODE_LIMIT = 6;
|
|
71
|
-
function NestedDocStaticDecorator({
|
|
72
|
-
contentState
|
|
73
|
-
}) {
|
|
60
|
+
function NestedDocStaticDecorator({ contentState }) {
|
|
74
61
|
const colorScheme = useColorScheme();
|
|
75
62
|
const { className: portalClassName } = usePortalTheme();
|
|
76
63
|
const children = contentState.root?.children ?? [];
|
|
@@ -99,9 +86,9 @@ function NestedDocStaticDecorator({
|
|
|
99
86
|
"div",
|
|
100
87
|
{
|
|
101
88
|
className: staticOverlayRoot,
|
|
102
|
-
onClick: handleOpen,
|
|
103
89
|
role: "button",
|
|
104
90
|
tabIndex: 0,
|
|
91
|
+
onClick: handleOpen,
|
|
105
92
|
onKeyDown: (e) => {
|
|
106
93
|
if (e.key === "Enter" || e.key === " ") {
|
|
107
94
|
e.preventDefault();
|
|
@@ -110,8 +97,8 @@ function NestedDocStaticDecorator({
|
|
|
110
97
|
},
|
|
111
98
|
children: [
|
|
112
99
|
/* @__PURE__ */ jsx("div", { className: "rich-nested-doc-content", children: /* @__PURE__ */ jsx("div", { className: previewSurface, children: /* @__PURE__ */ jsx(NestedDocRenderer, { value: previewState }) }) }),
|
|
113
|
-
needsTruncation && /* @__PURE__ */ jsx("div", {
|
|
114
|
-
/* @__PURE__ */ jsx("div", {
|
|
100
|
+
needsTruncation && /* @__PURE__ */ jsx("div", { "aria-hidden": true, className: staticGradientMask }),
|
|
101
|
+
/* @__PURE__ */ jsx("div", { "aria-hidden": true, className: staticOverlay, children: /* @__PURE__ */ jsx(Maximize2, { size: 24 }) })
|
|
115
102
|
]
|
|
116
103
|
}
|
|
117
104
|
);
|
|
@@ -201,6 +188,7 @@ const NESTED_DOC_BLOCK_TRANSFORMER = {
|
|
|
201
188
|
${text}
|
|
202
189
|
</nested-doc>`;
|
|
203
190
|
},
|
|
191
|
+
// eslint-disable-next-line regexp/no-useless-assertions -- intentionally never-matching regex for export-only transformer
|
|
204
192
|
regExp: /a^/,
|
|
205
193
|
replace: () => {
|
|
206
194
|
},
|
|
@@ -222,13 +210,10 @@ export {
|
|
|
222
210
|
dialogTitle as k,
|
|
223
211
|
editorArea as l,
|
|
224
212
|
dialogFooter as m,
|
|
225
|
-
|
|
226
|
-
|
|
213
|
+
NestedDocNode as n,
|
|
214
|
+
$createNestedDocNode as o,
|
|
227
215
|
previewSurface as p,
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
truncateEditorState as t,
|
|
232
|
-
NESTED_DOC_BLOCK_TRANSFORMER as u,
|
|
233
|
-
NestedDocStaticDecorator as v
|
|
216
|
+
NESTED_DOC_BLOCK_TRANSFORMER as q,
|
|
217
|
+
NestedDocStaticDecorator as r,
|
|
218
|
+
truncateEditorState as t
|
|
234
219
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transformer.d.ts","sourceRoot":"","sources":["../src/transformer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,
|
|
1
|
+
{"version":3,"file":"transformer.d.ts","sourceRoot":"","sources":["../src/transformer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAK5D,eAAO,MAAM,4BAA4B,EAAE,kBAW1C,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,9 +1,14 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@haklex/rich-ext-nested-doc",
|
|
3
|
-
"
|
|
4
|
-
"version": "0.0.65",
|
|
3
|
+
"version": "0.0.67",
|
|
5
4
|
"description": "Nested document extension for haklex rich editor",
|
|
5
|
+
"repository": {
|
|
6
|
+
"type": "git",
|
|
7
|
+
"url": "https://github.com/Innei/haklex.git",
|
|
8
|
+
"directory": "packages/rich-ext-nested-doc"
|
|
9
|
+
},
|
|
6
10
|
"license": "MIT",
|
|
11
|
+
"type": "module",
|
|
7
12
|
"exports": {
|
|
8
13
|
".": {
|
|
9
14
|
"import": "./dist/index.mjs",
|
|
@@ -19,18 +24,11 @@
|
|
|
19
24
|
"files": [
|
|
20
25
|
"dist"
|
|
21
26
|
],
|
|
22
|
-
"peerDependencies": {
|
|
23
|
-
"@lexical/react": "^0.41.0",
|
|
24
|
-
"lexical": "^0.41.0",
|
|
25
|
-
"lucide-react": "^0.574.0",
|
|
26
|
-
"react": ">=19",
|
|
27
|
-
"react-dom": ">=19"
|
|
28
|
-
},
|
|
29
27
|
"dependencies": {
|
|
30
|
-
"@haklex/rich-editor
|
|
31
|
-
"@haklex/rich-editor": "0.0.
|
|
32
|
-
"@haklex/rich-
|
|
33
|
-
"@haklex/rich-
|
|
28
|
+
"@haklex/rich-editor": "0.0.67",
|
|
29
|
+
"@haklex/rich-editor-ui": "0.0.67",
|
|
30
|
+
"@haklex/rich-style-token": "0.0.67",
|
|
31
|
+
"@haklex/rich-static-renderer": "0.0.67"
|
|
34
32
|
},
|
|
35
33
|
"devDependencies": {
|
|
36
34
|
"@lexical/react": "^0.41.0",
|
|
@@ -46,6 +44,13 @@
|
|
|
46
44
|
"vite": "^7.3.1",
|
|
47
45
|
"vite-plugin-dts": "^4.5.4"
|
|
48
46
|
},
|
|
47
|
+
"peerDependencies": {
|
|
48
|
+
"@lexical/react": "^0.41.0",
|
|
49
|
+
"lexical": "^0.41.0",
|
|
50
|
+
"lucide-react": "^0.574.0",
|
|
51
|
+
"react": ">=19",
|
|
52
|
+
"react-dom": ">=19"
|
|
53
|
+
},
|
|
49
54
|
"publishConfig": {
|
|
50
55
|
"access": "public"
|
|
51
56
|
},
|