diff --git a/front/js/main.js b/front/js/main.js index 6ff816f..9df4b5d 100644 --- a/front/js/main.js +++ b/front/js/main.js @@ -9,15 +9,6 @@ Mustache.escape = function (value) { return value; }; -function enableTooltipsAnywhere() { - // Enable tooltips everywhere - let tooltipTriggerList = [].slice.call( - document.querySelectorAll('[data-bs-toggle="tooltip"]') - ); - tooltipTriggerList.map(function (tooltipTriggerEl) { - return new bootstrap.Tooltip(tooltipTriggerEl); - }); -} // Define all components const entryComponents = { @@ -61,4 +52,3 @@ let loadSvelte = function () { // document.addEventListener("turbo:load", loadSvelte); document.addEventListener("DOMContentLoaded", loadSvelte); -document.addEventListener("DOMContentLoaded", enableTooltipsAnywhere); diff --git a/front/js/svelte/content/Table.svelte b/front/js/svelte/content/Table.svelte index eb69072..296fea9 100644 --- a/front/js/svelte/content/Table.svelte +++ b/front/js/svelte/content/Table.svelte @@ -96,7 +96,7 @@ {record._file.width + "x" + record._file.height} {/if} Download diff --git a/front/js/svelte/files/Preview.svelte b/front/js/svelte/files/Preview.svelte index 8fc6e34..752f878 100644 --- a/front/js/svelte/files/Preview.svelte +++ b/front/js/svelte/files/Preview.svelte @@ -40,7 +40,7 @@ > {record._file.path} diff --git a/front/js/svelte/files/imageserver.js b/front/js/svelte/files/imageserver.js index ffd53e0..eae0151 100644 --- a/front/js/svelte/files/imageserver.js +++ b/front/js/svelte/files/imageserver.js @@ -1,15 +1,33 @@ -import {getContext} from "svelte"; -export function imgurl(record) { +export function imgurl(channel,record) { - if(record._file.mime === "image/svg+xml"){ - return fileurl(record); + if (record._file.mime === "image/svg+xml") { + return fileurl(channel, record); } - const channel = getContext("channel") return channel.filesUrl + `/thumbs/${record._file.path}`; } -export function fileurl(record) { - const channel = getContext("channel") +export function fileurl(channel, record) { return channel.filesUrl + `/${record._file.path}`; } + +export function htmlurl(channel,record, preset) { + + let html = ""; + let url = fileurl(channel,record) + + if (record._file.width > 0) { + let presetUrl = url; + if (preset) { + presetUrl = channel.filesUrl + `/templates/${preset}/${record._file.path}`; + } + + html = `${record._file.path}` + } else if (record._file.mime === "image/svg+xml") { + html = `${record._file.path}` + } else { + html = `${record._file.originalName}` + } + + return html; +} diff --git a/front/js/svelte/libs/Tinymce.svelte b/front/js/svelte/libs/Tinymce.svelte index 31b930a..1abe4d1 100644 --- a/front/js/svelte/libs/Tinymce.svelte +++ b/front/js/svelte/libs/Tinymce.svelte @@ -100,6 +100,9 @@ tinymce.init({...config, ...additionalConfig}); }); + export function insertMedia(html){ + activeEditor.execCommand('InsertHTML', false, html); + } diff --git a/front/js/svelte/libs/TipTap.svelte b/front/js/svelte/libs/TipTap.svelte new file mode 100644 index 0000000..5ee9220 --- /dev/null +++ b/front/js/svelte/libs/TipTap.svelte @@ -0,0 +1,96 @@ + + +{#if editor} + + + + +{/if} + +
\ No newline at end of file diff --git a/front/js/svelte/libs/Trix.svelte b/front/js/svelte/libs/Trix.svelte new file mode 100644 index 0000000..2fb9b6c --- /dev/null +++ b/front/js/svelte/libs/Trix.svelte @@ -0,0 +1,21 @@ + + +
+ + +
diff --git a/front/js/svelte/records/FilePreview.svelte b/front/js/svelte/records/FilePreview.svelte index 32166f8..a3ece5b 100644 --- a/front/js/svelte/records/FilePreview.svelte +++ b/front/js/svelte/records/FilePreview.svelte @@ -40,7 +40,7 @@ {record._file.checksum}
- Download + Download
diff --git a/front/js/svelte/records/FormField.svelte b/front/js/svelte/records/FormField.svelte index 8d991c8..8ce99f9 100644 --- a/front/js/svelte/records/FormField.svelte +++ b/front/js/svelte/records/FormField.svelte @@ -96,6 +96,16 @@ {isCreateMode} {id} /> + {:else if field.info.name === "rich"} + {:else} +{:else} + Nothing links to this record {/each} \ No newline at end of file diff --git a/front/js/svelte/records/elements/RichEditor.svelte b/front/js/svelte/records/elements/RichEditor.svelte index e2f42ce..5f07395 100644 --- a/front/js/svelte/records/elements/RichEditor.svelte +++ b/front/js/svelte/records/elements/RichEditor.svelte @@ -1,20 +1,44 @@
- + + + + {#if field.collections} + + + + + {/if} + {#if errorMessage}
diff --git a/front/js/svelte/records/elements/RichEditorFiles.svelte b/front/js/svelte/records/elements/RichEditorFiles.svelte new file mode 100644 index 0000000..1e0bf55 --- /dev/null +++ b/front/js/svelte/records/elements/RichEditorFiles.svelte @@ -0,0 +1,77 @@ + + +
+ + {#if field.collections.length === 1} + + {:else} + +
+ Browse +
+ {#each collections as collection} + + openBrowseModal(e, collection.name)} + href="/">{collection.label} + {/each} +
+ {/if} +
+{#if references.length > 0} + {#each references as reference (reference.id)} + +
+ +
+ {/each} +{/if} + diff --git a/front/js/svelte/records/previews/PreviewFile.svelte b/front/js/svelte/records/previews/PreviewFile.svelte index 276289e..d1786a3 100644 --- a/front/js/svelte/records/previews/PreviewFile.svelte +++ b/front/js/svelte/records/previews/PreviewFile.svelte @@ -4,21 +4,31 @@ import {createEventDispatcher, getContext} from "svelte"; import Preview from "../../files/Preview.svelte"; import {previewTitle} from "./../Preview"; + import {htmlurl} from "../../files/imageserver.js" import Status from "./../Status.svelte"; + import Dropdown from "../../common/Dropdown.svelte"; const dispatch = createEventDispatcher(); const channel = getContext("channel"); export let record; export let hasDelete = false; + export let hasInsert = false; let schema = channel.schemas.find((aschema) => aschema.name === record.schema); let cardTitle = previewTitle(channel.schemas, record); + let imagePresets = Object.keys(channel.imageFilters); function remove(e) { e.preventDefault(); - dispatch("remove", record.id); } + + function insert(e, preset) { + e.preventDefault(); + let html = htmlurl(channel,record, preset) + dispatch("editor-insert", html); + } +
@@ -45,15 +55,31 @@
- {#if hasDelete} -
- -
- {/if} +
+ {#if hasInsert} +
+ +
+ +
+ + {#each imagePresets as preset} + + {/each} +
+ +
+ {/if} + {#if hasDelete} +
+ +
+ {/if} +
diff --git a/front/package-lock.json b/front/package-lock.json index 4704562..d22c578 100644 --- a/front/package-lock.json +++ b/front/package-lock.json @@ -4,20 +4,38 @@ "requires": true, "packages": { "": { - "dependencies": { - "@codemirror/lang-markdown": "^6.2.5", - "fuse.js": "^7.0.0", - "htmx.org": "^2.0.1" - }, "devDependencies": { "@codemirror/commands": "^6.6.0", "@codemirror/lang-json": "^6.0.1", + "@codemirror/lang-markdown": "^6.2.5", "@codemirror/state": "^6.4.1", "@sveltejs/vite-plugin-svelte": "^3.1.1", - "axios": "1.6.0", + "@tiptap/core": "^2.6.4", + "@tiptap/extension-blockquote": "^2.6.4", + "@tiptap/extension-bold": "^2.6.4", + "@tiptap/extension-bullet-list": "^2.6.4", + "@tiptap/extension-code": "^2.6.4", + "@tiptap/extension-document": "^2.6.4", + "@tiptap/extension-heading": "^2.6.4", + "@tiptap/extension-history": "^2.6.4", + "@tiptap/extension-italic": "^2.6.4", + "@tiptap/extension-list-item": "^2.6.4", + "@tiptap/extension-ordered-list": "^2.6.4", + "@tiptap/extension-paragraph": "^2.6.4", + "@tiptap/extension-strike": "^2.6.4", + "@tiptap/extension-table": "^2.6.4", + "@tiptap/extension-table-cell": "^2.6.4", + "@tiptap/extension-table-header": "^2.6.4", + "@tiptap/extension-table-row": "^2.6.4", + "@tiptap/extension-text": "^2.6.4", + "@tiptap/extension-underline": "^2.6.4", + "@tiptap/pm": "^2.6.4", + "axios": "^1.7.4", "codemirror": "^6.0.1", "date-fns": "^3.6.0", "flatpickr": "^4.6.13", + "fuse.js": "^7.0.0", + "htmx.org": "^2.0.1", "laravel-vite-plugin": "^1.0.5", "lodash": "^4.17.21", "mustache": "^4.2.0", @@ -25,7 +43,8 @@ "sass": "^1.77.8", "sortablejs": "^1.15.2", "svelte": "^4.2.18", - "tinymce": "6.8.0", + "tinymce": "^6.8.4", + "trix": "^2.1.5", "uuid": "^10.0.0", "vite": "5.2.6" } @@ -47,6 +66,7 @@ "version": "6.18.0", "resolved": "https://registry.npmjs.org/@codemirror/autocomplete/-/autocomplete-6.18.0.tgz", "integrity": "sha512-5DbOvBbY4qW5l57cjDsmmpDh3/TeK1vXfTHa+BUMrRzdWdcxKZ4U4V7vQaTtOpApNU4kLS4FQ6cINtLg245LXA==", + "dev": true, "dependencies": { "@codemirror/language": "^6.0.0", "@codemirror/state": "^6.0.0", @@ -76,6 +96,7 @@ "version": "6.2.1", "resolved": "https://registry.npmjs.org/@codemirror/lang-css/-/lang-css-6.2.1.tgz", "integrity": "sha512-/UNWDNV5Viwi/1lpr/dIXJNWiwDxpw13I4pTUAsNxZdg6E0mI2kTQb0P2iHczg1Tu+H4EBgJR+hYhKiHKko7qg==", + "dev": true, "dependencies": { "@codemirror/autocomplete": "^6.0.0", "@codemirror/language": "^6.0.0", @@ -88,6 +109,7 @@ "version": "6.4.9", "resolved": "https://registry.npmjs.org/@codemirror/lang-html/-/lang-html-6.4.9.tgz", "integrity": "sha512-aQv37pIMSlueybId/2PVSP6NPnmurFDVmZwzc7jszd2KAF8qd4VBbvNYPXWQq90WIARjsdVkPbw29pszmHws3Q==", + "dev": true, "dependencies": { "@codemirror/autocomplete": "^6.0.0", "@codemirror/lang-css": "^6.0.0", @@ -104,6 +126,7 @@ "version": "6.2.2", "resolved": "https://registry.npmjs.org/@codemirror/lang-javascript/-/lang-javascript-6.2.2.tgz", "integrity": "sha512-VGQfY+FCc285AhWuwjYxQyUQcYurWlxdKYT4bqwr3Twnd5wP5WSeu52t4tvvuWmljT4EmgEgZCqSieokhtY8hg==", + "dev": true, "dependencies": { "@codemirror/autocomplete": "^6.0.0", "@codemirror/language": "^6.6.0", @@ -128,6 +151,7 @@ "version": "6.2.5", "resolved": "https://registry.npmjs.org/@codemirror/lang-markdown/-/lang-markdown-6.2.5.tgz", "integrity": "sha512-Hgke565YcO4fd9pe2uLYxnMufHO5rQwRr+AAhFq8ABuhkrjyX8R5p5s+hZUTdV60O0dMRjxKhBLxz8pu/MkUVA==", + "dev": true, "dependencies": { "@codemirror/autocomplete": "^6.7.1", "@codemirror/lang-html": "^6.0.0", @@ -142,6 +166,7 @@ "version": "6.10.2", "resolved": "https://registry.npmjs.org/@codemirror/language/-/language-6.10.2.tgz", "integrity": "sha512-kgbTYTo0Au6dCSc/TFy7fK3fpJmgHDv1sG1KNQKJXVi+xBTEeBPY/M30YXiU6mMXeH+YIDLsbrT4ZwNRdtF+SA==", + "dev": true, "dependencies": { "@codemirror/state": "^6.0.0", "@codemirror/view": "^6.23.0", @@ -155,6 +180,7 @@ "version": "6.8.1", "resolved": "https://registry.npmjs.org/@codemirror/lint/-/lint-6.8.1.tgz", "integrity": "sha512-IZ0Y7S4/bpaunwggW2jYqwLuHj0QtESf5xcROewY6+lDNwZ/NzvR4t+vpYgg9m7V8UXLPYqG+lu3DF470E5Oxg==", + "dev": true, "dependencies": { "@codemirror/state": "^6.0.0", "@codemirror/view": "^6.0.0", @@ -175,12 +201,14 @@ "node_modules/@codemirror/state": { "version": "6.4.1", "resolved": "https://registry.npmjs.org/@codemirror/state/-/state-6.4.1.tgz", - "integrity": "sha512-QkEyUiLhsJoZkbumGZlswmAhA7CBU02Wrz7zvH4SrcifbsqwlXShVXg65f3v/ts57W3dqyamEriMhij1Z3Zz4A==" + "integrity": "sha512-QkEyUiLhsJoZkbumGZlswmAhA7CBU02Wrz7zvH4SrcifbsqwlXShVXg65f3v/ts57W3dqyamEriMhij1Z3Zz4A==", + "dev": true }, "node_modules/@codemirror/view": { "version": "6.32.0", "resolved": "https://registry.npmjs.org/@codemirror/view/-/view-6.32.0.tgz", "integrity": "sha512-AgVNvED2QTsZp5e3syoHLsrWtwJFYWdx1Vr/m3f4h1ATQz0ax60CfXF3Htdmk69k2MlYZw8gXesnQdHtzyVmAw==", + "dev": true, "dependencies": { "@codemirror/state": "^6.4.0", "style-mod": "^4.1.0", @@ -606,12 +634,14 @@ "node_modules/@lezer/common": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/@lezer/common/-/common-1.2.1.tgz", - "integrity": "sha512-yemX0ZD2xS/73llMZIK6KplkjIjf2EvAHcinDi/TfJ9hS25G0388+ClHt6/3but0oOxinTcQHJLDXh6w1crzFQ==" + "integrity": "sha512-yemX0ZD2xS/73llMZIK6KplkjIjf2EvAHcinDi/TfJ9hS25G0388+ClHt6/3but0oOxinTcQHJLDXh6w1crzFQ==", + "dev": true }, "node_modules/@lezer/css": { "version": "1.1.8", "resolved": "https://registry.npmjs.org/@lezer/css/-/css-1.1.8.tgz", "integrity": "sha512-7JhxupKuMBaWQKjQoLtzhGj83DdnZY9MckEOG5+/iLKNK2ZJqKc6hf6uc0HjwCX7Qlok44jBNqZhHKDhEhZYLA==", + "dev": true, "dependencies": { "@lezer/common": "^1.2.0", "@lezer/highlight": "^1.0.0", @@ -622,6 +652,7 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/@lezer/highlight/-/highlight-1.2.1.tgz", "integrity": "sha512-Z5duk4RN/3zuVO7Jq0pGLJ3qynpxUVsh7IbUbGj88+uV2ApSAn6kWg2au3iJb+0Zi7kKtqffIESgNcRXWZWmSA==", + "dev": true, "dependencies": { "@lezer/common": "^1.0.0" } @@ -630,6 +661,7 @@ "version": "1.3.10", "resolved": "https://registry.npmjs.org/@lezer/html/-/html-1.3.10.tgz", "integrity": "sha512-dqpT8nISx/p9Do3AchvYGV3qYc4/rKr3IBZxlHmpIKam56P47RSHkSF5f13Vu9hebS1jM0HmtJIwLbWz1VIY6w==", + "dev": true, "dependencies": { "@lezer/common": "^1.2.0", "@lezer/highlight": "^1.0.0", @@ -640,6 +672,7 @@ "version": "1.4.17", "resolved": "https://registry.npmjs.org/@lezer/javascript/-/javascript-1.4.17.tgz", "integrity": "sha512-bYW4ctpyGK+JMumDApeUzuIezX01H76R1foD6LcRX224FWfyYit/HYxiPGDjXXe/wQWASjCvVGoukTH68+0HIA==", + "dev": true, "dependencies": { "@lezer/common": "^1.2.0", "@lezer/highlight": "^1.1.3", @@ -661,6 +694,7 @@ "version": "1.4.2", "resolved": "https://registry.npmjs.org/@lezer/lr/-/lr-1.4.2.tgz", "integrity": "sha512-pu0K1jCIdnQ12aWNaAVU5bzi7Bd1w54J3ECgANPmYLtQKP0HBj2cE/5coBD66MT10xbtIuUr7tg0Shbsvk0mDA==", + "dev": true, "dependencies": { "@lezer/common": "^1.0.0" } @@ -669,11 +703,18 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/@lezer/markdown/-/markdown-1.3.0.tgz", "integrity": "sha512-ErbEQ15eowmJUyT095e9NJc3BI9yZ894fjSDtHftD0InkfUBGgnKSU6dvan9jqsZuNHg2+ag/1oyDRxNsENupQ==", + "dev": true, "dependencies": { "@lezer/common": "^1.0.0", "@lezer/highlight": "^1.0.0" } }, + "node_modules/@remirror/core-constants": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@remirror/core-constants/-/core-constants-2.0.2.tgz", + "integrity": "sha512-dyHY+sMF0ihPus3O27ODd4+agdHMEmuRdyiZJ2CCWjPV5UFmn17ZbElvk6WOGVE4rdCJKZQCrPV2BcikOMLUGQ==", + "dev": true + }, "node_modules/@rollup/rollup-android-arm-eabi": { "version": "4.20.0", "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.20.0.tgz", @@ -921,6 +962,285 @@ "vite": "^5.0.0" } }, + "node_modules/@tiptap/core": { + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/@tiptap/core/-/core-2.6.4.tgz", + "integrity": "sha512-lv+JyBI+5C6C7BMLYg2bloB00HvAZkcvgO3CzmFia28Vtt1P9yhS44elvBemhUf7IP7Hu12FUzDWY+2GQqiqkw==", + "dev": true, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/pm": "^2.6.4" + } + }, + "node_modules/@tiptap/extension-blockquote": { + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/@tiptap/extension-blockquote/-/extension-blockquote-2.6.4.tgz", + "integrity": "sha512-BzeQ52qHL4AEryPqgvPNRJ2siSTfSi2s3k7hVC29QYUTOidLSSDWVihn7lzJoBnqDMAOYj7yUhnEUEdjvOFGqw==", + "dev": true, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "^2.6.4" + } + }, + "node_modules/@tiptap/extension-bold": { + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/@tiptap/extension-bold/-/extension-bold-2.6.4.tgz", + "integrity": "sha512-DIKUiO2aqO9D3dAQngBacWk/vYwDY13+q3t5dlawRTCIHxgV571vGb+YbcLswbWPQjOziIBc5QgwUVZLjA8OkA==", + "dev": true, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "^2.6.4" + } + }, + "node_modules/@tiptap/extension-bullet-list": { + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/@tiptap/extension-bullet-list/-/extension-bullet-list-2.6.4.tgz", + "integrity": "sha512-SsEqWNvbcLjgPYQXWT+gm8Mdtd6SnM9kr5xdfOvfe9W1RCYi7U7SQjaYGLGQXuy3E8NDugNiG+ss2POMj4RaUQ==", + "dev": true, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "^2.6.4" + } + }, + "node_modules/@tiptap/extension-code": { + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/@tiptap/extension-code/-/extension-code-2.6.4.tgz", + "integrity": "sha512-qCt/CRhV+s1E9XVCDxGgFwyQRjcLsqBuY5UTwH3Zp8MIBniyLyJDD0Rv9DgvVqalzRC8RoRxVey9Al3YhYNqsw==", + "dev": true, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "^2.6.4" + } + }, + "node_modules/@tiptap/extension-document": { + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/@tiptap/extension-document/-/extension-document-2.6.4.tgz", + "integrity": "sha512-fEQzou6J/w7GWiMqxxiwX2TEB6hgjBsImkHCxU05a4IOnIkzC8C9pV+NWa8u1LGvbERmVPBQqWYJG6phDhtYkg==", + "dev": true, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "^2.6.4" + } + }, + "node_modules/@tiptap/extension-heading": { + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/@tiptap/extension-heading/-/extension-heading-2.6.4.tgz", + "integrity": "sha512-GHwDguzRXRrB5htGPx6T0f0uN9RPAkjbjrl28T7LFXX5Lb2XO+Esr1l4LNsTU49H4wR9nL/89ZjEcd36BUWkog==", + "dev": true, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "^2.6.4" + } + }, + "node_modules/@tiptap/extension-history": { + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/@tiptap/extension-history/-/extension-history-2.6.4.tgz", + "integrity": "sha512-Hr3SrvMsyDHKcsF4u3QPdY/NBYG9V0g5pPmZs/tdysXot3NUdkEYowjs9K9o5osKom364KjxQS0c9mOjyeKu1g==", + "dev": true, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "^2.6.4", + "@tiptap/pm": "^2.6.4" + } + }, + "node_modules/@tiptap/extension-italic": { + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/@tiptap/extension-italic/-/extension-italic-2.6.4.tgz", + "integrity": "sha512-XG/zaKVuorKr1vGEWEgLQTnQwOpNn/JyGxO7oC7wfYx5eYpbbCtMTEMvuqNvkm7kpvVAUx3ugi/D8DWyWZEtYg==", + "dev": true, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "^2.6.4" + } + }, + "node_modules/@tiptap/extension-list-item": { + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/@tiptap/extension-list-item/-/extension-list-item-2.6.4.tgz", + "integrity": "sha512-NLP0nshX8eCZMLospdCsUApUQHPL1+T/MIi/Hhr0aNeaAg7KwBNH8/rFPuxPNs4BQkHOCuYq4Fm+klkebkFYJA==", + "dev": true, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "^2.6.4" + } + }, + "node_modules/@tiptap/extension-ordered-list": { + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/@tiptap/extension-ordered-list/-/extension-ordered-list-2.6.4.tgz", + "integrity": "sha512-ecAEFpRKZc+b3f54EGvaRp7hsVza2i1nRhxHoPElqVR5DiCCSuSgAPCsKhUUT1rKweK9h56HiC4xswAyFrU5Ag==", + "dev": true, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "^2.6.4" + } + }, + "node_modules/@tiptap/extension-paragraph": { + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/@tiptap/extension-paragraph/-/extension-paragraph-2.6.4.tgz", + "integrity": "sha512-JVlvhZPzjz0Q+29KmnrmLr3A3SvAMfKOZxbZZVnzee6vtI6rqjdYGBOtyyyWwrAliNQB6GkHiKmT3GxH76dz7A==", + "dev": true, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "^2.6.4" + } + }, + "node_modules/@tiptap/extension-strike": { + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/@tiptap/extension-strike/-/extension-strike-2.6.4.tgz", + "integrity": "sha512-EV4hEA5qnRtKViaLKcucFvXP9xEUJOFgpFeOrp2xIgSXJLSmutkaDfz7nxJ2RLzwwYvPfWUL7ay97JSCzSuaIA==", + "dev": true, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "^2.6.4" + } + }, + "node_modules/@tiptap/extension-table": { + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/@tiptap/extension-table/-/extension-table-2.6.4.tgz", + "integrity": "sha512-rQm1HWUVh7Idw/kGfIbh/FP+oKrZ3ISyxOflRaNXAB/H9fCfSejgZf7WZH+RHCnWvGfNCD24auE5E1wS+Eqs+Q==", + "dev": true, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "^2.6.4", + "@tiptap/pm": "^2.6.4" + } + }, + "node_modules/@tiptap/extension-table-cell": { + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/@tiptap/extension-table-cell/-/extension-table-cell-2.6.4.tgz", + "integrity": "sha512-nI5mSg8LTgwiJr/SY/cQb/FFlaiiANu6kMHHx4Wc1YHcGLw+2XybKNN4d6RzCBbJF2VvjrtsvVOrRJIeCNvtNg==", + "dev": true, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "^2.6.4" + } + }, + "node_modules/@tiptap/extension-table-header": { + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/@tiptap/extension-table-header/-/extension-table-header-2.6.4.tgz", + "integrity": "sha512-/N6gav9qBo4Ne43WDcqrXvlw24BOzD4BoT8mFsfukBOlvYp2r7Ug6Vapxg1INyr+U/X0ph+SPfDmVClXn/hh6Q==", + "dev": true, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "^2.6.4" + } + }, + "node_modules/@tiptap/extension-table-row": { + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/@tiptap/extension-table-row/-/extension-table-row-2.6.4.tgz", + "integrity": "sha512-ySTmLfAdW8yA+JXKkXPRGHrauVHZSkh1SxbATMbFyWJ6GxciI95VC4ucW/rNN6Ix9UdwXVrZbIIOkd+MARdYPQ==", + "dev": true, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "^2.6.4" + } + }, + "node_modules/@tiptap/extension-text": { + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/@tiptap/extension-text/-/extension-text-2.6.4.tgz", + "integrity": "sha512-QfspuCTTpmFrSLbDs2z/0W7GLaoNanwj4OCKPSPz5XcraZJgFLsWAqZxZE4aLgZbJH2hcGWMe5ZHmvLf5dJogw==", + "dev": true, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "^2.6.4" + } + }, + "node_modules/@tiptap/extension-underline": { + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/@tiptap/extension-underline/-/extension-underline-2.6.4.tgz", + "integrity": "sha512-1MSCmX4L2l8DKqIJ6BLMp/XUzWK1lW+BI1+rLBd4N/kU8CdF5UqjWFijsu3UBCibV/fliyAzCoLoKO/lHRUUcA==", + "dev": true, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "^2.6.4" + } + }, + "node_modules/@tiptap/pm": { + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/@tiptap/pm/-/pm-2.6.4.tgz", + "integrity": "sha512-k/AyigUioZVxFTcF7kWcUh5xeOV0bdGzHz+wmtP33md2jo8SJP29yEZ4Kshvk0IcFnVFEDrsfKiGhLRWpKx+YQ==", + "dev": true, + "dependencies": { + "prosemirror-changeset": "^2.2.1", + "prosemirror-collab": "^1.3.1", + "prosemirror-commands": "^1.5.2", + "prosemirror-dropcursor": "^1.8.1", + "prosemirror-gapcursor": "^1.3.2", + "prosemirror-history": "^1.4.1", + "prosemirror-inputrules": "^1.4.0", + "prosemirror-keymap": "^1.2.2", + "prosemirror-markdown": "^1.13.0", + "prosemirror-menu": "^1.2.4", + "prosemirror-model": "^1.22.2", + "prosemirror-schema-basic": "^1.2.3", + "prosemirror-schema-list": "^1.4.1", + "prosemirror-state": "^1.4.3", + "prosemirror-tables": "^1.4.0", + "prosemirror-trailing-node": "^2.0.9", + "prosemirror-transform": "^1.9.0", + "prosemirror-view": "^1.33.9" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + } + }, "node_modules/@types/estree": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", @@ -952,6 +1272,12 @@ "node": ">= 8" } }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, "node_modules/aria-query": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.0.tgz", @@ -968,12 +1294,12 @@ "dev": true }, "node_modules/axios": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.0.tgz", - "integrity": "sha512-EZ1DYihju9pwVB+jg67ogm+Tmqc6JmhamRN6I4Zt8DfZu5lbcQGw3ozH9lFejSJgs/ibaef3A9PMXPLeefFGJg==", + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.4.tgz", + "integrity": "sha512-DukmaFRnY6AzAALSH4J2M3k6PkaC+MfaAGdEERRWcC9q3/TWQwLpHR8ZRLKTdQ3aBDL64EdluRDjJqKw+BPZEw==", "dev": true, "dependencies": { - "follow-redirects": "^1.15.0", + "follow-redirects": "^1.15.6", "form-data": "^4.0.0", "proxy-from-env": "^1.1.0" } @@ -1078,7 +1404,8 @@ "node_modules/crelt": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/crelt/-/crelt-1.0.6.tgz", - "integrity": "sha512-VQ2MBenTq1fWZUH9DJNGti7kKv6EeAuYr3cLwxUWhIu1baTaXh4Ib5W2CqHVqib4/MqbYGJqiL3Zb8GJZr3l4g==" + "integrity": "sha512-VQ2MBenTq1fWZUH9DJNGti7kKv6EeAuYr3cLwxUWhIu1baTaXh4Ib5W2CqHVqib4/MqbYGJqiL3Zb8GJZr3l4g==", + "dev": true }, "node_modules/css-tree": { "version": "2.3.1", @@ -1147,6 +1474,18 @@ "node": ">=6" } }, + "node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "dev": true, + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, "node_modules/esbuild": { "version": "0.20.2", "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.20.2.tgz", @@ -1185,6 +1524,18 @@ "@esbuild/win32-x64": "0.20.2" } }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/estree-walker": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", @@ -1264,6 +1615,7 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/fuse.js/-/fuse.js-7.0.0.tgz", "integrity": "sha512-14F4hBIxqKvD4Zz/XjDc3y94mNZN6pRv3U13Udo0lNLCWRBUsrMv2xwcF/y/Z5sV6+FQW+/ow68cHpm4sunt8Q==", + "dev": true, "engines": { "node": ">=10" } @@ -1283,7 +1635,8 @@ "node_modules/htmx.org": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/htmx.org/-/htmx.org-2.0.2.tgz", - "integrity": "sha512-eUPIpQaWKKstX393XNCRCMJTrqPzikh36Y9RceqsUZLTtlFjFaVDgwZLUsrFk8J2uzZxkkfiy0TE359j2eN6hA==" + "integrity": "sha512-eUPIpQaWKKstX393XNCRCMJTrqPzikh36Y9RceqsUZLTtlFjFaVDgwZLUsrFk8J2uzZxkkfiy0TE359j2eN6hA==", + "dev": true }, "node_modules/immutable": { "version": "4.3.7", @@ -1370,6 +1723,15 @@ "vite": "^5.0.0" } }, + "node_modules/linkify-it": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-5.0.0.tgz", + "integrity": "sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==", + "dev": true, + "dependencies": { + "uc.micro": "^2.0.0" + } + }, "node_modules/locate-character": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/locate-character/-/locate-character-3.0.0.tgz", @@ -1391,12 +1753,35 @@ "@jridgewell/sourcemap-codec": "^1.5.0" } }, + "node_modules/markdown-it": { + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-14.1.0.tgz", + "integrity": "sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1", + "entities": "^4.4.0", + "linkify-it": "^5.0.0", + "mdurl": "^2.0.0", + "punycode.js": "^2.3.1", + "uc.micro": "^2.1.0" + }, + "bin": { + "markdown-it": "bin/markdown-it.mjs" + } + }, "node_modules/mdn-data": { "version": "2.0.30", "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz", "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==", "dev": true }, + "node_modules/mdurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-2.0.0.tgz", + "integrity": "sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==", + "dev": true + }, "node_modules/mime-db": { "version": "1.52.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", @@ -1460,6 +1845,12 @@ "node": ">=0.10.0" } }, + "node_modules/orderedmap": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/orderedmap/-/orderedmap-2.1.1.tgz", + "integrity": "sha512-TvAWxi0nDe1j/rtMcWcIj94+Ffe6n7zhow33h40SKxmsmozs6dz/e+EajymfoFcHd7sxNn8yHM8839uixMOV6g==", + "dev": true + }, "node_modules/periscopic": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/periscopic/-/periscopic-3.1.0.tgz", @@ -1517,12 +1908,215 @@ "node": "^10 || ^12 || >=14" } }, + "node_modules/prosemirror-changeset": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/prosemirror-changeset/-/prosemirror-changeset-2.2.1.tgz", + "integrity": "sha512-J7msc6wbxB4ekDFj+n9gTW/jav/p53kdlivvuppHsrZXCaQdVgRghoZbSS3kwrRyAstRVQ4/+u5k7YfLgkkQvQ==", + "dev": true, + "dependencies": { + "prosemirror-transform": "^1.0.0" + } + }, + "node_modules/prosemirror-collab": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/prosemirror-collab/-/prosemirror-collab-1.3.1.tgz", + "integrity": "sha512-4SnynYR9TTYaQVXd/ieUvsVV4PDMBzrq2xPUWutHivDuOshZXqQ5rGbZM84HEaXKbLdItse7weMGOUdDVcLKEQ==", + "dev": true, + "dependencies": { + "prosemirror-state": "^1.0.0" + } + }, + "node_modules/prosemirror-commands": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/prosemirror-commands/-/prosemirror-commands-1.6.0.tgz", + "integrity": "sha512-xn1U/g36OqXn2tn5nGmvnnimAj/g1pUx2ypJJIe8WkVX83WyJVC5LTARaxZa2AtQRwntu9Jc5zXs9gL9svp/mg==", + "dev": true, + "dependencies": { + "prosemirror-model": "^1.0.0", + "prosemirror-state": "^1.0.0", + "prosemirror-transform": "^1.0.0" + } + }, + "node_modules/prosemirror-dropcursor": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/prosemirror-dropcursor/-/prosemirror-dropcursor-1.8.1.tgz", + "integrity": "sha512-M30WJdJZLyXHi3N8vxN6Zh5O8ZBbQCz0gURTfPmTIBNQ5pxrdU7A58QkNqfa98YEjSAL1HUyyU34f6Pm5xBSGw==", + "dev": true, + "dependencies": { + "prosemirror-state": "^1.0.0", + "prosemirror-transform": "^1.1.0", + "prosemirror-view": "^1.1.0" + } + }, + "node_modules/prosemirror-gapcursor": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/prosemirror-gapcursor/-/prosemirror-gapcursor-1.3.2.tgz", + "integrity": "sha512-wtjswVBd2vaQRrnYZaBCbyDqr232Ed4p2QPtRIUK5FuqHYKGWkEwl08oQM4Tw7DOR0FsasARV5uJFvMZWxdNxQ==", + "dev": true, + "dependencies": { + "prosemirror-keymap": "^1.0.0", + "prosemirror-model": "^1.0.0", + "prosemirror-state": "^1.0.0", + "prosemirror-view": "^1.0.0" + } + }, + "node_modules/prosemirror-history": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/prosemirror-history/-/prosemirror-history-1.4.1.tgz", + "integrity": "sha512-2JZD8z2JviJrboD9cPuX/Sv/1ChFng+xh2tChQ2X4bB2HeK+rra/bmJ3xGntCcjhOqIzSDG6Id7e8RJ9QPXLEQ==", + "dev": true, + "dependencies": { + "prosemirror-state": "^1.2.2", + "prosemirror-transform": "^1.0.0", + "prosemirror-view": "^1.31.0", + "rope-sequence": "^1.3.0" + } + }, + "node_modules/prosemirror-inputrules": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/prosemirror-inputrules/-/prosemirror-inputrules-1.4.0.tgz", + "integrity": "sha512-6ygpPRuTJ2lcOXs9JkefieMst63wVJBgHZGl5QOytN7oSZs3Co/BYbc3Yx9zm9H37Bxw8kVzCnDsihsVsL4yEg==", + "dev": true, + "dependencies": { + "prosemirror-state": "^1.0.0", + "prosemirror-transform": "^1.0.0" + } + }, + "node_modules/prosemirror-keymap": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/prosemirror-keymap/-/prosemirror-keymap-1.2.2.tgz", + "integrity": "sha512-EAlXoksqC6Vbocqc0GtzCruZEzYgrn+iiGnNjsJsH4mrnIGex4qbLdWWNza3AW5W36ZRrlBID0eM6bdKH4OStQ==", + "dev": true, + "dependencies": { + "prosemirror-state": "^1.0.0", + "w3c-keyname": "^2.2.0" + } + }, + "node_modules/prosemirror-markdown": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/prosemirror-markdown/-/prosemirror-markdown-1.13.0.tgz", + "integrity": "sha512-UziddX3ZYSYibgx8042hfGKmukq5Aljp2qoBiJRejD/8MH70siQNz5RB1TrdTPheqLMy4aCe4GYNF10/3lQS5g==", + "dev": true, + "dependencies": { + "markdown-it": "^14.0.0", + "prosemirror-model": "^1.20.0" + } + }, + "node_modules/prosemirror-menu": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/prosemirror-menu/-/prosemirror-menu-1.2.4.tgz", + "integrity": "sha512-S/bXlc0ODQup6aiBbWVsX/eM+xJgCTAfMq/nLqaO5ID/am4wS0tTCIkzwytmao7ypEtjj39i7YbJjAgO20mIqA==", + "dev": true, + "dependencies": { + "crelt": "^1.0.0", + "prosemirror-commands": "^1.0.0", + "prosemirror-history": "^1.0.0", + "prosemirror-state": "^1.0.0" + } + }, + "node_modules/prosemirror-model": { + "version": "1.22.3", + "resolved": "https://registry.npmjs.org/prosemirror-model/-/prosemirror-model-1.22.3.tgz", + "integrity": "sha512-V4XCysitErI+i0rKFILGt/xClnFJaohe/wrrlT2NSZ+zk8ggQfDH4x2wNK7Gm0Hp4CIoWizvXFP7L9KMaCuI0Q==", + "dev": true, + "dependencies": { + "orderedmap": "^2.0.0" + } + }, + "node_modules/prosemirror-schema-basic": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/prosemirror-schema-basic/-/prosemirror-schema-basic-1.2.3.tgz", + "integrity": "sha512-h+H0OQwZVqMon1PNn0AG9cTfx513zgIG2DY00eJ00Yvgb3UD+GQ/VlWW5rcaxacpCGT1Yx8nuhwXk4+QbXUfJA==", + "dev": true, + "dependencies": { + "prosemirror-model": "^1.19.0" + } + }, + "node_modules/prosemirror-schema-list": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/prosemirror-schema-list/-/prosemirror-schema-list-1.4.1.tgz", + "integrity": "sha512-jbDyaP/6AFfDfu70VzySsD75Om2t3sXTOdl5+31Wlxlg62td1haUpty/ybajSfJ1pkGadlOfwQq9kgW5IMo1Rg==", + "dev": true, + "dependencies": { + "prosemirror-model": "^1.0.0", + "prosemirror-state": "^1.0.0", + "prosemirror-transform": "^1.7.3" + } + }, + "node_modules/prosemirror-state": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/prosemirror-state/-/prosemirror-state-1.4.3.tgz", + "integrity": "sha512-goFKORVbvPuAQaXhpbemJFRKJ2aixr+AZMGiquiqKxaucC6hlpHNZHWgz5R7dS4roHiwq9vDctE//CZ++o0W1Q==", + "dev": true, + "dependencies": { + "prosemirror-model": "^1.0.0", + "prosemirror-transform": "^1.0.0", + "prosemirror-view": "^1.27.0" + } + }, + "node_modules/prosemirror-tables": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/prosemirror-tables/-/prosemirror-tables-1.4.0.tgz", + "integrity": "sha512-fxryZZkQG12fSCNuZDrYx6Xvo2rLYZTbKLRd8rglOPgNJGMKIS8uvTt6gGC38m7UCu/ENnXIP9pEz5uDaPc+cA==", + "dev": true, + "dependencies": { + "prosemirror-keymap": "^1.1.2", + "prosemirror-model": "^1.8.1", + "prosemirror-state": "^1.3.1", + "prosemirror-transform": "^1.2.1", + "prosemirror-view": "^1.13.3" + } + }, + "node_modules/prosemirror-trailing-node": { + "version": "2.0.9", + "resolved": "https://registry.npmjs.org/prosemirror-trailing-node/-/prosemirror-trailing-node-2.0.9.tgz", + "integrity": "sha512-YvyIn3/UaLFlFKrlJB6cObvUhmwFNZVhy1Q8OpW/avoTbD/Y7H5EcjK4AZFKhmuS6/N6WkGgt7gWtBWDnmFvHg==", + "dev": true, + "dependencies": { + "@remirror/core-constants": "^2.0.2", + "escape-string-regexp": "^4.0.0" + }, + "peerDependencies": { + "prosemirror-model": "^1.22.1", + "prosemirror-state": "^1.4.2", + "prosemirror-view": "^1.33.8" + } + }, + "node_modules/prosemirror-transform": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/prosemirror-transform/-/prosemirror-transform-1.10.0.tgz", + "integrity": "sha512-9UOgFSgN6Gj2ekQH5CTDJ8Rp/fnKR2IkYfGdzzp5zQMFsS4zDllLVx/+jGcX86YlACpG7UR5fwAXiWzxqWtBTg==", + "dev": true, + "dependencies": { + "prosemirror-model": "^1.21.0" + } + }, + "node_modules/prosemirror-view": { + "version": "1.33.10", + "resolved": "https://registry.npmjs.org/prosemirror-view/-/prosemirror-view-1.33.10.tgz", + "integrity": "sha512-wsKg9JeQkWlkXG8DDcloI/tbB9r3CysziubigoC8wTuE6zobN/9cl8bGRk1J1XjkUp7rxGBziOSxrhoILL84hg==", + "dev": true, + "dependencies": { + "prosemirror-model": "^1.20.0", + "prosemirror-state": "^1.0.0", + "prosemirror-transform": "^1.1.0" + } + }, "node_modules/proxy-from-env": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", "dev": true }, + "node_modules/punycode.js": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode.js/-/punycode.js-2.3.1.tgz", + "integrity": "sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, "node_modules/readdirp": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", @@ -1570,6 +2164,12 @@ "fsevents": "~2.3.2" } }, + "node_modules/rope-sequence": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/rope-sequence/-/rope-sequence-1.3.4.tgz", + "integrity": "sha512-UT5EDe2cu2E/6O4igUr5PSFs23nvvukicWHx6GnOPlHAiiYbzNuCRQCuiUdHJQcqKalLKlrYJnjY0ySGsXNQXQ==", + "dev": true + }, "node_modules/sass": { "version": "1.77.8", "resolved": "https://registry.npmjs.org/sass/-/sass-1.77.8.tgz", @@ -1605,7 +2205,8 @@ "node_modules/style-mod": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/style-mod/-/style-mod-4.1.2.tgz", - "integrity": "sha512-wnD1HyVqpJUI2+eKZ+eo1UwghftP6yuFheBqqe+bWCotBjC2K1YnteJILRMs3SM4V/0dLEW1SC27MWP5y+mwmw==" + "integrity": "sha512-wnD1HyVqpJUI2+eKZ+eo1UwghftP6yuFheBqqe+bWCotBjC2K1YnteJILRMs3SM4V/0dLEW1SC27MWP5y+mwmw==", + "dev": true }, "node_modules/svelte": { "version": "4.2.18", @@ -1645,9 +2246,9 @@ } }, "node_modules/tinymce": { - "version": "6.8.0", - "resolved": "https://registry.npmjs.org/tinymce/-/tinymce-6.8.0.tgz", - "integrity": "sha512-WSQlyfW8aPkOVMmmHmSVeA5Dq4JuUZjTB+PmePJ27oQ+ruv3Zn4KSTsvSnDUrHlqygjDvRidrCB/m5nTWCC2nA==", + "version": "6.8.4", + "resolved": "https://registry.npmjs.org/tinymce/-/tinymce-6.8.4.tgz", + "integrity": "sha512-okoJyxuPv1gzASxQDNgQbnUXOdAIyoOSXcXcZZu7tiW0PSKEdf3SdASxPBupRj+64/E3elHwVRnzSdo82Emqbg==", "dev": true }, "node_modules/to-regex-range": { @@ -1662,6 +2263,18 @@ "node": ">=8.0" } }, + "node_modules/trix": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/trix/-/trix-2.1.5.tgz", + "integrity": "sha512-5pC4olCp7BwxTC8Joy1Kv33kDvSOApi9Tqf6c8wygqCgeCx9xPP5cxkZEhvKpMV+kjd9gszingd5fZo834+ktw==", + "dev": true + }, + "node_modules/uc.micro": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-2.1.0.tgz", + "integrity": "sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==", + "dev": true + }, "node_modules/uuid": { "version": "10.0.0", "resolved": "https://registry.npmjs.org/uuid/-/uuid-10.0.0.tgz", @@ -1785,7 +2398,8 @@ "node_modules/w3c-keyname": { "version": "2.2.8", "resolved": "https://registry.npmjs.org/w3c-keyname/-/w3c-keyname-2.2.8.tgz", - "integrity": "sha512-dpojBhNsCNN7T82Tm7k26A6G9ML3NkhDsnw9n/eoxSRlVBB4CEtIQ/KTCLI2Fwf3ataSXRhYFkQi3SlnFwPvPQ==" + "integrity": "sha512-dpojBhNsCNN7T82Tm7k26A6G9ML3NkhDsnw9n/eoxSRlVBB4CEtIQ/KTCLI2Fwf3ataSXRhYFkQi3SlnFwPvPQ==", + "dev": true } } } diff --git a/front/package.json b/front/package.json index f06998c..f803e72 100644 --- a/front/package.json +++ b/front/package.json @@ -8,12 +8,35 @@ "devDependencies": { "@codemirror/commands": "^6.6.0", "@codemirror/lang-json": "^6.0.1", + "@codemirror/lang-markdown": "^6.2.5", "@codemirror/state": "^6.4.1", "@sveltejs/vite-plugin-svelte": "^3.1.1", - "axios": "1.6.0", + "@tiptap/core": "^2.6.4", + "@tiptap/extension-blockquote": "^2.6.4", + "@tiptap/extension-bold": "^2.6.4", + "@tiptap/extension-bullet-list": "^2.6.4", + "@tiptap/extension-code": "^2.6.4", + "@tiptap/extension-document": "^2.6.4", + "@tiptap/extension-heading": "^2.6.4", + "@tiptap/extension-history": "^2.6.4", + "@tiptap/extension-italic": "^2.6.4", + "@tiptap/extension-list-item": "^2.6.4", + "@tiptap/extension-ordered-list": "^2.6.4", + "@tiptap/extension-paragraph": "^2.6.4", + "@tiptap/extension-strike": "^2.6.4", + "@tiptap/extension-table": "^2.6.4", + "@tiptap/extension-table-cell": "^2.6.4", + "@tiptap/extension-table-header": "^2.6.4", + "@tiptap/extension-table-row": "^2.6.4", + "@tiptap/extension-text": "^2.6.4", + "@tiptap/extension-underline": "^2.6.4", + "@tiptap/pm": "^2.6.4", + "axios": "^1.7.4", "codemirror": "^6.0.1", "date-fns": "^3.6.0", "flatpickr": "^4.6.13", + "fuse.js": "^7.0.0", + "htmx.org": "^2.0.1", "laravel-vite-plugin": "^1.0.5", "lodash": "^4.17.21", "mustache": "^4.2.0", @@ -21,13 +44,8 @@ "sass": "^1.77.8", "sortablejs": "^1.15.2", "svelte": "^4.2.18", - "tinymce": "6.8.0", + "tinymce": "^6.8.4", "uuid": "^10.0.0", "vite": "5.2.6" - }, - "dependencies": { - "@codemirror/lang-markdown": "^6.2.5", - "fuse.js": "^7.0.0", - "htmx.org": "^2.0.1" } } diff --git a/front/sass/_preview.scss b/front/sass/_preview.scss index 2302871..1d93d1e 100644 --- a/front/sass/_preview.scss +++ b/front/sass/_preview.scss @@ -12,14 +12,14 @@ } - .trash-action{ + .reference-action{ display: none; - margin-right: 20px; + } &:hover{ background: var(--p30); - .trash-action{ + .reference-action{ display: block; } } diff --git a/front/sass/_typography.scss b/front/sass/_typography.scss index 7c15ffc..9a5171e 100644 --- a/front/sass/_typography.scss +++ b/front/sass/_typography.scss @@ -3,6 +3,8 @@ .content { font-size: 16px; line-height: 20px; + font-family: var(--main-font); + color: var(--text); p{ margin-bottom: 14px; diff --git a/src/Http/Controller/RecordController.php b/src/Http/Controller/RecordController.php index d796b82..3f9cea0 100644 --- a/src/Http/Controller/RecordController.php +++ b/src/Http/Controller/RecordController.php @@ -205,7 +205,6 @@ class RecordController extends Controller { $rid = $request->route("rid"); - $graph = $this->query ->filter(["id" => $rid]) ->limit(1) diff --git a/src/Schema/SchemaService.php b/src/Schema/SchemaService.php index f0a517d..a913a1d 100644 --- a/src/Schema/SchemaService.php +++ b/src/Schema/SchemaService.php @@ -57,6 +57,7 @@ class SchemaService { $className = "\\Lucent\Schema\Ui\\" . ucfirst($field["ui"]); unset($field["ui"]); + return new $className(...$field); } diff --git a/src/Schema/Ui/Rich.php b/src/Schema/Ui/Rich.php index 82a6c6d..7949a87 100644 --- a/src/Schema/Ui/Rich.php +++ b/src/Schema/Ui/Rich.php @@ -19,6 +19,7 @@ class Rich implements FieldInterface, RequiredInterface public bool $nullable = false, public string $default = "", public string $help = "", + public array $collections = [], public ?int $min = null, public ?int $max = null, public bool $readonly = false,