notra-editor 0.8.0 → 0.8.2
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/dist/components/blockquote-button/blockquote-button.cjs +5 -3
- package/dist/components/blockquote-button/blockquote-button.cjs.map +1 -1
- package/dist/components/blockquote-button/blockquote-button.mjs +5 -3
- package/dist/components/blockquote-button/blockquote-button.mjs.map +1 -1
- package/dist/components/code-block-button/code-block-button.cjs +5 -3
- package/dist/components/code-block-button/code-block-button.cjs.map +1 -1
- package/dist/components/code-block-button/code-block-button.mjs +5 -3
- package/dist/components/code-block-button/code-block-button.mjs.map +1 -1
- package/dist/components/code-block-view/code-block-shell.cjs +4 -2
- package/dist/components/code-block-view/code-block-shell.cjs.map +1 -1
- package/dist/components/code-block-view/code-block-shell.mjs +3 -2
- package/dist/components/code-block-view/code-block-shell.mjs.map +1 -1
- package/dist/components/code-block-view/code-block-view.cjs +6 -4
- package/dist/components/code-block-view/code-block-view.cjs.map +1 -1
- package/dist/components/code-block-view/code-block-view.mjs +6 -4
- package/dist/components/code-block-view/code-block-view.mjs.map +1 -1
- package/dist/components/code-block-view/language-select.cjs +9 -7
- package/dist/components/code-block-view/language-select.cjs.map +1 -1
- package/dist/components/code-block-view/language-select.mjs +9 -7
- package/dist/components/code-block-view/language-select.mjs.map +1 -1
- package/dist/components/copy-button.cjs +6 -4
- package/dist/components/copy-button.cjs.map +1 -1
- package/dist/components/copy-button.mjs +6 -4
- package/dist/components/copy-button.mjs.map +1 -1
- package/dist/components/heading-dropdown-menu/heading-dropdown-menu.cjs +8 -6
- package/dist/components/heading-dropdown-menu/heading-dropdown-menu.cjs.map +1 -1
- package/dist/components/heading-dropdown-menu/heading-dropdown-menu.mjs +8 -6
- package/dist/components/heading-dropdown-menu/heading-dropdown-menu.mjs.map +1 -1
- package/dist/components/heading-dropdown-menu/heading-menu-item.cjs +6 -4
- package/dist/components/heading-dropdown-menu/heading-menu-item.cjs.map +1 -1
- package/dist/components/heading-dropdown-menu/heading-menu-item.mjs +5 -4
- package/dist/components/heading-dropdown-menu/heading-menu-item.mjs.map +1 -1
- package/dist/components/heading-dropdown-menu/use-heading.cjs +4 -2
- package/dist/components/heading-dropdown-menu/use-heading.cjs.map +1 -1
- package/dist/components/heading-dropdown-menu/use-heading.mjs +3 -2
- package/dist/components/heading-dropdown-menu/use-heading.mjs.map +1 -1
- package/dist/components/image-popover/image-input-form.cjs +127 -0
- package/dist/components/image-popover/image-input-form.cjs.map +1 -0
- package/dist/components/image-popover/image-input-form.d.cts +16 -0
- package/dist/components/image-popover/image-input-form.d.ts +16 -0
- package/dist/components/image-popover/image-input-form.mjs +103 -0
- package/dist/components/image-popover/image-input-form.mjs.map +1 -0
- package/dist/components/image-popover/image-popover.cjs +35 -92
- package/dist/components/image-popover/image-popover.cjs.map +1 -1
- package/dist/components/image-popover/image-popover.mjs +36 -93
- package/dist/components/image-popover/image-popover.mjs.map +1 -1
- package/dist/components/image-popover/use-image-popover.cjs +2 -0
- package/dist/components/image-popover/use-image-popover.cjs.map +1 -1
- package/dist/components/image-popover/use-image-popover.mjs +1 -0
- package/dist/components/image-popover/use-image-popover.mjs.map +1 -1
- package/dist/components/link-popover/link-popover.cjs +10 -8
- package/dist/components/link-popover/link-popover.cjs.map +1 -1
- package/dist/components/link-popover/link-popover.mjs +10 -8
- package/dist/components/link-popover/link-popover.mjs.map +1 -1
- package/dist/components/link-popover/use-link-popover.cjs +2 -0
- package/dist/components/link-popover/use-link-popover.cjs.map +1 -1
- package/dist/components/link-popover/use-link-popover.mjs +1 -0
- package/dist/components/link-popover/use-link-popover.mjs.map +1 -1
- package/dist/components/list-dropdown-menu/list-dropdown-menu.cjs +8 -6
- package/dist/components/list-dropdown-menu/list-dropdown-menu.cjs.map +1 -1
- package/dist/components/list-dropdown-menu/list-dropdown-menu.mjs +8 -6
- package/dist/components/list-dropdown-menu/list-dropdown-menu.mjs.map +1 -1
- package/dist/components/list-dropdown-menu/list-menu-item.cjs +6 -4
- package/dist/components/list-dropdown-menu/list-menu-item.cjs.map +1 -1
- package/dist/components/list-dropdown-menu/list-menu-item.mjs +5 -4
- package/dist/components/list-dropdown-menu/list-menu-item.mjs.map +1 -1
- package/dist/components/list-dropdown-menu/use-list.cjs +5 -3
- package/dist/components/list-dropdown-menu/use-list.cjs.map +1 -1
- package/dist/components/list-dropdown-menu/use-list.mjs +4 -3
- package/dist/components/list-dropdown-menu/use-list.mjs.map +1 -1
- package/dist/components/mark-button/mark-button.cjs +6 -4
- package/dist/components/mark-button/mark-button.cjs.map +1 -1
- package/dist/components/mark-button/mark-button.mjs +6 -4
- package/dist/components/mark-button/mark-button.mjs.map +1 -1
- package/dist/components/mark-button/use-mark.cjs +4 -2
- package/dist/components/mark-button/use-mark.cjs.map +1 -1
- package/dist/components/mark-button/use-mark.mjs +3 -2
- package/dist/components/mark-button/use-mark.mjs.map +1 -1
- package/dist/components/slash-dropdown-menu/slash-dropdown-menu.cjs +151 -0
- package/dist/components/slash-dropdown-menu/slash-dropdown-menu.cjs.map +1 -0
- package/dist/components/slash-dropdown-menu/slash-dropdown-menu.d.cts +9 -0
- package/dist/components/slash-dropdown-menu/slash-dropdown-menu.d.ts +9 -0
- package/dist/components/slash-dropdown-menu/slash-dropdown-menu.mjs +127 -0
- package/dist/components/slash-dropdown-menu/slash-dropdown-menu.mjs.map +1 -0
- package/dist/components/slash-dropdown-menu/slash-image-popover.cjs +80 -0
- package/dist/components/slash-dropdown-menu/slash-image-popover.cjs.map +1 -0
- package/dist/components/slash-dropdown-menu/slash-image-popover.d.cts +11 -0
- package/dist/components/slash-dropdown-menu/slash-image-popover.d.ts +11 -0
- package/dist/components/slash-dropdown-menu/slash-image-popover.mjs +56 -0
- package/dist/components/slash-dropdown-menu/slash-image-popover.mjs.map +1 -0
- package/dist/components/slash-dropdown-menu/use-slash-items.cjs +138 -0
- package/dist/components/slash-dropdown-menu/use-slash-items.cjs.map +1 -0
- package/dist/components/slash-dropdown-menu/use-slash-items.d.cts +11 -0
- package/dist/components/slash-dropdown-menu/use-slash-items.d.ts +11 -0
- package/dist/components/slash-dropdown-menu/use-slash-items.mjs +125 -0
- package/dist/components/slash-dropdown-menu/use-slash-items.mjs.map +1 -0
- package/dist/components/suggestion-menu/filter-suggestion-items.cjs +57 -0
- package/dist/components/suggestion-menu/filter-suggestion-items.cjs.map +1 -0
- package/dist/components/suggestion-menu/filter-suggestion-items.d.cts +6 -0
- package/dist/components/suggestion-menu/filter-suggestion-items.d.ts +6 -0
- package/dist/components/suggestion-menu/filter-suggestion-items.mjs +32 -0
- package/dist/components/suggestion-menu/filter-suggestion-items.mjs.map +1 -0
- package/dist/components/suggestion-menu/suggestion-menu-types.cjs +19 -0
- package/dist/components/suggestion-menu/suggestion-menu-types.cjs.map +1 -0
- package/dist/components/suggestion-menu/suggestion-menu-types.d.cts +22 -0
- package/dist/components/suggestion-menu/suggestion-menu-types.d.ts +22 -0
- package/dist/components/suggestion-menu/suggestion-menu-types.mjs +1 -0
- package/dist/components/suggestion-menu/suggestion-menu-types.mjs.map +1 -0
- package/dist/components/suggestion-menu/suggestion-menu.cjs +205 -0
- package/dist/components/suggestion-menu/suggestion-menu.cjs.map +1 -0
- package/dist/components/suggestion-menu/suggestion-menu.d.cts +27 -0
- package/dist/components/suggestion-menu/suggestion-menu.d.ts +27 -0
- package/dist/components/suggestion-menu/suggestion-menu.mjs +181 -0
- package/dist/components/suggestion-menu/suggestion-menu.mjs.map +1 -0
- package/dist/components/toolbar/toolbar.cjs +4 -2
- package/dist/components/toolbar/toolbar.cjs.map +1 -1
- package/dist/components/toolbar/toolbar.mjs +3 -2
- package/dist/components/toolbar/toolbar.mjs.map +1 -1
- package/dist/components/ui/button.cjs +5 -3
- package/dist/components/ui/button.cjs.map +1 -1
- package/dist/components/ui/button.mjs +4 -3
- package/dist/components/ui/button.mjs.map +1 -1
- package/dist/components/ui/command.cjs +6 -5
- package/dist/components/ui/command.cjs.map +1 -1
- package/dist/components/ui/command.mjs +5 -5
- package/dist/components/ui/command.mjs.map +1 -1
- package/dist/components/ui/dialog.cjs +5 -4
- package/dist/components/ui/dialog.cjs.map +1 -1
- package/dist/components/ui/dialog.mjs +4 -4
- package/dist/components/ui/dialog.mjs.map +1 -1
- package/dist/components/ui/dropdown-menu.cjs +4 -3
- package/dist/components/ui/dropdown-menu.cjs.map +1 -1
- package/dist/components/ui/dropdown-menu.mjs +3 -3
- package/dist/components/ui/dropdown-menu.mjs.map +1 -1
- package/dist/components/ui/input-group.cjs +9 -7
- package/dist/components/ui/input-group.cjs.map +1 -1
- package/dist/components/ui/input-group.d.cts +1 -1
- package/dist/components/ui/input-group.d.ts +1 -1
- package/dist/components/ui/input-group.mjs +9 -7
- package/dist/components/ui/input-group.mjs.map +1 -1
- package/dist/components/ui/input.cjs +3 -1
- package/dist/components/ui/input.cjs.map +1 -1
- package/dist/components/ui/input.mjs +2 -1
- package/dist/components/ui/input.mjs.map +1 -1
- package/dist/components/ui/popover.cjs +4 -3
- package/dist/components/ui/popover.cjs.map +1 -1
- package/dist/components/ui/popover.mjs +3 -3
- package/dist/components/ui/popover.mjs.map +1 -1
- package/dist/components/ui/separator.cjs +4 -3
- package/dist/components/ui/separator.cjs.map +1 -1
- package/dist/components/ui/separator.mjs +3 -3
- package/dist/components/ui/separator.mjs.map +1 -1
- package/dist/components/ui/spacer.cjs +2 -0
- package/dist/components/ui/spacer.cjs.map +1 -1
- package/dist/components/ui/spacer.mjs +1 -0
- package/dist/components/ui/spacer.mjs.map +1 -1
- package/dist/components/ui/textarea.cjs +3 -1
- package/dist/components/ui/textarea.cjs.map +1 -1
- package/dist/components/ui/textarea.mjs +2 -1
- package/dist/components/ui/textarea.mjs.map +1 -1
- package/dist/components/undo-redo-button/undo-redo-button.cjs +6 -4
- package/dist/components/undo-redo-button/undo-redo-button.cjs.map +1 -1
- package/dist/components/undo-redo-button/undo-redo-button.mjs +6 -4
- package/dist/components/undo-redo-button/undo-redo-button.mjs.map +1 -1
- package/dist/components/undo-redo-button/use-undo-redo.cjs +4 -2
- package/dist/components/undo-redo-button/use-undo-redo.cjs.map +1 -1
- package/dist/components/undo-redo-button/use-undo-redo.mjs +3 -2
- package/dist/components/undo-redo-button/use-undo-redo.mjs.map +1 -1
- package/dist/extensions/code-block.cjs +8 -6
- package/dist/extensions/code-block.cjs.map +1 -1
- package/dist/extensions/code-block.mjs +7 -6
- package/dist/extensions/code-block.mjs.map +1 -1
- package/dist/extensions/editor.cjs +5 -3
- package/dist/extensions/editor.cjs.map +1 -1
- package/dist/extensions/editor.mjs +4 -3
- package/dist/extensions/editor.mjs.map +1 -1
- package/dist/extensions/index.cjs +4 -2
- package/dist/extensions/index.cjs.map +1 -1
- package/dist/extensions/index.mjs +3 -2
- package/dist/extensions/index.mjs.map +1 -1
- package/dist/extensions/shared.cjs +5 -3
- package/dist/extensions/shared.cjs.map +1 -1
- package/dist/extensions/shared.mjs +4 -3
- package/dist/extensions/shared.mjs.map +1 -1
- package/dist/hooks/use-copy-to-clipboard.cjs +3 -2
- package/dist/hooks/use-copy-to-clipboard.cjs.map +1 -1
- package/dist/hooks/use-copy-to-clipboard.mjs +2 -2
- package/dist/hooks/use-copy-to-clipboard.mjs.map +1 -1
- package/dist/hooks/use-floating-element.cjs +55 -0
- package/dist/hooks/use-floating-element.cjs.map +1 -0
- package/dist/hooks/use-floating-element.d.cts +21 -0
- package/dist/hooks/use-floating-element.d.ts +21 -0
- package/dist/hooks/use-floating-element.mjs +35 -0
- package/dist/hooks/use-floating-element.mjs.map +1 -0
- package/dist/hooks/use-markdown-editor.cjs +6 -1
- package/dist/hooks/use-markdown-editor.cjs.map +1 -1
- package/dist/hooks/use-markdown-editor.d.cts +1 -1
- package/dist/hooks/use-markdown-editor.d.ts +1 -1
- package/dist/hooks/use-markdown-editor.mjs +5 -1
- package/dist/hooks/use-markdown-editor.mjs.map +1 -1
- package/dist/index.cjs +18 -16
- package/dist/index.cjs.map +1 -1
- package/dist/index.mjs +17 -16
- package/dist/index.mjs.map +1 -1
- package/dist/lib/highlight-code-to-html.cjs +2 -0
- package/dist/lib/highlight-code-to-html.cjs.map +1 -1
- package/dist/lib/highlight-code-to-html.mjs +1 -0
- package/dist/lib/highlight-code-to-html.mjs.map +1 -1
- package/dist/lib/languages.cjs +4 -2
- package/dist/lib/languages.cjs.map +1 -1
- package/dist/lib/languages.mjs +3 -2
- package/dist/lib/languages.mjs.map +1 -1
- package/dist/lib/utils.cjs +2 -0
- package/dist/lib/utils.cjs.map +1 -1
- package/dist/lib/utils.mjs +1 -0
- package/dist/lib/utils.mjs.map +1 -1
- package/dist/notra-editor.cjs +17 -13
- package/dist/notra-editor.cjs.map +1 -1
- package/dist/notra-editor.mjs +17 -13
- package/dist/notra-editor.mjs.map +1 -1
- package/dist/notra-reader.cjs +9 -7
- package/dist/notra-reader.cjs.map +1 -1
- package/dist/notra-reader.mjs +8 -7
- package/dist/notra-reader.mjs.map +1 -1
- package/dist/styles/globals.css +6 -0
- package/dist/themes/default/editor.css +50 -0
- package/dist/utils/markdown-to-json.cjs +5 -3
- package/dist/utils/markdown-to-json.cjs.map +1 -1
- package/dist/utils/markdown-to-json.mjs +4 -3
- package/dist/utils/markdown-to-json.mjs.map +1 -1
- package/package.json +4 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/extensions/code-block.ts"],"sourcesContent":["import { textblockTypeInputRule } from '@tiptap/core';\nimport { CodeBlockLowlight } from '@tiptap/extension-code-block-lowlight';\nimport { ReactNodeViewRenderer } from '@tiptap/react';\nimport { common, createLowlight } from 'lowlight';\n\nimport { CodeBlockView } from '../components/code-block-view/code-block-view';\nimport { normalizeLanguage } from '../lib/languages';\n\ntype Lowlight = ReturnType<typeof createLowlight>;\n\n// Module-level instance, shared by the default CodeBlockExtension and the\n// reader. Loads the lowlight `common` set (~37 mainstream languages, ~150 KB).\n// Consumers needing more or fewer languages should call createCodeBlockExtension\n// with their own instance and pass the same instance to <NotraReader lowlight={…} />.\nexport const defaultLowlight: Lowlight = createLowlight(common);\n\n// Mirrors the regexes in @tiptap/extension-code-block. Override the rules so\n// the captured language is collapsed to its canonical LANGUAGES value before\n// being written to the node attribute (e.g. ```js → language: \"javascript\").\nconst backtickInputRegex = /^```([a-z]+)?[\\s\\n]$/;\nconst tildeInputRegex = /^~~~([a-z]+)?[\\s\\n]$/;\n\nexport function createCodeBlockExtension(lowlight: Lowlight) {\n\treturn CodeBlockLowlight.configure({\n\t\tlowlight,\n\t\t// Tab inserts spaces instead of leaving the editor; Shift-Tab dedents.\n\t\tenableTabIndentation: true,\n\t\ttabSize: 2\n\t}).extend({\n\t\taddNodeView() {\n\t\t\treturn ReactNodeViewRenderer(CodeBlockView);\n\t\t},\n\t\taddKeyboardShortcuts() {\n\t\t\tconst parent = this.parent?.() ?? {};\n\n\t\t\t// Upstream's empty-selection Tab branch goes through\n\t\t\t// `editor.commands.insertContent(' '.repeat(tabSize))`, which\n\t\t\t// `tiptap-markdown` reroutes via its overridden `insertContentAt`\n\t\t\t// → `markdown.parser.parse(...)`. Whitespace-only input parses to\n\t\t\t// an empty document, so the spaces vanish while the keymap still\n\t\t\t// reports the event as handled. Use a raw transaction instead.\n\t\t\treturn {\n\t\t\t\t...parent,\n\t\t\t\tTab: ({ editor }) => {\n\t\t\t\t\tif (!this.options.enableTabIndentation) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\n\t\t\t\t\tconst tabSize = this.options.tabSize ?? 2;\n\t\t\t\t\tconst { selection } = editor.state;\n\t\t\t\t\tconst { $from, empty } = selection;\n\n\t\t\t\t\tif ($from.parent.type !== this.type) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\n\t\t\t\t\tconst indent = ' '.repeat(tabSize);\n\n\t\t\t\t\tif (empty) {\n\t\t\t\t\t\treturn editor.commands.command(({ tr }) => {\n\t\t\t\t\t\t\ttr.insertText(indent);\n\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\n\t\t\t\t\treturn editor.commands.command(({ tr, state }) => {\n\t\t\t\t\t\tconst { from, to } = selection;\n\t\t\t\t\t\tconst text = state.doc.textBetween(from, to, '\\n', '\\n');\n\t\t\t\t\t\tconst indented = text\n\t\t\t\t\t\t\t.split('\\n')\n\t\t\t\t\t\t\t.map((line) => indent + line)\n\t\t\t\t\t\t\t.join('\\n');\n\n\t\t\t\t\t\ttr.replaceWith(from, to, state.schema.text(indented));\n\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t};\n\t\t},\n\t\taddInputRules() {\n\t\t\treturn [\n\t\t\t\ttextblockTypeInputRule({\n\t\t\t\t\tfind: backtickInputRegex,\n\t\t\t\t\ttype: this.type,\n\t\t\t\t\tgetAttributes: (match) => ({\n\t\t\t\t\t\tlanguage: normalizeLanguage(match[1])\n\t\t\t\t\t})\n\t\t\t\t}),\n\t\t\t\ttextblockTypeInputRule({\n\t\t\t\t\tfind: tildeInputRegex,\n\t\t\t\t\ttype: this.type,\n\t\t\t\t\tgetAttributes: (match) => ({\n\t\t\t\t\t\tlanguage: normalizeLanguage(match[1])\n\t\t\t\t\t})\n\t\t\t\t})\n\t\t\t];\n\t\t}\n\t});\n}\n\nexport const CodeBlockExtension = createCodeBlockExtension(defaultLowlight);\n"],"mappings":"AAAA,SAAS,8BAA8B;AACvC,SAAS,yBAAyB;AAClC,SAAS,6BAA6B;AACtC,SAAS,QAAQ,sBAAsB;AAEvC,SAAS,qBAAqB;AAC9B,SAAS,yBAAyB;AAQ3B,
|
|
1
|
+
{"version":3,"sources":["../../src/extensions/code-block.ts"],"sourcesContent":["import { textblockTypeInputRule } from '@tiptap/core';\nimport { CodeBlockLowlight } from '@tiptap/extension-code-block-lowlight';\nimport { ReactNodeViewRenderer } from '@tiptap/react';\nimport { common, createLowlight } from 'lowlight';\n\nimport { CodeBlockView } from '../components/code-block-view/code-block-view.js';\nimport { normalizeLanguage } from '../lib/languages.js';\n\ntype Lowlight = ReturnType<typeof createLowlight>;\n\n// Module-level instance, shared by the default CodeBlockExtension and the\n// reader. Loads the lowlight `common` set (~37 mainstream languages, ~150 KB).\n// Consumers needing more or fewer languages should call createCodeBlockExtension\n// with their own instance and pass the same instance to <NotraReader lowlight={…} />.\nexport const defaultLowlight: Lowlight = createLowlight(common);\n\n// Mirrors the regexes in @tiptap/extension-code-block. Override the rules so\n// the captured language is collapsed to its canonical LANGUAGES value before\n// being written to the node attribute (e.g. ```js → language: \"javascript\").\nconst backtickInputRegex = /^```([a-z]+)?[\\s\\n]$/;\nconst tildeInputRegex = /^~~~([a-z]+)?[\\s\\n]$/;\n\nexport function createCodeBlockExtension(lowlight: Lowlight) {\n\treturn CodeBlockLowlight.configure({\n\t\tlowlight,\n\t\t// Tab inserts spaces instead of leaving the editor; Shift-Tab dedents.\n\t\tenableTabIndentation: true,\n\t\ttabSize: 2\n\t}).extend({\n\t\taddNodeView() {\n\t\t\treturn ReactNodeViewRenderer(CodeBlockView);\n\t\t},\n\t\taddKeyboardShortcuts() {\n\t\t\tconst parent = this.parent?.() ?? {};\n\n\t\t\t// Upstream's empty-selection Tab branch goes through\n\t\t\t// `editor.commands.insertContent(' '.repeat(tabSize))`, which\n\t\t\t// `tiptap-markdown` reroutes via its overridden `insertContentAt`\n\t\t\t// → `markdown.parser.parse(...)`. Whitespace-only input parses to\n\t\t\t// an empty document, so the spaces vanish while the keymap still\n\t\t\t// reports the event as handled. Use a raw transaction instead.\n\t\t\treturn {\n\t\t\t\t...parent,\n\t\t\t\tTab: ({ editor }) => {\n\t\t\t\t\tif (!this.options.enableTabIndentation) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\n\t\t\t\t\tconst tabSize = this.options.tabSize ?? 2;\n\t\t\t\t\tconst { selection } = editor.state;\n\t\t\t\t\tconst { $from, empty } = selection;\n\n\t\t\t\t\tif ($from.parent.type !== this.type) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\n\t\t\t\t\tconst indent = ' '.repeat(tabSize);\n\n\t\t\t\t\tif (empty) {\n\t\t\t\t\t\treturn editor.commands.command(({ tr }) => {\n\t\t\t\t\t\t\ttr.insertText(indent);\n\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\n\t\t\t\t\treturn editor.commands.command(({ tr, state }) => {\n\t\t\t\t\t\tconst { from, to } = selection;\n\t\t\t\t\t\tconst text = state.doc.textBetween(from, to, '\\n', '\\n');\n\t\t\t\t\t\tconst indented = text\n\t\t\t\t\t\t\t.split('\\n')\n\t\t\t\t\t\t\t.map((line) => indent + line)\n\t\t\t\t\t\t\t.join('\\n');\n\n\t\t\t\t\t\ttr.replaceWith(from, to, state.schema.text(indented));\n\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t};\n\t\t},\n\t\taddInputRules() {\n\t\t\treturn [\n\t\t\t\ttextblockTypeInputRule({\n\t\t\t\t\tfind: backtickInputRegex,\n\t\t\t\t\ttype: this.type,\n\t\t\t\t\tgetAttributes: (match) => ({\n\t\t\t\t\t\tlanguage: normalizeLanguage(match[1])\n\t\t\t\t\t})\n\t\t\t\t}),\n\t\t\t\ttextblockTypeInputRule({\n\t\t\t\t\tfind: tildeInputRegex,\n\t\t\t\t\ttype: this.type,\n\t\t\t\t\tgetAttributes: (match) => ({\n\t\t\t\t\t\tlanguage: normalizeLanguage(match[1])\n\t\t\t\t\t})\n\t\t\t\t})\n\t\t\t];\n\t\t}\n\t});\n}\n\nexport const CodeBlockExtension = createCodeBlockExtension(defaultLowlight);\n"],"mappings":";AAAA,SAAS,8BAA8B;AACvC,SAAS,yBAAyB;AAClC,SAAS,6BAA6B;AACtC,SAAS,QAAQ,sBAAsB;AAEvC,SAAS,qBAAqB;AAC9B,SAAS,yBAAyB;AAQ3B,IAAM,kBAA4B,eAAe,MAAM;AAK9D,IAAM,qBAAqB;AAC3B,IAAM,kBAAkB;AAEjB,SAAS,yBAAyB,UAAoB;AAC5D,SAAO,kBAAkB,UAAU;AAAA,IAClC;AAAA;AAAA,IAEA,sBAAsB;AAAA,IACtB,SAAS;AAAA,EACV,CAAC,EAAE,OAAO;AAAA,IACT,cAAc;AACb,aAAO,sBAAsB,aAAa;AAAA,IAC3C;AAAA,IACA,uBAAuB;AACtB,YAAM,SAAS,KAAK,SAAS,KAAK,CAAC;AAQnC,aAAO;AAAA,QACN,GAAG;AAAA,QACH,KAAK,CAAC,EAAE,OAAO,MAAM;AACpB,cAAI,CAAC,KAAK,QAAQ,sBAAsB;AACvC,mBAAO;AAAA,UACR;AAEA,gBAAM,UAAU,KAAK,QAAQ,WAAW;AACxC,gBAAM,EAAE,UAAU,IAAI,OAAO;AAC7B,gBAAM,EAAE,OAAO,MAAM,IAAI;AAEzB,cAAI,MAAM,OAAO,SAAS,KAAK,MAAM;AACpC,mBAAO;AAAA,UACR;AAEA,gBAAM,SAAS,IAAI,OAAO,OAAO;AAEjC,cAAI,OAAO;AACV,mBAAO,OAAO,SAAS,QAAQ,CAAC,EAAE,GAAG,MAAM;AAC1C,iBAAG,WAAW,MAAM;AAEpB,qBAAO;AAAA,YACR,CAAC;AAAA,UACF;AAEA,iBAAO,OAAO,SAAS,QAAQ,CAAC,EAAE,IAAI,MAAM,MAAM;AACjD,kBAAM,EAAE,MAAM,GAAG,IAAI;AACrB,kBAAM,OAAO,MAAM,IAAI,YAAY,MAAM,IAAI,MAAM,IAAI;AACvD,kBAAM,WAAW,KACf,MAAM,IAAI,EACV,IAAI,CAAC,SAAS,SAAS,IAAI,EAC3B,KAAK,IAAI;AAEX,eAAG,YAAY,MAAM,IAAI,MAAM,OAAO,KAAK,QAAQ,CAAC;AAEpD,mBAAO;AAAA,UACR,CAAC;AAAA,QACF;AAAA,MACD;AAAA,IACD;AAAA,IACA,gBAAgB;AACf,aAAO;AAAA,QACN,uBAAuB;AAAA,UACtB,MAAM;AAAA,UACN,MAAM,KAAK;AAAA,UACX,eAAe,CAAC,WAAW;AAAA,YAC1B,UAAU,kBAAkB,MAAM,CAAC,CAAC;AAAA,UACrC;AAAA,QACD,CAAC;AAAA,QACD,uBAAuB;AAAA,UACtB,MAAM;AAAA,UACN,MAAM,KAAK;AAAA,UACX,eAAe,CAAC,WAAW;AAAA,YAC1B,UAAU,kBAAkB,MAAM,CAAC,CAAC;AAAA,UACrC;AAAA,QACD,CAAC;AAAA,MACF;AAAA,IACD;AAAA,EACD,CAAC;AACF;AAEO,IAAM,qBAAqB,yBAAyB,eAAe;","names":[]}
|
|
@@ -26,6 +26,8 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
26
26
|
mod
|
|
27
27
|
));
|
|
28
28
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
+
|
|
30
|
+
// src/extensions/editor.ts
|
|
29
31
|
var editor_exports = {};
|
|
30
32
|
__export(editor_exports, {
|
|
31
33
|
editorExtensions: () => editorExtensions
|
|
@@ -35,9 +37,9 @@ var import_extension_image = __toESM(require("@tiptap/extension-image"), 1);
|
|
|
35
37
|
var import_extension_list = require("@tiptap/extension-list");
|
|
36
38
|
var import_starter_kit = __toESM(require("@tiptap/starter-kit"), 1);
|
|
37
39
|
var import_tiptap_markdown = require("tiptap-markdown");
|
|
38
|
-
var import_code_block = require("./code-block");
|
|
39
|
-
var import_shared = require("./shared");
|
|
40
|
-
|
|
40
|
+
var import_code_block = require("./code-block.cjs");
|
|
41
|
+
var import_shared = require("./shared.cjs");
|
|
42
|
+
var editorExtensions = [
|
|
41
43
|
import_starter_kit.default.configure({ ...import_shared.starterKitBaseConfig, codeBlock: false }),
|
|
42
44
|
import_extension_list.ListKit,
|
|
43
45
|
import_code_block.CodeBlockExtension,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/extensions/editor.ts"],"sourcesContent":["import Image from '@tiptap/extension-image';\nimport { ListKit } from '@tiptap/extension-list';\nimport StarterKit from '@tiptap/starter-kit';\nimport { Markdown } from 'tiptap-markdown';\n\nimport { CodeBlockExtension } from './code-block';\nimport { starterKitBaseConfig } from './shared';\n\n// Editor extensions = shared content model + interactive features + Markdown\n// codeBlock is disabled in StarterKit and replaced with the custom\n// CodeBlockExtension that mounts a NodeView (CodeBlockView).\nexport const editorExtensions = [\n\tStarterKit.configure({ ...starterKitBaseConfig, codeBlock: false }),\n\tListKit,\n\tCodeBlockExtension,\n\tImage,\n\tMarkdown.configure({\n\t\thtml: false,\n\t\ttransformPastedText: true,\n\t\ttransformCopiedText: true\n\t})\n];\n"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../../src/extensions/editor.ts"],"sourcesContent":["import Image from '@tiptap/extension-image';\nimport { ListKit } from '@tiptap/extension-list';\nimport StarterKit from '@tiptap/starter-kit';\nimport { Markdown } from 'tiptap-markdown';\n\nimport { CodeBlockExtension } from './code-block.js';\nimport { starterKitBaseConfig } from './shared.js';\n\n// Editor extensions = shared content model + interactive features + Markdown\n// codeBlock is disabled in StarterKit and replaced with the custom\n// CodeBlockExtension that mounts a NodeView (CodeBlockView).\nexport const editorExtensions = [\n\tStarterKit.configure({ ...starterKitBaseConfig, codeBlock: false }),\n\tListKit,\n\tCodeBlockExtension,\n\tImage,\n\tMarkdown.configure({\n\t\thtml: false,\n\t\ttransformPastedText: true,\n\t\ttransformCopiedText: true\n\t})\n];\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,6BAAkB;AAClB,4BAAwB;AACxB,yBAAuB;AACvB,6BAAyB;AAEzB,wBAAmC;AACnC,oBAAqC;AAK9B,IAAM,mBAAmB;AAAA,EAC/B,mBAAAA,QAAW,UAAU,EAAE,GAAG,oCAAsB,WAAW,MAAM,CAAC;AAAA,EAClE;AAAA,EACA;AAAA,EACA,uBAAAC;AAAA,EACA,gCAAS,UAAU;AAAA,IAClB,MAAM;AAAA,IACN,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,EACtB,CAAC;AACF;","names":["StarterKit","Image"]}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
|
+
// src/extensions/editor.ts
|
|
1
2
|
import Image from "@tiptap/extension-image";
|
|
2
3
|
import { ListKit } from "@tiptap/extension-list";
|
|
3
4
|
import StarterKit from "@tiptap/starter-kit";
|
|
4
5
|
import { Markdown } from "tiptap-markdown";
|
|
5
|
-
import { CodeBlockExtension } from "./code-block";
|
|
6
|
-
import { starterKitBaseConfig } from "./shared";
|
|
7
|
-
|
|
6
|
+
import { CodeBlockExtension } from "./code-block.mjs";
|
|
7
|
+
import { starterKitBaseConfig } from "./shared.mjs";
|
|
8
|
+
var editorExtensions = [
|
|
8
9
|
StarterKit.configure({ ...starterKitBaseConfig, codeBlock: false }),
|
|
9
10
|
ListKit,
|
|
10
11
|
CodeBlockExtension,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/extensions/editor.ts"],"sourcesContent":["import Image from '@tiptap/extension-image';\nimport { ListKit } from '@tiptap/extension-list';\nimport StarterKit from '@tiptap/starter-kit';\nimport { Markdown } from 'tiptap-markdown';\n\nimport { CodeBlockExtension } from './code-block';\nimport { starterKitBaseConfig } from './shared';\n\n// Editor extensions = shared content model + interactive features + Markdown\n// codeBlock is disabled in StarterKit and replaced with the custom\n// CodeBlockExtension that mounts a NodeView (CodeBlockView).\nexport const editorExtensions = [\n\tStarterKit.configure({ ...starterKitBaseConfig, codeBlock: false }),\n\tListKit,\n\tCodeBlockExtension,\n\tImage,\n\tMarkdown.configure({\n\t\thtml: false,\n\t\ttransformPastedText: true,\n\t\ttransformCopiedText: true\n\t})\n];\n"],"mappings":"AAAA,OAAO,WAAW;AAClB,SAAS,eAAe;AACxB,OAAO,gBAAgB;AACvB,SAAS,gBAAgB;AAEzB,SAAS,0BAA0B;AACnC,SAAS,4BAA4B;AAK9B,
|
|
1
|
+
{"version":3,"sources":["../../src/extensions/editor.ts"],"sourcesContent":["import Image from '@tiptap/extension-image';\nimport { ListKit } from '@tiptap/extension-list';\nimport StarterKit from '@tiptap/starter-kit';\nimport { Markdown } from 'tiptap-markdown';\n\nimport { CodeBlockExtension } from './code-block.js';\nimport { starterKitBaseConfig } from './shared.js';\n\n// Editor extensions = shared content model + interactive features + Markdown\n// codeBlock is disabled in StarterKit and replaced with the custom\n// CodeBlockExtension that mounts a NodeView (CodeBlockView).\nexport const editorExtensions = [\n\tStarterKit.configure({ ...starterKitBaseConfig, codeBlock: false }),\n\tListKit,\n\tCodeBlockExtension,\n\tImage,\n\tMarkdown.configure({\n\t\thtml: false,\n\t\ttransformPastedText: true,\n\t\ttransformCopiedText: true\n\t})\n];\n"],"mappings":";AAAA,OAAO,WAAW;AAClB,SAAS,eAAe;AACxB,OAAO,gBAAgB;AACvB,SAAS,gBAAgB;AAEzB,SAAS,0BAA0B;AACnC,SAAS,4BAA4B;AAK9B,IAAM,mBAAmB;AAAA,EAC/B,WAAW,UAAU,EAAE,GAAG,sBAAsB,WAAW,MAAM,CAAC;AAAA,EAClE;AAAA,EACA;AAAA,EACA;AAAA,EACA,SAAS,UAAU;AAAA,IAClB,MAAM;AAAA,IACN,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,EACtB,CAAC;AACF;","names":[]}
|
|
@@ -16,14 +16,16 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
16
16
|
return to;
|
|
17
17
|
};
|
|
18
18
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
|
|
20
|
+
// src/extensions/index.ts
|
|
19
21
|
var extensions_exports = {};
|
|
20
22
|
__export(extensions_exports, {
|
|
21
23
|
editorExtensions: () => import_editor.editorExtensions,
|
|
22
24
|
sharedExtensions: () => import_shared.sharedExtensions
|
|
23
25
|
});
|
|
24
26
|
module.exports = __toCommonJS(extensions_exports);
|
|
25
|
-
var import_shared = require("./shared");
|
|
26
|
-
var import_editor = require("./editor");
|
|
27
|
+
var import_shared = require("./shared.cjs");
|
|
28
|
+
var import_editor = require("./editor.cjs");
|
|
27
29
|
// Annotate the CommonJS export names for ESM import in node:
|
|
28
30
|
0 && (module.exports = {
|
|
29
31
|
editorExtensions,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/extensions/index.ts"],"sourcesContent":["export { sharedExtensions } from './shared';\nexport { editorExtensions } from './editor';\n"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../../src/extensions/index.ts"],"sourcesContent":["export { sharedExtensions } from './shared.js';\nexport { editorExtensions } from './editor.js';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAAiC;AACjC,oBAAiC;","names":[]}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
import {
|
|
1
|
+
// src/extensions/index.ts
|
|
2
|
+
import { sharedExtensions } from "./shared.mjs";
|
|
3
|
+
import { editorExtensions } from "./editor.mjs";
|
|
3
4
|
export {
|
|
4
5
|
editorExtensions,
|
|
5
6
|
sharedExtensions
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/extensions/index.ts"],"sourcesContent":["export { sharedExtensions } from './shared';\nexport { editorExtensions } from './editor';\n"],"mappings":"AAAA,SAAS,wBAAwB;AACjC,SAAS,wBAAwB;","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../src/extensions/index.ts"],"sourcesContent":["export { sharedExtensions } from './shared.js';\nexport { editorExtensions } from './editor.js';\n"],"mappings":";AAAA,SAAS,wBAAwB;AACjC,SAAS,wBAAwB;","names":[]}
|
|
@@ -26,6 +26,8 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
26
26
|
mod
|
|
27
27
|
));
|
|
28
28
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
+
|
|
30
|
+
// src/extensions/shared.ts
|
|
29
31
|
var shared_exports = {};
|
|
30
32
|
__export(shared_exports, {
|
|
31
33
|
sharedExtensions: () => sharedExtensions,
|
|
@@ -35,8 +37,8 @@ module.exports = __toCommonJS(shared_exports);
|
|
|
35
37
|
var import_extension_image = __toESM(require("@tiptap/extension-image"), 1);
|
|
36
38
|
var import_extension_list = require("@tiptap/extension-list");
|
|
37
39
|
var import_starter_kit = __toESM(require("@tiptap/starter-kit"), 1);
|
|
38
|
-
var import_code_block = require("./code-block");
|
|
39
|
-
|
|
40
|
+
var import_code_block = require("./code-block.cjs");
|
|
41
|
+
var starterKitBaseConfig = {
|
|
40
42
|
heading: { levels: [1, 2, 3, 4, 5, 6] },
|
|
41
43
|
link: {
|
|
42
44
|
openOnClick: false,
|
|
@@ -50,7 +52,7 @@ const starterKitBaseConfig = {
|
|
|
50
52
|
// Disable StarterKit's vanilla code-block; use the lowlight one instead
|
|
51
53
|
codeBlock: false
|
|
52
54
|
};
|
|
53
|
-
|
|
55
|
+
var sharedExtensions = [
|
|
54
56
|
import_starter_kit.default.configure({
|
|
55
57
|
...starterKitBaseConfig,
|
|
56
58
|
dropcursor: false,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/extensions/shared.ts"],"sourcesContent":["import Image from '@tiptap/extension-image';\nimport { ListKit } from '@tiptap/extension-list';\nimport StarterKit, { type StarterKitOptions } from '@tiptap/starter-kit';\n\nimport { CodeBlockExtension } from './code-block';\n\n// Shared StarterKit config: content nodes/marks, no lists (use ListKit instead),\n// no codeBlock (use the lowlight-extended CodeBlockExtension instead).\nexport const starterKitBaseConfig: Partial<StarterKitOptions> = {\n\theading: { levels: [1, 2, 3, 4, 5, 6] },\n\tlink: {\n\t\topenOnClick: false,\n\t\tautolink: true\n\t},\n\t// Disable StarterKit's built-in list handling; use @tiptap/extension-list instead\n\tbulletList: false,\n\torderedList: false,\n\tlistItem: false,\n\tlistKeymap: false,\n\t// Disable StarterKit's vanilla code-block; use the lowlight one instead\n\tcodeBlock: false\n};\n\n// Content model extensions — shared by editor and reader\n// No interactive features (dropcursor, gapcursor, undoRedo, trailingNode)\nexport const sharedExtensions = [\n\tStarterKit.configure({\n\t\t...starterKitBaseConfig,\n\t\tdropcursor: false,\n\t\tgapcursor: false,\n\t\tundoRedo: false,\n\t\ttrailingNode: false\n\t}),\n\tListKit,\n\tCodeBlockExtension,\n\tImage\n];\n"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../../src/extensions/shared.ts"],"sourcesContent":["import Image from '@tiptap/extension-image';\nimport { ListKit } from '@tiptap/extension-list';\nimport StarterKit, { type StarterKitOptions } from '@tiptap/starter-kit';\n\nimport { CodeBlockExtension } from './code-block.js';\n\n// Shared StarterKit config: content nodes/marks, no lists (use ListKit instead),\n// no codeBlock (use the lowlight-extended CodeBlockExtension instead).\nexport const starterKitBaseConfig: Partial<StarterKitOptions> = {\n\theading: { levels: [1, 2, 3, 4, 5, 6] },\n\tlink: {\n\t\topenOnClick: false,\n\t\tautolink: true\n\t},\n\t// Disable StarterKit's built-in list handling; use @tiptap/extension-list instead\n\tbulletList: false,\n\torderedList: false,\n\tlistItem: false,\n\tlistKeymap: false,\n\t// Disable StarterKit's vanilla code-block; use the lowlight one instead\n\tcodeBlock: false\n};\n\n// Content model extensions — shared by editor and reader\n// No interactive features (dropcursor, gapcursor, undoRedo, trailingNode)\nexport const sharedExtensions = [\n\tStarterKit.configure({\n\t\t...starterKitBaseConfig,\n\t\tdropcursor: false,\n\t\tgapcursor: false,\n\t\tundoRedo: false,\n\t\ttrailingNode: false\n\t}),\n\tListKit,\n\tCodeBlockExtension,\n\tImage\n];\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,6BAAkB;AAClB,4BAAwB;AACxB,yBAAmD;AAEnD,wBAAmC;AAI5B,IAAM,uBAAmD;AAAA,EAC/D,SAAS,EAAE,QAAQ,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,EAAE;AAAA,EACtC,MAAM;AAAA,IACL,aAAa;AAAA,IACb,UAAU;AAAA,EACX;AAAA;AAAA,EAEA,YAAY;AAAA,EACZ,aAAa;AAAA,EACb,UAAU;AAAA,EACV,YAAY;AAAA;AAAA,EAEZ,WAAW;AACZ;AAIO,IAAM,mBAAmB;AAAA,EAC/B,mBAAAA,QAAW,UAAU;AAAA,IACpB,GAAG;AAAA,IACH,YAAY;AAAA,IACZ,WAAW;AAAA,IACX,UAAU;AAAA,IACV,cAAc;AAAA,EACf,CAAC;AAAA,EACD;AAAA,EACA;AAAA,EACA,uBAAAC;AACD;","names":["StarterKit","Image"]}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
+
// src/extensions/shared.ts
|
|
1
2
|
import Image from "@tiptap/extension-image";
|
|
2
3
|
import { ListKit } from "@tiptap/extension-list";
|
|
3
4
|
import StarterKit from "@tiptap/starter-kit";
|
|
4
|
-
import { CodeBlockExtension } from "./code-block";
|
|
5
|
-
|
|
5
|
+
import { CodeBlockExtension } from "./code-block.mjs";
|
|
6
|
+
var starterKitBaseConfig = {
|
|
6
7
|
heading: { levels: [1, 2, 3, 4, 5, 6] },
|
|
7
8
|
link: {
|
|
8
9
|
openOnClick: false,
|
|
@@ -16,7 +17,7 @@ const starterKitBaseConfig = {
|
|
|
16
17
|
// Disable StarterKit's vanilla code-block; use the lowlight one instead
|
|
17
18
|
codeBlock: false
|
|
18
19
|
};
|
|
19
|
-
|
|
20
|
+
var sharedExtensions = [
|
|
20
21
|
StarterKit.configure({
|
|
21
22
|
...starterKitBaseConfig,
|
|
22
23
|
dropcursor: false,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/extensions/shared.ts"],"sourcesContent":["import Image from '@tiptap/extension-image';\nimport { ListKit } from '@tiptap/extension-list';\nimport StarterKit, { type StarterKitOptions } from '@tiptap/starter-kit';\n\nimport { CodeBlockExtension } from './code-block';\n\n// Shared StarterKit config: content nodes/marks, no lists (use ListKit instead),\n// no codeBlock (use the lowlight-extended CodeBlockExtension instead).\nexport const starterKitBaseConfig: Partial<StarterKitOptions> = {\n\theading: { levels: [1, 2, 3, 4, 5, 6] },\n\tlink: {\n\t\topenOnClick: false,\n\t\tautolink: true\n\t},\n\t// Disable StarterKit's built-in list handling; use @tiptap/extension-list instead\n\tbulletList: false,\n\torderedList: false,\n\tlistItem: false,\n\tlistKeymap: false,\n\t// Disable StarterKit's vanilla code-block; use the lowlight one instead\n\tcodeBlock: false\n};\n\n// Content model extensions — shared by editor and reader\n// No interactive features (dropcursor, gapcursor, undoRedo, trailingNode)\nexport const sharedExtensions = [\n\tStarterKit.configure({\n\t\t...starterKitBaseConfig,\n\t\tdropcursor: false,\n\t\tgapcursor: false,\n\t\tundoRedo: false,\n\t\ttrailingNode: false\n\t}),\n\tListKit,\n\tCodeBlockExtension,\n\tImage\n];\n"],"mappings":"AAAA,OAAO,WAAW;AAClB,SAAS,eAAe;AACxB,OAAO,gBAA4C;AAEnD,SAAS,0BAA0B;AAI5B,
|
|
1
|
+
{"version":3,"sources":["../../src/extensions/shared.ts"],"sourcesContent":["import Image from '@tiptap/extension-image';\nimport { ListKit } from '@tiptap/extension-list';\nimport StarterKit, { type StarterKitOptions } from '@tiptap/starter-kit';\n\nimport { CodeBlockExtension } from './code-block.js';\n\n// Shared StarterKit config: content nodes/marks, no lists (use ListKit instead),\n// no codeBlock (use the lowlight-extended CodeBlockExtension instead).\nexport const starterKitBaseConfig: Partial<StarterKitOptions> = {\n\theading: { levels: [1, 2, 3, 4, 5, 6] },\n\tlink: {\n\t\topenOnClick: false,\n\t\tautolink: true\n\t},\n\t// Disable StarterKit's built-in list handling; use @tiptap/extension-list instead\n\tbulletList: false,\n\torderedList: false,\n\tlistItem: false,\n\tlistKeymap: false,\n\t// Disable StarterKit's vanilla code-block; use the lowlight one instead\n\tcodeBlock: false\n};\n\n// Content model extensions — shared by editor and reader\n// No interactive features (dropcursor, gapcursor, undoRedo, trailingNode)\nexport const sharedExtensions = [\n\tStarterKit.configure({\n\t\t...starterKitBaseConfig,\n\t\tdropcursor: false,\n\t\tgapcursor: false,\n\t\tundoRedo: false,\n\t\ttrailingNode: false\n\t}),\n\tListKit,\n\tCodeBlockExtension,\n\tImage\n];\n"],"mappings":";AAAA,OAAO,WAAW;AAClB,SAAS,eAAe;AACxB,OAAO,gBAA4C;AAEnD,SAAS,0BAA0B;AAI5B,IAAM,uBAAmD;AAAA,EAC/D,SAAS,EAAE,QAAQ,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,EAAE;AAAA,EACtC,MAAM;AAAA,IACL,aAAa;AAAA,IACb,UAAU;AAAA,EACX;AAAA;AAAA,EAEA,YAAY;AAAA,EACZ,aAAa;AAAA,EACb,UAAU;AAAA,EACV,YAAY;AAAA;AAAA,EAEZ,WAAW;AACZ;AAIO,IAAM,mBAAmB;AAAA,EAC/B,WAAW,UAAU;AAAA,IACpB,GAAG;AAAA,IACH,YAAY;AAAA,IACZ,WAAW;AAAA,IACX,UAAU;AAAA,IACV,cAAc;AAAA,EACf,CAAC;AAAA,EACD;AAAA,EACA;AAAA,EACA;AACD;","names":[]}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
"use client";
|
|
3
2
|
var __defProp = Object.defineProperty;
|
|
4
3
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
4
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
@@ -17,13 +16,15 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
17
16
|
return to;
|
|
18
17
|
};
|
|
19
18
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
|
|
20
|
+
// src/hooks/use-copy-to-clipboard.ts
|
|
20
21
|
var use_copy_to_clipboard_exports = {};
|
|
21
22
|
__export(use_copy_to_clipboard_exports, {
|
|
22
23
|
useCopyToClipboard: () => useCopyToClipboard
|
|
23
24
|
});
|
|
24
25
|
module.exports = __toCommonJS(use_copy_to_clipboard_exports);
|
|
25
26
|
var import_react = require("react");
|
|
26
|
-
|
|
27
|
+
var useCopyToClipboard = ({
|
|
27
28
|
timeout = 2e3,
|
|
28
29
|
onCopy
|
|
29
30
|
} = {}) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/hooks/use-copy-to-clipboard.ts"],"sourcesContent":["
|
|
1
|
+
{"version":3,"sources":["../../src/hooks/use-copy-to-clipboard.ts"],"sourcesContent":["import { useState } from 'react';\n\ninterface UseCopyToClipboardOptions {\n\ttimeout?: number;\n\tonCopy?: () => void;\n}\n\nexport const useCopyToClipboard = ({\n\ttimeout = 2000,\n\tonCopy\n}: UseCopyToClipboardOptions = {}) => {\n\tconst [isCopied, setIsCopied] = useState(false);\n\n\tconst copyToClipboard = (value: string) => {\n\t\tif (typeof window === 'undefined' || !navigator.clipboard?.writeText) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (!value) return;\n\n\t\tnavigator.clipboard.writeText(value).then(() => {\n\t\t\tsetIsCopied(true);\n\t\t\tonCopy?.();\n\n\t\t\tsetTimeout(() => {\n\t\t\t\tsetIsCopied(false);\n\t\t\t}, timeout);\n\t\t}, console.error);\n\t};\n\n\treturn { isCopied, copyToClipboard };\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAAyB;AAOlB,IAAM,qBAAqB,CAAC;AAAA,EAClC,UAAU;AAAA,EACV;AACD,IAA+B,CAAC,MAAM;AACrC,QAAM,CAAC,UAAU,WAAW,QAAI,uBAAS,KAAK;AAE9C,QAAM,kBAAkB,CAAC,UAAkB;AAC1C,QAAI,OAAO,WAAW,eAAe,CAAC,UAAU,WAAW,WAAW;AACrE;AAAA,IACD;AAEA,QAAI,CAAC,MAAO;AAEZ,cAAU,UAAU,UAAU,KAAK,EAAE,KAAK,MAAM;AAC/C,kBAAY,IAAI;AAChB,eAAS;AAET,iBAAW,MAAM;AAChB,oBAAY,KAAK;AAAA,MAClB,GAAG,OAAO;AAAA,IACX,GAAG,QAAQ,KAAK;AAAA,EACjB;AAEA,SAAO,EAAE,UAAU,gBAAgB;AACpC;","names":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/hooks/use-copy-to-clipboard.ts"],"sourcesContent":["
|
|
1
|
+
{"version":3,"sources":["../../src/hooks/use-copy-to-clipboard.ts"],"sourcesContent":["import { useState } from 'react';\n\ninterface UseCopyToClipboardOptions {\n\ttimeout?: number;\n\tonCopy?: () => void;\n}\n\nexport const useCopyToClipboard = ({\n\ttimeout = 2000,\n\tonCopy\n}: UseCopyToClipboardOptions = {}) => {\n\tconst [isCopied, setIsCopied] = useState(false);\n\n\tconst copyToClipboard = (value: string) => {\n\t\tif (typeof window === 'undefined' || !navigator.clipboard?.writeText) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (!value) return;\n\n\t\tnavigator.clipboard.writeText(value).then(() => {\n\t\t\tsetIsCopied(true);\n\t\t\tonCopy?.();\n\n\t\t\tsetTimeout(() => {\n\t\t\t\tsetIsCopied(false);\n\t\t\t}, timeout);\n\t\t}, console.error);\n\t};\n\n\treturn { isCopied, copyToClipboard };\n};\n"],"mappings":";AAAA,SAAS,gBAAgB;AAOlB,IAAM,qBAAqB,CAAC;AAAA,EAClC,UAAU;AAAA,EACV;AACD,IAA+B,CAAC,MAAM;AACrC,QAAM,CAAC,UAAU,WAAW,IAAI,SAAS,KAAK;AAE9C,QAAM,kBAAkB,CAAC,UAAkB;AAC1C,QAAI,OAAO,WAAW,eAAe,CAAC,UAAU,WAAW,WAAW;AACrE;AAAA,IACD;AAEA,QAAI,CAAC,MAAO;AAEZ,cAAU,UAAU,UAAU,KAAK,EAAE,KAAK,MAAM;AAC/C,kBAAY,IAAI;AAChB,eAAS;AAET,iBAAW,MAAM;AAChB,oBAAY,KAAK;AAAA,MAClB,GAAG,OAAO;AAAA,IACX,GAAG,QAAQ,KAAK;AAAA,EACjB;AAEA,SAAO,EAAE,UAAU,gBAAgB;AACpC;","names":[]}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
|
|
20
|
+
// src/hooks/use-floating-element.ts
|
|
21
|
+
var use_floating_element_exports = {};
|
|
22
|
+
__export(use_floating_element_exports, {
|
|
23
|
+
useFloatingElement: () => useFloatingElement
|
|
24
|
+
});
|
|
25
|
+
module.exports = __toCommonJS(use_floating_element_exports);
|
|
26
|
+
var import_react = require("@floating-ui/react");
|
|
27
|
+
var import_react2 = require("react");
|
|
28
|
+
function useFloatingElement(open, reference, zIndex, options = {}) {
|
|
29
|
+
const { refs, floatingStyles, context } = (0, import_react.useFloating)({
|
|
30
|
+
open,
|
|
31
|
+
strategy: "absolute",
|
|
32
|
+
whileElementsMounted: import_react.autoUpdate,
|
|
33
|
+
...options
|
|
34
|
+
});
|
|
35
|
+
(0, import_react2.useEffect)(() => {
|
|
36
|
+
refs.setReference(reference);
|
|
37
|
+
}, [refs, reference]);
|
|
38
|
+
const dismiss = (0, import_react.useDismiss)(context);
|
|
39
|
+
const { getFloatingProps } = (0, import_react.useInteractions)([dismiss]);
|
|
40
|
+
const style = (0, import_react2.useMemo)(
|
|
41
|
+
() => ({ ...floatingStyles, zIndex }),
|
|
42
|
+
[floatingStyles, zIndex]
|
|
43
|
+
);
|
|
44
|
+
return {
|
|
45
|
+
setFloatingRef: refs.setFloating,
|
|
46
|
+
style,
|
|
47
|
+
getFloatingProps,
|
|
48
|
+
isMounted: open && reference !== null
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
52
|
+
0 && (module.exports = {
|
|
53
|
+
useFloatingElement
|
|
54
|
+
});
|
|
55
|
+
//# sourceMappingURL=use-floating-element.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/hooks/use-floating-element.ts"],"sourcesContent":["import {\n\tuseFloating,\n\tuseInteractions,\n\tuseDismiss,\n\tautoUpdate\n} from '@floating-ui/react';\nimport { useEffect, useMemo } from 'react';\n\nimport type { UseFloatingOptions, ReferenceType } from '@floating-ui/react';\nimport type { CSSProperties } from 'react';\n\ninterface UseFloatingElementResult {\n\t/** Ref callback to attach to the floating element. */\n\tsetFloatingRef: (node: HTMLElement | null) => void;\n\t/** Inline style with computed position. */\n\tstyle: CSSProperties;\n\t/** Spread onto the floating element to wire dismiss handlers. */\n\tgetFloatingProps: () => Record<string, unknown>;\n\t/** True once the element has rendered at least once with a position. */\n\tisMounted: boolean;\n}\n\n/**\n * Position a floating element next to a reference DOM node using\n * @floating-ui/react. Re-positions on scroll/resize via autoUpdate while\n * the element is open.\n */\nexport function useFloatingElement(\n\topen: boolean,\n\treference: ReferenceType | null,\n\tzIndex: number,\n\toptions: Partial<UseFloatingOptions> = {}\n): UseFloatingElementResult {\n\tconst { refs, floatingStyles, context } = useFloating({\n\t\topen,\n\t\tstrategy: 'absolute',\n\t\twhileElementsMounted: autoUpdate,\n\t\t...options\n\t});\n\n\tuseEffect(() => {\n\t\trefs.setReference(reference);\n\t}, [refs, reference]);\n\n\tconst dismiss = useDismiss(context);\n\tconst { getFloatingProps } = useInteractions([dismiss]);\n\n\tconst style = useMemo<CSSProperties>(\n\t\t() => ({ ...floatingStyles, zIndex }),\n\t\t[floatingStyles, zIndex]\n\t);\n\n\treturn {\n\t\tsetFloatingRef: refs.setFloating,\n\t\tstyle,\n\t\tgetFloatingProps,\n\t\tisMounted: open && reference !== null\n\t};\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAKO;AACP,IAAAA,gBAAmC;AAqB5B,SAAS,mBACf,MACA,WACA,QACA,UAAuC,CAAC,GACb;AAC3B,QAAM,EAAE,MAAM,gBAAgB,QAAQ,QAAI,0BAAY;AAAA,IACrD;AAAA,IACA,UAAU;AAAA,IACV,sBAAsB;AAAA,IACtB,GAAG;AAAA,EACJ,CAAC;AAED,+BAAU,MAAM;AACf,SAAK,aAAa,SAAS;AAAA,EAC5B,GAAG,CAAC,MAAM,SAAS,CAAC;AAEpB,QAAM,cAAU,yBAAW,OAAO;AAClC,QAAM,EAAE,iBAAiB,QAAI,8BAAgB,CAAC,OAAO,CAAC;AAEtD,QAAM,YAAQ;AAAA,IACb,OAAO,EAAE,GAAG,gBAAgB,OAAO;AAAA,IACnC,CAAC,gBAAgB,MAAM;AAAA,EACxB;AAEA,SAAO;AAAA,IACN,gBAAgB,KAAK;AAAA,IACrB;AAAA,IACA;AAAA,IACA,WAAW,QAAQ,cAAc;AAAA,EAClC;AACD;","names":["import_react"]}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { ReferenceType, UseFloatingOptions } from '@floating-ui/react';
|
|
2
|
+
import { CSSProperties } from 'react';
|
|
3
|
+
|
|
4
|
+
interface UseFloatingElementResult {
|
|
5
|
+
/** Ref callback to attach to the floating element. */
|
|
6
|
+
setFloatingRef: (node: HTMLElement | null) => void;
|
|
7
|
+
/** Inline style with computed position. */
|
|
8
|
+
style: CSSProperties;
|
|
9
|
+
/** Spread onto the floating element to wire dismiss handlers. */
|
|
10
|
+
getFloatingProps: () => Record<string, unknown>;
|
|
11
|
+
/** True once the element has rendered at least once with a position. */
|
|
12
|
+
isMounted: boolean;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Position a floating element next to a reference DOM node using
|
|
16
|
+
* @floating-ui/react. Re-positions on scroll/resize via autoUpdate while
|
|
17
|
+
* the element is open.
|
|
18
|
+
*/
|
|
19
|
+
declare function useFloatingElement(open: boolean, reference: ReferenceType | null, zIndex: number, options?: Partial<UseFloatingOptions>): UseFloatingElementResult;
|
|
20
|
+
|
|
21
|
+
export { useFloatingElement };
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { ReferenceType, UseFloatingOptions } from '@floating-ui/react';
|
|
2
|
+
import { CSSProperties } from 'react';
|
|
3
|
+
|
|
4
|
+
interface UseFloatingElementResult {
|
|
5
|
+
/** Ref callback to attach to the floating element. */
|
|
6
|
+
setFloatingRef: (node: HTMLElement | null) => void;
|
|
7
|
+
/** Inline style with computed position. */
|
|
8
|
+
style: CSSProperties;
|
|
9
|
+
/** Spread onto the floating element to wire dismiss handlers. */
|
|
10
|
+
getFloatingProps: () => Record<string, unknown>;
|
|
11
|
+
/** True once the element has rendered at least once with a position. */
|
|
12
|
+
isMounted: boolean;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Position a floating element next to a reference DOM node using
|
|
16
|
+
* @floating-ui/react. Re-positions on scroll/resize via autoUpdate while
|
|
17
|
+
* the element is open.
|
|
18
|
+
*/
|
|
19
|
+
declare function useFloatingElement(open: boolean, reference: ReferenceType | null, zIndex: number, options?: Partial<UseFloatingOptions>): UseFloatingElementResult;
|
|
20
|
+
|
|
21
|
+
export { useFloatingElement };
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
// src/hooks/use-floating-element.ts
|
|
2
|
+
import {
|
|
3
|
+
useFloating,
|
|
4
|
+
useInteractions,
|
|
5
|
+
useDismiss,
|
|
6
|
+
autoUpdate
|
|
7
|
+
} from "@floating-ui/react";
|
|
8
|
+
import { useEffect, useMemo } from "react";
|
|
9
|
+
function useFloatingElement(open, reference, zIndex, options = {}) {
|
|
10
|
+
const { refs, floatingStyles, context } = useFloating({
|
|
11
|
+
open,
|
|
12
|
+
strategy: "absolute",
|
|
13
|
+
whileElementsMounted: autoUpdate,
|
|
14
|
+
...options
|
|
15
|
+
});
|
|
16
|
+
useEffect(() => {
|
|
17
|
+
refs.setReference(reference);
|
|
18
|
+
}, [refs, reference]);
|
|
19
|
+
const dismiss = useDismiss(context);
|
|
20
|
+
const { getFloatingProps } = useInteractions([dismiss]);
|
|
21
|
+
const style = useMemo(
|
|
22
|
+
() => ({ ...floatingStyles, zIndex }),
|
|
23
|
+
[floatingStyles, zIndex]
|
|
24
|
+
);
|
|
25
|
+
return {
|
|
26
|
+
setFloatingRef: refs.setFloating,
|
|
27
|
+
style,
|
|
28
|
+
getFloatingProps,
|
|
29
|
+
isMounted: open && reference !== null
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
export {
|
|
33
|
+
useFloatingElement
|
|
34
|
+
};
|
|
35
|
+
//# sourceMappingURL=use-floating-element.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/hooks/use-floating-element.ts"],"sourcesContent":["import {\n\tuseFloating,\n\tuseInteractions,\n\tuseDismiss,\n\tautoUpdate\n} from '@floating-ui/react';\nimport { useEffect, useMemo } from 'react';\n\nimport type { UseFloatingOptions, ReferenceType } from '@floating-ui/react';\nimport type { CSSProperties } from 'react';\n\ninterface UseFloatingElementResult {\n\t/** Ref callback to attach to the floating element. */\n\tsetFloatingRef: (node: HTMLElement | null) => void;\n\t/** Inline style with computed position. */\n\tstyle: CSSProperties;\n\t/** Spread onto the floating element to wire dismiss handlers. */\n\tgetFloatingProps: () => Record<string, unknown>;\n\t/** True once the element has rendered at least once with a position. */\n\tisMounted: boolean;\n}\n\n/**\n * Position a floating element next to a reference DOM node using\n * @floating-ui/react. Re-positions on scroll/resize via autoUpdate while\n * the element is open.\n */\nexport function useFloatingElement(\n\topen: boolean,\n\treference: ReferenceType | null,\n\tzIndex: number,\n\toptions: Partial<UseFloatingOptions> = {}\n): UseFloatingElementResult {\n\tconst { refs, floatingStyles, context } = useFloating({\n\t\topen,\n\t\tstrategy: 'absolute',\n\t\twhileElementsMounted: autoUpdate,\n\t\t...options\n\t});\n\n\tuseEffect(() => {\n\t\trefs.setReference(reference);\n\t}, [refs, reference]);\n\n\tconst dismiss = useDismiss(context);\n\tconst { getFloatingProps } = useInteractions([dismiss]);\n\n\tconst style = useMemo<CSSProperties>(\n\t\t() => ({ ...floatingStyles, zIndex }),\n\t\t[floatingStyles, zIndex]\n\t);\n\n\treturn {\n\t\tsetFloatingRef: refs.setFloating,\n\t\tstyle,\n\t\tgetFloatingProps,\n\t\tisMounted: open && reference !== null\n\t};\n}\n"],"mappings":";AAAA;AAAA,EACC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACM;AACP,SAAS,WAAW,eAAe;AAqB5B,SAAS,mBACf,MACA,WACA,QACA,UAAuC,CAAC,GACb;AAC3B,QAAM,EAAE,MAAM,gBAAgB,QAAQ,IAAI,YAAY;AAAA,IACrD;AAAA,IACA,UAAU;AAAA,IACV,sBAAsB;AAAA,IACtB,GAAG;AAAA,EACJ,CAAC;AAED,YAAU,MAAM;AACf,SAAK,aAAa,SAAS;AAAA,EAC5B,GAAG,CAAC,MAAM,SAAS,CAAC;AAEpB,QAAM,UAAU,WAAW,OAAO;AAClC,QAAM,EAAE,iBAAiB,IAAI,gBAAgB,CAAC,OAAO,CAAC;AAEtD,QAAM,QAAQ;AAAA,IACb,OAAO,EAAE,GAAG,gBAAgB,OAAO;AAAA,IACnC,CAAC,gBAAgB,MAAM;AAAA,EACxB;AAEA,SAAO;AAAA,IACN,gBAAgB,KAAK;AAAA,IACrB;AAAA,IACA;AAAA,IACA,WAAW,QAAQ,cAAc;AAAA,EAClC;AACD;","names":[]}
|
|
@@ -16,6 +16,8 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
16
16
|
return to;
|
|
17
17
|
};
|
|
18
18
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
|
|
20
|
+
// src/hooks/use-markdown-editor.ts
|
|
19
21
|
var use_markdown_editor_exports = {};
|
|
20
22
|
__export(use_markdown_editor_exports, {
|
|
21
23
|
useMarkdownEditor: () => useMarkdownEditor
|
|
@@ -24,7 +26,7 @@ module.exports = __toCommonJS(use_markdown_editor_exports);
|
|
|
24
26
|
var import_state = require("@tiptap/pm/state");
|
|
25
27
|
var import_react = require("@tiptap/react");
|
|
26
28
|
var import_react2 = require("react");
|
|
27
|
-
var import_extensions = require("../extensions");
|
|
29
|
+
var import_extensions = require("../extensions/index.cjs");
|
|
28
30
|
function getMarkdown(storage) {
|
|
29
31
|
return storage.markdown.getMarkdown();
|
|
30
32
|
}
|
|
@@ -40,6 +42,9 @@ function useMarkdownEditor({
|
|
|
40
42
|
extensions: import_extensions.editorExtensions,
|
|
41
43
|
editable,
|
|
42
44
|
content: value,
|
|
45
|
+
// Defer initial render until after hydration so the editor is safe to use
|
|
46
|
+
// in Next.js App Router and other SSR environments.
|
|
47
|
+
immediatelyRender: false,
|
|
43
48
|
editorProps: {
|
|
44
49
|
attributes: {
|
|
45
50
|
autocomplete: "off",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/hooks/use-markdown-editor.ts"],"sourcesContent":["import { EditorState } from '@tiptap/pm/state';\nimport { useEditor } from '@tiptap/react';\nimport { useEffect, useRef } from 'react';\n\nimport { editorExtensions } from '../extensions';\n\nimport type { MarkdownStorage } from 'tiptap-markdown';\n\nexport interface UseMarkdownEditorOptions {\n\tvalue: string;\n\tonChange: (value: string) => void;\n\teditable?: boolean;\n}\n\nfunction getMarkdown(storage: Record<string, unknown>): string {\n\treturn (storage.markdown as MarkdownStorage).getMarkdown();\n}\n\nexport function useMarkdownEditor({\n\tvalue,\n\tonChange,\n\teditable = true\n}: UseMarkdownEditorOptions) {\n\tconst externalValue = useRef(value);\n\tconst onChangeRef = useRef(onChange);\n\n\tonChangeRef.current = onChange;\n\n\tconst editor = useEditor({\n\t\textensions: editorExtensions,\n\t\teditable,\n\t\tcontent: value,\n\t\teditorProps: {\n\t\t\tattributes: {\n\t\t\t\tautocomplete: 'off',\n\t\t\t\tautocorrect: 'off',\n\t\t\t\tautocapitalize: 'off',\n\t\t\t\t'aria-label': 'Main content area, start typing to enter text.',\n\t\t\t\tclass: 'notra-prose'\n\t\t\t}\n\t\t},\n\t\tonUpdate({ editor }) {\n\t\t\tconst md = getMarkdown(\n\t\t\t\teditor.storage as unknown as Record<string, unknown>\n\t\t\t);\n\n\t\t\texternalValue.current = md;\n\t\t\tonChangeRef.current(md);\n\t\t},\n\t\tonCreate({ editor }) {\n\t\t\t// Browser-specific behaviors (MutationObserver, DOM reconciliation)\n\t\t\t// may create unwanted transactions during mount, polluting the history\n\t\t\t// and making undo available before the user has made any changes.\n\t\t\t// Reset the editor state after initialization to ensure a clean history.\n\t\t\tsetTimeout(() => {\n\t\t\t\tif (editor.isDestroyed) return;\n\n\t\t\t\tconst { state } = editor;\n\t\t\t\tconst freshState = EditorState.create({\n\t\t\t\t\tdoc: state.doc,\n\t\t\t\t\tselection: state.selection,\n\t\t\t\t\tplugins: state.plugins\n\t\t\t\t});\n\n\t\t\t\teditor.view.updateState(freshState);\n\t\t\t\t// Dispatch empty transaction to notify state listeners (undo/redo buttons)\n\t\t\t\teditor.view.dispatch(editor.view.state.tr);\n\t\t\t}, 0);\n\t\t}\n\t});\n\n\tuseEffect(() => {\n\t\tif (!editor) return;\n\n\t\tif (value === externalValue.current) return;\n\n\t\texternalValue.current = value;\n\t\teditor.commands.setContent(value);\n\t}, [value, editor]);\n\n\tuseEffect(() => {\n\t\tif (!editor) return;\n\n\t\teditor.setEditable(editable);\n\t}, [editable, editor]);\n\n\treturn { editor };\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../../src/hooks/use-markdown-editor.ts"],"sourcesContent":["import { EditorState } from '@tiptap/pm/state';\nimport { useEditor } from '@tiptap/react';\nimport { useEffect, useRef } from 'react';\n\nimport { editorExtensions } from '../extensions/index.js';\n\nimport type { MarkdownStorage } from 'tiptap-markdown';\n\nexport interface UseMarkdownEditorOptions {\n\tvalue: string;\n\tonChange: (value: string) => void;\n\teditable?: boolean;\n}\n\nfunction getMarkdown(storage: Record<string, unknown>): string {\n\treturn (storage.markdown as MarkdownStorage).getMarkdown();\n}\n\nexport function useMarkdownEditor({\n\tvalue,\n\tonChange,\n\teditable = true\n}: UseMarkdownEditorOptions) {\n\tconst externalValue = useRef(value);\n\tconst onChangeRef = useRef(onChange);\n\n\tonChangeRef.current = onChange;\n\n\tconst editor = useEditor({\n\t\textensions: editorExtensions,\n\t\teditable,\n\t\tcontent: value,\n\t\t// Defer initial render until after hydration so the editor is safe to use\n\t\t// in Next.js App Router and other SSR environments.\n\t\timmediatelyRender: false,\n\t\teditorProps: {\n\t\t\tattributes: {\n\t\t\t\tautocomplete: 'off',\n\t\t\t\tautocorrect: 'off',\n\t\t\t\tautocapitalize: 'off',\n\t\t\t\t'aria-label': 'Main content area, start typing to enter text.',\n\t\t\t\tclass: 'notra-prose'\n\t\t\t}\n\t\t},\n\t\tonUpdate({ editor }) {\n\t\t\tconst md = getMarkdown(\n\t\t\t\teditor.storage as unknown as Record<string, unknown>\n\t\t\t);\n\n\t\t\texternalValue.current = md;\n\t\t\tonChangeRef.current(md);\n\t\t},\n\t\tonCreate({ editor }) {\n\t\t\t// Browser-specific behaviors (MutationObserver, DOM reconciliation)\n\t\t\t// may create unwanted transactions during mount, polluting the history\n\t\t\t// and making undo available before the user has made any changes.\n\t\t\t// Reset the editor state after initialization to ensure a clean history.\n\t\t\tsetTimeout(() => {\n\t\t\t\tif (editor.isDestroyed) return;\n\n\t\t\t\tconst { state } = editor;\n\t\t\t\tconst freshState = EditorState.create({\n\t\t\t\t\tdoc: state.doc,\n\t\t\t\t\tselection: state.selection,\n\t\t\t\t\tplugins: state.plugins\n\t\t\t\t});\n\n\t\t\t\teditor.view.updateState(freshState);\n\t\t\t\t// Dispatch empty transaction to notify state listeners (undo/redo buttons)\n\t\t\t\teditor.view.dispatch(editor.view.state.tr);\n\t\t\t}, 0);\n\t\t}\n\t});\n\n\tuseEffect(() => {\n\t\tif (!editor) return;\n\n\t\tif (value === externalValue.current) return;\n\n\t\texternalValue.current = value;\n\t\teditor.commands.setContent(value);\n\t}, [value, editor]);\n\n\tuseEffect(() => {\n\t\tif (!editor) return;\n\n\t\teditor.setEditable(editable);\n\t}, [editable, editor]);\n\n\treturn { editor };\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAA4B;AAC5B,mBAA0B;AAC1B,IAAAA,gBAAkC;AAElC,wBAAiC;AAUjC,SAAS,YAAY,SAA0C;AAC9D,SAAQ,QAAQ,SAA6B,YAAY;AAC1D;AAEO,SAAS,kBAAkB;AAAA,EACjC;AAAA,EACA;AAAA,EACA,WAAW;AACZ,GAA6B;AAC5B,QAAM,oBAAgB,sBAAO,KAAK;AAClC,QAAM,kBAAc,sBAAO,QAAQ;AAEnC,cAAY,UAAU;AAEtB,QAAM,aAAS,wBAAU;AAAA,IACxB,YAAY;AAAA,IACZ;AAAA,IACA,SAAS;AAAA;AAAA;AAAA,IAGT,mBAAmB;AAAA,IACnB,aAAa;AAAA,MACZ,YAAY;AAAA,QACX,cAAc;AAAA,QACd,aAAa;AAAA,QACb,gBAAgB;AAAA,QAChB,cAAc;AAAA,QACd,OAAO;AAAA,MACR;AAAA,IACD;AAAA,IACA,SAAS,EAAE,QAAAC,QAAO,GAAG;AACpB,YAAM,KAAK;AAAA,QACVA,QAAO;AAAA,MACR;AAEA,oBAAc,UAAU;AACxB,kBAAY,QAAQ,EAAE;AAAA,IACvB;AAAA,IACA,SAAS,EAAE,QAAAA,QAAO,GAAG;AAKpB,iBAAW,MAAM;AAChB,YAAIA,QAAO,YAAa;AAExB,cAAM,EAAE,MAAM,IAAIA;AAClB,cAAM,aAAa,yBAAY,OAAO;AAAA,UACrC,KAAK,MAAM;AAAA,UACX,WAAW,MAAM;AAAA,UACjB,SAAS,MAAM;AAAA,QAChB,CAAC;AAED,QAAAA,QAAO,KAAK,YAAY,UAAU;AAElC,QAAAA,QAAO,KAAK,SAASA,QAAO,KAAK,MAAM,EAAE;AAAA,MAC1C,GAAG,CAAC;AAAA,IACL;AAAA,EACD,CAAC;AAED,+BAAU,MAAM;AACf,QAAI,CAAC,OAAQ;AAEb,QAAI,UAAU,cAAc,QAAS;AAErC,kBAAc,UAAU;AACxB,WAAO,SAAS,WAAW,KAAK;AAAA,EACjC,GAAG,CAAC,OAAO,MAAM,CAAC;AAElB,+BAAU,MAAM;AACf,QAAI,CAAC,OAAQ;AAEb,WAAO,YAAY,QAAQ;AAAA,EAC5B,GAAG,CAAC,UAAU,MAAM,CAAC;AAErB,SAAO,EAAE,OAAO;AACjB;","names":["import_react","editor"]}
|
|
@@ -6,7 +6,7 @@ interface UseMarkdownEditorOptions {
|
|
|
6
6
|
editable?: boolean;
|
|
7
7
|
}
|
|
8
8
|
declare function useMarkdownEditor({ value, onChange, editable }: UseMarkdownEditorOptions): {
|
|
9
|
-
editor: _tiptap_core.Editor;
|
|
9
|
+
editor: _tiptap_core.Editor | null;
|
|
10
10
|
};
|
|
11
11
|
|
|
12
12
|
export { type UseMarkdownEditorOptions, useMarkdownEditor };
|
|
@@ -6,7 +6,7 @@ interface UseMarkdownEditorOptions {
|
|
|
6
6
|
editable?: boolean;
|
|
7
7
|
}
|
|
8
8
|
declare function useMarkdownEditor({ value, onChange, editable }: UseMarkdownEditorOptions): {
|
|
9
|
-
editor: _tiptap_core.Editor;
|
|
9
|
+
editor: _tiptap_core.Editor | null;
|
|
10
10
|
};
|
|
11
11
|
|
|
12
12
|
export { type UseMarkdownEditorOptions, useMarkdownEditor };
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
+
// src/hooks/use-markdown-editor.ts
|
|
1
2
|
import { EditorState } from "@tiptap/pm/state";
|
|
2
3
|
import { useEditor } from "@tiptap/react";
|
|
3
4
|
import { useEffect, useRef } from "react";
|
|
4
|
-
import { editorExtensions } from "../extensions";
|
|
5
|
+
import { editorExtensions } from "../extensions/index.mjs";
|
|
5
6
|
function getMarkdown(storage) {
|
|
6
7
|
return storage.markdown.getMarkdown();
|
|
7
8
|
}
|
|
@@ -17,6 +18,9 @@ function useMarkdownEditor({
|
|
|
17
18
|
extensions: editorExtensions,
|
|
18
19
|
editable,
|
|
19
20
|
content: value,
|
|
21
|
+
// Defer initial render until after hydration so the editor is safe to use
|
|
22
|
+
// in Next.js App Router and other SSR environments.
|
|
23
|
+
immediatelyRender: false,
|
|
20
24
|
editorProps: {
|
|
21
25
|
attributes: {
|
|
22
26
|
autocomplete: "off",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/hooks/use-markdown-editor.ts"],"sourcesContent":["import { EditorState } from '@tiptap/pm/state';\nimport { useEditor } from '@tiptap/react';\nimport { useEffect, useRef } from 'react';\n\nimport { editorExtensions } from '../extensions';\n\nimport type { MarkdownStorage } from 'tiptap-markdown';\n\nexport interface UseMarkdownEditorOptions {\n\tvalue: string;\n\tonChange: (value: string) => void;\n\teditable?: boolean;\n}\n\nfunction getMarkdown(storage: Record<string, unknown>): string {\n\treturn (storage.markdown as MarkdownStorage).getMarkdown();\n}\n\nexport function useMarkdownEditor({\n\tvalue,\n\tonChange,\n\teditable = true\n}: UseMarkdownEditorOptions) {\n\tconst externalValue = useRef(value);\n\tconst onChangeRef = useRef(onChange);\n\n\tonChangeRef.current = onChange;\n\n\tconst editor = useEditor({\n\t\textensions: editorExtensions,\n\t\teditable,\n\t\tcontent: value,\n\t\teditorProps: {\n\t\t\tattributes: {\n\t\t\t\tautocomplete: 'off',\n\t\t\t\tautocorrect: 'off',\n\t\t\t\tautocapitalize: 'off',\n\t\t\t\t'aria-label': 'Main content area, start typing to enter text.',\n\t\t\t\tclass: 'notra-prose'\n\t\t\t}\n\t\t},\n\t\tonUpdate({ editor }) {\n\t\t\tconst md = getMarkdown(\n\t\t\t\teditor.storage as unknown as Record<string, unknown>\n\t\t\t);\n\n\t\t\texternalValue.current = md;\n\t\t\tonChangeRef.current(md);\n\t\t},\n\t\tonCreate({ editor }) {\n\t\t\t// Browser-specific behaviors (MutationObserver, DOM reconciliation)\n\t\t\t// may create unwanted transactions during mount, polluting the history\n\t\t\t// and making undo available before the user has made any changes.\n\t\t\t// Reset the editor state after initialization to ensure a clean history.\n\t\t\tsetTimeout(() => {\n\t\t\t\tif (editor.isDestroyed) return;\n\n\t\t\t\tconst { state } = editor;\n\t\t\t\tconst freshState = EditorState.create({\n\t\t\t\t\tdoc: state.doc,\n\t\t\t\t\tselection: state.selection,\n\t\t\t\t\tplugins: state.plugins\n\t\t\t\t});\n\n\t\t\t\teditor.view.updateState(freshState);\n\t\t\t\t// Dispatch empty transaction to notify state listeners (undo/redo buttons)\n\t\t\t\teditor.view.dispatch(editor.view.state.tr);\n\t\t\t}, 0);\n\t\t}\n\t});\n\n\tuseEffect(() => {\n\t\tif (!editor) return;\n\n\t\tif (value === externalValue.current) return;\n\n\t\texternalValue.current = value;\n\t\teditor.commands.setContent(value);\n\t}, [value, editor]);\n\n\tuseEffect(() => {\n\t\tif (!editor) return;\n\n\t\teditor.setEditable(editable);\n\t}, [editable, editor]);\n\n\treturn { editor };\n}\n"],"mappings":"AAAA,SAAS,mBAAmB;AAC5B,SAAS,iBAAiB;AAC1B,SAAS,WAAW,cAAc;AAElC,SAAS,wBAAwB;AAUjC,SAAS,YAAY,SAA0C;AAC9D,SAAQ,QAAQ,SAA6B,YAAY;AAC1D;AAEO,SAAS,kBAAkB;AAAA,EACjC;AAAA,EACA;AAAA,EACA,WAAW;AACZ,GAA6B;AAC5B,QAAM,gBAAgB,OAAO,KAAK;AAClC,QAAM,cAAc,OAAO,QAAQ;AAEnC,cAAY,UAAU;AAEtB,QAAM,SAAS,UAAU;AAAA,IACxB,YAAY;AAAA,IACZ;AAAA,IACA,SAAS;AAAA,
|
|
1
|
+
{"version":3,"sources":["../../src/hooks/use-markdown-editor.ts"],"sourcesContent":["import { EditorState } from '@tiptap/pm/state';\nimport { useEditor } from '@tiptap/react';\nimport { useEffect, useRef } from 'react';\n\nimport { editorExtensions } from '../extensions/index.js';\n\nimport type { MarkdownStorage } from 'tiptap-markdown';\n\nexport interface UseMarkdownEditorOptions {\n\tvalue: string;\n\tonChange: (value: string) => void;\n\teditable?: boolean;\n}\n\nfunction getMarkdown(storage: Record<string, unknown>): string {\n\treturn (storage.markdown as MarkdownStorage).getMarkdown();\n}\n\nexport function useMarkdownEditor({\n\tvalue,\n\tonChange,\n\teditable = true\n}: UseMarkdownEditorOptions) {\n\tconst externalValue = useRef(value);\n\tconst onChangeRef = useRef(onChange);\n\n\tonChangeRef.current = onChange;\n\n\tconst editor = useEditor({\n\t\textensions: editorExtensions,\n\t\teditable,\n\t\tcontent: value,\n\t\t// Defer initial render until after hydration so the editor is safe to use\n\t\t// in Next.js App Router and other SSR environments.\n\t\timmediatelyRender: false,\n\t\teditorProps: {\n\t\t\tattributes: {\n\t\t\t\tautocomplete: 'off',\n\t\t\t\tautocorrect: 'off',\n\t\t\t\tautocapitalize: 'off',\n\t\t\t\t'aria-label': 'Main content area, start typing to enter text.',\n\t\t\t\tclass: 'notra-prose'\n\t\t\t}\n\t\t},\n\t\tonUpdate({ editor }) {\n\t\t\tconst md = getMarkdown(\n\t\t\t\teditor.storage as unknown as Record<string, unknown>\n\t\t\t);\n\n\t\t\texternalValue.current = md;\n\t\t\tonChangeRef.current(md);\n\t\t},\n\t\tonCreate({ editor }) {\n\t\t\t// Browser-specific behaviors (MutationObserver, DOM reconciliation)\n\t\t\t// may create unwanted transactions during mount, polluting the history\n\t\t\t// and making undo available before the user has made any changes.\n\t\t\t// Reset the editor state after initialization to ensure a clean history.\n\t\t\tsetTimeout(() => {\n\t\t\t\tif (editor.isDestroyed) return;\n\n\t\t\t\tconst { state } = editor;\n\t\t\t\tconst freshState = EditorState.create({\n\t\t\t\t\tdoc: state.doc,\n\t\t\t\t\tselection: state.selection,\n\t\t\t\t\tplugins: state.plugins\n\t\t\t\t});\n\n\t\t\t\teditor.view.updateState(freshState);\n\t\t\t\t// Dispatch empty transaction to notify state listeners (undo/redo buttons)\n\t\t\t\teditor.view.dispatch(editor.view.state.tr);\n\t\t\t}, 0);\n\t\t}\n\t});\n\n\tuseEffect(() => {\n\t\tif (!editor) return;\n\n\t\tif (value === externalValue.current) return;\n\n\t\texternalValue.current = value;\n\t\teditor.commands.setContent(value);\n\t}, [value, editor]);\n\n\tuseEffect(() => {\n\t\tif (!editor) return;\n\n\t\teditor.setEditable(editable);\n\t}, [editable, editor]);\n\n\treturn { editor };\n}\n"],"mappings":";AAAA,SAAS,mBAAmB;AAC5B,SAAS,iBAAiB;AAC1B,SAAS,WAAW,cAAc;AAElC,SAAS,wBAAwB;AAUjC,SAAS,YAAY,SAA0C;AAC9D,SAAQ,QAAQ,SAA6B,YAAY;AAC1D;AAEO,SAAS,kBAAkB;AAAA,EACjC;AAAA,EACA;AAAA,EACA,WAAW;AACZ,GAA6B;AAC5B,QAAM,gBAAgB,OAAO,KAAK;AAClC,QAAM,cAAc,OAAO,QAAQ;AAEnC,cAAY,UAAU;AAEtB,QAAM,SAAS,UAAU;AAAA,IACxB,YAAY;AAAA,IACZ;AAAA,IACA,SAAS;AAAA;AAAA;AAAA,IAGT,mBAAmB;AAAA,IACnB,aAAa;AAAA,MACZ,YAAY;AAAA,QACX,cAAc;AAAA,QACd,aAAa;AAAA,QACb,gBAAgB;AAAA,QAChB,cAAc;AAAA,QACd,OAAO;AAAA,MACR;AAAA,IACD;AAAA,IACA,SAAS,EAAE,QAAAA,QAAO,GAAG;AACpB,YAAM,KAAK;AAAA,QACVA,QAAO;AAAA,MACR;AAEA,oBAAc,UAAU;AACxB,kBAAY,QAAQ,EAAE;AAAA,IACvB;AAAA,IACA,SAAS,EAAE,QAAAA,QAAO,GAAG;AAKpB,iBAAW,MAAM;AAChB,YAAIA,QAAO,YAAa;AAExB,cAAM,EAAE,MAAM,IAAIA;AAClB,cAAM,aAAa,YAAY,OAAO;AAAA,UACrC,KAAK,MAAM;AAAA,UACX,WAAW,MAAM;AAAA,UACjB,SAAS,MAAM;AAAA,QAChB,CAAC;AAED,QAAAA,QAAO,KAAK,YAAY,UAAU;AAElC,QAAAA,QAAO,KAAK,SAASA,QAAO,KAAK,MAAM,EAAE;AAAA,MAC1C,GAAG,CAAC;AAAA,IACL;AAAA,EACD,CAAC;AAED,YAAU,MAAM;AACf,QAAI,CAAC,OAAQ;AAEb,QAAI,UAAU,cAAc,QAAS;AAErC,kBAAc,UAAU;AACxB,WAAO,SAAS,WAAW,KAAK;AAAA,EACjC,GAAG,CAAC,OAAO,MAAM,CAAC;AAElB,YAAU,MAAM;AACf,QAAI,CAAC,OAAQ;AAEb,WAAO,YAAY,QAAQ;AAAA,EAC5B,GAAG,CAAC,UAAU,MAAM,CAAC;AAErB,SAAO,EAAE,OAAO;AACjB;","names":["editor"]}
|
package/dist/index.cjs
CHANGED
|
@@ -16,6 +16,8 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
16
16
|
return to;
|
|
17
17
|
};
|
|
18
18
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
|
|
20
|
+
// src/index.ts
|
|
19
21
|
var index_exports = {};
|
|
20
22
|
__export(index_exports, {
|
|
21
23
|
BlockquoteButton: () => import_blockquote_button.BlockquoteButton,
|
|
@@ -42,22 +44,22 @@ __export(index_exports, {
|
|
|
42
44
|
});
|
|
43
45
|
module.exports = __toCommonJS(index_exports);
|
|
44
46
|
var import_globals = require("./styles/globals.css");
|
|
45
|
-
var import_notra_editor = require("./notra-editor");
|
|
46
|
-
var import_notra_reader = require("./notra-reader");
|
|
47
|
-
var import_toolbar = require("./components/toolbar/toolbar");
|
|
48
|
-
var import_undo_redo_button = require("./components/undo-redo-button/undo-redo-button");
|
|
49
|
-
var import_spacer = require("./components/ui/spacer");
|
|
50
|
-
var import_mark_button = require("./components/mark-button/mark-button");
|
|
51
|
-
var import_heading_dropdown_menu = require("./components/heading-dropdown-menu/heading-dropdown-menu");
|
|
52
|
-
var import_list_dropdown_menu = require("./components/list-dropdown-menu/list-dropdown-menu");
|
|
53
|
-
var import_blockquote_button = require("./components/blockquote-button/blockquote-button");
|
|
54
|
-
var import_code_block_button = require("./components/code-block-button/code-block-button");
|
|
55
|
-
var import_link_popover = require("./components/link-popover/link-popover");
|
|
56
|
-
var import_image_popover = require("./components/image-popover/image-popover");
|
|
57
|
-
var import_code_block = require("./extensions/code-block");
|
|
58
|
-
var import_language_select = require("./components/code-block-view/language-select");
|
|
59
|
-
var import_languages = require("./lib/languages");
|
|
60
|
-
var import_highlight_code_to_html = require("./lib/highlight-code-to-html");
|
|
47
|
+
var import_notra_editor = require("./notra-editor.cjs");
|
|
48
|
+
var import_notra_reader = require("./notra-reader.cjs");
|
|
49
|
+
var import_toolbar = require("./components/toolbar/toolbar.cjs");
|
|
50
|
+
var import_undo_redo_button = require("./components/undo-redo-button/undo-redo-button.cjs");
|
|
51
|
+
var import_spacer = require("./components/ui/spacer.cjs");
|
|
52
|
+
var import_mark_button = require("./components/mark-button/mark-button.cjs");
|
|
53
|
+
var import_heading_dropdown_menu = require("./components/heading-dropdown-menu/heading-dropdown-menu.cjs");
|
|
54
|
+
var import_list_dropdown_menu = require("./components/list-dropdown-menu/list-dropdown-menu.cjs");
|
|
55
|
+
var import_blockquote_button = require("./components/blockquote-button/blockquote-button.cjs");
|
|
56
|
+
var import_code_block_button = require("./components/code-block-button/code-block-button.cjs");
|
|
57
|
+
var import_link_popover = require("./components/link-popover/link-popover.cjs");
|
|
58
|
+
var import_image_popover = require("./components/image-popover/image-popover.cjs");
|
|
59
|
+
var import_code_block = require("./extensions/code-block.cjs");
|
|
60
|
+
var import_language_select = require("./components/code-block-view/language-select.cjs");
|
|
61
|
+
var import_languages = require("./lib/languages.cjs");
|
|
62
|
+
var import_highlight_code_to_html = require("./lib/highlight-code-to-html.cjs");
|
|
61
63
|
// Annotate the CommonJS export names for ESM import in node:
|
|
62
64
|
0 && (module.exports = {
|
|
63
65
|
BlockquoteButton,
|
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["import './styles/globals.css';\n\nexport { NotraEditor } from './notra-editor';\nexport type { NotraEditorProps } from './notra-editor';\n\nexport { NotraReader } from './notra-reader';\nexport type { NotraReaderProps } from './notra-reader';\n\nexport {\n\tToolbar,\n\tToolbarGroup,\n\tToolbarSeparator\n} from './components/toolbar/toolbar';\nexport type {\n\tToolbarProps,\n\tToolbarSeparatorProps\n} from './components/toolbar/toolbar';\n\nexport { UndoRedoButton } from './components/undo-redo-button/undo-redo-button';\nexport type { UndoRedoButtonProps } from './components/undo-redo-button/undo-redo-button';\n\nexport { Spacer } from './components/ui/spacer';\n\nexport { MarkButton } from './components/mark-button/mark-button';\nexport type { MarkButtonProps } from './components/mark-button/mark-button';\nexport type { MarkType } from './components/mark-button/use-mark';\n\nexport { HeadingDropdownMenu } from './components/heading-dropdown-menu/heading-dropdown-menu';\nexport type { HeadingDropdownMenuProps } from './components/heading-dropdown-menu/heading-dropdown-menu';\n\nexport { ListDropdownMenu } from './components/list-dropdown-menu/list-dropdown-menu';\nexport type { ListDropdownMenuProps } from './components/list-dropdown-menu/list-dropdown-menu';\n\nexport { BlockquoteButton } from './components/blockquote-button/blockquote-button';\nexport type { BlockquoteButtonProps } from './components/blockquote-button/blockquote-button';\n\nexport { CodeBlockButton } from './components/code-block-button/code-block-button';\nexport type { CodeBlockButtonProps } from './components/code-block-button/code-block-button';\n\nexport { LinkPopover } from './components/link-popover/link-popover';\nexport type { LinkPopoverProps } from './components/link-popover/link-popover';\n\nexport { ImagePopover } from './components/image-popover/image-popover';\nexport type { ImagePopoverProps } from './components/image-popover/image-popover';\n\nexport {\n\tCodeBlockExtension,\n\tcreateCodeBlockExtension,\n\tdefaultLowlight\n} from './extensions/code-block';\n\nexport { LanguageSelect } from './components/code-block-view/language-select';\nexport type { LanguageSelectProps } from './components/code-block-view/language-select';\n\nexport { LANGUAGES, getLanguageLabel } from './lib/languages';\nexport type { Language } from './lib/languages';\n\nexport { highlightCodeToHtml } from './lib/highlight-code-to-html';\n"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["import './styles/globals.css';\n\nexport { NotraEditor } from './notra-editor.js';\nexport type { NotraEditorProps } from './notra-editor.js';\n\nexport { NotraReader } from './notra-reader.js';\nexport type { NotraReaderProps } from './notra-reader.js';\n\nexport {\n\tToolbar,\n\tToolbarGroup,\n\tToolbarSeparator\n} from './components/toolbar/toolbar.js';\nexport type {\n\tToolbarProps,\n\tToolbarSeparatorProps\n} from './components/toolbar/toolbar.js';\n\nexport { UndoRedoButton } from './components/undo-redo-button/undo-redo-button.js';\nexport type { UndoRedoButtonProps } from './components/undo-redo-button/undo-redo-button.js';\n\nexport { Spacer } from './components/ui/spacer.js';\n\nexport { MarkButton } from './components/mark-button/mark-button.js';\nexport type { MarkButtonProps } from './components/mark-button/mark-button.js';\nexport type { MarkType } from './components/mark-button/use-mark.js';\n\nexport { HeadingDropdownMenu } from './components/heading-dropdown-menu/heading-dropdown-menu.js';\nexport type { HeadingDropdownMenuProps } from './components/heading-dropdown-menu/heading-dropdown-menu.js';\n\nexport { ListDropdownMenu } from './components/list-dropdown-menu/list-dropdown-menu.js';\nexport type { ListDropdownMenuProps } from './components/list-dropdown-menu/list-dropdown-menu.js';\n\nexport { BlockquoteButton } from './components/blockquote-button/blockquote-button.js';\nexport type { BlockquoteButtonProps } from './components/blockquote-button/blockquote-button.js';\n\nexport { CodeBlockButton } from './components/code-block-button/code-block-button.js';\nexport type { CodeBlockButtonProps } from './components/code-block-button/code-block-button.js';\n\nexport { LinkPopover } from './components/link-popover/link-popover.js';\nexport type { LinkPopoverProps } from './components/link-popover/link-popover.js';\n\nexport { ImagePopover } from './components/image-popover/image-popover.js';\nexport type { ImagePopoverProps } from './components/image-popover/image-popover.js';\n\nexport {\n\tCodeBlockExtension,\n\tcreateCodeBlockExtension,\n\tdefaultLowlight\n} from './extensions/code-block.js';\n\nexport { LanguageSelect } from './components/code-block-view/language-select.js';\nexport type { LanguageSelectProps } from './components/code-block-view/language-select.js';\n\nexport { LANGUAGES, getLanguageLabel } from './lib/languages.js';\nexport type { Language } from './lib/languages.js';\n\nexport { highlightCodeToHtml } from './lib/highlight-code-to-html.js';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,qBAAO;AAEP,0BAA4B;AAG5B,0BAA4B;AAG5B,qBAIO;AAMP,8BAA+B;AAG/B,oBAAuB;AAEvB,yBAA2B;AAI3B,mCAAoC;AAGpC,gCAAiC;AAGjC,+BAAiC;AAGjC,+BAAgC;AAGhC,0BAA4B;AAG5B,2BAA6B;AAG7B,wBAIO;AAEP,6BAA+B;AAG/B,uBAA4C;AAG5C,oCAAoC;","names":[]}
|