@lapismd/mira 0.0.5 → 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +46 -0
- package/dist/extensions/index.d.ts +12 -7
- package/dist/extensions/index.d.ts.map +1 -1
- package/dist/extensions/index.js +13 -3
- package/dist/extensions/inline-links.d.ts +8 -0
- package/dist/extensions/inline-links.d.ts.map +1 -0
- package/dist/extensions/inline-links.js +120 -0
- package/dist/extensions/markdown-editing.d.ts +32 -0
- package/dist/extensions/markdown-editing.d.ts.map +1 -0
- package/dist/extensions/markdown-editing.js +1 -0
- package/dist/internal/codemirror/base/index.d.ts.map +1 -1
- package/dist/internal/codemirror/base/index.js +3 -0
- package/dist/internal/codemirror/markdown/index.d.ts.map +1 -1
- package/dist/internal/codemirror/markdown/index.js +2 -1
- package/dist/internal/codemirror/rich/block-controls.d.ts.map +1 -1
- package/dist/internal/codemirror/rich/block-controls.js +5 -0
- package/dist/internal/codemirror/rich/block-gutter-accessibility.d.ts +15 -0
- package/dist/internal/codemirror/rich/block-gutter-accessibility.d.ts.map +1 -0
- package/dist/internal/codemirror/rich/block-gutter-accessibility.js +67 -0
- package/dist/internal/codemirror/rich/index.d.ts.map +1 -1
- package/dist/internal/codemirror/rich/index.js +45 -9
- package/dist/internal/codemirror/rich/utils/images.d.ts +6 -3
- package/dist/internal/codemirror/rich/utils/images.d.ts.map +1 -1
- package/dist/internal/codemirror/rich/utils/images.js +16 -29
- package/dist/internal/codemirror/rich/utils/measured-indent.d.ts.map +1 -1
- package/dist/internal/codemirror/rich/utils/measured-indent.js +13 -1
- package/dist/internal/codemirror/rich/utils/references.d.ts +15 -0
- package/dist/internal/codemirror/rich/utils/references.d.ts.map +1 -0
- package/dist/internal/codemirror/rich/utils/references.js +86 -0
- package/dist/internal/codemirror/rich/widgets/preview-widgets.d.ts +3 -0
- package/dist/internal/codemirror/rich/widgets/preview-widgets.d.ts.map +1 -1
- package/dist/internal/codemirror/rich/widgets/preview-widgets.js +31 -3
- package/dist/internal/inline-links/icons.d.ts +115 -0
- package/dist/internal/inline-links/icons.d.ts.map +1 -0
- package/dist/internal/inline-links/icons.js +148 -0
- package/dist/internal/inline-links/live-preview.d.ts +5 -0
- package/dist/internal/inline-links/live-preview.d.ts.map +1 -0
- package/dist/internal/inline-links/live-preview.js +135 -0
- package/dist/internal/inline-links/registry.d.ts +44 -0
- package/dist/internal/inline-links/registry.d.ts.map +1 -0
- package/dist/internal/inline-links/registry.js +153 -0
- package/dist/mira.svelte +2 -0
- package/dist/mira.svelte.d.ts +1 -1
- package/dist/mira.svelte.d.ts.map +1 -1
- package/dist/preview/asset-url-lease.d.ts +6 -0
- package/dist/preview/asset-url-lease.d.ts.map +1 -0
- package/dist/preview/asset-url-lease.js +28 -0
- package/dist/preview/components/embed.svelte +10 -5
- package/dist/preview/components/embed.svelte.d.ts.map +1 -1
- package/dist/preview/components/image.svelte +7 -2
- package/dist/preview/components/image.svelte.d.ts.map +1 -1
- package/dist/preview/components/inline-link.svelte +94 -0
- package/dist/preview/components/inline-link.svelte.d.ts +16 -0
- package/dist/preview/components/inline-link.svelte.d.ts.map +1 -0
- package/dist/preview/components/link-destination-tooltip.svelte +63 -0
- package/dist/preview/components/link-destination-tooltip.svelte.d.ts +7 -0
- package/dist/preview/components/link-destination-tooltip.svelte.d.ts.map +1 -0
- package/dist/preview/components/link-site-icon.svelte +39 -0
- package/dist/preview/components/link-site-icon.svelte.d.ts +10 -0
- package/dist/preview/components/link-site-icon.svelte.d.ts.map +1 -0
- package/dist/preview/components/link.svelte +19 -9
- package/dist/preview/components/link.svelte.d.ts.map +1 -1
- package/dist/preview/editable-markdown-preview/editable-markdown-surface.svelte +6 -1
- package/dist/preview/editable-markdown-preview/editable-markdown-surface.svelte.d.ts.map +1 -1
- package/dist/preview/editable-markdown-preview/editing-session.d.ts +2 -0
- package/dist/preview/editable-markdown-preview/editing-session.d.ts.map +1 -1
- package/dist/preview/editable-markdown-preview/editing-session.js +59 -6
- package/dist/preview/editable-markdown-preview/serialized-writer.d.ts +6 -8
- package/dist/preview/editable-markdown-preview/serialized-writer.d.ts.map +1 -1
- package/dist/preview/editable-markdown-preview/serialized-writer.js +76 -6
- package/dist/preview/index.d.ts +2 -0
- package/dist/preview/index.d.ts.map +1 -1
- package/dist/preview/index.js +2 -0
- package/dist/preview/markdown-preview.svelte +15 -3
- package/dist/preview/markdown-preview.svelte.d.ts.map +1 -1
- package/dist/preview/renderer/utils.js +0 -2
- package/dist/preview/styles/inline-links.css +38 -0
- package/dist/preview/styles/links-embeds-tags.css +2 -2
- package/dist/preview/styles/mermaid-highlight.css +4 -3
- package/dist/preview/styles/references.css +72 -0
- package/dist/preview/styles/source-mode.css +32 -3
- package/dist/preview/styles.css +2 -0
- package/dist/tables/editor-column.svelte +20 -7
- package/dist/tables/editor-column.svelte.d.ts +2 -0
- package/dist/tables/editor-column.svelte.d.ts.map +1 -1
- package/dist/tables/editor-table.svelte +4 -0
- package/dist/tables/editor-table.svelte.d.ts +2 -0
- package/dist/tables/editor-table.svelte.d.ts.map +1 -1
- package/dist/tables/grid-editor-column.svelte +6 -2
- package/dist/tables/grid-editor-column.svelte.d.ts +2 -0
- package/dist/tables/grid-editor-column.svelte.d.ts.map +1 -1
- package/dist/tables/grid-editor-table.svelte +4 -0
- package/dist/tables/grid-editor-table.svelte.d.ts +2 -0
- package/dist/tables/grid-editor-table.svelte.d.ts.map +1 -1
- package/dist/tables/index.d.ts +1 -0
- package/dist/tables/index.d.ts.map +1 -1
- package/dist/tables/index.js +1 -0
- package/dist/tables/markdown-table-data-cell.svelte +4 -0
- package/dist/tables/markdown-table-data-cell.svelte.d.ts +2 -0
- package/dist/tables/markdown-table-data-cell.svelte.d.ts.map +1 -1
- package/dist/tables/table-reader.svelte +101 -0
- package/dist/tables/table-reader.svelte.d.ts +21 -0
- package/dist/tables/table-reader.svelte.d.ts.map +1 -0
- package/dist/tables/types.d.ts +2 -0
- package/dist/tables/types.d.ts.map +1 -1
- package/dist/tables/widgets/grid-table-widget.d.ts +1 -1
- package/dist/tables/widgets/grid-table-widget.d.ts.map +1 -1
- package/dist/tables/widgets/grid-table-widget.js +5 -2
- package/dist/tables/widgets/lifecycle.d.ts +4 -0
- package/dist/tables/widgets/lifecycle.d.ts.map +1 -0
- package/dist/tables/widgets/lifecycle.js +13 -0
- package/dist/tables/widgets/pipe-table-widget.d.ts +1 -1
- package/dist/tables/widgets/pipe-table-widget.d.ts.map +1 -1
- package/dist/tables/widgets/pipe-table-widget.js +5 -2
- package/dist/types.d.ts +2 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/ui/context-menu/context-menu-radio-group.svelte.d.ts +1 -1
- package/dist/ui/dropdown-menu/dropdown-menu-radio-group.svelte.d.ts +1 -1
- package/dist/ui/toolbar/toolbar-group.svelte.d.ts +1 -1
- package/inline-links-NOTICE.md +31 -0
- package/package.json +2 -1
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import type { Snippet } from "svelte";
|
|
3
|
+
import { TableNode } from "./table-node";
|
|
4
|
+
import { MarkdownPreview } from "@lapismd/mira/preview";
|
|
5
|
+
import type { MiraExtension } from "../extensions";
|
|
6
|
+
import * as Table from "@lapismd/mira/ui/table";
|
|
7
|
+
|
|
8
|
+
let {
|
|
9
|
+
markdown,
|
|
10
|
+
cell,
|
|
11
|
+
breakAfterRows = [],
|
|
12
|
+
afterRow,
|
|
13
|
+
extensions = [],
|
|
14
|
+
label = "Markdown table",
|
|
15
|
+
showHeader = true,
|
|
16
|
+
}: {
|
|
17
|
+
markdown: string;
|
|
18
|
+
/** Render original source-aware cells without enabling table mutations. */
|
|
19
|
+
cell?: Snippet<[{ row: number; column: number; text: string }]>;
|
|
20
|
+
/** Zero-based source rows, including the header at row zero. */
|
|
21
|
+
breakAfterRows?: readonly number[];
|
|
22
|
+
afterRow?: Snippet<[number]>;
|
|
23
|
+
extensions?: MiraExtension[];
|
|
24
|
+
label?: string;
|
|
25
|
+
showHeader?: boolean;
|
|
26
|
+
} = $props();
|
|
27
|
+
const table = $derived(TableNode.fromMarkdown(markdown)?.getMdastNode());
|
|
28
|
+
const rows = $derived(table?.children ?? []);
|
|
29
|
+
const segments = $derived.by(() => {
|
|
30
|
+
const ends = [...new Set([...breakAfterRows, rows.length - 1])]
|
|
31
|
+
.filter((row) => Number.isInteger(row) && row >= 0 && row < rows.length)
|
|
32
|
+
.sort((a, b) => a - b);
|
|
33
|
+
let start = 0;
|
|
34
|
+
return ends.map((end) => {
|
|
35
|
+
const segment = { start, end };
|
|
36
|
+
start = end + 1;
|
|
37
|
+
return segment;
|
|
38
|
+
});
|
|
39
|
+
});
|
|
40
|
+
</script>
|
|
41
|
+
|
|
42
|
+
<div class="mira-table-reader">
|
|
43
|
+
{#each segments as segment (segment.start)}
|
|
44
|
+
<div class="mira-table-reader__scroll">
|
|
45
|
+
<Table.Root aria-label={label} class="mira-table-reader__table">
|
|
46
|
+
<Table.Body>
|
|
47
|
+
{#each rows.slice(segment.start, segment.end + 1) as row, index (segment.start + index)}
|
|
48
|
+
{@const rowIndex = segment.start + index}
|
|
49
|
+
{#if showHeader || rowIndex > 0}
|
|
50
|
+
<Table.Row>
|
|
51
|
+
{#each row.children as value, column (column)}
|
|
52
|
+
{@const text = TableNode.toMarkdown(value).trim()}
|
|
53
|
+
<svelte:element
|
|
54
|
+
this={rowIndex === 0 ? "th" : "td"}
|
|
55
|
+
scope={rowIndex === 0 ? "col" : undefined}
|
|
56
|
+
style:text-align={table?.align?.[column] ?? "left"}
|
|
57
|
+
>
|
|
58
|
+
{#if cell}{@render cell({ row: rowIndex, column, text })}
|
|
59
|
+
{:else}<MarkdownPreview
|
|
60
|
+
value={text}
|
|
61
|
+
inline
|
|
62
|
+
htmlPolicy="safe"
|
|
63
|
+
{extensions}
|
|
64
|
+
/>{/if}
|
|
65
|
+
</svelte:element>
|
|
66
|
+
{/each}
|
|
67
|
+
</Table.Row>
|
|
68
|
+
{/if}
|
|
69
|
+
{/each}
|
|
70
|
+
</Table.Body>
|
|
71
|
+
</Table.Root>
|
|
72
|
+
</div>
|
|
73
|
+
{#if breakAfterRows.includes(segment.end)}{@render afterRow?.(
|
|
74
|
+
segment.end,
|
|
75
|
+
)}{/if}
|
|
76
|
+
{/each}
|
|
77
|
+
</div>
|
|
78
|
+
|
|
79
|
+
<style>
|
|
80
|
+
.mira-table-reader {
|
|
81
|
+
min-width: 0;
|
|
82
|
+
}
|
|
83
|
+
.mira-table-reader__scroll {
|
|
84
|
+
overflow-x: auto;
|
|
85
|
+
}
|
|
86
|
+
.mira-table-reader :global(.mira-table-reader__table) {
|
|
87
|
+
border-collapse: collapse;
|
|
88
|
+
table-layout: fixed;
|
|
89
|
+
width: 100%;
|
|
90
|
+
}
|
|
91
|
+
.mira-table-reader
|
|
92
|
+
:global(.mira-table-reader__table > tbody > tr > :is(td, th)) {
|
|
93
|
+
border: 1px solid var(--mira-border, var(--border));
|
|
94
|
+
padding: var(--mira-table-reader-cell-padding, 0.375rem 0.625rem);
|
|
95
|
+
vertical-align: top;
|
|
96
|
+
}
|
|
97
|
+
.mira-table-reader :global(.mira-table-reader__table > tbody > tr > th) {
|
|
98
|
+
background: var(--mira-muted, var(--muted));
|
|
99
|
+
font-weight: 600;
|
|
100
|
+
}
|
|
101
|
+
</style>
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { Snippet } from "svelte";
|
|
2
|
+
import type { MiraExtension } from "../extensions";
|
|
3
|
+
type $$ComponentProps = {
|
|
4
|
+
markdown: string;
|
|
5
|
+
/** Render original source-aware cells without enabling table mutations. */
|
|
6
|
+
cell?: Snippet<[{
|
|
7
|
+
row: number;
|
|
8
|
+
column: number;
|
|
9
|
+
text: string;
|
|
10
|
+
}]>;
|
|
11
|
+
/** Zero-based source rows, including the header at row zero. */
|
|
12
|
+
breakAfterRows?: readonly number[];
|
|
13
|
+
afterRow?: Snippet<[number]>;
|
|
14
|
+
extensions?: MiraExtension[];
|
|
15
|
+
label?: string;
|
|
16
|
+
showHeader?: boolean;
|
|
17
|
+
};
|
|
18
|
+
declare const TableReader: import("svelte").Component<$$ComponentProps, {}, "">;
|
|
19
|
+
type TableReader = ReturnType<typeof TableReader>;
|
|
20
|
+
export default TableReader;
|
|
21
|
+
//# sourceMappingURL=table-reader.svelte.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"table-reader.svelte.d.ts","sourceRoot":"","sources":["../../src/tables/table-reader.svelte.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAGtC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAGlD,KAAK,gBAAgB,GAAI;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,2EAA2E;IAC3E,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC,CAAC;IAChE,gEAAgE;IAChE,cAAc,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,QAAQ,CAAC,EAAE,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;IAC7B,UAAU,CAAC,EAAE,aAAa,EAAE,CAAC;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB,CAAC;AAgEJ,QAAA,MAAM,WAAW,sDAAwC,CAAC;AAC1D,KAAK,WAAW,GAAG,UAAU,CAAC,OAAO,WAAW,CAAC,CAAC;AAClD,eAAe,WAAW,CAAC"}
|
package/dist/tables/types.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { MiraExtension } from "../extensions";
|
|
1
2
|
export declare const TYPE_TABLE = "gridTable";
|
|
2
3
|
export declare const TYPE_HEADER = "gtHeader";
|
|
3
4
|
export declare const TYPE_BODY = "gtBody";
|
|
@@ -13,6 +14,7 @@ export type MarkdownTable = {
|
|
|
13
14
|
};
|
|
14
15
|
export type MarkdownTableWidgetOptions = {
|
|
15
16
|
markdown: string;
|
|
17
|
+
extensions?: MiraExtension[];
|
|
16
18
|
onChange: (nextMarkdown: string) => void;
|
|
17
19
|
onDelete?: () => void;
|
|
18
20
|
onSource?: () => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/tables/types.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,UAAU,cAAc,CAAC;AACtC,eAAO,MAAM,WAAW,aAAa,CAAC;AACtC,eAAO,MAAM,SAAS,WAAW,CAAC;AAClC,eAAO,MAAM,WAAW,aAAa,CAAC;AACtC,eAAO,MAAM,QAAQ,UAAU,CAAC;AAChC,eAAO,MAAM,SAAS,WAAW,CAAC;AAClC,eAAO,MAAM,aAAa,cAAc,CAAC;AACzC,eAAO,MAAM,iBAAiB,kBAAkB,CAAC;AAEjD,MAAM,MAAM,aAAa,GAAG;IAC1B,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,KAAK,EAAE,KAAK,CAAC,MAAM,GAAG,QAAQ,GAAG,OAAO,GAAG,IAAI,CAAC,CAAC;IACjD,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAAG;IACvC,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,8BAA8B,GAAG,0BAA0B,CAAC;AAExE,MAAM,MAAM,mBAAmB,GAAG;IAChC,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;CAClB,CAAC"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/tables/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAEnD,eAAO,MAAM,UAAU,cAAc,CAAC;AACtC,eAAO,MAAM,WAAW,aAAa,CAAC;AACtC,eAAO,MAAM,SAAS,WAAW,CAAC;AAClC,eAAO,MAAM,WAAW,aAAa,CAAC;AACtC,eAAO,MAAM,QAAQ,UAAU,CAAC;AAChC,eAAO,MAAM,SAAS,WAAW,CAAC;AAClC,eAAO,MAAM,aAAa,cAAc,CAAC;AACzC,eAAO,MAAM,iBAAiB,kBAAkB,CAAC;AAEjD,MAAM,MAAM,aAAa,GAAG;IAC1B,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,KAAK,EAAE,KAAK,CAAC,MAAM,GAAG,QAAQ,GAAG,OAAO,GAAG,IAAI,CAAC,CAAC;IACjD,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAAG;IACvC,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,aAAa,EAAE,CAAC;IAC7B,QAAQ,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,8BAA8B,GAAG,0BAA0B,CAAC;AAExE,MAAM,MAAM,mBAAmB,GAAG;IAChC,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;CAClB,CAAC"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import type { MarkdownGridTableWidgetOptions } from "../types";
|
|
2
|
-
export declare function createMarkdownGridTableWidget({ markdown, onChange, onDelete, onSource, }: MarkdownGridTableWidgetOptions): HTMLElement;
|
|
2
|
+
export declare function createMarkdownGridTableWidget({ markdown, onChange, onDelete, onSource, extensions, }: MarkdownGridTableWidgetOptions): HTMLElement;
|
|
3
3
|
//# sourceMappingURL=grid-table-widget.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grid-table-widget.d.ts","sourceRoot":"","sources":["../../../src/tables/widgets/grid-table-widget.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"grid-table-widget.d.ts","sourceRoot":"","sources":["../../../src/tables/widgets/grid-table-widget.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,UAAU,CAAC;AAI/D,wBAAgB,6BAA6B,CAAC,EAC5C,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,UAAe,GAChB,EAAE,8BAA8B,GAAG,WAAW,CA2B9C"}
|
|
@@ -3,7 +3,8 @@ import { mount } from "svelte";
|
|
|
3
3
|
import GridEditorTable from "../grid-editor-table.svelte";
|
|
4
4
|
import { GridTableNode } from "../grid-table";
|
|
5
5
|
import { createSourceButton } from "./source-button";
|
|
6
|
-
|
|
6
|
+
import { registerTableWidgetMount } from "./lifecycle";
|
|
7
|
+
export function createMarkdownGridTableWidget({ markdown, onChange, onDelete, onSource, extensions = [], }) {
|
|
7
8
|
const root = document.createElement("div");
|
|
8
9
|
root.className =
|
|
9
10
|
"mira-table-widget-shell mira-grid-table-widget-shell relative";
|
|
@@ -14,13 +15,15 @@ export function createMarkdownGridTableWidget({ markdown, onChange, onDelete, on
|
|
|
14
15
|
const node = GridTableNode.fromMarkdown(markdown) ??
|
|
15
16
|
GridTableNode.fromMarkdown("+---+\n| |\n+---+") ??
|
|
16
17
|
new GridTableNode();
|
|
17
|
-
mount(GridEditorTable, {
|
|
18
|
+
const component = mount(GridEditorTable, {
|
|
18
19
|
target: root,
|
|
19
20
|
props: {
|
|
20
21
|
node,
|
|
22
|
+
extensions,
|
|
21
23
|
onChange: (nextMarkdown) => onChange(nextMarkdown.trimEnd()),
|
|
22
24
|
onDelete: () => onDelete?.(),
|
|
23
25
|
},
|
|
24
26
|
});
|
|
27
|
+
registerTableWidgetMount(root, component);
|
|
25
28
|
return root;
|
|
26
29
|
}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export declare function registerTableWidgetMount(root: HTMLElement, component: Record<string, unknown>): void;
|
|
2
|
+
/** Called by the owning CodeMirror widget; safe after repeated destruction. */
|
|
3
|
+
export declare function destroyTableWidget(root: HTMLElement): void;
|
|
4
|
+
//# sourceMappingURL=lifecycle.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lifecycle.d.ts","sourceRoot":"","sources":["../../../src/tables/widgets/lifecycle.ts"],"names":[],"mappings":"AAIA,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,WAAW,EACjB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACjC,IAAI,CAEN;AAED,+EAA+E;AAC/E,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI,CAK1D"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { unmount } from "svelte";
|
|
2
|
+
const mounts = new WeakMap();
|
|
3
|
+
export function registerTableWidgetMount(root, component) {
|
|
4
|
+
mounts.set(root, component);
|
|
5
|
+
}
|
|
6
|
+
/** Called by the owning CodeMirror widget; safe after repeated destruction. */
|
|
7
|
+
export function destroyTableWidget(root) {
|
|
8
|
+
const component = mounts.get(root);
|
|
9
|
+
if (!component)
|
|
10
|
+
return;
|
|
11
|
+
mounts.delete(root);
|
|
12
|
+
void unmount(component);
|
|
13
|
+
}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import type { MarkdownTableWidgetOptions } from "../types";
|
|
2
|
-
export declare function createMarkdownTableWidget({ markdown, onChange, onDelete, onSource, }: MarkdownTableWidgetOptions): HTMLElement;
|
|
2
|
+
export declare function createMarkdownTableWidget({ markdown, onChange, onDelete, onSource, extensions, }: MarkdownTableWidgetOptions): HTMLElement;
|
|
3
3
|
//# sourceMappingURL=pipe-table-widget.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pipe-table-widget.d.ts","sourceRoot":"","sources":["../../../src/tables/widgets/pipe-table-widget.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"pipe-table-widget.d.ts","sourceRoot":"","sources":["../../../src/tables/widgets/pipe-table-widget.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,UAAU,CAAC;AAI3D,wBAAgB,yBAAyB,CAAC,EACxC,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,UAAe,GAChB,EAAE,0BAA0B,GAAG,WAAW,CA0B1C"}
|
|
@@ -3,7 +3,8 @@ import { mount } from "svelte";
|
|
|
3
3
|
import EditorTable from "../editor-table.svelte";
|
|
4
4
|
import { TableNode } from "../table-node";
|
|
5
5
|
import { createSourceButton } from "./source-button";
|
|
6
|
-
|
|
6
|
+
import { registerTableWidgetMount } from "./lifecycle";
|
|
7
|
+
export function createMarkdownTableWidget({ markdown, onChange, onDelete, onSource, extensions = [], }) {
|
|
7
8
|
const root = document.createElement("div");
|
|
8
9
|
root.className = "mira-table-widget-shell relative";
|
|
9
10
|
root.contentEditable = "false";
|
|
@@ -13,13 +14,15 @@ export function createMarkdownTableWidget({ markdown, onChange, onDelete, onSour
|
|
|
13
14
|
const node = TableNode.fromMarkdown(markdown) ??
|
|
14
15
|
TableNode.fromMarkdown("| |\n| --- |\n| |") ??
|
|
15
16
|
new TableNode();
|
|
16
|
-
mount(EditorTable, {
|
|
17
|
+
const component = mount(EditorTable, {
|
|
17
18
|
target: root,
|
|
18
19
|
props: {
|
|
19
20
|
node,
|
|
21
|
+
extensions,
|
|
20
22
|
onChange: (nextMarkdown) => onChange(nextMarkdown.trimEnd()),
|
|
21
23
|
onDelete: () => onDelete?.(),
|
|
22
24
|
},
|
|
23
25
|
});
|
|
26
|
+
registerTableWidgetMount(root, component);
|
|
24
27
|
return root;
|
|
25
28
|
}
|
package/dist/types.d.ts
CHANGED
|
@@ -10,6 +10,8 @@ export type MiraProps = {
|
|
|
10
10
|
readonly?: boolean;
|
|
11
11
|
placeholder?: string;
|
|
12
12
|
lineWrapping?: boolean;
|
|
13
|
+
/** Show editor line numbers; defaults to true. */
|
|
14
|
+
lineNumbers?: boolean;
|
|
13
15
|
spellcheck?: boolean;
|
|
14
16
|
blockControls?: boolean | MiraBlockControlsOptions;
|
|
15
17
|
indentGuides?: boolean;
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ContextMenu as ContextMenuPrimitive } from "bits-ui";
|
|
2
|
-
declare const ContextMenuRadioGroup: import("svelte").Component<ContextMenuPrimitive.RadioGroupProps, {}, "
|
|
2
|
+
declare const ContextMenuRadioGroup: import("svelte").Component<ContextMenuPrimitive.RadioGroupProps, {}, "ref" | "value">;
|
|
3
3
|
type ContextMenuRadioGroup = ReturnType<typeof ContextMenuRadioGroup>;
|
|
4
4
|
export default ContextMenuRadioGroup;
|
|
5
5
|
//# sourceMappingURL=context-menu-radio-group.svelte.d.ts.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { DropdownMenu as DropdownMenuPrimitive } from "bits-ui";
|
|
2
|
-
declare const DropdownMenuRadioGroup: import("svelte").Component<DropdownMenuPrimitive.RadioGroupProps, {}, "
|
|
2
|
+
declare const DropdownMenuRadioGroup: import("svelte").Component<DropdownMenuPrimitive.RadioGroupProps, {}, "ref" | "value">;
|
|
3
3
|
type DropdownMenuRadioGroup = ReturnType<typeof DropdownMenuRadioGroup>;
|
|
4
4
|
export default DropdownMenuRadioGroup;
|
|
5
5
|
//# sourceMappingURL=dropdown-menu-radio-group.svelte.d.ts.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Toolbar as ToolbarPrimitive } from "bits-ui";
|
|
2
|
-
declare const ToolbarGroup: import("svelte").Component<ToolbarPrimitive.GroupProps, {}, "
|
|
2
|
+
declare const ToolbarGroup: import("svelte").Component<ToolbarPrimitive.GroupProps, {}, "ref" | "value">;
|
|
3
3
|
type ToolbarGroup = ReturnType<typeof ToolbarGroup>;
|
|
4
4
|
export default ToolbarGroup;
|
|
5
5
|
//# sourceMappingURL=toolbar-group.svelte.d.ts.map
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# Inline-link icon attribution
|
|
2
|
+
|
|
3
|
+
The bundled monochrome site paths originate from Simple Icons 16.0.0
|
|
4
|
+
(revision `28241d80f8422eaed317ef968ad1e40b6d0d9163`), except Slack from
|
|
5
|
+
Simple Icons 15.0.0. They were adapted from jj-store's locally bundled site
|
|
6
|
+
registry; no runtime source checkout is required.
|
|
7
|
+
|
|
8
|
+
Source: <https://github.com/simple-icons/simple-icons>.
|
|
9
|
+
License: CC0 1.0 Universal, <https://creativecommons.org/publicdomain/zero/1.0/>.
|
|
10
|
+
Brands: GitHub, GitLab, Forgejo, Codeberg, Bitbucket, Facebook, X, Google,
|
|
11
|
+
Slack, Linear, Notion, Figma, YouTube, Discord, Reddit and Stack Overflow.
|
|
12
|
+
Brand trademarks remain the property of their respective owners.
|
|
13
|
+
|
|
14
|
+
The generic link path is adapted from Lucide 0.525.0 (`link`, ISC):
|
|
15
|
+
<https://github.com/lucide-icons/lucide/tree/0.525.0>.
|
|
16
|
+
|
|
17
|
+
Copyright (c) for portions of Lucide are held by Cole Bemis 2013-2022 as part
|
|
18
|
+
of Feather (MIT). All other copyright (c) for Lucide are held by Lucide
|
|
19
|
+
Contributors 2022.
|
|
20
|
+
|
|
21
|
+
Permission to use, copy, modify, and/or distribute this software for any purpose
|
|
22
|
+
with or without fee is hereby granted, provided that the above copyright notice
|
|
23
|
+
and this permission notice appear in all copies.
|
|
24
|
+
|
|
25
|
+
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
|
|
26
|
+
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
|
27
|
+
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
|
|
28
|
+
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
|
29
|
+
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
|
30
|
+
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
|
31
|
+
PERFORMANCE OF THIS SOFTWARE.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lapismd/mira",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.1.1",
|
|
4
4
|
"description": "Composable Markdown editor, extension SDK, preview renderer, and UI for Mira.",
|
|
5
5
|
"author": "Steve Juma <help@lapis.md>",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -17,6 +17,7 @@
|
|
|
17
17
|
"types": "./dist/index.d.ts",
|
|
18
18
|
"files": [
|
|
19
19
|
"CHANGELOG.md",
|
|
20
|
+
"inline-links-NOTICE.md",
|
|
20
21
|
"dist",
|
|
21
22
|
"!dist/**/*.test.*",
|
|
22
23
|
"!dist/**/*.spec.*",
|