@jvs-milkdown/crepe 1.2.22 → 1.2.24

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.
@@ -4,6 +4,7 @@ import type { CrepeFeatureConfig } from '../feature';
4
4
  import type { DefineFeature } from '../feature/shared';
5
5
  import { CrepeFeature } from '../feature';
6
6
  import { type CrepeTranslations } from './locale';
7
+ import { type ViewMenuState } from '../feature/fixed-toolbar/view-menu-state';
7
8
  export interface CrepeBuilderConfig {
8
9
  root?: Node | string | null;
9
10
  defaultValue?: DefaultValue;
@@ -26,5 +27,9 @@ export declare class CrepeBuilder {
26
27
  showDiff: (oldMarkdown: string, newMarkdown: string) => this;
27
28
  hideDiff: () => this;
28
29
  on: (fn: (api: ListenerManager) => void) => this;
30
+ get outlineVisible(): boolean;
31
+ setOutlineVisible: (visible: boolean) => this;
32
+ getViewMenuState: () => any;
33
+ setViewMenuState: (state: Partial<ViewMenuState>) => this;
29
34
  }
30
35
  //# sourceMappingURL=builder.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../../../src/core/builder.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,YAAY,EAEjB,MAAM,EAKP,MAAM,wBAAwB,CAAA;AAI/B,OAAO,EAGL,KAAK,eAAe,EACrB,MAAM,mCAAmC,CAAA;AAO1C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AACpD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAEtD,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAGzC,OAAO,EAAc,KAAK,iBAAiB,EAAE,MAAM,UAAU,CAAA;AAU7D,MAAM,WAAW,kBAAkB;IAIjC,IAAI,CAAC,EAAE,IAAI,GAAG,MAAM,GAAG,IAAI,CAAA;IAG3B,YAAY,CAAC,EAAE,YAAY,CAAA;IAG3B,MAAM,CAAC,EAAE,MAAM,CAAA;IAGf,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAA;CAC1D;AAID,qBAAa,YAAY;;gBAYX,EACV,IAAI,EACJ,YAAiB,EACjB,MAAgB,EAChB,YAAY,GACb,GAAE,kBAAuB;IA0H1B,UAAU,EAAE;QACV,CAAC,CAAC,SAAS,YAAY,EACrB,OAAO,EAAE,aAAa,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,EAC7C,MAAM,CAAC,EAAE,kBAAkB,CAAC,CAAC,CAAC,GAC7B,YAAY,CAAA;QACf,CAAC,CAAC,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC,GAAG,YAAY,CAAA;KACzD,CAGA;IAGD,MAAM,wBAEL;IAGD,OAAO,wBAEN;IAGD,IAAI,MAAM,IAAI,MAAM,CAEnB;IAGD,IAAI,QAAQ,YAEX;IAGD,WAAW,GAAI,OAAO,OAAO,UAW5B;IAGD,WAAW,eAEV;IAGD,QAAQ,GAAI,aAAa,MAAM,EAAE,aAAa,MAAM,UAMnD;IAGD,QAAQ,aAMP;IAGD,EAAE,GAAI,IAAI,CAAC,GAAG,EAAE,eAAe,KAAK,IAAI,UAavC;CACF"}
1
+ {"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../../../src/core/builder.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,YAAY,EAEjB,MAAM,EAKP,MAAM,wBAAwB,CAAA;AAI/B,OAAO,EAGL,KAAK,eAAe,EACrB,MAAM,mCAAmC,CAAA;AAO1C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AACpD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAEtD,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAGzC,OAAO,EAAc,KAAK,iBAAiB,EAAE,MAAM,UAAU,CAAA;AAQ7D,OAAO,EAAoB,KAAK,aAAa,EAAE,MAAM,0CAA0C,CAAA;AAG/F,MAAM,WAAW,kBAAkB;IAIjC,IAAI,CAAC,EAAE,IAAI,GAAG,MAAM,GAAG,IAAI,CAAA;IAG3B,YAAY,CAAC,EAAE,YAAY,CAAA;IAG3B,MAAM,CAAC,EAAE,MAAM,CAAA;IAGf,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAA;CAC1D;AAID,qBAAa,YAAY;;gBAYX,EACV,IAAI,EACJ,YAAiB,EACjB,MAAgB,EAChB,YAAY,GACb,GAAE,kBAAuB;IA0H1B,UAAU,EAAE;QACV,CAAC,CAAC,SAAS,YAAY,EACrB,OAAO,EAAE,aAAa,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,EAC7C,MAAM,CAAC,EAAE,kBAAkB,CAAC,CAAC,CAAC,GAC7B,YAAY,CAAA;QACf,CAAC,CAAC,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC,GAAG,YAAY,CAAA;KACzD,CAGA;IAGD,MAAM,wBAEL;IAGD,OAAO,wBAEN;IAGD,IAAI,MAAM,IAAI,MAAM,CAEnB;IAGD,IAAI,QAAQ,YAEX;IAGD,WAAW,GAAI,OAAO,OAAO,UAW5B;IAGD,WAAW,eAEV;IAGD,QAAQ,GAAI,aAAa,MAAM,EAAE,aAAa,MAAM,UAMnD;IAGD,QAAQ,aAMP;IAGD,EAAE,GAAI,IAAI,CAAC,GAAG,EAAE,eAAe,KAAK,IAAI,UAavC;IAGD,IAAI,cAAc,YAejB;IAGD,iBAAiB,GAAI,SAAS,OAAO,UAcpC;IAGD,gBAAgB,YAwBf;IAGD,gBAAgB,GAAI,OAAO,OAAO,CAAC,aAAa,CAAC,UAchD;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"component.d.ts","sourceRoot":"","sources":["../../../../src/feature/fixed-toolbar/component.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,uBAAuB,CAAA;AAChD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAA;AAI9D,OAAO,EAEL,KAAK,UAAU,EACf,KAAK,GAAG,EAKT,MAAM,KAAK,CAAA;AAIZ,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,GAAG,CAAA;AAOlD,KAAK,iBAAiB,GAAG;IACvB,GAAG,EAAE,GAAG,CAAA;IACR,IAAI,EAAE,MAAM,IAAI,CAAA;IAChB,IAAI,EAAE,GAAG,CAAC,OAAO,CAAC,CAAA;IAClB,SAAS,EAAE,UAAU,CAAC,SAAS,CAAC,CAAA;IAChC,MAAM,CAAC,EAAE,yBAAyB,CAAA;IAClC,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,CAAA;IACrB,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,CAAA;CACtB,CAAA;AAED,eAAO,MAAM,qBAAqB,oXA+JhC,CAAA"}
1
+ {"version":3,"file":"component.d.ts","sourceRoot":"","sources":["../../../../src/feature/fixed-toolbar/component.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,uBAAuB,CAAA;AAChD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAA;AAI9D,OAAO,EAEL,KAAK,UAAU,EACf,KAAK,GAAG,EAKT,MAAM,KAAK,CAAA;AAEZ,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,GAAG,CAAA;AAQlD,KAAK,iBAAiB,GAAG;IACvB,GAAG,EAAE,GAAG,CAAA;IACR,IAAI,EAAE,MAAM,IAAI,CAAA;IAChB,IAAI,EAAE,GAAG,CAAC,OAAO,CAAC,CAAA;IAClB,SAAS,EAAE,UAAU,CAAC,SAAS,CAAC,CAAA;IAChC,MAAM,CAAC,EAAE,yBAAyB,CAAA;IAClC,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,CAAA;IACrB,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,CAAA;CACtB,CAAA;AAED,eAAO,MAAM,qBAAqB,oXA+JhC,CAAA"}
@@ -3,6 +3,7 @@ import { PluginKey } from '@jvs-milkdown/kit/prose/state';
3
3
  import type { GroupBuilder } from '../../utils';
4
4
  import type { DefineFeature } from '../shared';
5
5
  import type { ToolbarItem } from '../toolbar/config';
6
+ import { type EditorWidth } from './view-menu-state';
6
7
  export interface FixedToolbarConfig {
7
8
  boldIcon?: string;
8
9
  codeIcon?: string;
@@ -32,6 +33,13 @@ export interface FixedToolbarConfig {
32
33
  onImport?: (replaceContent: (markdown: string) => void, ctx: Ctx) => void;
33
34
  useLocalStorage?: boolean;
34
35
  id?: string;
36
+ outlineVisible?: boolean;
37
+ outlineWidth?: number;
38
+ documentBackground?: string | null;
39
+ showTitle?: boolean;
40
+ showCover?: boolean;
41
+ coverUrl?: string;
42
+ editorWidth?: EditorWidth;
35
43
  }
36
44
  export type FixedToolbarFeatureConfig = Partial<FixedToolbarConfig>;
37
45
  export declare const fixedToolbarConfig: import("@jvs-milkdown/utils").$Ctx<Partial<FixedToolbarConfig>, "fixedToolbarConfigCtx">;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/feature/fixed-toolbar/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,uBAAuB,CAAA;AAIhD,OAAO,EAAU,SAAS,EAAiB,MAAM,+BAA+B,CAAA;AAehF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAC/C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AAC9C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAYpD,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,YAAY,CAAC,WAAW,CAAC,KAAK,IAAI,CAAA;IAC3D,eAAe,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;IAClC,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,MAAM,CAAC,CAAA;IAC/C,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAA;IAC7B,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,YAAY,CAAC,EAAE;QACb,IAAI,CAAC,EAAE,OAAO,CAAA;QACd,IAAI,CAAC,EAAE,OAAO,CAAA;QACd,IAAI,CAAC,EAAE,OAAO,CAAA;QACd,MAAM,CAAC,EAAE,OAAO,CAAA;QAChB,MAAM,CAAC,EAAE,OAAO,CAAA;KACjB,CAAA;IACD,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,KAAK,IAAI,CAAA;IAC/C,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,QAAQ,CAAC,EAAE,CAAC,cAAc,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,EAAE,GAAG,EAAE,GAAG,KAAK,IAAI,CAAA;IACzE,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,EAAE,CAAC,EAAE,MAAM,CAAA;CACZ;AAED,MAAM,MAAM,yBAAyB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAA;AAEnE,eAAO,MAAM,kBAAkB,0FAG9B,CAAA;AAED,eAAO,MAAM,eAAe,gBAA0C,CAAA;AAsWtE,eAAO,MAAM,kBAAkB,sCAK7B,CAAA;AAEF,eAAO,MAAM,YAAY,EAAE,aAAa,CAAC,yBAAyB,CA6BjE,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/feature/fixed-toolbar/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,uBAAuB,CAAA;AAIhD,OAAO,EAAU,SAAS,EAAiB,MAAM,+BAA+B,CAAA;AAehF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAC/C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AAC9C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAUpD,OAAO,EAAoC,KAAK,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAEtF,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,YAAY,CAAC,WAAW,CAAC,KAAK,IAAI,CAAA;IAC3D,eAAe,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;IAClC,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,MAAM,CAAC,CAAA;IAC/C,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAA;IAC7B,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,YAAY,CAAC,EAAE;QACb,IAAI,CAAC,EAAE,OAAO,CAAA;QACd,IAAI,CAAC,EAAE,OAAO,CAAA;QACd,IAAI,CAAC,EAAE,OAAO,CAAA;QACd,MAAM,CAAC,EAAE,OAAO,CAAA;QAChB,MAAM,CAAC,EAAE,OAAO,CAAA;KACjB,CAAA;IACD,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,KAAK,IAAI,CAAA;IAC/C,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,QAAQ,CAAC,EAAE,CAAC,cAAc,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,EAAE,GAAG,EAAE,GAAG,KAAK,IAAI,CAAA;IACzE,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,kBAAkB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAClC,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,WAAW,CAAC,EAAE,WAAW,CAAA;CAC1B;AAED,MAAM,MAAM,yBAAyB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAA;AAEnE,eAAO,MAAM,kBAAkB,0FAG9B,CAAA;AAED,eAAO,MAAM,eAAe,gBAA0C,CAAA;AA+WtE,eAAO,MAAM,kBAAkB,sCAK7B,CAAA;AAEF,eAAO,MAAM,YAAY,EAAE,aAAa,CAAC,yBAAyB,CA6BjE,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jvs-milkdown/crepe",
3
- "version": "1.2.22",
3
+ "version": "1.2.24",
4
4
  "keywords": [
5
5
  "crepe",
6
6
  "editor",
@@ -107,9 +107,9 @@
107
107
  "@codemirror/theme-one-dark": "^6.1.2",
108
108
  "@codemirror/view": "^6.26.0",
109
109
  "@floating-ui/dom": "^1.7.6",
110
- "@jvs-milkdown/kit": "^1.2.22",
111
- "@jvs-milkdown/prose": "^1.2.22",
112
- "@jvs-milkdown/utils": "^1.2.22",
110
+ "@jvs-milkdown/kit": "^1.2.24",
111
+ "@jvs-milkdown/prose": "^1.2.24",
112
+ "@jvs-milkdown/utils": "^1.2.24",
113
113
  "@types/lodash-es": "^4.17.12",
114
114
  "clsx": "^2.0.0",
115
115
  "codemirror": "^6.0.1",
@@ -36,6 +36,7 @@ import {
36
36
  translationsCtx,
37
37
  useCrepeFeatures,
38
38
  } from './slice'
39
+ import { viewMenuStateCtx, type ViewMenuState } from '../feature/fixed-toolbar/view-menu-state'
39
40
 
40
41
  /// The crepe builder configuration.
41
42
  export interface CrepeBuilderConfig {
@@ -278,4 +279,83 @@ export class CrepeBuilder {
278
279
  })
279
280
  return this
280
281
  }
282
+
283
+ /// Get the visibility of the outline panel.
284
+ get outlineVisible() {
285
+ let visible = false
286
+ this.#editor.action((ctx) => {
287
+ if (this.#editor.status === EditorStatus.Created) {
288
+ try {
289
+ const state = ctx.get(viewMenuStateCtx.key)
290
+ if (state) {
291
+ visible = state.outlineVisible
292
+ }
293
+ } catch (e) {
294
+ // Ignore if FixedToolbar feature is not loaded
295
+ }
296
+ }
297
+ })
298
+ return visible
299
+ }
300
+
301
+ /// Set the visibility of the outline panel.
302
+ setOutlineVisible = (visible: boolean) => {
303
+ this.#editor.action((ctx) => {
304
+ if (this.#editor.status === EditorStatus.Created) {
305
+ try {
306
+ const state = ctx.get(viewMenuStateCtx.key)
307
+ if (state) {
308
+ state.outlineVisible = visible
309
+ }
310
+ } catch (e) {
311
+ // Ignore if FixedToolbar feature is not loaded
312
+ }
313
+ }
314
+ })
315
+ return this
316
+ }
317
+
318
+ /// Get the configuration/state of the view menu (outline, background, title, cover, width, etc.)
319
+ getViewMenuState = () => {
320
+ let state: any = null
321
+ this.#editor.action((ctx) => {
322
+ if (this.#editor.status === EditorStatus.Created) {
323
+ try {
324
+ const viewState = ctx.get(viewMenuStateCtx.key)
325
+ if (viewState) {
326
+ state = {
327
+ outlineVisible: viewState.outlineVisible,
328
+ outlinePosition: viewState.outlinePosition,
329
+ outlineWidth: viewState.outlineWidth,
330
+ documentBackground: viewState.documentBackground,
331
+ showTitle: viewState.showTitle,
332
+ showCover: viewState.showCover,
333
+ coverUrl: viewState.coverUrl,
334
+ editorWidth: viewState.editorWidth,
335
+ }
336
+ }
337
+ } catch (e) {
338
+ // Ignore if FixedToolbar feature is not loaded
339
+ }
340
+ }
341
+ })
342
+ return state
343
+ }
344
+
345
+ /// Update/set the state of the view menu
346
+ setViewMenuState = (state: Partial<ViewMenuState>) => {
347
+ this.#editor.action((ctx) => {
348
+ if (this.#editor.status === EditorStatus.Created) {
349
+ try {
350
+ const viewState = ctx.get(viewMenuStateCtx.key)
351
+ if (viewState) {
352
+ Object.assign(viewState, state)
353
+ }
354
+ } catch (e) {
355
+ // Ignore if FixedToolbar feature is not loaded
356
+ }
357
+ }
358
+ })
359
+ return this
360
+ }
281
361
  }
