@cocoar/vue-markdown-editor 2.11.0 → 2.13.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 { PropType } from 'vue';
2
2
  import { CoarMarkdownFlavorInput } from './flavor';
3
+ import { EmbedRegistry } from '@cocoar/vue-markdown';
3
4
  import { ImageUploader } from './image/imageUpload';
4
5
  import { ImagePicker } from './image/pickImage';
5
6
  export type CoarMarkdownEditorToolbarMode = 'floating' | 'fixed' | 'both';
@@ -12,6 +13,32 @@ export type CoarMarkdownEditorTool = 'bold' | 'italic' | 'strikethrough' | 'inli
12
13
  /** Canonical list of all toolbar tools — exported so consumers can build
13
14
  * custom subsets (e.g. `tools: COAR_MARKDOWN_EDITOR_ALL_TOOLS.filter(...)`). */
14
15
  export declare const COAR_MARKDOWN_EDITOR_ALL_TOOLS: readonly CoarMarkdownEditorTool[];
16
+ /**
17
+ * A reference in the `tools` layout: a built-in tool id, OR a custom embed
18
+ * insert item addressed by key as `embed:<key>`. The embed's icon/label/insert
19
+ * behaviour come from its registry entry's `insert` field — the `tools` layout
20
+ * only decides *where* it appears.
21
+ */
22
+ export type CoarMarkdownEditorToolRef = CoarMarkdownEditorTool | `embed:${string}`;
23
+ /**
24
+ * A flyout (submenu) group in the `tools` layout. Bundles any mix of built-in
25
+ * and embed refs behind a single toolbar button.
26
+ */
27
+ export interface CoarMarkdownEditorToolFlyout {
28
+ flyout: CoarMarkdownEditorToolRef[];
29
+ /** Group button label / tooltip. */
30
+ label?: string;
31
+ /** Group button icon (CoarIcon name). Defaults to a generic insert icon. */
32
+ icon?: string;
33
+ }
34
+ /**
35
+ * One entry in the `tools` layout. The array order **is** the toolbar order.
36
+ * An entry is a single ref, a flyout group, or a `'divider'` separator.
37
+ *
38
+ * Backwards compatible: a plain `CoarMarkdownEditorTool[]` is still valid (every
39
+ * element is a `CoarMarkdownEditorToolRef`).
40
+ */
41
+ export type CoarMarkdownEditorToolEntry = CoarMarkdownEditorToolRef | CoarMarkdownEditorToolFlyout | 'divider';
15
42
  export interface CoarMarkdownEditorProps {
16
43
  modelValue?: string;
17
44
  readonly?: boolean;
@@ -126,7 +153,7 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
126
153
  default: string;
127
154
  };
128
155
  tools: {
129
- type: PropType<CoarMarkdownEditorTool[]>;
156
+ type: PropType<CoarMarkdownEditorToolEntry[]>;
130
157
  default: undefined;
131
158
  };
132
159
  flavor: {
@@ -141,6 +168,10 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
141
168
  type: PropType<ImagePicker | undefined>;
142
169
  default: undefined;
143
170
  };
171
+ embeds: {
172
+ type: PropType<EmbedRegistry>;
173
+ default: undefined;
174
+ };
144
175
  }>, () => import('vue').VNode<import('vue').RendererNode, import('vue').RendererElement, {
145
176
  [key: string]: any;
146
177
  }>, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, "update:modelValue"[], "update:modelValue", import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
@@ -189,7 +220,7 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
189
220
  default: string;
190
221
  };
191
222
  tools: {
192
- type: PropType<CoarMarkdownEditorTool[]>;
223
+ type: PropType<CoarMarkdownEditorToolEntry[]>;
193
224
  default: undefined;
194
225
  };
195
226
  flavor: {
@@ -204,9 +235,14 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
204
235
  type: PropType<ImagePicker | undefined>;
205
236
  default: undefined;
206
237
  };
