@lapismd/mira 0.0.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 +7 -0
- package/LICENSE.md +4 -0
- package/README.md +52 -0
- package/dist/codemirror.d.ts +5 -0
- package/dist/codemirror.d.ts.map +1 -0
- package/dist/codemirror.js +4 -0
- package/dist/core/code-mirror.d.ts +29 -0
- package/dist/core/code-mirror.d.ts.map +1 -0
- package/dist/core/code-mirror.js +74 -0
- package/dist/core/code-mirror.test.d.ts +2 -0
- package/dist/core/code-mirror.test.d.ts.map +1 -0
- package/dist/core/code-mirror.test.js +68 -0
- package/dist/core/images.d.ts +30 -0
- package/dist/core/images.d.ts.map +1 -0
- package/dist/core/images.js +226 -0
- package/dist/core/images.test.d.ts +2 -0
- package/dist/core/images.test.d.ts.map +1 -0
- package/dist/core/images.test.js +109 -0
- package/dist/core/index.d.ts +69 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +138 -0
- package/dist/core/index.test.d.ts +2 -0
- package/dist/core/index.test.d.ts.map +1 -0
- package/dist/core/index.test.js +11 -0
- package/dist/core/markdown-actions.d.ts +11 -0
- package/dist/core/markdown-actions.d.ts.map +1 -0
- package/dist/core/markdown-actions.js +603 -0
- package/dist/core/markdown-actions.test.d.ts +2 -0
- package/dist/core/markdown-actions.test.d.ts.map +1 -0
- package/dist/core/markdown-actions.test.js +182 -0
- package/dist/extensions/doodle-dividers.d.ts +44 -0
- package/dist/extensions/doodle-dividers.d.ts.map +1 -0
- package/dist/extensions/doodle-dividers.js +909 -0
- package/dist/extensions/doodle-dividers.test.d.ts +2 -0
- package/dist/extensions/doodle-dividers.test.d.ts.map +1 -0
- package/dist/extensions/doodle-dividers.test.js +296 -0
- package/dist/extensions/index.d.ts +342 -0
- package/dist/extensions/index.d.ts.map +1 -0
- package/dist/extensions/index.js +279 -0
- package/dist/extensions/index.test.d.ts +2 -0
- package/dist/extensions/index.test.d.ts.map +1 -0
- package/dist/extensions/index.test.js +283 -0
- package/dist/extensions/selection-toolbar.d.ts +6 -0
- package/dist/extensions/selection-toolbar.d.ts.map +1 -0
- package/dist/extensions/selection-toolbar.js +14 -0
- package/dist/index.d.ts +9 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +5 -0
- package/dist/index.test.d.ts +2 -0
- package/dist/index.test.d.ts.map +1 -0
- package/dist/index.test.js +64 -0
- package/dist/internal/appearance-context.d.ts +12 -0
- package/dist/internal/appearance-context.d.ts.map +1 -0
- package/dist/internal/appearance-context.js +31 -0
- package/dist/internal/appearance-context.test.d.ts +2 -0
- package/dist/internal/appearance-context.test.d.ts.map +1 -0
- package/dist/internal/appearance-context.test.js +31 -0
- package/dist/internal/codemirror/base/index.d.ts +24 -0
- package/dist/internal/codemirror/base/index.d.ts.map +1 -0
- package/dist/internal/codemirror/base/index.js +489 -0
- package/dist/internal/codemirror/base/index.test.d.ts +2 -0
- package/dist/internal/codemirror/base/index.test.d.ts.map +1 -0
- package/dist/internal/codemirror/base/index.test.js +303 -0
- package/dist/internal/codemirror/base/search-panel.svelte +590 -0
- package/dist/internal/codemirror/base/search-panel.svelte.d.ts +8 -0
- package/dist/internal/codemirror/base/search-panel.svelte.d.ts.map +1 -0
- package/dist/internal/codemirror/base/search.d.ts +46 -0
- package/dist/internal/codemirror/base/search.d.ts.map +1 -0
- package/dist/internal/codemirror/base/search.js +58 -0
- package/dist/internal/codemirror/base/search.test.d.ts +2 -0
- package/dist/internal/codemirror/base/search.test.d.ts.map +1 -0
- package/dist/internal/codemirror/base/search.test.js +155 -0
- package/dist/internal/codemirror/base/selection-toolbar.d.ts +21 -0
- package/dist/internal/codemirror/base/selection-toolbar.d.ts.map +1 -0
- package/dist/internal/codemirror/base/selection-toolbar.js +306 -0
- package/dist/internal/codemirror/base/selection-toolbar.test.d.ts +2 -0
- package/dist/internal/codemirror/base/selection-toolbar.test.d.ts.map +1 -0
- package/dist/internal/codemirror/base/selection-toolbar.test.js +149 -0
- package/dist/internal/codemirror/base/slash-commands.d.ts +61 -0
- package/dist/internal/codemirror/base/slash-commands.d.ts.map +1 -0
- package/dist/internal/codemirror/base/slash-commands.js +463 -0
- package/dist/internal/codemirror/markdown/authoring.d.ts +9 -0
- package/dist/internal/codemirror/markdown/authoring.d.ts.map +1 -0
- package/dist/internal/codemirror/markdown/authoring.js +14 -0
- package/dist/internal/codemirror/markdown/authoring.test.d.ts +2 -0
- package/dist/internal/codemirror/markdown/authoring.test.d.ts.map +1 -0
- package/dist/internal/codemirror/markdown/authoring.test.js +222 -0
- package/dist/internal/codemirror/markdown/completion.d.ts +12 -0
- package/dist/internal/codemirror/markdown/completion.d.ts.map +1 -0
- package/dist/internal/codemirror/markdown/completion.js +302 -0
- package/dist/internal/codemirror/markdown/directives.d.ts +3 -0
- package/dist/internal/codemirror/markdown/directives.d.ts.map +1 -0
- package/dist/internal/codemirror/markdown/directives.js +154 -0
- package/dist/internal/codemirror/markdown/grid-table.d.ts +3 -0
- package/dist/internal/codemirror/markdown/grid-table.d.ts.map +1 -0
- package/dist/internal/codemirror/markdown/grid-table.js +129 -0
- package/dist/internal/codemirror/markdown/index.d.ts +16 -0
- package/dist/internal/codemirror/markdown/index.d.ts.map +1 -0
- package/dist/internal/codemirror/markdown/index.js +125 -0
- package/dist/internal/codemirror/markdown/index.test.d.ts +2 -0
- package/dist/internal/codemirror/markdown/index.test.d.ts.map +1 -0
- package/dist/internal/codemirror/markdown/index.test.js +158 -0
- package/dist/internal/codemirror/markdown/input-handlers.d.ts +4 -0
- package/dist/internal/codemirror/markdown/input-handlers.d.ts.map +1 -0
- package/dist/internal/codemirror/markdown/input-handlers.js +56 -0
- package/dist/internal/codemirror/markdown/lapis-inline.d.ts +11 -0
- package/dist/internal/codemirror/markdown/lapis-inline.d.ts.map +1 -0
- package/dist/internal/codemirror/markdown/lapis-inline.js +189 -0
- package/dist/internal/codemirror/markdown/latex.d.ts +5 -0
- package/dist/internal/codemirror/markdown/latex.d.ts.map +1 -0
- package/dist/internal/codemirror/markdown/latex.js +97 -0
- package/dist/internal/codemirror/markdown/list-after-lazy-quote.d.ts +10 -0
- package/dist/internal/codemirror/markdown/list-after-lazy-quote.d.ts.map +1 -0
- package/dist/internal/codemirror/markdown/list-after-lazy-quote.js +28 -0
- package/dist/internal/codemirror/markdown/paste.d.ts +5 -0
- package/dist/internal/codemirror/markdown/paste.d.ts.map +1 -0
- package/dist/internal/codemirror/markdown/paste.js +84 -0
- package/dist/internal/codemirror/markdown/showcase-fixture.test.d.ts +2 -0
- package/dist/internal/codemirror/markdown/showcase-fixture.test.d.ts.map +1 -0
- package/dist/internal/codemirror/markdown/showcase-fixture.test.js +50 -0
- package/dist/internal/codemirror/markdown/types.d.ts +6 -0
- package/dist/internal/codemirror/rich/block-controls.d.ts +4 -0
- package/dist/internal/codemirror/rich/block-controls.d.ts.map +1 -0
- package/dist/internal/codemirror/rich/block-controls.js +1419 -0
- package/dist/internal/codemirror/rich/block-controls.test.d.ts +2 -0
- package/dist/internal/codemirror/rich/block-controls.test.d.ts.map +1 -0
- package/dist/internal/codemirror/rich/block-controls.test.js +401 -0
- package/dist/internal/codemirror/rich/block-ranges.d.ts +22 -0
- package/dist/internal/codemirror/rich/block-ranges.d.ts.map +1 -0
- package/dist/internal/codemirror/rich/block-ranges.js +736 -0
- package/dist/internal/codemirror/rich/block-ranges.test.d.ts +2 -0
- package/dist/internal/codemirror/rich/block-ranges.test.d.ts.map +1 -0
- package/dist/internal/codemirror/rich/block-ranges.test.js +310 -0
- package/dist/internal/codemirror/rich/block-toolbar.d.ts +25 -0
- package/dist/internal/codemirror/rich/block-toolbar.d.ts.map +1 -0
- package/dist/internal/codemirror/rich/block-toolbar.js +506 -0
- package/dist/internal/codemirror/rich/block-toolbar.test.d.ts +2 -0
- package/dist/internal/codemirror/rich/block-toolbar.test.d.ts.map +1 -0
- package/dist/internal/codemirror/rich/block-toolbar.test.js +178 -0
- package/dist/internal/codemirror/rich/decorations/fold-indicators.d.ts +7 -0
- package/dist/internal/codemirror/rich/decorations/fold-indicators.d.ts.map +1 -0
- package/dist/internal/codemirror/rich/decorations/fold-indicators.js +122 -0
- package/dist/internal/codemirror/rich/decorations/fold-indicators.test.d.ts +2 -0
- package/dist/internal/codemirror/rich/decorations/fold-indicators.test.d.ts.map +1 -0
- package/dist/internal/codemirror/rich/decorations/fold-indicators.test.js +8 -0
- package/dist/internal/codemirror/rich/decorations/heading-gutter.d.ts +3 -0
- package/dist/internal/codemirror/rich/decorations/heading-gutter.d.ts.map +1 -0
- package/dist/internal/codemirror/rich/decorations/heading-gutter.js +43 -0
- package/dist/internal/codemirror/rich/index.d.ts +17 -0
- package/dist/internal/codemirror/rich/index.d.ts.map +1 -0
- package/dist/internal/codemirror/rich/index.js +727 -0
- package/dist/internal/codemirror/rich/index.test.d.ts +2 -0
- package/dist/internal/codemirror/rich/index.test.d.ts.map +1 -0
- package/dist/internal/codemirror/rich/index.test.js +544 -0
- package/dist/internal/codemirror/rich/theme.d.ts +2 -0
- package/dist/internal/codemirror/rich/theme.d.ts.map +1 -0
- package/dist/internal/codemirror/rich/theme.js +268 -0
- package/dist/internal/codemirror/rich/types.d.ts +22 -0
- package/dist/internal/codemirror/rich/types.d.ts.map +1 -0
- package/dist/internal/codemirror/rich/types.js +1 -0
- package/dist/internal/codemirror/rich/utils/activation.d.ts +3 -0
- package/dist/internal/codemirror/rich/utils/activation.d.ts.map +1 -0
- package/dist/internal/codemirror/rich/utils/activation.js +27 -0
- package/dist/internal/codemirror/rich/utils/code-block-lines.d.ts +8 -0
- package/dist/internal/codemirror/rich/utils/code-block-lines.d.ts.map +1 -0
- package/dist/internal/codemirror/rich/utils/code-block-lines.js +143 -0
- package/dist/internal/codemirror/rich/utils/code-block-lines.test.d.ts +2 -0
- package/dist/internal/codemirror/rich/utils/code-block-lines.test.d.ts.map +1 -0
- package/dist/internal/codemirror/rich/utils/code-block-lines.test.js +82 -0
- package/dist/internal/codemirror/rich/utils/fenced-code.d.ts +4 -0
- package/dist/internal/codemirror/rich/utils/fenced-code.d.ts.map +1 -0
- package/dist/internal/codemirror/rich/utils/fenced-code.js +25 -0
- package/dist/internal/codemirror/rich/utils/fenced-code.test.d.ts +2 -0
- package/dist/internal/codemirror/rich/utils/fenced-code.test.d.ts.map +1 -0
- package/dist/internal/codemirror/rich/utils/fenced-code.test.js +12 -0
- package/dist/internal/codemirror/rich/utils/headings.d.ts +5 -0
- package/dist/internal/codemirror/rich/utils/headings.d.ts.map +1 -0
- package/dist/internal/codemirror/rich/utils/headings.js +20 -0
- package/dist/internal/codemirror/rich/utils/headings.test.d.ts +2 -0
- package/dist/internal/codemirror/rich/utils/headings.test.d.ts.map +1 -0
- package/dist/internal/codemirror/rich/utils/headings.test.js +27 -0
- package/dist/internal/codemirror/rich/utils/height-estimates.d.ts +2 -0
- package/dist/internal/codemirror/rich/utils/height-estimates.d.ts.map +1 -0
- package/dist/internal/codemirror/rich/utils/height-estimates.js +82 -0
- package/dist/internal/codemirror/rich/utils/height-estimates.test.d.ts +2 -0
- package/dist/internal/codemirror/rich/utils/height-estimates.test.d.ts.map +1 -0
- package/dist/internal/codemirror/rich/utils/height-estimates.test.js +10 -0
- package/dist/internal/codemirror/rich/utils/images.d.ts +9 -0
- package/dist/internal/codemirror/rich/utils/images.d.ts.map +1 -0
- package/dist/internal/codemirror/rich/utils/images.js +103 -0
- package/dist/internal/codemirror/rich/utils/images.test.d.ts +2 -0
- package/dist/internal/codemirror/rich/utils/images.test.d.ts.map +1 -0
- package/dist/internal/codemirror/rich/utils/images.test.js +37 -0
- package/dist/internal/codemirror/rich/utils/indent.d.ts +38 -0
- package/dist/internal/codemirror/rich/utils/indent.d.ts.map +1 -0
- package/dist/internal/codemirror/rich/utils/indent.js +435 -0
- package/dist/internal/codemirror/rich/utils/indent.test.d.ts +2 -0
- package/dist/internal/codemirror/rich/utils/indent.test.d.ts.map +1 -0
- package/dist/internal/codemirror/rich/utils/indent.test.js +169 -0
- package/dist/internal/codemirror/rich/utils/inline-code.d.ts +7 -0
- package/dist/internal/codemirror/rich/utils/inline-code.d.ts.map +1 -0
- package/dist/internal/codemirror/rich/utils/inline-code.js +43 -0
- package/dist/internal/codemirror/rich/utils/inline-math.d.ts +6 -0
- package/dist/internal/codemirror/rich/utils/inline-math.d.ts.map +1 -0
- package/dist/internal/codemirror/rich/utils/inline-math.js +45 -0
- package/dist/internal/codemirror/rich/utils/inline-math.test.d.ts +2 -0
- package/dist/internal/codemirror/rich/utils/inline-math.test.d.ts.map +1 -0
- package/dist/internal/codemirror/rich/utils/inline-math.test.js +15 -0
- package/dist/internal/codemirror/rich/utils/links.d.ts +6 -0
- package/dist/internal/codemirror/rich/utils/links.d.ts.map +1 -0
- package/dist/internal/codemirror/rich/utils/links.js +36 -0
- package/dist/internal/codemirror/rich/utils/links.test.d.ts +2 -0
- package/dist/internal/codemirror/rich/utils/links.test.d.ts.map +1 -0
- package/dist/internal/codemirror/rich/utils/links.test.js +28 -0
- package/dist/internal/codemirror/rich/utils/list-callouts.d.ts +15 -0
- package/dist/internal/codemirror/rich/utils/list-callouts.d.ts.map +1 -0
- package/dist/internal/codemirror/rich/utils/list-callouts.js +41 -0
- package/dist/internal/codemirror/rich/utils/list-callouts.test.d.ts +2 -0
- package/dist/internal/codemirror/rich/utils/list-callouts.test.d.ts.map +1 -0
- package/dist/internal/codemirror/rich/utils/list-callouts.test.js +47 -0
- package/dist/internal/codemirror/rich/utils/measured-indent.d.ts +18 -0
- package/dist/internal/codemirror/rich/utils/measured-indent.d.ts.map +1 -0
- package/dist/internal/codemirror/rich/utils/measured-indent.js +419 -0
- package/dist/internal/codemirror/rich/utils/measured-indent.test.d.ts +2 -0
- package/dist/internal/codemirror/rich/utils/measured-indent.test.d.ts.map +1 -0
- package/dist/internal/codemirror/rich/utils/measured-indent.test.js +102 -0
- package/dist/internal/codemirror/rich/utils/ranges.d.ts +13 -0
- package/dist/internal/codemirror/rich/utils/ranges.d.ts.map +1 -0
- package/dist/internal/codemirror/rich/utils/ranges.js +42 -0
- package/dist/internal/codemirror/rich/utils/ranges.test.d.ts +2 -0
- package/dist/internal/codemirror/rich/utils/ranges.test.d.ts.map +1 -0
- package/dist/internal/codemirror/rich/utils/ranges.test.js +22 -0
- package/dist/internal/codemirror/rich/utils/tasks.d.ts +11 -0
- package/dist/internal/codemirror/rich/utils/tasks.d.ts.map +1 -0
- package/dist/internal/codemirror/rich/utils/tasks.js +23 -0
- package/dist/internal/codemirror/rich/utils/tasks.test.d.ts +2 -0
- package/dist/internal/codemirror/rich/utils/tasks.test.d.ts.map +1 -0
- package/dist/internal/codemirror/rich/utils/tasks.test.js +57 -0
- package/dist/internal/codemirror/rich/widgets/list-callout.d.ts +19 -0
- package/dist/internal/codemirror/rich/widgets/list-callout.d.ts.map +1 -0
- package/dist/internal/codemirror/rich/widgets/list-callout.js +58 -0
- package/dist/internal/codemirror/rich/widgets/preview-widgets.d.ts +50 -0
- package/dist/internal/codemirror/rich/widgets/preview-widgets.d.ts.map +1 -0
- package/dist/internal/codemirror/rich/widgets/preview-widgets.js +311 -0
- package/dist/internal/codemirror/rich/widgets/source-toggle.d.ts +4 -0
- package/dist/internal/codemirror/rich/widgets/source-toggle.d.ts.map +1 -0
- package/dist/internal/codemirror/rich/widgets/source-toggle.js +47 -0
- package/dist/internal/codemirror/rich/widgets/task-checkbox.d.ts +14 -0
- package/dist/internal/codemirror/rich/widgets/task-checkbox.d.ts.map +1 -0
- package/dist/internal/codemirror/rich/widgets/task-checkbox.js +54 -0
- package/dist/internal/doodle-dividers.d.ts +62 -0
- package/dist/internal/doodle-dividers.d.ts.map +1 -0
- package/dist/internal/doodle-dividers.js +103 -0
- package/dist/internal/task-states.d.ts +73 -0
- package/dist/internal/task-states.d.ts.map +1 -0
- package/dist/internal/task-states.js +27 -0
- package/dist/internal/task-states.test.d.ts +2 -0
- package/dist/internal/task-states.test.d.ts.map +1 -0
- package/dist/internal/task-states.test.js +36 -0
- package/dist/mira-code-editor.css +222 -0
- package/dist/mira-code-editor.d.ts +40 -0
- package/dist/mira-code-editor.d.ts.map +1 -0
- package/dist/mira-code-editor.js +1 -0
- package/dist/mira-code-editor.svelte +181 -0
- package/dist/mira-code-editor.svelte.d.ts +17 -0
- package/dist/mira-code-editor.svelte.d.ts.map +1 -0
- package/dist/mira-code-editor.test.d.ts +2 -0
- package/dist/mira-code-editor.test.d.ts.map +1 -0
- package/dist/mira-code-editor.test.js +93 -0
- package/dist/mira.svelte +581 -0
- package/dist/mira.svelte.d.ts +23 -0
- package/dist/mira.svelte.d.ts.map +1 -0
- package/dist/mode-position.d.ts +18 -0
- package/dist/mode-position.d.ts.map +1 -0
- package/dist/mode-position.js +99 -0
- package/dist/mode-position.test.d.ts +2 -0
- package/dist/mode-position.test.d.ts.map +1 -0
- package/dist/mode-position.test.js +60 -0
- package/dist/preview/adobe-gridtables.d.ts +11 -0
- package/dist/preview/code-language.d.ts +2 -0
- package/dist/preview/code-language.d.ts.map +1 -0
- package/dist/preview/code-language.js +58 -0
- package/dist/preview/code-language.test.d.ts +2 -0
- package/dist/preview/code-language.test.d.ts.map +1 -0
- package/dist/preview/code-language.test.js +12 -0
- package/dist/preview/components/callout.svelte +123 -0
- package/dist/preview/components/callout.svelte.d.ts +17 -0
- package/dist/preview/components/callout.svelte.d.ts.map +1 -0
- package/dist/preview/components/checkbox.svelte +151 -0
- package/dist/preview/components/checkbox.svelte.d.ts +12 -0
- package/dist/preview/components/checkbox.svelte.d.ts.map +1 -0
- package/dist/preview/components/code.svelte +146 -0
- package/dist/preview/components/code.svelte.d.ts +12 -0
- package/dist/preview/components/code.svelte.d.ts.map +1 -0
- package/dist/preview/components/embed.svelte +236 -0
- package/dist/preview/components/embed.svelte.d.ts +14 -0
- package/dist/preview/components/embed.svelte.d.ts.map +1 -0
- package/dist/preview/components/embedded-markdown-preview.svelte +53 -0
- package/dist/preview/components/embedded-markdown-preview.svelte.d.ts +12 -0
- package/dist/preview/components/embedded-markdown-preview.svelte.d.ts.map +1 -0
- package/dist/preview/components/frontmatter-property-name-input.svelte +207 -0
- package/dist/preview/components/frontmatter-property-name-input.svelte.d.ts +14 -0
- package/dist/preview/components/frontmatter-property-name-input.svelte.d.ts.map +1 -0
- package/dist/preview/components/frontmatter-property-text-input.svelte +228 -0
- package/dist/preview/components/frontmatter-property-text-input.svelte.d.ts +13 -0
- package/dist/preview/components/frontmatter-property-text-input.svelte.d.ts.map +1 -0
- package/dist/preview/components/frontmatter-property-value-input.svelte +232 -0
- package/dist/preview/components/frontmatter-property-value-input.svelte.d.ts +13 -0
- package/dist/preview/components/frontmatter-property-value-input.svelte.d.ts.map +1 -0
- package/dist/preview/components/frontmatter-utils.d.ts +2 -0
- package/dist/preview/components/frontmatter-utils.d.ts.map +1 -0
- package/dist/preview/components/frontmatter-utils.js +1 -0
- package/dist/preview/components/frontmatter.svelte +857 -0
- package/dist/preview/components/frontmatter.svelte.d.ts +18 -0
- package/dist/preview/components/frontmatter.svelte.d.ts.map +1 -0
- package/dist/preview/components/icon.svelte +225 -0
- package/dist/preview/components/icon.svelte.d.ts +9 -0
- package/dist/preview/components/icon.svelte.d.ts.map +1 -0
- package/dist/preview/components/icon.test.d.ts +2 -0
- package/dist/preview/components/icon.test.d.ts.map +1 -0
- package/dist/preview/components/icon.test.js +20 -0
- package/dist/preview/components/image.svelte +266 -0
- package/dist/preview/components/image.svelte.d.ts +10 -0
- package/dist/preview/components/image.svelte.d.ts.map +1 -0
- package/dist/preview/components/link.svelte +382 -0
- package/dist/preview/components/link.svelte.d.ts +16 -0
- package/dist/preview/components/link.svelte.d.ts.map +1 -0
- package/dist/preview/components/list-callout-control.svelte +138 -0
- package/dist/preview/components/list-callout-control.svelte.d.ts +10 -0
- package/dist/preview/components/list-callout-control.svelte.d.ts.map +1 -0
- package/dist/preview/components/list-callout-marker.svelte +108 -0
- package/dist/preview/components/list-callout-marker.svelte.d.ts +15 -0
- package/dist/preview/components/list-callout-marker.svelte.d.ts.map +1 -0
- package/dist/preview/components/list-item.svelte +161 -0
- package/dist/preview/components/list-item.svelte.d.ts +11 -0
- package/dist/preview/components/list-item.svelte.d.ts.map +1 -0
- package/dist/preview/components/tag.svelte +18 -0
- package/dist/preview/components/tag.svelte.d.ts +10 -0
- package/dist/preview/components/tag.svelte.d.ts.map +1 -0
- package/dist/preview/components/task-checkbox-control.svelte +113 -0
- package/dist/preview/components/task-checkbox-control.svelte.d.ts +14 -0
- package/dist/preview/components/task-checkbox-control.svelte.d.ts.map +1 -0
- package/dist/preview/editable-markdown-preview/behavior.d.ts +6 -0
- package/dist/preview/editable-markdown-preview/behavior.d.ts.map +1 -0
- package/dist/preview/editable-markdown-preview/behavior.js +57 -0
- package/dist/preview/editable-markdown-preview/behavior.test.d.ts +2 -0
- package/dist/preview/editable-markdown-preview/behavior.test.d.ts.map +1 -0
- package/dist/preview/editable-markdown-preview/behavior.test.js +36 -0
- package/dist/preview/editable-markdown-preview/editable-markdown-surface.svelte +386 -0
- package/dist/preview/editable-markdown-preview/editable-markdown-surface.svelte.d.ts +35 -0
- package/dist/preview/editable-markdown-preview/editable-markdown-surface.svelte.d.ts.map +1 -0
- package/dist/preview/editable-markdown-preview/editor-surface.svelte +228 -0
- package/dist/preview/editable-markdown-preview/editor-surface.svelte.d.ts +22 -0
- package/dist/preview/editable-markdown-preview/editor-surface.svelte.d.ts.map +1 -0
- package/dist/preview/editable-markdown-preview/serialized-writer.d.ts +36 -0
- package/dist/preview/editable-markdown-preview/serialized-writer.d.ts.map +1 -0
- package/dist/preview/editable-markdown-preview/serialized-writer.js +109 -0
- package/dist/preview/editable-markdown-preview/serialized-writer.test.d.ts +2 -0
- package/dist/preview/editable-markdown-preview/serialized-writer.test.d.ts.map +1 -0
- package/dist/preview/editable-markdown-preview/serialized-writer.test.js +59 -0
- package/dist/preview/editable-markdown-preview.svelte +195 -0
- package/dist/preview/editable-markdown-preview.svelte.d.ts +37 -0
- package/dist/preview/editable-markdown-preview.svelte.d.ts.map +1 -0
- package/dist/preview/embed-target.d.ts +13 -0
- package/dist/preview/embed-target.d.ts.map +1 -0
- package/dist/preview/embed-target.js +133 -0
- package/dist/preview/embed-target.test.d.ts +2 -0
- package/dist/preview/embed-target.test.d.ts.map +1 -0
- package/dist/preview/embed-target.test.js +78 -0
- package/dist/preview/file-embed.svelte +56 -0
- package/dist/preview/file-embed.svelte.d.ts +32 -0
- package/dist/preview/file-embed.svelte.d.ts.map +1 -0
- package/dist/preview/frontmatter/controller.svelte.d.ts +58 -0
- package/dist/preview/frontmatter/controller.svelte.d.ts.map +1 -0
- package/dist/preview/frontmatter/controller.svelte.js +195 -0
- package/dist/preview/frontmatter/defaults.d.ts +3 -0
- package/dist/preview/frontmatter/defaults.d.ts.map +1 -0
- package/dist/preview/frontmatter/defaults.js +32 -0
- package/dist/preview/frontmatter/frontmatter.test.d.ts +2 -0
- package/dist/preview/frontmatter/frontmatter.test.d.ts.map +1 -0
- package/dist/preview/frontmatter/frontmatter.test.js +190 -0
- package/dist/preview/frontmatter/index.d.ts +12 -0
- package/dist/preview/frontmatter/index.d.ts.map +1 -0
- package/dist/preview/frontmatter/index.js +11 -0
- package/dist/preview/frontmatter/manager.d.ts +28 -0
- package/dist/preview/frontmatter/manager.d.ts.map +1 -0
- package/dist/preview/frontmatter/manager.js +46 -0
- package/dist/preview/frontmatter/parse.d.ts +4 -0
- package/dist/preview/frontmatter/parse.d.ts.map +1 -0
- package/dist/preview/frontmatter/parse.js +49 -0
- package/dist/preview/frontmatter/predicates.d.ts +3 -0
- package/dist/preview/frontmatter/predicates.d.ts.map +1 -0
- package/dist/preview/frontmatter/predicates.js +7 -0
- package/dist/preview/frontmatter/properties.d.ts +13 -0
- package/dist/preview/frontmatter/properties.d.ts.map +1 -0
- package/dist/preview/frontmatter/properties.js +250 -0
- package/dist/preview/frontmatter/serialize.d.ts +3 -0
- package/dist/preview/frontmatter/serialize.d.ts.map +1 -0
- package/dist/preview/frontmatter/serialize.js +10 -0
- package/dist/preview/frontmatter/suggestions.d.ts +11 -0
- package/dist/preview/frontmatter/suggestions.d.ts.map +1 -0
- package/dist/preview/frontmatter/suggestions.js +91 -0
- package/dist/preview/frontmatter/suggestions.test.d.ts +2 -0
- package/dist/preview/frontmatter/suggestions.test.d.ts.map +1 -0
- package/dist/preview/frontmatter/suggestions.test.js +45 -0
- package/dist/preview/frontmatter/types.d.ts +66 -0
- package/dist/preview/frontmatter/types.d.ts.map +1 -0
- package/dist/preview/frontmatter/types.js +27 -0
- package/dist/preview/frontmatter/values.d.ts +5 -0
- package/dist/preview/frontmatter/values.d.ts.map +1 -0
- package/dist/preview/frontmatter/values.js +96 -0
- package/dist/preview/frontmatter/widgets.d.ts +9 -0
- package/dist/preview/frontmatter/widgets.d.ts.map +1 -0
- package/dist/preview/frontmatter/widgets.js +104 -0
- package/dist/preview/index.d.ts +18 -0
- package/dist/preview/index.d.ts.map +1 -0
- package/dist/preview/index.js +15 -0
- package/dist/preview/markdown-embed.svelte +80 -0
- package/dist/preview/markdown-embed.svelte.d.ts +27 -0
- package/dist/preview/markdown-embed.svelte.d.ts.map +1 -0
- package/dist/preview/markdown-outline.svelte +256 -0
- package/dist/preview/markdown-outline.svelte.d.ts +15 -0
- package/dist/preview/markdown-outline.svelte.d.ts.map +1 -0
- package/dist/preview/markdown-preview.svelte +500 -0
- package/dist/preview/markdown-preview.svelte.d.ts +30 -0
- package/dist/preview/markdown-preview.svelte.d.ts.map +1 -0
- package/dist/preview/note-link.svelte +78 -0
- package/dist/preview/note-link.svelte.d.ts +25 -0
- package/dist/preview/note-link.svelte.d.ts.map +1 -0
- package/dist/preview/outline.d.ts +16 -0
- package/dist/preview/outline.d.ts.map +1 -0
- package/dist/preview/outline.js +54 -0
- package/dist/preview/outline.test.d.ts +2 -0
- package/dist/preview/outline.test.d.ts.map +1 -0
- package/dist/preview/outline.test.js +98 -0
- package/dist/preview/portable-surfaces.test.d.ts +2 -0
- package/dist/preview/portable-surfaces.test.d.ts.map +1 -0
- package/dist/preview/portable-surfaces.test.js +482 -0
- package/dist/preview/preview.test.d.ts +2 -0
- package/dist/preview/preview.test.d.ts.map +1 -0
- package/dist/preview/preview.test.js +124 -0
- package/dist/preview/rehype-code-context.d.ts +5 -0
- package/dist/preview/rehype-code-context.d.ts.map +1 -0
- package/dist/preview/rehype-code-context.js +17 -0
- package/dist/preview/rehype-highlight-lines.d.ts +9 -0
- package/dist/preview/rehype-highlight-lines.d.ts.map +1 -0
- package/dist/preview/rehype-highlight-lines.js +257 -0
- package/dist/preview/rehype-table-spans.d.ts +4 -0
- package/dist/preview/rehype-table-spans.d.ts.map +1 -0
- package/dist/preview/rehype-table-spans.js +120 -0
- package/dist/preview/remark/callouts.d.ts +4 -0
- package/dist/preview/remark/callouts.d.ts.map +1 -0
- package/dist/preview/remark/callouts.js +81 -0
- package/dist/preview/remark/callouts.test.d.ts +2 -0
- package/dist/preview/remark/callouts.test.d.ts.map +1 -0
- package/dist/preview/remark/callouts.test.js +23 -0
- package/dist/preview/remark/custom-checklists.d.ts +25 -0
- package/dist/preview/remark/custom-checklists.d.ts.map +1 -0
- package/dist/preview/remark/custom-checklists.js +204 -0
- package/dist/preview/remark/custom-checklists.test.d.ts +2 -0
- package/dist/preview/remark/custom-checklists.test.d.ts.map +1 -0
- package/dist/preview/remark/custom-checklists.test.js +51 -0
- package/dist/preview/remark/external-links.d.ts +4 -0
- package/dist/preview/remark/external-links.d.ts.map +1 -0
- package/dist/preview/remark/external-links.js +34 -0
- package/dist/preview/remark/hast.d.ts +6 -0
- package/dist/preview/remark/hast.d.ts.map +1 -0
- package/dist/preview/remark/hast.js +60 -0
- package/dist/preview/remark/headings.d.ts +8 -0
- package/dist/preview/remark/headings.d.ts.map +1 -0
- package/dist/preview/remark/headings.js +40 -0
- package/dist/preview/remark/links.test.d.ts +2 -0
- package/dist/preview/remark/links.test.d.ts.map +1 -0
- package/dist/preview/remark/links.test.js +62 -0
- package/dist/preview/remark/list-callouts.d.ts +14 -0
- package/dist/preview/remark/list-callouts.d.ts.map +1 -0
- package/dist/preview/remark/list-callouts.js +91 -0
- package/dist/preview/remark/multimarkdown-table.d.ts +11 -0
- package/dist/preview/remark/multimarkdown-table.d.ts.map +1 -0
- package/dist/preview/remark/multimarkdown-table.js +138 -0
- package/dist/preview/remark/parity.test.d.ts +2 -0
- package/dist/preview/remark/parity.test.d.ts.map +1 -0
- package/dist/preview/remark/parity.test.js +105 -0
- package/dist/preview/remark/pathlink.d.ts +4 -0
- package/dist/preview/remark/pathlink.d.ts.map +1 -0
- package/dist/preview/remark/pathlink.js +26 -0
- package/dist/preview/remark/tags.d.ts +4 -0
- package/dist/preview/remark/tags.d.ts.map +1 -0
- package/dist/preview/remark/tags.js +22 -0
- package/dist/preview/remark/utils.d.ts +12 -0
- package/dist/preview/remark/utils.d.ts.map +1 -0
- package/dist/preview/remark/utils.js +74 -0
- package/dist/preview/remark/wikilink.d.ts +4 -0
- package/dist/preview/remark/wikilink.d.ts.map +1 -0
- package/dist/preview/remark/wikilink.js +23 -0
- package/dist/preview/remark.d.ts +12 -0
- package/dist/preview/remark.d.ts.map +1 -0
- package/dist/preview/remark.js +11 -0
- package/dist/preview/renderer/context.svelte.d.ts +37 -0
- package/dist/preview/renderer/context.svelte.d.ts.map +1 -0
- package/dist/preview/renderer/context.svelte.js +47 -0
- package/dist/preview/renderer/markdown.svelte +109 -0
- package/dist/preview/renderer/markdown.svelte.d.ts +28 -0
- package/dist/preview/renderer/markdown.svelte.d.ts.map +1 -0
- package/dist/preview/renderer/renderer.svelte +122 -0
- package/dist/preview/renderer/renderer.svelte.d.ts +9 -0
- package/dist/preview/renderer/renderer.svelte.d.ts.map +1 -0
- package/dist/preview/renderer/types.d.ts +20 -0
- package/dist/preview/renderer/types.d.ts.map +1 -0
- package/dist/preview/renderer/types.js +1 -0
- package/dist/preview/renderer/utils.d.ts +9 -0
- package/dist/preview/renderer/utils.d.ts.map +1 -0
- package/dist/preview/renderer/utils.js +135 -0
- package/dist/preview/styles/blockquotes-footnotes.css +78 -0
- package/dist/preview/styles/callouts.css +171 -0
- package/dist/preview/styles/code-katex.css +213 -0
- package/dist/preview/styles/editor-shared.css +132 -0
- package/dist/preview/styles/frontmatter-collapsible.css +94 -0
- package/dist/preview/styles/frontmatter-properties.css +532 -0
- package/dist/preview/styles/frontmatter-properties.test.d.ts +2 -0
- package/dist/preview/styles/frontmatter-properties.test.d.ts.map +1 -0
- package/dist/preview/styles/frontmatter-properties.test.js +57 -0
- package/dist/preview/styles/headings.css +183 -0
- package/dist/preview/styles/images.css +177 -0
- package/dist/preview/styles/links-embeds-tags.css +275 -0
- package/dist/preview/styles/list-callouts.css +281 -0
- package/dist/preview/styles/lists-tasks.css +638 -0
- package/dist/preview/styles/live-preview.css +58 -0
- package/dist/preview/styles/mermaid-highlight.css +112 -0
- package/dist/preview/styles/outline.css +219 -0
- package/dist/preview/styles/reading-mode.css +151 -0
- package/dist/preview/styles/source-mode.css +498 -0
- package/dist/preview/styles/source-mode.test.d.ts +2 -0
- package/dist/preview/styles/source-mode.test.d.ts.map +1 -0
- package/dist/preview/styles/source-mode.test.js +13 -0
- package/dist/preview/styles/surfaces.css +56 -0
- package/dist/preview/styles/tables.css +550 -0
- package/dist/preview/styles/tokens.css +269 -0
- package/dist/preview/styles/utilities.css +700 -0
- package/dist/preview/styles.css +22 -0
- package/dist/preview/test-utils.d.ts +3 -0
- package/dist/preview/test-utils.d.ts.map +1 -0
- package/dist/preview/test-utils.js +15 -0
- package/dist/styles.css +139 -0
- package/dist/tables/adobe-gridtables.d.ts +6 -0
- package/dist/tables/editor-column.svelte +136 -0
- package/dist/tables/editor-column.svelte.d.ts +12 -0
- package/dist/tables/editor-column.svelte.d.ts.map +1 -0
- package/dist/tables/editor-table.svelte +967 -0
- package/dist/tables/editor-table.svelte.d.ts +12 -0
- package/dist/tables/editor-table.svelte.d.ts.map +1 -0
- package/dist/tables/extension.d.ts +19 -0
- package/dist/tables/extension.d.ts.map +1 -0
- package/dist/tables/extension.js +189 -0
- package/dist/tables/extension.test.d.ts +2 -0
- package/dist/tables/extension.test.d.ts.map +1 -0
- package/dist/tables/extension.test.js +100 -0
- package/dist/tables/from-markdown.d.ts +1 -0
- package/dist/tables/from-markdown.js +378 -0
- package/dist/tables/grid-editor-column.svelte +127 -0
- package/dist/tables/grid-editor-column.svelte.d.ts +10 -0
- package/dist/tables/grid-editor-column.svelte.d.ts.map +1 -0
- package/dist/tables/grid-editor-column.test.d.ts +2 -0
- package/dist/tables/grid-editor-column.test.d.ts.map +1 -0
- package/dist/tables/grid-editor-column.test.js +27 -0
- package/dist/tables/grid-editor-table.svelte +1260 -0
- package/dist/tables/grid-editor-table.svelte.d.ts +12 -0
- package/dist/tables/grid-editor-table.svelte.d.ts.map +1 -0
- package/dist/tables/grid-table-extension.d.ts +14 -0
- package/dist/tables/grid-table-extension.d.ts.map +1 -0
- package/dist/tables/grid-table-extension.js +183 -0
- package/dist/tables/grid-table.d.ts +141 -0
- package/dist/tables/grid-table.d.ts.map +1 -0
- package/dist/tables/grid-table.js +425 -0
- package/dist/tables/grid-table.test.d.ts +2 -0
- package/dist/tables/grid-table.test.d.ts.map +1 -0
- package/dist/tables/grid-table.test.js +140 -0
- package/dist/tables/index.d.ts +13 -0
- package/dist/tables/index.d.ts.map +1 -0
- package/dist/tables/index.js +12 -0
- package/dist/tables/index.test.d.ts +2 -0
- package/dist/tables/index.test.d.ts.map +1 -0
- package/dist/tables/index.test.js +7 -0
- package/dist/tables/inline-editor-extensions.d.ts +3 -0
- package/dist/tables/inline-editor-extensions.d.ts.map +1 -0
- package/dist/tables/inline-editor-extensions.js +16 -0
- package/dist/tables/inline-editor-extensions.test.d.ts +2 -0
- package/dist/tables/inline-editor-extensions.test.d.ts.map +1 -0
- package/dist/tables/inline-editor-extensions.test.js +23 -0
- package/dist/tables/markdown-table-column-head.svelte +103 -0
- package/dist/tables/markdown-table-column-head.svelte.d.ts +14 -0
- package/dist/tables/markdown-table-column-head.svelte.d.ts.map +1 -0
- package/dist/tables/markdown-table-data-cell.svelte +121 -0
- package/dist/tables/markdown-table-data-cell.svelte.d.ts +24 -0
- package/dist/tables/markdown-table-data-cell.svelte.d.ts.map +1 -0
- package/dist/tables/markdown-table-dnd.d.ts +6 -0
- package/dist/tables/markdown-table-dnd.d.ts.map +1 -0
- package/dist/tables/markdown-table-dnd.js +6 -0
- package/dist/tables/markdown-table-row-gutter-cell.svelte +161 -0
- package/dist/tables/markdown-table-row-gutter-cell.svelte.d.ts +15 -0
- package/dist/tables/markdown-table-row-gutter-cell.svelte.d.ts.map +1 -0
- package/dist/tables/menu-component.svelte +109 -0
- package/dist/tables/menu-component.svelte.d.ts +8 -0
- package/dist/tables/menu-component.svelte.d.ts.map +1 -0
- package/dist/tables/menu.d.ts +21 -0
- package/dist/tables/menu.d.ts.map +1 -0
- package/dist/tables/menu.js +41 -0
- package/dist/tables/pipe-table.d.ts +4 -0
- package/dist/tables/pipe-table.d.ts.map +1 -0
- package/dist/tables/pipe-table.js +62 -0
- package/dist/tables/pipe-table.test.d.ts +2 -0
- package/dist/tables/pipe-table.test.d.ts.map +1 -0
- package/dist/tables/pipe-table.test.js +13 -0
- package/dist/tables/syntax.d.ts +1 -0
- package/dist/tables/syntax.js +436 -0
- package/dist/tables/table-line-scroll-sync.d.ts +5 -0
- package/dist/tables/table-line-scroll-sync.d.ts.map +1 -0
- package/dist/tables/table-line-scroll-sync.js +123 -0
- package/dist/tables/table-node.d.ts +92 -0
- package/dist/tables/table-node.d.ts.map +1 -0
- package/dist/tables/table-node.js +514 -0
- package/dist/tables/table-node.test.d.ts +2 -0
- package/dist/tables/table-node.test.d.ts.map +1 -0
- package/dist/tables/table-node.test.js +167 -0
- package/dist/tables/types.d.ts +25 -0
- package/dist/tables/types.d.ts.map +1 -0
- package/dist/tables/types.js +8 -0
- package/dist/tables/utils.d.ts +4 -0
- package/dist/tables/utils.d.ts.map +1 -0
- package/dist/tables/utils.js +16 -0
- package/dist/tables/widgets/grid-table-widget.d.ts +3 -0
- package/dist/tables/widgets/grid-table-widget.d.ts.map +1 -0
- package/dist/tables/widgets/grid-table-widget.js +26 -0
- package/dist/tables/widgets/pipe-table-widget.d.ts +3 -0
- package/dist/tables/widgets/pipe-table-widget.d.ts.map +1 -0
- package/dist/tables/widgets/pipe-table-widget.js +25 -0
- package/dist/tables/widgets/source-button.d.ts +2 -0
- package/dist/tables/widgets/source-button.d.ts.map +1 -0
- package/dist/tables/widgets/source-button.js +20 -0
- package/dist/tables/widgets/source-button.test.d.ts +2 -0
- package/dist/tables/widgets/source-button.test.d.ts.map +1 -0
- package/dist/tables/widgets/source-button.test.js +11 -0
- package/dist/test-setup.d.ts +2 -0
- package/dist/test-setup.d.ts.map +1 -0
- package/dist/test-setup.js +31 -0
- package/dist/themes/_contract.css +88 -0
- package/dist/themes/_mira-palette.css +187 -0
- package/dist/themes/_obsidian-palette.css +183 -0
- package/dist/themes/mira.css +2 -0
- package/dist/themes/obsidian.css +2 -0
- package/dist/themes/theme-contract.test.d.ts +2 -0
- package/dist/themes/theme-contract.test.d.ts.map +1 -0
- package/dist/themes/theme-contract.test.js +88 -0
- package/dist/themes.css +3 -0
- package/dist/types.d.ts +55 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +1 -0
- package/dist/ui/appearance/index.d.ts +6 -0
- package/dist/ui/appearance/index.d.ts.map +1 -0
- package/dist/ui/appearance/index.js +9 -0
- package/dist/ui/button/button.shared.d.ts +59 -0
- package/dist/ui/button/button.shared.d.ts.map +1 -0
- package/dist/ui/button/button.shared.js +25 -0
- package/dist/ui/button/button.svelte +42 -0
- package/dist/ui/button/button.svelte.d.ts +5 -0
- package/dist/ui/button/button.svelte.d.ts.map +1 -0
- package/dist/ui/button/index.d.ts +4 -0
- package/dist/ui/button/index.d.ts.map +1 -0
- package/dist/ui/button/index.js +5 -0
- package/dist/ui/context-menu/context-menu-checkbox-item.svelte +40 -0
- package/dist/ui/context-menu/context-menu-checkbox-item.svelte.d.ts +10 -0
- package/dist/ui/context-menu/context-menu-checkbox-item.svelte.d.ts.map +1 -0
- package/dist/ui/context-menu/context-menu-content.svelte +61 -0
- package/dist/ui/context-menu/context-menu-content.svelte.d.ts +8 -0
- package/dist/ui/context-menu/context-menu-content.svelte.d.ts.map +1 -0
- package/dist/ui/context-menu/context-menu-group-heading.svelte +24 -0
- package/dist/ui/context-menu/context-menu-group-heading.svelte.d.ts +8 -0
- package/dist/ui/context-menu/context-menu-group-heading.svelte.d.ts.map +1 -0
- package/dist/ui/context-menu/context-menu-group.svelte +12 -0
- package/dist/ui/context-menu/context-menu-group.svelte.d.ts +5 -0
- package/dist/ui/context-menu/context-menu-group.svelte.d.ts.map +1 -0
- package/dist/ui/context-menu/context-menu-item.svelte +27 -0
- package/dist/ui/context-menu/context-menu-item.svelte.d.ts +9 -0
- package/dist/ui/context-menu/context-menu-item.svelte.d.ts.map +1 -0
- package/dist/ui/context-menu/context-menu-label.svelte +27 -0
- package/dist/ui/context-menu/context-menu-label.svelte.d.ts +9 -0
- package/dist/ui/context-menu/context-menu-label.svelte.d.ts.map +1 -0
- package/dist/ui/context-menu/context-menu-radio-group.svelte +16 -0
- package/dist/ui/context-menu/context-menu-radio-group.svelte.d.ts +5 -0
- package/dist/ui/context-menu/context-menu-radio-group.svelte.d.ts.map +1 -0
- package/dist/ui/context-menu/context-menu-radio-item.svelte +33 -0
- package/dist/ui/context-menu/context-menu-radio-item.svelte.d.ts +5 -0
- package/dist/ui/context-menu/context-menu-radio-item.svelte.d.ts.map +1 -0
- package/dist/ui/context-menu/context-menu-root.svelte +17 -0
- package/dist/ui/context-menu/context-menu-root.svelte.d.ts +4 -0
- package/dist/ui/context-menu/context-menu-root.svelte.d.ts.map +1 -0
- package/dist/ui/context-menu/context-menu-separator.svelte +17 -0
- package/dist/ui/context-menu/context-menu-separator.svelte.d.ts +5 -0
- package/dist/ui/context-menu/context-menu-separator.svelte.d.ts.map +1 -0
- package/dist/ui/context-menu/context-menu-shortcut.svelte +20 -0
- package/dist/ui/context-menu/context-menu-shortcut.svelte.d.ts +6 -0
- package/dist/ui/context-menu/context-menu-shortcut.svelte.d.ts.map +1 -0
- package/dist/ui/context-menu/context-menu-sub-content.svelte +20 -0
- package/dist/ui/context-menu/context-menu-sub-content.svelte.d.ts +5 -0
- package/dist/ui/context-menu/context-menu-sub-content.svelte.d.ts.map +1 -0
- package/dist/ui/context-menu/context-menu-sub-trigger.svelte +29 -0
- package/dist/ui/context-menu/context-menu-sub-trigger.svelte.d.ts +9 -0
- package/dist/ui/context-menu/context-menu-sub-trigger.svelte.d.ts.map +1 -0
- package/dist/ui/context-menu/context-menu-trigger.svelte +29 -0
- package/dist/ui/context-menu/context-menu-trigger.svelte.d.ts +5 -0
- package/dist/ui/context-menu/context-menu-trigger.svelte.d.ts.map +1 -0
- package/dist/ui/context-menu/index.d.ts +17 -0
- package/dist/ui/context-menu/index.d.ts.map +1 -0
- package/dist/ui/context-menu/index.js +19 -0
- package/dist/ui/dialog/dialog-close.svelte +8 -0
- package/dist/ui/dialog/dialog-close.svelte.d.ts +5 -0
- package/dist/ui/dialog/dialog-close.svelte.d.ts.map +1 -0
- package/dist/ui/dialog/dialog-content.svelte +66 -0
- package/dist/ui/dialog/dialog-content.svelte.d.ts +12 -0
- package/dist/ui/dialog/dialog-content.svelte.d.ts.map +1 -0
- package/dist/ui/dialog/dialog-description.svelte +17 -0
- package/dist/ui/dialog/dialog-description.svelte.d.ts +5 -0
- package/dist/ui/dialog/dialog-description.svelte.d.ts.map +1 -0
- package/dist/ui/dialog/dialog-footer.svelte +23 -0
- package/dist/ui/dialog/dialog-footer.svelte.d.ts +6 -0
- package/dist/ui/dialog/dialog-footer.svelte.d.ts.map +1 -0
- package/dist/ui/dialog/dialog-header.svelte +20 -0
- package/dist/ui/dialog/dialog-header.svelte.d.ts +6 -0
- package/dist/ui/dialog/dialog-header.svelte.d.ts.map +1 -0
- package/dist/ui/dialog/dialog-overlay.svelte +21 -0
- package/dist/ui/dialog/dialog-overlay.svelte.d.ts +5 -0
- package/dist/ui/dialog/dialog-overlay.svelte.d.ts.map +1 -0
- package/dist/ui/dialog/dialog-title.svelte +17 -0
- package/dist/ui/dialog/dialog-title.svelte.d.ts +5 -0
- package/dist/ui/dialog/dialog-title.svelte.d.ts.map +1 -0
- package/dist/ui/dialog/dialog-trigger.svelte +8 -0
- package/dist/ui/dialog/dialog-trigger.svelte.d.ts +5 -0
- package/dist/ui/dialog/dialog-trigger.svelte.d.ts.map +1 -0
- package/dist/ui/dialog/index.d.ts +12 -0
- package/dist/ui/dialog/index.d.ts.map +1 -0
- package/dist/ui/dialog/index.js +14 -0
- package/dist/ui/dropdown-menu/dropdown-menu-checkbox-item.svelte +43 -0
- package/dist/ui/dropdown-menu/dropdown-menu-checkbox-item.svelte.d.ts +10 -0
- package/dist/ui/dropdown-menu/dropdown-menu-checkbox-item.svelte.d.ts.map +1 -0
- package/dist/ui/dropdown-menu/dropdown-menu-content.svelte +63 -0
- package/dist/ui/dropdown-menu/dropdown-menu-content.svelte.d.ts +8 -0
- package/dist/ui/dropdown-menu/dropdown-menu-content.svelte.d.ts.map +1 -0
- package/dist/ui/dropdown-menu/dropdown-menu-group-heading.svelte +22 -0
- package/dist/ui/dropdown-menu/dropdown-menu-group-heading.svelte.d.ts +9 -0
- package/dist/ui/dropdown-menu/dropdown-menu-group-heading.svelte.d.ts.map +1 -0
- package/dist/ui/dropdown-menu/dropdown-menu-group.svelte +14 -0
- package/dist/ui/dropdown-menu/dropdown-menu-group.svelte.d.ts +5 -0
- package/dist/ui/dropdown-menu/dropdown-menu-group.svelte.d.ts.map +1 -0
- package/dist/ui/dropdown-menu/dropdown-menu-item.svelte +27 -0
- package/dist/ui/dropdown-menu/dropdown-menu-item.svelte.d.ts +9 -0
- package/dist/ui/dropdown-menu/dropdown-menu-item.svelte.d.ts.map +1 -0
- package/dist/ui/dropdown-menu/dropdown-menu-label.svelte +24 -0
- package/dist/ui/dropdown-menu/dropdown-menu-label.svelte.d.ts +9 -0
- package/dist/ui/dropdown-menu/dropdown-menu-label.svelte.d.ts.map +1 -0
- package/dist/ui/dropdown-menu/dropdown-menu-radio-group.svelte +16 -0
- package/dist/ui/dropdown-menu/dropdown-menu-radio-group.svelte.d.ts +5 -0
- package/dist/ui/dropdown-menu/dropdown-menu-radio-group.svelte.d.ts.map +1 -0
- package/dist/ui/dropdown-menu/dropdown-menu-radio-item.svelte +33 -0
- package/dist/ui/dropdown-menu/dropdown-menu-radio-item.svelte.d.ts +5 -0
- package/dist/ui/dropdown-menu/dropdown-menu-radio-item.svelte.d.ts.map +1 -0
- package/dist/ui/dropdown-menu/dropdown-menu-root.svelte +27 -0
- package/dist/ui/dropdown-menu/dropdown-menu-root.svelte.d.ts +4 -0
- package/dist/ui/dropdown-menu/dropdown-menu-root.svelte.d.ts.map +1 -0
- package/dist/ui/dropdown-menu/dropdown-menu-separator.svelte +17 -0
- package/dist/ui/dropdown-menu/dropdown-menu-separator.svelte.d.ts +5 -0
- package/dist/ui/dropdown-menu/dropdown-menu-separator.svelte.d.ts.map +1 -0
- package/dist/ui/dropdown-menu/dropdown-menu-shortcut.svelte +20 -0
- package/dist/ui/dropdown-menu/dropdown-menu-shortcut.svelte.d.ts +6 -0
- package/dist/ui/dropdown-menu/dropdown-menu-shortcut.svelte.d.ts.map +1 -0
- package/dist/ui/dropdown-menu/dropdown-menu-sub-content.svelte +20 -0
- package/dist/ui/dropdown-menu/dropdown-menu-sub-content.svelte.d.ts +5 -0
- package/dist/ui/dropdown-menu/dropdown-menu-sub-content.svelte.d.ts.map +1 -0
- package/dist/ui/dropdown-menu/dropdown-menu-sub-trigger.svelte +29 -0
- package/dist/ui/dropdown-menu/dropdown-menu-sub-trigger.svelte.d.ts +8 -0
- package/dist/ui/dropdown-menu/dropdown-menu-sub-trigger.svelte.d.ts.map +1 -0
- package/dist/ui/dropdown-menu/dropdown-menu-trigger.svelte +29 -0
- package/dist/ui/dropdown-menu/dropdown-menu-trigger.svelte.d.ts +5 -0
- package/dist/ui/dropdown-menu/dropdown-menu-trigger.svelte.d.ts.map +1 -0
- package/dist/ui/dropdown-menu/index.d.ts +17 -0
- package/dist/ui/dropdown-menu/index.d.ts.map +1 -0
- package/dist/ui/dropdown-menu/index.js +17 -0
- package/dist/ui/index.d.ts +13 -0
- package/dist/ui/index.d.ts.map +1 -0
- package/dist/ui/index.js +12 -0
- package/dist/ui/index.test.d.ts +2 -0
- package/dist/ui/index.test.d.ts.map +1 -0
- package/dist/ui/index.test.js +7 -0
- package/dist/ui/internal/overlay-portal-context.d.ts +19 -0
- package/dist/ui/internal/overlay-portal-context.d.ts.map +1 -0
- package/dist/ui/internal/overlay-portal-context.js +39 -0
- package/dist/ui/popover/index.d.ts +7 -0
- package/dist/ui/popover/index.d.ts.map +1 -0
- package/dist/ui/popover/index.js +6 -0
- package/dist/ui/popover/popover-content.svelte +65 -0
- package/dist/ui/popover/popover-content.svelte.d.ts +8 -0
- package/dist/ui/popover/popover-content.svelte.d.ts.map +1 -0
- package/dist/ui/popover/popover-root.svelte +15 -0
- package/dist/ui/popover/popover-root.svelte.d.ts +4 -0
- package/dist/ui/popover/popover-root.svelte.d.ts.map +1 -0
- package/dist/ui/popover/popover-trigger.svelte +23 -0
- package/dist/ui/popover/popover-trigger.svelte.d.ts +5 -0
- package/dist/ui/popover/popover-trigger.svelte.d.ts.map +1 -0
- package/dist/ui/scroll-area/index.d.ts +2 -0
- package/dist/ui/scroll-area/index.d.ts.map +1 -0
- package/dist/ui/scroll-area/index.js +1 -0
- package/dist/ui/scroll-area/scroll-area.svelte +14 -0
- package/dist/ui/scroll-area/scroll-area.svelte.d.ts +9 -0
- package/dist/ui/scroll-area/scroll-area.svelte.d.ts.map +1 -0
- package/dist/ui/separator/index.d.ts +2 -0
- package/dist/ui/separator/index.d.ts.map +1 -0
- package/dist/ui/separator/index.js +1 -0
- package/dist/ui/separator/separator.svelte +14 -0
- package/dist/ui/separator/separator.svelte.d.ts +8 -0
- package/dist/ui/separator/separator.svelte.d.ts.map +1 -0
- package/dist/ui/styles.css +760 -0
- package/dist/ui/styles.test.d.ts +2 -0
- package/dist/ui/styles.test.d.ts.map +1 -0
- package/dist/ui/styles.test.js +26 -0
- package/dist/ui/table/index.d.ts +10 -0
- package/dist/ui/table/index.d.ts.map +1 -0
- package/dist/ui/table/index.js +11 -0
- package/dist/ui/table/table-body.svelte +20 -0
- package/dist/ui/table/table-body.svelte.d.ts +6 -0
- package/dist/ui/table/table-body.svelte.d.ts.map +1 -0
- package/dist/ui/table/table-caption.svelte +20 -0
- package/dist/ui/table/table-caption.svelte.d.ts +6 -0
- package/dist/ui/table/table-caption.svelte.d.ts.map +1 -0
- package/dist/ui/table/table-cell.svelte +23 -0
- package/dist/ui/table/table-cell.svelte.d.ts +6 -0
- package/dist/ui/table/table-cell.svelte.d.ts.map +1 -0
- package/dist/ui/table/table-footer.svelte +23 -0
- package/dist/ui/table/table-footer.svelte.d.ts +6 -0
- package/dist/ui/table/table-footer.svelte.d.ts.map +1 -0
- package/dist/ui/table/table-head.svelte +23 -0
- package/dist/ui/table/table-head.svelte.d.ts +6 -0
- package/dist/ui/table/table-head.svelte.d.ts.map +1 -0
- package/dist/ui/table/table-header.svelte +20 -0
- package/dist/ui/table/table-header.svelte.d.ts +6 -0
- package/dist/ui/table/table-header.svelte.d.ts.map +1 -0
- package/dist/ui/table/table-row.svelte +23 -0
- package/dist/ui/table/table-row.svelte.d.ts +6 -0
- package/dist/ui/table/table-row.svelte.d.ts.map +1 -0
- package/dist/ui/table/table.svelte +21 -0
- package/dist/ui/table/table.svelte.d.ts +9 -0
- package/dist/ui/table/table.svelte.d.ts.map +1 -0
- package/dist/ui/table-dnd/index.d.ts +4 -0
- package/dist/ui/table-dnd/index.d.ts.map +1 -0
- package/dist/ui/table-dnd/index.js +3 -0
- package/dist/ui/table-dnd/table-dnd-sensors.d.ts +3 -0
- package/dist/ui/table-dnd/table-dnd-sensors.d.ts.map +1 -0
- package/dist/ui/table-dnd/table-dnd-sensors.js +11 -0
- package/dist/ui/table-dnd/table-dnd-utils.d.ts +30 -0
- package/dist/ui/table-dnd/table-dnd-utils.d.ts.map +1 -0
- package/dist/ui/table-dnd/table-dnd-utils.js +77 -0
- package/dist/ui/table-dnd/table-dnd-utils.test.d.ts +2 -0
- package/dist/ui/table-dnd/table-dnd-utils.test.d.ts.map +1 -0
- package/dist/ui/table-dnd/table-dnd-utils.test.js +46 -0
- package/dist/ui/table-dnd/table-drag-grip.svelte +60 -0
- package/dist/ui/table-dnd/table-drag-grip.svelte.d.ts +17 -0
- package/dist/ui/table-dnd/table-drag-grip.svelte.d.ts.map +1 -0
- package/dist/ui/toggle-group/context.d.ts +7 -0
- package/dist/ui/toggle-group/context.d.ts.map +1 -0
- package/dist/ui/toggle-group/context.js +8 -0
- package/dist/ui/toggle-group/index.d.ts +3 -0
- package/dist/ui/toggle-group/index.d.ts.map +1 -0
- package/dist/ui/toggle-group/index.js +2 -0
- package/dist/ui/toggle-group/toggle-group-item.svelte +33 -0
- package/dist/ui/toggle-group/toggle-group-item.svelte.d.ts +11 -0
- package/dist/ui/toggle-group/toggle-group-item.svelte.d.ts.map +1 -0
- package/dist/ui/toggle-group/toggle-group.svelte +74 -0
- package/dist/ui/toggle-group/toggle-group.svelte.d.ts +12 -0
- package/dist/ui/toggle-group/toggle-group.svelte.d.ts.map +1 -0
- package/dist/ui/toolbar/index.d.ts +7 -0
- package/dist/ui/toolbar/index.d.ts.map +1 -0
- package/dist/ui/toolbar/index.js +6 -0
- package/dist/ui/toolbar/toolbar-button.svelte +17 -0
- package/dist/ui/toolbar/toolbar-button.svelte.d.ts +5 -0
- package/dist/ui/toolbar/toolbar-button.svelte.d.ts.map +1 -0
- package/dist/ui/toolbar/toolbar-group-item.svelte +17 -0
- package/dist/ui/toolbar/toolbar-group-item.svelte.d.ts +4 -0
- package/dist/ui/toolbar/toolbar-group-item.svelte.d.ts.map +1 -0
- package/dist/ui/toolbar/toolbar-group.svelte +19 -0
- package/dist/ui/toolbar/toolbar-group.svelte.d.ts +5 -0
- package/dist/ui/toolbar/toolbar-group.svelte.d.ts.map +1 -0
- package/dist/ui/toolbar/toolbar-link.svelte +17 -0
- package/dist/ui/toolbar/toolbar-link.svelte.d.ts +5 -0
- package/dist/ui/toolbar/toolbar-link.svelte.d.ts.map +1 -0
- package/dist/ui/toolbar/toolbar.svelte +21 -0
- package/dist/ui/toolbar/toolbar.svelte.d.ts +5 -0
- package/dist/ui/toolbar/toolbar.svelte.d.ts.map +1 -0
- package/dist/ui/tooltip/index.d.ts +8 -0
- package/dist/ui/tooltip/index.d.ts.map +1 -0
- package/dist/ui/tooltip/index.js +9 -0
- package/dist/ui/tooltip/tooltip-content.svelte +85 -0
- package/dist/ui/tooltip/tooltip-content.svelte.d.ts +9 -0
- package/dist/ui/tooltip/tooltip-content.svelte.d.ts.map +1 -0
- package/dist/ui/tooltip/tooltip-root.svelte +15 -0
- package/dist/ui/tooltip/tooltip-root.svelte.d.ts +5 -0
- package/dist/ui/tooltip/tooltip-root.svelte.d.ts.map +1 -0
- package/dist/ui/tooltip/tooltip-trigger.svelte +23 -0
- package/dist/ui/tooltip/tooltip-trigger.svelte.d.ts +5 -0
- package/dist/ui/tooltip/tooltip-trigger.svelte.d.ts.map +1 -0
- package/dist/ui/utils.d.ts +13 -0
- package/dist/ui/utils.d.ts.map +1 -0
- package/dist/ui/utils.js +5 -0
- package/package.json +171 -0
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
export type SerializedMarkdownWriterState = {
|
|
2
|
+
dirty: boolean;
|
|
3
|
+
saving: boolean;
|
|
4
|
+
error: Error | null;
|
|
5
|
+
value: string;
|
|
6
|
+
persistedValue: string;
|
|
7
|
+
};
|
|
8
|
+
type Options = {
|
|
9
|
+
value: string;
|
|
10
|
+
write: (value: string) => void | Promise<void>;
|
|
11
|
+
delay?: number;
|
|
12
|
+
onStateChange?: (state: SerializedMarkdownWriterState) => void;
|
|
13
|
+
};
|
|
14
|
+
export declare class SerializedMarkdownWriter {
|
|
15
|
+
private readonly write;
|
|
16
|
+
private readonly delay;
|
|
17
|
+
private readonly onStateChange?;
|
|
18
|
+
private timer;
|
|
19
|
+
private flushPromise;
|
|
20
|
+
private value;
|
|
21
|
+
private persistedValue;
|
|
22
|
+
private saving;
|
|
23
|
+
private error;
|
|
24
|
+
constructor(options: Options);
|
|
25
|
+
get state(): SerializedMarkdownWriterState;
|
|
26
|
+
update(value: string): void;
|
|
27
|
+
replaceExternal(value: string): boolean;
|
|
28
|
+
flush(): Promise<boolean>;
|
|
29
|
+
destroy(): void;
|
|
30
|
+
private schedule;
|
|
31
|
+
private flushLatest;
|
|
32
|
+
private clearTimer;
|
|
33
|
+
private emit;
|
|
34
|
+
}
|
|
35
|
+
export {};
|
|
36
|
+
//# sourceMappingURL=serialized-writer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"serialized-writer.d.ts","sourceRoot":"","sources":["../../../src/preview/editable-markdown-preview/serialized-writer.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,6BAA6B,GAAG;IAC1C,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,KAAK,OAAO,GAAG;IACb,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,6BAA6B,KAAK,IAAI,CAAC;CAChE,CAAC;AAEF,qBAAa,wBAAwB;IACnC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAmB;IAEzC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAE/B,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAA2B;IAE1D,OAAO,CAAC,KAAK,CAA8C;IAE3D,OAAO,CAAC,YAAY,CAAiC;IAErD,OAAO,CAAC,KAAK,CAAS;IAEtB,OAAO,CAAC,cAAc,CAAS;IAE/B,OAAO,CAAC,MAAM,CAAS;IAEvB,OAAO,CAAC,KAAK,CAAsB;gBAEvB,OAAO,EAAE,OAAO;IAS5B,IAAI,KAAK,IAAI,6BAA6B,CAQzC;IAED,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAO3B,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAYjC,KAAK,IAAI,OAAO,CAAC,OAAO,CAAC;IAkB/B,OAAO,IAAI,IAAI;IAOf,OAAO,CAAC,QAAQ;YAYF,WAAW;IA0BzB,OAAO,CAAC,UAAU;IAOlB,OAAO,CAAC,IAAI;CAGb"}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
export class SerializedMarkdownWriter {
|
|
2
|
+
write;
|
|
3
|
+
delay;
|
|
4
|
+
onStateChange;
|
|
5
|
+
timer = null;
|
|
6
|
+
flushPromise = null;
|
|
7
|
+
value;
|
|
8
|
+
persistedValue;
|
|
9
|
+
saving = false;
|
|
10
|
+
error = null;
|
|
11
|
+
constructor(options) {
|
|
12
|
+
this.value = options.value;
|
|
13
|
+
this.persistedValue = options.value;
|
|
14
|
+
this.write = options.write;
|
|
15
|
+
this.delay = options.delay ?? 500;
|
|
16
|
+
this.onStateChange = options.onStateChange;
|
|
17
|
+
this.emit();
|
|
18
|
+
}
|
|
19
|
+
get state() {
|
|
20
|
+
return {
|
|
21
|
+
dirty: this.value !== this.persistedValue,
|
|
22
|
+
saving: this.saving,
|
|
23
|
+
error: this.error,
|
|
24
|
+
value: this.value,
|
|
25
|
+
persistedValue: this.persistedValue,
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
update(value) {
|
|
29
|
+
this.value = value;
|
|
30
|
+
this.error = null;
|
|
31
|
+
this.schedule();
|
|
32
|
+
this.emit();
|
|
33
|
+
}
|
|
34
|
+
replaceExternal(value) {
|
|
35
|
+
if (this.state.dirty || this.saving) {
|
|
36
|
+
return false;
|
|
37
|
+
}
|
|
38
|
+
this.value = value;
|
|
39
|
+
this.persistedValue = value;
|
|
40
|
+
this.error = null;
|
|
41
|
+
this.emit();
|
|
42
|
+
return true;
|
|
43
|
+
}
|
|
44
|
+
async flush() {
|
|
45
|
+
this.clearTimer();
|
|
46
|
+
if (this.flushPromise) {
|
|
47
|
+
const saved = await this.flushPromise;
|
|
48
|
+
if (!saved) {
|
|
49
|
+
return false;
|
|
50
|
+
}
|
|
51
|
+
return this.state.dirty ? this.flush() : true;
|
|
52
|
+
}
|
|
53
|
+
this.flushPromise = this.flushLatest();
|
|
54
|
+
try {
|
|
55
|
+
return await this.flushPromise;
|
|
56
|
+
}
|
|
57
|
+
finally {
|
|
58
|
+
this.flushPromise = null;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
destroy() {
|
|
62
|
+
this.clearTimer();
|
|
63
|
+
if (this.state.dirty) {
|
|
64
|
+
void this.flush();
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
schedule() {
|
|
68
|
+
this.clearTimer();
|
|
69
|
+
if (!this.state.dirty) {
|
|
70
|
+
return;
|
|
71
|
+
}
|
|
72
|
+
this.timer = setTimeout(() => {
|
|
73
|
+
this.timer = null;
|
|
74
|
+
void this.flush();
|
|
75
|
+
}, this.delay);
|
|
76
|
+
}
|
|
77
|
+
async flushLatest() {
|
|
78
|
+
while (this.value !== this.persistedValue) {
|
|
79
|
+
const snapshot = this.value;
|
|
80
|
+
this.saving = true;
|
|
81
|
+
this.error = null;
|
|
82
|
+
this.emit();
|
|
83
|
+
try {
|
|
84
|
+
await this.write(snapshot);
|
|
85
|
+
}
|
|
86
|
+
catch (cause) {
|
|
87
|
+
this.saving = false;
|
|
88
|
+
this.error =
|
|
89
|
+
cause instanceof Error ? cause : new Error("Unable to save Markdown");
|
|
90
|
+
this.emit();
|
|
91
|
+
return false;
|
|
92
|
+
}
|
|
93
|
+
this.persistedValue = snapshot;
|
|
94
|
+
this.saving = false;
|
|
95
|
+
this.error = null;
|
|
96
|
+
this.emit();
|
|
97
|
+
}
|
|
98
|
+
return true;
|
|
99
|
+
}
|
|
100
|
+
clearTimer() {
|
|
101
|
+
if (this.timer !== null) {
|
|
102
|
+
clearTimeout(this.timer);
|
|
103
|
+
this.timer = null;
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
emit() {
|
|
107
|
+
this.onStateChange?.(this.state);
|
|
108
|
+
}
|
|
109
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"serialized-writer.test.d.ts","sourceRoot":"","sources":["../../../src/preview/editable-markdown-preview/serialized-writer.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { describe, expect, it, vi } from "vitest";
|
|
2
|
+
import { SerializedMarkdownWriter } from "./serialized-writer";
|
|
3
|
+
describe("SerializedMarkdownWriter", () => {
|
|
4
|
+
it("debounces writes for 500ms", async () => {
|
|
5
|
+
vi.useFakeTimers();
|
|
6
|
+
const write = vi.fn();
|
|
7
|
+
const writer = new SerializedMarkdownWriter({ value: "old", write });
|
|
8
|
+
writer.update("one");
|
|
9
|
+
writer.update("two");
|
|
10
|
+
await vi.advanceTimersByTimeAsync(499);
|
|
11
|
+
expect(write).not.toHaveBeenCalled();
|
|
12
|
+
await vi.advanceTimersByTimeAsync(1);
|
|
13
|
+
expect(write).toHaveBeenCalledOnce();
|
|
14
|
+
expect(write).toHaveBeenCalledWith("two");
|
|
15
|
+
vi.useRealTimers();
|
|
16
|
+
});
|
|
17
|
+
it("serializes writes and flushes the latest value", async () => {
|
|
18
|
+
let releaseFirst;
|
|
19
|
+
const writes = [];
|
|
20
|
+
const write = vi.fn((value) => {
|
|
21
|
+
writes.push(value);
|
|
22
|
+
if (writes.length === 1) {
|
|
23
|
+
return new Promise((resolve) => {
|
|
24
|
+
releaseFirst = resolve;
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
});
|
|
28
|
+
const writer = new SerializedMarkdownWriter({ value: "old", write });
|
|
29
|
+
writer.update("one");
|
|
30
|
+
const firstFlush = writer.flush();
|
|
31
|
+
await Promise.resolve();
|
|
32
|
+
writer.update("two");
|
|
33
|
+
const secondFlush = writer.flush();
|
|
34
|
+
expect(writes).toEqual(["one"]);
|
|
35
|
+
releaseFirst?.();
|
|
36
|
+
await expect(firstFlush).resolves.toBe(true);
|
|
37
|
+
await expect(secondFlush).resolves.toBe(true);
|
|
38
|
+
expect(writes).toEqual(["one", "two"]);
|
|
39
|
+
expect(writer.state.dirty).toBe(false);
|
|
40
|
+
});
|
|
41
|
+
it("preserves dirty data and rejects external replacement after failure", async () => {
|
|
42
|
+
const writer = new SerializedMarkdownWriter({
|
|
43
|
+
value: "old",
|
|
44
|
+
write: async () => {
|
|
45
|
+
throw new Error("disk full");
|
|
46
|
+
},
|
|
47
|
+
});
|
|
48
|
+
writer.update("unsaved");
|
|
49
|
+
await expect(writer.flush()).resolves.toBe(false);
|
|
50
|
+
expect(writer.state).toMatchObject({
|
|
51
|
+
dirty: true,
|
|
52
|
+
saving: false,
|
|
53
|
+
value: "unsaved",
|
|
54
|
+
});
|
|
55
|
+
expect(writer.state.error?.message).toBe("disk full");
|
|
56
|
+
expect(writer.replaceExternal("external")).toBe(false);
|
|
57
|
+
expect(writer.state.value).toBe("unsaved");
|
|
58
|
+
});
|
|
59
|
+
});
|
|
@@ -0,0 +1,195 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import type {
|
|
3
|
+
MiraAssetResolver,
|
|
4
|
+
MiraExtension,
|
|
5
|
+
MiraFileAdapter,
|
|
6
|
+
MiraFileRef,
|
|
7
|
+
MiraImageConfig,
|
|
8
|
+
MiraLinkResolver,
|
|
9
|
+
MiraListCallout,
|
|
10
|
+
MiraMarkdownAuthoringConfig,
|
|
11
|
+
MiraMarkdownPostProcessor,
|
|
12
|
+
MiraRendererComponents,
|
|
13
|
+
} from "@lapismd/mira/extensions";
|
|
14
|
+
import type { FrontmatterConfig } from "./components/frontmatter-utils";
|
|
15
|
+
import EditableMarkdownSurface from "./editable-markdown-preview/editable-markdown-surface.svelte";
|
|
16
|
+
import MarkdownEmbed from "./markdown-embed.svelte";
|
|
17
|
+
|
|
18
|
+
type Props = {
|
|
19
|
+
file: MiraFileRef;
|
|
20
|
+
fileAdapter: MiraFileAdapter;
|
|
21
|
+
editing?: boolean;
|
|
22
|
+
extensions?: MiraExtension[];
|
|
23
|
+
components?: MiraRendererComponents;
|
|
24
|
+
class?: string;
|
|
25
|
+
highlight?: boolean;
|
|
26
|
+
linkResolver?: MiraLinkResolver;
|
|
27
|
+
assetResolver?: MiraAssetResolver;
|
|
28
|
+
imageConfig?: MiraImageConfig;
|
|
29
|
+
authoring?: MiraMarkdownAuthoringConfig;
|
|
30
|
+
frontmatterOpen?: boolean;
|
|
31
|
+
frontmatterConfig?: FrontmatterConfig;
|
|
32
|
+
headingIds?: boolean;
|
|
33
|
+
headingIdPrefix?: string;
|
|
34
|
+
htmlPolicy?: "trusted" | "safe";
|
|
35
|
+
emoji?: boolean;
|
|
36
|
+
dialog?: boolean;
|
|
37
|
+
listCallouts?: MiraListCallout[];
|
|
38
|
+
postProcess?: MiraMarkdownPostProcessor;
|
|
39
|
+
activateOnPreviewInteraction?: boolean;
|
|
40
|
+
returnToPreviewOnBlur?: boolean;
|
|
41
|
+
focusEditorOnEdit?: boolean;
|
|
42
|
+
onEditingChange?: (editing: boolean) => void;
|
|
43
|
+
onEscape?: () => void;
|
|
44
|
+
onFrontmatterChange?: (nextYaml: string, nextValue: string) => void;
|
|
45
|
+
};
|
|
46
|
+
|
|
47
|
+
let {
|
|
48
|
+
file,
|
|
49
|
+
fileAdapter,
|
|
50
|
+
editing = $bindable(false),
|
|
51
|
+
extensions = [],
|
|
52
|
+
components = {},
|
|
53
|
+
class: className = "",
|
|
54
|
+
highlight = true,
|
|
55
|
+
linkResolver,
|
|
56
|
+
assetResolver,
|
|
57
|
+
imageConfig,
|
|
58
|
+
authoring,
|
|
59
|
+
frontmatterOpen = false,
|
|
60
|
+
frontmatterConfig,
|
|
61
|
+
headingIds = false,
|
|
62
|
+
headingIdPrefix = "",
|
|
63
|
+
htmlPolicy = "trusted",
|
|
64
|
+
emoji = false,
|
|
65
|
+
dialog = false,
|
|
66
|
+
listCallouts = [],
|
|
67
|
+
postProcess,
|
|
68
|
+
activateOnPreviewInteraction = true,
|
|
69
|
+
returnToPreviewOnBlur = true,
|
|
70
|
+
focusEditorOnEdit = true,
|
|
71
|
+
onEditingChange,
|
|
72
|
+
onEscape,
|
|
73
|
+
onFrontmatterChange,
|
|
74
|
+
}: Props = $props();
|
|
75
|
+
|
|
76
|
+
let value = $state("");
|
|
77
|
+
let loaded = $state(false);
|
|
78
|
+
let loadRevision = $state(0);
|
|
79
|
+
let surface: {
|
|
80
|
+
flush: () => Promise<boolean>;
|
|
81
|
+
exit: () => Promise<boolean>;
|
|
82
|
+
} | null = $state(null);
|
|
83
|
+
let previewOnChange:
|
|
84
|
+
| ((replacement: string, from: number, to: number) => void)
|
|
85
|
+
| undefined = $state(undefined);
|
|
86
|
+
|
|
87
|
+
const writeMarkdown = $derived(
|
|
88
|
+
fileAdapter.writeMarkdown &&
|
|
89
|
+
(file.kind === undefined || file.kind === "markdown")
|
|
90
|
+
? (nextValue: string) => fileAdapter.writeMarkdown?.(file, nextValue)
|
|
91
|
+
: undefined,
|
|
92
|
+
);
|
|
93
|
+
|
|
94
|
+
$effect(() => {
|
|
95
|
+
const currentFile = file;
|
|
96
|
+
loadRevision;
|
|
97
|
+
if (!fileAdapter.readMarkdown) {
|
|
98
|
+
value = "";
|
|
99
|
+
loaded = true;
|
|
100
|
+
return;
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
let cancelled = false;
|
|
104
|
+
void Promise.resolve(fileAdapter.readMarkdown(currentFile)).then(
|
|
105
|
+
(nextValue) => {
|
|
106
|
+
if (!cancelled && nextValue !== null) {
|
|
107
|
+
value = nextValue;
|
|
108
|
+
loaded = true;
|
|
109
|
+
}
|
|
110
|
+
},
|
|
111
|
+
() => {
|
|
112
|
+
if (!cancelled) {
|
|
113
|
+
loaded = true;
|
|
114
|
+
}
|
|
115
|
+
},
|
|
116
|
+
);
|
|
117
|
+
|
|
118
|
+
return () => {
|
|
119
|
+
cancelled = true;
|
|
120
|
+
};
|
|
121
|
+
});
|
|
122
|
+
|
|
123
|
+
$effect(() => {
|
|
124
|
+
if (!fileAdapter.watchFile) {
|
|
125
|
+
return;
|
|
126
|
+
}
|
|
127
|
+
return fileAdapter.watchFile(file, () => {
|
|
128
|
+
loadRevision += 1;
|
|
129
|
+
});
|
|
130
|
+
});
|
|
131
|
+
|
|
132
|
+
export async function flush(): Promise<boolean> {
|
|
133
|
+
return (await surface?.flush()) ?? true;
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
export async function exit(): Promise<boolean> {
|
|
137
|
+
return (await surface?.exit()) ?? true;
|
|
138
|
+
}
|
|
139
|
+
</script>
|
|
140
|
+
|
|
141
|
+
{#snippet renderedPreview(markdown: string)}
|
|
142
|
+
<MarkdownEmbed
|
|
143
|
+
value={markdown}
|
|
144
|
+
sourcePath={file.path}
|
|
145
|
+
{extensions}
|
|
146
|
+
{components}
|
|
147
|
+
{highlight}
|
|
148
|
+
{linkResolver}
|
|
149
|
+
{assetResolver}
|
|
150
|
+
{fileAdapter}
|
|
151
|
+
{frontmatterOpen}
|
|
152
|
+
{frontmatterConfig}
|
|
153
|
+
{headingIds}
|
|
154
|
+
{headingIdPrefix}
|
|
155
|
+
{htmlPolicy}
|
|
156
|
+
{emoji}
|
|
157
|
+
{dialog}
|
|
158
|
+
{listCallouts}
|
|
159
|
+
{postProcess}
|
|
160
|
+
onChange={previewOnChange}
|
|
161
|
+
/>
|
|
162
|
+
{/snippet}
|
|
163
|
+
|
|
164
|
+
{#if loaded}
|
|
165
|
+
<EditableMarkdownSurface
|
|
166
|
+
bind:this={surface}
|
|
167
|
+
{value}
|
|
168
|
+
preview={renderedPreview}
|
|
169
|
+
bind:previewOnChange
|
|
170
|
+
{writeMarkdown}
|
|
171
|
+
bind:editing
|
|
172
|
+
{extensions}
|
|
173
|
+
sourcePath={file.path}
|
|
174
|
+
{linkResolver}
|
|
175
|
+
{assetResolver}
|
|
176
|
+
{fileAdapter}
|
|
177
|
+
{imageConfig}
|
|
178
|
+
{authoring}
|
|
179
|
+
{frontmatterOpen}
|
|
180
|
+
{frontmatterConfig}
|
|
181
|
+
{activateOnPreviewInteraction}
|
|
182
|
+
{returnToPreviewOnBlur}
|
|
183
|
+
{focusEditorOnEdit}
|
|
184
|
+
class={className}
|
|
185
|
+
label={`Edit ${file.name || file.path}`}
|
|
186
|
+
onPersisted={(nextValue) => (value = nextValue)}
|
|
187
|
+
{onEditingChange}
|
|
188
|
+
{onEscape}
|
|
189
|
+
{onFrontmatterChange}
|
|
190
|
+
/>
|
|
191
|
+
{:else}
|
|
192
|
+
<div class={`mira-editable-markdown-preview ${className}`.trim()}>
|
|
193
|
+
<span class="mira-link-preview__empty">Loading preview…</span>
|
|
194
|
+
</div>
|
|
195
|
+
{/if}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import type { MiraAssetResolver, MiraExtension, MiraFileAdapter, MiraFileRef, MiraImageConfig, MiraLinkResolver, MiraListCallout, MiraMarkdownAuthoringConfig, MiraMarkdownPostProcessor, MiraRendererComponents } from "@lapismd/mira/extensions";
|
|
2
|
+
import type { FrontmatterConfig } from "./components/frontmatter-utils";
|
|
3
|
+
type Props = {
|
|
4
|
+
file: MiraFileRef;
|
|
5
|
+
fileAdapter: MiraFileAdapter;
|
|
6
|
+
editing?: boolean;
|
|
7
|
+
extensions?: MiraExtension[];
|
|
8
|
+
components?: MiraRendererComponents;
|
|
9
|
+
class?: string;
|
|
10
|
+
highlight?: boolean;
|
|
11
|
+
linkResolver?: MiraLinkResolver;
|
|
12
|
+
assetResolver?: MiraAssetResolver;
|
|
13
|
+
imageConfig?: MiraImageConfig;
|
|
14
|
+
authoring?: MiraMarkdownAuthoringConfig;
|
|
15
|
+
frontmatterOpen?: boolean;
|
|
16
|
+
frontmatterConfig?: FrontmatterConfig;
|
|
17
|
+
headingIds?: boolean;
|
|
18
|
+
headingIdPrefix?: string;
|
|
19
|
+
htmlPolicy?: "trusted" | "safe";
|
|
20
|
+
emoji?: boolean;
|
|
21
|
+
dialog?: boolean;
|
|
22
|
+
listCallouts?: MiraListCallout[];
|
|
23
|
+
postProcess?: MiraMarkdownPostProcessor;
|
|
24
|
+
activateOnPreviewInteraction?: boolean;
|
|
25
|
+
returnToPreviewOnBlur?: boolean;
|
|
26
|
+
focusEditorOnEdit?: boolean;
|
|
27
|
+
onEditingChange?: (editing: boolean) => void;
|
|
28
|
+
onEscape?: () => void;
|
|
29
|
+
onFrontmatterChange?: (nextYaml: string, nextValue: string) => void;
|
|
30
|
+
};
|
|
31
|
+
declare const EditableMarkdownPreview: import("svelte").Component<Props, {
|
|
32
|
+
flush: () => Promise<boolean>;
|
|
33
|
+
exit: () => Promise<boolean>;
|
|
34
|
+
}, "editing">;
|
|
35
|
+
type EditableMarkdownPreview = ReturnType<typeof EditableMarkdownPreview>;
|
|
36
|
+
export default EditableMarkdownPreview;
|
|
37
|
+
//# sourceMappingURL=editable-markdown-preview.svelte.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"editable-markdown-preview.svelte.d.ts","sourceRoot":"","sources":["../../src/preview/editable-markdown-preview.svelte.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACR,iBAAiB,EACjB,aAAa,EACb,eAAe,EACf,WAAW,EACX,eAAe,EACf,gBAAgB,EAChB,eAAe,EACf,2BAA2B,EAC3B,yBAAyB,EACzB,sBAAsB,EACvB,MAAM,0BAA0B,CAAC;AACpC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AAKtE,KAAK,KAAK,GAAG;IACX,IAAI,EAAE,WAAW,CAAC;IAClB,WAAW,EAAE,eAAe,CAAC;IAC7B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,aAAa,EAAE,CAAC;IAC7B,UAAU,CAAC,EAAE,sBAAsB,CAAC;IACpC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,YAAY,CAAC,EAAE,gBAAgB,CAAC;IAChC,aAAa,CAAC,EAAE,iBAAiB,CAAC;IAClC,WAAW,CAAC,EAAE,eAAe,CAAC;IAC9B,SAAS,CAAC,EAAE,2BAA2B,CAAC;IACxC,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IACtC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,UAAU,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC;IAChC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,YAAY,CAAC,EAAE,eAAe,EAAE,CAAC;IACjC,WAAW,CAAC,EAAE,yBAAyB,CAAC;IACxC,4BAA4B,CAAC,EAAE,OAAO,CAAC;IACvC,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IAC7C,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,mBAAmB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;CACrE,CAAC;AAoHJ,QAAA,MAAM,uBAAuB;iBArBF,OAAO,CAAC,OAAO,CAAC;gBAIjB,OAAO,CAAC,OAAO,CAAC;aAiB2B,CAAC;AACtE,KAAK,uBAAuB,GAAG,UAAU,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAC1E,eAAe,uBAAuB,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { MiraTargetFragment } from "@lapismd/mira/extensions";
|
|
2
|
+
export type MiraImageDetails = {
|
|
3
|
+
alt: string;
|
|
4
|
+
width?: number;
|
|
5
|
+
height?: number;
|
|
6
|
+
};
|
|
7
|
+
export type MiraMarkdownEmbedSelection = {
|
|
8
|
+
found: boolean;
|
|
9
|
+
markdown: string;
|
|
10
|
+
};
|
|
11
|
+
export declare function parseMiraImageDetails(details: string | undefined, fallbackAlt?: string): MiraImageDetails;
|
|
12
|
+
export declare function selectMarkdownEmbedFragment(markdown: string, fragment?: MiraTargetFragment): MiraMarkdownEmbedSelection;
|
|
13
|
+
//# sourceMappingURL=embed-target.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"embed-target.d.ts","sourceRoot":"","sources":["../../src/preview/embed-target.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAEnE,MAAM,MAAM,gBAAgB,GAAG;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAAG;IACvC,KAAK,EAAE,OAAO,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,WAAW,SAAK,GACf,gBAAgB,CAmBlB;AAED,wBAAgB,2BAA2B,CACzC,QAAQ,EAAE,MAAM,EAChB,QAAQ,CAAC,EAAE,kBAAkB,GAC5B,0BAA0B,CAQ5B"}
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
export function parseMiraImageDetails(details, fallbackAlt = "") {
|
|
2
|
+
const value = details?.trim() ?? "";
|
|
3
|
+
const segments = value.split("|");
|
|
4
|
+
const possibleSize = segments.at(-1)?.trim() ?? "";
|
|
5
|
+
const dimensions = parseDimensions(possibleSize);
|
|
6
|
+
if (!dimensions) {
|
|
7
|
+
return {
|
|
8
|
+
alt: value || fallbackAlt,
|
|
9
|
+
};
|
|
10
|
+
}
|
|
11
|
+
return {
|
|
12
|
+
alt: segments.length > 1
|
|
13
|
+
? segments.slice(0, -1).join("|").trim()
|
|
14
|
+
: fallbackAlt,
|
|
15
|
+
...dimensions,
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
export function selectMarkdownEmbedFragment(markdown, fragment) {
|
|
19
|
+
if (!fragment) {
|
|
20
|
+
return { found: true, markdown };
|
|
21
|
+
}
|
|
22
|
+
return fragment.kind === "heading"
|
|
23
|
+
? selectHeadingSection(markdown, fragment.value)
|
|
24
|
+
: selectBlock(markdown, fragment.value);
|
|
25
|
+
}
|
|
26
|
+
function parseDimensions(value) {
|
|
27
|
+
const match = /^(\d+)\s*(?:x\s*(\d+))?$/iu.exec(value);
|
|
28
|
+
if (!match?.[1]) {
|
|
29
|
+
return null;
|
|
30
|
+
}
|
|
31
|
+
const width = Number.parseInt(match[1], 10);
|
|
32
|
+
const height = match[2] ? Number.parseInt(match[2], 10) : undefined;
|
|
33
|
+
if (!Number.isFinite(width) ||
|
|
34
|
+
width <= 0 ||
|
|
35
|
+
(height !== undefined && height <= 0)) {
|
|
36
|
+
return null;
|
|
37
|
+
}
|
|
38
|
+
return height === undefined ? { width } : { width, height };
|
|
39
|
+
}
|
|
40
|
+
function selectHeadingSection(markdown, requestedHeading) {
|
|
41
|
+
const lines = markdown.split("\n");
|
|
42
|
+
const headings = lines
|
|
43
|
+
.map((line, index) => parseHeading(line, lines[index + 1], index))
|
|
44
|
+
.filter((heading) => heading !== null);
|
|
45
|
+
const normalizedRequest = normalizeHeading(requestedHeading);
|
|
46
|
+
const requestedSlug = slugHeading(normalizedRequest);
|
|
47
|
+
const start = headings.find((heading) => normalizeHeading(heading.text) === normalizedRequest ||
|
|
48
|
+
slugHeading(heading.text) === requestedSlug);
|
|
49
|
+
if (!start) {
|
|
50
|
+
return { found: false, markdown: "" };
|
|
51
|
+
}
|
|
52
|
+
const next = headings.find((heading) => heading.line > start.line && heading.level <= start.level);
|
|
53
|
+
return {
|
|
54
|
+
found: true,
|
|
55
|
+
markdown: lines.slice(start.line, next?.line ?? lines.length).join("\n"),
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
function selectBlock(markdown, blockId) {
|
|
59
|
+
const normalizedId = blockId.trim();
|
|
60
|
+
if (!normalizedId) {
|
|
61
|
+
return { found: false, markdown: "" };
|
|
62
|
+
}
|
|
63
|
+
const lines = markdown.split("\n");
|
|
64
|
+
const escapedId = escapeRegExp(normalizedId);
|
|
65
|
+
const marker = new RegExp(`(?:^|\\s)\\^${escapedId}\\s*$`, "u");
|
|
66
|
+
const markerLine = lines.findIndex((line) => marker.test(line));
|
|
67
|
+
if (markerLine === -1) {
|
|
68
|
+
return { found: false, markdown: "" };
|
|
69
|
+
}
|
|
70
|
+
let from = markerLine;
|
|
71
|
+
while (from > 0 && lines[from - 1]?.trim()) {
|
|
72
|
+
from -= 1;
|
|
73
|
+
}
|
|
74
|
+
let to = markerLine + 1;
|
|
75
|
+
while (to < lines.length && lines[to]?.trim()) {
|
|
76
|
+
to += 1;
|
|
77
|
+
}
|
|
78
|
+
const selected = lines.slice(from, to);
|
|
79
|
+
const relativeMarkerLine = markerLine - from;
|
|
80
|
+
selected[relativeMarkerLine] = (selected[relativeMarkerLine] ?? "")
|
|
81
|
+
.replace(marker, "")
|
|
82
|
+
.trimEnd();
|
|
83
|
+
return {
|
|
84
|
+
found: true,
|
|
85
|
+
markdown: selected
|
|
86
|
+
.filter((line, index) => line || index !== relativeMarkerLine)
|
|
87
|
+
.join("\n"),
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
function parseHeading(line, nextLine, index) {
|
|
91
|
+
const atx = /^ {0,3}(#{1,6})[ \t]+(.+?)(?:[ \t]+#+[ \t]*)?$/u.exec(line);
|
|
92
|
+
if (atx?.[1] && atx[2]) {
|
|
93
|
+
return {
|
|
94
|
+
level: atx[1].length,
|
|
95
|
+
line: index,
|
|
96
|
+
text: atx[2],
|
|
97
|
+
};
|
|
98
|
+
}
|
|
99
|
+
const setext = /^ {0,3}(=+|-+)[ \t]*$/u.exec(nextLine ?? "");
|
|
100
|
+
if (line.trim() && setext?.[1]) {
|
|
101
|
+
return {
|
|
102
|
+
level: setext[1].startsWith("=") ? 1 : 2,
|
|
103
|
+
line: index,
|
|
104
|
+
text: line.trim(),
|
|
105
|
+
};
|
|
106
|
+
}
|
|
107
|
+
return null;
|
|
108
|
+
}
|
|
109
|
+
function normalizeHeading(value) {
|
|
110
|
+
let decoded = value.trim();
|
|
111
|
+
try {
|
|
112
|
+
decoded = decodeURIComponent(decoded);
|
|
113
|
+
}
|
|
114
|
+
catch {
|
|
115
|
+
// Keep malformed percent-encoded headings usable as literal text.
|
|
116
|
+
}
|
|
117
|
+
return decoded
|
|
118
|
+
.replace(/\[\[([^\]|]+)(?:\|([^\]]+))?\]\]/gu, (_, target, alias) => alias || target)
|
|
119
|
+
.replace(/\[([^\]]+)\]\([^)]+\)/gu, "$1")
|
|
120
|
+
.replace(/[*_~`]/gu, "")
|
|
121
|
+
.replace(/\s+/gu, " ")
|
|
122
|
+
.trim()
|
|
123
|
+
.toLocaleLowerCase();
|
|
124
|
+
}
|
|
125
|
+
function slugHeading(value) {
|
|
126
|
+
return normalizeHeading(value)
|
|
127
|
+
.replace(/[^\p{Letter}\p{Number}\s-]/gu, "")
|
|
128
|
+
.replace(/\s+/gu, "-")
|
|
129
|
+
.replace(/-+/gu, "-");
|
|
130
|
+
}
|
|
131
|
+
function escapeRegExp(value) {
|
|
132
|
+
return value.replace(/[.*+?^${}()|[\]\\]/gu, "\\$&");
|
|
133
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"embed-target.test.d.ts","sourceRoot":"","sources":["../../src/preview/embed-target.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import { describe, expect, it } from "vitest";
|
|
2
|
+
import { parseMiraImageDetails, selectMarkdownEmbedFragment, } from "./embed-target";
|
|
3
|
+
describe("portable embed targets", () => {
|
|
4
|
+
const markdown = [
|
|
5
|
+
"# Project",
|
|
6
|
+
"",
|
|
7
|
+
"Introduction.",
|
|
8
|
+
"",
|
|
9
|
+
"## Next Steps",
|
|
10
|
+
"",
|
|
11
|
+
"Ship the adapter.",
|
|
12
|
+
"",
|
|
13
|
+
"### Detail",
|
|
14
|
+
"",
|
|
15
|
+
"Keep this nested section.",
|
|
16
|
+
"",
|
|
17
|
+
"## Decisions",
|
|
18
|
+
"",
|
|
19
|
+
"Use target watchers.",
|
|
20
|
+
"",
|
|
21
|
+
"A portable referenced paragraph. ^decision-1",
|
|
22
|
+
].join("\n");
|
|
23
|
+
it("selects heading sections through the next sibling heading", () => {
|
|
24
|
+
expect(selectMarkdownEmbedFragment(markdown, {
|
|
25
|
+
kind: "heading",
|
|
26
|
+
value: "Next Steps",
|
|
27
|
+
})).toEqual({
|
|
28
|
+
found: true,
|
|
29
|
+
markdown: [
|
|
30
|
+
"## Next Steps",
|
|
31
|
+
"",
|
|
32
|
+
"Ship the adapter.",
|
|
33
|
+
"",
|
|
34
|
+
"### Detail",
|
|
35
|
+
"",
|
|
36
|
+
"Keep this nested section.",
|
|
37
|
+
"",
|
|
38
|
+
].join("\n"),
|
|
39
|
+
});
|
|
40
|
+
});
|
|
41
|
+
it("accepts heading slugs and selects block references without the marker", () => {
|
|
42
|
+
expect(selectMarkdownEmbedFragment(markdown, {
|
|
43
|
+
kind: "heading",
|
|
44
|
+
value: "next-steps",
|
|
45
|
+
}).found).toBe(true);
|
|
46
|
+
expect(selectMarkdownEmbedFragment(markdown, {
|
|
47
|
+
kind: "block",
|
|
48
|
+
value: "decision-1",
|
|
49
|
+
})).toEqual({
|
|
50
|
+
found: true,
|
|
51
|
+
markdown: "A portable referenced paragraph.",
|
|
52
|
+
});
|
|
53
|
+
});
|
|
54
|
+
it("reports missing fragments without falling back to the whole note", () => {
|
|
55
|
+
expect(selectMarkdownEmbedFragment(markdown, {
|
|
56
|
+
kind: "heading",
|
|
57
|
+
value: "Missing",
|
|
58
|
+
})).toEqual({ found: false, markdown: "" });
|
|
59
|
+
});
|
|
60
|
+
});
|
|
61
|
+
describe("image details", () => {
|
|
62
|
+
it("parses Lapis-style width and width-by-height suffixes", () => {
|
|
63
|
+
expect(parseMiraImageDetails("Diagram|640x360")).toEqual({
|
|
64
|
+
alt: "Diagram",
|
|
65
|
+
width: 640,
|
|
66
|
+
height: 360,
|
|
67
|
+
});
|
|
68
|
+
expect(parseMiraImageDetails("320", "diagram.png")).toEqual({
|
|
69
|
+
alt: "diagram.png",
|
|
70
|
+
width: 320,
|
|
71
|
+
});
|
|
72
|
+
});
|
|
73
|
+
it("preserves ordinary alt text", () => {
|
|
74
|
+
expect(parseMiraImageDetails("Architecture diagram")).toEqual({
|
|
75
|
+
alt: "Architecture diagram",
|
|
76
|
+
});
|
|
77
|
+
});
|
|
78
|
+
});
|