diff --git a/README.md b/README.md
index bb0bc8c..33ea890 100644
--- a/README.md
+++ b/README.md
@@ -4,7 +4,7 @@ This is an online and open source Minecraft Text Component WYSIWYG editor, updat
Check it out at: https://text.datapackhub.net/
-
+
:eyes: To prove it works, the generated text from the image above is below:
diff --git a/package-lock.json b/package-lock.json
index 04ca452..814dcad 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -33,6 +33,7 @@
"@types/node": "^26.1.2",
"@types/sortablejs": "^1.15.9",
"@vitest/coverage-v8": "4.1.10",
+ "@vitest/ui": "^4.1.10",
"file-type": "^22.0.1",
"oxlint": "^1.77.0",
"prettier": "^3.9.6",
@@ -1936,6 +1937,28 @@
"url": "https://opencollective.com/vitest"
}
},
+ "node_modules/@vitest/ui": {
+ "version": "4.1.10",
+ "resolved": "https://registry.npmjs.org/@vitest/ui/-/ui-4.1.10.tgz",
+ "integrity": "sha512-EOUqfXHTXtpSHsyLHH40ts3Ue+hRhSGwzwzMlK0dTEOLSDYyOXLyr5JDGmHQWhN2DYI30gw6dVx3cdgM9FZl+Q==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@vitest/utils": "4.1.10",
+ "fflate": "^0.8.2",
+ "flatted": "^3.4.2",
+ "pathe": "^2.0.3",
+ "sirv": "^3.0.2",
+ "tinyglobby": "^0.2.15",
+ "tinyrainbow": "^3.1.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/vitest"
+ },
+ "peerDependencies": {
+ "vitest": "4.1.10"
+ }
+ },
"node_modules/@vitest/utils": {
"version": "4.1.10",
"resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-4.1.10.tgz",
@@ -2201,6 +2224,13 @@
}
}
},
+ "node_modules/fflate": {
+ "version": "0.8.3",
+ "resolved": "https://registry.npmjs.org/fflate/-/fflate-0.8.3.tgz",
+ "integrity": "sha512-tbZNuJrLwGUp3zshBtdy4W+ORxZuIh8a5ilyIEQDC5rY1f3U20JMry0Ll3WBzU58EZKsEuJFXhb5gwv8CsPvgA==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/file-type": {
"version": "22.0.1",
"resolved": "https://registry.npmjs.org/file-type/-/file-type-22.0.1.tgz",
@@ -2220,6 +2250,13 @@
"url": "https://github.com/sindresorhus/file-type?sponsor=1"
}
},
+ "node_modules/flatted": {
+ "version": "3.4.4",
+ "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.4.4.tgz",
+ "integrity": "sha512-5+ybhBZANEJxaH3X5evAFatUxLfEHSr7n6kYJ+1Qd0mUqr4eu9gIf6GDbWHf8RJijHrjjO8G+la14SlL2SeS1Q==",
+ "dev": true,
+ "license": "ISC"
+ },
"node_modules/fsevents": {
"version": "2.3.2",
"resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
diff --git a/package.json b/package.json
index d57dfa8..5057008 100644
--- a/package.json
+++ b/package.json
@@ -23,6 +23,7 @@
"@types/node": "^26.1.2",
"@types/sortablejs": "^1.15.9",
"@vitest/coverage-v8": "4.1.10",
+ "@vitest/ui": "^4.1.10",
"file-type": "^22.0.1",
"oxlint": "^1.77.0",
"prettier": "^3.9.6",
diff --git a/src/app.css b/src/app.css
index 187fd53..8a5ff9e 100644
--- a/src/app.css
+++ b/src/app.css
@@ -54,6 +54,13 @@ strong {
@apply text-xl;
}
+.tiptap-minirenderer {
+ @apply h-full w-full p-2;
+ @apply focus:outline-none;
+ font-family: Minecraft;
+ @apply text-xl;
+}
+
.tiptap p.is-editor-empty:first-child::before {
color: #7f7f7f;
content: attr(data-placeholder);
@@ -63,20 +70,25 @@ strong {
}
.clickEvent {
- background-color: #3c3c40aa;
- border-bottom: solid #ff5555 2px;
- padding-top: 2px;
- padding-bottom: 2px;
+ background-color: #45454e80;
+ border: solid #45454e 1px;
+ border-bottom: solid #a868e7 2px;
z-index: 10;
--custom-source-align: top;
+ padding-bottom: 1px;
+}
+
+.clickEvent:has(.hoverEvent) {
+ padding-bottom: 3px;
}
.hoverEvent {
- background-color: #3c3c40aa;
- border-bottom: solid #ffff55 2px;
- padding-top: 4px;
+ background-color: #45454e80;
+ border: solid #45454e 1px;
+ border-bottom: solid #e57e2b 2px;
z-index: 10;
--custom-source-align: top;
+ padding-bottom: 1px;
}
.obfuscated {
@@ -87,6 +99,11 @@ strong {
filter: blur(3px);
}
+.export-button {
+ @apply items-center p-1 px-1.5 bg-zinc-900 text-zinc-200 hover:text-white rounded-md font-lexend text-xs h-6;
+ @apply w-0 invisible sm:w-fit sm:visible; /* hide on mobile */
+}
+
/* Useful */
.nomob {
@@ -103,6 +120,14 @@ strong {
@apply rounded-md p-1 text-lg font-medium hover:bg-white/3;
}
+.input-basic {
+ @apply rounded-md bg-zinc-900 p-2;
+}
+
+.link {
+ @apply font-bold underline;
+}
+
.tippy-box[data-theme~="dph"] {
background-color: var(--color-zinc-700);
font-family: "Lexend", sans-serif;
diff --git a/src/lib/components/TopUI.svelte b/src/lib/components/TopUI.svelte
index 0b11d36..e8f8083 100644
--- a/src/lib/components/TopUI.svelte
+++ b/src/lib/components/TopUI.svelte
@@ -8,7 +8,7 @@
import IconUpload from "~icons/tabler/upload";
import IconSettings from "~icons/tabler/settings";
- const { editor }: { editor: Editor | undefined } = $props();
+ let { editor, welcomeScreenVisible = $bindable() }: { editor: Editor | undefined, welcomeScreenVisible: boolean } = $props();
let snapshots = $state