@lapismd/mira 0.0.4 → 0.1.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.
- package/CHANGELOG.md +39 -0
- package/dist/extensions/index.d.ts +13 -1
- 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 +2 -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 +43 -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/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.d.ts +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 +26 -10
- 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 +15 -0
- package/dist/preview/editable-markdown-preview/editing-session.d.ts.map +1 -0
- package/dist/preview/editable-markdown-preview/editing-session.js +103 -0
- package/dist/preview/editable-markdown-preview/editor-surface.svelte +13 -4
- package/dist/preview/editable-markdown-preview/editor-surface.svelte.d.ts +1 -0
- package/dist/preview/editable-markdown-preview/editor-surface.svelte.d.ts.map +1 -1
- package/dist/preview/editable-markdown-preview/serialized-writer.d.ts +10 -8
- package/dist/preview/editable-markdown-preview/serialized-writer.d.ts.map +1 -1
- package/dist/preview/editable-markdown-preview/serialized-writer.js +105 -6
- package/dist/preview/editable-markdown-preview.svelte +8 -6
- package/dist/preview/editable-markdown-preview.svelte.d.ts.map +1 -1
- 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 +11 -0
- 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.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/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 +6 -2
- package/dist/core/code-mirror.test.d.ts +0 -2
- package/dist/core/code-mirror.test.d.ts.map +0 -1
- package/dist/core/code-mirror.test.js +0 -68
- package/dist/core/images.test.d.ts +0 -2
- package/dist/core/images.test.d.ts.map +0 -1
- package/dist/core/images.test.js +0 -109
- package/dist/core/index.test.d.ts +0 -2
- package/dist/core/index.test.d.ts.map +0 -1
- package/dist/core/index.test.js +0 -11
- package/dist/core/markdown-actions.test.d.ts +0 -2
- package/dist/core/markdown-actions.test.d.ts.map +0 -1
- package/dist/core/markdown-actions.test.js +0 -182
- package/dist/extensions/doodle-dividers.test.d.ts +0 -2
- package/dist/extensions/doodle-dividers.test.d.ts.map +0 -1
- package/dist/extensions/doodle-dividers.test.js +0 -296
- package/dist/extensions/index.test.d.ts +0 -2
- package/dist/extensions/index.test.d.ts.map +0 -1
- package/dist/extensions/index.test.js +0 -283
- package/dist/index.test.d.ts +0 -2
- package/dist/index.test.d.ts.map +0 -1
- package/dist/index.test.js +0 -64
- package/dist/internal/appearance-context.test.d.ts +0 -2
- package/dist/internal/appearance-context.test.d.ts.map +0 -1
- package/dist/internal/appearance-context.test.js +0 -31
- package/dist/internal/codemirror/base/index.test.d.ts +0 -2
- package/dist/internal/codemirror/base/index.test.d.ts.map +0 -1
- package/dist/internal/codemirror/base/index.test.js +0 -303
- package/dist/internal/codemirror/base/search.test.d.ts +0 -2
- package/dist/internal/codemirror/base/search.test.d.ts.map +0 -1
- package/dist/internal/codemirror/base/search.test.js +0 -155
- package/dist/internal/codemirror/base/selection-toolbar.test.d.ts +0 -2
- package/dist/internal/codemirror/base/selection-toolbar.test.d.ts.map +0 -1
- package/dist/internal/codemirror/base/selection-toolbar.test.js +0 -149
- package/dist/internal/codemirror/markdown/authoring.test.d.ts +0 -2
- package/dist/internal/codemirror/markdown/authoring.test.d.ts.map +0 -1
- package/dist/internal/codemirror/markdown/authoring.test.js +0 -222
- package/dist/internal/codemirror/markdown/index.test.d.ts +0 -2
- package/dist/internal/codemirror/markdown/index.test.d.ts.map +0 -1
- package/dist/internal/codemirror/markdown/index.test.js +0 -158
- package/dist/internal/codemirror/markdown/showcase-fixture.test.d.ts +0 -2
- package/dist/internal/codemirror/markdown/showcase-fixture.test.d.ts.map +0 -1
- package/dist/internal/codemirror/markdown/showcase-fixture.test.js +0 -50
- package/dist/internal/codemirror/rich/block-controls.test.d.ts +0 -2
- package/dist/internal/codemirror/rich/block-controls.test.d.ts.map +0 -1
- package/dist/internal/codemirror/rich/block-controls.test.js +0 -401
- package/dist/internal/codemirror/rich/block-ranges.test.d.ts +0 -2
- package/dist/internal/codemirror/rich/block-ranges.test.d.ts.map +0 -1
- package/dist/internal/codemirror/rich/block-ranges.test.js +0 -310
- package/dist/internal/codemirror/rich/block-toolbar.test.d.ts +0 -2
- package/dist/internal/codemirror/rich/block-toolbar.test.d.ts.map +0 -1
- package/dist/internal/codemirror/rich/block-toolbar.test.js +0 -178
- package/dist/internal/codemirror/rich/decorations/fold-indicators.test.d.ts +0 -2
- package/dist/internal/codemirror/rich/decorations/fold-indicators.test.d.ts.map +0 -1
- package/dist/internal/codemirror/rich/decorations/fold-indicators.test.js +0 -8
- package/dist/internal/codemirror/rich/index.test.d.ts +0 -2
- package/dist/internal/codemirror/rich/index.test.d.ts.map +0 -1
- package/dist/internal/codemirror/rich/index.test.js +0 -607
- package/dist/internal/codemirror/rich/utils/code-block-lines.test.d.ts +0 -2
- package/dist/internal/codemirror/rich/utils/code-block-lines.test.d.ts.map +0 -1
- package/dist/internal/codemirror/rich/utils/code-block-lines.test.js +0 -82
- package/dist/internal/codemirror/rich/utils/fenced-code.test.d.ts +0 -2
- package/dist/internal/codemirror/rich/utils/fenced-code.test.d.ts.map +0 -1
- package/dist/internal/codemirror/rich/utils/fenced-code.test.js +0 -12
- package/dist/internal/codemirror/rich/utils/headings.test.d.ts +0 -2
- package/dist/internal/codemirror/rich/utils/headings.test.d.ts.map +0 -1
- package/dist/internal/codemirror/rich/utils/headings.test.js +0 -27
- package/dist/internal/codemirror/rich/utils/height-estimates.test.d.ts +0 -2
- package/dist/internal/codemirror/rich/utils/height-estimates.test.d.ts.map +0 -1
- package/dist/internal/codemirror/rich/utils/height-estimates.test.js +0 -10
- package/dist/internal/codemirror/rich/utils/images.test.d.ts +0 -2
- package/dist/internal/codemirror/rich/utils/images.test.d.ts.map +0 -1
- package/dist/internal/codemirror/rich/utils/images.test.js +0 -37
- package/dist/internal/codemirror/rich/utils/indent.test.d.ts +0 -2
- package/dist/internal/codemirror/rich/utils/indent.test.d.ts.map +0 -1
- package/dist/internal/codemirror/rich/utils/indent.test.js +0 -169
- package/dist/internal/codemirror/rich/utils/inline-math.test.d.ts +0 -2
- package/dist/internal/codemirror/rich/utils/inline-math.test.d.ts.map +0 -1
- package/dist/internal/codemirror/rich/utils/inline-math.test.js +0 -15
- package/dist/internal/codemirror/rich/utils/links.test.d.ts +0 -2
- package/dist/internal/codemirror/rich/utils/links.test.d.ts.map +0 -1
- package/dist/internal/codemirror/rich/utils/links.test.js +0 -28
- package/dist/internal/codemirror/rich/utils/list-callouts.test.d.ts +0 -2
- package/dist/internal/codemirror/rich/utils/list-callouts.test.d.ts.map +0 -1
- package/dist/internal/codemirror/rich/utils/list-callouts.test.js +0 -47
- package/dist/internal/codemirror/rich/utils/measured-indent.test.d.ts +0 -2
- package/dist/internal/codemirror/rich/utils/measured-indent.test.d.ts.map +0 -1
- package/dist/internal/codemirror/rich/utils/measured-indent.test.js +0 -102
- package/dist/internal/codemirror/rich/utils/ranges.test.d.ts +0 -2
- package/dist/internal/codemirror/rich/utils/ranges.test.d.ts.map +0 -1
- package/dist/internal/codemirror/rich/utils/ranges.test.js +0 -22
- package/dist/internal/codemirror/rich/utils/tasks.test.d.ts +0 -2
- package/dist/internal/codemirror/rich/utils/tasks.test.d.ts.map +0 -1
- package/dist/internal/codemirror/rich/utils/tasks.test.js +0 -57
- package/dist/internal/task-states.test.d.ts +0 -2
- package/dist/internal/task-states.test.d.ts.map +0 -1
- package/dist/internal/task-states.test.js +0 -36
- package/dist/mira-code-editor.test.d.ts +0 -2
- package/dist/mira-code-editor.test.d.ts.map +0 -1
- package/dist/mira-code-editor.test.js +0 -93
- package/dist/mode-position.test.d.ts +0 -2
- package/dist/mode-position.test.d.ts.map +0 -1
- package/dist/mode-position.test.js +0 -60
- package/dist/preview/code-language.test.d.ts +0 -2
- package/dist/preview/code-language.test.d.ts.map +0 -1
- package/dist/preview/code-language.test.js +0 -12
- package/dist/preview/components/icon.test.d.ts +0 -2
- package/dist/preview/components/icon.test.d.ts.map +0 -1
- package/dist/preview/components/icon.test.js +0 -20
- package/dist/preview/editable-markdown-preview/behavior.test.d.ts +0 -2
- package/dist/preview/editable-markdown-preview/behavior.test.d.ts.map +0 -1
- package/dist/preview/editable-markdown-preview/behavior.test.js +0 -36
- package/dist/preview/editable-markdown-preview/serialized-writer.test.d.ts +0 -2
- package/dist/preview/editable-markdown-preview/serialized-writer.test.d.ts.map +0 -1
- package/dist/preview/editable-markdown-preview/serialized-writer.test.js +0 -59
- package/dist/preview/embed-target.test.d.ts +0 -2
- package/dist/preview/embed-target.test.d.ts.map +0 -1
- package/dist/preview/embed-target.test.js +0 -78
- package/dist/preview/frontmatter/frontmatter.test.d.ts +0 -2
- package/dist/preview/frontmatter/frontmatter.test.d.ts.map +0 -1
- package/dist/preview/frontmatter/frontmatter.test.js +0 -190
- package/dist/preview/frontmatter/suggestions.test.d.ts +0 -2
- package/dist/preview/frontmatter/suggestions.test.d.ts.map +0 -1
- package/dist/preview/frontmatter/suggestions.test.js +0 -45
- package/dist/preview/outline.test.d.ts +0 -2
- package/dist/preview/outline.test.d.ts.map +0 -1
- package/dist/preview/outline.test.js +0 -98
- package/dist/preview/portable-surfaces.test.d.ts +0 -2
- package/dist/preview/portable-surfaces.test.d.ts.map +0 -1
- package/dist/preview/portable-surfaces.test.js +0 -513
- package/dist/preview/preview.test.d.ts +0 -2
- package/dist/preview/preview.test.d.ts.map +0 -1
- package/dist/preview/preview.test.js +0 -154
- package/dist/preview/remark/callouts.test.d.ts +0 -2
- package/dist/preview/remark/callouts.test.d.ts.map +0 -1
- package/dist/preview/remark/callouts.test.js +0 -23
- package/dist/preview/remark/custom-checklists.test.d.ts +0 -2
- package/dist/preview/remark/custom-checklists.test.d.ts.map +0 -1
- package/dist/preview/remark/custom-checklists.test.js +0 -51
- package/dist/preview/remark/links.test.d.ts +0 -2
- package/dist/preview/remark/links.test.d.ts.map +0 -1
- package/dist/preview/remark/links.test.js +0 -62
- package/dist/preview/remark/parity.test.d.ts +0 -2
- package/dist/preview/remark/parity.test.d.ts.map +0 -1
- package/dist/preview/remark/parity.test.js +0 -105
- package/dist/preview/styles/frontmatter-properties.test.d.ts +0 -2
- package/dist/preview/styles/frontmatter-properties.test.d.ts.map +0 -1
- package/dist/preview/styles/frontmatter-properties.test.js +0 -57
- package/dist/preview/styles/source-mode.test.d.ts +0 -2
- package/dist/preview/styles/source-mode.test.d.ts.map +0 -1
- package/dist/preview/styles/source-mode.test.js +0 -28
- package/dist/tables/extension.test.d.ts +0 -2
- package/dist/tables/extension.test.d.ts.map +0 -1
- package/dist/tables/extension.test.js +0 -100
- package/dist/tables/grid-editor-column.test.d.ts +0 -2
- package/dist/tables/grid-editor-column.test.d.ts.map +0 -1
- package/dist/tables/grid-editor-column.test.js +0 -27
- package/dist/tables/grid-table.test.d.ts +0 -2
- package/dist/tables/grid-table.test.d.ts.map +0 -1
- package/dist/tables/grid-table.test.js +0 -140
- package/dist/tables/index.test.d.ts +0 -2
- package/dist/tables/index.test.d.ts.map +0 -1
- package/dist/tables/index.test.js +0 -7
- package/dist/tables/inline-editor-extensions.test.d.ts +0 -2
- package/dist/tables/inline-editor-extensions.test.d.ts.map +0 -1
- package/dist/tables/inline-editor-extensions.test.js +0 -23
- package/dist/tables/pipe-table.test.d.ts +0 -2
- package/dist/tables/pipe-table.test.d.ts.map +0 -1
- package/dist/tables/pipe-table.test.js +0 -13
- package/dist/tables/table-node.test.d.ts +0 -2
- package/dist/tables/table-node.test.d.ts.map +0 -1
- package/dist/tables/table-node.test.js +0 -167
- package/dist/tables/widgets/source-button.test.d.ts +0 -2
- package/dist/tables/widgets/source-button.test.d.ts.map +0 -1
- package/dist/tables/widgets/source-button.test.js +0 -11
- package/dist/themes/theme-contract.test.d.ts +0 -2
- package/dist/themes/theme-contract.test.d.ts.map +0 -1
- package/dist/themes/theme-contract.test.js +0 -88
- package/dist/ui/index.test.d.ts +0 -2
- package/dist/ui/index.test.d.ts.map +0 -1
- package/dist/ui/index.test.js +0 -7
- package/dist/ui/styles.test.d.ts +0 -2
- package/dist/ui/styles.test.d.ts.map +0 -1
- package/dist/ui/styles.test.js +0 -26
- package/dist/ui/table-dnd/table-dnd-utils.test.d.ts +0 -2
- package/dist/ui/table-dnd/table-dnd-utils.test.d.ts.map +0 -1
- package/dist/ui/table-dnd/table-dnd-utils.test.js +0 -46
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grid-editor-column.svelte.d.ts","sourceRoot":"","sources":["../../src/tables/grid-editor-column.svelte.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"grid-editor-column.svelte.d.ts","sourceRoot":"","sources":["../../src/tables/grid-editor-column.svelte.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAGlD,KAAK,gBAAgB,GAAI;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,aAAa,EAAE,CAAC;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,UAAU,KAAK,OAAO,CAAC;CACvC,CAAC;AAsHJ,QAAA,MAAM,gBAAgB,sDAAwC,CAAC;AAC/D,KAAK,gBAAgB,GAAG,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAC5D,eAAe,gBAAgB,CAAC"}
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
import * as Table from "@lapismd/mira/ui/table";
|
|
5
5
|
import { cn } from "./utils";
|
|
6
6
|
import ColumnEditor from "./grid-editor-column.svelte";
|
|
7
|
+
import type { MiraExtension } from "../extensions";
|
|
7
8
|
import * as Tooltip from "@lapismd/mira/ui/tooltip";
|
|
8
9
|
import Delete from "@lucide/svelte/icons/trash";
|
|
9
10
|
import Elipsis from "@lucide/svelte/icons/ellipsis";
|
|
@@ -30,12 +31,14 @@
|
|
|
30
31
|
onDelete = () => {},
|
|
31
32
|
onMouseUp = () => {},
|
|
32
33
|
selectedCells = [],
|
|
34
|
+
extensions = [],
|
|
33
35
|
}: {
|
|
34
36
|
node: GridTableNode;
|
|
35
37
|
onChange?: (data: string, props?: Record<string, any>) => void;
|
|
36
38
|
onDelete?: (evt: Event) => void;
|
|
37
39
|
onMouseUp?: (evt: MouseEvent) => void;
|
|
38
40
|
selectedCells?: Array<[number, number]>;
|
|
41
|
+
extensions?: MiraExtension[];
|
|
39
42
|
} = $props();
|
|
40
43
|
let tableVersion = $state(0);
|
|
41
44
|
let columnCount = $derived.by(() => {
|
|
@@ -1107,6 +1110,7 @@
|
|
|
1107
1110
|
})}
|
|
1108
1111
|
>
|
|
1109
1112
|
<ColumnEditor
|
|
1113
|
+
{extensions}
|
|
1110
1114
|
content={cell.cell.content}
|
|
1111
1115
|
class={cn({
|
|
1112
1116
|
"text-left": cell.cell.align === "left",
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import { GridTableNode } from "./grid-table";
|
|
2
|
+
import type { MiraExtension } from "../extensions";
|
|
2
3
|
type $$ComponentProps = {
|
|
3
4
|
node: GridTableNode;
|
|
4
5
|
onChange?: (data: string, props?: Record<string, any>) => void;
|
|
5
6
|
onDelete?: (evt: Event) => void;
|
|
6
7
|
onMouseUp?: (evt: MouseEvent) => void;
|
|
7
8
|
selectedCells?: Array<[number, number]>;
|
|
9
|
+
extensions?: MiraExtension[];
|
|
8
10
|
};
|
|
9
11
|
declare const GridEditorTable: import("svelte").Component<$$ComponentProps, {}, "">;
|
|
10
12
|
type GridEditorTable = ReturnType<typeof GridEditorTable>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grid-editor-table.svelte.d.ts","sourceRoot":"","sources":["../../src/tables/grid-editor-table.svelte.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,aAAa,EAAgB,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"grid-editor-table.svelte.d.ts","sourceRoot":"","sources":["../../src/tables/grid-editor-table.svelte.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,aAAa,EAAgB,MAAM,cAAc,CAAC;AAI3D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAqBlD,KAAK,gBAAgB,GAAI;IACtB,IAAI,EAAE,aAAa,CAAC;IACpB,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,IAAI,CAAC;IAC/D,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,IAAI,CAAC;IAChC,SAAS,CAAC,EAAE,CAAC,GAAG,EAAE,UAAU,KAAK,IAAI,CAAC;IACtC,aAAa,CAAC,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACxC,UAAU,CAAC,EAAE,aAAa,EAAE,CAAC;CAC9B,CAAC;AAygCJ,QAAA,MAAM,eAAe,sDAAwC,CAAC;AAC9D,KAAK,eAAe,GAAG,UAAU,CAAC,OAAO,eAAe,CAAC,CAAC;AAC1D,eAAe,eAAe,CAAC"}
|
package/dist/tables/index.d.ts
CHANGED
|
@@ -7,6 +7,7 @@ export { GridTableNode, type ColType, type GridType, type RowType, } from "./gri
|
|
|
7
7
|
export { $convertTableElement, TableNode } from "./table-node";
|
|
8
8
|
import EditorColumn from "./editor-column.svelte";
|
|
9
9
|
import EditorTable from "./editor-table.svelte";
|
|
10
|
+
export { default as TableReader } from "./table-reader.svelte";
|
|
10
11
|
import GridEditorColumn from "./grid-editor-column.svelte";
|
|
11
12
|
import GridEditorTable from "./grid-editor-table.svelte";
|
|
12
13
|
export { EditorColumn, EditorColumn as column, EditorTable, EditorTable as Table, GridEditorColumn, GridEditorColumn as GridColumn, GridEditorTable, GridEditorTable as GridTable, };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tables/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,SAAS,CAAC;AACxB,cAAc,6BAA6B,CAAC;AAC5C,cAAc,6BAA6B,CAAC;AAC5C,OAAO,EACL,aAAa,EACb,KAAK,OAAO,EACZ,KAAK,QAAQ,EACb,KAAK,OAAO,GACb,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,oBAAoB,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAE/D,OAAO,YAAY,MAAM,wBAAwB,CAAC;AAClD,OAAO,WAAW,MAAM,uBAAuB,CAAC;AAChD,OAAO,gBAAgB,MAAM,6BAA6B,CAAC;AAC3D,OAAO,eAAe,MAAM,4BAA4B,CAAC;AAEzD,OAAO,EACL,YAAY,EACZ,YAAY,IAAI,MAAM,EACtB,WAAW,EACX,WAAW,IAAI,KAAK,EACpB,gBAAgB,EAChB,gBAAgB,IAAI,UAAU,EAC9B,eAAe,EACf,eAAe,IAAI,SAAS,GAC7B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tables/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,SAAS,CAAC;AACxB,cAAc,6BAA6B,CAAC;AAC5C,cAAc,6BAA6B,CAAC;AAC5C,OAAO,EACL,aAAa,EACb,KAAK,OAAO,EACZ,KAAK,QAAQ,EACb,KAAK,OAAO,GACb,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,oBAAoB,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAE/D,OAAO,YAAY,MAAM,wBAAwB,CAAC;AAClD,OAAO,WAAW,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,gBAAgB,MAAM,6BAA6B,CAAC;AAC3D,OAAO,eAAe,MAAM,4BAA4B,CAAC;AAEzD,OAAO,EACL,YAAY,EACZ,YAAY,IAAI,MAAM,EACtB,WAAW,EACX,WAAW,IAAI,KAAK,EACpB,gBAAgB,EAChB,gBAAgB,IAAI,UAAU,EAC9B,eAAe,EACf,eAAe,IAAI,SAAS,GAC7B,CAAC"}
|
package/dist/tables/index.js
CHANGED
|
@@ -7,6 +7,7 @@ export { GridTableNode, } from "./grid-table";
|
|
|
7
7
|
export { $convertTableElement, TableNode } from "./table-node";
|
|
8
8
|
import EditorColumn from "./editor-column.svelte";
|
|
9
9
|
import EditorTable from "./editor-table.svelte";
|
|
10
|
+
export { default as TableReader } from "./table-reader.svelte";
|
|
10
11
|
import GridEditorColumn from "./grid-editor-column.svelte";
|
|
11
12
|
import GridEditorTable from "./grid-editor-table.svelte";
|
|
12
13
|
export { EditorColumn, EditorColumn as column, EditorTable, EditorTable as Table, GridEditorColumn, GridEditorColumn as GridColumn, GridEditorTable, GridEditorTable as GridTable, };
|
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
import { cn } from "./utils";
|
|
6
6
|
import type * as Mdast from "mdast";
|
|
7
7
|
import ColumnEditor from "./editor-column.svelte";
|
|
8
|
+
import type { MiraExtension } from "../extensions";
|
|
8
9
|
import type { MarkdownTableDragSource } from "./markdown-table-dnd";
|
|
9
10
|
import {
|
|
10
11
|
dropIndicatorClasses,
|
|
@@ -14,6 +15,7 @@
|
|
|
14
15
|
|
|
15
16
|
type Props = {
|
|
16
17
|
node: Mdast.Nodes;
|
|
18
|
+
extensions?: MiraExtension[];
|
|
17
19
|
rowIndex: number;
|
|
18
20
|
colIndex: number;
|
|
19
21
|
sourceRowIndex?: number;
|
|
@@ -33,6 +35,7 @@
|
|
|
33
35
|
|
|
34
36
|
let {
|
|
35
37
|
node,
|
|
38
|
+
extensions = [],
|
|
36
39
|
rowIndex,
|
|
37
40
|
colIndex,
|
|
38
41
|
sourceRowIndex = rowIndex,
|
|
@@ -109,6 +112,7 @@
|
|
|
109
112
|
)}
|
|
110
113
|
>
|
|
111
114
|
<ColumnEditor
|
|
115
|
+
{extensions}
|
|
112
116
|
{node}
|
|
113
117
|
{onContentChange}
|
|
114
118
|
{readonly}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import type * as Mdast from "mdast";
|
|
2
|
+
import type { MiraExtension } from "../extensions";
|
|
2
3
|
import type { MarkdownTableDragSource } from "./markdown-table-dnd";
|
|
3
4
|
type Props = {
|
|
4
5
|
node: Mdast.Nodes;
|
|
6
|
+
extensions?: MiraExtension[];
|
|
5
7
|
rowIndex: number;
|
|
6
8
|
colIndex: number;
|
|
7
9
|
sourceRowIndex?: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"markdown-table-data-cell.svelte.d.ts","sourceRoot":"","sources":["../../src/tables/markdown-table-data-cell.svelte.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AAEpC,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAQlE,KAAK,KAAK,GAAG;IACX,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,uBAAuB,GAAG,IAAI,CAAC;IAC3C,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,eAAe,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,WAAW,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;IACzC,WAAW,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;IACzC,aAAa,EAAE,MAAM,IAAI,CAAC;CAC3B,CAAC;
|
|
1
|
+
{"version":3,"file":"markdown-table-data-cell.svelte.d.ts","sourceRoot":"","sources":["../../src/tables/markdown-table-data-cell.svelte.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AAEpC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAQlE,KAAK,KAAK,GAAG;IACX,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC;IAClB,UAAU,CAAC,EAAE,aAAa,EAAE,CAAC;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,uBAAuB,GAAG,IAAI,CAAC;IAC3C,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,eAAe,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,WAAW,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;IACzC,WAAW,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;IACzC,aAAa,EAAE,MAAM,IAAI,CAAC;CAC3B,CAAC;AA0FJ,QAAA,MAAM,qBAAqB,2CAAwC,CAAC;AACpE,KAAK,qBAAqB,GAAG,UAAU,CAAC,OAAO,qBAAqB,CAAC,CAAC;AACtE,eAAe,qBAAqB,CAAC"}
|
|
@@ -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
|
}
|
|
@@ -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.0
|
|
3
|
+
"version": "0.1.0",
|
|
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,7 +17,11 @@
|
|
|
17
17
|
"types": "./dist/index.d.ts",
|
|
18
18
|
"files": [
|
|
19
19
|
"CHANGELOG.md",
|
|
20
|
-
"
|
|
20
|
+
"inline-links-NOTICE.md",
|
|
21
|
+
"dist",
|
|
22
|
+
"!dist/**/*.test.*",
|
|
23
|
+
"!dist/**/*.spec.*",
|
|
24
|
+
"!dist/**/__tests__/**"
|
|
21
25
|
],
|
|
22
26
|
"exports": {
|
|
23
27
|
".": {
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"code-mirror.test.d.ts","sourceRoot":"","sources":["../../src/core/code-mirror.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
// @vitest-environment jsdom
|
|
2
|
-
import { describe, expect, it } from "vitest";
|
|
3
|
-
import { EditorView } from "@codemirror/view";
|
|
4
|
-
import { defineMiraExtension } from "../extensions";
|
|
5
|
-
import { createBaseCodeMirrorExtensions } from "../internal/codemirror/base";
|
|
6
|
-
import { createMiraCodeMirrorExtensions } from "./code-mirror";
|
|
7
|
-
const runtimeContext = (view) => ({
|
|
8
|
-
view,
|
|
9
|
-
mode: "source",
|
|
10
|
-
getValue: () => view.state.doc.toString(),
|
|
11
|
-
setValue: (value) => {
|
|
12
|
-
view.dispatch({
|
|
13
|
-
changes: { from: 0, to: view.state.doc.length, insert: value },
|
|
14
|
-
});
|
|
15
|
-
},
|
|
16
|
-
focus: () => view.focus(),
|
|
17
|
-
insertMarkdown: () => undefined,
|
|
18
|
-
});
|
|
19
|
-
describe("createMiraCodeMirrorExtensions", () => {
|
|
20
|
-
it("includes the base CodeMirror layer by default", () => {
|
|
21
|
-
const parent = document.createElement("div");
|
|
22
|
-
const view = new EditorView({
|
|
23
|
-
extensions: createMiraCodeMirrorExtensions({
|
|
24
|
-
mode: "source",
|
|
25
|
-
runtimeContext,
|
|
26
|
-
}),
|
|
27
|
-
parent,
|
|
28
|
-
});
|
|
29
|
-
expect(view.dom.classList.contains("mira-codemirror")).toBe(true);
|
|
30
|
-
expect(view.contentDOM.getAttribute("aria-label")).toBe("Markdown editor");
|
|
31
|
-
view.destroy();
|
|
32
|
-
});
|
|
33
|
-
it("omits only the base layer while retaining portable contributions", () => {
|
|
34
|
-
const contribution = defineMiraExtension({
|
|
35
|
-
name: "consumer-authoring",
|
|
36
|
-
codeMirror: () => EditorView.editorAttributes.of({ class: "consumer-authoring" }),
|
|
37
|
-
slashCommands: [
|
|
38
|
-
{
|
|
39
|
-
id: "consumer-command",
|
|
40
|
-
label: "Consumer command",
|
|
41
|
-
insert: "Consumer command",
|
|
42
|
-
},
|
|
43
|
-
],
|
|
44
|
-
});
|
|
45
|
-
const shared = {
|
|
46
|
-
mode: "source",
|
|
47
|
-
extensions: [contribution],
|
|
48
|
-
blockControls: true,
|
|
49
|
-
runtimeContext,
|
|
50
|
-
};
|
|
51
|
-
const withBase = createMiraCodeMirrorExtensions(shared);
|
|
52
|
-
const withoutBase = createMiraCodeMirrorExtensions({
|
|
53
|
-
...shared,
|
|
54
|
-
includeBaseExtensions: false,
|
|
55
|
-
});
|
|
56
|
-
expect(withBase).toHaveLength(withoutBase.length + createBaseCodeMirrorExtensions().length);
|
|
57
|
-
const parent = document.createElement("div");
|
|
58
|
-
const view = new EditorView({
|
|
59
|
-
doc: "/",
|
|
60
|
-
extensions: withoutBase,
|
|
61
|
-
parent,
|
|
62
|
-
});
|
|
63
|
-
expect(view.dom.classList.contains("mira-codemirror")).toBe(false);
|
|
64
|
-
expect(view.dom.classList.contains("consumer-authoring")).toBe(true);
|
|
65
|
-
expect(parent.querySelector(".mira-block-controls-gutter")).not.toBeNull();
|
|
66
|
-
view.destroy();
|
|
67
|
-
});
|
|
68
|
-
});
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"images.test.d.ts","sourceRoot":"","sources":["../../src/core/images.test.ts"],"names":[],"mappings":""}
|