@@ -13,11 +13,10 @@ import {
13
13
  h,
14
14
  } from 'vue'
15
15
 
16
- import { keepAlive } from '../../utils/keep-alive'
17
-
18
16
  import type { FixedToolbarFeatureConfig } from '.'
19
17
 
20
18
  import { undoIcon, redoIcon } from '../../icons'
19
+ import { keepAlive } from '../../utils/keep-alive'
21
20
  import { Toolbar } from '../toolbar/component'
22
21
  import { MenuBar } from './menu-bar'
23
22
  import { ShortcutHelpModal } from './shortcut-help-modal'
@@ -29,7 +29,7 @@ import { FixedToolbarComponent } from './component'
29
29
  import { buildDefaultFixedToolbar } from './config'
30
30
  import { DocumentHeader } from './document-header'
31
31
  import { OutlinePanel } from './outline-panel'
32
- import { viewMenuStateCtx, editorWidthMap } from './view-menu-state'
32
+ import { viewMenuStateCtx, editorWidthMap, type EditorWidth } from './view-menu-state'
33
33
 
34
34
  export interface FixedToolbarConfig {
35
35
  boldIcon?: string
@@ -60,6 +60,13 @@ export interface FixedToolbarConfig {
60
60
  onImport?: (replaceContent: (markdown: string) => void, ctx: Ctx) => void
61
61
  useLocalStorage?: boolean
62
62
  id?: string
63
+ outlineVisible?: boolean
64
+ outlineWidth?: number
65
+ documentBackground?: string | null
66
+ showTitle?: boolean
67
+ showCover?: boolean
68
+ coverUrl?: string
69
+ editorWidth?: EditorWidth
63
70
  }
64
71
 
65
72
  export type FixedToolbarFeatureConfig = Partial<FixedToolbarConfig>
@@ -95,6 +102,15 @@ class FixedToolbarView implements PluginView {
95
102
  const config = ctx.get(fixedToolbarConfig.key)
96
103
  const viewState = ctx.get(viewMenuStateCtx.key)
97
104
 
105
+ if (config?.outlineVisible !== undefined) viewState.outlineVisible = config.outlineVisible
106
+ if (config?.outlinePosition !== undefined) viewState.outlinePosition = config.outlinePosition
107
+ if (config?.outlineWidth !== undefined) viewState.outlineWidth = config.outlineWidth
108
+ if (config?.documentBackground !== undefined) viewState.documentBackground = config.documentBackground
109
+ if (config?.showTitle !== undefined) viewState.showTitle = config.showTitle
110
+ if (config?.showCover !== undefined) viewState.showCover = config.showCover
111
+ if (config?.coverUrl !== undefined) viewState.coverUrl = config.coverUrl
112
+ if (config?.editorWidth !== undefined) viewState.editorWidth = config.editorWidth
113
+
98
114
  // Load initial view menu state from localStorage if useLocalStorage is enabled
99
115
  if (config?.useLocalStorage) {
100
116
  try {
@@ -5,8 +5,8 @@ import { editorViewCtx } from '@jvs-milkdown/kit/core'
5
5
  import { defineComponent, onMounted, onUnmounted, ref, computed, h } from 'vue'
6
6
 
7
7
  import { i18n } from '../../core/locale'
8
- import { viewMenuStateCtx } from './view-menu-state'
9
8
  import { keepAlive } from '../../utils/keep-alive'
9
+ import { viewMenuStateCtx } from './view-menu-state'
10
10
 
11
11
  keepAlive(h)
12
12