@haklex/rich-ext-nested-doc 0.11.0 → 0.12.0

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 CHANGED
@@ -10,87 +10,112 @@ pnpm add @haklex/rich-ext-nested-doc
10
10
 
11
11
  ## Peer Dependencies
12
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` |
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
20
 
21
21
  ## Usage
22
22
 
23
23
  ### Register nodes in your editor config
24
24
 
25
25
  ```ts
26
- import { nestedDocEditNodes } from '@haklex/rich-ext-nested-doc'
26
+ import { nestedDocEditNodes } from '@haklex/rich-ext-nested-doc';
27
27
 
28
28
  const editorConfig = {
29
29
  nodes: [...nestedDocEditNodes],
30
- }
30
+ };
31
31
  ```
32
32
 
33
33
  For static/read-only rendering:
34
34
 
35
35
  ```ts
36
- import { nestedDocNodes } from '@haklex/rich-ext-nested-doc/static'
36
+ import { nestedDocNodes } from '@haklex/rich-ext-nested-doc/static';
37
37
 
38
38
  const staticConfig = {
39
39
  nodes: [...nestedDocNodes],
40
- }
40
+ };
41
41
  ```
42
42
 
43
43
  ### Use the nested doc plugin
44
44
 
45
45
  ```tsx
46
- import { NestedDocPlugin } from '@haklex/rich-ext-nested-doc'
46
+ import { NestedDocPlugin } from '@haklex/rich-ext-nested-doc';
47
47
 
48
48
  function EditorPlugins() {
49
- return <NestedDocPlugin />
49
+ return <NestedDocPlugin />;
50
50
  }
51
51
  ```
52
52
 
53
53
  ### Insert a nested document programmatically
54
54
 
55
55
  ```ts
56
- import { INSERT_NESTED_DOC_COMMAND } from '@haklex/rich-ext-nested-doc'
56
+ import { INSERT_NESTED_DOC_COMMAND } from '@haklex/rich-ext-nested-doc';
57
57
 
58
- editor.dispatchCommand(INSERT_NESTED_DOC_COMMAND, { docId: '...' })
58
+ editor.dispatchCommand(INSERT_NESTED_DOC_COMMAND, { docId: '...' });
59
59
  ```
60
60
 
61
61
  ### Provide the dialog editor context
62
62
 
63
63
  ```tsx
64
- import { NestedDocDialogEditorProvider, useNestedDocDialogEditor } from '@haklex/rich-ext-nested-doc'
64
+ import {
65
+ NestedDocDialogEditorProvider,
66
+ useNestedDocDialogEditor,
67
+ } from '@haklex/rich-ext-nested-doc';
65
68
 
66
69
  function App() {
67
70
  return (
68
71
  <NestedDocDialogEditorProvider>
69
72
  <Editor />
70
73
  </NestedDocDialogEditorProvider>
71
- )
74
+ );
72
75
  }
73
76
  ```
74
77
 
75
78
  ### Use renderers and decorators
76
79
 
77
80
  ```tsx
78
- import { NestedDocEditDecorator } from '@haklex/rich-ext-nested-doc'
79
- import { NestedDocRenderer, NestedDocStaticDecorator } from '@haklex/rich-ext-nested-doc/static'
81
+ import { NestedDocEditDecorator } from '@haklex/rich-ext-nested-doc';
82
+ import { NestedDocRenderer, NestedDocStaticDecorator } from '@haklex/rich-ext-nested-doc/static';
83
+ ```
84
+
85
+ ### Override the renderer
86
+
87
+ `NestedDocStaticDecorator` resolves through `RendererWrapper`, so downstream apps can replace the entire static UI by registering a component under the `NESTED_DOC_NODE_KEY` slot:
88
+
89
+ ```tsx
90
+ import {
91
+ NESTED_DOC_NODE_KEY,
92
+ type NestedDocRendererProps,
93
+ } from '@haklex/rich-ext-nested-doc/static';
94
+
95
+ const MyNestedDocRenderer = ({ contentState }: NestedDocRendererProps) => {
96
+ // custom preview / card / drawer UI
97
+ return <div>{/* ... */}</div>;
98
+ };
99
+
100
+ const rendererConfig = {
101
+ [NESTED_DOC_NODE_KEY]: MyNestedDocRenderer,
102
+ };
80
103
  ```
81
104
 
105
+ When no override is supplied the default decorator UI (preview frame + dialog open) is used as-is.
106
+
82
107
  ### Markdown transformer
83
108
 
84
109
  ```ts
85
- import { NESTED_DOC_BLOCK_TRANSFORMER } from '@haklex/rich-ext-nested-doc'
110
+ import { NESTED_DOC_BLOCK_TRANSFORMER } from '@haklex/rich-ext-nested-doc';
86
111
 
87
- const transformers = [NESTED_DOC_BLOCK_TRANSFORMER]
112
+ const transformers = [NESTED_DOC_BLOCK_TRANSFORMER];
88
113
  ```
89
114
 
90
115
  ### Import styles
91
116
 
92
117
  ```ts
