@cocoar/vue-markdown 2.11.0 → 2.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,5 +1,6 @@
1
1
  import { MarkdownDocument } from '@cocoar/vue-markdown-core';
2
2
  import { MarkdownViewerRenderers } from './registry';
3
+ import { EmbedRegistry } from './embeds';
3
4
  export interface CoarMarkdownProps {
4
5
  /** The parsed markdown document to render. */
5
6
  doc: MarkdownDocument;
@@ -10,6 +11,12 @@ export interface CoarMarkdownProps {
10
11
  * `{ ...defaultMarkdownRenderers, codeBlock: MyCustomCodeBlock }`.
11
12
  */
12
13
  renderers?: MarkdownViewerRenderers;
14
+ /**
15
+ * Custom-embed registry: maps a `:::key{props}` key to a Vue component.
16
+ * Provided down to the `DefaultEmbed` renderer via inject. An app-wide
17
+ * default can also be set with `app.provide(MARKDOWN_EMBEDS_KEY, ...)`.
18
+ */
19
+ embeds?: EmbedRegistry;
13
20
  }
14
21
  declare const _default: import('vue').DefineComponent<CoarMarkdownProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<CoarMarkdownProps> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
15
22
  export default _default;
@@ -1 +1 @@
1
- {"version":3,"file":"CoarMarkdown.vue.d.ts","sourceRoot":"","sources":["../src/CoarMarkdown.vue"],"names":[],"mappings":"AAuDA;;;;;;;;;;;;;;;;;;GAkBG;AACH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAElE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAE1D,MAAM,WAAW,iBAAiB;IAChC,8CAA8C;IAC9C,GAAG,EAAE,gBAAgB,CAAC;IACtB;;;;;OAKG;IACH,SAAS,CAAC,EAAE,uBAAuB,CAAC;CACrC;;AA4DD,wBAOG"}
1
+ {"version":3,"file":"CoarMarkdown.vue.d.ts","sourceRoot":"","sources":["../src/CoarMarkdown.vue"],"names":[],"mappings":"AAyFA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAElE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAC1D,OAAO,EAAuB,KAAK,aAAa,EAAE,MAAM,UAAU,CAAC;AAEnE,MAAM,WAAW,iBAAiB;IAChC,8CAA8C;IAC9C,GAAG,EAAE,gBAAgB,CAAC;IACtB;;;;;OAKG;IACH,SAAS,CAAC,EAAE,uBAAuB,CAAC;IACpC;;;;OAIG;IACH,MAAM,CAAC,EAAE,aAAa,CAAC;CACxB;;AAkED,wBAOG"}
@@ -607,6 +607,42 @@ export declare const DefaultColorSpan: import('vue').DefineComponent<import('vue
607
607
  required: true;
608
608
  };
609
609
  }>> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