238
+ embeds: {
239
+ type: PropType<EmbedRegistry>;
240
+ default: undefined;
241
+ };
207
242
  }>> & Readonly<{
208
243
  "onUpdate:modelValue"?: ((...args: any[]) => any) | undefined;
209
244
  }>, {
245
+ embeds: EmbedRegistry;
210
246
  name: string;
211
247
  modelValue: string;
212
248
  placeholder: string;
@@ -217,7 +253,7 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
217
253
  required: boolean;
218
254
  toolbarMode: CoarMarkdownEditorToolbarMode;
219
255
  toolbarPosition: CoarMarkdownEditorToolbarPosition;
220
- tools: CoarMarkdownEditorTool[];
256
+ tools: CoarMarkdownEditorToolEntry[];
221
257
  flavor: CoarMarkdownFlavorInput;
222
258
  sourceToggle: boolean;
223
259
  uploadImage: ImageUploader | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"CoarMarkdownEditor.vue.d.ts","sourceRoot":"","sources":["../src/CoarMarkdownEditor.vue"],"names":[],"mappings":"AA43DA,OAAO,EAGL,KAAK,QAAQ,EACd,MAAM,KAAK,CAAC;AASb,OAAO,EAAuB,KAAK,uBAAuB,EAAiC,MAAM,UAAU,CAAC;AAS5G,OAAO,EAAe,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACtE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAuBrD,MAAM,MAAM,6BAA6B,GAAG,UAAU,GAAG,OAAO,GAAG,MAAM,CAAC;AAC1E,MAAM,MAAM,iCAAiC,GAAG,MAAM,GAAG,OAAO,GAAG,KAAK,GAAG,QAAQ,CAAC;AAEpF;;;GAGG;AACH,MAAM,MAAM,sBAAsB,GAC9B,MAAM,GAAG,QAAQ,GAAG,eAAe,GAAG,YAAY,GAClD,WAAW,GACX,UAAU,GACV,YAAY,GAAG,aAAa,GAAG,UAAU,GACzC,QAAQ,GAAG,SAAS,GACpB,YAAY,GAAG,gBAAgB,GAC/B,WAAW,GAAG,OAAO,GAAG,UAAU,GAClC,OAAO,GACP,iBAAiB,GACjB,MAAM,GAAG,MAAM,CAAC;AAEpB;iFACiF;AACjF,eAAO,MAAM,8BAA8B,EAAE,SAAS,sBAAsB,EAW3E,CAAC;AAEF,MAAM,WAAW,uBAAuB;IACtC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,mFAAmF;IACnF,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,6DAA6D;IAC7D,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,yFAAyF;IACzF,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,yDAAyD;IACzD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,uDAAuD;IACvD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;OAIG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,WAAW,CAAC,EAAE,6BAA6B,CAAC;IAC5C,eAAe,CAAC,EAAE,iCAAiC,CAAC;IACpD;;;;OAIG;IACH,KAAK,CAAC,EAAE,sBAAsB,EAAE,CAAC;IACjC;;;;;;;;;;;;;;OAcG;IACH,MAAM,CAAC,EAAE,uBAAuB,CAAC;IACjC;;;;;;;OAOG;IACH,WAAW,CAAC,EAAE,aAAa,CAAC;IAC5B;;;;;;;OAOG;IACH,SAAS,CAAC,EAAE,WAAW,CAAC;CACzB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAy0CkC,QAAQ,CAAC,6BAA6B,CAAC;;;;cACnC,QAAQ,CAAC,iCAAiC,CAAC;;;;cACtD,QAAQ,CAAC,sBAAsB,EAAE,CAAC;;;;cACtB,QAAQ,CAAC,uBAAuB,CAAC;;;;cACpC,QAAQ,CAAC,aAAa,GAAG,SAAS,CAAC;;;;cACrC,QAAQ,CAAC,WAAW,GAAG,SAAS,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cALjC,QAAQ,CAAC,6BAA6B,CAAC;;;;cACnC,QAAQ,CAAC,iCAAiC,CAAC;;;;cACtD,QAAQ,CAAC,sBAAsB,EAAE,CAAC;;;;cACtB,QAAQ,CAAC,uBAAuB,CAAC;;;;cACpC,QAAQ,CAAC,aAAa,GAAG,SAAS,CAAC;;;;cACrC,QAAQ,CAAC,WAAW,GAAG,SAAS,CAAC;;;;;;;;;;;;;;;;;;;;;;AAjBpE,wBA4DG"}
