@brainfish-ai/editor 0.16.0 → 0.16.2

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.
Files changed (28) hide show
  1. package/dist/editor/internal/codeMirrorTheme.d.ts +14 -0
  2. package/dist/{index-Pbdt_JAa.js → index-B4R1rT37.js} +2 -2
  3. package/dist/{index-DaEJooLf.js → index-BBMUH80b.js} +2 -2
  4. package/dist/{index-CkC8SVWG.js → index-BIHNHMyg.js} +2 -2
  5. package/dist/{index-B3Tj0aeA.js → index-BJKQPlcf.js} +2 -2
  6. package/dist/{index-BoGCS5K8.js → index-BQa2bres.js} +2 -2
  7. package/dist/{index-DmshtaDi.js → index-C-bL3Cy9.js} +3 -3
  8. package/dist/{index-mjlRw27L.js → index-CFr33LuW.js} +2 -2
  9. package/dist/{index-DcHkonsK.js → index-COD_xliD.js} +4 -4
  10. package/dist/{index-BgzDJCPK.js → index-CgzQ1jj0.js} +2 -2
  11. package/dist/{index-DLaMyc-O.js → index-CsaeJbB5.js} +2 -2
  12. package/dist/{index-D1lvHOEq.js → index-CyTfufcP.js} +2 -2
  13. package/dist/{index-DnIbufdg.js → index-D7noxe1h.js} +3 -3
  14. package/dist/{index-o1kUBM0B.js → index-DJWghCuI.js} +69 -31
  15. package/dist/{index-DO4yrIc-.js → index-Dk6UNQWp.js} +4 -4
  16. package/dist/{index-DPERyOhC.js → index-DnbjsrWF.js} +2 -2
  17. package/dist/{index-DC7kmwxC.js → index-DnpXm_wT.js} +4 -4
  18. package/dist/{index-dd3JkZcJ.js → index-DsUx-yKw.js} +2 -2
  19. package/dist/{index-yGP3q8Ph.js → index-Dv14TLjz.js} +3 -3
  20. package/dist/{index-3kIhnnQF.js → index-DveiglG-.js} +3 -3
  21. package/dist/{index-DQl-jPCB.js → index-DztBKea2.js} +2 -2
  22. package/dist/{index-ugK_d0Eb.js → index-LyNcRvuh.js} +2 -2
  23. package/dist/{index-FnbDXzus.js → index-dKic9ff-.js} +1 -1
  24. package/dist/{index-TzlF4I2U.js → index-mEwvGwcX.js} +2 -2
  25. package/dist/{index-D2xHwKn1.js → index-paWgasj8.js} +3 -3
  26. package/dist/index.js +1 -1
  27. package/dist/styles.css +1 -1
  28. package/package.json +1 -1
@@ -0,0 +1,14 @@
1
+ import { MutableRefObject } from 'react';
2
+ import { Extension } from '@codemirror/state';
3
+ import { ViewPlugin } from '@codemirror/view';
4
+ /**
5
+ * Crepe bakes the CodeMirror theme when the editor is created. `html.dark` often
6
+ * lands after that (Storybook theme decorator, platform class toggle), so the
7
+ * crepe CSS variables go dark while CodeMirror stays on the light theme.
8
+ * Compartment lets existing and later-mounted code blocks follow the live theme.
9
+ */
10
+ export declare const codeMirrorThemeConfig: (themeRef: MutableRefObject<"light" | "dark">) => {
11
+ theme: Extension;
12
+ extensions: ViewPlugin<{}, undefined>[];
13
+ };
14
+ export declare const syncCodeMirrorTheme: (root: ParentNode, theme: "light" | "dark") => void;
@@ -1,5 +1,5 @@
1
- import { L as LRParser } from './index-FnbDXzus.js';
2
- import { E as styleTags, F as tags, A as LanguageSupport, L as LRLanguage, B as indentNodeProp, C as continuedIndent, D as foldNodeProp, M as foldInside } from './index-o1kUBM0B.js';
1
+ import { L as LRParser } from './index-dKic9ff-.js';
2
+ import { E as styleTags, F as tags, A as LanguageSupport, L as LRLanguage, B as indentNodeProp, C as continuedIndent, D as foldNodeProp, M as foldInside } from './index-DJWghCuI.js';
3
3
 