610
+ /**
611
+ * Custom-embed renderer for the `embed` node type (`:::key{props}`). Looks the
612
+ * key up in the embed registry (injected via `MARKDOWN_EMBEDS_KEY`) and renders
613
+ * the registered component with the directive props; an unregistered key shows
614
+ * a labelled placeholder. The actual resolution lives in {@link EmbedRenderer}
615
+ * so the editor's NodeView can reuse it.
616
+ */
617
+ export declare const DefaultEmbed: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
618
+ node: {
619
+ type: PropType<MarkdownNode>;
620
+ required: true;
621
+ };
622
+ renderChildren: {
623
+ type: PropType<() => VNode[]>;
624
+ required: true;
625
+ };
626
+ renderNodes: {
627
+ type: PropType<(nodes: readonly MarkdownNode[]) => VNode[]>;
628
+ required: true;
629
+ };
630
+ }>, () => VNode<import('vue').RendererNode, import('vue').RendererElement, {
631
+ [key: string]: any;
632
+ }>, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
633
+ node: {
634
+ type: PropType<MarkdownNode>;
635
+ required: true;
636
+ };
637
+ renderChildren: {
638
+ type: PropType<() => VNode[]>;
639
+ required: true;
640
+ };
641
+ renderNodes: {
642
+ type: PropType<(nodes: readonly MarkdownNode[]) => VNode[]>;
643
+ required: true;
644
+ };
645
+ }>> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
610
646
  /**
611
647
  * Block-style fallback for unknown node types. Most "unsupported" nodes that
612
648
  * reach the registry are block-level (custom remark plugins emitting embeds,
@@ -1 +1 @@
1
- {"version":3,"file":"default-renderers.d.ts","sourceRoot":"","sources":["../src/default-renderers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"default-renderers.d.ts","sourceRoot":"","sources":["../src/default-renderers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EAAsB,KAAK,QAAQ,EAAE,KAAK,KAAK,EAAE,MAAM,KAAK,CAAC;AACpE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AA0B9D,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAe1D;;;;;;GAMG;AACH,eAAO,MAAM,kBAAkB;;cAlBL,QAAQ,CAAC,YAAY,CAAC;;;;cAE1B,QAAQ,CAAC,MAAM,KAAK,EAAE,CAAC;;;;cAIvB,QAAQ,CAAC,CAAC,KAAK,EAAE,SAAS,YAAY,EAAE,KAAK,KAAK,EAAE,CAAC;;;;;;;cANjD,QAAQ,CAAC,YAAY,CAAC;;;;cAE1B,QAAQ,CAAC,MAAM,KAAK,EAAE,CAAC;;;;cAIvB,QAAQ,CAAC,CAAC,KAAK,EAAE,SAAS,YAAY,EAAE,KAAK,KAAK,EAAE,CAAC;;;iGAsCzE,CAAC;AAEH,eAAO,MAAM,cAAc;;cA9CD,QAAQ,CAAC,YAAY,CAAC;;;;cAE1B,QAAQ,CAAC,MAAM,KAAK,EAAE,CAAC;;;;cAIvB,QAAQ,CAAC,CAAC,KAAK,EAAE,SAAS,YAAY,EAAE,KAAK,KAAK,EAAE,CAAC;;;;;;;cANjD,QAAQ,CAAC,YAAY,CAAC;;;;cAE1B,QAAQ,CAAC,MAAM,KAAK,EAAE,CAAC;;;;cAIvB,QAAQ,CAAC,CAAC,KAAK,EAAE,SAAS,YAAY,EAAE,KAAK,KAAK,EAAE,CAAC;;;iGAsDzE,CAAC;AAEH,eAAO,MAAM,gBAAgB;;cA9DH,QAAQ,CAAC,YAAY,CAAC;;;;cAE1B,QAAQ,CAAC,MAAM,KAAK,EAAE,CAAC;;;;cAIvB,QAAQ,CAAC,CAAC,KAAK,EAAE,SAAS,YAAY,EAAE,KAAK,KAAK,EAAE,CAAC;;;;;;;cANjD,QAAQ,CAAC,YAAY,CAAC;;;;cAE1B,QAAQ,CAAC,MAAM,KAAK,EAAE,CAAC;;;;cAIvB,QAAQ,CAAC,CAAC,KAAK,EAAE,SAAS,YAAY,EAAE,KAAK,KAAK,EAAE,CAAC;;;iGA8DzE,CAAC;AAEH,eAAO,MAAM,iBAAiB;;cAtEJ,QAAQ,CAAC,YAAY,CAAC;;;;cAE1B,QAAQ,CAAC,MAAM,KAAK,EAAE,CAAC;;;;cAIvB,QAAQ,CAAC,CAAC,KAAK,EAAE,SAAS,YAAY,EAAE,KAAK,KAAK,EAAE,CAAC;;;;;;;cANjD,QAAQ,CAAC,YAAY,CAAC;;;;cAE1B,QAAQ,CAAC,MAAM,KAAK,EAAE,CAAC;;;;cAIvB,QAAQ,CAAC,CAAC,KAAK,EAAE,SAAS,YAAY,EAAE,KAAK,KAAK,EAAE,CAAC;;;iGAsEzE,CAAC;AAEH,eAAO,MAAM,WAAW;;cA9EE,QAAQ,CAAC,YAAY,CAAC;;;;cAE1B,QAAQ,CAAC,MAAM,KAAK,EAAE,CAAC;;;;cAIvB,QAAQ,CAAC,CAAC,KAAK,EAAE,SAAS,YAAY,EAAE,KAAK,KAAK,EAAE,CAAC;;;;;;;cANjD,QAAQ,CAAC,YAAY,CAAC;;;;cAE1B,QAAQ,CAAC,MAAM,KAAK,EAAE,CAAC;;;;cAIvB,QAAQ,CAAC,CAAC,KAAK,EAAE,SAAS,YAAY,EAAE,KAAK,KAAK,EAAE,CAAC;;;iGA6FzE,CAAC;AAEH,eAAO,MAAM,eAAe;;cArGF,QAAQ,CAAC,YAAY,CAAC;;;;cAE1B,QAAQ,CAAC,MAAM,KAAK,EAAE,CAAC;;;;cAIvB,QAAQ,CAAC,CAAC,KAAK,EAAE,SAAS,YAAY,EAAE,KAAK,KAAK,EAAE,CAAC;;;;;;;cANjD,QAAQ,CAAC,YAAY,CAAC;;;;cAE1B,QAAQ,CAAC,MAAM,KAAK,EAAE,CAAC;;;;cAIvB,QAAQ,CAAC,CAAC,KAAK,EAAE,SAAS,YAAY,EAAE,KAAK,KAAK,EAAE,CAAC;;;iGAyHzE,CAAC;AAEH,eAAO,MAAM,gBAAgB;;cAjIH,QAAQ,CAAC,YAAY,CAAC;;;;cAE1B,QAAQ,CAAC,MAAM,KAAK,EAAE,CAAC;;;;cAIvB,QAAQ,CAAC,CAAC,KAAK,EAAE,SAAS,YAAY,EAAE,KAAK,KAAK,EAAE,CAAC;;;;;;;cANjD,QAAQ,CAAC,YAAY,CAAC;;;;cAE1B,QAAQ,CAAC,MAAM,KAAK,EAAE,CAAC;;;;cAIvB,QAAQ,CAAC,CAAC,KAAK,EAAE,SAAS,YAAY,EAAE,KAAK,KAAK,EAAE,CAAC;;;iGAyIzE,CAAC;AAEH;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,YAAY;;cA9JC,QAAQ,CAAC,YAAY,CAAC;;;;cAE1B,QAAQ,CAAC,MAAM,KAAK,EAAE,CAAC;;;;cAIvB,QAAQ,CAAC,CAAC,KAAK,EAAE,SAAS,YAAY,EAAE,KAAK,KAAK,EAAE,CAAC;;;;;;;cANjD,QAAQ,CAAC,YAAY,CAAC;;;;cAE1B,QAAQ,CAAC,MAAM,KAAK,EAAE,CAAC;;;;cAIvB,QAAQ,CAAC,CAAC,KAAK,EAAE,SAAS,YAAY,EAAE,KAAK,KAAK,EAAE,CAAC;;;iGAkNzE,CAAC;AAIH,eAAO,MAAM,eAAe;;cA5NF,QAAQ,CAAC,YAAY,CAAC;;;;cAE1B,QAAQ,CAAC,MAAM,KAAK,EAAE,CAAC;;;;cAIvB,QAAQ,CAAC,CAAC,KAAK,EAAE,SAAS,YAAY,EAAE,KAAK,KAAK,EAAE,CAAC;;;;;;;cANjD,QAAQ,CAAC,YAAY,CAAC;;;;cAE1B,QAAQ,CAAC,MAAM,KAAK,EAAE,CAAC;;;;cAIvB,QAAQ,CAAC,CAAC,KAAK,EAAE,SAAS,YAAY,EAAE,KAAK,KAAK,EAAE,CAAC;;;iGA4NzE,CAAC;AAEH,eAAO,MAAM,gBAAgB;;cApOH,QAAQ,CAAC,YAAY,CAAC;;;;cAE1B,QAAQ,CAAC,MAAM,KAAK,EAAE,CAAC;;;;cAIvB,QAAQ,CAAC,CAAC,KAAK,EAAE,SAAS,YAAY,EAAE,KAAK,KAAK,EAAE,CAAC;;;;;;;cANjD,QAAQ,CAAC,YAAY,CAAC;;;;cAE1B,QAAQ,CAAC,MAAM,KAAK,EAAE,CAAC;;;;cAIvB,QAAQ,CAAC,CAAC,KAAK,EAAE,SAAS,YAAY,EAAE,KAAK,KAAK,EAAE,CAAC;;;iGAoOzE,CAAC;AAEH,eAAO,MAAM,oBAAoB;;cA5OP,QAAQ,CAAC,YAAY,CAAC;;;;cAE1B,QAAQ,CAAC,MAAM,KAAK,EAAE,CAAC;;;;cAIvB,QAAQ,CAAC,CAAC,KAAK,EAAE,SAAS,YAAY,EAAE,KAAK,KAAK,EAAE,CAAC;;;;;;;cANjD,QAAQ,CAAC,YAAY,CAAC;;;;cAE1B,QAAQ,CAAC,MAAM,KAAK,EAAE,CAAC;;;;cAIvB,QAAQ,CAAC,CAAC,KAAK,EAAE,SAAS,YAAY,EAAE,KAAK,KAAK,EAAE,CAAC;;;iGA4OzE,CAAC;AAIH,eAAO,MAAM,WAAW;;cAtPE,QAAQ,CAAC,YAAY,CAAC;;;;cAE1B,QAAQ,CAAC,MAAM,KAAK,EAAE,CAAC;;;;cAIvB,QAAQ,CAAC,CAAC,KAAK,EAAE,SAAS,YAAY,EAAE,KAAK,KAAK,EAAE,CAAC;;;;;cANjD,QAAQ,CAAC,YAAY,CAAC;;;;cAE1B,QAAQ,CAAC,MAAM,KAAK,EAAE,CAAC;;;;cAIvB,QAAQ,CAAC,CAAC,KAAK,EAAE,SAAS,YAAY,EAAE,KAAK,KAAK,EAAE,CAAC;;;iGAsPzE,CAAC;AAEH,eAAO,MAAM,eAAe;;cA9PF,QAAQ,CAAC,YAAY,CAAC;;;;cAE1B,QAAQ,CAAC,MAAM,KAAK,EAAE,CAAC;;;;cAIvB,QAAQ,CAAC,CAAC,KAAK,EAAE,SAAS,YAAY,EAAE,KAAK,KAAK,EAAE,CAAC;;;;;;;cANjD,QAAQ,CAAC,YAAY,CAAC;;;;cAE1B,QAAQ,CAAC,MAAM,KAAK,EAAE,CAAC;;;;cAIvB,QAAQ,CAAC,CAAC,KAAK,EAAE,SAAS,YAAY,EAAE,KAAK,KAAK,EAAE,CAAC;;;iGA8PzE,CAAC;AAEH,eAAO,MAAM,aAAa;;cAtQA,QAAQ,CAAC,YAAY,CAAC;;;;cAE1B,QAAQ,CAAC,MAAM,KAAK,EAAE,CAAC;;;;cAIvB,QAAQ,CAAC,CAAC,KAAK,EAAE,SAAS,YAAY,EAAE,KAAK,KAAK,EAAE,CAAC;;;;;;;cANjD,QAAQ,CAAC,YAAY,CAAC;;;;cAE1B,QAAQ,CAAC,MAAM,KAAK,EAAE,CAAC;;;;cAIvB,QAAQ,CAAC,CAAC,KAAK,EAAE,SAAS,YAAY,EAAE,KAAK,KAAK,EAAE,CAAC;;;iGAsQzE,CAAC;AAEH,eAAO,MAAM,oBAAoB;;cA9QP,QAAQ,CAAC,YAAY,CAAC;;;;cAE1B,QAAQ,CAAC,MAAM,KAAK,EAAE,CAAC;;;;cAIvB,QAAQ,CAAC,CAAC,KAAK,EAAE,SAAS,YAAY,EAAE,KAAK,KAAK,EAAE,CAAC;;;;;;;cANjD,QAAQ,CAAC,YAAY,CAAC;;;;cAE1B,QAAQ,CAAC,MAAM,KAAK,EAAE,CAAC;;;;cAIvB,QAAQ,CAAC,CAAC,KAAK,EAAE,SAAS,YAAY,EAAE,KAAK,KAAK,EAAE,CAAC;;;iGA8QzE,CAAC;AAEH,eAAO,MAAM,iBAAiB;;cAtRJ,QAAQ,CAAC,YAAY,CAAC;;;;cAE1B,QAAQ,CAAC,MAAM,KAAK,EAAE,CAAC;;;;cAIvB,QAAQ,CAAC,CAAC,KAAK,EAAE,SAAS,YAAY,EAAE,KAAK,KAAK,EAAE,CAAC;;;;;;;cANjD,QAAQ,CAAC,YAAY,CAAC;;;;cAE1B,QAAQ,CAAC,MAAM,KAAK,EAAE,CAAC;;;;cAIvB,QAAQ,CAAC,CAAC,KAAK,EAAE,SAAS,YAAY,EAAE,KAAK,KAAK,EAAE,CAAC;;;iGAuRzE,CAAC;AAEH,eAAO,MAAM,WAAW;;cA/RE,QAAQ,CAAC,YAAY,CAAC;;;;cAE1B,QAAQ,CAAC,MAAM,KAAK,EAAE,CAAC;;;;cAIvB,QAAQ,CAAC,CAAC,KAAK,EAAE,SAAS,YAAY,EAAE,KAAK,KAAK,EAAE,CAAC;;;;;;;;;cANjD,QAAQ,CAAC,YAAY,CAAC;;;;cAE1B,QAAQ,CAAC,MAAM,KAAK,EAAE,CAAC;;;;cAIvB,QAAQ,CAAC,CAAC,KAAK,EAAE,SAAS,YAAY,EAAE,KAAK,KAAK,EAAE,CAAC;;;iGA+SzE,CAAC;AAEH,eAAO,MAAM,YAAY;;cAvTC,QAAQ,CAAC,YAAY,CAAC;;;;cAE1B,QAAQ,CAAC,MAAM,KAAK,EAAE,CAAC;;;;cAIvB,QAAQ,CAAC,CAAC,KAAK,EAAE,SAAS,YAAY,EAAE,KAAK,KAAK,EAAE,CAAC;;;;;;;cANjD,QAAQ,CAAC,YAAY,CAAC;;;;cAE1B,QAAQ,CAAC,MAAM,KAAK,EAAE,CAAC;;;;cAIvB,QAAQ,CAAC,CAAC,KAAK,EAAE,SAAS,YAAY,EAAE,KAAK,KAAK,EAAE,CAAC;;;iGAiUzE,CAAC;AAEH,eAAO,MAAM,gBAAgB;;cAzUH,QAAQ,CAAC,YAAY,CAAC;;;;cAE1B,QAAQ,CAAC,MAAM,KAAK,EAAE,CAAC;;;;cAIvB,QAAQ,CAAC,CAAC,KAAK,EAAE,SAAS,YAAY,EAAE,KAAK,KAAK,EAAE,CAAC;;;;;;;cANjD,QAAQ,CAAC,YAAY,CAAC;;;;cAE1B,QAAQ,CAAC,MAAM,KAAK,EAAE,CAAC;;;;cAIvB,QAAQ,CAAC,CAAC,KAAK,EAAE,SAAS,YAAY,EAAE,KAAK,KAAK,EAAE,CAAC;;;iGAyUzE,CAAC;AAEH;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB;;cAvVH,QAAQ,CAAC,YAAY,CAAC;;;;cAE1B,QAAQ,CAAC,MAAM,KAAK,EAAE,CAAC;;;;cAIvB,QAAQ,CAAC,CAAC,KAAK,EAAE,SAAS,YAAY,EAAE,KAAK,KAAK,EAAE,CAAC;;;;;;;cANjD,QAAQ,CAAC,YAAY,CAAC;;;;cAE1B,QAAQ,CAAC,MAAM,KAAK,EAAE,CAAC;;;;cAIvB,QAAQ,CAAC,CAAC,KAAK,EAAE,SAAS,YAAY,EAAE,KAAK,KAAK,EAAE,CAAC;;;iGAiWzE,CAAC;AAEH;;;;;;GAMG;AACH,eAAO,MAAM,YAAY;;cAhXC,QAAQ,CAAC,YAAY,CAAC;;;;cAE1B,QAAQ,CAAC,MAAM,KAAK,EAAE,CAAC;;;;cAIvB,QAAQ,CAAC,CAAC,KAAK,EAAE,SAAS,YAAY,EAAE,KAAK,KAAK,EAAE,CAAC;;;;;;;cANjD,QAAQ,CAAC,YAAY,CAAC;;;;cAE1B,QAAQ,CAAC,MAAM,KAAK,EAAE,CAAC;;;;cAIvB,QAAQ,CAAC,CAAC,KAAK,EAAE,SAAS,YAAY,EAAE,KAAK,KAAK,EAAE,CAAC;;;iGAsXzE,CAAC;AAEH;;;;;;;GAOG;AACH,eAAO,MAAM,kBAAkB;;cAtYL,QAAQ,CAAC,YAAY,CAAC;;;;cAE1B,QAAQ,CAAC,MAAM,KAAK,EAAE,CAAC;;;;cAIvB,QAAQ,CAAC,CAAC,KAAK,EAAE,SAAS,YAAY,EAAE,KAAK,KAAK,EAAE,CAAC;;;;;;;cANjD,QAAQ,CAAC,YAAY,CAAC;;;;cAE1B,QAAQ,CAAC,MAAM,KAAK,EAAE,CAAC;;;;cAIvB,QAAQ,CAAC,CAAC,KAAK,EAAE,SAAS,YAAY,EAAE,KAAK,KAAK,EAAE,CAAC;;;iGA2YzE,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,wBAAwB,EAAE,uBAuBtC,CAAC"}
@@ -0,0 +1,116 @@
1
+ import { Component, InjectionKey, PropType } from 'vue';
2
+ import { toEmbedProps } from '@cocoar/vue-markdown-core';
3
+ /**
4
+ * Insert affordance for an embed (future toolbar / slash-command entry). Data +
5
+ * callbacks only — deliberately free of Milkdown/ProseMirror types so this
6
+ * contract can live in the shared viewer package the editor also consumes.
7
+ */
8
+ export interface EmbedInsertIntegration {
9
+ /** Label for an insert menu / toolbar entry. */
10
+ label?: string;
11
+ /** Optional icon (name or emoji) for the insert affordance. */
12
+ icon?: string;
13
+ /**
14
+ * Produce the attributes for a NEW embed of this key — e.g. open a picker.
15
+ * Resolve `null` to cancel. When omitted, the editor inserts a bare `:::key`.
16
+ */
17
+ pick?: () => Promise<Record<string, string> | null> | Record<string, string> | null;
18
+ }
19
+ /**
20
+ * The write-back channel handed to an embed's **editor** component. This is the
21
+ * whole point of an editor (vs. the read-only viewer): it can change the
22
+ * directive attributes, and those changes round-trip into the `:::key{props}`
23
+ * markdown. There is no other way to mutate an embed — the viewer can't, because
24
+ * it renders an immutable parsed document.
25
+ *
26
+ * `T` lets a specific embed type its own attribute bag (e.g.
27
+ * `EmbedEditorController<{ id: string; zoom: string }>`).
28
+ */
29
+ export interface EmbedEditorController<T extends Record<string, string> = Record<string, string>> {
30
+ /** Current directive attributes (re-supplied whenever the node changes). */
31
+ readonly props: Readonly<T>;
32
+ /** Replace the whole attribute bag — writes back to the markdown. */
33
+ update(next: T): void;
34
+ /** Merge a partial patch over the current attributes (the common case). */
35
+ patch(partial: Partial<T>): void;
36
+ }
37
+ /**
38
+ * Props an embed editor component receives — a SINGLE typed `controller`, no
39
+ * magic `v-model` emit string. Type your editor with it:
40
+ * `defineProps<EmbedEditorProps>()` (or `EmbedEditorProps<MyAttrs>`), then call
41
+ * `controller.patch({ ... })` / `controller.update({ ... })` to write back.
42
+ */
43
+ export interface EmbedEditorProps<T extends Record<string, string> = Record<string, string>> {
44
+ controller: EmbedEditorController<T>;
45
+ }
46
+ /** One registry entry: a required read-only viewer + optional editable editor. */
47
+ export interface EmbedDefinition {
48
+ /** Read-only render for this key — used by the viewer AND as the editor's
49
+ * fallback when no editable `editor` component is supplied. */
50
+ viewer: Component;
51
+ /**
52
+ * Editable variant mounted inside the editor NodeView. Receives a single
53
+ * {@link EmbedEditorProps} `controller` prop and writes attribute changes back
54
+ * through it. When omitted, the editor shows the read-only `viewer` instead.
55
+ *
56
+ * Typed `Component<EmbedEditorProps>` as a best-effort hint — Vue can't fully
57
+ * enforce a registered component's prop shape at this boundary, but the
58
+ * controller makes the write contract explicit and impossible to mis-name.
59
+ */
60
+ editor?: Component<EmbedEditorProps>;
61
+ /** Optional insert affordance (toolbar / slash) — not yet wired. */
62
+ insert?: EmbedInsertIntegration;
63
+ }
64
+ /** Map of embed `key` (the bit after `:::`) → its definition. */
65
+ export type EmbedRegistry = Record<string, EmbedDefinition>;
66
+ /** Vue inject key. Set via `<CoarMarkdown :embeds>` or `app.provide`. */
67
+ export declare const MARKDOWN_EMBEDS_KEY: InjectionKey<EmbedRegistry>;
68
+ /** Look up a definition, tolerating an undefined registry. */
69
+ export declare function resolveEmbed(registry: EmbedRegistry | undefined, key: string): EmbedDefinition | undefined;
70
+ /**
71
+ * Renders one embed: resolves the registry (explicit prop > injected), looks up
72
+ * the key, and renders the registered component with the directive props spread
73
+ * straight through. An unregistered key degrades to a labelled placeholder
74
+ * instead of vanishing — the author still sees that an embed is there.
75
+ *
76
+ * Shared by the viewer's `DefaultEmbed` node renderer (registry via inject) and
77
+ * the editor's NodeView (registry passed explicitly, since a manually-mounted
78
+ * NodeView doesn't inherit component-level provides).
79
+ */
80
+ export declare const EmbedRenderer: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
81
+ embedKey: {
82
+ type: StringConstructor;
83
+ required: true;
84
+ };
85
+ embedProps: {
86
+ type: PropType<Record<string, string>>;
87
+ default: () => {};
88
+ };
89
+ /** Explicit registry — wins over the injected one. */
90
+ registry: {
91
+ type: PropType<EmbedRegistry>;
92
+ default: undefined;
93
+ };
94
+ }>, () => import('vue').VNode<import('vue').RendererNode, import('vue').RendererElement, {
95
+ [key: string]: any;
96
+ }>, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
97
+ embedKey: {
98
+ type: StringConstructor;
99
+ required: true;
100
+ };
101
+ embedProps: {
102
+ type: PropType<Record<string, string>>;
103
+ default: () => {};
104
+ };
105
+ /** Explicit registry — wins over the injected one. */
106
+ registry: {
107
+ type: PropType<EmbedRegistry>;
108
+ default: undefined;
109
+ };
110
+ }>> & Readonly<{}>, {
111
+ embedProps: Record<string, string>;
112
+ registry: EmbedRegistry;
113
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
114
+ /** Re-export the core coercion helper so renderers needn't import core directly. */
115
+ export { toEmbedProps };
116
+ //# sourceMappingURL=embeds.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"embeds.d.ts","sourceRoot":"","sources":["../src/embeds.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,EAIL,KAAK,SAAS,EACd,KAAK,YAAY,EACjB,KAAK,QAAQ,EACd,MAAM,KAAK,CAAC;AACb,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAEzD;;;;GAIG;AACH,MAAM,WAAW,sBAAsB;IACrC,gDAAgD;IAChD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,+DAA+D;IAC/D,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC;CACrF;AAED;;;;;;;;;GASG;AACH,MAAM,WAAW,qBAAqB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAC9F,4EAA4E;IAC5E,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;IAC5B,qEAAqE;IACrE,MAAM,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC;IACtB,2EAA2E;IAC3E,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;CAClC;AAED;;;;;GAKG;AACH,MAAM,WAAW,gBAAgB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IACzF,UAAU,EAAE,qBAAqB,CAAC,CAAC,CAAC,CAAC;CACtC;AAED,kFAAkF;AAClF,MAAM,WAAW,eAAe;IAC9B;oEACgE;IAChE,MAAM,EAAE,SAAS,CAAC;IAClB;;;;;;;;OAQG;IACH,MAAM,CAAC,EAAE,SAAS,CAAC,gBAAgB,CAAC,CAAC;IACrC,oEAAoE;IACpE,MAAM,CAAC,EAAE,sBAAsB,CAAC;CACjC;AAED,iEAAiE;AACjE,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;AAE5D,yEAAyE;AACzE,eAAO,MAAM,mBAAmB,EAAE,YAAY,CAAC,aAAa,CAE3D,CAAC;AAEF,8DAA8D;AAC9D,wBAAgB,YAAY,CAC1B,QAAQ,EAAE,aAAa,GAAG,SAAS,EACnC,GAAG,EAAE,MAAM,GACV,eAAe,GAAG,SAAS,CAE7B;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,aAAa;;;;;;cAKJ,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;;;IAGlD,sDAAsD;;cAC1B,QAAQ,CAAC,aAAa,CAAC;;;;;;;;;;;cAJjC,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;;;IAGlD,sDAAsD;;cAC1B,QAAQ,CAAC,aAAa,CAAC;;;;;;4EAiCrD,CAAC;AAEH,oFAAoF;AACpF,OAAO,EAAE,YAAY,EAAE,CAAC"}
package/dist/index.css CHANGED
@@ -1,2 +1,2 @@
1
- .coar-markdown{--coar-markdown-text:var(--coar-text-neutral-primary);--coar-markdown-link:var(--coar-text-brand-primary,var(--coar-text-neutral-primary));--coar-markdown-muted-text:var(--coar-text-neutral-tertiary);--coar-markdown-border:var(--coar-border-neutral-tertiary);--coar-markdown-surface:var(--coar-background-neutral-primary);--coar-markdown-surface-muted:var(--coar-background-neutral-tertiary,var(--coar-background-neutral-primary));--coar-markdown-radius:var(--coar-radius-xs);--coar-markdown-space-1:var(--coar-spacing-s,.5rem);--coar-markdown-space-2:var(--coar-spacing-m,1rem);--coar-markdown-heading-block-start:var(--coar-spacing-xl,2rem);color:var(--coar-markdown-text);display:block}.coar-markdown :where(h1,h2,h3,h4,h5,h6){font-family:var(--coar-font-family-title,inherit);color:var(--coar-markdown-text)}.coar-markdown h1{font-size:var(--coar-font-size-xl);font-weight:var(--coar-font-weight-bold);line-height:var(--coar-line-height-tight)}.coar-markdown h2{font-size:var(--coar-font-size-l);font-weight:var(--coar-font-weight-bold);line-height:1.25}.coar-markdown h3{font-size:var(--coar-font-size-m);font-weight:var(--coar-font-weight-semi-bold);line-height:var(--coar-line-height-snug)}.coar-markdown h4{font-size:var(--coar-font-size-s);font-weight:var(--coar-font-weight-semi-bold);line-height:1.35}.coar-markdown h5{font-size:var(--coar-font-size-xs);font-weight:var(--coar-font-weight-semi-bold);line-height:var(--coar-line-height-normal)}.coar-markdown h6{font-size:var(--coar-font-size-xxs);font-weight:var(--coar-font-weight-medium);line-height:1.45}.coar-markdown-heading,.coar-markdown-paragraph,.coar-markdown-blockquote,.coar-markdown-list,.coar-markdown-code-block,.coar-markdown-table,.coar-markdown-hr,.coar-markdown :where(p,blockquote,ul,ol,pre,table,hr){margin:0}.coar-markdown>:where(h1,h2,h3,h4,h5,h6,p,blockquote,ul,ol,pre,table,hr,.coar-code-block-host,.coar-table-host,.coar-markdown-frontmatter),.coar-markdown .ProseMirror>:where(h1,h2,h3,h4,h5,h6,p,blockquote,ul,ol,pre,table,hr,.coar-code-block-host,.coar-table-host,.coar-markdown-frontmatter){margin-block:0 var(--coar-markdown-space-2)}.coar-markdown>:where(h1,h2,h3,h4,h5,h6),.coar-markdown .ProseMirror>:where(h1,h2,h3,h4,h5,h6){margin-block-start:var(--coar-markdown-heading-block-start)}.coar-markdown>:where(h1,h2,h3,h4,h5,h6)+:where(h1,h2,h3,h4,h5,h6),.coar-markdown .ProseMirror>:where(h1,h2,h3,h4,h5,h6)+:where(h1,h2,h3,h4,h5,h6){margin-block-start:var(--coar-markdown-space-1)}.coar-markdown>:where(h1,h2,h3,h4,h5,h6):first-child,.coar-markdown .ProseMirror>:where(h1,h2,h3,h4,h5,h6):first-child{margin-block-start:0}.coar-markdown :where(blockquote),.coar-markdown-blockquote{padding-inline:var(--coar-markdown-space-2);border-left:2px solid var(--coar-markdown-border);color:var(--coar-text-neutral-secondary)}.coar-markdown :where(ul,ol),.coar-markdown-list{padding-inline-start:var(--coar-spacing-l,1.5rem);list-style-position:outside}.coar-markdown :where(ul),.coar-markdown-list--unordered{list-style-type:disc}.coar-markdown :where(ol),.coar-markdown-list--ordered{list-style-type:decimal}.coar-markdown :where(li),.coar-markdown-list-item{margin-block:.25em;display:list-item}.coar-markdown :where(li,td,th)>:where(p){margin-block:0}.coar-markdown :where(li[data-item-type=task]){margin-left:-1.25em;padding-left:1.5em;list-style:none;position:relative}.coar-markdown :where(li[data-item-type=task]):before{content:"";border:1.5px solid var(--coar-border-neutral-secondary,var(--coar-border-neutral));border-radius:var(--coar-radius-xs,2px);background:var(--coar-background-neutral-primary);cursor:pointer;box-sizing:border-box;width:14px;height:14px;transition:background-color .1s,border-color .1s;position:absolute;top:.45em;left:0}.coar-markdown :where(li[data-item-type=task][data-checked=true]):before{background:var(--coar-background-accent-primary);border-color:var(--coar-background-accent-primary)}.coar-markdown :where(li[data-item-type=task][data-checked=true]):after{content:"";border-left:2px solid var(--coar-text-on-bold,#fff);border-bottom:2px solid var(--coar-text-on-bold,#fff);pointer-events:none;width:8px;height:5px;position:absolute;top:calc(.45em + 2px);left:3px;transform:rotate(-45deg)}.coar-markdown :where(li[data-item-type=task][data-checked=true])>:where(p){color:var(--coar-text-neutral-tertiary);text-decoration:line-through}.coar-markdown :where(li[data-item-type=task]) input[type=checkbox]{display:none}.coar-markdown-list-item--task{align-items:flex-start;gap:var(--coar-spacing-s,.5rem);list-style:none;display:flex}.coar-markdown-list-item-content{min-width:0}.coar-markdown-task-checkbox{margin-top:.15em}.coar-markdown-code-block,.coar-markdown-code{display:block}.coar-markdown :where(:not(pre)>code),.coar-markdown-inline-code{color:var(--coar-text-accent-secondary,var(--coar-markdown-link));background:0 0;border:0;border-radius:0;padding:0}.coar-markdown :where(a),.coar-markdown-link{color:var(--coar-markdown-link);text-decoration:underline}.coar-markdown-image{vertical-align:middle;max-width:100%;height:auto}.coar-markdown :where(table),.coar-markdown-table{border-collapse:collapse;border-spacing:0;width:100%;font-size:var(--coar-body-small-base-size,.9rem);line-height:var(--coar-line-height-relaxed,1.5);display:table}.coar-markdown :where(table thead,table tr[data-is-header]),.coar-markdown-table>thead{background:var(--coar-markdown-surface-muted)}.coar-markdown :where(table th),.coar-markdown-table>thead th{padding:.625rem var(--coar-markdown-space-2);text-align:left;vertical-align:top;font-weight:var(--coar-font-weight-semi-bold,600);font-size:var(--coar-component-s-font-size,.85em);color:var(--coar-markdown-text);border-bottom:1px solid var(--coar-markdown-border);text-transform:uppercase;letter-spacing:.025em}.coar-markdown :where(table td),.coar-markdown-table>tbody td{padding:.625rem var(--coar-markdown-space-2);text-align:left;vertical-align:top;color:var(--coar-text-neutral-secondary,var(--coar-markdown-text));border-bottom:1px solid var(--coar-markdown-border)}.coar-markdown-table>tbody tr:nth-child(odd of :not([data-is-header])),.coar-markdown :where(table>tbody tr:nth-child(odd of :not([data-is-header]))){background:var(--coar-markdown-surface)}.coar-markdown-table>tbody tr:nth-child(2n of :not([data-is-header])),.coar-markdown :where(table>tbody tr:nth-child(2n of :not([data-is-header]))){background:var(--coar-markdown-surface-muted)}.coar-markdown-table>tbody tr:last-child td,.coar-markdown :where(table>tbody tr:last-child:not([data-is-header]) td){border-bottom:0}.coar-markdown-table-cell{padding:var(--coar-markdown-space-1);vertical-align:top;border-right:1px solid var(--coar-markdown-border);border-bottom:1px solid var(--coar-markdown-border)}.coar-markdown-hr{border:0;border-top:1px solid var(--coar-markdown-border)}.coar-markdown-unsupported,.coar-markdown-unsupported-inline{color:var(--coar-markdown-muted-text);font-style:italic}.coar-markdown-unsupported{padding:var(--coar-markdown-space-1);border:1px dashed var(--coar-markdown-border);border-radius:var(--coar-markdown-radius);background:var(--coar-markdown-surface)}.coar-markdown-frontmatter{color:var(--coar-color-gray-400,silver);font-style:italic}.coar-markdown-frontmatter__entry{overflow-wrap:anywhere}.coar-markdown-frontmatter__raw{font:inherit;white-space:pre-wrap;overflow-wrap:anywhere;color:inherit;margin:0;font-style:italic}
1
+ .coar-markdown{--coar-markdown-text:var(--coar-text-neutral-primary);--coar-markdown-link:var(--coar-text-brand-primary,var(--coar-text-neutral-primary));--coar-markdown-muted-text:var(--coar-text-neutral-tertiary);--coar-markdown-border:var(--coar-border-neutral-tertiary);--coar-markdown-surface:var(--coar-background-neutral-primary);--coar-markdown-surface-muted:var(--coar-background-neutral-tertiary,var(--coar-background-neutral-primary));--coar-markdown-radius:var(--coar-radius-xs);--coar-markdown-space-1:var(--coar-spacing-s,.5rem);--coar-markdown-space-2:var(--coar-spacing-m,1rem);--coar-markdown-heading-block-start:var(--coar-spacing-xl,2rem);color:var(--coar-markdown-text);display:block}.coar-markdown :where(h1,h2,h3,h4,h5,h6){font-family:var(--coar-font-family-title,inherit);color:var(--coar-markdown-text)}.coar-markdown h1{font-size:var(--coar-font-size-xl);font-weight:var(--coar-font-weight-bold);line-height:var(--coar-line-height-tight)}.coar-markdown h2{font-size:var(--coar-font-size-l);font-weight:var(--coar-font-weight-bold);line-height:1.25}.coar-markdown h3{font-size:var(--coar-font-size-m);font-weight:var(--coar-font-weight-semi-bold);line-height:var(--coar-line-height-snug)}.coar-markdown h4{font-size:var(--coar-font-size-s);font-weight:var(--coar-font-weight-semi-bold);line-height:1.35}.coar-markdown h5{font-size:var(--coar-font-size-xs);font-weight:var(--coar-font-weight-semi-bold);line-height:var(--coar-line-height-normal)}.coar-markdown h6{font-size:var(--coar-font-size-xxs);font-weight:var(--coar-font-weight-medium);line-height:1.45}.coar-markdown-heading,.coar-markdown-paragraph,.coar-markdown-blockquote,.coar-markdown-list,.coar-markdown-code-block,.coar-markdown-table,.coar-markdown-hr,.coar-markdown :where(p,blockquote,ul,ol,pre,table,hr){margin:0}.coar-markdown>:where(h1,h2,h3,h4,h5,h6,p,blockquote,ul,ol,pre,table,hr,.coar-code-block-host,.coar-table-host,.coar-markdown-frontmatter),.coar-markdown .ProseMirror>:where(h1,h2,h3,h4,h5,h6,p,blockquote,ul,ol,pre,table,hr,.coar-code-block-host,.coar-table-host,.coar-markdown-frontmatter){margin-block:0 var(--coar-markdown-space-2)}.coar-markdown>:where(h1,h2,h3,h4,h5,h6),.coar-markdown .ProseMirror>:where(h1,h2,h3,h4,h5,h6){margin-block-start:var(--coar-markdown-heading-block-start)}.coar-markdown>:where(h1,h2,h3,h4,h5,h6)+:where(h1,h2,h3,h4,h5,h6),.coar-markdown .ProseMirror>:where(h1,h2,h3,h4,h5,h6)+:where(h1,h2,h3,h4,h5,h6){margin-block-start:var(--coar-markdown-space-1)}.coar-markdown>:where(h1,h2,h3,h4,h5,h6):first-child,.coar-markdown .ProseMirror>:where(h1,h2,h3,h4,h5,h6):first-child{margin-block-start:0}.coar-markdown :where(blockquote),.coar-markdown-blockquote{padding-inline:var(--coar-markdown-space-2);border-left:2px solid var(--coar-markdown-border);color:var(--coar-text-neutral-secondary)}.coar-markdown :where(ul,ol),.coar-markdown-list{padding-inline-start:var(--coar-spacing-l,1.5rem);list-style-position:outside}.coar-markdown :where(ul),.coar-markdown-list--unordered{list-style-type:disc}.coar-markdown :where(ol),.coar-markdown-list--ordered{list-style-type:decimal}.coar-markdown :where(li),.coar-markdown-list-item{margin-block:.25em;display:list-item}.coar-markdown :where(li,td,th)>:where(p){margin-block:0}.coar-markdown :where(li[data-item-type=task]){margin-left:-1.25em;padding-left:1.5em;list-style:none;position:relative}.coar-markdown :where(li[data-item-type=task]):before{content:"";border:1.5px solid var(--coar-border-neutral-secondary,var(--coar-border-neutral));border-radius:var(--coar-radius-xs,2px);background:var(--coar-background-neutral-primary);cursor:pointer;box-sizing:border-box;width:14px;height:14px;transition:background-color .1s,border-color .1s;position:absolute;top:.45em;left:0}.coar-markdown :where(li[data-item-type=task][data-checked=true]):before{background:var(--coar-background-accent-primary);border-color:var(--coar-background-accent-primary)}.coar-markdown :where(li[data-item-type=task][data-checked=true]):after{content:"";border-left:2px solid var(--coar-text-on-bold,#fff);border-bottom:2px solid var(--coar-text-on-bold,#fff);pointer-events:none;width:8px;height:5px;position:absolute;top:calc(.45em + 2px);left:3px;transform:rotate(-45deg)}.coar-markdown :where(li[data-item-type=task][data-checked=true])>:where(p){color:var(--coar-text-neutral-tertiary);text-decoration:line-through}.coar-markdown :where(li[data-item-type=task]) input[type=checkbox]{display:none}.coar-markdown-list-item--task{align-items:flex-start;gap:var(--coar-spacing-s,.5rem);list-style:none;display:flex}.coar-markdown-list-item-content{min-width:0}.coar-markdown-task-checkbox{margin-top:.15em}.coar-markdown-code-block,.coar-markdown-code{display:block}.coar-markdown :where(:not(pre)>code),.coar-markdown-inline-code{color:var(--coar-text-accent-secondary,var(--coar-markdown-link));background:0 0;border:0;border-radius:0;padding:0}.coar-markdown :where(a),.coar-markdown-link{color:var(--coar-markdown-link);text-decoration:underline}.coar-markdown-image{vertical-align:middle;max-width:100%;height:auto}.coar-markdown :where(table),.coar-markdown-table{border-collapse:collapse;border-spacing:0;width:100%;font-size:var(--coar-body-small-base-size,.9rem);line-height:var(--coar-line-height-relaxed,1.5);display:table}.coar-markdown :where(table thead,table tr[data-is-header]),.coar-markdown-table>thead{background:var(--coar-markdown-surface-muted)}.coar-markdown :where(table th),.coar-markdown-table>thead th{padding:.625rem var(--coar-markdown-space-2);text-align:left;vertical-align:top;font-weight:var(--coar-font-weight-semi-bold,600);font-size:var(--coar-component-s-font-size,.85em);color:var(--coar-markdown-text);border-bottom:1px solid var(--coar-markdown-border);text-transform:uppercase;letter-spacing:.025em}.coar-markdown :where(table td),.coar-markdown-table>tbody td{padding:.625rem var(--coar-markdown-space-2);text-align:left;vertical-align:top;color:var(--coar-text-neutral-secondary,var(--coar-markdown-text));border-bottom:1px solid var(--coar-markdown-border)}.coar-markdown-table>tbody tr:nth-child(odd of :not([data-is-header])),.coar-markdown :where(table>tbody tr:nth-child(odd of :not([data-is-header]))){background:var(--coar-markdown-surface)}.coar-markdown-table>tbody tr:nth-child(2n of :not([data-is-header])),.coar-markdown :where(table>tbody tr:nth-child(2n of :not([data-is-header]))){background:var(--coar-markdown-surface-muted)}.coar-markdown-table>tbody tr:last-child td,.coar-markdown :where(table>tbody tr:last-child:not([data-is-header]) td){border-bottom:0}.coar-markdown-table-cell{padding:var(--coar-markdown-space-1);vertical-align:top;border-right:1px solid var(--coar-markdown-border);border-bottom:1px solid var(--coar-markdown-border)}.coar-markdown-hr{border:0;border-top:1px solid var(--coar-markdown-border)}.coar-markdown-unsupported,.coar-markdown-unsupported-inline{color:var(--coar-markdown-muted-text);font-style:italic}.coar-markdown-unsupported{padding:var(--coar-markdown-space-1);border:1px dashed var(--coar-markdown-border);border-radius:var(--coar-markdown-radius);background:var(--coar-markdown-surface)}.coar-markdown-frontmatter{color:var(--coar-color-gray-400,silver);font-style:italic}.coar-markdown-frontmatter__entry{overflow-wrap:anywhere}.coar-markdown-frontmatter__raw{font:inherit;white-space:pre-wrap;overflow-wrap:anywhere;color:inherit;margin:0;font-style:italic}.coar-markdown-embed{margin:var(--coar-markdown-block-gap,1em) 0}.coar-markdown-embed--unknown{border:1px dashed var(--coar-border-neutral,#d4d4d4);border-radius:var(--coar-markdown-radius,8px);background:var(--coar-background-neutral-secondary,#f5f5f5);color:var(--coar-text-neutral-secondary,#666);align-items:center;gap:8px;padding:10px 14px;font-size:13px;display:flex}.coar-markdown-embed__icon{font-size:16px;line-height:1}
2
2
  /*$vite$:1*/
package/dist/index.d.ts CHANGED
@@ -16,7 +16,9 @@ export { default as CoarMarkdown } from './CoarMarkdown.vue';
16
16
  export type { CoarMarkdownProps } from './CoarMarkdown.vue';
17
17
  export { MARKDOWN_RENDERERS_KEY, rendererNameFor } from './registry';
18
18
  export type { MarkdownEditorNodeViewSpec, MarkdownEditorNodeViews, MarkdownRendererName, MarkdownRendererProps, MarkdownViewerRenderers, } from './registry';
19
- export { defaultMarkdownRenderers, DefaultBlockquote, DefaultCodeBlock, DefaultColorSpan, DefaultEmphasis, DefaultFrontmatter, DefaultHeading, DefaultImage, DefaultInlineCode, DefaultLineBreak, DefaultLink, DefaultList, DefaultListItem, DefaultParagraph, DefaultStrikethrough, DefaultStrong, DefaultTable, DefaultTableCell, DefaultTableRow, DefaultText, DefaultThematicBreak, DefaultUnsupported, } from './default-renderers';
19
+ export { defaultMarkdownRenderers, DefaultBlockquote, DefaultCodeBlock, DefaultColorSpan, DefaultEmbed, DefaultEmphasis, DefaultFrontmatter, DefaultHeading, DefaultImage, DefaultInlineCode, DefaultLineBreak, DefaultLink, DefaultList, DefaultListItem, DefaultParagraph, DefaultStrikethrough, DefaultStrong, DefaultTable, DefaultTableCell, DefaultTableRow, DefaultText, DefaultThematicBreak, DefaultUnsupported, } from './default-renderers';
20
20
  export { RenderNode, renderMarkdownNodes } from './RenderNode';
21
+ export { EmbedRenderer, MARKDOWN_EMBEDS_KEY, resolveEmbed, toEmbedProps, } from './embeds';
22
+ export type { EmbedDefinition, EmbedEditorController, EmbedEditorProps, EmbedInsertIntegration, EmbedRegistry, } from './embeds';
21
23
  export * from './helpers';
22
24
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAGH,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAC7D,YAAY,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAG5D,OAAO,EAAE,sBAAsB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AACrE,YAAY,EACV,0BAA0B,EAC1B,uBAAuB,EACvB,oBAAoB,EACpB,qBAAqB,EACrB,uBAAuB,GACxB,MAAM,YAAY,CAAC;AAIpB,OAAO,EACL,wBAAwB,EACxB,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EACf,kBAAkB,EAClB,cAAc,EACd,YAAY,EACZ,iBAAiB,EACjB,gBAAgB,EAChB,WAAW,EACX,WAAW,EACX,eAAe,EACf,gBAAgB,EAChB,oBAAoB,EACpB,aAAa,EACb,YAAY,EACZ,gBAAgB,EAChB,eAAe,EACf,WAAW,EACX,oBAAoB,EACpB,kBAAkB,GACnB,MAAM,qBAAqB,CAAC;AAI7B,OAAO,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAI/D,cAAc,WAAW,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAGH,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAC7D,YAAY,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAG5D,OAAO,EAAE,sBAAsB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AACrE,YAAY,EACV,0BAA0B,EAC1B,uBAAuB,EACvB,oBAAoB,EACpB,qBAAqB,EACrB,uBAAuB,GACxB,MAAM,YAAY,CAAC;AAIpB,OAAO,EACL,wBAAwB,EACxB,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,EAChB,YAAY,EACZ,eAAe,EACf,kBAAkB,EAClB,cAAc,EACd,YAAY,EACZ,iBAAiB,EACjB,gBAAgB,EAChB,WAAW,EACX,WAAW,EACX,eAAe,EACf,gBAAgB,EAChB,oBAAoB,EACpB,aAAa,EACb,YAAY,EACZ,gBAAgB,EAChB,eAAe,EACf,WAAW,EACX,oBAAoB,EACpB,kBAAkB,GACnB,MAAM,qBAAqB,CAAC;AAI7B,OAAO,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAK/D,OAAO,EACL,aAAa,EACb,mBAAmB,EACnB,YAAY,EACZ,YAAY,GACb,MAAM,UAAU,CAAC;AAClB,YAAY,EACV,eAAe,EACf,qBAAqB,EACrB,gBAAgB,EAChB,sBAAsB,EACtB,aAAa,GACd,MAAM,UAAU,CAAC;AAIlB,cAAc,WAAW,CAAC"}
package/dist/index.js CHANGED
@@ -1,97 +1,133 @@
1
- import { Fragment as e, createBlock as t, createElementBlock as n, defineComponent as r, h as i, inject as ee, openBlock as a, provide as te, renderList as ne, unref as re } from "vue";
2
- import { CoarCodeBlock as ie } from "@cocoar/vue-ui";
3
- import { sanitizeColor as ae } from "@cocoar/vue-markdown-core";
1
+ import { Fragment as e, createBlock as t, createElementBlock as n, defineComponent as r, h as i, inject as ee, openBlock as a, provide as o, renderList as te, unref as ne } from "vue";
2
+ import { CoarCodeBlock as re } from "@cocoar/vue-ui";
3
+ import { sanitizeColor as ie, toEmbedProps as ae } from "@cocoar/vue-markdown-core";
4
+ //#region src/embeds.ts
5
+ var s = Symbol.for("coar:markdown-embeds");
6
+ function c(e, t) {
7
+ return e ? e[t] : void 0;
8
+ }
9
+ var l = r({
10
+ name: "CoarMarkdownEmbed",
11
+ props: {
12
+ embedKey: {
13
+ type: String,
14
+ required: !0
15
+ },
16
+ embedProps: {
17
+ type: Object,
18
+ default: () => ({})
19
+ },
20
+ registry: {
21
+ type: Object,
22
+ default: void 0
23
+ }
24
+ },
25
+ setup(e) {
26
+ let t = ee(s, void 0);
27
+ return () => {
28
+ let n = c(e.registry ?? t, e.embedKey);
29
+ return n ? i("div", {
30
+ class: "coar-markdown-embed",
31
+ "data-embed-key": e.embedKey
32
+ }, [i(n.viewer, { ...e.embedProps })]) : i("div", {
33
+ class: "coar-markdown-embed coar-markdown-embed--unknown",
34
+ "data-embed-key": e.embedKey
35
+ }, [i("span", { class: "coar-markdown-embed__icon" }, "🧩"), i("span", { class: "coar-markdown-embed__label" }, `Unknown embed: :::${e.embedKey}`)]);
36
+ };
37
+ }
38
+ });
39
+ //#endregion
4
40
  //#region src/helpers.ts
5
- function o(e) {
41
+ function u(e) {
6
42
  let t = e.attrs?.depth;
7
43
  if (typeof t != "number") return 1;
8
44
  let n = Math.trunc(t);
9
45
  return n <= 1 ? 1 : n === 2 ? 2 : n === 3 ? 3 : n === 4 ? 4 : n === 5 ? 5 : 6;
10
46
  }
11
- function s(e) {
47
+ function d(e) {
12
48
  let t = e.attrs?.anchor;
13
49
  return typeof t == "string" && t.length > 0 ? t : null;
14
50
  }
15
- function c(e) {
51
+ function f(e) {
16
52
  let t = e.attrs?.language;
17
53
  return typeof t == "string" && t.trim().length > 0 ? t.trim() : "text";
18
54
  }
19
- function l(e) {
55
+ function p(e) {
20
56
  return !!e.attrs?.ordered;
21
57
  }
22
- function u(e) {
58
+ function m(e) {
23
59
  let t = e.attrs?.start;
24
60
  return typeof t == "number" ? t : null;
25
61
  }
26
- function d(e) {
62
+ function h(e) {
27
63
  return typeof e.attrs?.checked == "boolean";
28
64
  }
29
- function f(e) {
65
+ function g(e) {
30
66
  return e.attrs?.checked === !0;
31
67
  }
32
- function p(e) {
68
+ function _(e) {
33
69
  let t = e.attrs?.url;
34
70
  return typeof t == "string" && t.length > 0 ? t : null;
35
71
  }
36
- function m(e) {
37
- let t = p(e);
72
+ function v(e) {
73
+ let t = _(e);
38
74
  return t ? t.startsWith("#") && typeof window < "u" ? `${window.location.pathname}${window.location.search}${t}` : t : null;
39
75
  }
40
- function h(e) {
41
- let t = p(e);
42
- return t && D(t) ? "_blank" : null;
76
+ function y(e) {
77
+ let t = _(e);
78
+ return t && oe(t) ? "_blank" : null;
43
79
  }
44
- function g(e) {
45
- let t = p(e);
46
- return t && D(t) ? "noopener noreferrer" : null;
80
+ function b(e) {
81
+ let t = _(e);
82
+ return t && oe(t) ? "noopener noreferrer" : null;
47
83
  }
48
- function _(e) {
84
+ function x(e) {
49
85
  let t = e.attrs?.url;
50
86
  return typeof t == "string" && t.trim().length > 0 ? t.trim() : null;
51
87
  }
52
- function v(e) {
88
+ function S(e) {
53
89
  let t = e.attrs?.alt;
54
90
  return typeof t == "string" ? t : "";
55
91
  }
56
- function y(e) {
92
+ function C(e) {
57
93
  let t = e.attrs?.title;
58
94
  return typeof t == "string" && t.trim().length > 0 ? t.trim() : null;
59
95
  }
60
- function b(e, t) {
61
- return E(e, t) === "right";
96
+ function w(e, t) {
97
+ return A(e, t) === "right";
62
98
  }
63
- function x(e, t) {
64
- return E(e, t) === "center";
99
+ function T(e, t) {
100
+ return A(e, t) === "center";
65
101
  }
66
- function S(e) {
102
+ function E(e) {
67
103
  let t = e.attrs?.originalType;
68
104
  return typeof t == "string" ? t : String(e.type);
69
105
  }
70
- function C(e) {
106
+ function D(e) {
71
107
  let t = e.attrs?.entries;
72
108
  return Array.isArray(t) ? t.filter((e) => !!e && typeof e == "object" && typeof e.key == "string" && typeof e.value == "string") : [];
73
109
  }
74
- function w(e) {
110
+ function O(e) {
75
111
  let t = e.attrs?.raw;
76
112
  return typeof t == "string" ? t : "";
77
113
  }
78
- function T(e) {
114
+ function k(e) {
79
115
  let t = e.attrs?.color;
80
- return typeof t == "string" ? ae(t) : null;
116
+ return typeof t == "string" ? ie(t) : null;
81
117
  }
82
- function E(e, t) {
118
+ function A(e, t) {
83
119
  let n = e.attrs?.align;
84
120
  if (!Array.isArray(n)) return null;
85
121
  let r = n[t];
86
122
  return r === "left" || r === "right" || r === "center" ? r : null;
87
123
  }
88
- function D(e) {
124
+ function oe(e) {
89
125
  let t = e.trim();
90
126
  return t.startsWith("#") || t.startsWith("/") || t.startsWith("./") || t.startsWith("../") || t.startsWith("mailto:") || t.startsWith("tel:") ? !1 : t.startsWith("http://") || t.startsWith("https://");
91
127
  }
92
128
  //#endregion
93
129
  //#region src/default-renderers.ts
94
- var O = {
130
+ var j = {
95
131
  node: {
96
132
  type: Object,
97
133
  required: !0
@@ -104,16 +140,16 @@ var O = {
104
140
  type: Function,
105
141
  required: !0
106
142
  }
107
- }, k = r({
143
+ }, M = r({
108
144
  name: "DefaultFrontmatter",
109
- props: O,
145
+ props: j,
110
146
  setup(e) {
111
147
  return () => {
112
- let t = C(e.node);
148
+ let t = D(e.node);
113
149
  return t.length === 0 ? i("div", {
114
150
  class: "coar-markdown-frontmatter",
115
151
  "aria-label": "Document metadata"
116
- }, [i("pre", { class: "coar-markdown-frontmatter__raw" }, w(e.node))]) : i("div", {
152
+ }, [i("pre", { class: "coar-markdown-frontmatter__raw" }, O(e.node))]) : i("div", {
117
153
  class: "coar-markdown-frontmatter",
118
154
  role: "group",
119
155
  "aria-label": "Document metadata"
@@ -127,48 +163,48 @@ var O = {
127
163
  ])));
128
164
  };
129
165
  }
130
- }), A = r({
166
+ }), N = r({
131
167
  name: "DefaultHeading",
132
- props: O,
168
+ props: j,
133
169
  setup(e) {
134
170
  return () => {
135
- let t = o(e.node), n = s(e.node);
171
+ let t = u(e.node), n = d(e.node);
136
172
  return i(`h${t}`, {
137
173
  id: n ?? void 0,
138
174
  class: "coar-markdown-heading"
139
175
  }, e.renderChildren());
140
176
  };
141
177
  }
142
- }), j = r({
178
+ }), P = r({
143
179
  name: "DefaultParagraph",
144
- props: O,
180
+ props: j,
145
181
  setup(e) {
146
182
  return () => i("p", { class: "coar-markdown-paragraph" }, e.renderChildren());
147
183
  }
148
- }), M = r({
184
+ }), F = r({
149
185
  name: "DefaultBlockquote",
150
- props: O,
186
+ props: j,
151
187
  setup(e) {
152
188
  return () => i("blockquote", { class: "coar-markdown-blockquote" }, e.renderChildren());
153
189
  }
154
- }), N = r({
190
+ }), I = r({
155
191
  name: "DefaultList",
156
- props: O,
192
+ props: j,
157
193
  setup(e) {
158
194
  return () => {
159
- let t = l(e.node), n = t ? "ol" : "ul", r = t ? u(e.node) : null;
195
+ let t = p(e.node), n = t ? "ol" : "ul", r = t ? m(e.node) : null;
160
196
  return i(n, {
161
197
  class: ["coar-markdown-list", t ? "coar-markdown-list--ordered" : "coar-markdown-list--unordered"],
162
198
  start: r ?? void 0
163
199
  }, e.renderChildren());
164
200
  };
165
201
  }
166
- }), P = r({
202
+ }), L = r({
167
203
  name: "DefaultListItem",
168
- props: O,
204
+ props: j,
169
205
  setup(e) {
170
206
  return () => {
171
- let t = d(e.node), n = t && f(e.node);
207
+ let t = h(e.node), n = t && g(e.node);
172
208
  return i("li", {
173
209
  class: ["coar-markdown-list-item", t ? "coar-markdown-list-item--task" : null],
174
210
  "data-item-type": t ? "task" : void 0,
@@ -176,21 +212,21 @@ var O = {
176
212
  }, e.renderChildren());
177
213
  };
178
214
  }
179
- }), F = r({
215
+ }), R = r({
180
216
  name: "DefaultCodeBlock",
181
- props: O,
217
+ props: j,
182
218
  setup(e) {
183
- return () => i(ie, {
219
+ return () => i(re, {
184
220
  class: "coar-markdown-code-block",
185
221
  code: e.node.text ?? "",
186
- language: c(e.node),
222
+ language: f(e.node),
187
223
  collapsible: !1,
188
224
  showCopy: !0
189
225
  });
190
226
  }
191
- }), I = r({
227
+ }), z = r({
192
228
  name: "DefaultTable",
193
- props: O,
229
+ props: j,
194
230
  setup(e) {
195
231
  return () => {
196
232
  let t = e.node.children ?? [];
@@ -198,143 +234,153 @@ var O = {
198
234
  let [n, ...r] = t;
199
235
  return i("table", { class: "coar-markdown-table" }, [i("thead", null, [i("tr", null, (n.children ?? []).map((t, n) => i("th", {
200
236
  key: t.id,
201
- class: [b(e.node, n) ? "text-right" : null, x(e.node, n) ? "text-center" : null]
237
+ class: [w(e.node, n) ? "text-right" : null, T(e.node, n) ? "text-center" : null]
202
238
  }, e.renderNodes(t.children ?? []))))]), i("tbody", null, r.map((t) => i("tr", { key: t.id }, (t.children ?? []).map((t, n) => i("td", {
203
239
  key: t.id,
204
- class: [b(e.node, n) ? "text-right" : null, x(e.node, n) ? "text-center" : null]
240
+ class: [w(e.node, n) ? "text-right" : null, T(e.node, n) ? "text-center" : null]
205
241
  }, e.renderNodes(t.children ?? []))))))]);
206
242
  };
207
243
  }
208
- }), L = r({
244
+ }), B = r({
209
245
  name: "DefaultTableRow",
210
- props: O,
246
+ props: j,
211
247
  setup(e) {
212
248
  return () => i("tr", null, e.renderChildren());
213
249
  }
214
- }), R = r({
250
+ }), V = r({
215
251
  name: "DefaultTableCell",
216
- props: O,
252
+ props: j,
217
253
  setup(e) {
218
254
  return () => i("td", { class: "coar-markdown-table-cell" }, e.renderChildren());
219
255
  }
220
- }), z = r({
256
+ }), H = r({
221
257
  name: "DefaultThematicBreak",
222
- props: O,
258
+ props: j,
223
259
  setup() {
224
260
  return () => i("hr", { class: "coar-markdown-hr" });
225
261
  }
226
- }), B = r({
262
+ }), U = r({
227
263
  name: "DefaultText",
228
- props: O,
264
+ props: j,
229
265
  setup(e) {
230
266
  return () => e.node.text ?? "";
231
267
  }
232
- }), V = r({
268
+ }), W = r({
233
269
  name: "DefaultEmphasis",
234
- props: O,
270
+ props: j,
235
271
  setup(e) {
236
272
  return () => i("em", null, e.renderChildren());
237
273
  }
238
- }), H = r({
274
+ }), G = r({
239
275
  name: "DefaultStrong",
240
- props: O,
276
+ props: j,
241
277
  setup(e) {
242
278
  return () => i("strong", null, e.renderChildren());
243
279
  }
244
- }), U = r({
280
+ }), K = r({
245
281
  name: "DefaultStrikethrough",
246
- props: O,
282
+ props: j,
247
283
  setup(e) {
248
284
  return () => i("del", null, e.renderChildren());
249
285
  }
250
- }), W = r({
286
+ }), q = r({
251
287
  name: "DefaultInlineCode",
252
- props: O,
288
+ props: j,
253
289
  setup(e) {
254
290
  return () => i("code", { class: "coar-markdown-inline-code" }, e.node.text ?? "");
255
291
  }
256
- }), G = r({
292
+ }), J = r({
257
293
  name: "DefaultLink",
258
- props: O,
294
+ props: j,
259
295
  setup(e) {
260
296
  return () => {
261
- let t = m(e.node);
297
+ let t = v(e.node);
262
298
  return t ? i("a", {
263
299
  class: "coar-markdown-link",
264
300
  href: t,
265
- target: h(e.node) ?? void 0,
266
- rel: g(e.node) ?? void 0
301
+ target: y(e.node) ?? void 0,
302
+ rel: b(e.node) ?? void 0
267
303
  }, e.renderChildren()) : e.renderChildren();
268
304
  };
269
305
  }
270
- }), K = r({
306
+ }), Y = r({
271
307
  name: "DefaultImage",
272
- props: O,
308
+ props: j,
273
309
  setup(e) {
274
310
  return () => {
275
- let t = _(e.node);
311
+ let t = x(e.node);
276
312
  return t ? i("img", {
277
313
  class: "coar-markdown-image",
278
314
  src: t,
279
- alt: v(e.node),
280
- title: y(e.node) ?? void 0,
315
+ alt: S(e.node),
316
+ title: C(e.node) ?? void 0,
281
317
  loading: "lazy"
282
318
  }) : null;
283
319
  };
284
320
  }
285
- }), q = r({
321
+ }), X = r({
286
322
  name: "DefaultLineBreak",
287
- props: O,
323
+ props: j,
288
324
  setup() {
289
325
  return () => i("br");
290
326
  }
291
- }), J = r({
327
+ }), Z = r({
292
328
  name: "DefaultColorSpan",
293
- props: O,
329
+ props: j,
294
330
  setup(e) {
295
331
  return () => {
296
- let t = T(e.node);
332
+ let t = k(e.node);
297
333
  return i("span", {
298
334
  class: "coar-markdown-color",
299
335
  style: t ? { color: t } : void 0
300
336
  }, e.renderChildren());
301
337
  };
302
338
  }
303
- }), Y = r({
339
+ }), se = r({
340
+ name: "DefaultEmbed",
341
+ props: j,
342
+ setup(e) {
343
+ return () => i(l, {
344
+ embedKey: typeof e.node.attrs?.key == "string" ? e.node.attrs.key : "",
345
+ embedProps: ae(e.node.attrs?.props)
346
+ });
347
+ }
348
+ }), ce = r({
304
349
  name: "DefaultUnsupported",
305
- props: O,
350
+ props: j,
306
351
  setup(e) {
307
- return () => i("div", { class: "coar-markdown-unsupported" }, `Unsupported markdown node: ${S(e.node)}`);
352
+ return () => i("div", { class: "coar-markdown-unsupported" }, `Unsupported markdown node: ${E(e.node)}`);
308
353
  }
309
- }), X = {
310
- frontmatter: k,
311
- heading: A,
312
- paragraph: j,
313
- blockquote: M,
314
- list: N,
315
- listItem: P,
316
- codeBlock: F,
317
- table: I,
318
- tableRow: L,
319
- tableCell: R,
320
- thematicBreak: z,
321
- text: B,
322
- emphasis: V,
323
- strong: H,
324
- strikethrough: U,
325
- inlineCode: W,
326
- link: G,
327
- image: K,
328
- lineBreak: q,
329
- colorSpan: J,
330
- unsupported: Y
354
+ }), le = {
355
+ frontmatter: M,
356
+ heading: N,
357
+ paragraph: P,
358
+ blockquote: F,
359
+ list: I,
360
+ listItem: L,
361
+ codeBlock: R,
362
+ table: z,
363
+ tableRow: B,
364
+ tableCell: V,
365
+ thematicBreak: H,
366
+ text: U,
367
+ emphasis: W,
368
+ strong: G,
369
+ strikethrough: K,
370
+ inlineCode: q,
371
+ link: J,
372
+ image: Y,
373
+ lineBreak: X,
374
+ colorSpan: Z,
375
+ embed: se,
376
+ unsupported: ce
331
377
  };
332
378
  //#endregion
333
379
  //#region src/registry.ts
334
- function Z(e) {
335
- return e in oe ? e : "unsupported";
380
+ function ue(e) {
381
+ return e in de ? e : "unsupported";
336
382
  }
337
- var oe = {
383
+ var de = {
338
384
  frontmatter: !0,
339
385
  heading: !0,
340
386
  paragraph: !0,
@@ -355,6 +401,7 @@ var oe = {
355
401
  image: !0,
356
402
  lineBreak: !0,
357
403
  colorSpan: !0,
404
+ embed: !0,
358
405
  unsupported: !0
359
406
  }, Q = Symbol.for("coar:markdown-renderers"), $ = r({
360
407
  name: "RenderNode",
@@ -369,14 +416,14 @@ var oe = {
369
416
  }
370
417
  },
371
418
  setup(e) {
372
- let t = ee(Q, void 0), n = () => e.renderers ?? t ?? X;
373
- e.renderers && te(Q, e.renderers);
419
+ let t = ee(Q, void 0), n = () => e.renderers ?? t ?? le;
420
+ e.renderers && o(Q, e.renderers);
374
421
  let r = (e) => e.map((e) => i($, {
375
422
  node: e,
376
423
  key: e.id
377
424
  })), a = () => r(e.node.children ?? []);
378
425
  return () => {
379
- let t = n()[Z(e.node.type)];
426
+ let t = n()[ue(e.node.type)];
380
427
  return i(t, {
381
428
  node: e.node,
382
429
  renderChildren: a,
@@ -385,7 +432,7 @@ var oe = {
385
432
  };
386
433
  }
387
434
  });
388
- function se(e, t) {
435
+ function fe(e, t) {
389
436
  return e.map((e) => i($, {
390
437
  node: e,
391
438
  renderers: t,
@@ -394,14 +441,16 @@ function se(e, t) {
394
441
  }
395
442
  //#endregion
396
443
  //#region src/CoarMarkdown.vue?vue&type=script&setup=true&lang.ts
397
- var ce = { class: "coar-markdown" }, le = /* @__PURE__ */ r({
444
+ var pe = { class: "coar-markdown" }, me = /* @__PURE__ */ r({
398
445
  __name: "CoarMarkdown",
399
446
  props: {
400
447
  doc: {},
401
- renderers: {}
448
+ renderers: {},
449
+ embeds: {}
402
450
  },
403
451
  setup(r) {
404
- return (i, ee) => (a(), n("div", ce, [(a(!0), n(e, null, ne(r.doc.nodes, (e) => (a(), t(re($), {
452
+ let i = r;
453
+ return i.embeds && o(s, i.embeds), (i, ee) => (a(), n("div", pe, [(a(!0), n(e, null, te(r.doc.nodes, (e) => (a(), t(ne($), {
405
454
  key: e.id,
406
455
  node: e,
407
456
  renderers: r.renderers
@@ -409,4 +458,4 @@ var ce = { class: "coar-markdown" }, le = /* @__PURE__ */ r({
409
458
  }
410
459
  });
411
460
  //#endregion
412
- export { le as CoarMarkdown, M as DefaultBlockquote, F as DefaultCodeBlock, J as DefaultColorSpan, V as DefaultEmphasis, k as DefaultFrontmatter, A as DefaultHeading, K as DefaultImage, W as DefaultInlineCode, q as DefaultLineBreak, G as DefaultLink, N as DefaultList, P as DefaultListItem, j as DefaultParagraph, U as DefaultStrikethrough, H as DefaultStrong, I as DefaultTable, R as DefaultTableCell, L as DefaultTableRow, B as DefaultText, z as DefaultThematicBreak, Y as DefaultUnsupported, Q as MARKDOWN_RENDERERS_KEY, $ as RenderNode, c as codeBlockLanguage, T as colorSpanColor, X as defaultMarkdownRenderers, C as frontmatterEntries, w as frontmatterRaw, s as headingAnchor, o as headingDepth, v as imageAlt, _ as imageSrc, y as imageTitle, l as isOrderedList, x as isTableColumnCenterAligned, b as isTableColumnRightAligned, d as isTaskListItem, m as linkHref, g as linkRel, h as linkTarget, p as linkUrl, u as listStart, se as renderMarkdownNodes, Z as rendererNameFor, f as taskChecked, S as unsupportedType };
461
+ export { me as CoarMarkdown, F as DefaultBlockquote, R as DefaultCodeBlock, Z as DefaultColorSpan, se as DefaultEmbed, W as DefaultEmphasis, M as DefaultFrontmatter, N as DefaultHeading, Y as DefaultImage, q as DefaultInlineCode, X as DefaultLineBreak, J as DefaultLink, I as DefaultList, L as DefaultListItem, P as DefaultParagraph, K as DefaultStrikethrough, G as DefaultStrong, z as DefaultTable, V as DefaultTableCell, B as DefaultTableRow, U as DefaultText, H as DefaultThematicBreak, ce as DefaultUnsupported, l as EmbedRenderer, s as MARKDOWN_EMBEDS_KEY, Q as MARKDOWN_RENDERERS_KEY, $ as RenderNode, f as codeBlockLanguage, k as colorSpanColor, le as defaultMarkdownRenderers, D as frontmatterEntries, O as frontmatterRaw, d as headingAnchor, u as headingDepth, S as imageAlt, x as imageSrc, C as imageTitle, p as isOrderedList, T as isTableColumnCenterAligned, w as isTableColumnRightAligned, h as isTaskListItem, v as linkHref, b as linkRel, y as linkTarget, _ as linkUrl, m as listStart, fe as renderMarkdownNodes, ue as rendererNameFor, c as resolveEmbed, g as taskChecked, ae as toEmbedProps, E as unsupportedType };
@@ -42,6 +42,7 @@ export interface MarkdownViewerRenderers {
42
42
  image: Component<MarkdownRendererProps>;
43
43
  lineBreak: Component<MarkdownRendererProps>;
44
44
  colorSpan: Component<MarkdownRendererProps>;
45
+ embed: Component<MarkdownRendererProps>;
45
46
  unsupported: Component<MarkdownRendererProps>;
46
47
  }
47
48
  export type MarkdownRendererName = keyof MarkdownViewerRenderers;
@@ -1 +1 @@
1
- {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,KAAK,CAAC;AAC1D,OAAO,KAAK,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAEhF;;;;;;;;;GASG;AACH,MAAM,WAAW,qBAAqB,CAAC,KAAK,SAAS,YAAY,GAAG,YAAY;IAC9E,IAAI,EAAE,KAAK,CAAC;IACZ,cAAc,EAAE,MAAM,KAAK,EAAE,CAAC;IAC9B,WAAW,EAAE,CAAC,KAAK,EAAE,SAAS,YAAY,EAAE,KAAK,KAAK,EAAE,CAAC;CAC1D;AAED;;;;;GAKG;AACH,MAAM,WAAW,uBAAuB;IAEtC,WAAW,EAAE,SAAS,CAAC,qBAAqB,CAAC,CAAC;IAC9C,OAAO,EAAE,SAAS,CAAC,qBAAqB,CAAC,CAAC;IAC1C,SAAS,EAAE,SAAS,CAAC,qBAAqB,CAAC,CAAC;IAC5C,UAAU,EAAE,SAAS,CAAC,qBAAqB,CAAC,CAAC;IAC7C,IAAI,EAAE,SAAS,CAAC,qBAAqB,CAAC,CAAC;IACvC,QAAQ,EAAE,SAAS,CAAC,qBAAqB,CAAC,CAAC;IAC3C,SAAS,EAAE,SAAS,CAAC,qBAAqB,CAAC,CAAC;IAC5C,KAAK,EAAE,SAAS,CAAC,qBAAqB,CAAC,CAAC;IACxC,QAAQ,EAAE,SAAS,CAAC,qBAAqB,CAAC,CAAC;IAC3C,SAAS,EAAE,SAAS,CAAC,qBAAqB,CAAC,CAAC;IAC5C,aAAa,EAAE,SAAS,CAAC,qBAAqB,CAAC,CAAC;IAEhD,IAAI,EAAE,SAAS,CAAC,qBAAqB,CAAC,CAAC;IACvC,QAAQ,EAAE,SAAS,CAAC,qBAAqB,CAAC,CAAC;IAC3C,MAAM,EAAE,SAAS,CAAC,qBAAqB,CAAC,CAAC;IACzC,aAAa,EAAE,SAAS,CAAC,qBAAqB,CAAC,CAAC;IAChD,UAAU,EAAE,SAAS,CAAC,qBAAqB,CAAC,CAAC;IAC7C,IAAI,EAAE,SAAS,CAAC,qBAAqB,CAAC,CAAC;IACvC,KAAK,EAAE,SAAS,CAAC,qBAAqB,CAAC,CAAC;IACxC,SAAS,EAAE,SAAS,CAAC,qBAAqB,CAAC,CAAC;IAC5C,SAAS,EAAE,SAAS,CAAC,qBAAqB,CAAC,CAAC;IAE5C,WAAW,EAAE,SAAS,CAAC,qBAAqB,CAAC,CAAC;CAC/C;AAED,MAAM,MAAM,oBAAoB,GAAG,MAAM,uBAAuB,CAAC;AAEjE;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,gBAAgB,GAAG,MAAM,GAAG,oBAAoB,CAIrF;AAcD;;;;;;;;GAQG;AACH,eAAO,MAAM,sBAAsB,EAAE,YAAY,CAAC,uBAAuB,CAExE,CAAC;AAEF;;;;;;;;GAQG;AACH,MAAM,WAAW,0BAA0B;IACzC,yEAAyE;IACzE,UAAU,EAAE,MAAM,CAAC;IACnB,uEAAuE;IACvE,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,uBAAuB;IACtC,UAAU,CAAC,EAAE,0BAA0B,CAAC;IACxC,KAAK,CAAC,EAAE,0BAA0B,CAAC;CACpC"}
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,KAAK,CAAC;AAC1D,OAAO,KAAK,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAEhF;;;;;;;;;GASG;AACH,MAAM,WAAW,qBAAqB,CAAC,KAAK,SAAS,YAAY,GAAG,YAAY;IAC9E,IAAI,EAAE,KAAK,CAAC;IACZ,cAAc,EAAE,MAAM,KAAK,EAAE,CAAC;IAC9B,WAAW,EAAE,CAAC,KAAK,EAAE,SAAS,YAAY,EAAE,KAAK,KAAK,EAAE,CAAC;CAC1D;AAED;;;;;GAKG;AACH,MAAM,WAAW,uBAAuB;IAEtC,WAAW,EAAE,SAAS,CAAC,qBAAqB,CAAC,CAAC;IAC9C,OAAO,EAAE,SAAS,CAAC,qBAAqB,CAAC,CAAC;IAC1C,SAAS,EAAE,SAAS,CAAC,qBAAqB,CAAC,CAAC;IAC5C,UAAU,EAAE,SAAS,CAAC,qBAAqB,CAAC,CAAC;IAC7C,IAAI,EAAE,SAAS,CAAC,qBAAqB,CAAC,CAAC;IACvC,QAAQ,EAAE,SAAS,CAAC,qBAAqB,CAAC,CAAC;IAC3C,SAAS,EAAE,SAAS,CAAC,qBAAqB,CAAC,CAAC;IAC5C,KAAK,EAAE,SAAS,CAAC,qBAAqB,CAAC,CAAC;IACxC,QAAQ,EAAE,SAAS,CAAC,qBAAqB,CAAC,CAAC;IAC3C,SAAS,EAAE,SAAS,CAAC,qBAAqB,CAAC,CAAC;IAC5C,aAAa,EAAE,SAAS,CAAC,qBAAqB,CAAC,CAAC;IAEhD,IAAI,EAAE,SAAS,CAAC,qBAAqB,CAAC,CAAC;IACvC,QAAQ,EAAE,SAAS,CAAC,qBAAqB,CAAC,CAAC;IAC3C,MAAM,EAAE,SAAS,CAAC,qBAAqB,CAAC,CAAC;IACzC,aAAa,EAAE,SAAS,CAAC,qBAAqB,CAAC,CAAC;IAChD,UAAU,EAAE,SAAS,CAAC,qBAAqB,CAAC,CAAC;IAC7C,IAAI,EAAE,SAAS,CAAC,qBAAqB,CAAC,CAAC;IACvC,KAAK,EAAE,SAAS,CAAC,qBAAqB,CAAC,CAAC;IACxC,SAAS,EAAE,SAAS,CAAC,qBAAqB,CAAC,CAAC;IAC5C,SAAS,EAAE,SAAS,CAAC,qBAAqB,CAAC,CAAC;IAE5C,KAAK,EAAE,SAAS,CAAC,qBAAqB,CAAC,CAAC;IAExC,WAAW,EAAE,SAAS,CAAC,qBAAqB,CAAC,CAAC;CAC/C;AAED,MAAM,MAAM,oBAAoB,GAAG,MAAM,uBAAuB,CAAC;AAEjE;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,gBAAgB,GAAG,MAAM,GAAG,oBAAoB,CAIrF;AAeD;;;;;;;;GAQG;AACH,eAAO,MAAM,sBAAsB,EAAE,YAAY,CAAC,uBAAuB,CAExE,CAAC;AAEF;;;;;;;;GAQG;AACH,MAAM,WAAW,0BAA0B;IACzC,yEAAyE;IACzE,UAAU,EAAE,MAAM,CAAC;IACnB,uEAAuE;IACvE,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,uBAAuB;IACtC,UAAU,CAAC,EAAE,0BAA0B,CAAC;IACxC,KAAK,CAAC,EAAE,0BAA0B,CAAC;CACpC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cocoar/vue-markdown",
3
- "version": "2.11.0",
3
+ "version": "2.12.0",
4
4
  "description": "Markdown viewer + shared rendering registry for Vue 3. The viewer (`<CoarMarkdown>`) and the editor (`@cocoar/vue-markdown-editor`) consume the same component map so a code block, table, etc. looks identical in both contexts.",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {
@@ -43,10 +43,10 @@
43
43
  "typecheck": "vue-tsc --noEmit"
44
44
  },
45
45
  "dependencies": {
46
- "@cocoar/vue-markdown-core": "2.11.0"
46
+ "@cocoar/vue-markdown-core": "2.12.0"
47
47
  },
48
48
  "peerDependencies": {
49
- "@cocoar/vue-ui": "2.11.0",
49
+ "@cocoar/vue-ui": "2.12.0",
50
50
  "vue": "^3.5.0"
51
51
  },
52
52
  "devDependencies": {
@@ -395,3 +395,29 @@
395
395
  overflow-wrap: anywhere;
396
396
  color: inherit;
397
397
  }
398
+
399
+ /* Custom embed (`:::key{props}`). The wrapper just owns the block rhythm; the
400
+ registered component controls its own look. Both the viewer's DefaultEmbed
401
+ and the editor's NodeView mount inside this wrapper so they match. */
402
+ .coar-markdown-embed {
403
+ margin: var(--coar-markdown-block-gap, 1em) 0;
404
+ }
405
+
406
+ /* Unregistered key — a labelled placeholder so the author still sees the embed
407
+ instead of a blank gap. */
408
+ .coar-markdown-embed--unknown {
409
+ display: flex;
410
+ align-items: center;
411
+ gap: 8px;
412
+ padding: 10px 14px;
413
+ border: 1px dashed var(--coar-border-neutral, #d4d4d4);
414
+ border-radius: var(--coar-markdown-radius, 8px);
415
+ background: var(--coar-background-neutral-secondary, #f5f5f5);
416
+ color: var(--coar-text-neutral-secondary, #666);
417
+ font-size: 13px;
418
+ }
419
+
420
+ .coar-markdown-embed__icon {
421
+ font-size: 16px;
422
+ line-height: 1;
423
+ }