1
+ {"version":3,"file":"CoarMarkdownEditor.vue.d.ts","sourceRoot":"","sources":["../src/CoarMarkdownEditor.vue"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import { MilkdownPlugin } from '@milkdown/ctx';
2
+ import { AppContext } from 'vue';
3
+ import { EmbedRegistry } from '@cocoar/vue-markdown';
4
+ /** remark plugin (parse fold + stringify handler). Stateless module constant. */
5
+ export declare const embedRemark: import('@milkdown/utils').$Remark<"coarEmbed", unknown>;
6
+ export interface EmbedNodeOptions {
7
+ /** Resolve the embed registry at render time (reads the editor's prop). */
8
+ resolveRegistry: () => EmbedRegistry | undefined;
9
+ /** The editor's Vue app context, so the mounted preview inherits provides/globals. */
10
+ appContext: AppContext | null;
11
+ }
12
+ /**
13
+ * Build the per-instance embed bundle. Register with one `.use(...)` call.
14
+ * Typed `MilkdownPlugin[]` so the public type doesn't leak un-nameable
15
+ * transformer internals (TS2742), matching the frontmatter bundle.
16
+ */
17
+ export declare function createEmbedNode(options: EmbedNodeOptions): MilkdownPlugin[];
18
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/embed/index.ts"],"names":[],"mappings":"AA4BA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAKpD,OAAO,EAAa,KAAK,UAAU,EAAE,MAAM,KAAK,CAAC;AAMjD,OAAO,EAIL,KAAK,aAAa,EACnB,MAAM,sBAAsB,CAAC;AAiF9B,iFAAiF;AACjF,eAAO,MAAM,WAAW,yDAAgD,CAAC;AA4DzE,MAAM,WAAW,gBAAgB;IAC/B,2EAA2E;IAC3E,eAAe,EAAE,MAAM,aAAa,GAAG,SAAS,CAAC;IACjD,sFAAsF;IACtF,UAAU,EAAE,UAAU,GAAG,IAAI,CAAC;CAC/B;AA2GD;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,gBAAgB,GAAG,cAAc,EAAE,CAE3E"}
package/dist/flavor.d.ts CHANGED
@@ -29,6 +29,12 @@ export interface CoarMarkdownCapabilities {
29
29
  gfm: boolean;
30
30
  /** Cocoar inline text color. NOT portable (raw HTML; degrades to plain text). */
31
31
  textColor: boolean;
32
+ /**
33
+ * Custom `:::key{props}` embeds (consumer-registered components). NOT portable
34
+ * — a plain CommonMark/GFM renderer shows the directive as text. Off unless
35
+ * the `cocoar` flavor (or an explicit `{ embeds: true }`) is selected.
36
+ */
37
+ embeds: boolean;
32
38
  }
33
39
  /**
34
40
  * The `flavor` prop accepts a preset name OR a partial capability object.
@@ -1 +1 @@
1
- {"version":3,"file":"flavor.d.ts","sourceRoot":"","sources":["../src/flavor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,2DAA2D;AAC3D,MAAM,MAAM,kBAAkB,GAAG,YAAY,GAAG,KAAK,GAAG,QAAQ,CAAC;AAEjE,0EAA0E;AAC1E,MAAM,WAAW,wBAAwB;IACvC,kFAAkF;IAClF,GAAG,EAAE,OAAO,CAAC;IACb,iFAAiF;IACjF,SAAS,EAAE,OAAO,CAAC;CACpB;AAED;;;;GAIG;AACH,MAAM,MAAM,uBAAuB,GAAG,kBAAkB,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAAC;AAQ7F;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,uBAAuB,GAAG,SAAS,GAAG,wBAAwB,CAIzG"}
1
+ {"version":3,"file":"flavor.d.ts","sourceRoot":"","sources":["../src/flavor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,2DAA2D;AAC3D,MAAM,MAAM,kBAAkB,GAAG,YAAY,GAAG,KAAK,GAAG,QAAQ,CAAC;AAEjE,0EAA0E;AAC1E,MAAM,WAAW,wBAAwB;IACvC,kFAAkF;IAClF,GAAG,EAAE,OAAO,CAAC;IACb,iFAAiF;IACjF,SAAS,EAAE,OAAO,CAAC;IACnB;;;;OAIG;IACH,MAAM,EAAE,OAAO,CAAC;CACjB;AAED;;;;GAIG;AACH,MAAM,MAAM,uBAAuB,GAAG,kBAAkB,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAAC;AAQ7F;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,uBAAuB,GAAG,SAAS,GAAG,wBAAwB,CAQzG"}
package/dist/index.css CHANGED
@@ -1,2 +1,2 @@
1
- .coar-md-code-host{border-radius:var(--coar-radius-s);border:1px solid var(--coar-code-block-border,var(--coar-border-neutral));background:var(--coar-code-block-bg,var(--coar-background-neutral-secondary));margin:.75em 0;position:relative;overflow:hidden}.coar-md-code-host--editing{border-color:var(--coar-background-accent-primary)}.coar-md-code-render{position:relative}.coar-md-code-edit-btn{color:var(--coar-text-neutral-secondary);background:var(--coar-background-neutral-primary);border:1px solid var(--coar-border-neutral);border-radius:var(--coar-radius-s);cursor:pointer;opacity:0;z-index:1;align-items:center;gap:.25rem;padding:.25rem .5rem;font-size:.75rem;font-weight:500;transition:opacity .12s ease-out;display:inline-flex;position:absolute;top:.5rem;right:.5rem}.coar-md-code-render:hover .coar-md-code-edit-btn,.coar-md-code-edit-btn:focus-visible{opacity:1}.coar-md-code-edit-btn:hover{background:var(--coar-background-neutral-tertiary);color:var(--coar-text-neutral-primary)}.coar-md-code-lang-row{align-items:center;gap:var(--coar-spacing-s);padding:var(--coar-spacing-s) .75rem;border-bottom:1px solid var(--coar-code-block-border,var(--coar-border-neutral));background:var(--coar-code-block-header-bg,var(--coar-background-neutral-tertiary));min-height:36px;display:flex}.coar-md-code-lang-select{--coar-select-bg:transparent;--coar-select-border:transparent}.coar-md-code-content{padding:var(--coar-spacing-s) .75rem;font-family:var(--coar-font-family-code,"Cascadia Code", Consolas, Monaco, monospace);font-size:var(--coar-component-s-font-size,.85em);line-height:1.5}.coar-md-code-content>pre{white-space:pre-wrap;font-family:inherit;font-size:inherit;background:0 0;margin:0;padding:0}.coar-md-code-content>pre>code{white-space:inherit;outline:none;font-family:inherit;display:block}.coar-md-color-picker{gap:var(--coar-spacing-s);width:224px;padding:var(--coar-spacing-s);background:var(--coar-background-neutral-primary);border:1px solid var(--coar-border-neutral);border-radius:var(--coar-radius-xl);box-shadow:var(--coar-shadow-m,0 4px 12px #0000001f);flex-direction:column;display:flex}.coar-md-color-grid{grid-template-columns:repeat(5,1fr);gap:4px;display:grid}.coar-md-color-swatch{aspect-ratio:1;border:1px solid var(--coar-border-neutral);border-radius:var(--coar-radius-s);background:var(--coar-md-swatch,transparent);width:100%;color:var(--coar-text-neutral-secondary);cursor:pointer;justify-content:center;align-items:center;padding:0;transition:transform 80ms ease-out;display:inline-flex}.coar-md-color-swatch:hover{transform:scale(1.08)}.coar-md-color-swatch--active{outline:2px solid var(--coar-text-accent-primary);outline-offset:1px}.coar-md-color-swatch--clear{background:var(--coar-background-neutral-secondary)}.coar-md-color-custom{align-items:center;gap:var(--coar-spacing-s);padding-top:var(--coar-spacing-xs);border-top:1px solid var(--coar-border-neutral);display:flex}.coar-md-color-custom-label{color:var(--coar-text-neutral-secondary);flex-shrink:0;font-size:12px}.coar-md-color-custom-input{border:1px solid var(--coar-border-neutral);border-radius:var(--coar-radius-s);cursor:pointer;background:0 0;flex:1;height:28px;padding:0}.coar-md-color-custom-input::-webkit-color-swatch-wrapper{padding:2px}.coar-md-color-custom-input::-webkit-color-swatch{border:none;border-radius:2px}.coar-md-table-picker[data-v-68fa1760]{padding:var(--coar-spacing-s,8px);flex-direction:column;gap:6px;display:flex}.coar-md-table-picker__grid[data-v-68fa1760]{gap:3px;display:grid}.coar-md-table-picker__cell[data-v-68fa1760]{border:1px solid var(--coar-border-neutral);background:var(--coar-background-neutral-primary);cursor:pointer;border-radius:2px;width:18px;height:18px;padding:0}.coar-md-table-picker__cell--on[data-v-68fa1760]{background:var(--coar-background-accent-primary,#2563eb);border-color:var(--coar-background-accent-primary,#2563eb)}.coar-md-table-picker__label[data-v-68fa1760]{text-align:center;color:var(--coar-text-neutral-secondary);font-size:12px;font-weight:600}.coar-md-table-picker__hint[data-v-68fa1760]{text-align:center;color:var(--coar-text-neutral-tertiary);font-size:11px}.coar-md-table-picker__hint code[data-v-68fa1760]{background:var(--coar-background-neutral-secondary);border-radius:3px;padding:1px 4px}.coar-md-th[data-v-24e26df4]{pointer-events:none;z-index:40;position:fixed;inset:0}.coar-md-th__hl[data-v-24e26df4]{background:color-mix(in srgb, var(--coar-background-accent-primary,#2563eb) 12%, transparent);outline:1px solid color-mix(in srgb, var(--coar-background-accent-primary,#2563eb) 40%, transparent);pointer-events:none;position:fixed}.coar-md-th__bar[data-v-24e26df4]{pointer-events:none;position:fixed}.coar-md-th__grip[data-v-24e26df4]{cursor:pointer;pointer-events:auto;background:var(--coar-background-neutral-secondary,#e5e7eb);border:none;border-radius:3px;padding:0;position:absolute}.coar-md-th__bar--col .coar-md-th__grip[data-v-24e26df4]{top:2px;bottom:2px}.coar-md-th__bar--row .coar-md-th__grip[data-v-24e26df4]{left:2px;right:2px}.coar-md-th__grip[data-v-24e26df4]:hover,.coar-md-th__grip--active[data-v-24e26df4]{background:var(--coar-background-accent-primary,#2563eb)}.coar-md-th__drop[data-v-24e26df4]{background:var(--coar-background-accent-primary,#2563eb);pointer-events:none;border-radius:1px;position:fixed}.coar-md-image-dialog[data-v-a0456b93]{gap:var(--coar-spacing-m,12px);flex-direction:column;min-width:22rem;display:flex}.coar-md-image-dialog__actions[data-v-a0456b93]{justify-content:flex-end;gap:var(--coar-spacing-s,8px);margin-top:var(--coar-spacing-s,8px);display:flex}.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-md-root{background:var(--coar-background-neutral-primary);height:100%;color:var(--coar-text-neutral-primary);flex-direction:row;display:flex;overflow:hidden}.coar-md-root--toolbar-top,.coar-md-root--toolbar-bottom{flex-direction:column}.coar-md-root--disabled{opacity:.55;cursor:not-allowed}.coar-md-root--disabled .coar-md-area .milkdown{pointer-events:none}.coar-md-root--error{outline:1px solid var(--coar-text-semantic-error-bold,#b91c1c);outline-offset:-1px}.coar-md-area--source .milkdown{display:none}.coar-md-source-area{box-sizing:border-box;resize:none;width:100%;height:100%;padding:var(--coar-spacing-s) var(--coar-spacing-m);font-family:var(--coar-font-family-mono,monospace);font-size:var(--coar-font-size-s,.875rem);tab-size:2;background:var(--coar-background-neutral-primary);color:var(--coar-text-neutral-primary);border:none;outline:none;margin:0;line-height:1.6;position:absolute;inset:0}.coar-md-source-area:disabled{opacity:.55;cursor:not-allowed}.coar-md-source-corner{top:var(--coar-spacing-xs);right:var(--coar-spacing-xs);z-index:5;border:1px solid var(--coar-border-neutral);border-radius:var(--coar-radius-s);background:var(--coar-background-neutral-primary);width:28px;height:28px;color:var(--coar-text-neutral-secondary);cursor:pointer;justify-content:center;align-items:center;padding:0;display:flex;position:absolute}.coar-md-source-corner:hover{background:var(--coar-background-neutral-tertiary);color:var(--coar-text-neutral-primary)}.coar-md-sidebar-wrap{--coar-sidebar-collapsed-width:2.25rem;--coar-sidebar-collapsed-height:2.25rem;--coar-sidebar-item-padding:.25rem .375rem;flex-shrink:0}.coar-md-root--toolbar-left .coar-md-sidebar-wrap{border-right:1px solid var(--coar-border-neutral)}.coar-md-root--toolbar-right .coar-md-sidebar-wrap{border-left:1px solid var(--coar-border-neutral)}.coar-md-root--toolbar-top .coar-md-sidebar-wrap{border-bottom:1px solid var(--coar-border-neutral)}.coar-md-root--toolbar-bottom .coar-md-sidebar-wrap{border-top:1px solid var(--coar-border-neutral)}.coar-md-area{padding:var(--coar-spacing-s) var(--coar-spacing-m);cursor:text;flex:1;position:relative;overflow:auto}.coar-md-area .milkdown,.coar-md-area .milkdown .editor,.coar-md-area .milkdown [contenteditable]{outline:none}.coar-md-area .milkdown pre{background:var(--coar-background-neutral-secondary);padding:var(--coar-spacing-s) var(--coar-spacing-m);border-radius:var(--coar-radius-xl);margin:.5em 0;overflow-x:auto}.coar-md-area .milkdown pre code{background:0 0;padding:0}.coar-md-area .milkdown hr{border:none;border-top:1px solid var(--coar-border-neutral);margin:1em 0}.coar-md-area .milkdown img{max-width:100%;height:auto}.coar-md-image-uploading{vertical-align:text-bottom;border:2px solid var(--coar-border-neutral);border-top-color:var(--coar-text-neutral-secondary,currentColor);border-radius:50%;width:1.25em;height:1.25em;animation:.7s linear infinite coar-md-image-spin;display:inline-block}@keyframes coar-md-image-spin{to{transform:rotate(360deg)}}.coar-md-placeholder{padding:var(--coar-spacing-s) var(--coar-spacing-m);pointer-events:none;-webkit-user-select:none;user-select:none;position:absolute;inset:0;overflow:hidden}.coar-md-placeholder,.coar-md-placeholder *{color:var(--coar-text-placeholder)}.coar-md-placeholder .coar-markdown>:first-child{margin-top:0}.coar-md-floating-toolbar{padding:var(--coar-spacing-xs) 6px;background:var(--coar-background-neutral-primary);border:1px solid var(--coar-border-neutral);border-radius:var(--coar-radius-xl);box-shadow:var(--coar-shadow-m,0 4px 12px #0000001f);z-index:10000;gap:2px;animation:.12s ease-out coar-md-float-in;display:flex;position:fixed;transform:translate(-50%,-100%)}.coar-md-float-btn{border-radius:var(--coar-radius-s);width:30px;height:30px;color:var(--coar-text-neutral-secondary);cursor:pointer;-webkit-user-select:none;user-select:none;background:0 0;border:none;justify-content:center;align-items:center;padding:0;display:flex}.coar-md-float-btn:hover{background:var(--coar-background-neutral-tertiary);color:var(--coar-text-neutral-primary)}.coar-md-float-btn:active,.coar-md-float-btn--active{background:var(--coar-background-accent-tertiary);color:var(--coar-text-accent-primary)}.coar-md-float-btn--disabled,.coar-md-float-btn:disabled{opacity:.4;cursor:not-allowed}.coar-md-float-btn--disabled:hover,.coar-md-float-btn:disabled:hover{color:var(--coar-text-neutral-secondary);background:0 0}.coar-md-float-sep{background:var(--coar-border-neutral);align-self:center;width:1px;height:18px;margin:0 2px}.coar-md-float-dropdown{position:relative}.coar-md-float-submenu{padding:var(--coar-spacing-xs);background:var(--coar-background-neutral-primary);border:1px solid var(--coar-border-neutral);border-radius:var(--coar-radius-xl);box-shadow:var(--coar-shadow-m,0 4px 12px #0000001f);z-index:10001;flex-direction:column;min-width:140px;animation:.1s ease-out coar-md-float-in;display:flex;position:absolute;top:calc(100% + 6px);left:50%;transform:translate(-50%)}.coar-md-float-submenu-item{align-items:center;gap:var(--coar-spacing-s);border-radius:var(--coar-radius-m);width:100%;color:var(--coar-text-neutral-secondary);cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;text-align:left;background:0 0;border:none;padding:6px 10px;font-size:13px;display:flex}.coar-md-float-submenu-item:hover{background:var(--coar-background-neutral-tertiary);color:var(--coar-text-neutral-primary)}.coar-md-float-submenu-item:active,.coar-md-float-submenu-item--active{background:var(--coar-background-accent-tertiary);color:var(--coar-text-accent-primary)}@keyframes coar-md-float-in{0%{opacity:0;transform:translate(-50%,-100%)translateY(4px)}to{opacity:1;transform:translate(-50%,-100%)translateY(0)}}.coar-md-float-btn[style*=--coar-md-color-indicator]:after{content:"";background:var(--coar-md-color-indicator);border-radius:1px;height:2px;position:absolute;bottom:3px;left:4px;right:4px}.coar-md-float-btn[style*=--coar-md-color-indicator]{position:relative}
1
+ .coar-md-code-host{border-radius:var(--coar-radius-s);border:1px solid var(--coar-code-block-border,var(--coar-border-neutral));background:var(--coar-code-block-bg,var(--coar-background-neutral-secondary));margin:.75em 0;position:relative;overflow:hidden}.coar-md-code-host--editing{border-color:var(--coar-background-accent-primary)}.coar-md-code-render{position:relative}.coar-md-code-edit-btn{color:var(--coar-text-neutral-secondary);background:var(--coar-background-neutral-primary);border:1px solid var(--coar-border-neutral);border-radius:var(--coar-radius-s);cursor:pointer;opacity:0;z-index:1;align-items:center;gap:.25rem;padding:.25rem .5rem;font-size:.75rem;font-weight:500;transition:opacity .12s ease-out;display:inline-flex;position:absolute;top:.5rem;right:.5rem}.coar-md-code-render:hover .coar-md-code-edit-btn,.coar-md-code-edit-btn:focus-visible{opacity:1}.coar-md-code-edit-btn:hover{background:var(--coar-background-neutral-tertiary);color:var(--coar-text-neutral-primary)}.coar-md-code-lang-row{align-items:center;gap:var(--coar-spacing-s);padding:var(--coar-spacing-s) .75rem;border-bottom:1px solid var(--coar-code-block-border,var(--coar-border-neutral));background:var(--coar-code-block-header-bg,var(--coar-background-neutral-tertiary));min-height:36px;display:flex}.coar-md-code-lang-select{--coar-select-bg:transparent;--coar-select-border:transparent}.coar-md-code-content{padding:var(--coar-spacing-s) .75rem;font-family:var(--coar-font-family-code,"Cascadia Code", Consolas, Monaco, monospace);font-size:var(--coar-component-s-font-size,.85em);line-height:1.5}.coar-md-code-content>pre{white-space:pre-wrap;font-family:inherit;font-size:inherit;background:0 0;margin:0;padding:0}.coar-md-code-content>pre>code{white-space:inherit;outline:none;font-family:inherit;display:block}.coar-md-color-picker{gap:var(--coar-spacing-s);width:224px;padding:var(--coar-spacing-s);background:var(--coar-background-neutral-primary);border:1px solid var(--coar-border-neutral);border-radius:var(--coar-radius-xl);box-shadow:var(--coar-shadow-m,0 4px 12px #0000001f);flex-direction:column;display:flex}.coar-md-color-grid{grid-template-columns:repeat(5,1fr);gap:4px;display:grid}.coar-md-color-swatch{aspect-ratio:1;border:1px solid var(--coar-border-neutral);border-radius:var(--coar-radius-s);background:var(--coar-md-swatch,transparent);width:100%;color:var(--coar-text-neutral-secondary);cursor:pointer;justify-content:center;align-items:center;padding:0;transition:transform 80ms ease-out;display:inline-flex}.coar-md-color-swatch:hover{transform:scale(1.08)}.coar-md-color-swatch--active{outline:2px solid var(--coar-text-accent-primary);outline-offset:1px}.coar-md-color-swatch--clear{background:var(--coar-background-neutral-secondary)}.coar-md-color-custom{align-items:center;gap:var(--coar-spacing-s);padding-top:var(--coar-spacing-xs);border-top:1px solid var(--coar-border-neutral);display:flex}.coar-md-color-custom-label{color:var(--coar-text-neutral-secondary);flex-shrink:0;font-size:12px}.coar-md-color-custom-input{border:1px solid var(--coar-border-neutral);border-radius:var(--coar-radius-s);cursor:pointer;background:0 0;flex:1;height:28px;padding:0}.coar-md-color-custom-input::-webkit-color-swatch-wrapper{padding:2px}.coar-md-color-custom-input::-webkit-color-swatch{border:none;border-radius:2px}.coar-md-table-picker[data-v-68fa1760]{padding:var(--coar-spacing-s,8px);flex-direction:column;gap:6px;display:flex}.coar-md-table-picker__grid[data-v-68fa1760]{gap:3px;display:grid}.coar-md-table-picker__cell[data-v-68fa1760]{border:1px solid var(--coar-border-neutral);background:var(--coar-background-neutral-primary);cursor:pointer;border-radius:2px;width:18px;height:18px;padding:0}.coar-md-table-picker__cell--on[data-v-68fa1760]{background:var(--coar-background-accent-primary,#2563eb);border-color:var(--coar-background-accent-primary,#2563eb)}.coar-md-table-picker__label[data-v-68fa1760]{text-align:center;color:var(--coar-text-neutral-secondary);font-size:12px;font-weight:600}.coar-md-table-picker__hint[data-v-68fa1760]{text-align:center;color:var(--coar-text-neutral-tertiary);font-size:11px}.coar-md-table-picker__hint code[data-v-68fa1760]{background:var(--coar-background-neutral-secondary);border-radius:3px;padding:1px 4px}.coar-md-th[data-v-24e26df4]{pointer-events:none;z-index:40;position:fixed;inset:0}.coar-md-th__hl[data-v-24e26df4]{background:color-mix(in srgb, var(--coar-background-accent-primary,#2563eb) 12%, transparent);outline:1px solid color-mix(in srgb, var(--coar-background-accent-primary,#2563eb) 40%, transparent);pointer-events:none;position:fixed}.coar-md-th__bar[data-v-24e26df4]{pointer-events:none;position:fixed}.coar-md-th__grip[data-v-24e26df4]{cursor:pointer;pointer-events:auto;background:var(--coar-background-neutral-secondary,#e5e7eb);border:none;border-radius:3px;padding:0;position:absolute}.coar-md-th__bar--col .coar-md-th__grip[data-v-24e26df4]{top:2px;bottom:2px}.coar-md-th__bar--row .coar-md-th__grip[data-v-24e26df4]{left:2px;right:2px}.coar-md-th__grip[data-v-24e26df4]:hover,.coar-md-th__grip--active[data-v-24e26df4]{background:var(--coar-background-accent-primary,#2563eb)}.coar-md-th__drop[data-v-24e26df4]{background:var(--coar-background-accent-primary,#2563eb);pointer-events:none;border-radius:1px;position:fixed}.coar-md-image-dialog[data-v-a0456b93]{gap:var(--coar-spacing-m,12px);flex-direction:column;min-width:22rem;display:flex}.coar-md-image-dialog__actions[data-v-a0456b93]{justify-content:flex-end;gap:var(--coar-spacing-s,8px);margin-top:var(--coar-spacing-s,8px);display:flex}.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}.coar-markdown-embed-host{position:relative}.coar-markdown-embed-host--selected{outline:2px solid var(--coar-border-accent,#2563eb);outline-offset:2px;border-radius:var(--coar-markdown-radius,8px)}.coar-md-root{background:var(--coar-background-neutral-primary);height:100%;color:var(--coar-text-neutral-primary);flex-direction:row;display:flex;overflow:hidden}.coar-md-root--toolbar-top,.coar-md-root--toolbar-bottom{flex-direction:column}.coar-md-root--disabled{opacity:.55;cursor:not-allowed}.coar-md-root--disabled .coar-md-area .milkdown{pointer-events:none}.coar-md-root--error{outline:1px solid var(--coar-text-semantic-error-bold,#b91c1c);outline-offset:-1px}.coar-md-area--source .milkdown{display:none}.coar-md-source-area{box-sizing:border-box;resize:none;width:100%;height:100%;padding:var(--coar-spacing-s) var(--coar-spacing-m);font-family:var(--coar-font-family-mono,monospace);font-size:var(--coar-font-size-s,.875rem);tab-size:2;background:var(--coar-background-neutral-primary);color:var(--coar-text-neutral-primary);border:none;outline:none;margin:0;line-height:1.6;position:absolute;inset:0}.coar-md-source-area:disabled{opacity:.55;cursor:not-allowed}.coar-md-source-corner{top:var(--coar-spacing-xs);right:var(--coar-spacing-xs);z-index:5;border:1px solid var(--coar-border-neutral);border-radius:var(--coar-radius-s);background:var(--coar-background-neutral-primary);width:28px;height:28px;color:var(--coar-text-neutral-secondary);cursor:pointer;justify-content:center;align-items:center;padding:0;display:flex;position:absolute}.coar-md-source-corner:hover{background:var(--coar-background-neutral-tertiary);color:var(--coar-text-neutral-primary)}.coar-md-sidebar-wrap{--coar-sidebar-collapsed-width:2.25rem;--coar-sidebar-collapsed-height:2.25rem;--coar-sidebar-item-padding:.25rem .375rem;flex-shrink:0}.coar-md-root--toolbar-left .coar-md-sidebar-wrap{border-right:1px solid var(--coar-border-neutral)}.coar-md-root--toolbar-right .coar-md-sidebar-wrap{border-left:1px solid var(--coar-border-neutral)}.coar-md-root--toolbar-top .coar-md-sidebar-wrap{border-bottom:1px solid var(--coar-border-neutral)}.coar-md-root--toolbar-bottom .coar-md-sidebar-wrap{border-top:1px solid var(--coar-border-neutral)}.coar-md-area{padding:var(--coar-spacing-s) var(--coar-spacing-m);cursor:text;flex:1;position:relative;overflow:auto}.coar-md-area .milkdown,.coar-md-area .milkdown .editor,.coar-md-area .milkdown [contenteditable]{outline:none}.coar-md-area .milkdown pre{background:var(--coar-background-neutral-secondary);padding:var(--coar-spacing-s) var(--coar-spacing-m);border-radius:var(--coar-radius-xl);margin:.5em 0;overflow-x:auto}.coar-md-area .milkdown pre code{background:0 0;padding:0}.coar-md-area .milkdown hr{border:none;border-top:1px solid var(--coar-border-neutral);margin:1em 0}.coar-md-area .milkdown img{max-width:100%;height:auto}.coar-md-image-uploading{vertical-align:text-bottom;border:2px solid var(--coar-border-neutral);border-top-color:var(--coar-text-neutral-secondary,currentColor);border-radius:50%;width:1.25em;height:1.25em;animation:.7s linear infinite coar-md-image-spin;display:inline-block}@keyframes coar-md-image-spin{to{transform:rotate(360deg)}}.coar-md-placeholder{padding:var(--coar-spacing-s) var(--coar-spacing-m);pointer-events:none;-webkit-user-select:none;user-select:none;position:absolute;inset:0;overflow:hidden}.coar-md-placeholder,.coar-md-placeholder *{color:var(--coar-text-placeholder)}.coar-md-placeholder .coar-markdown>:first-child{margin-top:0}.coar-md-floating-toolbar{padding:var(--coar-spacing-xs) 6px;background:var(--coar-background-neutral-primary);border:1px solid var(--coar-border-neutral);border-radius:var(--coar-radius-xl);box-shadow:var(--coar-shadow-m,0 4px 12px #0000001f);z-index:10000;gap:2px;animation:.12s ease-out coar-md-float-in;display:flex;position:fixed;transform:translate(-50%,-100%)}.coar-md-float-btn{border-radius:var(--coar-radius-s);width:30px;height:30px;color:var(--coar-text-neutral-secondary);cursor:pointer;-webkit-user-select:none;user-select:none;background:0 0;border:none;justify-content:center;align-items:center;padding:0;display:flex}.coar-md-float-btn:hover{background:var(--coar-background-neutral-tertiary);color:var(--coar-text-neutral-primary)}.coar-md-float-btn:active,.coar-md-float-btn--active{background:var(--coar-background-accent-tertiary);color:var(--coar-text-accent-primary)}.coar-md-float-btn--disabled,.coar-md-float-btn:disabled{opacity:.4;cursor:not-allowed}.coar-md-float-btn--disabled:hover,.coar-md-float-btn:disabled:hover{color:var(--coar-text-neutral-secondary);background:0 0}.coar-md-float-sep{background:var(--coar-border-neutral);align-self:center;width:1px;height:18px;margin:0 2px}.coar-md-float-dropdown{position:relative}.coar-md-float-submenu{padding:var(--coar-spacing-xs);background:var(--coar-background-neutral-primary);border:1px solid var(--coar-border-neutral);border-radius:var(--coar-radius-xl);box-shadow:var(--coar-shadow-m,0 4px 12px #0000001f);z-index:10001;flex-direction:column;min-width:140px;animation:.1s ease-out coar-md-float-in;display:flex;position:absolute;top:calc(100% + 6px);left:50%;transform:translate(-50%)}.coar-md-float-submenu-item{align-items:center;gap:var(--coar-spacing-s);border-radius:var(--coar-radius-m);width:100%;color:var(--coar-text-neutral-secondary);cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;text-align:left;background:0 0;border:none;padding:6px 10px;font-size:13px;display:flex}.coar-md-float-submenu-item:hover{background:var(--coar-background-neutral-tertiary);color:var(--coar-text-neutral-primary)}.coar-md-float-submenu-item:active,.coar-md-float-submenu-item--active{background:var(--coar-background-accent-tertiary);color:var(--coar-text-accent-primary)}@keyframes coar-md-float-in{0%{opacity:0;transform:translate(-50%,-100%)translateY(4px)}to{opacity:1;transform:translate(-50%,-100%)translateY(0)}}.coar-md-float-btn[style*=--coar-md-color-indicator]:after{content:"";background:var(--coar-md-color-indicator);border-radius:1px;height:2px;position:absolute;bottom:3px;left:4px;right:4px}.coar-md-float-btn[style*=--coar-md-color-indicator]{position:relative}
2
2
  /*$vite$:1*/
package/dist/index.d.ts CHANGED
@@ -1,9 +1,11 @@
1
1
  export { default as CoarMarkdownEditor } from './CoarMarkdownEditor.vue';
2
2
  export { COAR_MARKDOWN_EDITOR_ALL_TOOLS } from './CoarMarkdownEditor.vue';
3
- export type { CoarMarkdownEditorProps, CoarMarkdownEditorToolbarMode, CoarMarkdownEditorToolbarPosition, CoarMarkdownEditorTool, } from './CoarMarkdownEditor.vue';
3
+ export type { CoarMarkdownEditorProps, CoarMarkdownEditorToolbarMode, CoarMarkdownEditorToolbarPosition, CoarMarkdownEditorTool, CoarMarkdownEditorToolRef, CoarMarkdownEditorToolFlyout, CoarMarkdownEditorToolEntry, } from './CoarMarkdownEditor.vue';
4
4
  export type { ImageUploader, ImageUploadOptions } from './image/imageUpload';
5
5
  export type { ImageInsertResult } from './image/ImageInsertDialog.vue';
6
6
  export type { ImagePicker, ImagePickContext, ImageDescriptor } from './image/pickImage';
7
7
  export { resolveCapabilities } from './flavor';
8
8
  export type { CoarMarkdownFlavor, CoarMarkdownFlavorInput, CoarMarkdownCapabilities } from './flavor';
9
+ export { EmbedRenderer, MARKDOWN_EMBEDS_KEY, resolveEmbed, } from '@cocoar/vue-markdown';
10
+ export type { EmbedDefinition, EmbedEditorController, EmbedEditorProps, EmbedInsertIntegration, EmbedRegistry, } from '@cocoar/vue-markdown';
9
11
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AACzE,OAAO,EAAE,8BAA8B,EAAE,MAAM,0BAA0B,CAAC;AAC1E,YAAY,EACV,uBAAuB,EACvB,6BAA6B,EAC7B,iCAAiC,EACjC,sBAAsB,GACvB,MAAM,0BAA0B,CAAC;AAClC,YAAY,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAC7E,YAAY,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AACvE,YAAY,EAAE,WAAW,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACxF,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAC/C,YAAY,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,wBAAwB,EAAE,MAAM,UAAU,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AACzE,OAAO,EAAE,8BAA8B,EAAE,MAAM,0BAA0B,CAAC;AAC1E,YAAY,EACV,uBAAuB,EACvB,6BAA6B,EAC7B,iCAAiC,EACjC,sBAAsB,EACtB,yBAAyB,EACzB,4BAA4B,EAC5B,2BAA2B,GAC5B,MAAM,0BAA0B,CAAC;AAClC,YAAY,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAC7E,YAAY,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AACvE,YAAY,EAAE,WAAW,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACxF,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAC/C,YAAY,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,wBAAwB,EAAE,MAAM,UAAU,CAAC;AAGtG,OAAO,EACL,aAAa,EACb,mBAAmB,EACnB,YAAY,GACb,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EACV,eAAe,EACf,qBAAqB,EACrB,gBAAgB,EAChB,sBAAsB,EACtB,aAAa,GACd,MAAM,sBAAsB,CAAC"}