4
4
  const jsonHighlighting = styleTags({
5
5
  String: tags.string,
@@ -1,5 +1,5 @@
1
- import { L as LRParser } from './index-FnbDXzus.js';
2
- import { E as styleTags, F as tags, A as LanguageSupport, L as LRLanguage, B as indentNodeProp, J as flatIndent, C as continuedIndent, K as delimitedIndent, D as foldNodeProp, M as foldInside } from './index-o1kUBM0B.js';
1
+ import { L as LRParser } from './index-dKic9ff-.js';
2
+ import { E as styleTags, F as tags, A as LanguageSupport, L as LRLanguage, B as indentNodeProp, J as flatIndent, C as continuedIndent, K as delimitedIndent, D as foldNodeProp, M as foldInside } from './index-DJWghCuI.js';
3
3
 
4
4
  const javaHighlighting = styleTags({
5
5
  null: tags.null,
@@ -1,5 +1,5 @@
1
- import { L as LRParser, E as ExternalTokenizer, a as LocalTokenGroup, C as ContextTracker } from './index-FnbDXzus.js';
2
- import { E as styleTags, F as tags, Q as EditorView, I as syntaxTree, R as EditorSelection, A as LanguageSupport, G as ifNotIn, H as completeFromList, L as LRLanguage, B as indentNodeProp, J as flatIndent, C as continuedIndent, K as delimitedIndent, D as foldNodeProp, M as foldInside, ab as sublanguageProp, N as snippetCompletion, a3 as defineLanguageFacet, O as NodeWeakMap, P as IterMode } from './index-o1kUBM0B.js';
1
+ import { L as LRParser, E as ExternalTokenizer, a as LocalTokenGroup, C as ContextTracker } from './index-dKic9ff-.js';
2
+ import { E as styleTags, F as tags, Q as EditorView, I as syntaxTree, R as EditorSelection, A as LanguageSupport, G as ifNotIn, H as completeFromList, L as LRLanguage, B as indentNodeProp, J as flatIndent, C as continuedIndent, K as delimitedIndent, D as foldNodeProp, M as foldInside, ab as sublanguageProp, N as snippetCompletion, a3 as defineLanguageFacet, O as NodeWeakMap, P as IterMode } from './index-DJWghCuI.js';
3
3
 
4
4
  // This file was generated by lezer-generator. You probably shouldn't edit it.
5
5
  const noSemi = 316,
@@ -1,5 +1,5 @@
1
- import { A as LanguageSupport, L as LRLanguage, B as indentNodeProp, K as delimitedIndent, D as foldNodeProp, M as foldInside, E as styleTags, F as tags } from './index-o1kUBM0B.js';
2
- import { L as LRParser } from './index-FnbDXzus.js';
1
+ import { A as LanguageSupport, L as LRLanguage, B as indentNodeProp, K as delimitedIndent, D as foldNodeProp, M as foldInside, E as styleTags, F as tags } from './index-DJWghCuI.js';
2
+ import { L as LRParser } from './index-dKic9ff-.js';
3
3
 
4
4
  // This file was generated by lezer-generator. You probably shouldn't edit it.
5
5
  const spec_Keyword = {__proto__:null,anyref:34, dataref:34, eqref:34, externref:34, i31ref:34, funcref:34, i8:34, i16:34, i32:34, i64:34, f32:34, f64:34};
@@ -1,5 +1,5 @@
1
- import { L as LRParser, E as ExternalTokenizer, a as LocalTokenGroup, C as ContextTracker } from './index-FnbDXzus.js';
2
- import { E as styleTags, F as tags, A as LanguageSupport, G as ifNotIn, H as completeFromList, L as LRLanguage, B as indentNodeProp, J as flatIndent, C as continuedIndent, K as delimitedIndent, D as foldNodeProp, M as foldInside, I as syntaxTree, N as snippetCompletion, O as NodeWeakMap, P as IterMode } from './index-o1kUBM0B.js';
1
+ import { L as LRParser, E as ExternalTokenizer, a as LocalTokenGroup, C as ContextTracker } from './index-dKic9ff-.js';
2
+ import { E as styleTags, F as tags, A as LanguageSupport, G as ifNotIn, H as completeFromList, L as LRLanguage, B as indentNodeProp, J as flatIndent, C as continuedIndent, K as delimitedIndent, D as foldNodeProp, M as foldInside, I as syntaxTree, N as snippetCompletion, O as NodeWeakMap, P as IterMode } from './index-DJWghCuI.js';
3
3
 
4
4
  // This file was generated by lezer-generator. You probably shouldn't edit it.
5
5
  const insertedSemi = 177,
@@ -1,6 +1,6 @@
1
- import { A as LanguageSupport, L as LRLanguage, B as indentNodeProp, C as continuedIndent, D as foldNodeProp, M as foldInside, E as styleTags, F as tags } from './index-o1kUBM0B.js';
2
- import { defineCSSCompletionSource } from './index-TzlF4I2U.js';
3
- import { L as LRParser, E as ExternalTokenizer } from './index-FnbDXzus.js';
1
+ import { A as LanguageSupport, L as LRLanguage, B as indentNodeProp, C as continuedIndent, D as foldNodeProp, M as foldInside, E as styleTags, F as tags } from './index-DJWghCuI.js';
2
+ import { defineCSSCompletionSource } from './index-mEwvGwcX.js';
3
+ import { L as LRParser, E as ExternalTokenizer } from './index-dKic9ff-.js';
4
4
 
5
5
  // This file was generated by lezer-generator. You probably shouldn't edit it.
6
6
  const descendantOp = 110,
@@ -1,5 +1,5 @@
1
- import { L as LRParser, E as ExternalTokenizer, C as ContextTracker } from './index-FnbDXzus.js';
2
- import { E as styleTags, F as tags, Q as EditorView, I as syntaxTree, R as EditorSelection, A as LanguageSupport, L as LRLanguage, B as indentNodeProp, D as foldNodeProp, a9 as bracketMatchingHandle } from './index-o1kUBM0B.js';
1
+ import { L as LRParser, E as ExternalTokenizer, C as ContextTracker } from './index-dKic9ff-.js';
2
+ import { E as styleTags, F as tags, Q as EditorView, I as syntaxTree, R as EditorSelection, A as LanguageSupport, L as LRLanguage, B as indentNodeProp, D as foldNodeProp, a9 as bracketMatchingHandle } from './index-DJWghCuI.js';
3
3
 
4
4
  // This file was generated by lezer-generator. You probably shouldn't edit it.
5
5
  const StartTag = 1,
@@ -1,7 +1,7 @@
1
- import { L as LRLanguage, A as LanguageSupport, S as parseMixed, E as styleTags, F as tags } from './index-o1kUBM0B.js';
2
- import { html } from './index-DO4yrIc-.js';
3
- import { javascriptLanguage } from './index-CkC8SVWG.js';
4
- import { L as LRParser, a as LocalTokenGroup } from './index-FnbDXzus.js';
1
+ import { L as LRLanguage, A as LanguageSupport, S as parseMixed, E as styleTags, F as tags } from './index-DJWghCuI.js';
2
+ import { html } from './index-Dk6UNQWp.js';
3
+ import { javascriptLanguage } from './index-BIHNHMyg.js';
4
+ import { L as LRParser, a as LocalTokenGroup } from './index-dKic9ff-.js';
5
5
 
6
6
  // This file was generated by lezer-generator. You probably shouldn't edit it.
7
7
  const parser = /*@__PURE__*/LRParser.deserialize({
@@ -1,5 +1,5 @@
1
- import { u as useInstance, e as editorViewCtx, r as reviewSuggestionsDecoKey, o as orderReviewSuggestionsByResolvedRanges, g as getNextReviewSuggestionId, p as parserCtx, a as parseProposedMd, c as createApplyReviewSuggestionTransaction, i as isMilkdownContextNotFoundError, b as createDismissReviewSuggestionTransaction } from './index-o1kUBM0B.js';
2
- export { d as applyAllReviewSuggestions, f as buildReviewSuggestionsPlugin, h as createInlineSuggestionElement, j as createReviewSuggestionBulkActions, k as getActiveReviewSuggestions, l as rejectAllReviewSuggestions, m as resolveReviewSuggestionRanges, n as reviewSuggestionApplyMeta, q as reviewSuggestionDismissMeta, s as reviewSuggestionsDecorationPlugin, t as reviewSuggestionsSelectionMeta, v as reviewSuggestionsUpdateMeta, w as useDefaultReviewSuggestionSelection, x as useReviewSuggestionBulkActionsRef, y as useReviewSuggestionSelectionSync, z as useReviewSuggestionsLoader } from './index-o1kUBM0B.js';
1
+ import { u as useInstance, e as editorViewCtx, r as reviewSuggestionsDecoKey, o as orderReviewSuggestionsByResolvedRanges, g as getNextReviewSuggestionId, p as parserCtx, a as parseProposedMd, c as createApplyReviewSuggestionTransaction, i as isMilkdownContextNotFoundError, b as createDismissReviewSuggestionTransaction } from './index-DJWghCuI.js';
2
+ export { d as applyAllReviewSuggestions, f as buildReviewSuggestionsPlugin, h as createInlineSuggestionElement, j as createReviewSuggestionBulkActions, k as getActiveReviewSuggestions, l as rejectAllReviewSuggestions, m as resolveReviewSuggestionRanges, n as reviewSuggestionApplyMeta, q as reviewSuggestionDismissMeta, s as reviewSuggestionsDecorationPlugin, t as reviewSuggestionsSelectionMeta, v as reviewSuggestionsUpdateMeta, w as useDefaultReviewSuggestionSelection, x as useReviewSuggestionBulkActionsRef, y as useReviewSuggestionSelectionSync, z as useReviewSuggestionsLoader } from './index-DJWghCuI.js';
3
3
  import { jsx, jsxs } from 'react/jsx-runtime';
4
4
  import * as React from 'react';
5
5
  import { createContext, useRef, useLayoutEffect, useEffect, useContext, useId, useCallback, useMemo, Fragment, createElement, useInsertionEffect, forwardRef, Component } from 'react';
@@ -1,5 +1,5 @@
1
- import { L as LRParser, E as ExternalTokenizer } from './index-FnbDXzus.js';
2
- import { E as styleTags, F as tags, A as LanguageSupport, L as LRLanguage, B as indentNodeProp, J as flatIndent, C as continuedIndent, K as delimitedIndent, D as foldNodeProp, M as foldInside } from './index-o1kUBM0B.js';
1
+ import { L as LRParser, E as ExternalTokenizer } from './index-dKic9ff-.js';
2
+ import { E as styleTags, F as tags, A as LanguageSupport, L as LRLanguage, B as indentNodeProp, J as flatIndent, C as continuedIndent, K as delimitedIndent, D as foldNodeProp, M as foldInside } from './index-DJWghCuI.js';
3
3
 
4
4
  // This file was generated by lezer-generator. You probably shouldn't edit it.
5
5
  const RawString = 1,
@@ -1,5 +1,5 @@
1
- import { L as LRParser, E as ExternalTokenizer } from './index-FnbDXzus.js';
2
- import { E as styleTags, F as tags, A as LanguageSupport, L as LRLanguage, B as indentNodeProp, C as continuedIndent, D as foldNodeProp, M as foldInside } from './index-o1kUBM0B.js';
1
+ import { L as LRParser, E as ExternalTokenizer } from './index-dKic9ff-.js';
2
+ import { E as styleTags, F as tags, A as LanguageSupport, L as LRLanguage, B as indentNodeProp, C as continuedIndent, D as foldNodeProp, M as foldInside } from './index-DJWghCuI.js';
3
3
 
4
4
  // This file was generated by lezer-generator. You probably shouldn't edit it.
5
5
  const closureParamDelim = 1,
@@ -1,6 +1,6 @@
1
- import { L as LRParser, E as ExternalTokenizer, C as ContextTracker } from './index-FnbDXzus.js';
2
- import { E as styleTags, F as tags, A as LanguageSupport, L as LRLanguage, D as foldNodeProp, M as foldInside, B as indentNodeProp, C as continuedIndent } from './index-o1kUBM0B.js';
3
- import { defineCSSCompletionSource } from './index-TzlF4I2U.js';
1
+ import { L as LRParser, E as ExternalTokenizer, C as ContextTracker } from './index-dKic9ff-.js';
2
+ import { E as styleTags, F as tags, A as LanguageSupport, L as LRLanguage, D as foldNodeProp, M as foldInside, B as indentNodeProp, C as continuedIndent } from './index-DJWghCuI.js';
3
+ import { defineCSSCompletionSource } from './index-mEwvGwcX.js';
4
4
 
5
5
  // This file was generated by lezer-generator. You probably shouldn't edit it.
6
6
  const indent = 168,
@@ -43135,7 +43135,11 @@ const getThemeFromHtml = () => {
43135
43135
  return getSystemTheme();
43136
43136
  };
43137
43137
  const useEditorTheme = (theme = "system") => {
43138
- const [resolvedTheme, setResolvedTheme] = useState(theme === "system" ? "light" : theme);
43138
+ const [resolvedTheme, setResolvedTheme] = useState(() => {
43139
+ if (theme !== "system") return theme;
43140
+ if (typeof document === "undefined") return "light";
43141
+ return getThemeFromHtml();
43142
+ });
43139
43143
  useEffect(() => {
43140
43144
  if (theme !== "system") {
43141
43145
  setResolvedTheme(theme);
@@ -70109,7 +70113,7 @@ function legacy(parser) {
70109
70113
  return new LanguageSupport(StreamLanguage.define(parser));
70110
70114
  }
70111
70115
  function sql(dialectName) {
70112
- return import('./index-DPERyOhC.js').then(m => m.sql({ dialect: m[dialectName] }));
70116
+ return import('./index-DnbjsrWF.js').then(m => m.sql({ dialect: m[dialectName] }));
70113
70117
  }
70114
70118
  /**
70115
70119
  An array of language descriptions for known language packages.
@@ -70120,7 +70124,7 @@ const languages = [
70120
70124
  name: "C",
70121
70125
  extensions: ["c", "h", "ino"],
70122
70126
  load() {
70123
- return import('./index-DLaMyc-O.js').then(m => m.cpp());
70127
+ return import('./index-CsaeJbB5.js').then(m => m.cpp());
70124
70128
  }
70125
70129
  }),
70126
70130
  /*@__PURE__*/LanguageDescription.of({
@@ -70128,7 +70132,7 @@ const languages = [
70128
70132
  alias: ["cpp"],
70129
70133
  extensions: ["cpp", "c++", "cc", "cxx", "hpp", "h++", "hh", "hxx"],
70130
70134
  load() {
70131
- return import('./index-DLaMyc-O.js').then(m => m.cpp());
70135
+ return import('./index-CsaeJbB5.js').then(m => m.cpp());
70132
70136
  }
70133
70137
  }),
70134
70138
  /*@__PURE__*/LanguageDescription.of({
@@ -70141,14 +70145,14 @@ const languages = [
70141
70145
  name: "CSS",
70142
70146
  extensions: ["css"],
70143
70147
  load() {
70144
- return import('./index-TzlF4I2U.js').then(m => m.css());
70148
+ return import('./index-mEwvGwcX.js').then(m => m.css());
70145
70149
  }
70146
70150
  }),
70147
70151
  /*@__PURE__*/LanguageDescription.of({
70148
70152
  name: "Go",
70149
70153
  extensions: ["go"],
70150
70154
  load() {
70151
- return import('./index-BoGCS5K8.js').then(m => m.go());
70155
+ return import('./index-BQa2bres.js').then(m => m.go());
70152
70156
  }
70153
70157
  }),
70154
70158
  /*@__PURE__*/LanguageDescription.of({
@@ -70156,14 +70160,14 @@ const languages = [
70156
70160
  alias: ["xhtml"],
70157
70161
  extensions: ["html", "htm", "handlebars", "hbs"],
70158
70162
  load() {
70159
- return import('./index-DO4yrIc-.js').then(m => m.html());
70163
+ return import('./index-Dk6UNQWp.js').then(m => m.html());
70160
70164
  }
70161
70165
  }),
70162
70166
  /*@__PURE__*/LanguageDescription.of({
70163
70167
  name: "Java",
70164
70168
  extensions: ["java"],
70165
70169
  load() {
70166
- return import('./index-DaEJooLf.js').then(m => m.java());
70170
+ return import('./index-BBMUH80b.js').then(m => m.java());
70167
70171
  }
70168
70172
  }),
70169
70173
  /*@__PURE__*/LanguageDescription.of({
@@ -70171,14 +70175,14 @@ const languages = [
70171
70175
  alias: ["ecmascript", "js", "node"],
70172
70176
  extensions: ["js", "mjs", "cjs"],
70173
70177
  load() {
70174
- return import('./index-CkC8SVWG.js').then(m => m.javascript());
70178
+ return import('./index-BIHNHMyg.js').then(m => m.javascript());
70175
70179
  }
70176
70180
  }),
70177
70181
  /*@__PURE__*/LanguageDescription.of({
70178
70182
  name: "Jinja",
70179
70183
  extensions: ["j2", "jinja", "jinja2"],
70180
70184
  load() {
70181
- return import('./index-D2xHwKn1.js').then(m => m.jinja());
70185
+ return import('./index-paWgasj8.js').then(m => m.jinja());
70182
70186
  }
70183
70187
  }),
70184
70188
  /*@__PURE__*/LanguageDescription.of({
@@ -70186,28 +70190,28 @@ const languages = [
70186
70190
  alias: ["json5"],
70187
70191
  extensions: ["json", "map"],
70188
70192
  load() {
70189
- return import('./index-Pbdt_JAa.js').then(m => m.json());
70193
+ return import('./index-B4R1rT37.js').then(m => m.json());
70190
70194
  }
70191
70195
  }),
70192
70196
  /*@__PURE__*/LanguageDescription.of({
70193
70197
  name: "JSX",
70194
70198
  extensions: ["jsx"],
70195
70199
  load() {
70196
- return import('./index-CkC8SVWG.js').then(m => m.javascript({ jsx: true }));
70200
+ return import('./index-BIHNHMyg.js').then(m => m.javascript({ jsx: true }));
70197
70201
  }
70198
70202
  }),
70199
70203
  /*@__PURE__*/LanguageDescription.of({
70200
70204
  name: "LESS",
70201
70205
  extensions: ["less"],
70202
70206
  load() {
70203
- return import('./index-DmshtaDi.js').then(m => m.less());
70207
+ return import('./index-C-bL3Cy9.js').then(m => m.less());
70204
70208
  }
70205
70209
  }),
70206
70210
  /*@__PURE__*/LanguageDescription.of({
70207
70211
  name: "Liquid",
70208
70212
  extensions: ["liquid"],
70209
70213
  load() {
70210
- return import('./index-yGP3q8Ph.js').then(m => m.liquid());
70214
+ return import('./index-Dv14TLjz.js').then(m => m.liquid());
70211
70215
  }
70212
70216
  }),
70213
70217
  /*@__PURE__*/LanguageDescription.of({
@@ -70218,7 +70222,7 @@ const languages = [
70218
70222
  name: "Markdown",
70219
70223
  extensions: ["md", "markdown", "mkd"],
70220
70224
  load() {
70221
- return import('./index-ugK_d0Eb.js').then(m => m.markdown());
70225
+ return import('./index-LyNcRvuh.js').then(m => m.markdown());
70222
70226
  }
70223
70227
  }),
70224
70228
  /*@__PURE__*/LanguageDescription.of({
@@ -70233,7 +70237,7 @@ const languages = [
70233
70237
  name: "PHP",
70234
70238
  extensions: ["php", "php3", "php4", "php5", "php7", "phtml"],
70235
70239
  load() {
70236
- return import('./index-3kIhnnQF.js').then(m => m.php());
70240
+ return import('./index-DveiglG-.js').then(m => m.php());
70237
70241
  }
70238
70242
  }),
70239
70243
  /*@__PURE__*/LanguageDescription.of({
@@ -70250,28 +70254,28 @@ const languages = [
70250
70254
  extensions: ["BUILD", "bzl", "py", "pyw"],
70251
70255
  filename: /^(BUCK|BUILD)$/,
70252
70256
  load() {
70253
- return import('./index-dd3JkZcJ.js').then(m => m.python());
70257
+ return import('./index-DsUx-yKw.js').then(m => m.python());
70254
70258
  }
70255
70259
  }),
70256
70260
  /*@__PURE__*/LanguageDescription.of({
70257
70261
  name: "Rust",
70258
70262
  extensions: ["rs"],
70259
70263
  load() {
70260
- return import('./index-D1lvHOEq.js').then(m => m.rust());
70264
+ return import('./index-CyTfufcP.js').then(m => m.rust());
70261
70265
  }
70262
70266
  }),
70263
70267
  /*@__PURE__*/LanguageDescription.of({
70264
70268
  name: "Sass",
70265
70269
  extensions: ["sass"],
70266
70270
  load() {
70267
- return import('./index-DnIbufdg.js').then(m => m.sass({ indented: true }));
70271
+ return import('./index-D7noxe1h.js').then(m => m.sass({ indented: true }));
70268
70272
  }
70269
70273
  }),
70270
70274
  /*@__PURE__*/LanguageDescription.of({
70271
70275
  name: "SCSS",
70272
70276
  extensions: ["scss"],
70273
70277
  load() {
70274
- return import('./index-DnIbufdg.js').then(m => m.sass());
70278
+ return import('./index-D7noxe1h.js').then(m => m.sass());
70275
70279
  }
70276
70280
  }),
70277
70281
  /*@__PURE__*/LanguageDescription.of({
@@ -70287,7 +70291,7 @@ const languages = [
70287
70291
  name: "TSX",
70288
70292
  extensions: ["tsx"],
70289
70293
  load() {
70290
- return import('./index-CkC8SVWG.js').then(m => m.javascript({ jsx: true, typescript: true }));
70294
+ return import('./index-BIHNHMyg.js').then(m => m.javascript({ jsx: true, typescript: true }));
70291
70295
  }
70292
70296
  }),
70293
70297
  /*@__PURE__*/LanguageDescription.of({
@@ -70295,14 +70299,14 @@ const languages = [
70295
70299
  alias: ["ts"],
70296
70300
  extensions: ["ts", "mts", "cts"],
70297
70301
  load() {
70298
- return import('./index-CkC8SVWG.js').then(m => m.javascript({ typescript: true }));
70302
+ return import('./index-BIHNHMyg.js').then(m => m.javascript({ typescript: true }));
70299
70303
  }
70300
70304
  }),
70301
70305
  /*@__PURE__*/LanguageDescription.of({
70302
70306
  name: "WebAssembly",
70303
70307
  extensions: ["wat", "wast"],
70304
70308
  load() {
70305
- return import('./index-B3Tj0aeA.js').then(m => m.wast());
70309
+ return import('./index-BJKQPlcf.js').then(m => m.wast());
70306
70310
  }
70307
70311
  }),
70308
70312
  /*@__PURE__*/LanguageDescription.of({
@@ -70310,7 +70314,7 @@ const languages = [
70310
70314
  alias: ["rss", "wsdl", "xsd"],
70311
70315
  extensions: ["xml", "xsl", "xsd", "svg"],
70312
70316
  load() {
70313
- return import('./index-mjlRw27L.js').then(m => m.xml());
70317
+ return import('./index-CFr33LuW.js').then(m => m.xml());
70314
70318
  }
70315
70319
  }),
70316
70320
  /*@__PURE__*/LanguageDescription.of({
@@ -70318,7 +70322,7 @@ const languages = [
70318
70322
  alias: ["yml"],
70319
70323
  extensions: ["yaml", "yml"],
70320
70324
  load() {
70321
- return import('./index-DQl-jPCB.js').then(m => m.yaml());
70325
+ return import('./index-DztBKea2.js').then(m => m.yaml());
70322
70326
  }
70323
70327
  }),
70324
70328
  // Legacy modes ported from CodeMirror 5
@@ -71107,13 +71111,13 @@ const languages = [
71107
71111
  name: "Vue",
71108
71112
  extensions: ["vue"],
71109
71113
  load() {
71110
- return import('./index-DcHkonsK.js').then(m => m.vue());
71114
+ return import('./index-COD_xliD.js').then(m => m.vue());
71111
71115
  }
71112
71116
  }),
71113
71117
  /*@__PURE__*/LanguageDescription.of({
71114
71118
  name: "Angular Template",
71115
71119
  load() {
71116
- return import('./index-DC7kmwxC.js').then(m => m.angular());
71120
+ return import('./index-DnpXm_wT.js').then(m => m.angular());
71117
71121
  }
71118
71122
  })
71119
71123
  ];
@@ -110760,6 +110764,38 @@ const createVitesseLightTheme = (options = {}) => {
110760
110764
  };
110761
110765
  const vitesseLight = createVitesseLightTheme();
110762
110766
 
110767
+ const themeCompartment = new Compartment();
110768
+ const appliedTheme = /* @__PURE__ */ new WeakMap();
110769
+ const themeExtension = (theme) => theme === "dark" ? oneDark : vitesseLight;
110770
+ const applyTheme = (view, theme) => {
110771
+ if (appliedTheme.get(view) === theme) return;
110772
+ appliedTheme.set(view, theme);
110773
+ view.dispatch({ effects: themeCompartment.reconfigure(themeExtension(theme)) });
110774
+ };
110775
+ const codeMirrorThemeConfig = (themeRef) => ({
110776
+ theme: themeCompartment.of(themeExtension(themeRef.current)),
110777
+ extensions: [
110778
+ ViewPlugin.fromClass(
110779
+ class {
110780
+ constructor(view) {
110781
+ queueMicrotask(() => {
110782
+ if (!view.dom.isConnected) return;
110783
+ applyTheme(view, themeRef.current);
110784
+ });
110785
+ }
110786
+ }
110787
+ )
110788
+ ]
110789
+ });
110790
+ const syncCodeMirrorTheme = (root, theme) => {
110791
+ root.querySelectorAll(".cm-editor").forEach((node) => {
110792
+ if (!(node instanceof HTMLElement)) return;
110793
+ const view = EditorView.findFromDOM(node);
110794
+ if (!view) return;
110795
+ applyTheme(view, theme);
110796
+ });
110797
+ };
110798
+
110763
110799
  var DateType = /* @__PURE__ */ ((DateType2) => {
110764
110800
  DateType2["DATE"] = "date";
110765
110801
  DateType2["TIME"] = "time";
@@ -117237,9 +117273,7 @@ function buildCrepe({
117237
117273
  }
117238
117274
  }
117239
117275
  },
117240
- [Crepe.Feature.CodeMirror]: {
117241
- theme: resolvedThemeRef.current === "dark" ? oneDark : vitesseLight
117242
- },
117276
+ [Crepe.Feature.CodeMirror]: codeMirrorThemeConfig(resolvedThemeRef),
117243
117277
  ...placeholder ? { [Crepe.Feature.Placeholder]: { text: placeholder, mode: "doc" } } : {}
117244
117278
  }
117245
117279
  });
@@ -124285,7 +124319,7 @@ function useSlashMenuPortal(container) {
124285
124319
  }
124286
124320
 
124287
124321
  const ReviewSuggestionsViewport = lazy(
124288
- () => import('./index-BgzDJCPK.js').then((module) => ({ default: module.ReviewSuggestionsViewport }))
124322
+ () => import('./index-CgzQ1jj0.js').then((module) => ({ default: module.ReviewSuggestionsViewport }))
124289
124323
  );
124290
124324
  const MilkdownEditorInner = ({
124291
124325
  readOnly = false,
@@ -124482,6 +124516,10 @@ const MilkdownEditorInner = ({
124482
124516
  [editorReadyRef]
124483
124517
  );
124484
124518
  useSlashMenuPortal(editorHost);
124519
+ useEffect(() => {
124520
+ if (!editorHost) return;
124521
+ syncCodeMirrorTheme(editorHost, resolvedTheme);
124522
+ }, [editorHost, resolvedTheme]);
124485
124523
  if (!reviewSuggestionsLoader && !hasReviewSuggestions) {
124486
124524
  return /* @__PURE__ */ jsx("div", { ref: containerRef, className, "data-testid": "brainfish-editor", children: /* @__PURE__ */ jsx(Milkdown, {}) });
124487
124525
  }
@@ -1,7 +1,7 @@
1
- import { L as LRParser, E as ExternalTokenizer, C as ContextTracker } from './index-FnbDXzus.js';
2
- import { S as parseMixed, E as styleTags, F as tags, Q as EditorView, I as syntaxTree, R as EditorSelection, A as LanguageSupport, L as LRLanguage, B as indentNodeProp, D as foldNodeProp, a9 as bracketMatchingHandle } from './index-o1kUBM0B.js';
3
- import { cssLanguage, css } from './index-TzlF4I2U.js';
4
- import { typescriptLanguage, jsxLanguage, tsxLanguage, javascriptLanguage, javascript } from './index-CkC8SVWG.js';
1
+ import { L as LRParser, E as ExternalTokenizer, C as ContextTracker } from './index-dKic9ff-.js';
2
+ import { S as parseMixed, E as styleTags, F as tags, Q as EditorView, I as syntaxTree, R as EditorSelection, A as LanguageSupport, L as LRLanguage, B as indentNodeProp, D as foldNodeProp, a9 as bracketMatchingHandle } from './index-DJWghCuI.js';
3
+ import { cssLanguage, css } from './index-mEwvGwcX.js';
4
+ import { typescriptLanguage, jsxLanguage, tsxLanguage, javascriptLanguage, javascript } from './index-BIHNHMyg.js';
5
5
 
6
6
  // This file was generated by lezer-generator. You probably shouldn't edit it.
7
7
  const scriptText = 55,
@@ -1,5 +1,5 @@
1
- import { L as LRLanguage, A as LanguageSupport, B as indentNodeProp, C as continuedIndent, D as foldNodeProp, E as styleTags, F as tags, G as ifNotIn, H as completeFromList, I as syntaxTree } from './index-o1kUBM0B.js';
2
- import { E as ExternalTokenizer, L as LRParser } from './index-FnbDXzus.js';
1
+ import { L as LRLanguage, A as LanguageSupport, B as indentNodeProp, C as continuedIndent, D as foldNodeProp, E as styleTags, F as tags, G as ifNotIn, H as completeFromList, I as syntaxTree } from './index-DJWghCuI.js';
2
+ import { E as ExternalTokenizer, L as LRParser } from './index-dKic9ff-.js';
3
3
 
4
4
  // This file was generated by lezer-generator. You probably shouldn't edit it.
5
5
  const whitespace = 36,
@@ -1,7 +1,7 @@
1
- import { L as LRLanguage, A as LanguageSupport, S as parseMixed, E as styleTags, F as tags } from './index-o1kUBM0B.js';
2
- import { html } from './index-DO4yrIc-.js';
3
- import { javascriptLanguage } from './index-CkC8SVWG.js';
4
- import { L as LRParser, E as ExternalTokenizer } from './index-FnbDXzus.js';
1
+ import { L as LRLanguage, A as LanguageSupport, S as parseMixed, E as styleTags, F as tags } from './index-DJWghCuI.js';
2
+ import { html } from './index-Dk6UNQWp.js';
3
+ import { javascriptLanguage } from './index-BIHNHMyg.js';
4
+ import { L as LRParser, E as ExternalTokenizer } from './index-dKic9ff-.js';
5
5
 
6
6
  // This file was generated by lezer-generator. You probably shouldn't edit it.
7
7
  const Text = 1,
@@ -1,5 +1,5 @@
1
- import { L as LRParser, E as ExternalTokenizer, C as ContextTracker } from './index-FnbDXzus.js';
2
- import { E as styleTags, F as tags, G as ifNotIn, I as syntaxTree, A as LanguageSupport, L as LRLanguage, B as indentNodeProp, K as delimitedIndent, D as foldNodeProp, M as foldInside, O as NodeWeakMap, P as IterMode, H as completeFromList, N as snippetCompletion } from './index-o1kUBM0B.js';
1
+ import { L as LRParser, E as ExternalTokenizer, C as ContextTracker } from './index-dKic9ff-.js';
2
+ import { E as styleTags, F as tags, G as ifNotIn, I as syntaxTree, A as LanguageSupport, L as LRLanguage, B as indentNodeProp, K as delimitedIndent, D as foldNodeProp, M as foldInside, O as NodeWeakMap, P as IterMode, H as completeFromList, N as snippetCompletion } from './index-DJWghCuI.js';
3
3
 
4
4
  // This file was generated by lezer-generator. You probably shouldn't edit it.
5
5
  const printKeyword = 1,
@@ -1,6 +1,6 @@
1
- import { Q as EditorView, R as EditorSelection, A as LanguageSupport, S as parseMixed, I as syntaxTree, L as LRLanguage, E as styleTags, F as tags, B as indentNodeProp, K as delimitedIndent, D as foldNodeProp } from './index-o1kUBM0B.js';
2
- import { html } from './index-DO4yrIc-.js';
3
- import { L as LRParser, E as ExternalTokenizer } from './index-FnbDXzus.js';
1
+ import { Q as EditorView, R as EditorSelection, A as LanguageSupport, S as parseMixed, I as syntaxTree, L as LRLanguage, E as styleTags, F as tags, B as indentNodeProp, K as delimitedIndent, D as foldNodeProp } from './index-DJWghCuI.js';
2
+ import { html } from './index-Dk6UNQWp.js';
3
+ import { L as LRParser, E as ExternalTokenizer } from './index-dKic9ff-.js';
4
4
 
5
5
  // This file was generated by lezer-generator. You probably shouldn't edit it.
6
6
  const interpolationStart = 1,
@@ -1,6 +1,6 @@
1
- import { L as LRParser, E as ExternalTokenizer } from './index-FnbDXzus.js';
2
- import { E as styleTags, F as tags, A as LanguageSupport, S as parseMixed, L as LRLanguage, B as indentNodeProp, C as continuedIndent, K as delimitedIndent, D as foldNodeProp, M as foldInside } from './index-o1kUBM0B.js';
3
- import { html } from './index-DO4yrIc-.js';
1
+ import { L as LRParser, E as ExternalTokenizer } from './index-dKic9ff-.js';
2
+ import { E as styleTags, F as tags, A as LanguageSupport, S as parseMixed, L as LRLanguage, B as indentNodeProp, C as continuedIndent, K as delimitedIndent, D as foldNodeProp, M as foldInside } from './index-DJWghCuI.js';
3
+ import { html } from './index-Dk6UNQWp.js';
4
4
 
5
5
  // This file was generated by lezer-generator. You probably shouldn't edit it.
6
6
  const castOpen = 1,
@@ -1,5 +1,5 @@
1
- import { L as LRParser, E as ExternalTokenizer, C as ContextTracker } from './index-FnbDXzus.js';
2
- import { E as styleTags, F as tags, A as LanguageSupport, S as parseMixed, L as LRLanguage, B as indentNodeProp, K as delimitedIndent, D as foldNodeProp, M as foldInside } from './index-o1kUBM0B.js';
1
+ import { L as LRParser, E as ExternalTokenizer, C as ContextTracker } from './index-dKic9ff-.js';
2
+ import { E as styleTags, F as tags, A as LanguageSupport, S as parseMixed, L as LRLanguage, B as indentNodeProp, K as delimitedIndent, D as foldNodeProp, M as foldInside } from './index-DJWghCuI.js';
3
3
 
4
4
  // This file was generated by lezer-generator. You probably shouldn't edit it.
5
5
  const blockEnd = 63,
@@ -1,5 +1,5 @@
1
- import { T as Parser, U as NodeType, V as NodeProp, W as Tag, X as NodeSet, E as styleTags, Y as Tree, S as parseMixed, F as tags, I as syntaxTree, R as EditorSelection, Z as countColumn, A as LanguageSupport, _ as Prec, $ as keymap, Q as EditorView, a0 as Language, a1 as indentUnit, a2 as foldService, a3 as defineLanguageFacet, a4 as CompletionContext, a5 as EditorState, D as foldNodeProp, B as indentNodeProp, a6 as languageDataProp, a7 as LanguageDescription, a8 as ParseContext } from './index-o1kUBM0B.js';
2
- import { html, htmlCompletionSource } from './index-DO4yrIc-.js';
1
+ import { T as Parser, U as NodeType, V as NodeProp, W as Tag, X as NodeSet, E as styleTags, Y as Tree, S as parseMixed, F as tags, I as syntaxTree, R as EditorSelection, Z as countColumn, A as LanguageSupport, _ as Prec, $ as keymap, Q as EditorView, a0 as Language, a1 as indentUnit, a2 as foldService, a3 as defineLanguageFacet, a4 as CompletionContext, a5 as EditorState, D as foldNodeProp, B as indentNodeProp, a6 as languageDataProp, a7 as LanguageDescription, a8 as ParseContext } from './index-DJWghCuI.js';
2
+ import { html, htmlCompletionSource } from './index-Dk6UNQWp.js';
3
3
 
4
4
  class CompositeBlock {
5
5
  static create(type, value, from, parentHash, end) {
@@ -1,4 +1,4 @@
1
- import { T as Parser, X as NodeSet, U as NodeType, aa as DefaultBufferLength, V as NodeProp, Y as Tree, P as IterMode } from './index-o1kUBM0B.js';
1
+ import { T as Parser, X as NodeSet, U as NodeType, aa as DefaultBufferLength, V as NodeProp, Y as Tree, P as IterMode } from './index-DJWghCuI.js';
2
2
 
3
3
  /**
4
4
  A parse stack. These are used internally by the parser to track
@@ -1,5 +1,5 @@
1
- import { L as LRParser, E as ExternalTokenizer, a as LocalTokenGroup } from './index-FnbDXzus.js';
2
- import { E as styleTags, F as tags$1, A as LanguageSupport, L as LRLanguage, B as indentNodeProp, C as continuedIndent, D as foldNodeProp, M as foldInside, I as syntaxTree, O as NodeWeakMap, P as IterMode } from './index-o1kUBM0B.js';
1
+ import { L as LRParser, E as ExternalTokenizer, a as LocalTokenGroup } from './index-dKic9ff-.js';
2
+ import { E as styleTags, F as tags$1, A as LanguageSupport, L as LRLanguage, B as indentNodeProp, C as continuedIndent, D as foldNodeProp, M as foldInside, I as syntaxTree, O as NodeWeakMap, P as IterMode } from './index-DJWghCuI.js';
3
3
 
4
4
  // This file was generated by lezer-generator. You probably shouldn't edit it.
5
5
  const descendantOp = 122,
@@ -1,6 +1,6 @@
1
- import { Q as EditorView, R as EditorSelection, A as LanguageSupport, S as parseMixed, I as syntaxTree, L as LRLanguage, E as styleTags, F as tags, B as indentNodeProp, K as delimitedIndent, D as foldNodeProp } from './index-o1kUBM0B.js';
2
- import { html } from './index-DO4yrIc-.js';
3
- import { L as LRParser, E as ExternalTokenizer, a as LocalTokenGroup } from './index-FnbDXzus.js';
1
+ import { Q as EditorView, R as EditorSelection, A as LanguageSupport, S as parseMixed, I as syntaxTree, L as LRLanguage, E as styleTags, F as tags, B as indentNodeProp, K as delimitedIndent, D as foldNodeProp } from './index-DJWghCuI.js';
2
+ import { html } from './index-Dk6UNQWp.js';
3
+ import { L as LRParser, E as ExternalTokenizer, a as LocalTokenGroup } from './index-dKic9ff-.js';
4
4
 
5
5
  // This file was generated by lezer-generator. You probably shouldn't edit it.
6
6
  const interpolationStart = 1,
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- export { ac as BrainfishEditor, ad as MarkdownSourceEditor, ae as MilkdownProvider, j as createReviewSuggestionBulkActions } from './index-o1kUBM0B.js';
1
+ export { ac as BrainfishEditor, ad as MarkdownSourceEditor, ae as MilkdownProvider, j as createReviewSuggestionBulkActions } from './index-DJWghCuI.js';
package/dist/styles.css CHANGED
@@ -1 +1 @@
1
- .ProseMirror{position:relative;word-wrap:break-word;white-space:pre-wrap;white-space:break-spaces;font-variant-ligatures:none;font-feature-settings:"liga" 0}.ProseMirror pre{white-space:pre-wrap}.ProseMirror li{position:relative}.ProseMirror-hideselection *::selection{background:transparent}.ProseMirror-hideselection *::-moz-selection{background:transparent}.ProseMirror-hideselection{caret-color:transparent}.ProseMirror [draggable][contenteditable=false]{-webkit-user-select:text;-moz-user-select:text;user-select:text}.ProseMirror-selectednode{outline:2px solid #8cf}li.ProseMirror-selectednode{outline:none}li.ProseMirror-selectednode:after{content:"";position:absolute;inset:-2px -2px -2px -32px;border:2px solid #8cf;pointer-events:none}img.ProseMirror-separator{display:inline!important;border:none!important;margin:0!important}.milkdown{position:relative}.milkdown *{margin:0;padding:0;box-sizing:border-box}.milkdown button,.milkdown input{border:none;background:none;box-shadow:none}.milkdown button:focus,.milkdown input:focus{outline:none}.milkdown :focus-visible{outline:none}.milkdown{font-family:var(--crepe-font-default);color:var(--crepe-color-on-background);background:var(--crepe-color-background)}.milkdown .milkdown-icon{display:inline-flex;align-items:center;justify-content:center}.milkdown .ProseMirror-focused{outline:none}.milkdown .ProseMirror{padding:60px 120px}.milkdown .ProseMirror *::-moz-selection{background:var(--crepe-color-selected)}.milkdown .ProseMirror *::selection{background:var(--crepe-color-selected)}.milkdown .ProseMirror li.ProseMirror-selectednode{background:var(--crepe-color-selected);outline:none}.milkdown .ProseMirror li.ProseMirror-selectednode ::-moz-selection{background:transparent}.milkdown .ProseMirror li.ProseMirror-selectednode ::selection{background:transparent}.milkdown .ProseMirror li.ProseMirror-selectednode::-moz-selection{background:transparent}.milkdown .ProseMirror li.ProseMirror-selectednode::selection{background:transparent}.milkdown .ProseMirror li.ProseMirror-selectednode:after{all:unset}.milkdown .ProseMirror .ProseMirror-selectednode{background:var(--crepe-color-selected);outline:none;background:color-mix(in srgb,var(--crepe-color-selected),transparent 60%)}.milkdown .ProseMirror .ProseMirror-selectednode ::-moz-selection{background:transparent}.milkdown .ProseMirror .ProseMirror-selectednode ::selection{background:transparent}.milkdown .ProseMirror .ProseMirror-selectednode::-moz-selection{background:transparent}.milkdown .ProseMirror .ProseMirror-selectednode::selection{background:transparent}.milkdown .ProseMirror[data-dragging=true]::-moz-selection,.milkdown .ProseMirror[data-dragging=true] *::-moz-selection{background:transparent}.milkdown .ProseMirror[data-dragging=true] .ProseMirror-selectednode,.milkdown .ProseMirror[data-dragging=true]::selection,.milkdown .ProseMirror[data-dragging=true] *::selection{background:transparent}.milkdown .ProseMirror[data-dragging=true] input::-moz-selection{background:var(--crepe-color-selected)}.milkdown .ProseMirror[data-dragging=true] input::selection{background:var(--crepe-color-selected)}.milkdown .ProseMirror img{vertical-align:bottom;max-width:100%}.milkdown .ProseMirror img.ProseMirror-selectednode{background:none;outline:2px solid var(--crepe-color-primary)}.milkdown .ProseMirror h1,.milkdown .ProseMirror h2,.milkdown .ProseMirror h3,.milkdown .ProseMirror h4,.milkdown .ProseMirror h5,.milkdown .ProseMirror h6{font-family:var(--crepe-font-title);font-weight:400;padding:2px 0}.milkdown .ProseMirror h1{font-size:42px;line-height:50px;margin-top:32px}.milkdown .ProseMirror h2{font-size:36px;line-height:44px;margin-top:28px}.milkdown .ProseMirror h3{font-size:32px;line-height:40px;margin-top:24px}.milkdown .ProseMirror h4{font-size:28px;line-height:36px;margin-top:20px}.milkdown .ProseMirror h5{font-size:24px;line-height:32px;margin-top:16px}.milkdown .ProseMirror h6{font-size:18px;font-weight:700;line-height:28px;margin-top:16px}.milkdown .ProseMirror p{font-size:16px;line-height:24px;padding:4px 0}.milkdown .ProseMirror code{color:var(--crepe-color-inline-code);background:color-mix(in srgb,var(--crepe-color-inline-area),transparent 40%);font-family:var(--crepe-font-code);padding:0 2px;border-radius:4px;font-size:87.5%;display:inline-block;line-height:1.4286}.milkdown .ProseMirror a{color:var(--crepe-color-primary);text-decoration:underline}.milkdown .ProseMirror pre{background:color-mix(in srgb,var(--crepe-color-inline-area),transparent 40%);padding:10px;border-radius:4px}.milkdown .ProseMirror pre code{padding:0;background:transparent}.milkdown .ProseMirror blockquote{position:relative;padding-left:40px;padding-top:0;padding-bottom:0;box-sizing:content-box;margin:4px 0}.milkdown .ProseMirror blockquote:before{content:"";width:4px;left:0;top:4px;bottom:4px;position:absolute;background:var(--crepe-color-selected);border-radius:100px}.milkdown .ProseMirror blockquote hr{margin-bottom:16px}.milkdown .ProseMirror hr{border:none;background-color:color-mix(in srgb,var(--crepe-color-outline),transparent 80%);background-clip:content-box;padding:6px 0;height:13px;position:relative}.milkdown .ProseMirror hr.ProseMirror-selectednode{outline:none;background-color:color-mix(in srgb,var(--crepe-color-outline),transparent 20%);background-clip:content-box}.milkdown .ProseMirror hr.ProseMirror-selectednode:before{content:"";position:absolute;inset:0;background-color:color-mix(in srgb,var(--crepe-color-outline),transparent 80%);pointer-events:none}.milkdown .ProseMirror ul,.milkdown .ProseMirror ol{padding:0}.milkdown .milkdown-block-handle[data-show=false]{opacity:0;pointer-events:none}.milkdown .milkdown-block-handle{transition:all .2s;position:absolute;cursor:pointer;display:flex;justify-content:center;align-items:center;gap:2px}.milkdown .milkdown-block-handle .operation-item{border-radius:4px;width:32px;height:32px;padding:4px}.milkdown .milkdown-block-handle .operation-item svg{width:24px;height:24px;fill:var(--crepe-color-outline)}.milkdown .milkdown-block-handle .operation-item:hover{background:var(--crepe-color-hover)}.milkdown .milkdown-block-handle .operation-item.active{background:var(--crepe-color-selected)}.milkdown .milkdown-slash-menu[data-show=false]{display:none}.milkdown .milkdown-slash-menu{position:absolute;z-index:10;display:block;font-family:var(--crepe-font-default);color:var(--crepe-color-on-surface);background:var(--crepe-color-surface);border-radius:12px;box-shadow:var(--crepe-shadow-1)}.milkdown .milkdown-slash-menu ul{list-style-type:none}.milkdown .milkdown-slash-menu ul li{cursor:pointer;border-radius:8px}.milkdown .milkdown-slash-menu .tab-group{border-bottom:1px solid color-mix(in srgb,var(--crepe-color-outline),transparent 80%);padding:12px 12px 0}.milkdown .milkdown-slash-menu .tab-group ul{padding:8px 10px;display:flex;gap:10px;flex-wrap:nowrap}.milkdown .milkdown-slash-menu .tab-group ul li{padding:6px 10px;font-size:14px;font-style:normal;font-weight:600;line-height:20px}.milkdown .milkdown-slash-menu .tab-group ul li:hover{background:var(--crepe-color-hover)}.milkdown .milkdown-slash-menu .tab-group ul li.selected{background:var(--crepe-color-selected)}.milkdown .milkdown-slash-menu .menu-groups{padding:0 12px 12px;max-height:420px;overflow:auto;overscroll-behavior:contain;scroll-behavior:smooth}.milkdown .milkdown-slash-menu .menu-groups .menu-group h6{font-size:14px;font-style:normal;font-weight:600;line-height:20px;padding:14px 10px;text-transform:uppercase;color:color-mix(in srgb,var(--crepe-color-on-surface),transparent 40%)}.milkdown .milkdown-slash-menu .menu-groups .menu-group li{min-width:220px;display:flex;justify-content:flex-start;align-items:center;gap:16px;padding:14px 10px}.milkdown .milkdown-slash-menu .menu-groups .menu-group li.hover{background:var(--crepe-color-hover)}.milkdown .milkdown-slash-menu .menu-groups .menu-group li.active{background:var(--crepe-color-selected)}.milkdown .milkdown-slash-menu .menu-groups .menu-group li svg{width:24px;height:24px;color:var(--crepe-color-outline);fill:var(--crepe-color-outline)}.milkdown .milkdown-slash-menu .menu-groups .menu-group li>span{font-size:14px;font-style:normal;font-weight:600;line-height:20px}.milkdown .milkdown-slash-menu .menu-groups .menu-group+.menu-group:before{content:"";display:block;height:1px;background:color-mix(in srgb,var(--crepe-color-outline),transparent 80%);margin:0 10px}.milkdown .milkdown-code-block{display:block;position:relative;padding:8px 20px 20px;background:var(--crepe-color-surface);margin:4px 0}.milkdown .milkdown-code-block .language-picker{padding-top:10px;width:-moz-max-content;width:max-content;position:absolute;z-index:999}.milkdown .milkdown-code-block .hidden{display:none!important}.milkdown .milkdown-code-block.selected{outline:1px solid var(--crepe-color-primary)}.milkdown .milkdown-code-block .milkdown-code-block-placeholder{margin:0;padding:4px 0;font-family:var(--crepe-font-code, monospace);font-size:14px;line-height:1.5;white-space:pre-wrap;word-break:break-all}.milkdown .milkdown-code-block .milkdown-code-block-placeholder code{font-family:inherit}.milkdown .milkdown-code-block .cm-editor{outline:none!important;background:var(--crepe-color-surface)}.milkdown .milkdown-code-block .cm-gutters{border-right:none;background:var(--crepe-color-surface)}.milkdown .milkdown-code-block .cm-panel{font-family:var(--crepe-font-default);background:var(--crepe-color-surface);color:var(--crepe-color-on-surface)}.milkdown .milkdown-code-block .cm-panel input{caret-color:var(--crepe-color-outline);border-radius:4px;background:var(--crepe-color-surface-low)}.milkdown .milkdown-code-block .cm-panel>button{text-transform:capitalize;background:var(--crepe-color-surface-low);color:var(--crepe-color-on-surface-variant);border:1px solid var(--crepe-color-outline);font-weight:600;cursor:pointer;border-radius:4px}.milkdown .milkdown-code-block .cm-panel>button:hover{background:var(--crepe-color-hover)}.milkdown .milkdown-code-block .cm-panel>label{display:inline-flex;align-items:center;text-transform:capitalize}.milkdown .milkdown-code-block .cm-panel>label input[type=checkbox]{border-radius:4px;cursor:pointer;-moz-appearance:none;appearance:none;-webkit-appearance:none;background:var(--crepe-color-surface-low);width:1.15em;height:1.15em;border:1px solid var(--crepe-color-outline);display:grid;place-content:center}.milkdown .milkdown-code-block .cm-panel>label input[type=checkbox]:before{content:"";transform-origin:bottom left;width:.65em;height:.65em;transform:scale(0);transition:.12s transform ease-in-out;box-shadow:inset 1em 1em var(--crepe-color-outline);clip-path:polygon(14% 44%,0 65%,50% 100%,100% 16%,80% 0%,43% 62%)}.milkdown .milkdown-code-block .cm-panel>label input[type=checkbox]:checked:before{transform:scale(1)}.milkdown .milkdown-code-block .tools{display:flex;justify-content:space-between;align-items:center}.milkdown .milkdown-code-block .tools input{caret-color:var(--crepe-color-outline)}.milkdown .milkdown-code-block .tools .tools-button-group{display:flex;gap:2px}.milkdown .milkdown-code-block .tools .tools-button-group button{background:var(--crepe-color-secondary);color:var(--crepe-color-on-surface-variant);padding:4px 10px;opacity:0;cursor:pointer;border-radius:4px;font-size:12px;line-height:16px;font-weight:600;font-family:var(--crepe-font-default);transition:opacity .2s ease-in-out;display:flex;align-items:center;justify-content:center;gap:4px}.milkdown .milkdown-code-block .tools .tools-button-group button svg{width:14px;height:14px;fill:var(--crepe-color-on-surface-variant)}.milkdown .milkdown-code-block .tools .tools-button-group button:first-child{border-top-left-radius:100px;border-bottom-left-radius:100px}.milkdown .milkdown-code-block .tools .tools-button-group button:last-child{border-top-right-radius:100px;border-bottom-right-radius:100px}.milkdown .milkdown-code-block .tools .language-button{display:flex;align-items:center;font-family:var(--crepe-font-default);gap:6px;padding:2px 4px 2px 8px;background:var(--crepe-color-surface-low);color:var(--crepe-color-on-surface-variant);border-radius:4px;font-size:12px;font-weight:600;line-height:16px;margin-bottom:8px;opacity:0;cursor:pointer;transition:opacity .2s ease-in-out}.milkdown .milkdown-code-block .tools .language-button:hover{background:var(--crepe-color-hover)}.milkdown .milkdown-code-block .tools .language-button .expand-icon{transition:transform .2s ease-in-out;width:18px;height:18px;display:flex;justify-content:center;align-items:center}.milkdown .milkdown-code-block .tools .language-button .expand-icon svg{width:14px;height:14px;color:var(--crepe-color-outline)}.milkdown .milkdown-code-block .tools .language-button[data-expanded=true] .expand-icon{transform:rotate(180deg)}.milkdown .milkdown-code-block .tools .language-button .expand-icon svg:focus,.milkdown .milkdown-code-block .tools .language-button .expand-icon:focus-visible{outline:none}.milkdown .milkdown-code-block:hover .language-button{opacity:1}.milkdown .milkdown-code-block:hover .tools-button-group>button{opacity:1}.milkdown .milkdown-code-block .list-wrapper{background:var(--crepe-color-surface-low);border-radius:12px;box-shadow:var(--crepe-shadow-1);width:240px;padding-top:12px}.milkdown .milkdown-code-block .language-list{height:410px;overflow-y:auto;overscroll-behavior:contain;margin:0;padding:0}.milkdown .milkdown-code-block .language-list-item{cursor:pointer;margin:0;display:flex;align-items:center;gap:8px;padding:4px 22px;font-size:14px;font-weight:600;line-height:20px}.milkdown .milkdown-code-block .language-list-item:hover{background:var(--crepe-color-hover)}.milkdown .milkdown-code-block .language-list-item:focus-visible{outline:none;background:var(--crepe-color-hover)}.milkdown .milkdown-code-block .language-list-item .leading,.milkdown .milkdown-code-block .language-list-item .leading svg{width:24px;height:24px}.milkdown .milkdown-code-block .language-list-item.no-result{cursor:default;opacity:.6}.milkdown .milkdown-code-block .language-list-item.no-result:hover{background:transparent}.milkdown .milkdown-code-block .search-box{display:flex;align-items:center;margin:0 12px 8px;background:transparent;border-radius:4px;outline:1px solid var(--crepe-color-primary);gap:8px;padding:6px 10px}.milkdown .milkdown-code-block .search-box:has(input:focus){outline:2px solid var(--crepe-color-primary)}.milkdown .milkdown-code-block .search-box .search-input{width:100%;color:var(--crepe-color-on-surface)}.milkdown .milkdown-code-block .search-box .search-icon{display:none}.milkdown .milkdown-code-block .search-box .clear-icon{cursor:pointer;width:20px;height:20px}.milkdown .milkdown-code-block .search-box .clear-icon svg{width:20px;height:20px;color:var(--crepe-color-primary);fill:var(--crepe-color-primary)}.milkdown .milkdown-code-block .search-box .clear-icon:hover{background:var(--crepe-color-hover)}.milkdown .milkdown-code-block .search-box input{font-family:var(--crepe-font-default);font-size:14px;line-height:20px;background:transparent}.milkdown .milkdown-code-block .search-box input:focus{outline:none}.milkdown .milkdown-code-block .preview-panel .preview-divider{height:1px;opacity:.2;background:var(--crepe-color-outline);margin:6px 0}.milkdown .milkdown-code-block .preview-panel .preview-label{margin:6px 0;font-size:12px;color:color-mix(in srgb,var(--crepe-color-on-surface),transparent 40%);font-weight:600;text-transform:uppercase;font-family:var(--crepe-font-default)}.milkdown .milkdown-code-block .preview-panel .preview{text-align:center;overflow-x:auto}.ProseMirror-gapcursor{display:none;pointer-events:none;position:absolute}.ProseMirror-gapcursor:after{content:"";display:block;position:absolute;top:-2px;width:20px;border-top:1px solid black;animation:ProseMirror-cursor-blink 1.1s steps(2,start) infinite}@keyframes ProseMirror-cursor-blink{to{visibility:hidden}}.ProseMirror-focused .ProseMirror-gapcursor{display:block}.ProseMirror.virtual-cursor-enabled{caret-color:transparent}.ProseMirror-focused{--prosemirror-virtual-cursor-color: red}.ProseMirror .prosemirror-virtual-cursor{position:absolute;cursor:text;pointer-events:none;transform:translate(-1px);-moz-user-select:none;user-select:none;-webkit-user-select:none;border-left:2px solid var(--prosemirror-virtual-cursor-color)}.ProseMirror .prosemirror-virtual-cursor-left{width:1ch;transform:translate(calc(-1ch - 1px));border-bottom:2px solid var(--prosemirror-virtual-cursor-color);border-right:2px solid var(--prosemirror-virtual-cursor-color);border-left:none}.ProseMirror .prosemirror-virtual-cursor-right{width:1ch;border-bottom:2px solid var(--prosemirror-virtual-cursor-color);border-left:2px solid var(--prosemirror-virtual-cursor-color);border-right:none}.ProseMirror-focused .prosemirror-virtual-cursor-animation{animation:prosemirror-virtual-cursor-blink 1s linear infinite;animation-delay:.5s}@keyframes prosemirror-virtual-cursor-blink{0%{opacity:1}50%{opacity:0}to{opacity:1}}.milkdown .crepe-drop-cursor{background-color:color-mix(in srgb,var(--crepe-color-outline),transparent 50%);opacity:.5;transition:all .2s;pointer-events:none}.milkdown .ProseMirror-gapcursor:after{box-sizing:border-box;border-top:1px solid var(--crepe-color-on-background)}.milkdown .ProseMirror-focused{--prosemirror-virtual-cursor-color: var(--crepe-color-outline)}.milkdown .milkdown-image-inline{outline:none;display:inline-flex;vertical-align:text-bottom}.milkdown .milkdown-image-inline input{background:transparent;outline:none;border:0;caret-color:var(--crepe-color-outline)}.milkdown .milkdown-image-inline>.empty-image-inline{display:inline-flex}.milkdown .milkdown-image-inline>.empty-image-inline .confirm{cursor:pointer}.milkdown .milkdown-image-inline>.empty-image-inline .link-importer{position:relative;flex:1}.milkdown .milkdown-image-inline>.empty-image-inline .link-importer>.link-input-area{width:208px;color:var(--crepe-color-on-background);display:flex}.milkdown .milkdown-image-inline>.empty-image-inline .link-importer .placeholder{position:absolute;top:0;left:0;bottom:0;display:flex;align-items:center;cursor:text}.milkdown .milkdown-image-inline>.empty-image-inline .link-importer .placeholder .uploader{cursor:pointer;display:flex}.milkdown .milkdown-image-inline .hidden{display:none!important}.milkdown .milkdown-image-inline.empty.selected{background:none;outline:none}.milkdown .milkdown-image-inline.empty.selected .empty-image-inline{box-shadow:var(--crepe-shadow-1)}.milkdown .milkdown-image-inline.selected{background:none;outline:1px solid var(--crepe-color-primary)}.milkdown .milkdown-image-inline.selected :not(input)::-moz-selection{background:transparent}.milkdown .milkdown-image-inline.selected :not(input)::selection{background:transparent}.milkdown .milkdown-image-inline .empty-image-inline{align-items:center;padding:4px 10px;gap:10px;background:var(--crepe-color-surface);font-family:var(--crepe-font-default);border-radius:8px;font-size:16px}.milkdown .milkdown-image-inline .empty-image-inline .image-icon svg{width:18px;height:18px;fill:var(--crepe-color-outline)}.milkdown .milkdown-image-inline .empty-image-inline .image-icon{padding:3px;width:24px;height:24px}.milkdown .milkdown-image-inline .empty-image-inline .link-importer{height:24px}.milkdown .milkdown-image-inline .empty-image-inline .link-importer .placeholder{color:color-mix(in srgb,var(--crepe-color-on-background),transparent 60%)}.milkdown .milkdown-image-inline .empty-image-inline .link-importer .placeholder :not(input)::-moz-selection{background:transparent}.milkdown .milkdown-image-inline .empty-image-inline .link-importer .placeholder :not(input)::selection{background:transparent}.milkdown .milkdown-image-inline .empty-image-inline .link-importer .link-input-area{line-height:24px}.milkdown .milkdown-image-inline .empty-image-inline .link-importer .placeholder .uploader{gap:8px;color:var(--crepe-color-primary);justify-content:center;transition:color .2s;font-family:var(--crepe-font-default)}.milkdown .milkdown-image-inline .empty-image-inline .link-importer.focus .placeholder .uploader{color:unset}.milkdown .milkdown-image-inline .empty-image-inline .link-importer .placeholder .uploader:hover{color:var(--crepe-color-primary)}.milkdown .milkdown-image-inline .empty-image-inline .link-importer .placeholder .text{margin-left:8px}.milkdown .milkdown-image-inline .empty-image-inline .confirm svg{width:18px;height:18px}.milkdown .milkdown-image-inline .empty-image-inline .confirm{display:flex;width:24px;height:24px;padding:3px;border-radius:8px;color:var(--crepe-color-primary)}.milkdown .milkdown-image-inline .empty-image-inline .confirm:hover{background:var(--crepe-color-hover)}.milkdown .milkdown-image-block{outline:none;margin:4px 0;display:block}.milkdown .milkdown-image-block>.image-wrapper{position:relative;width:-moz-fit-content;width:fit-content;margin:0 auto;min-width:100px}.milkdown .milkdown-image-block>.image-wrapper .operation{position:absolute;display:flex}.milkdown .milkdown-image-block>.image-wrapper .operation>.operation-item{cursor:pointer}.milkdown .milkdown-image-block>.image-wrapper img{max-width:100%;min-height:100px;display:block;-o-object-fit:cover;object-fit:cover}.milkdown .milkdown-image-block>.image-wrapper>.image-resize-handle{position:absolute;left:50%;transform:translate(-50%)}.milkdown .milkdown-image-block>.image-wrapper>.image-resize-handle:hover{cursor:row-resize}.milkdown .milkdown-image-block input{background:transparent;outline:none;border:0;caret-color:var(--crepe-color-outline)}.milkdown .milkdown-image-block>.caption-input{display:block;width:100%;text-align:center;color:var(--crepe-color-on-background)}.milkdown .milkdown-image-block>.image-edit{display:flex}.milkdown .milkdown-image-block>.image-edit .confirm{cursor:pointer}.milkdown .milkdown-image-block>.image-edit .link-importer{position:relative;flex:1}.milkdown .milkdown-image-block>.image-edit .link-importer>.link-input-area{width:100%}.milkdown .milkdown-image-block>.image-edit .link-importer .placeholder{position:absolute;top:0;left:0;bottom:0;display:flex;align-items:center;cursor:text}.milkdown .milkdown-image-block>.image-edit .link-importer .placeholder .uploader{cursor:pointer;display:flex}.milkdown .milkdown-image-block .hidden{display:none!important}.milkdown .milkdown-image-block.selected>.image-edit:not(:has(input:focus)){position:relative}.milkdown .milkdown-image-block.selected>.image-edit:not(:has(input:focus)):before{content:"";position:absolute;inset:0;background:color-mix(in srgb,var(--crepe-color-selected),transparent 60%);pointer-events:none}.milkdown .milkdown-image-block.selected>.image-wrapper{position:relative}.milkdown .milkdown-image-block.selected>.image-wrapper:before{content:"";position:absolute;inset:0;background:color-mix(in srgb,var(--crepe-color-selected),transparent 60%)}.milkdown .milkdown-image-block.selected :not(input)::-moz-selection{background:transparent}.milkdown .milkdown-image-block.selected :not(input)::selection{background:transparent}.milkdown .milkdown-image-block .image-wrapper{display:flex;justify-content:center;align-items:center}.milkdown .milkdown-image-block .image-wrapper .operation{gap:12px;right:12px;top:12px;opacity:0;transition:all .2s}.milkdown .milkdown-image-block:hover>.image-wrapper .operation{opacity:1}.milkdown .milkdown-image-block .image-wrapper .operation>.operation-item{color:var(--crepe-color-on-inverse);padding:4px;background:var(--crepe-color-inverse);opacity:.6;border-radius:50%;width:32px;height:32px}.milkdown .milkdown-image-block .image-wrapper .operation>.operation-item svg{width:24px;height:24px}.milkdown .milkdown-image-block .image-wrapper .image-resize-handle{height:4px;bottom:-2px;max-width:160px;width:100%;background:var(--crepe-color-outline);opacity:0;transition:all .2s;border-radius:4px}.milkdown .milkdown-image-block:hover>.image-wrapper .image-resize-handle{opacity:1}.milkdown .milkdown-image-block .caption-input{margin:4px auto;font-family:var(--crepe-font-default)}.milkdown .milkdown-image-block .image-edit{align-items:center;padding:16px 24px;gap:16px;background:var(--crepe-color-surface);height:56px}.milkdown .milkdown-image-block .image-edit .image-icon{color:var(--crepe-color-outline)}.milkdown .milkdown-image-block .image-edit .image-icon svg{width:24px;height:24px;display:flex;justify-content:center;align-items:center;fill:var(--crepe-color-outline)}.milkdown .milkdown-image-block .image-edit .link-importer .placeholder{color:color-mix(in srgb,var(--crepe-color-on-background),transparent 60%)}.milkdown .milkdown-image-block .image-edit .link-importer .placeholder :not(input)::-moz-selection{background:transparent}.milkdown .milkdown-image-block .image-edit .link-importer .placeholder :not(input)::selection{background:transparent}.milkdown .milkdown-image-block .image-edit .link-importer .link-input-area{line-height:24px;color:var(--crepe-color-on-background)}.milkdown .milkdown-image-block .image-edit .link-importer .placeholder .uploader{gap:8px;color:var(--crepe-color-primary);justify-content:center;transition:color .2s;font-weight:600}.milkdown .milkdown-image-block .image-edit .link-importer.focus .placeholder .uploader{color:unset}.milkdown .milkdown-image-block .image-edit .link-importer .placeholder .uploader:hover{color:var(--crepe-color-primary)}.milkdown .milkdown-image-block .image-edit .link-importer .placeholder .text{margin-left:8px}.milkdown .milkdown-image-block .image-edit .confirm{background:var(--crepe-color-secondary);color:var(--crepe-color-on-secondary);line-height:40px;padding:0 24px;border-radius:100px;font-size:14px;font-weight:600}.milkdown .milkdown-image-block .image-edit .confirm:hover{background:linear-gradient(0deg,#1d192b14 0% 100%),var(--crepe-color-secondary)}.milkdown .milkdown-link-preview{position:absolute;z-index:10}.milkdown .milkdown-link-preview[data-show=false]{display:none}.milkdown .milkdown-link-preview>.link-preview{height:32px;display:flex;justify-content:center;padding:4px 10px;background:var(--crepe-color-surface);gap:10px;border-radius:8px;cursor:pointer;box-shadow:var(--crepe-shadow-1)}.milkdown .milkdown-link-preview>.link-preview>.link-display{text-decoration:none;color:unset}.milkdown .milkdown-link-preview>.link-preview>.link-display:hover:before{display:block}.milkdown .milkdown-link-preview>.link-preview>.link-icon>svg{width:18px;height:18px;color:var(--crepe-color-outline);fill:var(--crepe-color-outline)}.milkdown .milkdown-link-preview>.link-preview>.link-icon{border-radius:8px;padding:3px;line-height:24px}.milkdown .milkdown-link-preview>.link-preview>.link-icon:hover{background:var(--crepe-color-hover)}.milkdown .milkdown-link-preview>.link-preview>.link-display{width:240px;line-height:24px;overflow:hidden;text-overflow:ellipsis;font-size:14px;white-space:nowrap}.milkdown .milkdown-link-preview>.link-preview>.link-display:hover{text-decoration:underline}.milkdown .milkdown-link-preview>.link-preview>.button>svg{width:18px;height:18px;color:var(--crepe-color-outline);fill:var(--crepe-color-outline)}.milkdown .milkdown-link-preview>.link-preview>.button{padding:3px;border-radius:8px;line-height:24px}.milkdown .milkdown-link-preview>.link-preview>.button:hover{background:var(--crepe-color-hover)}.milkdown .milkdown-link-edit{position:absolute;z-index:10}.milkdown .milkdown-link-edit[data-show=false]{display:none}.milkdown .milkdown-link-edit>.link-edit{height:32px;display:flex;justify-content:center;padding:4px 10px 4px 20px;background:var(--crepe-color-surface);gap:8px;border-radius:8px;box-shadow:var(--crepe-shadow-1)}.milkdown .milkdown-link-edit>.link-edit>.input-area{outline:none;background:transparent;width:200px;font-size:14px;color:var(--crepe-color-on-background)}.milkdown .milkdown-link-edit>.link-edit>.button>svg{width:18px;height:18px;color:var(--crepe-color-outline);fill:var(--crepe-color-outline)}.milkdown .milkdown-link-edit>.link-edit>.button{padding:3px;cursor:pointer;border-radius:8px;font-size:12px;line-height:24px}.milkdown .milkdown-link-edit>.link-edit>.button:hover{background:var(--crepe-color-hover)}.milkdown .milkdown-link-edit>.link-edit>.button.hidden{visibility:hidden}.milkdown .milkdown-list-item-block{display:block;padding:0}.milkdown .milkdown-list-item-block>.list-item{display:flex;align-items:flex-start}.milkdown .milkdown-list-item-block>.list-item>.children{min-width:0;flex:1}.milkdown .milkdown-list-item-block li{gap:10px}.milkdown .milkdown-list-item-block li .label-wrapper{color:var(--crepe-color-outline)}.milkdown .milkdown-list-item-block li .label-wrapper svg{fill:var(--crepe-color-outline)}.milkdown .milkdown-list-item-block li .label-wrapper{height:32px;width:24px;display:flex;justify-content:center;align-items:center}.milkdown .milkdown-list-item-block li .label-wrapper .label{height:32px;padding:4px 0;width:24px;text-align:right}.milkdown .milkdown-list-item-block li .label-wrapper .checked,.milkdown .milkdown-list-item-block li .label-wrapper .unchecked{cursor:pointer}.milkdown .milkdown-list-item-block li .label-wrapper .readonly{cursor:not-allowed}.milkdown .crepe-placeholder:before{position:absolute;color:color-mix(in srgb,var(--crepe-color-on-background),transparent 60%);pointer-events:none;height:0;content:attr(data-placeholder)}.milkdown:has(.milkdown-link-preview[data-show=true]) .milkdown-toolbar,.milkdown:has(.milkdown-link-edit[data-show=true]) .milkdown-toolbar{display:none}.milkdown .milkdown-toolbar[data-show=false]{display:none}.milkdown .milkdown-toolbar{z-index:10;position:absolute;display:flex;background:var(--crepe-color-surface);box-shadow:var(--crepe-shadow-1);border-radius:8px;overflow:hidden}.milkdown .milkdown-toolbar .divider{width:1px;background:color-mix(in srgb,var(--crepe-color-outline),transparent 80%);height:24px;margin:10px}.milkdown .milkdown-toolbar .toolbar-item{width:32px;height:32px;margin:6px;padding:4px;cursor:pointer;border-radius:4px}.milkdown .milkdown-toolbar .toolbar-item:hover{background:var(--crepe-color-hover)}.milkdown .milkdown-toolbar .toolbar-item:active{background:var(--crepe-color-selected)}.milkdown .milkdown-toolbar .toolbar-item svg{height:24px;width:24px;color:var(--crepe-color-outline);fill:var(--crepe-color-outline)}.milkdown .milkdown-toolbar .toolbar-item.active svg{color:var(--crepe-color-primary);fill:var(--crepe-color-primary)}.ProseMirror .tableWrapper{overflow-x:auto}.ProseMirror table{border-collapse:collapse;table-layout:fixed;width:100%;overflow:hidden}.ProseMirror td,.ProseMirror th{vertical-align:top;box-sizing:border-box;position:relative}.ProseMirror td:not([data-colwidth]):not(.column-resize-dragging),.ProseMirror th:not([data-colwidth]):not(.column-resize-dragging){min-width:var(--default-cell-min-width)}.ProseMirror .column-resize-handle{position:absolute;right:-2px;top:0;bottom:0;width:4px;z-index:20;background-color:#adf;pointer-events:none}.ProseMirror.resize-cursor{cursor:ew-resize;cursor:col-resize}.ProseMirror .selectedCell:after{z-index:2;position:absolute;content:"";inset:0;background:#c8c8ff66;pointer-events:none}.milkdown .milkdown-table-block{display:block;margin:4px 0}.milkdown .milkdown-table-block th,.milkdown .milkdown-table-block td{border:1px solid color-mix(in srgb,var(--crepe-color-outline),transparent 80%);padding:4px 16px}.milkdown .milkdown-table-block th .ProseMirror-selectednode,.milkdown .milkdown-table-block td .ProseMirror-selectednode{background-color:transparent!important}.milkdown .milkdown-table-block th:has(.ProseMirror-selectednode),.milkdown .milkdown-table-block td:has(.ProseMirror-selectednode){outline:1px solid var(--crepe-color-primary);outline-offset:-1px}.milkdown .milkdown-table-block .selectedCell:after{background-color:var(--crepe-color-selected);opacity:.4}.milkdown .milkdown-table-block .selectedCell ::-moz-selection{background:transparent}.milkdown .milkdown-table-block .selectedCell ::selection{background:transparent}.milkdown .milkdown-table-block .drag-preview{background-color:var(--crepe-color-surface);opacity:.4;position:absolute;z-index:100;display:flex;flex-direction:column;outline:1px solid var(--crepe-color-primary);outline-offset:-1px}.milkdown .milkdown-table-block .drag-preview[data-show=false]{display:none}.milkdown .milkdown-table-block .drag-preview th:has(.ProseMirror-selectednode),.milkdown .milkdown-table-block .drag-preview td:has(.ProseMirror-selectednode){outline:none}.milkdown .milkdown-table-block .handle{position:absolute;font-size:14px;transition:opacity ease-in-out .2s}.milkdown .milkdown-table-block .handle[data-show=false]{opacity:0}.milkdown .milkdown-table-block svg{fill:var(--crepe-color-outline)}.milkdown .milkdown-table-block .cell-handle{z-index:50;left:-999px;top:-999px;cursor:grab;background-color:var(--crepe-color-surface);color:var(--crepe-color-outline);border-radius:100px;box-shadow:var(--crepe-shadow-1);transition:background-color .2s ease-in-out}.milkdown .milkdown-table-block .cell-handle:hover{background-color:var(--crepe-color-hover)}.milkdown .milkdown-table-block .cell-handle:has(.button-group:hover){background-color:var(--crepe-color-surface)}.milkdown .milkdown-table-block .cell-handle[data-role=col-drag-handle]{transform:translateY(50%);padding:0 6px;width:28px;height:16px}.milkdown .milkdown-table-block .cell-handle[data-role=row-drag-handle]{transform:translate(50%);padding:6px 0;width:16px;height:28px}.milkdown .milkdown-table-block .cell-handle .button-group{position:absolute;transform:translate(-50%);left:50%;top:-52px;display:flex;background-color:var(--crepe-color-surface);border-radius:8px;box-shadow:var(--crepe-shadow-1)}.milkdown .milkdown-table-block .cell-handle .button-group:after{content:"";position:absolute;bottom:-8px;height:8px;background-color:transparent;width:100%}.milkdown .milkdown-table-block .cell-handle .button-group[data-show=false]{display:none}.milkdown .milkdown-table-block .cell-handle .button-group button{cursor:pointer;margin:6px;padding:4px;display:flex;justify-content:center;align-items:center;border-radius:4px}.milkdown .milkdown-table-block .cell-handle .button-group button svg{width:24px;height:24px}.milkdown .milkdown-table-block .cell-handle .button-group button:hover{border-radius:8px;background-color:var(--crepe-color-hover)}.milkdown .milkdown-table-block .cell-handle .button-group button:active{background:var(--crepe-color-selected)}.milkdown .milkdown-table-block .cell-handle:hover{opacity:1}.milkdown .milkdown-table-block .line-handle{z-index:20;background-color:var(--crepe-color-primary)}.milkdown .milkdown-table-block .line-handle:hover{opacity:1}.milkdown .milkdown-table-block .line-handle .add-button{cursor:pointer;background-color:var(--crepe-color-surface);color:var(--crepe-color-outline);border-radius:100px;box-shadow:var(--crepe-shadow-1);transition:background-color .2s ease-in-out}.milkdown .milkdown-table-block .line-handle .add-button svg{width:16px;height:16px}.milkdown .milkdown-table-block .line-handle .add-button:hover{background-color:var(--crepe-color-hover)}.milkdown .milkdown-table-block .line-handle .add-button:active{background:var(--crepe-color-selected)}.milkdown .milkdown-table-block .line-handle[data-role=x-line-drag-handle]{height:1px;z-index:2}.milkdown .milkdown-table-block .line-handle[data-role=x-line-drag-handle] .add-button{position:absolute;transform:translate(-50%) translateY(-50%);padding:6px 0;width:16px;height:28px}.milkdown .milkdown-table-block .line-handle[data-role=y-line-drag-handle]{width:1px;z-index:1}.milkdown .milkdown-table-block .line-handle[data-role=y-line-drag-handle] .add-button{position:absolute;transform:translateY(-50%) translate(-50%);padding:0 6px;width:28px;height:16px}.milkdown .milkdown-table-block .line-handle[data-display-type=indicator] .add-button,.milkdown .milkdown-table-block.readonly .handle{display:none}.milkdown .ProseMirror{padding:0;--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.milkdown .ProseMirror b,.milkdown .ProseMirror strong{font-weight:600}.milkdown .ProseMirror-yjs-cursor{position:relative;margin-left:-1px;margin-right:-1px;pointer-events:none;overflow-wrap:normal;word-break:normal;border-width:1px;--tw-border-opacity: 1;border-left-color:rgb(0 0 0 / var(--tw-border-opacity, 1));border-right-color:rgb(0 0 0 / var(--tw-border-opacity, 1))}.milkdown .ProseMirror-yjs-cursor>div{position:absolute;top:-2.1em;left:-1px;font-size:.75rem;line-height:1rem;white-space:nowrap;background-color:var(--bfc-primary);padding:.25rem .5rem;color:var(--bfc-primary-foreground);-webkit-user-select:none;-moz-user-select:none;user-select:none;border-top-right-radius:.125rem;border-bottom-right-radius:.125rem;border-top-left-radius:.125rem}.milkdown{[data-name=notice-tooltip] button{background:revert-layer;color:revert-layer}&[data-link-tooltip-visible] .milkdown-toolbar:not([data-name]){display:none!important}}@keyframes grammar-check-pulse{0%,to{opacity:.4}50%{opacity:.15}}.grammar-check-highlight{animation:grammar-check-pulse .5s ease-in-out infinite}@keyframes bf-media-upload-pulse{0%,to{background-color:#0000001f}50%{background-color:#00000047}}.milkdown{.bf-media-upload-placeholder{position:relative;display:inline-block;max-width:100%;margin:.25rem 0 1.75rem;vertical-align:bottom}.bf-media-upload-placeholder__overlay{position:absolute;inset:0;z-index:1;animation:bf-media-upload-pulse 2s ease-in-out infinite;background:#00000059;pointer-events:none;border-radius:.5rem}.bf-media-upload-placeholder__media{display:block;max-width:100%;height:auto;border-radius:.5rem}.bf-circular-progress{position:absolute;top:50%;left:50%;z-index:2;width:50px;height:50px;margin:-25px 0 0 -25px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:conic-gradient(currentColor 0deg,color-mix(in srgb,currentColor 18%,transparent) 0);pointer-events:none}.bf-circular-progress__inner{position:absolute;width:40px;height:40px;border-radius:50%;background:var(--bfc-v2-color-mono-100, #f4f4f5)}.bf-circular-progress__percentage{position:relative;z-index:1;margin:0;font-size:12px;font-weight:600;line-height:1;color:var(--bfc-v2-color-mono-900, #18181b)}.milkdown-table-block{overflow-x:auto;table{width:auto;tr>th{white-space:nowrap}}}.milkdown-image-block{.image-wrapper{.image-resize-handle{height:8px;background:var(--bfc-v2-color-mono-200);border:1px solid var(--bfc-v2-color-mono-900);border-radius:3px;opacity:.75;&:hover{cursor:ns-resize;transform:translate(-50%) scaleY(1.3)}}&:hover{cursor:default}}&:hover>.image-wrapper .image-resize-handle{opacity:1}}.ProseMirror[contenteditable=false] .milkdown-image-block{.image-resize-handle{display:none}>.image-wrapper .operation{display:none}&:hover>.image-wrapper{cursor:default}}.ProseMirror [data-notice-block-type] [data-node-view-content]>:first-child{margin-top:0}.video-viewer.has-custom-timeline{video::-webkit-media-controls-timeline{opacity:0}video:fullscreen::-webkit-media-controls-timeline,video:-webkit-full-screen::-webkit-media-controls-timeline{opacity:1}}.milkdown-code-block .cm-content{white-space:break-spaces;max-width:95%;flex-basis:auto!important}.review-suggestion{&.target-replace-hidden{display:none}&.target-delete{background:var(--bfc-destructive-bg);color:var(--bfc-text-subtle);text-decoration:line-through;text-decoration-thickness:2px;text-decoration-color:var(--bfc-destructive-text);border:1px solid var(--bfc-v2-color-red-300);border-bottom-width:3px;border-radius:8px;cursor:pointer;padding:1px 4px;&[data-fragment-position=first]{border-right:0;border-top-right-radius:0;border-bottom-right-radius:0;padding-right:0}&[data-fragment-position=middle]{border-left:0;border-right:0;border-radius:0;padding-left:0;padding-right:0}&[data-fragment-position=last]{border-left:0;border-top-left-radius:0;border-bottom-left-radius:0;padding-left:0}&.selected{background:var(--bfc-v2-color-red-200);border-color:var(--bfc-destructive-border)}}&.inline-add{display:inline;padding:0 4px;background:var(--bfc-v2-color-blue-100);color:inherit;border:1px solid var(--bfc-v2-color-blue-300);border-bottom-width:3px;border-radius:8px;white-space:normal;cursor:pointer;&.selected{background:var(--bfc-v2-color-blue-200);border-color:var(--bfc-v2-color-blue-600)}}&.block-add{display:block;margin:8px 0;padding:8px 12px;background:var(--bfc-v2-color-blue-100);color:inherit;border:1px solid var(--bfc-v2-color-blue-300);border-bottom-width:3px;border-radius:8px;white-space:normal;cursor:pointer;>:first-child{margin-top:0}>:last-child{margin-bottom:0}.video-block,.embed-block{margin:0}.list-preview-line+.list-preview-line{margin-top:4px}&.selected{background:var(--bfc-v2-color-blue-200);border-color:var(--bfc-v2-color-blue-600)}}&.inline-add,&.block-add{a,video,iframe{pointer-events:none}}&.media-preview{min-height:24px;border-radius:6px;color:var(--bfc-text-subtle);font-size:.875em;font-weight:500;line-height:1.4;word-break:break-word}}}.milkdown .bf-mention-pill{-webkit-user-select:none;-moz-user-select:none;user-select:none}
1
+ .ProseMirror{position:relative;word-wrap:break-word;white-space:pre-wrap;white-space:break-spaces;font-variant-ligatures:none;font-feature-settings:"liga" 0}.ProseMirror pre{white-space:pre-wrap}.ProseMirror li{position:relative}.ProseMirror-hideselection *::selection{background:transparent}.ProseMirror-hideselection *::-moz-selection{background:transparent}.ProseMirror-hideselection{caret-color:transparent}.ProseMirror [draggable][contenteditable=false]{-webkit-user-select:text;-moz-user-select:text;user-select:text}.ProseMirror-selectednode{outline:2px solid #8cf}li.ProseMirror-selectednode{outline:none}li.ProseMirror-selectednode:after{content:"";position:absolute;inset:-2px -2px -2px -32px;border:2px solid #8cf;pointer-events:none}img.ProseMirror-separator{display:inline!important;border:none!important;margin:0!important}@layer milkdown-reset{.milkdown{position:relative}.milkdown *{margin:0;padding:0;box-sizing:border-box}.milkdown button,.milkdown input{border:none;background:none;box-shadow:none}.milkdown button:focus,.milkdown input:focus{outline:none}.milkdown :focus-visible{outline:none}.milkdown{font-family:var(--crepe-font-default);color:var(--crepe-color-on-background);background:var(--crepe-color-background)}.milkdown .milkdown-icon{display:inline-flex;align-items:center;justify-content:center}.milkdown .ProseMirror-focused{outline:none}.milkdown .ProseMirror{padding:60px 120px}.milkdown .ProseMirror *::-moz-selection{background:var(--crepe-color-selected)}.milkdown .ProseMirror *::selection{background:var(--crepe-color-selected)}.milkdown .ProseMirror li.ProseMirror-selectednode{background:var(--crepe-color-selected);outline:none}.milkdown .ProseMirror li.ProseMirror-selectednode ::-moz-selection{background:transparent}.milkdown .ProseMirror li.ProseMirror-selectednode ::selection{background:transparent}.milkdown .ProseMirror li.ProseMirror-selectednode::-moz-selection{background:transparent}.milkdown .ProseMirror li.ProseMirror-selectednode::selection{background:transparent}.milkdown .ProseMirror li.ProseMirror-selectednode:after{all:unset}.milkdown .ProseMirror .ProseMirror-selectednode{background:var(--crepe-color-selected);outline:none;background:color-mix(in srgb,var(--crepe-color-selected),transparent 60%)}.milkdown .ProseMirror .ProseMirror-selectednode ::-moz-selection{background:transparent}.milkdown .ProseMirror .ProseMirror-selectednode ::selection{background:transparent}.milkdown .ProseMirror .ProseMirror-selectednode::-moz-selection{background:transparent}.milkdown .ProseMirror .ProseMirror-selectednode::selection{background:transparent}.milkdown .ProseMirror[data-dragging=true]::-moz-selection,.milkdown .ProseMirror[data-dragging=true] *::-moz-selection{background:transparent}.milkdown .ProseMirror[data-dragging=true] .ProseMirror-selectednode,.milkdown .ProseMirror[data-dragging=true]::selection,.milkdown .ProseMirror[data-dragging=true] *::selection{background:transparent}.milkdown .ProseMirror[data-dragging=true] input::-moz-selection{background:var(--crepe-color-selected)}.milkdown .ProseMirror[data-dragging=true] input::selection{background:var(--crepe-color-selected)}.milkdown .ProseMirror img{vertical-align:bottom;max-width:100%}.milkdown .ProseMirror img.ProseMirror-selectednode{background:none;outline:2px solid var(--crepe-color-primary)}.milkdown .ProseMirror h1,.milkdown .ProseMirror h2,.milkdown .ProseMirror h3,.milkdown .ProseMirror h4,.milkdown .ProseMirror h5,.milkdown .ProseMirror h6{font-family:var(--crepe-font-title);font-weight:400;padding:2px 0}.milkdown .ProseMirror h1{font-size:42px;line-height:50px;margin-top:32px}.milkdown .ProseMirror h2{font-size:36px;line-height:44px;margin-top:28px}.milkdown .ProseMirror h3{font-size:32px;line-height:40px;margin-top:24px}.milkdown .ProseMirror h4{font-size:28px;line-height:36px;margin-top:20px}.milkdown .ProseMirror h5{font-size:24px;line-height:32px;margin-top:16px}.milkdown .ProseMirror h6{font-size:18px;font-weight:700;line-height:28px;margin-top:16px}.milkdown .ProseMirror p{font-size:16px;line-height:24px;padding:4px 0}.milkdown .ProseMirror code{color:var(--crepe-color-inline-code);background:color-mix(in srgb,var(--crepe-color-inline-area),transparent 40%);font-family:var(--crepe-font-code);padding:0 2px;border-radius:4px;font-size:87.5%;display:inline-block;line-height:1.4286}.milkdown .ProseMirror a{color:var(--crepe-color-primary);text-decoration:underline}.milkdown .ProseMirror pre{background:color-mix(in srgb,var(--crepe-color-inline-area),transparent 40%);padding:10px;border-radius:4px}.milkdown .ProseMirror pre code{padding:0;background:transparent}.milkdown .ProseMirror blockquote{position:relative;padding-left:40px;padding-top:0;padding-bottom:0;box-sizing:content-box;margin:4px 0}.milkdown .ProseMirror blockquote:before{content:"";width:4px;left:0;top:4px;bottom:4px;position:absolute;background:var(--crepe-color-selected);border-radius:100px}.milkdown .ProseMirror blockquote hr{margin-bottom:16px}.milkdown .ProseMirror hr{border:none;background-color:color-mix(in srgb,var(--crepe-color-outline),transparent 80%);background-clip:content-box;padding:6px 0;height:13px;position:relative}.milkdown .ProseMirror hr.ProseMirror-selectednode{outline:none;background-color:color-mix(in srgb,var(--crepe-color-outline),transparent 20%);background-clip:content-box}.milkdown .ProseMirror hr.ProseMirror-selectednode:before{content:"";position:absolute;inset:0;background-color:color-mix(in srgb,var(--crepe-color-outline),transparent 80%);pointer-events:none}.milkdown .ProseMirror ul,.milkdown .ProseMirror ol{padding:0}}.milkdown .milkdown-block-handle[data-show=false]{opacity:0;pointer-events:none}.milkdown .milkdown-block-handle{transition:all .2s;position:absolute;cursor:pointer;display:flex;justify-content:center;align-items:center;gap:2px}.milkdown .milkdown-block-handle .operation-item{border-radius:4px;width:32px;height:32px;padding:4px}.milkdown .milkdown-block-handle .operation-item svg{width:24px;height:24px;fill:var(--crepe-color-outline)}.milkdown .milkdown-block-handle .operation-item:hover{background:var(--crepe-color-hover)}.milkdown .milkdown-block-handle .operation-item.active{background:var(--crepe-color-selected)}.milkdown .milkdown-slash-menu[data-show=false]{display:none}.milkdown .milkdown-slash-menu{position:absolute;z-index:10;display:block;font-family:var(--crepe-font-default);color:var(--crepe-color-on-surface);background:var(--crepe-color-surface);border-radius:12px;box-shadow:var(--crepe-shadow-1)}.milkdown .milkdown-slash-menu ul{list-style-type:none}.milkdown .milkdown-slash-menu ul li{cursor:pointer;border-radius:8px}.milkdown .milkdown-slash-menu .tab-group{border-bottom:1px solid color-mix(in srgb,var(--crepe-color-outline),transparent 80%);padding:12px 12px 0}.milkdown .milkdown-slash-menu .tab-group ul{padding:8px 10px;display:flex;gap:10px;flex-wrap:nowrap}.milkdown .milkdown-slash-menu .tab-group ul li{padding:6px 10px;font-size:14px;font-style:normal;font-weight:600;line-height:20px}.milkdown .milkdown-slash-menu .tab-group ul li:hover{background:var(--crepe-color-hover)}.milkdown .milkdown-slash-menu .tab-group ul li.selected{background:var(--crepe-color-selected)}.milkdown .milkdown-slash-menu .menu-groups{padding:0 12px 12px;max-height:420px;overflow:auto;overscroll-behavior:contain;scroll-behavior:smooth}.milkdown .milkdown-slash-menu .menu-groups .menu-group h6{font-size:14px;font-style:normal;font-weight:600;line-height:20px;padding:14px 10px;text-transform:uppercase;color:color-mix(in srgb,var(--crepe-color-on-surface),transparent 40%)}.milkdown .milkdown-slash-menu .menu-groups .menu-group li{min-width:220px;display:flex;justify-content:flex-start;align-items:center;gap:16px;padding:14px 10px}.milkdown .milkdown-slash-menu .menu-groups .menu-group li.hover{background:var(--crepe-color-hover)}.milkdown .milkdown-slash-menu .menu-groups .menu-group li.active{background:var(--crepe-color-selected)}.milkdown .milkdown-slash-menu .menu-groups .menu-group li svg{width:24px;height:24px;color:var(--crepe-color-outline);fill:var(--crepe-color-outline)}.milkdown .milkdown-slash-menu .menu-groups .menu-group li>span{font-size:14px;font-style:normal;font-weight:600;line-height:20px}.milkdown .milkdown-slash-menu .menu-groups .menu-group+.menu-group:before{content:"";display:block;height:1px;background:color-mix(in srgb,var(--crepe-color-outline),transparent 80%);margin:0 10px}.milkdown .milkdown-code-block{display:block;position:relative;padding:8px 20px 20px;background:var(--crepe-color-surface);margin:4px 0}.milkdown .milkdown-code-block .language-picker{padding-top:10px;width:-moz-max-content;width:max-content;position:absolute;z-index:999}.milkdown .milkdown-code-block .hidden{display:none!important}.milkdown .milkdown-code-block.selected{outline:1px solid var(--crepe-color-primary)}.milkdown .milkdown-code-block .milkdown-code-block-placeholder{margin:0;padding:4px 0;font-family:var(--crepe-font-code, monospace);font-size:14px;line-height:1.5;white-space:pre-wrap;word-break:break-all}.milkdown .milkdown-code-block .milkdown-code-block-placeholder code{font-family:inherit}.milkdown .milkdown-code-block .cm-editor{outline:none!important;background:var(--crepe-color-surface)}.milkdown .milkdown-code-block .cm-gutters{border-right:none;background:var(--crepe-color-surface)}.milkdown .milkdown-code-block .cm-panel{font-family:var(--crepe-font-default);background:var(--crepe-color-surface);color:var(--crepe-color-on-surface)}.milkdown .milkdown-code-block .cm-panel input{caret-color:var(--crepe-color-outline);border-radius:4px;background:var(--crepe-color-surface-low)}.milkdown .milkdown-code-block .cm-panel>button{text-transform:capitalize;background:var(--crepe-color-surface-low);color:var(--crepe-color-on-surface-variant);border:1px solid var(--crepe-color-outline);font-weight:600;cursor:pointer;border-radius:4px}.milkdown .milkdown-code-block .cm-panel>button:hover{background:var(--crepe-color-hover)}.milkdown .milkdown-code-block .cm-panel>label{display:inline-flex;align-items:center;text-transform:capitalize}.milkdown .milkdown-code-block .cm-panel>label input[type=checkbox]{border-radius:4px;cursor:pointer;-moz-appearance:none;appearance:none;-webkit-appearance:none;background:var(--crepe-color-surface-low);width:1.15em;height:1.15em;border:1px solid var(--crepe-color-outline);display:grid;place-content:center}.milkdown .milkdown-code-block .cm-panel>label input[type=checkbox]:before{content:"";transform-origin:bottom left;width:.65em;height:.65em;transform:scale(0);transition:.12s transform ease-in-out;box-shadow:inset 1em 1em var(--crepe-color-outline);clip-path:polygon(14% 44%,0 65%,50% 100%,100% 16%,80% 0%,43% 62%)}.milkdown .milkdown-code-block .cm-panel>label input[type=checkbox]:checked:before{transform:scale(1)}.milkdown .milkdown-code-block .tools{display:flex;justify-content:space-between;align-items:center}.milkdown .milkdown-code-block .tools input{caret-color:var(--crepe-color-outline)}.milkdown .milkdown-code-block .tools .tools-button-group{display:flex;gap:2px}.milkdown .milkdown-code-block .tools .tools-button-group button{background:var(--crepe-color-secondary);color:var(--crepe-color-on-surface-variant);padding:4px 10px;opacity:0;cursor:pointer;border-radius:4px;font-size:12px;line-height:16px;font-weight:600;font-family:var(--crepe-font-default);transition:opacity .2s ease-in-out;display:flex;align-items:center;justify-content:center;gap:4px}.milkdown .milkdown-code-block .tools .tools-button-group button svg{width:14px;height:14px;fill:var(--crepe-color-on-surface-variant)}.milkdown .milkdown-code-block .tools .tools-button-group button:first-child{border-top-left-radius:100px;border-bottom-left-radius:100px}.milkdown .milkdown-code-block .tools .tools-button-group button:last-child{border-top-right-radius:100px;border-bottom-right-radius:100px}.milkdown .milkdown-code-block .tools .language-button{display:flex;align-items:center;font-family:var(--crepe-font-default);gap:6px;padding:2px 4px 2px 8px;background:var(--crepe-color-surface-low);color:var(--crepe-color-on-surface-variant);border-radius:4px;font-size:12px;font-weight:600;line-height:16px;margin-bottom:8px;opacity:0;cursor:pointer;transition:opacity .2s ease-in-out}.milkdown .milkdown-code-block .tools .language-button:hover{background:var(--crepe-color-hover)}.milkdown .milkdown-code-block .tools .language-button .expand-icon{transition:transform .2s ease-in-out;width:18px;height:18px;display:flex;justify-content:center;align-items:center}.milkdown .milkdown-code-block .tools .language-button .expand-icon svg{width:14px;height:14px;color:var(--crepe-color-outline)}.milkdown .milkdown-code-block .tools .language-button[data-expanded=true] .expand-icon{transform:rotate(180deg)}.milkdown .milkdown-code-block .tools .language-button .expand-icon svg:focus,.milkdown .milkdown-code-block .tools .language-button .expand-icon:focus-visible{outline:none}.milkdown .milkdown-code-block:hover .language-button{opacity:1}.milkdown .milkdown-code-block:hover .tools-button-group>button{opacity:1}.milkdown .milkdown-code-block .list-wrapper{background:var(--crepe-color-surface-low);border-radius:12px;box-shadow:var(--crepe-shadow-1);width:240px;padding-top:12px}.milkdown .milkdown-code-block .language-list{height:410px;overflow-y:auto;overscroll-behavior:contain;margin:0;padding:0}.milkdown .milkdown-code-block .language-list-item{cursor:pointer;margin:0;display:flex;align-items:center;gap:8px;padding:4px 22px;font-size:14px;font-weight:600;line-height:20px}.milkdown .milkdown-code-block .language-list-item:hover{background:var(--crepe-color-hover)}.milkdown .milkdown-code-block .language-list-item:focus-visible{outline:none;background:var(--crepe-color-hover)}.milkdown .milkdown-code-block .language-list-item .leading,.milkdown .milkdown-code-block .language-list-item .leading svg{width:24px;height:24px}.milkdown .milkdown-code-block .language-list-item.no-result{cursor:default;opacity:.6}.milkdown .milkdown-code-block .language-list-item.no-result:hover{background:transparent}.milkdown .milkdown-code-block .search-box{display:flex;align-items:center;margin:0 12px 8px;background:transparent;border-radius:4px;outline:1px solid var(--crepe-color-primary);gap:8px;padding:6px 10px}.milkdown .milkdown-code-block .search-box:has(input:focus){outline:2px solid var(--crepe-color-primary)}.milkdown .milkdown-code-block .search-box .search-input{width:100%;color:var(--crepe-color-on-surface)}.milkdown .milkdown-code-block .search-box .search-icon{display:none}.milkdown .milkdown-code-block .search-box .clear-icon{cursor:pointer;width:20px;height:20px}.milkdown .milkdown-code-block .search-box .clear-icon svg{width:20px;height:20px;color:var(--crepe-color-primary);fill:var(--crepe-color-primary)}.milkdown .milkdown-code-block .search-box .clear-icon:hover{background:var(--crepe-color-hover)}.milkdown .milkdown-code-block .search-box input{font-family:var(--crepe-font-default);font-size:14px;line-height:20px;background:transparent}.milkdown .milkdown-code-block .search-box input:focus{outline:none}.milkdown .milkdown-code-block .preview-panel .preview-divider{height:1px;opacity:.2;background:var(--crepe-color-outline);margin:6px 0}.milkdown .milkdown-code-block .preview-panel .preview-label{margin:6px 0;font-size:12px;color:color-mix(in srgb,var(--crepe-color-on-surface),transparent 40%);font-weight:600;text-transform:uppercase;font-family:var(--crepe-font-default)}.milkdown .milkdown-code-block .preview-panel .preview{text-align:center;overflow-x:auto}.ProseMirror-gapcursor{display:none;pointer-events:none;position:absolute}.ProseMirror-gapcursor:after{content:"";display:block;position:absolute;top:-2px;width:20px;border-top:1px solid black;animation:ProseMirror-cursor-blink 1.1s steps(2,start) infinite}@keyframes ProseMirror-cursor-blink{to{visibility:hidden}}.ProseMirror-focused .ProseMirror-gapcursor{display:block}.ProseMirror.virtual-cursor-enabled{caret-color:transparent}.ProseMirror-focused{--prosemirror-virtual-cursor-color: red}.ProseMirror .prosemirror-virtual-cursor{position:absolute;cursor:text;pointer-events:none;transform:translate(-1px);-moz-user-select:none;user-select:none;-webkit-user-select:none;border-left:2px solid var(--prosemirror-virtual-cursor-color)}.ProseMirror .prosemirror-virtual-cursor-left{width:1ch;transform:translate(calc(-1ch - 1px));border-bottom:2px solid var(--prosemirror-virtual-cursor-color);border-right:2px solid var(--prosemirror-virtual-cursor-color);border-left:none}.ProseMirror .prosemirror-virtual-cursor-right{width:1ch;border-bottom:2px solid var(--prosemirror-virtual-cursor-color);border-left:2px solid var(--prosemirror-virtual-cursor-color);border-right:none}.ProseMirror-focused .prosemirror-virtual-cursor-animation{animation:prosemirror-virtual-cursor-blink 1s linear infinite;animation-delay:.5s}@keyframes prosemirror-virtual-cursor-blink{0%{opacity:1}50%{opacity:0}to{opacity:1}}.milkdown .crepe-drop-cursor{background-color:color-mix(in srgb,var(--crepe-color-outline),transparent 50%);opacity:.5;transition:all .2s;pointer-events:none}.milkdown .ProseMirror-gapcursor:after{box-sizing:border-box;border-top:1px solid var(--crepe-color-on-background)}.milkdown .ProseMirror-focused{--prosemirror-virtual-cursor-color: var(--crepe-color-outline)}.milkdown .milkdown-image-inline{outline:none;display:inline-flex;vertical-align:text-bottom}.milkdown .milkdown-image-inline input{background:transparent;outline:none;border:0;caret-color:var(--crepe-color-outline)}.milkdown .milkdown-image-inline>.empty-image-inline{display:inline-flex}.milkdown .milkdown-image-inline>.empty-image-inline .confirm{cursor:pointer}.milkdown .milkdown-image-inline>.empty-image-inline .link-importer{position:relative;flex:1}.milkdown .milkdown-image-inline>.empty-image-inline .link-importer>.link-input-area{width:208px;color:var(--crepe-color-on-background);display:flex}.milkdown .milkdown-image-inline>.empty-image-inline .link-importer .placeholder{position:absolute;top:0;left:0;bottom:0;display:flex;align-items:center;cursor:text}.milkdown .milkdown-image-inline>.empty-image-inline .link-importer .placeholder .uploader{cursor:pointer;display:flex}.milkdown .milkdown-image-inline .hidden{display:none!important}.milkdown .milkdown-image-inline.empty.selected{background:none;outline:none}.milkdown .milkdown-image-inline.empty.selected .empty-image-inline{box-shadow:var(--crepe-shadow-1)}.milkdown .milkdown-image-inline.selected{background:none;outline:1px solid var(--crepe-color-primary)}.milkdown .milkdown-image-inline.selected :not(input)::-moz-selection{background:transparent}.milkdown .milkdown-image-inline.selected :not(input)::selection{background:transparent}.milkdown .milkdown-image-inline .empty-image-inline{align-items:center;padding:4px 10px;gap:10px;background:var(--crepe-color-surface);font-family:var(--crepe-font-default);border-radius:8px;font-size:16px}.milkdown .milkdown-image-inline .empty-image-inline .image-icon svg{width:18px;height:18px;fill:var(--crepe-color-outline)}.milkdown .milkdown-image-inline .empty-image-inline .image-icon{padding:3px;width:24px;height:24px}.milkdown .milkdown-image-inline .empty-image-inline .link-importer{height:24px}.milkdown .milkdown-image-inline .empty-image-inline .link-importer .placeholder{color:color-mix(in srgb,var(--crepe-color-on-background),transparent 60%)}.milkdown .milkdown-image-inline .empty-image-inline .link-importer .placeholder :not(input)::-moz-selection{background:transparent}.milkdown .milkdown-image-inline .empty-image-inline .link-importer .placeholder :not(input)::selection{background:transparent}.milkdown .milkdown-image-inline .empty-image-inline .link-importer .link-input-area{line-height:24px}.milkdown .milkdown-image-inline .empty-image-inline .link-importer .placeholder .uploader{gap:8px;color:var(--crepe-color-primary);justify-content:center;transition:color .2s;font-family:var(--crepe-font-default)}.milkdown .milkdown-image-inline .empty-image-inline .link-importer.focus .placeholder .uploader{color:unset}.milkdown .milkdown-image-inline .empty-image-inline .link-importer .placeholder .uploader:hover{color:var(--crepe-color-primary)}.milkdown .milkdown-image-inline .empty-image-inline .link-importer .placeholder .text{margin-left:8px}.milkdown .milkdown-image-inline .empty-image-inline .confirm svg{width:18px;height:18px}.milkdown .milkdown-image-inline .empty-image-inline .confirm{display:flex;width:24px;height:24px;padding:3px;border-radius:8px;color:var(--crepe-color-primary)}.milkdown .milkdown-image-inline .empty-image-inline .confirm:hover{background:var(--crepe-color-hover)}.milkdown .milkdown-image-block{outline:none;margin:4px 0;display:block}.milkdown .milkdown-image-block>.image-wrapper{position:relative;width:-moz-fit-content;width:fit-content;margin:0 auto;min-width:100px}.milkdown .milkdown-image-block>.image-wrapper .operation{position:absolute;display:flex}.milkdown .milkdown-image-block>.image-wrapper .operation>.operation-item{cursor:pointer}.milkdown .milkdown-image-block>.image-wrapper img{max-width:100%;min-height:100px;display:block;-o-object-fit:cover;object-fit:cover}.milkdown .milkdown-image-block>.image-wrapper>.image-resize-handle{position:absolute;left:50%;transform:translate(-50%)}.milkdown .milkdown-image-block>.image-wrapper>.image-resize-handle:hover{cursor:row-resize}.milkdown .milkdown-image-block input{background:transparent;outline:none;border:0;caret-color:var(--crepe-color-outline)}.milkdown .milkdown-image-block>.caption-input{display:block;width:100%;text-align:center;color:var(--crepe-color-on-background)}.milkdown .milkdown-image-block>.image-edit{display:flex}.milkdown .milkdown-image-block>.image-edit .confirm{cursor:pointer}.milkdown .milkdown-image-block>.image-edit .link-importer{position:relative;flex:1}.milkdown .milkdown-image-block>.image-edit .link-importer>.link-input-area{width:100%}.milkdown .milkdown-image-block>.image-edit .link-importer .placeholder{position:absolute;top:0;left:0;bottom:0;display:flex;align-items:center;cursor:text}.milkdown .milkdown-image-block>.image-edit .link-importer .placeholder .uploader{cursor:pointer;display:flex}.milkdown .milkdown-image-block .hidden{display:none!important}.milkdown .milkdown-image-block.selected>.image-edit:not(:has(input:focus)){position:relative}.milkdown .milkdown-image-block.selected>.image-edit:not(:has(input:focus)):before{content:"";position:absolute;inset:0;background:color-mix(in srgb,var(--crepe-color-selected),transparent 60%);pointer-events:none}.milkdown .milkdown-image-block.selected>.image-wrapper{position:relative}.milkdown .milkdown-image-block.selected>.image-wrapper:before{content:"";position:absolute;inset:0;background:color-mix(in srgb,var(--crepe-color-selected),transparent 60%)}.milkdown .milkdown-image-block.selected :not(input)::-moz-selection{background:transparent}.milkdown .milkdown-image-block.selected :not(input)::selection{background:transparent}.milkdown .milkdown-image-block .image-wrapper{display:flex;justify-content:center;align-items:center}.milkdown .milkdown-image-block .image-wrapper .operation{gap:12px;right:12px;top:12px;opacity:0;transition:all .2s}.milkdown .milkdown-image-block:hover>.image-wrapper .operation{opacity:1}.milkdown .milkdown-image-block .image-wrapper .operation>.operation-item{color:var(--crepe-color-on-inverse);padding:4px;background:var(--crepe-color-inverse);opacity:.6;border-radius:50%;width:32px;height:32px}.milkdown .milkdown-image-block .image-wrapper .operation>.operation-item svg{width:24px;height:24px}.milkdown .milkdown-image-block .image-wrapper .image-resize-handle{height:4px;bottom:-2px;max-width:160px;width:100%;background:var(--crepe-color-outline);opacity:0;transition:all .2s;border-radius:4px}.milkdown .milkdown-image-block:hover>.image-wrapper .image-resize-handle{opacity:1}.milkdown .milkdown-image-block .caption-input{margin:4px auto;font-family:var(--crepe-font-default)}.milkdown .milkdown-image-block .image-edit{align-items:center;padding:16px 24px;gap:16px;background:var(--crepe-color-surface);height:56px}.milkdown .milkdown-image-block .image-edit .image-icon{color:var(--crepe-color-outline)}.milkdown .milkdown-image-block .image-edit .image-icon svg{width:24px;height:24px;display:flex;justify-content:center;align-items:center;fill:var(--crepe-color-outline)}.milkdown .milkdown-image-block .image-edit .link-importer .placeholder{color:color-mix(in srgb,var(--crepe-color-on-background),transparent 60%)}.milkdown .milkdown-image-block .image-edit .link-importer .placeholder :not(input)::-moz-selection{background:transparent}.milkdown .milkdown-image-block .image-edit .link-importer .placeholder :not(input)::selection{background:transparent}.milkdown .milkdown-image-block .image-edit .link-importer .link-input-area{line-height:24px;color:var(--crepe-color-on-background)}.milkdown .milkdown-image-block .image-edit .link-importer .placeholder .uploader{gap:8px;color:var(--crepe-color-primary);justify-content:center;transition:color .2s;font-weight:600}.milkdown .milkdown-image-block .image-edit .link-importer.focus .placeholder .uploader{color:unset}.milkdown .milkdown-image-block .image-edit .link-importer .placeholder .uploader:hover{color:var(--crepe-color-primary)}.milkdown .milkdown-image-block .image-edit .link-importer .placeholder .text{margin-left:8px}.milkdown .milkdown-image-block .image-edit .confirm{background:var(--crepe-color-secondary);color:var(--crepe-color-on-secondary);line-height:40px;padding:0 24px;border-radius:100px;font-size:14px;font-weight:600}.milkdown .milkdown-image-block .image-edit .confirm:hover{background:linear-gradient(0deg,#1d192b14 0% 100%),var(--crepe-color-secondary)}.milkdown .milkdown-link-preview{position:absolute;z-index:10}.milkdown .milkdown-link-preview[data-show=false]{display:none}.milkdown .milkdown-link-preview>.link-preview{height:32px;display:flex;justify-content:center;padding:4px 10px;background:var(--crepe-color-surface);gap:10px;border-radius:8px;cursor:pointer;box-shadow:var(--crepe-shadow-1)}.milkdown .milkdown-link-preview>.link-preview>.link-display{text-decoration:none;color:unset}.milkdown .milkdown-link-preview>.link-preview>.link-display:hover:before{display:block}.milkdown .milkdown-link-preview>.link-preview>.link-icon>svg{width:18px;height:18px;color:var(--crepe-color-outline);fill:var(--crepe-color-outline)}.milkdown .milkdown-link-preview>.link-preview>.link-icon{border-radius:8px;padding:3px;line-height:24px}.milkdown .milkdown-link-preview>.link-preview>.link-icon:hover{background:var(--crepe-color-hover)}.milkdown .milkdown-link-preview>.link-preview>.link-display{width:240px;line-height:24px;overflow:hidden;text-overflow:ellipsis;font-size:14px;white-space:nowrap}.milkdown .milkdown-link-preview>.link-preview>.link-display:hover{text-decoration:underline}.milkdown .milkdown-link-preview>.link-preview>.button>svg{width:18px;height:18px;color:var(--crepe-color-outline);fill:var(--crepe-color-outline)}.milkdown .milkdown-link-preview>.link-preview>.button{padding:3px;border-radius:8px;line-height:24px}.milkdown .milkdown-link-preview>.link-preview>.button:hover{background:var(--crepe-color-hover)}.milkdown .milkdown-link-edit{position:absolute;z-index:10}.milkdown .milkdown-link-edit[data-show=false]{display:none}.milkdown .milkdown-link-edit>.link-edit{height:32px;display:flex;justify-content:center;padding:4px 10px 4px 20px;background:var(--crepe-color-surface);gap:8px;border-radius:8px;box-shadow:var(--crepe-shadow-1)}.milkdown .milkdown-link-edit>.link-edit>.input-area{outline:none;background:transparent;width:200px;font-size:14px;color:var(--crepe-color-on-background)}.milkdown .milkdown-link-edit>.link-edit>.button>svg{width:18px;height:18px;color:var(--crepe-color-outline);fill:var(--crepe-color-outline)}.milkdown .milkdown-link-edit>.link-edit>.button{padding:3px;cursor:pointer;border-radius:8px;font-size:12px;line-height:24px}.milkdown .milkdown-link-edit>.link-edit>.button:hover{background:var(--crepe-color-hover)}.milkdown .milkdown-link-edit>.link-edit>.button.hidden{visibility:hidden}.milkdown .milkdown-list-item-block{display:block;padding:0}.milkdown .milkdown-list-item-block>.list-item{display:flex;align-items:flex-start}.milkdown .milkdown-list-item-block>.list-item>.children{min-width:0;flex:1}.milkdown .milkdown-list-item-block li{gap:10px}.milkdown .milkdown-list-item-block li .label-wrapper{color:var(--crepe-color-outline)}.milkdown .milkdown-list-item-block li .label-wrapper svg{fill:var(--crepe-color-outline)}.milkdown .milkdown-list-item-block li .label-wrapper{height:32px;width:24px;display:flex;justify-content:center;align-items:center}.milkdown .milkdown-list-item-block li .label-wrapper .label{height:32px;padding:4px 0;width:24px;text-align:right}.milkdown .milkdown-list-item-block li .label-wrapper .checked,.milkdown .milkdown-list-item-block li .label-wrapper .unchecked{cursor:pointer}.milkdown .milkdown-list-item-block li .label-wrapper .readonly{cursor:not-allowed}.milkdown .crepe-placeholder:before{position:absolute;color:color-mix(in srgb,var(--crepe-color-on-background),transparent 60%);pointer-events:none;height:0;content:attr(data-placeholder)}.milkdown:has(.milkdown-link-preview[data-show=true]) .milkdown-toolbar,.milkdown:has(.milkdown-link-edit[data-show=true]) .milkdown-toolbar{display:none}.milkdown .milkdown-toolbar[data-show=false]{display:none}.milkdown .milkdown-toolbar{z-index:10;position:absolute;display:flex;background:var(--crepe-color-surface);box-shadow:var(--crepe-shadow-1);border-radius:8px;overflow:hidden}.milkdown .milkdown-toolbar .divider{width:1px;background:color-mix(in srgb,var(--crepe-color-outline),transparent 80%);height:24px;margin:10px}.milkdown .milkdown-toolbar .toolbar-item{width:32px;height:32px;margin:6px;padding:4px;cursor:pointer;border-radius:4px}.milkdown .milkdown-toolbar .toolbar-item:hover{background:var(--crepe-color-hover)}.milkdown .milkdown-toolbar .toolbar-item:active{background:var(--crepe-color-selected)}.milkdown .milkdown-toolbar .toolbar-item svg{height:24px;width:24px;color:var(--crepe-color-outline);fill:var(--crepe-color-outline)}.milkdown .milkdown-toolbar .toolbar-item.active svg{color:var(--crepe-color-primary);fill:var(--crepe-color-primary)}.ProseMirror .tableWrapper{overflow-x:auto}.ProseMirror table{border-collapse:collapse;table-layout:fixed;width:100%;overflow:hidden}.ProseMirror td,.ProseMirror th{vertical-align:top;box-sizing:border-box;position:relative}.ProseMirror td:not([data-colwidth]):not(.column-resize-dragging),.ProseMirror th:not([data-colwidth]):not(.column-resize-dragging){min-width:var(--default-cell-min-width)}.ProseMirror .column-resize-handle{position:absolute;right:-2px;top:0;bottom:0;width:4px;z-index:20;background-color:#adf;pointer-events:none}.ProseMirror.resize-cursor{cursor:ew-resize;cursor:col-resize}.ProseMirror .selectedCell:after{z-index:2;position:absolute;content:"";inset:0;background:#c8c8ff66;pointer-events:none}.milkdown .milkdown-table-block{display:block;margin:4px 0}.milkdown .milkdown-table-block th,.milkdown .milkdown-table-block td{border:1px solid color-mix(in srgb,var(--crepe-color-outline),transparent 80%);padding:4px 16px}.milkdown .milkdown-table-block th .ProseMirror-selectednode,.milkdown .milkdown-table-block td .ProseMirror-selectednode{background-color:transparent!important}.milkdown .milkdown-table-block th:has(.ProseMirror-selectednode),.milkdown .milkdown-table-block td:has(.ProseMirror-selectednode){outline:1px solid var(--crepe-color-primary);outline-offset:-1px}.milkdown .milkdown-table-block .selectedCell:after{background-color:var(--crepe-color-selected);opacity:.4}.milkdown .milkdown-table-block .selectedCell ::-moz-selection{background:transparent}.milkdown .milkdown-table-block .selectedCell ::selection{background:transparent}.milkdown .milkdown-table-block .drag-preview{background-color:var(--crepe-color-surface);opacity:.4;position:absolute;z-index:100;display:flex;flex-direction:column;outline:1px solid var(--crepe-color-primary);outline-offset:-1px}.milkdown .milkdown-table-block .drag-preview[data-show=false]{display:none}.milkdown .milkdown-table-block .drag-preview th:has(.ProseMirror-selectednode),.milkdown .milkdown-table-block .drag-preview td:has(.ProseMirror-selectednode){outline:none}.milkdown .milkdown-table-block .handle{position:absolute;font-size:14px;transition:opacity ease-in-out .2s}.milkdown .milkdown-table-block .handle[data-show=false]{opacity:0}.milkdown .milkdown-table-block svg{fill:var(--crepe-color-outline)}.milkdown .milkdown-table-block .cell-handle{z-index:50;left:-999px;top:-999px;cursor:grab;background-color:var(--crepe-color-surface);color:var(--crepe-color-outline);border-radius:100px;box-shadow:var(--crepe-shadow-1);transition:background-color .2s ease-in-out}.milkdown .milkdown-table-block .cell-handle:hover{background-color:var(--crepe-color-hover)}.milkdown .milkdown-table-block .cell-handle:has(.button-group:hover){background-color:var(--crepe-color-surface)}.milkdown .milkdown-table-block .cell-handle[data-role=col-drag-handle]{transform:translateY(50%);padding:0 6px;width:28px;height:16px}.milkdown .milkdown-table-block .cell-handle[data-role=row-drag-handle]{transform:translate(50%);padding:6px 0;width:16px;height:28px}.milkdown .milkdown-table-block .cell-handle .button-group{position:absolute;transform:translate(-50%);left:50%;top:-52px;display:flex;background-color:var(--crepe-color-surface);border-radius:8px;box-shadow:var(--crepe-shadow-1)}.milkdown .milkdown-table-block .cell-handle .button-group:after{content:"";position:absolute;bottom:-8px;height:8px;background-color:transparent;width:100%}.milkdown .milkdown-table-block .cell-handle .button-group[data-show=false]{display:none}.milkdown .milkdown-table-block .cell-handle .button-group button{cursor:pointer;margin:6px;padding:4px;display:flex;justify-content:center;align-items:center;border-radius:4px}.milkdown .milkdown-table-block .cell-handle .button-group button svg{width:24px;height:24px}.milkdown .milkdown-table-block .cell-handle .button-group button:hover{border-radius:8px;background-color:var(--crepe-color-hover)}.milkdown .milkdown-table-block .cell-handle .button-group button:active{background:var(--crepe-color-selected)}.milkdown .milkdown-table-block .cell-handle:hover{opacity:1}.milkdown .milkdown-table-block .line-handle{z-index:20;background-color:var(--crepe-color-primary)}.milkdown .milkdown-table-block .line-handle:hover{opacity:1}.milkdown .milkdown-table-block .line-handle .add-button{cursor:pointer;background-color:var(--crepe-color-surface);color:var(--crepe-color-outline);border-radius:100px;box-shadow:var(--crepe-shadow-1);transition:background-color .2s ease-in-out}.milkdown .milkdown-table-block .line-handle .add-button svg{width:16px;height:16px}.milkdown .milkdown-table-block .line-handle .add-button:hover{background-color:var(--crepe-color-hover)}.milkdown .milkdown-table-block .line-handle .add-button:active{background:var(--crepe-color-selected)}.milkdown .milkdown-table-block .line-handle[data-role=x-line-drag-handle]{height:1px;z-index:2}.milkdown .milkdown-table-block .line-handle[data-role=x-line-drag-handle] .add-button{position:absolute;transform:translate(-50%) translateY(-50%);padding:6px 0;width:16px;height:28px}.milkdown .milkdown-table-block .line-handle[data-role=y-line-drag-handle]{width:1px;z-index:1}.milkdown .milkdown-table-block .line-handle[data-role=y-line-drag-handle] .add-button{position:absolute;transform:translateY(-50%) translate(-50%);padding:0 6px;width:28px;height:16px}.milkdown .milkdown-table-block .line-handle[data-display-type=indicator] .add-button,.milkdown .milkdown-table-block.readonly .handle{display:none}.milkdown .ProseMirror{padding:0;--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.milkdown .ProseMirror b,.milkdown .ProseMirror strong{font-weight:600}.milkdown .ProseMirror-yjs-cursor{position:relative;margin-left:-1px;margin-right:-1px;pointer-events:none;overflow-wrap:normal;word-break:normal;border-width:1px;--tw-border-opacity: 1;border-left-color:rgb(0 0 0 / var(--tw-border-opacity, 1));border-right-color:rgb(0 0 0 / var(--tw-border-opacity, 1))}.milkdown .ProseMirror-yjs-cursor>div{position:absolute;top:-2.1em;left:-1px;font-size:.75rem;line-height:1rem;white-space:nowrap;background-color:var(--bfc-primary);padding:.25rem .5rem;color:var(--bfc-primary-foreground);-webkit-user-select:none;-moz-user-select:none;user-select:none;border-top-right-radius:.125rem;border-bottom-right-radius:.125rem;border-top-left-radius:.125rem}.milkdown{[data-name=notice-tooltip] button{background:revert-layer;color:revert-layer}&[data-link-tooltip-visible] .milkdown-toolbar:not([data-name]){display:none!important}}@keyframes grammar-check-pulse{0%,to{opacity:.4}50%{opacity:.15}}.grammar-check-highlight{animation:grammar-check-pulse .5s ease-in-out infinite}@keyframes bf-media-upload-pulse{0%,to{background-color:#0000001f}50%{background-color:#00000047}}.milkdown{.bf-media-upload-placeholder{position:relative;display:inline-block;max-width:100%;margin:.25rem 0 1.75rem;vertical-align:bottom}.bf-media-upload-placeholder__overlay{position:absolute;inset:0;z-index:1;animation:bf-media-upload-pulse 2s ease-in-out infinite;background:#00000059;pointer-events:none;border-radius:.5rem}.bf-media-upload-placeholder__media{display:block;max-width:100%;height:auto;border-radius:.5rem}.bf-circular-progress{position:absolute;top:50%;left:50%;z-index:2;width:50px;height:50px;margin:-25px 0 0 -25px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:conic-gradient(currentColor 0deg,color-mix(in srgb,currentColor 18%,transparent) 0);pointer-events:none}.bf-circular-progress__inner{position:absolute;width:40px;height:40px;border-radius:50%;background:var(--bfc-v2-color-mono-100, #f4f4f5)}.bf-circular-progress__percentage{position:relative;z-index:1;margin:0;font-size:12px;font-weight:600;line-height:1;color:var(--bfc-v2-color-mono-900, #18181b)}.milkdown-table-block{overflow-x:auto;table{width:auto;tr>th{white-space:nowrap}}}.milkdown-image-block{.image-wrapper{.image-resize-handle{height:8px;background:var(--bfc-v2-color-mono-200);border:1px solid var(--bfc-v2-color-mono-900);border-radius:3px;opacity:.75;&:hover{cursor:ns-resize;transform:translate(-50%) scaleY(1.3)}}&:hover{cursor:default}}&:hover>.image-wrapper .image-resize-handle{opacity:1}}.ProseMirror[contenteditable=false] .milkdown-image-block{.image-resize-handle{display:none}>.image-wrapper .operation{display:none}&:hover>.image-wrapper{cursor:default}}.ProseMirror [data-notice-block-type] [data-node-view-content]>:first-child{margin-top:0}.video-viewer.has-custom-timeline{video::-webkit-media-controls-timeline{opacity:0}video:fullscreen::-webkit-media-controls-timeline,video:-webkit-full-screen::-webkit-media-controls-timeline{opacity:1}}.milkdown-code-block .cm-content{white-space:break-spaces;max-width:95%;flex-basis:auto!important}.review-suggestion{&.target-replace-hidden{display:none}&.target-delete{background:var(--bfc-destructive-bg);color:var(--bfc-text-subtle);text-decoration:line-through;text-decoration-thickness:2px;text-decoration-color:var(--bfc-destructive-text);border:1px solid var(--bfc-v2-color-red-300);border-bottom-width:3px;border-radius:8px;cursor:pointer;padding:1px 4px;&[data-fragment-position=first]{border-right:0;border-top-right-radius:0;border-bottom-right-radius:0;padding-right:0}&[data-fragment-position=middle]{border-left:0;border-right:0;border-radius:0;padding-left:0;padding-right:0}&[data-fragment-position=last]{border-left:0;border-top-left-radius:0;border-bottom-left-radius:0;padding-left:0}&.selected{background:var(--bfc-v2-color-red-200);border-color:var(--bfc-destructive-border)}}&.inline-add{display:inline;padding:0 4px;background:var(--bfc-v2-color-blue-100);color:inherit;border:1px solid var(--bfc-v2-color-blue-300);border-bottom-width:3px;border-radius:8px;white-space:normal;cursor:pointer;&.selected{background:var(--bfc-v2-color-blue-200);border-color:var(--bfc-v2-color-blue-600)}}&.block-add{display:block;margin:8px 0;padding:8px 12px;background:var(--bfc-v2-color-blue-100);color:inherit;border:1px solid var(--bfc-v2-color-blue-300);border-bottom-width:3px;border-radius:8px;white-space:normal;cursor:pointer;>:first-child{margin-top:0}>:last-child{margin-bottom:0}.video-block,.embed-block{margin:0}.list-preview-line+.list-preview-line{margin-top:4px}&.selected{background:var(--bfc-v2-color-blue-200);border-color:var(--bfc-v2-color-blue-600)}}&.inline-add,&.block-add{a,video,iframe{pointer-events:none}}&.media-preview{min-height:24px;border-radius:6px;color:var(--bfc-text-subtle);font-size:.875em;font-weight:500;line-height:1.4;word-break:break-word}}}.milkdown .bf-mention-pill{-webkit-user-select:none;-moz-user-select:none;user-select:none}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@brainfish-ai/editor",
3
- "version": "0.16.0",
3
+ "version": "0.16.2",
4
4
  "description": "Markdown editor package for Brainfish based on Milkdown",
5
5
  "types": "dist/index.d.ts",
6
6
  "sideEffects": [