93
- import '@haklex/rich-ext-nested-doc/style.css'
118
+ import '@haklex/rich-ext-nested-doc/style.css';
94
119
  ```
95
120
 
96
121
  ## Exports
@@ -107,7 +132,9 @@ import '@haklex/rich-ext-nested-doc/style.css'
107
132
 
108
133
  - `NestedDocRenderer` -- static renderer
109
134
  - `NestedDocEditDecorator` -- edit-mode decorator
110
- - `NestedDocStaticDecorator` -- static-mode decorator
135
+ - `NestedDocStaticDecorator` -- static-mode decorator (resolves overrides via `RendererWrapper`)
136
+ - `NESTED_DOC_NODE_KEY` -- `'NestedDoc'` constant for `RendererConfig` slot lookup
137
+ - `NestedDocRendererProps` -- props shape for custom renderers registered against the slot
111
138
 
112
139
  ### Plugin
113
140
 
@@ -129,11 +156,11 @@ import '@haklex/rich-ext-nested-doc/style.css'
129
156
 
130
157
  ### Sub-path Exports
131
158
 
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 |
159
+ | Path | Description |
160
+ | --------------------------------------- | ------------------------------ |
161
+ | `@haklex/rich-ext-nested-doc` | Full exports (edit + static) |
162
+ | `@haklex/rich-ext-nested-doc/static` | Static-only (no heavy UI deps) |
163
+ | `@haklex/rich-ext-nested-doc/style.css` | Stylesheet |
137
164
 
138
165
  ## Part of Haklex
139
166
 
@@ -2,6 +2,6 @@ import { SerializedEditorState } from 'lexical';
2
2
  interface NestedDocStaticDecoratorProps {
3
3
  contentState: SerializedEditorState;
4
4
  }
5
- export declare function NestedDocStaticDecorator({ contentState }: NestedDocStaticDecoratorProps): import("react/jsx-runtime").JSX.Element | null;
5
+ export declare function NestedDocStaticDecorator({ contentState }: NestedDocStaticDecoratorProps): import("react/jsx-runtime").JSX.Element;
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":"AASA,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,kDAqFvF"}
1
+ {"version":3,"file":"NestedDocStaticDecorator.d.ts","sourceRoot":"","sources":["../src/NestedDocStaticDecorator.tsx"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAWrD,UAAU,6BAA6B;IACrC,YAAY,EAAE,qBAAqB,CAAC;CACrC;AAyFD,wBAAgB,wBAAwB,CAAC,EAAE,YAAY,EAAE,EAAE,6BAA6B,2CAQvF"}
package/dist/index.d.ts CHANGED
@@ -4,11 +4,14 @@ export { NestedDocDialogEditorProvider, useNestedDocDialogEditor, } from './Nest
4
4
  export { NestedDocEditDecorator } from './NestedDocEditDecorator';
5
5
  export { $createNestedDocEditNode, $isNestedDocEditNode, NestedDocEditNode, } from './NestedDocEditNode';
6
6
  export type { SerializedNestedDocNode } from './NestedDocNode';
7
- export { $createNestedDocNode, $isNestedDocNode, NestedDocNode, } from './NestedDocNode';
7
+ export { $createNestedDocNode, $isNestedDocNode, NestedDocNode } from './NestedDocNode';
8
8
  export { INSERT_NESTED_DOC_COMMAND, NestedDocPlugin } from './NestedDocPlugin';
9
9
  export { NestedDocRenderer } from './NestedDocRenderer';
10
10
  export { NestedDocStaticDecorator } from './NestedDocStaticDecorator';
11
+ export type { NestedDocRendererProps } from './slot';
12
+ export { NESTED_DOC_NODE_KEY } from './slot';
11
13
  export { NESTED_DOC_BLOCK_TRANSFORMER } from './transformer';
14
+ export { hasRenderableEditorState, truncateEditorState } from './utils';
12
15
  export declare const nestedDocNodes: Array<Klass<LexicalNode>>;
13
16
  export declare const nestedDocEditNodes: Array<Klass<LexicalNode>>;
14
17
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,iBAAiB,CAAA;AAExB,OAAO,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAKjD,YAAY,EACV,8BAA8B,EAC9B,0BAA0B,GAC3B,MAAM,gCAAgC,CAAA;AACvC,OAAO,EACL,6BAA6B,EAC7B,wBAAwB,GACzB,MAAM,gCAAgC,CAAA;AACvC,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAA;AACjE,OAAO,EACL,wBAAwB,EACxB,oBAAoB,EACpB,iBAAiB,GAClB,MAAM,qBAAqB,CAAA;AAC5B,YAAY,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAA;AAC9D,OAAO,EACL,oBAAoB,EACpB,gBAAgB,EAChB,aAAa,GACd,MAAM,iBAAiB,CAAA;AACxB,OAAO,EAAE,yBAAyB,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAC9E,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AACvD,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAA;AACrE,OAAO,EAAE,4BAA4B,EAAE,MAAM,eAAe,CAAA;AAE5D,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,CAAmB,CAAA;AACxE,eAAO,MAAM,kBAAkB,EAAE,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,CAAuB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,iBAAiB,CAAC;AAEzB,OAAO,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAKlD,YAAY,EACV,8BAA8B,EAC9B,0BAA0B,GAC3B,MAAM,gCAAgC,CAAC;AACxC,OAAO,EACL,6BAA6B,EAC7B,wBAAwB,GACzB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EACL,wBAAwB,EACxB,oBAAoB,EACpB,iBAAiB,GAClB,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAC/D,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACxF,OAAO,EAAE,yBAAyB,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAC/E,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACtE,YAAY,EAAE,sBAAsB,EAAE,MAAM,QAAQ,CAAC;AACrD,OAAO,EAAE,mBAAmB,EAAE,MAAM,QAAQ,CAAC;AAC7C,OAAO,EAAE,4BAA4B,EAAE,MAAM,eAAe,CAAC;AAC7D,OAAO,EAAE,wBAAwB,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAExE,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,CAAmB,CAAC;AACzE,eAAO,MAAM,kBAAkB,EAAE,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,CAAuB,CAAC"}
package/dist/index.mjs CHANGED
@@ -1,4 +1,4 @@
1
- import { C as rendererContent, S as previewSurface, _ as dialogTitle, a as _defineProperty, b as editorArea, c as truncateEditorState, d as dialogHeader, f as dialogHeaderCloseBtn, g as dialogShell, h as dialogPopup, i as NestedDocNode, l as NestedDocRenderer, m as dialogHeaderRight, n as $createNestedDocNode, o as NestedDocStaticDecorator, p as dialogHeaderLeft, r as $isNestedDocNode, s as hasRenderableEditorState, t as NESTED_DOC_BLOCK_TRANSFORMER, u as dialogFooter, v as editOverlay, x as previewEmpty, y as editOverlayRoot } from "./transformer-BLIhdkPB.js";
1
+ import { C as previewSurface, S as previewEmpty, _ as dialogShell, a as _defineProperty, b as editOverlayRoot, c as truncateEditorState, d as dialogFooter, f as dialogHeader, g as dialogPopup, h as dialogHeaderRight, i as NestedDocNode, l as NESTED_DOC_NODE_KEY, m as dialogHeaderLeft, n as $createNestedDocNode, o as NestedDocStaticDecorator, p as dialogHeaderCloseBtn, r as $isNestedDocNode, s as hasRenderableEditorState, t as NESTED_DOC_BLOCK_TRANSFORMER, u as NestedDocRenderer, v as dialogTitle, w as rendererContent, x as editorArea, y as editOverlay } from "./transformer-DASOhV_Q.js";
2
2
  import { editorTheme, useColorScheme } from "@haklex/rich-editor";
3
3
  import { getResolvedEditNodes } from "@haklex/rich-editor/nodes";
4
4
  import { $getNodeByKey, $insertNodes, COMMAND_PRIORITY_EDITOR, createCommand, createEditor } from "lexical";
@@ -270,4 +270,4 @@ function NestedDocPlugin() {
270
270
  var nestedDocNodes = [NestedDocNode];
271
271
  var nestedDocEditNodes = [NestedDocEditNode];
272
272
  //#endregion
273
- export { $createNestedDocEditNode, $createNestedDocNode, $isNestedDocEditNode, $isNestedDocNode, INSERT_NESTED_DOC_COMMAND, NESTED_DOC_BLOCK_TRANSFORMER, NestedDocDialogEditorProvider, NestedDocEditDecorator, NestedDocEditNode, NestedDocNode, NestedDocPlugin, NestedDocRenderer, NestedDocStaticDecorator, nestedDocEditNodes, nestedDocNodes, useNestedDocDialogEditor };
273
+ export { $createNestedDocEditNode, $createNestedDocNode, $isNestedDocEditNode, $isNestedDocNode, INSERT_NESTED_DOC_COMMAND, NESTED_DOC_BLOCK_TRANSFORMER, NESTED_DOC_NODE_KEY, NestedDocDialogEditorProvider, NestedDocEditDecorator, NestedDocEditNode, NestedDocNode, NestedDocPlugin, NestedDocRenderer, NestedDocStaticDecorator, hasRenderableEditorState, nestedDocEditNodes, nestedDocNodes, truncateEditorState, useNestedDocDialogEditor };
@@ -1,2 +1,2 @@
1
- :root{--rc-text:#000;--rc-text-secondary:#262626;--rc-text-tertiary:#737373;--rc-text-quaternary:#a3a3a3;--rc-bg:#fff;--rc-bg-secondary:#fafafa;--rc-bg-tertiary:#f5f5f5;--rc-fill:#e8e8e8;--rc-fill-secondary:#eee;--rc-fill-tertiary:#f5f5f5;--rc-fill-quaternary:#fafafa;--rc-border:#f5f5f5;--rc-accent:#2563eb;--rc-accent-light:#2563eb20;--rc-link:#2563eb;--rc-code-text:#404040;--rc-code-bg:#f5f5f5;--rc-hr-border:#e5e5e5;--rc-quote-border:#2563eb;--rc-quote-bg:#f5f5f5;--rc-alert-info:#006bb7;--rc-alert-warning:#c50;--rc-alert-tip:#1c0;--rc-alert-caution:#c01;--rc-alert-important:#50c;--rc-max-width:700px;--rc-shadow-top-bar:0 8px 30px #0000001f, 0 2px 8px #0000000f;--rc-shadow-modal:0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a;--rc-shadow-menu:0 1px 4px #0000000a, 0 4px 16px #00000014;--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-family-kai:"楷体", KaiTi, STKaiti, "Kaiti SC", "LXGW WenKai", "霞鹜文楷", "Noto Serif CJK SC", 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,[data-theme=dark]{--rc-text:#fafafa;--rc-text-secondary:#a3a3a3;--rc-text-tertiary:#737373;--rc-text-quaternary:#525252;--rc-bg:#0a0a0a;--rc-bg-secondary:#171717;--rc-bg-tertiary:#262626;--rc-fill:#2a2a2a;--rc-fill-secondary:#222;--rc-fill-tertiary:#1a1a1a;--rc-fill-quaternary:#141414;--rc-border:#262626;--rc-accent:#60a5fa;--rc-accent-light:#60a5fa20;--rc-link:#60a5fa;--rc-code-text:#d4d4d4;--rc-code-bg:#262626;--rc-hr-border:#262626;--rc-quote-border:#60a5fa;--rc-quote-bg:#262626;--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 #00000073, 0 2px 8px #0000004d;--rc-shadow-modal:0 10px 15px -3px #0006, 0 4px 6px -4px #00000059;--rc-shadow-menu:0 1px 4px #00000040, 0 4px 16px #0006;--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-family-kai:"楷体", KaiTi, STKaiti, "Kaiti SC", "LXGW WenKai", "霞鹜文楷", "Noto Serif CJK SC", 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:#262626;--rc-text-tertiary:#737373;--rc-text-quaternary:#a3a3a3;--rc-bg:#fff;--rc-bg-secondary:#fafafa;--rc-bg-tertiary:#f5f5f5;--rc-fill:#e8e8e8;--rc-fill-secondary:#eee;--rc-fill-tertiary:#f5f5f5;--rc-fill-quaternary:#fafafa;--rc-border:#f5f5f5;--rc-accent:#2563eb;--rc-accent-light:#2563eb20;--rc-link:#2563eb;--rc-code-text:#404040;--rc-code-bg:#f5f5f5;--rc-hr-border:#e5e5e5;--rc-quote-border:#2563eb;--rc-quote-bg:#f5f5f5;--rc-alert-info:#006bb7;--rc-alert-warning:#c50;--rc-alert-tip:#1c0;--rc-alert-caution:#c01;--rc-alert-important:#50c;--rc-max-width:700px;--rc-shadow-top-bar:0 8px 30px #0000001f, 0 2px 8px #0000000f;--rc-shadow-modal:0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a;--rc-shadow-menu:0 1px 4px #0000000a, 0 4px 16px #00000014;--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-family-kai:"楷体", KaiTi, STKaiti, "Kaiti SC", "LXGW WenKai", "霞鹜文楷", "Noto Serif CJK SC", 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:#262626;--rc-text-tertiary:#737373;--rc-text-quaternary:#a3a3a3;--rc-bg:#fff;--rc-bg-secondary:#fafafa;--rc-bg-tertiary:#f5f5f5;--rc-fill:#e8e8e8;--rc-fill-secondary:#eee;--rc-fill-tertiary:#f5f5f5;--rc-fill-quaternary:#fafafa;--rc-border:#f5f5f5;--rc-accent:#2563eb;--rc-accent-light:#2563eb20;--rc-link:#2563eb;--rc-code-text:#404040;--rc-code-bg:#f5f5f5;--rc-hr-border:#e5e5e5;--rc-quote-border:#2563eb;--rc-quote-bg:#f5f5f5;--rc-alert-info:#006bb7;--rc-alert-warning:#c50;--rc-alert-tip:#1c0;--rc-alert-caution:#c01;--rc-alert-important:#50c;--rc-max-width:700px;--rc-shadow-top-bar:0 8px 30px #0000001f, 0 2px 8px #0000000f;--rc-shadow-modal:0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a;--rc-shadow-menu:0 1px 4px #0000000a, 0 4px 16px #00000014;--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-family-kai:"楷体", KaiTi, STKaiti, "Kaiti SC", "LXGW WenKai", "霞鹜文楷", "Noto Serif CJK SC", 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:#262626;--rc-text-tertiary:#737373;--rc-text-quaternary:#a3a3a3;--rc-bg:#fff;--rc-bg-secondary:#fafafa;--rc-bg-tertiary:#f5f5f5;--rc-fill:#e8e8e8;--rc-fill-secondary:#eee;--rc-fill-tertiary:#f5f5f5;--rc-fill-quaternary:#fafafa;--rc-border:#f5f5f5;--rc-accent:#2563eb;--rc-accent-light:#2563eb20;--rc-link:#2563eb;--rc-code-text:#404040;--rc-code-bg:#f5f5f5;--rc-hr-border:#e5e5e5;--rc-quote-border:#a3a3a3;--rc-quote-bg:#fafafa;--rc-alert-info:#006bb7;--rc-alert-warning:#c50;--rc-alert-tip:#1c0;--rc-alert-caution:#c01;--rc-alert-important:#50c;--rc-max-width:none;--rc-shadow-top-bar:0 8px 30px #0000001f, 0 2px 8px #0000000f;--rc-shadow-modal:0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a;--rc-shadow-menu:0 1px 4px #0000000a, 0 4px 16px #00000014;--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-family-kai:"楷体", KaiTi, STKaiti, "Kaiti SC", "LXGW WenKai", "霞鹜文楷", "Noto Serif CJK SC", 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:12px}.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:#a3a3a3;--rc-text-tertiary:#737373;--rc-text-quaternary:#525252;--rc-bg:#0a0a0a;--rc-bg-secondary:#171717;--rc-bg-tertiary:#262626;--rc-fill:#2a2a2a;--rc-fill-secondary:#222;--rc-fill-tertiary:#1a1a1a;--rc-fill-quaternary:#141414;--rc-border:#262626;--rc-accent:#60a5fa;--rc-accent-light:#60a5fa20;--rc-link:#60a5fa;--rc-code-text:#d4d4d4;--rc-code-bg:#262626;--rc-hr-border:#262626;--rc-quote-border:#60a5fa;--rc-quote-bg:#262626;--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 #00000073, 0 2px 8px #0000004d;--rc-shadow-modal:0 10px 15px -3px #0006, 0 4px 6px -4px #00000059;--rc-shadow-menu:0 1px 4px #00000040, 0 4px 16px #0006}@keyframes ds1tv40{to{--rc-hl-highlighted:1}}@keyframes ds1tv41{0%{background-color:#ef44443d}to{background-color:#0000}}.ds1tv42{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}.ds1tv43{line-height:var(--rc-line-height);margin:0 0 1em}.ds1tv44{font-weight:700}.ds1tv45{font-style:italic}.ds1tv46{text-decoration:underline}.ds1tv47{opacity:.65;text-decoration:line-through}.ds1tv48{vertical-align:super;font-size:.8em}.ds1tv49{vertical-align:sub;font-size:.8em}.ds1tv4a{font-family:var(--rc-font-mono);background-color:var(--rc-code-bg);color:inherit;border-radius:var(--rc-radius-sm);border:1px solid var(--rc-border);padding:2px 6px;font-size:.9em}[contenteditable=true] .ds1tv4a{padding-right:0}.ds1tv4b{--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] .ds1tv4b{--rc-hl-highlighted:1;animation:none}[data-theme=dark] .ds1tv4b{--rc-hl-lightness:.35}.ds1tv4c{color:var(--rc-text-secondary);opacity:0;align-items:center;font-size:.8rem;text-decoration:none;transition:opacity .15s;display:flex;position:absolute;top:0;bottom:0;left:-1.25rem}.ds1tv4d{font-size:2em;font-weight:700;line-height:var(--rc-line-height-tight);margin-top:1.5em;margin-bottom:.5em;position:relative}[contenteditable=true] .ds1tv4d:before{content:"H1";color:var(--rc-text-secondary);opacity:.6;pointer-events:none;font-size:.5rem;font-weight:600;font-family:var(--rc-font-mono);display:flex;position:absolute;bottom:.5rem;left:-1.5rem}.ds1tv4e{font-size:1.5em;font-weight:700;line-height:var(--rc-line-height-tight);margin-top:1.4em;margin-bottom:.45em;position:relative}[contenteditable=true] .ds1tv4e:before{content:"H2";color:var(--rc-text-secondary);opacity:.6;pointer-events:none;font-size:.5rem;font-weight:600;font-family:var(--rc-font-mono);display:flex;position:absolute;bottom:.5rem;left:-1.5rem}.ds1tv4f{font-size:1.25em;font-weight:600;line-height:var(--rc-line-height-tight);margin-top:1.3em;margin-bottom:.4em;position:relative}[contenteditable=true] .ds1tv4f:before{content:"H3";color:var(--rc-text-secondary);opacity:.6;pointer-events:none;font-size:.5rem;font-weight:600;font-family:var(--rc-font-mono);display:flex;position:absolute;bottom:.5rem;left:-1.5rem}.ds1tv4g{font-size:1.125em;font-weight:600;line-height:var(--rc-line-height-tight);margin-top:1.2em;margin-bottom:.35em;position:relative}[contenteditable=true] .ds1tv4g:before{content:"H4";color:var(--rc-text-secondary);opacity:.6;pointer-events:none;font-size:.5rem;font-weight:600;font-family:var(--rc-font-mono);display:flex;position:absolute;bottom:.5rem;left:-1.5rem}.ds1tv4h{font-size:1em;font-weight:600;line-height:var(--rc-line-height-tight);margin-top:1.1em;margin-bottom:.3em;position:relative}[contenteditable=true] .ds1tv4h:before{content:"H5";color:var(--rc-text-secondary);opacity:.6;pointer-events:none;font-size:.5rem;font-weight:600;font-family:var(--rc-font-mono);display:flex;position:absolute;bottom:.5rem;left:-1.5rem}.ds1tv4i{font-size:.875em;font-weight:600;line-height:var(--rc-line-height-tight);color:var(--rc-text);margin-top:1em;margin-bottom:.25em;position:relative}[contenteditable=true] .ds1tv4i:before{content:"H6";color:var(--rc-text-secondary);opacity:.6;pointer-events:none;font-size:.5rem;font-weight:600;font-family:var(--rc-font-mono);display:flex;position:absolute;bottom:.5rem;left:-1.5rem}.ds1tv4j{color:var(--rc-link);text-decoration:none;transition:color .2s}.ds1tv4j:hover{text-decoration:underline}.ds1tv4j[data-favicon=loaded]:before{content:"";vertical-align:-.125em;background-image:var(--rc-link-favicon);background-position:50%;background-repeat:no-repeat;background-size:contain;border-radius:2px;width:1em;height:1em;margin-right:.2em;display:inline-block}.ds1tv4k{vertical-align:-.125em;align-items:center;margin-right:.15em;display:inline-flex}.ds1tv4l{padding-left:var(--rc-space-lg);margin-bottom:1em;list-style-type:decimal}.ds1tv4m{padding-left:var(--rc-space-lg);margin-bottom:1em;list-style-type:disc}.ds1tv4n{margin-bottom:.25em}.ds1tv4o{list-style-type:none}.ds1tv4p{padding-left:0;list-style-type:none}.ds1tv4q{--rc-cb-size:1.125rem;outline:none;padding-left:2em;list-style-type:none;transition:color .25s;position:relative}.ds1tv4q:before{content:"";left:0;top:calc((1lh - var(--rc-cb-size)) / 2);width:var(--rc-cb-size);height:var(--rc-cb-size);border:1.5px solid var(--rc-text-quaternary);border-radius:var(--rc-radius-sm);box-sizing:border-box;cursor:pointer;background-color:#0000;transition:background-color .25s cubic-bezier(.4,0,.2,1),border-color .25s cubic-bezier(.4,0,.2,1),transform .15s;position:absolute}.ds1tv4q:after{content:"";left:calc(var(--rc-cb-size) * .32);top:calc((1lh - var(--rc-cb-size)) / 2 + var(--rc-cb-size) * .14);width:calc(var(--rc-cb-size) * .28);height:calc(var(--rc-cb-size) * .55);border-right:2px solid var(--rc-accent);border-bottom:2px solid var(--rc-accent);box-sizing:border-box;pointer-events:none;transform-origin:50%;opacity:0;transition:transform .3s cubic-bezier(.34,1.56,.64,1) .1s,opacity .15s;display:block;position:absolute;transform:rotate(45deg)scale(0)}[contenteditable=true] .ds1tv4q:active:before{transform:scale(.94)}[contenteditable=true] .ds1tv4q:hover:before{border-color:var(--rc-text-tertiary)}.ds1tv4r{--rc-cb-size:1.125rem;color:var(--rc-text-secondary);outline:none;padding-left:2em;list-style-type:none;transition:color .25s;position:relative}.ds1tv4r:before{content:"";left:0;top:calc((1lh - var(--rc-cb-size)) / 2);width:var(--rc-cb-size);height:var(--rc-cb-size);border:1.5px solid var(--rc-text-quaternary);border-radius:var(--rc-radius-sm);box-sizing:border-box;cursor:pointer;background-color:var(--rc-accent-light);border-color:var(--rc-accent);transition:background-color .25s cubic-bezier(.4,0,.2,1),border-color .25s cubic-bezier(.4,0,.2,1),transform .15s;position:absolute}.ds1tv4r:after{content:"";left:calc(var(--rc-cb-size) * .32);top:calc((1lh - var(--rc-cb-size)) / 2 + var(--rc-cb-size) * .14);width:calc(var(--rc-cb-size) * .28);height:calc(var(--rc-cb-size) * .55);border-right:2px solid var(--rc-accent);border-bottom:2px solid var(--rc-accent);box-sizing:border-box;pointer-events:none;transform-origin:50%;opacity:1;transition:transform .3s cubic-bezier(.34,1.56,.64,1) .1s,opacity .15s;display:block;position:absolute;transform:rotate(45deg)scale(1)}[contenteditable=true] .ds1tv4r:active:before{transform:scale(.94)}[contenteditable=true] .ds1tv4r:hover:before{background-color:color-mix(in oklab, var(--rc-accent) 12%, transparent)}.ds1tv4s{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);color:var(--rc-text-secondary);border-radius:0 var(--rc-radius-sm) var(--rc-radius-sm) 0;font-style:normal;position:relative}.ds1tv4s:before{content:"";border-radius:var(--rc-radius-sm);background-color:var(--rc-quote-border);width:4px;position:absolute;top:0;bottom:0;left:0}.ds1tv4t{border:none;border-top:1px solid var(--rc-hr-border);margin:var(--rc-space-lg) auto;width:60px}.ds1tv4u{overflow-x:auto}.ds1tv4v{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}.ds1tv4v:last-child{border-right:none}.ds1tv4w{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;text-transform:uppercase;letter-spacing:.05em;color:var(--rc-text-secondary);background-color:var(--rc-bg-secondary);vertical-align:middle;z-index:1;font-size:.75em;font-weight:600;line-height:1.5;position:sticky;top:0}.ds1tv4w:last-child{border-right:none}.ds1tv4x{border-collapse:separate;border-spacing:0;width:100%;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}.ds1tv4y{background-color:var(--rc-text);color:#0000;border-radius:var(--rc-radius-sm);cursor:pointer;-webkit-user-select:none;user-select:none;padding-inline-start:4px;padding-inline-end:4px;transition:background-color .3s,color .3s}[contenteditable=true] .ds1tv4y{background-color:color-mix(in srgb, var(--rc-text) 30%, transparent);color:inherit;-webkit-user-select:auto;user-select:auto;cursor:text}.ds1tv4y:hover{color:inherit;-webkit-user-select:auto;user-select:auto;background-color:#0000}.rich-content .ds1tv4y{background-color:var(--rc-text-tertiary);color:#0000}.rich-content .ds1tv4y:not(:hover):not(.rich-spoiler-revealed) *{color:#0000!important}.rich-content .ds1tv4y:hover,.ds1tv4z{color:inherit;-webkit-user-select:auto;user-select:auto;background-color:#0000}.ds1tv410{font-size:var(--rc-font-size-small);vertical-align:baseline;border-radius:999px;padding-inline-start:.75em;padding-inline-end:.75em;line-height:1.6;display:inline-block}.ds1tv411{font-family:var(--rc-font-mono);font-size:var(--rc-font-size-small);color:var(--rc-text-secondary);background-color:var(--rc-code-bg);border:1px dashed var(--rc-border);border-radius:var(--rc-radius-sm);white-space:break-spaces;padding:2px 6px;display:inline-block}.ds1tv411:before{content:"<!--";opacity:.7}.ds1tv411:after{content:"-->";opacity:.7}.ds1tv412{ruby-position:over;ruby-align:center}[contenteditable=true] .ds1tv412[data-ruby]{padding-top:.72em;line-height:1.2;display:inline-block;position:relative}[contenteditable=true] .ds1tv412[data-ruby]:before{content:attr(data-ruby);text-align:center;color:var(--rc-text-secondary);pointer-events:none;white-space:nowrap;font-size:.58em;line-height:1;position:absolute;top:0;left:0;right:0;transform:translateY(-.68em)}.ds1tv413{color:var(--rc-text-secondary);-webkit-user-select:none;user-select:none;font-size:.58em;line-height:1}.ds1tv414{vertical-align:super;font-size:.8em}.ds1tv415{min-width:1.5em;color:var(--rc-accent);background-color:var(--rc-accent-light);border-radius:999px;justify-content:center;align-items:center;padding:0 .35em;font-size:.82em;font-weight:600;line-height:1.45;text-decoration:none;transition:filter .15s;display:inline-flex}.ds1tv415:hover{filter:brightness(.96)}.ds1tv416{animation:1.2s ease-out ds1tv41}.ds1tv417{display:inline;position:relative}.ds1tv418{margin-top:var(--rc-space-lg)}.ds1tv419{border:none;border-top:1px solid var(--rc-border);margin:var(--rc-space-lg) 0 var(--rc-space-md)}.ds1tv41a{padding-left:var(--rc-space-lg);font-size:var(--rc-font-size-small);color:var(--rc-text-secondary);line-height:1.6;list-style-type:decimal}.ds1tv41b{margin-bottom:var(--rc-space-sm);padding-left:var(--rc-space-xs)}.ds1tv41c{margin-left:var(--rc-space-xs);color:var(--rc-accent);font-size:.85em;font-family:var(--rc-font-mono);align-items:center;text-decoration:none;transition:opacity .15s;display:inline-flex}.ds1tv41c:hover{opacity:.7}.ds1tv41d{align-items:center;gap:var(--rc-space-sm);list-style-type:none;display:flex}.ds1tv41e{color:var(--rc-text-secondary);font-size:var(--rc-font-size-small);flex-shrink:0;min-width:1.5em;font-weight:600}.ds1tv41f{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:#0000;outline:none;flex:1;transition:border-color .15s}.ds1tv41f:focus{border-color:var(--rc-accent)}.ds1tv41g{width:20px;height:20px;color:var(--rc-text-secondary);cursor:pointer;border-radius:var(--rc-radius-sm);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;font-size:14px;transition:color .15s,background-color .15s;display:inline-flex}.ds1tv41g:hover{color:#ef4444;background-color:#ef44441a}.ds1tv41h{cursor:grab;border-radius:var(--rc-radius-sm);width:20px;height:20px;color:var(--rc-text-secondary);opacity:.4;z-index:10;justify-content:center;align-items:center;transition:opacity .15s,background-color .15s;display:flex;position:absolute}.ds1tv41h:hover{opacity:1;background-color:var(--rc-fill-secondary)}.ds1tv41h:active{cursor:grabbing}.ds1tv41i{background-color:var(--rc-accent);pointer-events:none;z-index:10;border-radius:1px;height:2px;position:absolute}.ds1tv41j{background-color:#0000;border:none;border-radius:0;margin:2em 0;padding:0 1em}.ds1tv42 mark{background:0 0}.ds1tv42 img{border-radius:var(--rc-radius-md);max-width:100%;height:auto}.ds1tv42>:first-child,.ds1tv42 .rich-editor__content>:first-child{margin-top:0}.ds1tv42>:last-child,.ds1tv42 .rich-editor__content>:last-child{margin-bottom:0}.ds1tv4c svg{flex-shrink:0}.ds1tv4d:hover .ds1tv4c{opacity:.5}.ds1tv4d:hover .ds1tv4c:hover{opacity:1}.ds1tv4e:hover .ds1tv4c{opacity:.5}.ds1tv4e:hover .ds1tv4c:hover{opacity:1}.ds1tv4f:hover .ds1tv4c{opacity:.5}.ds1tv4f:hover .ds1tv4c:hover{opacity:1}.ds1tv4g:hover .ds1tv4c{opacity:.5}.ds1tv4g:hover .ds1tv4c:hover{opacity:1}.ds1tv4h:hover .ds1tv4c{opacity:.5}.ds1tv4h:hover .ds1tv4c:hover{opacity:1}.ds1tv4i:hover .ds1tv4c{opacity:.5}.ds1tv4i:hover .ds1tv4c:hover{opacity:1}.ds1tv4k img{object-fit:contain;border-radius:2px;width:1em;height:1em}.ds1tv4k svg{width:.9em;height:.9em}.ds1tv4o .ds1tv4l{list-style-type:lower-alpha}.ds1tv4o .ds1tv4m{list-style-type:circle}.ds1tv4r>*,.ds1tv4q>*{background-image:linear-gradient(var(--rc-text-secondary), var(--rc-text-secondary));background-position:0;background-repeat:no-repeat;background-size:0% 1.5px;transition:background-size .35s cubic-bezier(.4,0,.2,1) .15s,opacity .15s}.ds1tv4r>*{opacity:.5;background-size:100% 1.5px}.ds1tv4s>.ds1tv43:first-child{margin-top:0}.ds1tv4s>.ds1tv43:last-child{margin-bottom:0}.ds1tv4x tbody tr:last-child .ds1tv4v{border-bottom:none}.ds1tv4v .ds1tv43{line-height:inherit;margin:0;padding:0}.ds1tv4v>:first-child{margin-top:0}.ds1tv4v>:last-child{margin-bottom:0}.ds1tv4w .ds1tv43{line-height:inherit;margin:0;padding:0}.ds1tv4w>:first-child{margin-top:0}.ds1tv4w>:last-child{margin-bottom:0}@supports (animation-timeline:view()){.ds1tv4b{--rc-hl-highlighted:0;animation:step-end both ds1tv40;animation-timeline:view();animation-range:entry 100% cover 10%}}._135nao50{margin:var(--rc-space-md) 0;interpolate-size:allow-keywords;background-color:#0000;border:none}._135nao51{align-items:flex-start;gap:var(--rc-space-sm);cursor:pointer;-webkit-user-select:none;user-select:none;padding:var(--rc-space-xs) 0;color:var(--rc-text);font-size:1em;font-weight:500;line-height:var(--rc-line-height);border-radius:var(--rc-radius-sm);outline:none;list-style:none;transition:opacity .2s,color .2s,box-shadow .2s;display:flex}._135nao51:hover{opacity:.82}._135nao51:focus-visible{box-shadow:0 0 0 2px var(--rc-accent-light)}._135nao51::-webkit-details-marker{display:none}._135nao51::marker{content:"";display:none}._135nao52{flex:1;min-width:0}._135nao53{width:1.25rem;height:1.25rem;color:var(--rc-text-tertiary);transform-origin:50%;flex-shrink:0;justify-content:center;align-items:center;transition:transform .35s cubic-bezier(.4,0,.2,1),color .2s;display:inline-flex;position:relative;top:.25rem}._135nao54{margin-top:var(--rc-space-xs);padding:var(--rc-space-sm) var(--rc-space-xl);color:var(--rc-text-secondary);background-color:color-mix(in srgb, var(--rc-accent) 6%, var(--rc-bg-secondary));border-radius:var(--rc-radius-md)}._135nao51:hover ._135nao53{color:var(--rc-text-secondary)}._135nao50[open] ._135nao53{color:var(--rc-accent);transform:rotate(90deg)}._135nao50::details-content{opacity:0;content-visibility:hidden;height:0;transition:height .4s cubic-bezier(.4, 0, .2, 1), opacity .4s cubic-bezier(.4, 0, .2, 1), content-visibility .4s cubic-bezier(.4, 0, .2, 1) allow-discrete;display:block;overflow:hidden}._135nao50[open]::details-content{opacity:1;content-visibility:visible;height:auto}._135nao54>.ds1tv43:first-child{margin-top:0}._135nao54>.ds1tv43:last-child{margin-bottom:0}._1pke0ca0{max-width:var(--rc-max-width);font-size:var(--rc-font-size-base);color:var(--rc-text);line-height:1.75}._1pke0ca0 .ds1tv43{margin-top:1.5em;margin-bottom:1.5em}._1pke0ca0 .ds1tv4d{color:var(--rc-text);margin-top:0;margin-bottom:.833333em;font-size:3em;font-weight:800;line-height:1}._1pke0ca0 .ds1tv4e{color:var(--rc-text);margin-top:1.86667em;margin-bottom:1.06667em;font-size:1.875em;font-weight:700;line-height:1.33333}._1pke0ca0 .ds1tv4f{color:var(--rc-text);margin-top:1.66667em;margin-bottom:.666667em;font-size:1.5em;font-weight:600;line-height:1.5}._1pke0ca0 .ds1tv4g{color:var(--rc-text);margin-top:2em;margin-bottom:.5em;font-weight:600;line-height:1.5625}._1pke0ca0 .ds1tv4e+*,._1pke0ca0 .ds1tv4f+*,._1pke0ca0 .ds1tv4g+*{margin-top:0}._1pke0ca0 .ds1tv4s{color:var(--rc-text);quotes:"“""”""‘""’";background-color:#0000;border-radius:0;margin-top:2.5em;margin-bottom:2.5em;padding-left:calc(1.5em + 4px);font-style:italic;font-weight:500}._1pke0ca0 .ds1tv4s:not([data-no-open-quote]) .ds1tv43:first-of-type:before{content:open-quote}._1pke0ca0 .ds1tv4s:not([data-no-close-quote]) .ds1tv43:last-of-type:after{content:close-quote}._1pke0ca0 .ds1tv4s .ds1tv43:first-child{margin-top:0}._1pke0ca0 .ds1tv4s .ds1tv43:last-child{margin-bottom:0}._1pke0ca0 .ds1tv4a{color:inherit;background-color:var(--rc-code-bg);border-radius:var(--rc-radius-sm);font-size:.875em;font-weight:600;font-family:var(--rc-font-mono);padding:.2em .4em}._1pke0ca0 .ds1tv4a:before,._1pke0ca0 .ds1tv4a:after{content:"`";color:var(--rc-text-secondary);opacity:.5}._1pke0ca0 [contenteditable=true] .ds1tv4a:before,._1pke0ca0 [contenteditable=true] .ds1tv4a:after{content:""}._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{margin:0;padding:1em 1.5em}._1pke0ca0 .ds1tv4m,._1pke0ca0 .ds1tv4l{margin-top:1.5em;margin-bottom:1.5em;padding-left:1.75em}._1pke0ca0 .ds1tv4n{margin-top:.75em;margin-bottom:.75em}._1pke0ca0 .ds1tv4n:not(.ds1tv4r):not(.ds1tv4q){padding-left:.5em}._1pke0ca0 .ds1tv4n .ds1tv43{margin-top:1em;margin-bottom:1em}._1pke0ca0 .ds1tv4n>.ds1tv43:first-child{margin-top:1.5em}._1pke0ca0 .ds1tv4n>.ds1tv43:last-child{margin-bottom:1.5em}._1pke0ca0 .ds1tv4m .ds1tv4m,._1pke0ca0 .ds1tv4m .ds1tv4l,._1pke0ca0 .ds1tv4l .ds1tv4m,._1pke0ca0 .ds1tv4l .ds1tv4l{margin-top:1em;margin-bottom:1em}._1pke0ca0 .ds1tv4x{margin-top:2em;margin-bottom:2em;font-size:.875em;line-height:1.5}._1pke0ca0 .ds1tv4x .ds1tv43{line-height:inherit;margin:0;padding:0}._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);margin-top:1em;font-size:.875em;line-height:1.5}._1pke0ca0 .ds1tv4t{border-color:var(--rc-hr-border);border-top-width:1px;width:60px;margin:3.5em auto}._1pke0ca0 .ds1tv4t+*{margin-top:0}._1pke0ca0 .ds1tv4j{font-weight:500;text-decoration:underline}._1pke0ca0 .rich-banner,._1pke0ca0 .rich-code-snippet,._1pke0ca0 ._135nao50{margin:2em 0}._1pke0ca0>:first-child{margin-top:0}._1pke0ca0>:last-child{margin-bottom:0}.p5thnj0{vertical-align:middle;padding:0 2px;display:inline}.p5thnj1{text-align:center;padding:var(--rc-space-md) 0;margin:var(--rc-space-md) 0;display:block;overflow-x:auto}.p5thnj2{font-family:var(--rc-font-mono);color:var(--rc-code-text);background-color:var(--rc-code-bg);border-radius:var(--rc-radius-sm);padding:2px 6px;font-size:.9em}._1iyoz3l0{font-size:var(--rc-font-size-base);line-height:var(--rc-line-height)}._1iyoz3l0 .ds1tv43{margin-bottom:.6em}._1iyoz3l0 .ds1tv4d{margin-top:.8em;margin-bottom:.3em;font-size:1.35em;font-weight:700}._1iyoz3l0 .ds1tv4e{margin-top:.7em;margin-bottom:.25em;font-size:1.2em;font-weight:700}._1iyoz3l0 .ds1tv4f{margin-top:.6em;margin-bottom:.2em;font-size:1.1em;font-weight:600}._1iyoz3l0 .ds1tv4g{margin-top:.5em;margin-bottom:.15em;font-size:1em;font-weight:600}._1iyoz3l0 .ds1tv4h{margin-top:.45em;margin-bottom:.1em;font-size:.9em;font-weight:600}._1iyoz3l0 .ds1tv4i{margin-top:.4em;margin-bottom:.1em;font-size:.85em;font-weight:600}._1iyoz3l0 .ds1tv4s{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 .ds1tv4s:before{width:3px}._1iyoz3l0 .ds1tv4l,._1iyoz3l0 .ds1tv4m{padding-left:var(--rc-space-md);margin-bottom:.6em}._1iyoz3l0 .ds1tv4n{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 .ds1tv4x{margin:var(--rc-space-sm) 0;font-size:var(--rc-font-size-small)}._1iyoz3l0 .ds1tv4v,._1iyoz3l0 .ds1tv4w{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 .ds1tv4t{border:none;border-top:1px solid var(--rc-hr-border);margin:var(--rc-space-lg) auto;width:60px}._1iyoz3l0 .ds1tv41j{padding:var(--rc-space-sm) var(--rc-space-md);padding-left:var(--rc-space-lg);margin:var(--rc-space-sm) 0}._1iyoz3l0 .p5thnj1{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);color:var(--rc-text);line-height:1.8}.g7jfj60 .rich-editor__content>.ds1tv43,.g7jfj60.rich-content:not([data-rich-nested=true])>.ds1tv43{margin-top:1.25em;margin-bottom:1.25em;line-height:1.8}.g7jfj60.rich-content:not([data-rich-nested=true])>.ds1tv43:not(:first-of-type){text-indent:2em}.g7jfj60 .rich-editor__content>.ds1tv43:first-of-type,.g7jfj60.rich-content:not([data-rich-nested=true])>.ds1tv43:first-of-type{margin-top:0}.g7jfj60 .rich-editor__content>.ds1tv43:not(:first-of-type)>[data-lexical-text]:first-child{margin-inline-start:2em}.g7jfj60.rich-content:not([data-rich-nested=true])>.ds1tv43:first-of-type:first-letter{float:left;margin-right:.2em;font-size:2.4em;line-height:1}.g7jfj60 .rich-editor__content>.ds1tv43:first-of-type:first-letter{color:var(--rc-accent);font-size:1.5em;font-weight:700}.g7jfj60 .rich-editor__content>.ds1tv43:last-child,.g7jfj60.rich-content:not([data-rich-nested=true])>.ds1tv43:last-child{margin-bottom:0}.g7jfj60 .ds1tv44{font-family:var(--rc-font-family);color:var(--rc-text);font-weight:600}.g7jfj60 .ds1tv4d{letter-spacing:-.025em;color:var(--rc-text);margin-top:0;margin-bottom:.888889em;font-size:2.25em;font-weight:800;line-height:1.11111}.g7jfj60 .ds1tv4e{letter-spacing:-.025em;color:var(--rc-text);margin-top:2em;margin-bottom:1em;font-size:1.5em;font-weight:700;line-height:1.33333}.g7jfj60 .ds1tv4e+*{margin-top:0}.g7jfj60 .ds1tv4f{letter-spacing:-.025em;color:var(--rc-text);margin-top:1.6em;margin-bottom:.6em;font-size:1.25em;font-weight:600;line-height:1.6}.g7jfj60 .ds1tv4f+*{margin-top:0}.g7jfj60 .ds1tv4g{color:var(--rc-text);margin-top:1.5em;margin-bottom:.5em;font-size:1.125em;font-weight:600;line-height:1.5}.g7jfj60 .ds1tv4g+*{margin-top:0}.g7jfj60 .ds1tv4h{color:var(--rc-text);margin-top:1.5em;margin-bottom:.5em;font-size:1em;font-weight:600;line-height:1.5}.g7jfj60 .ds1tv4h+*{margin-top:0}.g7jfj60 .ds1tv4i{color:var(--rc-text);text-transform:uppercase;margin-top:1.5em;margin-bottom:.5em;font-size:.875em;font-weight:600;line-height:1.5}.g7jfj60 .ds1tv4i+*{margin-top:0}.g7jfj60 .ds1tv4s{font-family:var(--rc-font-family-kai);color:color-mix(in srgb, var(--rc-accent) 60%, var(--rc-text));background-color:color-mix(in srgb, var(--rc-accent) 12%, var(--rc-bg));text-indent:0;border-radius:2px;margin:1.6em 0;padding:1.2em 1.5em;font-style:normal;line-height:1.75;transform:rotate(-.6deg);box-shadow:2px 3px 8px #00000014,0 1px 2px #0000000a}.g7jfj60 .ds1tv4s:before{content:"";background:repeating-linear-gradient(105deg, transparent, transparent 2px, #ffffff14 2px, #ffffff14 4px), color-mix(in srgb, var(--rc-accent) 20%, #0000000f);opacity:.85;border-radius:1px;width:56px;height:16px;position:absolute;top:-7px;bottom:auto;left:50%;transform:translate(-50%)rotate(1.2deg);box-shadow:0 1px 2px #0000000f}.g7jfj60 .ds1tv4s .ds1tv43:first-child:first-letter{float:none;font-size:inherit;margin-right:0}.g7jfj60 .ds1tv4j{text-underline-offset:2px;font-weight:500;text-decoration:underline;text-decoration-thickness:1px;transition:color .15s}.g7jfj60 .ds1tv4j:hover{text-decoration-thickness:2px}.g7jfj60 .ds1tv4a{font-size:.875em;font-family:var(--rc-font-mono);border-radius:var(--rc-radius-sm);background-color:var(--rc-code-bg);padding:.2em .4em;font-weight:500}.g7jfj60 .ds1tv4l,.g7jfj60 .ds1tv4m{margin-top:1.25em;margin-bottom:1.25em;padding-left:1.625em}.g7jfj60 .ds1tv4n{margin-top:.5em;margin-bottom:.5em}.g7jfj60 .ds1tv4n:not(.ds1tv4r):not(.ds1tv4q){padding-left:.375em}.g7jfj60 .ds1tv4n::marker{color:var(--rc-text-secondary)}.g7jfj60 .rich-code-block{border-radius:var(--rc-radius-md);margin-top:1.71429em;margin-bottom:1.71429em;font-size:.875em;line-height:1.71429;overflow-x:auto}.g7jfj60 .rich-code-block pre{margin:0;padding:.857143em 1.14286em}.g7jfj60 .ds1tv4x{margin-top:2em;margin-bottom:2em;font-size:.875em;line-height:1.71429}.g7jfj60 .ds1tv4x .ds1tv43{line-height:inherit;margin:0;padding:0}.g7jfj60 .ds1tv4x .ds1tv43: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{color:var(--rc-text-secondary);text-align:center;margin-top:.857143em;font-size:.875em;line-height:1.42857}.g7jfj60 .ds1tv4t{border:none;border-top:1px solid var(--rc-hr-border);opacity:.2;width:60px;margin:.5rem auto}.g7jfj60 .p5thnj1{margin-top:1.6em;margin-bottom:1.6em;padding:1em 0;overflow-x:auto}.g7jfj60 .ds1tv4y{border-radius:var(--rc-radius-sm);padding-inline-start:.25em;padding-inline-end:.25em}.g7jfj60>:first-child{margin-top:0}.g7jfj60>:last-child{margin-bottom:0}.kif1zy0{margin:var(--rc-space-md) 0;position:relative}.kif1zy1{border-radius:var(--rc-radius-md);pointer-events:none;background:var(--rc-bg);border:1px solid var(--rc-border);box-shadow:var(--rc-shadow-top-bar);z-index:10;-webkit-user-select:none;user-select:none;white-space:nowrap;opacity:0;align-items:center;gap:2px;padding:4px 6px;transition:opacity .15s;display:flex;position:absolute;top:-36px;left:50%;transform:translate(-50%)}.kif1zy2{width:24px;height:24px;color:var(--rc-text-secondary);flex-shrink:0;justify-content:center;align-items:center;display:flex}.kif1zy3{border-radius:var(--rc-radius-sm);cursor:pointer;min-width:24px;height:24px;color:var(--rc-text-secondary);background:0 0;border:none;justify-content:center;align-items:center;padding:0 6px;font-size:12px;font-weight:500;line-height:1;transition:color .15s,background-color .15s;display:flex}.kif1zy3:hover{background-color:var(--rc-fill-secondary);color:var(--rc-text)}.kif1zy4{background:var(--rc-fill);color:var(--rc-text);font-weight:600}.kif1zy5{background:var(--rc-border);flex-shrink:0;width:1px;height:16px;margin:0 2px}.kif1zy6{border-radius:var(--rc-radius-sm);cursor:pointer;min-width:24px;height:24px;color:var(--rc-text-secondary);background:0 0;border:none;justify-content:center;align-items:center;padding:0 6px;transition:color .15s,background-color .15s;display:flex}.kif1zy6:hover{background-color:var(--rc-fill-secondary);color:var(--rc-text)}.kif1zy7{gap:var(--rc-space-md);display:grid}.kif1zy8{min-width:0}.kif1zy9{outline:none;width:100%}.kif1zy0:hover .kif1zy1,.kif1zy0:focus-within .kif1zy1{opacity:1;pointer-events:auto}._1an6v8d0{cursor:pointer;margin:var(--rc-space-md) 0;border-radius:var(--rc-radius-md);border:1px solid var(--rc-border);display:block;position:relative;overflow:clip}._1an6v8d1{color:#fff;opacity:0;pointer-events:none;background:#00000059;justify-content:center;align-items:center;transition:opacity .2s,background .2s;display:flex;position:absolute;top:0;bottom:0;left:0;right:0}._1an6v8d0:hover ._1an6v8d1{opacity:1;background:#00000080}._1an6v8d2{padding-block:var(--rc-space-md);padding-inline:var(--rc-space-xl);max-height:300px;overflow:clip}._1an6v8d3._1an6v8d3{gap:0;width:900px;max-width:90vw;max-height:min(900px,100vh - 1rem);padding:0;overflow:hidden}._1an6v8d4{background:var(--rc-bg);grid-template-rows:auto minmax(0,1fr) auto;height:min(800px,100vh - 1rem);display:grid}._1an6v8d5{border-bottom:1px solid var(--rc-border);flex-shrink:0;justify-content:space-between;align-items:center;height:48px;padding:0 .5rem 0 1rem;display:flex}._1an6v8d6{align-items:center;gap:.5rem;display:flex}._1an6v8d7{font-size:var(--rc-font-size-md);color:var(--rc-text);align-items:center;gap:.5rem;margin:0;font-weight:500;display:flex}._1an6v8d8{align-items:center;gap:4px;display:flex}._1an6v8d9{cursor:pointer;width:28px;height:28px;color:var(--rc-text-secondary);background:0 0;border:none;border-radius:.25rem;justify-content:center;align-items:center;transition:color .15s;display:inline-flex}._1an6v8d9:hover{color:var(--rc-text)}._1an6v8da{border-bottom:1px solid var(--rc-border);background:var(--rc-bg);padding:0 .75rem .5rem}._1an6v8db{max-width:none;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;background-color:#0000;border:none;border-radius:0;margin:0;position:sticky;top:0}._1an6v8db>div{padding-inline-start:0;padding-inline-end:0}._1an6v8dc{background:linear-gradient(180deg, color-mix(in srgb, var(--rc-text) 2%, transparent), transparent);min-height:0;overflow:hidden}._1an6v8dc .rich-editor{flex-direction:column;height:100%;display:flex}._1an6v8dc .rich-editor__content-wrapper{max-width:75ch;overflow-y:auto}._1an6v8dc .rich-editor__content{padding-left:1.5rem;padding-right:1.5rem}._1an6v8dc .rich-editor__placeholder{left:1.5rem}._1an6v8dc .ds1tv42>:first-child{box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;background-color:#0000;border-top:none;border-left:none;border-right:none;border-radius:0;max-width:none;margin:0}._1an6v8dd{scrollbar-gutter:stable both-edges;height:100%;overflow:hidden auto}._1an6v8de{background:var(--rc-bg);min-height:100%;display:flex;overflow:hidden}._1an6v8df{outline:none;flex:1;min-height:460px;padding:1.25rem 1.5rem 1.75rem;overflow:visible}._1an6v8dg{border-top:1px solid var(--rc-border);justify-content:flex-end;align-items:center;padding:.5rem .75rem;display:flex}._1an6v8dh{cursor:pointer;margin:var(--rc-space-md) 0;border-radius:var(--rc-radius-md);border:1px solid var(--rc-border);display:block;position:relative;overflow:clip}._1an6v8di{color:#fff;opacity:0;pointer-events:none;z-index:1;background:#00000040;justify-content:center;align-items:center;transition:opacity .2s;display:flex;position:absolute;top:0;bottom:0;left:0;right:0}._1an6v8dh:hover ._1an6v8di{opacity:1}._1an6v8dj{background:linear-gradient(to bottom, transparent, var(--rc-bg));pointer-events:none;height:4rem;position:absolute;bottom:0;left:0;right:0}._1an6v8dk._1an6v8dk{flex-direction:column;width:700px;max-width:90vw;height:min(800px,100vh - 2rem);max-height:min(800px,100vh - 2rem);display:flex;overflow:hidden}._1an6v8dl{flex:1;min-height:0;padding:0 1.5rem 1.5rem;overflow:hidden auto}._1an6v8dm{pointer-events:none}._1an6v8dn{color:var(--rc-text-secondary);font-size:var(--rc-font-size-md);opacity:.72;margin:0}._1an6v8df .rich-paragraph:first-child,._1an6v8dm .rich-paragraph:first-child{margin-top:0}._1an6v8dm .rich-paragraph:last-child{margin-bottom:0}
1
+ :root{--rc-text:#000;--rc-text-secondary:#262626;--rc-text-tertiary:#737373;--rc-text-quaternary:#a3a3a3;--rc-bg:#fff;--rc-bg-secondary:#fafafa;--rc-bg-tertiary:#f5f5f5;--rc-fill:#e8e8e8;--rc-fill-secondary:#eee;--rc-fill-tertiary:#f5f5f5;--rc-fill-quaternary:#fafafa;--rc-border:#f5f5f5;--rc-accent:#2563eb;--rc-accent-light:#2563eb20;--rc-link:#2563eb;--rc-code-text:#404040;--rc-code-bg:#f5f5f5;--rc-hr-border:#e5e5e5;--rc-quote-border:#2563eb;--rc-quote-bg:#f5f5f5;--rc-alert-info:#006bb7;--rc-alert-warning:#c50;--rc-alert-tip:#1c0;--rc-alert-caution:#c01;--rc-alert-important:#50c;--rc-max-width:700px;--rc-shadow-top-bar:0 8px 30px #0000001f, 0 2px 8px #0000000f;--rc-shadow-modal:0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a;--rc-shadow-menu:0 1px 4px #0000000a, 0 4px 16px #00000014;--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-family-kai:"楷体", KaiTi, STKaiti, "Kaiti SC", "LXGW WenKai", "霞鹜文楷", "Noto Serif CJK SC", 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,[data-theme=dark]{--rc-text:#fafafa;--rc-text-secondary:#a3a3a3;--rc-text-tertiary:#737373;--rc-text-quaternary:#525252;--rc-bg:#0a0a0a;--rc-bg-secondary:#171717;--rc-bg-tertiary:#262626;--rc-fill:#2a2a2a;--rc-fill-secondary:#222;--rc-fill-tertiary:#1a1a1a;--rc-fill-quaternary:#141414;--rc-border:#262626;--rc-accent:#60a5fa;--rc-accent-light:#60a5fa20;--rc-link:#60a5fa;--rc-code-text:#d4d4d4;--rc-code-bg:#262626;--rc-hr-border:#262626;--rc-quote-border:#60a5fa;--rc-quote-bg:#262626;--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 #00000073, 0 2px 8px #0000004d;--rc-shadow-modal:0 10px 15px -3px #0006, 0 4px 6px -4px #00000059;--rc-shadow-menu:0 1px 4px #00000040, 0 4px 16px #0006;--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-family-kai:"楷体", KaiTi, STKaiti, "Kaiti SC", "LXGW WenKai", "霞鹜文楷", "Noto Serif CJK SC", 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:#262626;--rc-text-tertiary:#737373;--rc-text-quaternary:#a3a3a3;--rc-bg:#fff;--rc-bg-secondary:#fafafa;--rc-bg-tertiary:#f5f5f5;--rc-fill:#e8e8e8;--rc-fill-secondary:#eee;--rc-fill-tertiary:#f5f5f5;--rc-fill-quaternary:#fafafa;--rc-border:#f5f5f5;--rc-accent:#2563eb;--rc-accent-light:#2563eb20;--rc-link:#2563eb;--rc-code-text:#404040;--rc-code-bg:#f5f5f5;--rc-hr-border:#e5e5e5;--rc-quote-border:#2563eb;--rc-quote-bg:#f5f5f5;--rc-alert-info:#006bb7;--rc-alert-warning:#c50;--rc-alert-tip:#1c0;--rc-alert-caution:#c01;--rc-alert-important:#50c;--rc-max-width:700px;--rc-shadow-top-bar:0 8px 30px #0000001f, 0 2px 8px #0000000f;--rc-shadow-modal:0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a;--rc-shadow-menu:0 1px 4px #0000000a, 0 4px 16px #00000014;--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-family-kai:"楷体", KaiTi, STKaiti, "Kaiti SC", "LXGW WenKai", "霞鹜文楷", "Noto Serif CJK SC", 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:#262626;--rc-text-tertiary:#737373;--rc-text-quaternary:#a3a3a3;--rc-bg:#fff;--rc-bg-secondary:#fafafa;--rc-bg-tertiary:#f5f5f5;--rc-fill:#e8e8e8;--rc-fill-secondary:#eee;--rc-fill-tertiary:#f5f5f5;--rc-fill-quaternary:#fafafa;--rc-border:#f5f5f5;--rc-accent:#2563eb;--rc-accent-light:#2563eb20;--rc-link:#2563eb;--rc-code-text:#404040;--rc-code-bg:#f5f5f5;--rc-hr-border:#e5e5e5;--rc-quote-border:#2563eb;--rc-quote-bg:#f5f5f5;--rc-alert-info:#006bb7;--rc-alert-warning:#c50;--rc-alert-tip:#1c0;--rc-alert-caution:#c01;--rc-alert-important:#50c;--rc-max-width:700px;--rc-shadow-top-bar:0 8px 30px #0000001f, 0 2px 8px #0000000f;--rc-shadow-modal:0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a;--rc-shadow-menu:0 1px 4px #0000000a, 0 4px 16px #00000014;--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-family-kai:"楷体", KaiTi, STKaiti, "Kaiti SC", "LXGW WenKai", "霞鹜文楷", "Noto Serif CJK SC", 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:#262626;--rc-text-tertiary:#737373;--rc-text-quaternary:#a3a3a3;--rc-bg:#fff;--rc-bg-secondary:#fafafa;--rc-bg-tertiary:#f5f5f5;--rc-fill:#e8e8e8;--rc-fill-secondary:#eee;--rc-fill-tertiary:#f5f5f5;--rc-fill-quaternary:#fafafa;--rc-border:#f5f5f5;--rc-accent:#2563eb;--rc-accent-light:#2563eb20;--rc-link:#2563eb;--rc-code-text:#404040;--rc-code-bg:#f5f5f5;--rc-hr-border:#e5e5e5;--rc-quote-border:#a3a3a3;--rc-quote-bg:#fafafa;--rc-alert-info:#006bb7;--rc-alert-warning:#c50;--rc-alert-tip:#1c0;--rc-alert-caution:#c01;--rc-alert-important:#50c;--rc-max-width:none;--rc-shadow-top-bar:0 8px 30px #0000001f, 0 2px 8px #0000000f;--rc-shadow-modal:0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a;--rc-shadow-menu:0 1px 4px #0000000a, 0 4px 16px #00000014;--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-family-kai:"楷体", KaiTi, STKaiti, "Kaiti SC", "LXGW WenKai", "霞鹜文楷", "Noto Serif CJK SC", 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:12px}.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:#a3a3a3;--rc-text-tertiary:#737373;--rc-text-quaternary:#525252;--rc-bg:#0a0a0a;--rc-bg-secondary:#171717;--rc-bg-tertiary:#262626;--rc-fill:#2a2a2a;--rc-fill-secondary:#222;--rc-fill-tertiary:#1a1a1a;--rc-fill-quaternary:#141414;--rc-border:#262626;--rc-accent:#60a5fa;--rc-accent-light:#60a5fa20;--rc-link:#60a5fa;--rc-code-text:#d4d4d4;--rc-code-bg:#262626;--rc-hr-border:#262626;--rc-quote-border:#60a5fa;--rc-quote-bg:#262626;--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 #00000073, 0 2px 8px #0000004d;--rc-shadow-modal:0 10px 15px -3px #0006, 0 4px 6px -4px #00000059;--rc-shadow-menu:0 1px 4px #00000040, 0 4px 16px #0006}@keyframes ds1tv40{to{--rc-hl-highlighted:1}}@keyframes ds1tv41{0%{background-color:#ef44443d}to{background-color:#0000}}.ds1tv42{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}.ds1tv43{line-height:var(--rc-line-height);margin:0 0 1em}.ds1tv44{font-weight:700}.ds1tv45{font-style:italic}.ds1tv46{text-decoration:underline}.ds1tv47{opacity:.65;text-decoration:line-through}.ds1tv48{vertical-align:super;font-size:.8em}.ds1tv49{vertical-align:sub;font-size:.8em}.ds1tv4a{font-family:var(--rc-font-mono);background-color:var(--rc-code-bg);color:inherit;border-radius:var(--rc-radius-sm);border:1px solid var(--rc-border);padding:2px 6px;font-size:.9em}[contenteditable=true] .ds1tv4a{padding-right:0}.ds1tv4b{--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] .ds1tv4b{--rc-hl-highlighted:1;animation:none}[data-theme=dark] .ds1tv4b{--rc-hl-lightness:.35}.ds1tv4c{color:var(--rc-text-secondary);opacity:0;align-items:center;font-size:.8rem;text-decoration:none;transition:opacity .15s;display:flex;position:absolute;top:0;bottom:0;left:-1.25rem}.ds1tv4d{font-size:2em;font-weight:700;line-height:var(--rc-line-height-tight);margin-top:1.5em;margin-bottom:.5em;position:relative}[contenteditable=true] .ds1tv4d:before{content:"H1";color:var(--rc-text-secondary);opacity:.6;pointer-events:none;font-size:.5rem;font-weight:600;font-family:var(--rc-font-mono);display:flex;position:absolute;bottom:.5rem;left:-1.5rem}.ds1tv4e{font-size:1.5em;font-weight:700;line-height:var(--rc-line-height-tight);margin-top:1.4em;margin-bottom:.45em;position:relative}[contenteditable=true] .ds1tv4e:before{content:"H2";color:var(--rc-text-secondary);opacity:.6;pointer-events:none;font-size:.5rem;font-weight:600;font-family:var(--rc-font-mono);display:flex;position:absolute;bottom:.5rem;left:-1.5rem}.ds1tv4f{font-size:1.25em;font-weight:600;line-height:var(--rc-line-height-tight);margin-top:1.3em;margin-bottom:.4em;position:relative}[contenteditable=true] .ds1tv4f:before{content:"H3";color:var(--rc-text-secondary);opacity:.6;pointer-events:none;font-size:.5rem;font-weight:600;font-family:var(--rc-font-mono);display:flex;position:absolute;bottom:.5rem;left:-1.5rem}.ds1tv4g{font-size:1.125em;font-weight:600;line-height:var(--rc-line-height-tight);margin-top:1.2em;margin-bottom:.35em;position:relative}[contenteditable=true] .ds1tv4g:before{content:"H4";color:var(--rc-text-secondary);opacity:.6;pointer-events:none;font-size:.5rem;font-weight:600;font-family:var(--rc-font-mono);display:flex;position:absolute;bottom:.5rem;left:-1.5rem}.ds1tv4h{font-size:1em;font-weight:600;line-height:var(--rc-line-height-tight);margin-top:1.1em;margin-bottom:.3em;position:relative}[contenteditable=true] .ds1tv4h:before{content:"H5";color:var(--rc-text-secondary);opacity:.6;pointer-events:none;font-size:.5rem;font-weight:600;font-family:var(--rc-font-mono);display:flex;position:absolute;bottom:.5rem;left:-1.5rem}.ds1tv4i{font-size:.875em;font-weight:600;line-height:var(--rc-line-height-tight);color:var(--rc-text);margin-top:1em;margin-bottom:.25em;position:relative}[contenteditable=true] .ds1tv4i:before{content:"H6";color:var(--rc-text-secondary);opacity:.6;pointer-events:none;font-size:.5rem;font-weight:600;font-family:var(--rc-font-mono);display:flex;position:absolute;bottom:.5rem;left:-1.5rem}.ds1tv4j{color:var(--rc-link);text-decoration:none;transition:color .2s}.ds1tv4j:hover{text-decoration:underline}.ds1tv4j[data-favicon=loaded]:before{content:"";vertical-align:-.125em;background-image:var(--rc-link-favicon);background-position:50%;background-repeat:no-repeat;background-size:contain;border-radius:2px;width:1em;height:1em;margin-right:.2em;display:inline-block}.ds1tv4k{vertical-align:-.125em;align-items:center;margin-right:.15em;display:inline-flex}.ds1tv4l{padding-left:var(--rc-space-lg);margin-bottom:1em;list-style-type:decimal}.ds1tv4m{padding-left:var(--rc-space-lg);margin-bottom:1em;list-style-type:disc}.ds1tv4n{margin-bottom:.25em}.ds1tv4o{list-style-type:none}.ds1tv4p{padding-left:0;list-style-type:none}.ds1tv4q{--rc-cb-size:1.125rem;outline:none;padding-left:2em;list-style-type:none;transition:color .25s;position:relative}.ds1tv4q:before{content:"";left:0;top:calc((1lh - var(--rc-cb-size)) / 2);width:var(--rc-cb-size);height:var(--rc-cb-size);border:1.5px solid var(--rc-text-quaternary);border-radius:var(--rc-radius-sm);box-sizing:border-box;cursor:pointer;background-color:#0000;transition:background-color .25s cubic-bezier(.4,0,.2,1),border-color .25s cubic-bezier(.4,0,.2,1),transform .15s;position:absolute}.ds1tv4q:after{content:"";left:calc(var(--rc-cb-size) * .32);top:calc((1lh - var(--rc-cb-size)) / 2 + var(--rc-cb-size) * .14);width:calc(var(--rc-cb-size) * .28);height:calc(var(--rc-cb-size) * .55);border-right:2px solid var(--rc-accent);border-bottom:2px solid var(--rc-accent);box-sizing:border-box;pointer-events:none;transform-origin:50%;opacity:0;transition:transform .3s cubic-bezier(.34,1.56,.64,1) .1s,opacity .15s;display:block;position:absolute;transform:rotate(45deg)scale(0)}[contenteditable=true] .ds1tv4q:active:before{transform:scale(.94)}[contenteditable=true] .ds1tv4q:hover:before{border-color:var(--rc-text-tertiary)}.ds1tv4r{--rc-cb-size:1.125rem;color:var(--rc-text-secondary);outline:none;padding-left:2em;list-style-type:none;transition:color .25s;position:relative}.ds1tv4r:before{content:"";left:0;top:calc((1lh - var(--rc-cb-size)) / 2);width:var(--rc-cb-size);height:var(--rc-cb-size);border:1.5px solid var(--rc-text-quaternary);border-radius:var(--rc-radius-sm);box-sizing:border-box;cursor:pointer;background-color:var(--rc-accent-light);border-color:var(--rc-accent);transition:background-color .25s cubic-bezier(.4,0,.2,1),border-color .25s cubic-bezier(.4,0,.2,1),transform .15s;position:absolute}.ds1tv4r:after{content:"";left:calc(var(--rc-cb-size) * .32);top:calc((1lh - var(--rc-cb-size)) / 2 + var(--rc-cb-size) * .14);width:calc(var(--rc-cb-size) * .28);height:calc(var(--rc-cb-size) * .55);border-right:2px solid var(--rc-accent);border-bottom:2px solid var(--rc-accent);box-sizing:border-box;pointer-events:none;transform-origin:50%;opacity:1;transition:transform .3s cubic-bezier(.34,1.56,.64,1) .1s,opacity .15s;display:block;position:absolute;transform:rotate(45deg)scale(1)}[contenteditable=true] .ds1tv4r:active:before{transform:scale(.94)}[contenteditable=true] .ds1tv4r:hover:before{background-color:color-mix(in oklab, var(--rc-accent) 12%, transparent)}.ds1tv4s{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);color:var(--rc-text-secondary);border-radius:0 var(--rc-radius-sm) var(--rc-radius-sm) 0;font-style:normal;position:relative}.ds1tv4s:before{content:"";border-radius:var(--rc-radius-sm);background-color:var(--rc-quote-border);width:4px;position:absolute;top:0;bottom:0;left:0}.ds1tv4t{text-align:right;color:var(--rc-text-secondary);margin-top:var(--rc-space-sm);font-size:12px;font-style:normal;display:block}.ds1tv4u{border:none;border-top:1px solid var(--rc-hr-border);margin:var(--rc-space-lg) auto;width:60px}.ds1tv4v{overflow-x:auto}.ds1tv4w{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}.ds1tv4w:last-child{border-right:none}.ds1tv4x{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;text-transform:uppercase;letter-spacing:.05em;color:var(--rc-text-secondary);background-color:var(--rc-bg-secondary);vertical-align:middle;z-index:1;font-size:.75em;font-weight:600;line-height:1.5;position:sticky;top:0}.ds1tv4x:last-child{border-right:none}.ds1tv4y{border-collapse:separate;border-spacing:0;width:100%;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}.ds1tv4z{background-color:var(--rc-text);color:#0000;border-radius:var(--rc-radius-sm);cursor:pointer;-webkit-user-select:none;user-select:none;padding-inline-start:4px;padding-inline-end:4px;transition:background-color .3s,color .3s}[contenteditable=true] .ds1tv4z{background-color:color-mix(in srgb, var(--rc-text) 30%, transparent);color:inherit;-webkit-user-select:auto;user-select:auto;cursor:text}.ds1tv4z:hover{color:inherit;-webkit-user-select:auto;user-select:auto;background-color:#0000}.rich-content .ds1tv4z{background-color:var(--rc-text-tertiary);color:#0000}.rich-content .ds1tv4z:not(:hover):not(.rich-spoiler-revealed) *{color:#0000!important}.rich-content .ds1tv4z:hover,.ds1tv410{color:inherit;-webkit-user-select:auto;user-select:auto;background-color:#0000}.ds1tv411{font-size:var(--rc-font-size-small);vertical-align:baseline;border-radius:999px;padding-inline-start:.75em;padding-inline-end:.75em;line-height:1.6;display:inline-block}.ds1tv412{font-family:var(--rc-font-mono);font-size:var(--rc-font-size-small);color:var(--rc-text-secondary);background-color:var(--rc-code-bg);border:1px dashed var(--rc-border);border-radius:var(--rc-radius-sm);white-space:break-spaces;padding:2px 6px;display:inline-block}.ds1tv412:before{content:"<!--";opacity:.7}.ds1tv412:after{content:"-->";opacity:.7}.ds1tv413{ruby-position:over;ruby-align:center}[contenteditable=true] .ds1tv413[data-ruby]{padding-top:.72em;line-height:1.2;display:inline-block;position:relative}[contenteditable=true] .ds1tv413[data-ruby]:before{content:attr(data-ruby);text-align:center;color:var(--rc-text-secondary);pointer-events:none;white-space:nowrap;font-size:.58em;line-height:1;position:absolute;top:0;left:0;right:0;transform:translateY(-.68em)}.ds1tv414{color:var(--rc-text-secondary);-webkit-user-select:none;user-select:none;font-size:.58em;line-height:1}.ds1tv415{vertical-align:super;font-size:.8em}.ds1tv416{min-width:1.5em;color:var(--rc-accent);background-color:var(--rc-accent-light);border-radius:999px;justify-content:center;align-items:center;padding:0 .35em;font-size:.82em;font-weight:600;line-height:1.45;text-decoration:none;transition:filter .15s;display:inline-flex}.ds1tv416:hover{filter:brightness(.96)}.ds1tv417{animation:1.2s ease-out ds1tv41}.ds1tv418{display:inline;position:relative}.ds1tv419{margin-top:var(--rc-space-lg)}.ds1tv41a{border:none;border-top:1px solid var(--rc-border);margin:var(--rc-space-lg) 0 var(--rc-space-md)}.ds1tv41b{padding-left:var(--rc-space-lg);font-size:var(--rc-font-size-small);color:var(--rc-text-secondary);line-height:1.6;list-style-type:decimal}.ds1tv41c{margin-bottom:var(--rc-space-sm);padding-left:var(--rc-space-xs)}.ds1tv41d{margin-left:var(--rc-space-xs);color:var(--rc-accent);font-size:.85em;font-family:var(--rc-font-mono);align-items:center;text-decoration:none;transition:opacity .15s;display:inline-flex}.ds1tv41d:hover{opacity:.7}.ds1tv41e{align-items:center;gap:var(--rc-space-sm);list-style-type:none;display:flex}.ds1tv41f{color:var(--rc-text-secondary);font-size:var(--rc-font-size-small);flex-shrink:0;min-width:1.5em;font-weight:600}.ds1tv41g{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:#0000;outline:none;flex:1;transition:border-color .15s}.ds1tv41g:focus{border-color:var(--rc-accent)}.ds1tv41h{width:20px;height:20px;color:var(--rc-text-secondary);cursor:pointer;border-radius:var(--rc-radius-sm);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;font-size:14px;transition:color .15s,background-color .15s;display:inline-flex}.ds1tv41h:hover{color:#ef4444;background-color:#ef44441a}.ds1tv41i{cursor:grab;border-radius:var(--rc-radius-sm);width:20px;height:20px;color:var(--rc-text-secondary);opacity:.4;z-index:10;justify-content:center;align-items:center;transition:opacity .15s,background-color .15s;display:flex;position:absolute}.ds1tv41i:hover{opacity:1;background-color:var(--rc-fill-secondary)}.ds1tv41i:active{cursor:grabbing}.ds1tv41j{background-color:var(--rc-accent);pointer-events:none;z-index:10;border-radius:1px;height:2px;position:absolute}.ds1tv41k{background-color:#0000;border:none;border-radius:0;margin:2em 0;padding:0 1em}.ds1tv42 mark{background:0 0}.ds1tv42 img{border-radius:var(--rc-radius-md);max-width:100%;height:auto}.ds1tv42>:first-child,.ds1tv42 .rich-editor__content>:first-child{margin-top:0}.ds1tv42>:last-child,.ds1tv42 .rich-editor__content>:last-child{margin-bottom:0}.ds1tv4c svg{flex-shrink:0}.ds1tv4d:hover .ds1tv4c{opacity:.5}.ds1tv4d:hover .ds1tv4c:hover{opacity:1}.ds1tv4e:hover .ds1tv4c{opacity:.5}.ds1tv4e:hover .ds1tv4c:hover{opacity:1}.ds1tv4f:hover .ds1tv4c{opacity:.5}.ds1tv4f:hover .ds1tv4c:hover{opacity:1}.ds1tv4g:hover .ds1tv4c{opacity:.5}.ds1tv4g:hover .ds1tv4c:hover{opacity:1}.ds1tv4h:hover .ds1tv4c{opacity:.5}.ds1tv4h:hover .ds1tv4c:hover{opacity:1}.ds1tv4i:hover .ds1tv4c{opacity:.5}.ds1tv4i:hover .ds1tv4c:hover{opacity:1}.ds1tv4k img{object-fit:contain;border-radius:2px;width:1em;height:1em}.ds1tv4k svg{width:.9em;height:.9em}.ds1tv4o .ds1tv4l{list-style-type:lower-alpha}.ds1tv4o .ds1tv4m{list-style-type:circle}.ds1tv4r>*,.ds1tv4q>*{background-image:linear-gradient(var(--rc-text-secondary), var(--rc-text-secondary));background-position:0;background-repeat:no-repeat;background-size:0% 1.5px;transition:background-size .35s cubic-bezier(.4,0,.2,1) .15s,opacity .15s}.ds1tv4r>*{opacity:.5;background-size:100% 1.5px}.ds1tv4s>.ds1tv43:first-child{margin-top:0}.ds1tv4s>.ds1tv43:last-child{margin-bottom:0}.ds1tv4y tbody tr:last-child .ds1tv4w{border-bottom:none}.ds1tv4w .ds1tv43{line-height:inherit;margin:0;padding:0}.ds1tv4w>:first-child{margin-top:0}.ds1tv4w>:last-child{margin-bottom:0}.ds1tv4x .ds1tv43{line-height:inherit;margin:0;padding:0}.ds1tv4x>:first-child{margin-top:0}.ds1tv4x>:last-child{margin-bottom:0}@supports (animation-timeline:view()){.ds1tv4b{--rc-hl-highlighted:0;animation:step-end both ds1tv40;animation-timeline:view();animation-range:entry 100% cover 10%}}._135nao50{margin:var(--rc-space-md) 0;interpolate-size:allow-keywords;background-color:#0000;border:none}._135nao51{align-items:flex-start;gap:var(--rc-space-sm);cursor:pointer;-webkit-user-select:none;user-select:none;padding:var(--rc-space-xs) 0;color:var(--rc-text);font-size:1em;font-weight:500;line-height:var(--rc-line-height);border-radius:var(--rc-radius-sm);outline:none;list-style:none;transition:opacity .2s,color .2s,box-shadow .2s;display:flex}._135nao51:hover{opacity:.82}._135nao51:focus-visible{box-shadow:0 0 0 2px var(--rc-accent-light)}._135nao51::-webkit-details-marker{display:none}._135nao51::marker{content:"";display:none}._135nao52{flex:1;min-width:0}._135nao53{width:1.25rem;height:1.25rem;color:var(--rc-text-tertiary);transform-origin:50%;flex-shrink:0;justify-content:center;align-items:center;transition:transform .35s cubic-bezier(.4,0,.2,1),color .2s;display:inline-flex;position:relative;top:.25rem}._135nao54{margin-top:var(--rc-space-xs);padding:var(--rc-space-sm) var(--rc-space-xl);color:var(--rc-text-secondary);background-color:color-mix(in srgb, var(--rc-accent) 6%, var(--rc-bg-secondary));border-radius:var(--rc-radius-md)}._135nao51:hover ._135nao53{color:var(--rc-text-secondary)}._135nao50[open] ._135nao53{color:var(--rc-accent);transform:rotate(90deg)}._135nao50::details-content{opacity:0;content-visibility:hidden;height:0;transition:height .4s cubic-bezier(.4, 0, .2, 1), opacity .4s cubic-bezier(.4, 0, .2, 1), content-visibility .4s cubic-bezier(.4, 0, .2, 1) allow-discrete;display:block;overflow:hidden}._135nao50[open]::details-content{opacity:1;content-visibility:visible;height:auto}._135nao54>.ds1tv43:first-child{margin-top:0}._135nao54>.ds1tv43:last-child{margin-bottom:0}._1pke0ca0{max-width:var(--rc-max-width);font-size:var(--rc-font-size-base);color:var(--rc-text);line-height:1.75}._1pke0ca0 .ds1tv43{margin-top:1.5em;margin-bottom:1.5em}._1pke0ca0 .ds1tv4d{color:var(--rc-text);margin-top:0;margin-bottom:.833333em;font-size:3em;font-weight:800;line-height:1}._1pke0ca0 .ds1tv4e{color:var(--rc-text);margin-top:1.86667em;margin-bottom:1.06667em;font-size:1.875em;font-weight:700;line-height:1.33333}._1pke0ca0 .ds1tv4f{color:var(--rc-text);margin-top:1.66667em;margin-bottom:.666667em;font-size:1.5em;font-weight:600;line-height:1.5}._1pke0ca0 .ds1tv4g{color:var(--rc-text);margin-top:2em;margin-bottom:.5em;font-weight:600;line-height:1.5625}._1pke0ca0 .ds1tv4e+*,._1pke0ca0 .ds1tv4f+*,._1pke0ca0 .ds1tv4g+*{margin-top:0}._1pke0ca0 .ds1tv4s{color:var(--rc-text);quotes:"“""”""‘""’";background-color:#0000;border-radius:0;margin-top:2.5em;margin-bottom:2.5em;padding-left:calc(1.5em + 4px);font-style:italic;font-weight:500}._1pke0ca0 .ds1tv4s:not([data-no-open-quote]) .ds1tv43:first-of-type:before{content:open-quote}._1pke0ca0 .ds1tv4s:not([data-no-close-quote]) .ds1tv43:last-of-type:after{content:close-quote}._1pke0ca0 .ds1tv4s .ds1tv43:first-child{margin-top:0}._1pke0ca0 .ds1tv4s .ds1tv43:last-child{margin-bottom:0}._1pke0ca0 .ds1tv4a{color:inherit;background-color:var(--rc-code-bg);border-radius:var(--rc-radius-sm);font-size:.875em;font-weight:600;font-family:var(--rc-font-mono);padding:.2em .4em}._1pke0ca0 .ds1tv4a:before,._1pke0ca0 .ds1tv4a:after{content:"`";color:var(--rc-text-secondary);opacity:.5}._1pke0ca0 [contenteditable=true] .ds1tv4a:before,._1pke0ca0 [contenteditable=true] .ds1tv4a:after{content:""}._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{margin:0;padding:1em 1.5em}._1pke0ca0 .ds1tv4m,._1pke0ca0 .ds1tv4l{margin-top:1.5em;margin-bottom:1.5em;padding-left:1.75em}._1pke0ca0 .ds1tv4n{margin-top:.75em;margin-bottom:.75em}._1pke0ca0 .ds1tv4n:not(.ds1tv4r):not(.ds1tv4q){padding-left:.5em}._1pke0ca0 .ds1tv4n .ds1tv43{margin-top:1em;margin-bottom:1em}._1pke0ca0 .ds1tv4n>.ds1tv43:first-child{margin-top:1.5em}._1pke0ca0 .ds1tv4n>.ds1tv43:last-child{margin-bottom:1.5em}._1pke0ca0 .ds1tv4m .ds1tv4m,._1pke0ca0 .ds1tv4m .ds1tv4l,._1pke0ca0 .ds1tv4l .ds1tv4m,._1pke0ca0 .ds1tv4l .ds1tv4l{margin-top:1em;margin-bottom:1em}._1pke0ca0 .ds1tv4y{margin-top:2em;margin-bottom:2em;font-size:.875em;line-height:1.5}._1pke0ca0 .ds1tv4y .ds1tv43{line-height:inherit;margin:0;padding:0}._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);margin-top:1em;font-size:.875em;line-height:1.5}._1pke0ca0 .ds1tv4u{border-color:var(--rc-hr-border);border-top-width:1px;width:60px;margin:3.5em auto}._1pke0ca0 .ds1tv4u+*{margin-top:0}._1pke0ca0 .ds1tv4j{font-weight:500;text-decoration:underline}._1pke0ca0 .rich-banner,._1pke0ca0 .rich-code-snippet,._1pke0ca0 ._135nao50{margin:2em 0}._1pke0ca0>:first-child{margin-top:0}._1pke0ca0>:last-child{margin-bottom:0}.p5thnj0{vertical-align:middle;padding:0 2px;display:inline}.p5thnj1{text-align:center;padding:var(--rc-space-md) 0;margin:var(--rc-space-md) 0;display:block;overflow-x:auto}.p5thnj2{font-family:var(--rc-font-mono);color:var(--rc-code-text);background-color:var(--rc-code-bg);border-radius:var(--rc-radius-sm);padding:2px 6px;font-size:.9em}._1iyoz3l0{font-size:var(--rc-font-size-base);line-height:var(--rc-line-height)}._1iyoz3l0 .ds1tv43{margin-bottom:.6em}._1iyoz3l0 .ds1tv4d{margin-top:.8em;margin-bottom:.3em;font-size:1.35em;font-weight:700}._1iyoz3l0 .ds1tv4e{margin-top:.7em;margin-bottom:.25em;font-size:1.2em;font-weight:700}._1iyoz3l0 .ds1tv4f{margin-top:.6em;margin-bottom:.2em;font-size:1.1em;font-weight:600}._1iyoz3l0 .ds1tv4g{margin-top:.5em;margin-bottom:.15em;font-size:1em;font-weight:600}._1iyoz3l0 .ds1tv4h{margin-top:.45em;margin-bottom:.1em;font-size:.9em;font-weight:600}._1iyoz3l0 .ds1tv4i{margin-top:.4em;margin-bottom:.1em;font-size:.85em;font-weight:600}._1iyoz3l0 .ds1tv4s{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 .ds1tv4s:before{width:3px}._1iyoz3l0 .ds1tv4l,._1iyoz3l0 .ds1tv4m{padding-left:var(--rc-space-md);margin-bottom:.6em}._1iyoz3l0 .ds1tv4n{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 .ds1tv4y{margin:var(--rc-space-sm) 0;font-size:var(--rc-font-size-small)}._1iyoz3l0 .ds1tv4w,._1iyoz3l0 .ds1tv4x{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 .ds1tv4u{border:none;border-top:1px solid var(--rc-hr-border);margin:var(--rc-space-lg) auto;width:60px}._1iyoz3l0 .ds1tv41k{padding:var(--rc-space-sm) var(--rc-space-md);padding-left:var(--rc-space-lg);margin:var(--rc-space-sm) 0}._1iyoz3l0 .p5thnj1{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);color:var(--rc-text);line-height:1.8}.g7jfj60 .rich-editor__content>.ds1tv43,.g7jfj60.rich-content:not([data-rich-nested=true])>.ds1tv43{margin-top:1.25em;margin-bottom:1.25em;line-height:1.8}.g7jfj60.rich-content:not([data-rich-nested=true])>.ds1tv43:not(:first-of-type){text-indent:2em}.g7jfj60 .rich-editor__content>.ds1tv43:first-of-type,.g7jfj60.rich-content:not([data-rich-nested=true])>.ds1tv43:first-of-type{margin-top:0}.g7jfj60 .rich-editor__content>.ds1tv43:not(:first-of-type)>[data-lexical-text]:first-child{margin-inline-start:2em}.g7jfj60.rich-content:not([data-rich-nested=true])>.ds1tv43:first-of-type:first-letter{float:left;margin-right:.2em;font-size:2.4em;line-height:1}.g7jfj60 .rich-editor__content>.ds1tv43:first-of-type:first-letter{color:var(--rc-accent);font-size:1.5em;font-weight:700}.g7jfj60 .rich-editor__content>.ds1tv43:last-child,.g7jfj60.rich-content:not([data-rich-nested=true])>.ds1tv43:last-child{margin-bottom:0}.g7jfj60 .ds1tv44{font-family:var(--rc-font-family);color:var(--rc-text);font-weight:600}.g7jfj60 .ds1tv4d{letter-spacing:-.025em;color:var(--rc-text);margin-top:0;margin-bottom:.888889em;font-size:2.25em;font-weight:800;line-height:1.11111}.g7jfj60 .ds1tv4e{letter-spacing:-.025em;color:var(--rc-text);margin-top:2em;margin-bottom:1em;font-size:1.5em;font-weight:700;line-height:1.33333}.g7jfj60 .ds1tv4e+*{margin-top:0}.g7jfj60 .ds1tv4f{letter-spacing:-.025em;color:var(--rc-text);margin-top:1.6em;margin-bottom:.6em;font-size:1.25em;font-weight:600;line-height:1.6}.g7jfj60 .ds1tv4f+*{margin-top:0}.g7jfj60 .ds1tv4g{color:var(--rc-text);margin-top:1.5em;margin-bottom:.5em;font-size:1.125em;font-weight:600;line-height:1.5}.g7jfj60 .ds1tv4g+*{margin-top:0}.g7jfj60 .ds1tv4h{color:var(--rc-text);margin-top:1.5em;margin-bottom:.5em;font-size:1em;font-weight:600;line-height:1.5}.g7jfj60 .ds1tv4h+*{margin-top:0}.g7jfj60 .ds1tv4i{color:var(--rc-text);text-transform:uppercase;margin-top:1.5em;margin-bottom:.5em;font-size:.875em;font-weight:600;line-height:1.5}.g7jfj60 .ds1tv4i+*{margin-top:0}.g7jfj60 .ds1tv4s{font-family:var(--rc-font-family-kai);color:color-mix(in srgb, var(--rc-accent) 60%, var(--rc-text));background-color:color-mix(in srgb, var(--rc-accent) 12%, var(--rc-bg));text-indent:0;border-radius:2px;margin:1.6em 0;padding:1.2em 1.5em;font-style:normal;line-height:1.75;transform:rotate(-.6deg);box-shadow:2px 3px 8px #00000014,0 1px 2px #0000000a}.g7jfj60 .ds1tv4s:before{content:"";background:repeating-linear-gradient(105deg, transparent, transparent 2px, #ffffff14 2px, #ffffff14 4px), color-mix(in srgb, var(--rc-accent) 20%, #0000000f);opacity:.85;border-radius:1px;width:56px;height:16px;position:absolute;top:-7px;bottom:auto;left:50%;transform:translate(-50%)rotate(1.2deg);box-shadow:0 1px 2px #0000000f}.g7jfj60 .ds1tv4s .ds1tv43:first-child:first-letter{float:none;font-size:inherit;margin-right:0}.g7jfj60 .ds1tv4j{text-underline-offset:2px;font-weight:500;text-decoration:underline;text-decoration-thickness:1px;transition:color .15s}.g7jfj60 .ds1tv4j:hover{text-decoration-thickness:2px}.g7jfj60 .ds1tv4a{font-size:.875em;font-family:var(--rc-font-mono);border-radius:var(--rc-radius-sm);background-color:var(--rc-code-bg);padding:.2em .4em;font-weight:500}.g7jfj60 .ds1tv4l,.g7jfj60 .ds1tv4m{margin-top:1.25em;margin-bottom:1.25em;padding-left:1.625em}.g7jfj60 .ds1tv4n{margin-top:.5em;margin-bottom:.5em}.g7jfj60 .ds1tv4n:not(.ds1tv4r):not(.ds1tv4q){padding-left:.375em}.g7jfj60 .ds1tv4n::marker{color:var(--rc-text-secondary)}.g7jfj60 .rich-code-block{border-radius:var(--rc-radius-md);margin-top:1.71429em;margin-bottom:1.71429em;font-size:.875em;line-height:1.71429;overflow-x:auto}.g7jfj60 .rich-code-block pre{margin:0;padding:.857143em 1.14286em}.g7jfj60 .ds1tv4y{margin-top:2em;margin-bottom:2em;font-size:.875em;line-height:1.71429}.g7jfj60 .ds1tv4y .ds1tv43{line-height:inherit;margin:0;padding:0}.g7jfj60 .ds1tv4y .ds1tv43: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{color:var(--rc-text-secondary);text-align:center;margin-top:.857143em;font-size:.875em;line-height:1.42857}.g7jfj60 .ds1tv4u{border:none;border-top:1px solid var(--rc-hr-border);opacity:.2;width:60px;margin:.5rem auto}.g7jfj60 .p5thnj1{margin-top:1.6em;margin-bottom:1.6em;padding:1em 0;overflow-x:auto}.g7jfj60 .ds1tv4z{border-radius:var(--rc-radius-sm);padding-inline-start:.25em;padding-inline-end:.25em}.g7jfj60>:first-child{margin-top:0}.g7jfj60>:last-child{margin-bottom:0}.kif1zy0{margin:var(--rc-space-md) 0;position:relative}.kif1zy1{border-radius:var(--rc-radius-md);pointer-events:none;background:var(--rc-bg);border:1px solid var(--rc-border);box-shadow:var(--rc-shadow-top-bar);z-index:10;-webkit-user-select:none;user-select:none;white-space:nowrap;opacity:0;align-items:center;gap:2px;padding:4px 6px;transition:opacity .15s;display:flex;position:absolute;top:-36px;left:50%;transform:translate(-50%)}.kif1zy2{width:24px;height:24px;color:var(--rc-text-secondary);flex-shrink:0;justify-content:center;align-items:center;display:flex}.kif1zy3{border-radius:var(--rc-radius-sm);cursor:pointer;min-width:24px;height:24px;color:var(--rc-text-secondary);background:0 0;border:none;justify-content:center;align-items:center;padding:0 6px;font-size:12px;font-weight:500;line-height:1;transition:color .15s,background-color .15s;display:flex}.kif1zy3:hover{background-color:var(--rc-fill-secondary);color:var(--rc-text)}.kif1zy4{background:var(--rc-fill);color:var(--rc-text);font-weight:600}.kif1zy5{background:var(--rc-border);flex-shrink:0;width:1px;height:16px;margin:0 2px}.kif1zy6{border-radius:var(--rc-radius-sm);cursor:pointer;min-width:24px;height:24px;color:var(--rc-text-secondary);background:0 0;border:none;justify-content:center;align-items:center;padding:0 6px;transition:color .15s,background-color .15s;display:flex}.kif1zy6:hover{background-color:var(--rc-fill-secondary);color:var(--rc-text)}.kif1zy7{gap:var(--rc-space-md);display:grid}.kif1zy8{min-width:0}.kif1zy9{outline:none;width:100%}.kif1zy0:hover .kif1zy1,.kif1zy0:focus-within .kif1zy1{opacity:1;pointer-events:auto}._1an6v8d0{cursor:pointer;margin:var(--rc-space-md) 0;border-radius:var(--rc-radius-md);border:1px solid var(--rc-border);display:block;position:relative;overflow:clip}._1an6v8d1{color:#fff;opacity:0;pointer-events:none;background:#00000059;justify-content:center;align-items:center;transition:opacity .2s,background .2s;display:flex;position:absolute;top:0;bottom:0;left:0;right:0}._1an6v8d0:hover ._1an6v8d1{opacity:1;background:#00000080}._1an6v8d2{padding-block:var(--rc-space-md);padding-inline:var(--rc-space-xl);max-height:300px;overflow:clip}._1an6v8d3._1an6v8d3{gap:0;width:900px;max-width:90vw;max-height:min(900px,100vh - 1rem);padding:0;overflow:hidden}._1an6v8d4{background:var(--rc-bg);grid-template-rows:auto minmax(0,1fr) auto;height:min(800px,100vh - 1rem);display:grid}._1an6v8d5{border-bottom:1px solid var(--rc-border);flex-shrink:0;justify-content:space-between;align-items:center;height:48px;padding:0 .5rem 0 1rem;display:flex}._1an6v8d6{align-items:center;gap:.5rem;display:flex}._1an6v8d7{font-size:var(--rc-font-size-md);color:var(--rc-text);align-items:center;gap:.5rem;margin:0;font-weight:500;display:flex}._1an6v8d8{align-items:center;gap:4px;display:flex}._1an6v8d9{cursor:pointer;width:28px;height:28px;color:var(--rc-text-secondary);background:0 0;border:none;border-radius:.25rem;justify-content:center;align-items:center;transition:color .15s;display:inline-flex}._1an6v8d9:hover{color:var(--rc-text)}._1an6v8da{border-bottom:1px solid var(--rc-border);background:var(--rc-bg);padding:0 .75rem .5rem}._1an6v8db{max-width:none;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;background-color:#0000;border:none;border-radius:0;margin:0;position:sticky;top:0}._1an6v8db>div{padding-inline-start:0;padding-inline-end:0}._1an6v8dc{background:linear-gradient(180deg, color-mix(in srgb, var(--rc-text) 2%, transparent), transparent);min-height:0;overflow:hidden}._1an6v8dc .rich-editor{flex-direction:column;height:100%;display:flex}._1an6v8dc .rich-editor__content-wrapper{max-width:75ch;overflow-y:auto}._1an6v8dc .rich-editor__content{padding-left:1.5rem;padding-right:1.5rem}._1an6v8dc .rich-editor__placeholder{left:1.5rem}._1an6v8dc .ds1tv42>:first-child{box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;background-color:#0000;border-top:none;border-left:none;border-right:none;border-radius:0;max-width:none;margin:0}._1an6v8dd{scrollbar-gutter:stable both-edges;height:100%;overflow:hidden auto}._1an6v8de{background:var(--rc-bg);min-height:100%;display:flex;overflow:hidden}._1an6v8df{outline:none;flex:1;min-height:460px;padding:1.25rem 1.5rem 1.75rem;overflow:visible}._1an6v8dg{border-top:1px solid var(--rc-border);justify-content:flex-end;align-items:center;padding:.5rem .75rem;display:flex}._1an6v8dh{cursor:pointer;margin:var(--rc-space-md) 0;border-radius:var(--rc-radius-md);border:1px solid var(--rc-border);display:block;position:relative;overflow:clip}._1an6v8di{color:#fff;opacity:0;pointer-events:none;z-index:1;background:#00000040;justify-content:center;align-items:center;transition:opacity .2s;display:flex;position:absolute;top:0;bottom:0;left:0;right:0}._1an6v8dh:hover ._1an6v8di{opacity:1}._1an6v8dj{background:linear-gradient(to bottom, transparent, var(--rc-bg));pointer-events:none;height:4rem;position:absolute;bottom:0;left:0;right:0}._1an6v8dk._1an6v8dk{flex-direction:column;width:700px;max-width:90vw;height:min(800px,100vh - 2rem);max-height:min(800px,100vh - 2rem);display:flex;overflow:hidden}._1an6v8dl{flex:1;min-height:0;padding:0 1.5rem 1.5rem;overflow:hidden auto}._1an6v8dm{pointer-events:none}._1an6v8dn{color:var(--rc-text-secondary);font-size:var(--rc-font-size-md);opacity:.72;margin:0}._1an6v8df .rich-paragraph:first-child,._1an6v8dm .rich-paragraph:first-child{margin-top:0}._1an6v8dm .rich-paragraph:last-child{margin-bottom:0}
2
2
  /*$vite$:1*/
package/dist/slot.d.ts ADDED
@@ -0,0 +1,12 @@
1
+ import { SerializedEditorState } from 'lexical';
2
+ import { ComponentType } from 'react';
3
+ export declare const NESTED_DOC_NODE_KEY: "NestedDoc";
4
+ export interface NestedDocRendererProps {
5
+ contentState: SerializedEditorState;
6
+ }
7
+ declare module '@haklex/rich-editor' {
8
+ interface RendererConfig {
9
+ NestedDoc?: ComponentType<NestedDocRendererProps>;
10
+ }
11
+ }
12
+ //# sourceMappingURL=slot.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slot.d.ts","sourceRoot":"","sources":["../src/slot.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AACrD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAE3C,eAAO,MAAM,mBAAmB,EAAG,WAAoB,CAAC;AAExD,MAAM,WAAW,sBAAsB;IACrC,YAAY,EAAE,qBAAqB,CAAC;CACrC;AAED,OAAO,QAAQ,qBAAqB,CAAC;IACnC,UAAU,cAAc;QACtB,SAAS,CAAC,EAAE,aAAa,CAAC,sBAAsB,CAAC,CAAC;KACnD;CACF"}
package/dist/static.d.ts CHANGED
@@ -1,8 +1,11 @@
1
1
  import { Klass, LexicalNode } from 'lexical';
2
2
  export type { SerializedNestedDocNode } from './NestedDocNode';
3
- export { $createNestedDocNode, $isNestedDocNode, NestedDocNode, } from './NestedDocNode';
3
+ export { $createNestedDocNode, $isNestedDocNode, NestedDocNode } from './NestedDocNode';
4
4
  export { NestedDocRenderer } from './NestedDocRenderer';
5
5
  export { NestedDocStaticDecorator } from './NestedDocStaticDecorator';
6
+ export type { NestedDocRendererProps } from './slot';
7
+ export { NESTED_DOC_NODE_KEY } from './slot';
6
8
  export { NESTED_DOC_BLOCK_TRANSFORMER } from './transformer';
9
+ export { hasRenderableEditorState, truncateEditorState } from './utils';
7
10
  export declare const nestedDocNodes: Array<Klass<LexicalNode>>;
8
11
  //# sourceMappingURL=static.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"static.d.ts","sourceRoot":"","sources":["../src/static.ts"],"names":[],"mappings":"AAAA,OAAO,iBAAiB,CAAA;AAExB,OAAO,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAIjD,YAAY,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAA;AAC9D,OAAO,EACL,oBAAoB,EACpB,gBAAgB,EAChB,aAAa,GACd,MAAM,iBAAiB,CAAA;AACxB,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AACvD,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAA;AACrE,OAAO,EAAE,4BAA4B,EAAE,MAAM,eAAe,CAAA;AAE5D,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,CAAmB,CAAA"}
1
+ {"version":3,"file":"static.d.ts","sourceRoot":"","sources":["../src/static.ts"],"names":[],"mappings":"AAAA,OAAO,iBAAiB,CAAC;AAEzB,OAAO,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAIlD,YAAY,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAC/D,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACxF,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACtE,YAAY,EAAE,sBAAsB,EAAE,MAAM,QAAQ,CAAC;AACrD,OAAO,EAAE,mBAAmB,EAAE,MAAM,QAAQ,CAAC;AAC7C,OAAO,EAAE,4BAA4B,EAAE,MAAM,eAAe,CAAC;AAC7D,OAAO,EAAE,wBAAwB,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAExE,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,CAAmB,CAAC"}
package/dist/static.mjs CHANGED
@@ -1,5 +1,5 @@
1
- import { i as NestedDocNode, l as NestedDocRenderer, n as $createNestedDocNode, o as NestedDocStaticDecorator, r as $isNestedDocNode, t as NESTED_DOC_BLOCK_TRANSFORMER } from "./transformer-BLIhdkPB.js";
1
+ import { c as truncateEditorState, i as NestedDocNode, l as NESTED_DOC_NODE_KEY, n as $createNestedDocNode, o as NestedDocStaticDecorator, r as $isNestedDocNode, s as hasRenderableEditorState, t as NESTED_DOC_BLOCK_TRANSFORMER, u as NestedDocRenderer } from "./transformer-DASOhV_Q.js";
2
2
  //#region src/static.ts
3
3
  var nestedDocNodes = [NestedDocNode];
4
4
  //#endregion
5
- export { $createNestedDocNode, $isNestedDocNode, NESTED_DOC_BLOCK_TRANSFORMER, NestedDocNode, NestedDocRenderer, NestedDocStaticDecorator, nestedDocNodes };
5
+ export { $createNestedDocNode, $isNestedDocNode, NESTED_DOC_BLOCK_TRANSFORMER, NESTED_DOC_NODE_KEY, NestedDocNode, NestedDocRenderer, NestedDocStaticDecorator, hasRenderableEditorState, nestedDocNodes, truncateEditorState };
@@ -2,7 +2,7 @@ import { DecoratorNode } from "lexical";
2
2
  import { Maximize2 } from "lucide-react";
3
3
  import { createElement, useCallback, useMemo } from "react";
4
4
  import { usePortalTheme } from "@haklex/rich-style-token";
5
- import { ColorSchemeProvider, NestedContentRendererProvider, extractTextContent, useColorScheme, useOptionalNestedContentRenderer, usePresentDialog, useVariant } from "@haklex/rich-editor/static";
5
+ import { ColorSchemeProvider, NestedContentRendererProvider, RendererWrapper, extractTextContent, useColorScheme, useOptionalNestedContentRenderer, usePresentDialog, useVariant } from "@haklex/rich-editor/static";
6
6
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
7
7
  import { extractTextContent as extractTextContent$1 } from "@haklex/rich-editor/commands";
8
8
  //#region src/styles.css.ts
@@ -32,6 +32,9 @@ function NestedDocRenderer({ value, variant = "comment" }) {
32
32
  return /* @__PURE__ */ jsx(Fragment, { children: renderNestedContent(value, variant) });
33
33
  }
34
34
  //#endregion
35
+ //#region src/slot.ts
36
+ var NESTED_DOC_NODE_KEY = "NestedDoc";
37
+ //#endregion
35
38
  //#region src/utils.ts
36
39
  function truncateEditorState(state, maxNodes) {
37
40
  const root = state.root;
@@ -59,7 +62,7 @@ function hasRenderableEditorState(state) {
59
62
  //#endregion
60
63
  //#region src/NestedDocStaticDecorator.tsx
61
64
  var PREVIEW_NODE_LIMIT = 6;
62
- function NestedDocStaticDecorator({ contentState }) {
65
+ function DefaultNestedDocStaticRenderer({ contentState }) {
63
66
  const colorScheme = useColorScheme();
64
67
  const { className: portalClassName } = usePortalTheme();
65
68
  const presentDialogFromCtx = usePresentDialog();
@@ -143,6 +146,13 @@ function NestedDocStaticDecorator({ contentState }) {
143
146
  ]
144
147
  });
145
148
  }
149
+ function NestedDocStaticDecorator({ contentState }) {
150
+ return /* @__PURE__ */ jsx(RendererWrapper, {
151
+ defaultRenderer: DefaultNestedDocStaticRenderer,
152
+ props: { contentState },
153
+ rendererKey: NESTED_DOC_NODE_KEY
154
+ });
155
+ }
146
156
  //#endregion
147
157
  //#region \0@oxc-project+runtime@0.127.0/helpers/typeof.js
148
158
  function _typeof(o) {
@@ -266,4 +276,4 @@ var NESTED_DOC_BLOCK_TRANSFORMER = {
266
276
  type: "element"
267
277
  };
268
278
  //#endregion
269
- export { rendererContent as C, previewSurface as S, dialogTitle as _, _defineProperty as a, editorArea as b, truncateEditorState as c, dialogHeader as d, dialogHeaderCloseBtn as f, dialogShell as g, dialogPopup as h, NestedDocNode as i, NestedDocRenderer as l, dialogHeaderRight as m, $createNestedDocNode as n, NestedDocStaticDecorator as o, dialogHeaderLeft as p, $isNestedDocNode as r, hasRenderableEditorState as s, NESTED_DOC_BLOCK_TRANSFORMER as t, dialogFooter as u, editOverlay as v, previewEmpty as x, editOverlayRoot as y };
279
+ export { previewSurface as C, previewEmpty as S, dialogShell as _, _defineProperty as a, editOverlayRoot as b, truncateEditorState as c, dialogFooter as d, dialogHeader as f, dialogPopup as g, dialogHeaderRight as h, NestedDocNode as i, NESTED_DOC_NODE_KEY as l, dialogHeaderLeft as m, $createNestedDocNode as n, NestedDocStaticDecorator as o, dialogHeaderCloseBtn as p, $isNestedDocNode as r, hasRenderableEditorState as s, NESTED_DOC_BLOCK_TRANSFORMER as t, NestedDocRenderer as u, dialogTitle as v, rendererContent as w, editorArea as x, editOverlay as y };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@haklex/rich-ext-nested-doc",
3
- "version": "0.11.0",
3
+ "version": "0.12.0",
4
4
  "description": "Nested document extension for haklex rich editor",
5
5
  "repository": {
6
6
  "type": "git",
@@ -46,9 +46,9 @@
46
46
  "lucide-react": "^1.0.0",
47
47
  "react": ">=19",
48
48
  "react-dom": ">=19",
49
- "@haklex/rich-editor": "0.11.0",
50
- "@haklex/rich-editor-ui": "0.11.0",
51
- "@haklex/rich-style-token": "0.11.0"
49
+ "@haklex/rich-editor": "0.12.0",
50
+ "@haklex/rich-editor-ui": "0.12.0",
51
+ "@haklex/rich-style-token": "0.12.0"
52
52
  },
53
53
  "publishConfig": {
54
54
  "access": "public"