@blokkli/editor 2.0.0-alpha.45 → 2.0.0-alpha.46
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/module.d.mts +2 -2
- package/dist/module.json +1 -1
- package/dist/module.mjs +22 -1
- package/dist/modules/agent/index.d.mts +1 -1
- package/dist/modules/charts/index.d.mts +1 -1
- package/dist/modules/drupal/index.d.mts +1 -1
- package/dist/modules/table-of-contents/index.d.mts +1 -1
- package/dist/runtime/editor/components/FlexTextarea/index.vue +220 -11
- package/dist/runtime/editor/css/output.css +1 -1
- package/dist/runtime/editor/features/changelog/Dialog/index.d.vue.ts +7 -0
- package/dist/runtime/editor/features/changelog/Dialog/index.vue +43 -0
- package/dist/runtime/editor/features/changelog/Dialog/index.vue.d.ts +7 -0
- package/dist/runtime/editor/features/changelog/changelog.json +42 -0
- package/dist/runtime/editor/features/changelog/index.d.vue.ts +3 -0
- package/dist/runtime/editor/features/changelog/index.vue +56 -0
- package/dist/runtime/editor/features/changelog/index.vue.d.ts +3 -0
- package/dist/runtime/editor/features/editable-field/Overlay/Plaintext/index.vue +0 -1
- package/dist/runtime/editor/translations/de.json +20 -0
- package/dist/runtime/editor/translations/fr.json +20 -0
- package/dist/runtime/editor/translations/gsw_CH.json +20 -0
- package/dist/runtime/editor/translations/it.json +20 -0
- package/dist/shared/{editor.BdBm1Z7C.d.mts → editor.BVregnEC.d.mts} +24 -0
- package/dist/types.d.mts +1 -1
- package/package.json +2 -1
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
declare const __VLS_export: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
|
|
2
|
+
cancel: () => any;
|
|
3
|
+
}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{
|
|
4
|
+
onCancel?: (() => any) | undefined;
|
|
5
|
+
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
6
|
+
declare const _default: typeof __VLS_export;
|
|
7
|
+
export default _default;
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<DialogModal
|
|
3
|
+
id="changelog"
|
|
4
|
+
:title="$t('changelogDialogTitle', 'What\'s New')"
|
|
5
|
+
:width="876"
|
|
6
|
+
hide-buttons
|
|
7
|
+
icon="bk_mdi_campaign"
|
|
8
|
+
@cancel="$emit('cancel')"
|
|
9
|
+
>
|
|
10
|
+
<div class="bk bk-changelog">
|
|
11
|
+
<div
|
|
12
|
+
v-for="entry in entries"
|
|
13
|
+
:key="entry.version"
|
|
14
|
+
class="bk-changelog-entry"
|
|
15
|
+
>
|
|
16
|
+
<div class="bk-changelog-entry-header">
|
|
17
|
+
<h2>{{ entry.date }}</h2>
|
|
18
|
+
<span>{{ entry.version }}</span>
|
|
19
|
+
</div>
|
|
20
|
+
<div v-html="entry.html" class="bk-changelog-entry-content" />
|
|
21
|
+
</div>
|
|
22
|
+
</div>
|
|
23
|
+
</DialogModal>
|
|
24
|
+
</template>
|
|
25
|
+
|
|
26
|
+
<script setup>
|
|
27
|
+
import { useBlokkli, computed } from "#imports";
|
|
28
|
+
import { DialogModal } from "#blokkli/editor/components";
|
|
29
|
+
import data from "../changelog.json";
|
|
30
|
+
const { $t, ui } = useBlokkli();
|
|
31
|
+
defineEmits(["cancel"]);
|
|
32
|
+
const entries = computed(
|
|
33
|
+
() => data.map((entry) => {
|
|
34
|
+
const lang = ui.interfaceLanguage.value;
|
|
35
|
+
const html = lang in entry.body ? entry.body[lang] : entry.body.en;
|
|
36
|
+
return {
|
|
37
|
+
version: entry.version,
|
|
38
|
+
date: ui.formatDate(entry.date, { dateStyle: "long" }),
|
|
39
|
+
html
|
|
40
|
+
};
|
|
41
|
+
})
|
|
42
|
+
);
|
|
43
|
+
</script>
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
declare const __VLS_export: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
|
|
2
|
+
cancel: () => any;
|
|
3
|
+
}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{
|
|
4
|
+
onCancel?: (() => any) | undefined;
|
|
5
|
+
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
6
|
+
declare const _default: typeof __VLS_export;
|
|
7
|
+
export default _default;
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
[
|
|
2
|
+
{
|
|
3
|
+
"version": "2.0.0-alpha.46",
|
|
4
|
+
"date": "2026-03-13",
|
|
5
|
+
"body": {
|
|
6
|
+
"en": "<h3>New Features</h3>\n<h4>Automatic text replacements</h4>\n<p>When editing text fields, common typographic patterns are now automatically replaced: straight double quotes ("...") become guillemets («...»), three dots (...) become an ellipsis (…), and double hyphens (--) become an en dash (–). Guillemet replacement is only active for German and French languages. All replacements can be undone with Ctrl+Z.</p>\n<h4>Undo/redo in text fields</h4>\n<p>Text fields now have a proper undo/redo history. Use Ctrl+Z to undo and Ctrl+Shift+Z or Ctrl+Y to redo.</p>\n",
|
|
7
|
+
"de": "<h3>Neue Funktionen</h3>\n<h4>Automatische Textersetzungen</h4>\n<p>Beim Bearbeiten von Textfeldern werden häufige typografische Muster automatisch ersetzt: Gerade Anführungszeichen ("...") werden zu Guillemets («...»), drei Punkte (...) zu einem Auslassungszeichen (…) und doppelte Bindestriche (--) zu einem Gedankenstrich (–). Die Guillemet-Ersetzung ist nur bei deutscher und französischer Sprache aktiv. Alle Ersetzungen können mit Ctrl+Z rückgängig gemacht werden.</p>\n<h4>Rückgängig/Wiederherstellen in Textfeldern</h4>\n<p>Textfelder haben jetzt eine vollständige Rückgängig-/Wiederherstellen-Historie. Mit Ctrl+Z kann rückgängig gemacht und mit Ctrl+Shift+Z oder Ctrl+Y wiederhergestellt werden.</p>\n"
|
|
8
|
+
}
|
|
9
|
+
},
|
|
10
|
+
{
|
|
11
|
+
"version": "2.0.0-alpha.44",
|
|
12
|
+
"date": "2026-03-12",
|
|
13
|
+
"body": {
|
|
14
|
+
"en": "<h3>New Features</h3>\n<h4>Heading structure analyzer</h4>\n<p>A new built-in analyzer checks the heading hierarchy on your page (H1–H6) and flags issues such as multiple H1 headings or skipped heading levels.</p>\n<h4>Image alt text analyzer</h4>\n<p>A new accessibility analyzer highlights images that are missing alt text directly on the page.</p>\n<h4>Analyze tooltips on the artboard</h4>\n<p>When the analyze panel is active, hovering over a highlighted element now shows a tooltip with the issue title and readability score.</p>\n<h4>Readability score in editable overlay</h4>\n<p>While editing a rich text field, the readability score for the full text is now shown in the editing toolbar above the field.</p>\n<h4>Select parent block button</h4>\n<p>The block actions toolbar now has a button that lets you quickly select the enclosing parent block.</p>\n<h4>Move block button</h4>\n<p>A drag handle button in the actions toolbar lets you start moving blocks directly from the toolbar.</p>\n<h4>Improved search when adding blocks</h4>\n<p>The block selector now finds the right block type even with typos or partial terms. The search field is also focused automatically when the selector opens.</p>\n<h3>Improvements</h3>\n<ul>\n<li>The "Keep results visible" toggle in the analyze panel now shows a description explaining that results stay highlighted even after the panel is closed.</li>\n</ul>\n<h3>Fixes</h3>\n<ul>\n<li>Fixed the edit indicator not rendering after entering edit mode.</li>\n<li>Fixed the sticky block actions toolbar sometimes jumping to the wrong position.</li>\n<li>Fixed a visual glitch in the selection when the page was selected and the context menu was opened.</li>\n<li>Fixed block options changes not being submitted when a dialog was opened.</li>\n<li>Fixed the language switcher being shown even when only one language is available.</li>\n<li>Fixed readability scores being calculated incorrectly for certain text fields.</li>\n<li>Improved the readability analysis for German texts.</li>\n</ul>\n",
|
|
15
|
+
"de": "<h3>Neue Funktionen</h3>\n<h4>Überschriftenstruktur-Analyse</h4>\n<p>Eine neue Prüfung kontrolliert die Überschriftenstruktur auf der Seite (H1–H6) und markiert Probleme wie mehrfache H1-Überschriften oder übersprungene Ebenen.</p>\n<h4>Alt-Text-Analyse für Bilder</h4>\n<p>Eine neue Barrierefreiheits-Prüfung hebt Bilder ohne Alt-Text direkt auf der Seite hervor.</p>\n<h4>Analyse-Tooltips auf der Seite</h4>\n<p>Wenn das Analyse-Panel aktiv ist, erscheint beim Hovern über ein markiertes Element ein Tooltip mit dem Titel des Problems und dem Lesbarkeitswert.</p>\n<h4>Lesbarkeitswert in der Bearbeitungsansicht</h4>\n<p>Beim Bearbeiten eines Rich-Text-Feldes wird der Lesbarkeitswert in der Werkzeugleiste oberhalb des Feldes angezeigt.</p>\n<h4>Übergeordneten Block auswählen</h4>\n<p>Die Block-Aktionsleiste hat jetzt eine Schaltfläche, um schnell den übergeordneten Block auszuwählen.</p>\n<h4>Block-Verschieben-Schaltfläche</h4>\n<p>Ein Ziehpunkt in der Aktionsleiste ermöglicht das direkte Verschieben von Blöcken.</p>\n<h4>Verbesserte Suche beim Hinzufügen von Blöcken</h4>\n<p>Die Block-Auswahl findet jetzt auch bei Tippfehlern den richtigen Blocktyp. Das Suchfeld wird beim Öffnen automatisch fokussiert.</p>\n<h3>Verbesserungen</h3>\n<ul>\n<li>Der Schalter «Ergebnisse sichtbar lassen» im Analyse-Panel zeigt jetzt eine Beschreibung, die erklärt, dass Ergebnisse auch nach dem Schliessen des Panels auf der Seite hervorgehoben bleiben.</li>\n</ul>\n<h3>Fehlerbehebungen</h3>\n<ul>\n<li>Der Bearbeitungsindikator wurde nach dem Wechsel in den Bearbeitungsmodus nicht angezeigt.</li>\n<li>Die fixierte Block-Aktionsleiste sprang manchmal an die falsche Position.</li>\n<li>Ein visueller Fehler bei der Auswahl wurde behoben, der beim gleichzeitigen Öffnen des Kontextmenüs auftrat.</li>\n<li>Block-Optionen wurden beim Öffnen eines Dialogs nicht übermittelt.</li>\n<li>Der Sprachumschalter wurde auch dann angezeigt, wenn nur eine Sprache verfügbar war.</li>\n<li>Lesbarkeitswerte wurden in gewissen Fällen falsch berechnet.</li>\n<li>Die Lesbarkeitsanalyse für deutsche Texte wurde verbessert.</li>\n</ul>\n"
|
|
16
|
+
}
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
"version": "2.0.0-alpha.39",
|
|
20
|
+
"date": "2026-02-22",
|
|
21
|
+
"body": {
|
|
22
|
+
"en": "<h3>New Features</h3>\n<h4>AI Assistant file attachments</h4>\n<p>Drag and drop files (including Word documents) directly onto the AI chat panel to attach them as context — the content is automatically extracted and formatted.</p>\n<h4>AI readability analysis</h4>\n<p>The AI assistant can now analyze the page for readability issues and iteratively improve texts based on readability scores.</p>\n<h4>Faster AI responses</h4>\n<p>The assistant now responds faster to the first message of a conversation.</p>\n<h4>AI action details</h4>\n<p>Completed AI actions in the conversation can now show an expandable details panel with additional context.</p>\n<h4>AI welcome popup</h4>\n<p>A welcome popup now introduces new users to the AI assistant when the editor opens.</p>\n<h3>Improvements</h3>\n<ul>\n<li>The AI assistant sidebar button has been moved to the bottom-right of the toolbar and features an animated star icon.</li>\n<li>The "Start new conversation" and "Past conversations" buttons are now shown directly in the input area instead of in a dropdown.</li>\n<li>Double-clicking a complex data option (e.g. chart data) now immediately opens the editor for that option.</li>\n<li>The AI assistant shows a reconnection indicator in the chat when the connection drops temporarily.</li>\n</ul>\n<h3>Fixes</h3>\n<ul>\n<li>Selecting text inside an inline-editable field no longer accidentally closes the editor when releasing the mouse outside the field.</li>\n<li>The middle mouse button no longer interrupts drag-and-drop interactions.</li>\n<li>Incomplete or truncated AI responses are now handled gracefully instead of silently failing.</li>\n</ul>\n",
|
|
23
|
+
"de": "<h3>Neue Funktionen</h3>\n<h4>KI-Assistent: Dateianhänge</h4>\n<p>Dateien (inkl. Word-Dokumente) können direkt per Drag & Drop auf den KI-Chat gezogen werden — der Inhalt wird automatisch extrahiert und formatiert.</p>\n<h4>KI-Lesbarkeitsanalyse</h4>\n<p>Der KI-Assistent kann jetzt die Seite auf Lesbarkeitsprobleme prüfen und Texte anhand der Lesbarkeitswerte schrittweise verbessern.</p>\n<h4>Schnellere KI-Antworten</h4>\n<p>Der Assistent antwortet jetzt schneller auf die erste Nachricht eines Gesprächs.</p>\n<h4>KI-Aktionsdetails</h4>\n<p>Abgeschlossene KI-Aktionen im Gesprächsverlauf können jetzt aufgeklappt werden, um mehr Details anzuzeigen.</p>\n<h4>KI-Willkommens-Popup</h4>\n<p>Beim Öffnen des Editors erscheint ein Willkommens-Popup, das neue Nutzer in den KI-Assistenten einführt.</p>\n<h3>Verbesserungen</h3>\n<ul>\n<li>Die Schaltfläche des KI-Assistenten wurde in die rechte untere Ecke der Werkzeugleiste verschoben und zeigt jetzt ein animiertes Stern-Symbol.</li>\n<li>Die Schaltflächen «Neues Gespräch» und «Vergangene Gespräche» werden jetzt direkt im Eingabebereich angezeigt statt in einem Dropdown.</li>\n<li>Ein Doppelklick auf eine komplexe Datenoption (z. B. Diagrammdaten) öffnet jetzt direkt den zugehörigen Editor.</li>\n<li>Der KI-Assistent zeigt im Chat einen Hinweis an, wenn die Verbindung vorübergehend unterbrochen wird.</li>\n</ul>\n<h3>Fehlerbehebungen</h3>\n<ul>\n<li>Textauswahl in einem Inline-Bearbeitungsfeld schliesst den Editor nicht mehr versehentlich, wenn die Maus ausserhalb des Felds losgelassen wird.</li>\n<li>Die mittlere Maustaste unterbricht Drag-&-Drop-Aktionen nicht mehr.</li>\n<li>Unvollständige oder abgebrochene KI-Antworten werden jetzt korrekt behandelt, anstatt ohne Fehlermeldung abzubrechen.</li>\n</ul>\n"
|
|
24
|
+
}
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
"version": "2.0.0-alpha.35",
|
|
28
|
+
"date": "2026-02-11",
|
|
29
|
+
"body": {
|
|
30
|
+
"en": "<h3>New Features</h3>\n<h4>AI Assistant</h4>\n<p>A new AI-powered assistant is available in the editor sidebar, allowing you to add, move, delete, and rewrite content blocks through a chat interface with support for plans, conversation history, and media selection.</p>\n<h4>Block preview in "Add" panel</h4>\n<p>Hovering a block type in the add panel now shows a tooltip with a preview image and description.</p>\n<h4>Template management</h4>\n<p>A new management view lets you rename and delete saved templates directly from the editor.</p>\n<h4>Charts</h4>\n<p>A new chart block type is available for embedding interactive charts on pages.</p>\n<h4>Table of contents</h4>\n<p>A new table of contents module is available.</p>\n<h3>Improvements</h3>\n<ul>\n<li>You can now hold Ctrl and click to select multiple items in the media library at once.</li>\n<li>Dragged items are now sized more accurately to match the block being moved.</li>\n<li>Drop target areas shrink visually when not hovered, giving a cleaner layout while dragging.</li>\n</ul>\n<h3>Fixes</h3>\n<ul>\n<li>Long option descriptions no longer overflow in the options tooltip.</li>\n<li>Hover detection for overlapping blocks now correctly respects z-index order.</li>\n<li>The default icon is now correctly displayed for fragment blocks.</li>\n<li>Opening the AI assistant from a block action no longer restores a previous conversation; it starts fresh.</li>\n</ul>\n",
|
|
31
|
+
"de": "<h3>Neue Funktionen</h3>\n<h4>KI-Assistent</h4>\n<p>Im Editor steht ein neuer KI-Assistent zur Verfügung. Damit können Blöcke per Chat hinzugefügt, verschoben, gelöscht und umgeschrieben werden – inklusive Planung, Gesprächsverlauf und Medienauswahl.</p>\n<h4>Block-Vorschau im «Hinzufügen»-Panel</h4>\n<p>Beim Überfahren eines Blocktyps im Hinzufügen-Panel erscheint ein Tooltip mit Vorschau und Beschreibung.</p>\n<h4>Vorlagenverwaltung</h4>\n<p>In einer neuen Verwaltungsansicht können gespeicherte Vorlagen direkt im Editor umbenannt und gelöscht werden.</p>\n<h4>Diagramme</h4>\n<p>Ein neuer Diagramm-Blocktyp ist verfügbar, um interaktive Diagramme auf Seiten einzubetten.</p>\n<h4>Inhaltsverzeichnis</h4>\n<p>Ein neues Inhaltsverzeichnis-Modul ist verfügbar.</p>\n<h3>Verbesserungen</h3>\n<ul>\n<li>Mit Strg+Klick können jetzt mehrere Elemente in der Medienbibliothek gleichzeitig ausgewählt werden.</li>\n<li>Beim Ziehen werden Elemente jetzt passender in der Grösse des verschobenen Blocks dargestellt.</li>\n<li>Ablagezonen werden kleiner dargestellt, wenn sie nicht aktiv überfahren werden, was beim Ziehen für ein aufgeräumteres Layout sorgt.</li>\n</ul>\n<h3>Fehlerbehebungen</h3>\n<ul>\n<li>Lange Optionsbeschreibungen im Optionen-Tooltip werden jetzt korrekt dargestellt und laufen nicht mehr über.</li>\n<li>Überlappende Blöcke reagieren jetzt korrekt auf Hover-Aktionen.</li>\n<li>Das Standardsymbol für Fragment-Blöcke wird jetzt korrekt angezeigt.</li>\n<li>Der KI-Assistent startet jetzt immer ein neues Gespräch, wenn er über das Dropdown-Menü eines Blocks geöffnet wird.</li>\n</ul>\n"
|
|
32
|
+
}
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
"version": "2.0.0-alpha.28",
|
|
36
|
+
"date": "2026-01-01",
|
|
37
|
+
"body": {
|
|
38
|
+
"en": "<h3>New Features</h3>\n<h4>Templates</h4>\n<p>Blocks can now be saved as reusable templates and inserted into any field from the add list, with a manage dialog for browsing, creating, and organizing templates.</p>\n<h4>Selection breadcrumb</h4>\n<p>A breadcrumb bar appears when a block is selected, showing the nesting path and letting you navigate to parent fields or the page with a single click.</p>\n<h4>Empty field buttons when host is selected</h4>\n<p>Quick-add buttons for empty fields now also appear when the page itself is selected, so you can add blocks without first selecting a block.</p>\n<h4>Search in "Add" overlay</h4>\n<p>The overlay that appears when clicking an add button now includes a search field to quickly filter available blocks.</p>\n<h3>Improvements</h3>\n<ul>\n<li>Pressing the space bar while hovering the canvas now activates the move/pan cursor, matching common design tool conventions.</li>\n<li>After duplicating blocks, the duplicated blocks are automatically selected and scrolled into view.</li>\n<li>After deleting a block, the page scrolls to bring the nearest remaining block into view.</li>\n<li>The dragging overlay label now shows the nesting trail (e.g. parent block name) and stays visible at viewport edges.</li>\n<li>The analyze category filter is hidden when there is only one category.</li>\n<li>The app menu now scrolls correctly when the list of items is longer than the visible area.</li>\n</ul>\n<h3>Fixes</h3>\n<ul>\n<li>Fixed the analyze button being shown when no analyzers were available.</li>\n<li>Fixed the transform preview not displaying the result correctly before applying.</li>\n<li>Fixed the add list panel being too tall on small-screen viewports.</li>\n<li>Fixed the "New" label not appearing in the action bar when multiple blocks are selected.</li>\n</ul>\n",
|
|
39
|
+
"de": "<h3>Neue Funktionen</h3>\n<h4>Vorlagen</h4>\n<p>Blöcke können jetzt als Vorlagen gespeichert und aus der Hinzufügen-Liste in beliebige Felder eingefügt werden. Ein Dialog zum Verwalten, Durchsuchen und Erstellen von Vorlagen ist ebenfalls verfügbar.</p>\n<h4>Auswahl-Breadcrumb</h4>\n<p>Beim Auswählen eines Blocks erscheint eine Breadcrumb-Leiste, die den Verschachtelungspfad anzeigt. So kann man schnell zu übergeordneten Feldern oder zur Seite navigieren.</p>\n<h4>Leere-Feld-Schaltflächen bei ausgewählter Seite</h4>\n<p>Schnell-Hinzufügen-Schaltflächen für leere Felder erscheinen jetzt auch, wenn die Seite selbst ausgewählt ist.</p>\n<h4>Suche im «Hinzufügen»-Overlay</h4>\n<p>Das Overlay beim Klicken auf eine Hinzufügen-Schaltfläche enthält jetzt ein Suchfeld, um die verfügbaren Blöcke schnell zu filtern.</p>\n<h3>Verbesserungen</h3>\n<ul>\n<li>Die Leertaste aktiviert über der Arbeitsfläche jetzt den Verschiebe-/Pan-Cursor, wie in gängigen Design-Tools üblich.</li>\n<li>Nach dem Duplizieren werden die neuen Blöcke automatisch ausgewählt und in den Sichtbereich gescrollt.</li>\n<li>Nach dem Löschen eines Blocks scrollt die Seite automatisch zum nächsten verbleibenden Block.</li>\n<li>Das Zieh-Overlay zeigt jetzt den Verschachtelungspfad und bleibt am Viewport-Rand sichtbar.</li>\n<li>Das Dropdown zur Analyse-Kategorieauswahl wird ausgeblendet, wenn nur eine Kategorie vorhanden ist.</li>\n<li>Das App-Menü scrollt jetzt korrekt, wenn die Liste länger als der sichtbare Bereich ist.</li>\n</ul>\n<h3>Fehlerbehebungen</h3>\n<ul>\n<li>Die Analyse-Schaltfläche wurde angezeigt, obwohl keine Analysen verfügbar waren.</li>\n<li>Die Vorschau von Transformationen wurde korrigiert.</li>\n<li>Die Hinzufügen-Liste war auf kleinen Bildschirmen zu gross.</li>\n<li>Die Bezeichnung «Neu» erschien nicht in der Aktionsleiste, wenn mehrere Blöcke ausgewählt waren.</li>\n</ul>\n"
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
]
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
declare const _default: typeof __VLS_export;
|
|
2
|
+
export default _default;
|
|
3
|
+
declare const __VLS_export: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<Teleport :to="ui.mainLayoutElement.value">
|
|
3
|
+
<BlokkliTransition name="slide-up">
|
|
4
|
+
<ChangelogDialog v-if="showDialog" @cancel="onClose" />
|
|
5
|
+
</BlokkliTransition>
|
|
6
|
+
</Teleport>
|
|
7
|
+
</template>
|
|
8
|
+
|
|
9
|
+
<script setup>
|
|
10
|
+
import { useBlokkli, defineBlokkliFeature, computed } from "#imports";
|
|
11
|
+
import ChangelogDialog from "./Dialog/index.vue";
|
|
12
|
+
import { BlokkliTransition } from "#blokkli/editor/components";
|
|
13
|
+
import { defineMenuButton } from "#blokkli/editor/composables";
|
|
14
|
+
import data from "./changelog.json";
|
|
15
|
+
const { ui, storage, $t } = useBlokkli();
|
|
16
|
+
defineBlokkliFeature({
|
|
17
|
+
id: "changelog",
|
|
18
|
+
label: "Changelog",
|
|
19
|
+
icon: "bk_mdi_campaign",
|
|
20
|
+
description: "Provides a menu button to display a changelog of what's new."
|
|
21
|
+
});
|
|
22
|
+
const latestVersion = data[0]?.version ?? "";
|
|
23
|
+
const lastSeenVersion = storage.use("changelog:lastSeenVersion", "");
|
|
24
|
+
const hasNew = computed(
|
|
25
|
+
() => !!latestVersion && lastSeenVersion.value !== latestVersion
|
|
26
|
+
);
|
|
27
|
+
const showDialog = computed(() => ui.currentDialog.value?.id === "changelog");
|
|
28
|
+
function onClick() {
|
|
29
|
+
lastSeenVersion.value = latestVersion;
|
|
30
|
+
ui.openDialog({ id: "changelog", alignment: "center" });
|
|
31
|
+
}
|
|
32
|
+
function onClose() {
|
|
33
|
+
ui.closeDialog("changelog");
|
|
34
|
+
}
|
|
35
|
+
defineMenuButton(() => {
|
|
36
|
+
return {
|
|
37
|
+
id: "changelog",
|
|
38
|
+
title: $t("changelogMenuTitle", "What's New"),
|
|
39
|
+
description: $t(
|
|
40
|
+
"changelogMenuDescription",
|
|
41
|
+
"View recent changes and new features"
|
|
42
|
+
),
|
|
43
|
+
icon: "bk_mdi_campaign",
|
|
44
|
+
secondary: true,
|
|
45
|
+
weight: -10,
|
|
46
|
+
type: hasNew.value ? "yellow" : void 0,
|
|
47
|
+
callback: onClick
|
|
48
|
+
};
|
|
49
|
+
});
|
|
50
|
+
</script>
|
|
51
|
+
|
|
52
|
+
<script>
|
|
53
|
+
export default {
|
|
54
|
+
name: "Changelog"
|
|
55
|
+
};
|
|
56
|
+
</script>
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
declare const _default: typeof __VLS_export;
|
|
2
|
+
export default _default;
|
|
3
|
+
declare const __VLS_export: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
@@ -1179,6 +1179,18 @@
|
|
|
1179
1179
|
"source": "Cancel selection",
|
|
1180
1180
|
"translation": "Auswahl abbrechen"
|
|
1181
1181
|
},
|
|
1182
|
+
"changelogDialogTitle": {
|
|
1183
|
+
"source": "What's New",
|
|
1184
|
+
"translation": "Neuigkeiten"
|
|
1185
|
+
},
|
|
1186
|
+
"changelogMenuDescription": {
|
|
1187
|
+
"source": "View recent changes and new features",
|
|
1188
|
+
"translation": "Aktuelle Änderungen und neue Funktionen anzeigen"
|
|
1189
|
+
},
|
|
1190
|
+
"changelogMenuTitle": {
|
|
1191
|
+
"source": "What's New",
|
|
1192
|
+
"translation": "Neuigkeiten"
|
|
1193
|
+
},
|
|
1182
1194
|
"chartsAddColumn": {
|
|
1183
1195
|
"source": "Add column",
|
|
1184
1196
|
"translation": "Spalte hinzufügen"
|
|
@@ -1787,6 +1799,14 @@
|
|
|
1787
1799
|
"source": "Breadcrumbs",
|
|
1788
1800
|
"translation": "Breadcrumbs"
|
|
1789
1801
|
},
|
|
1802
|
+
"feature_changelog_description": {
|
|
1803
|
+
"source": "Provides a menu button to display a changelog of what's new.",
|
|
1804
|
+
"translation": "Stellt eine Menüschaltfläche bereit, um ein Änderungsprotokoll mit Neuigkeiten anzuzeigen."
|
|
1805
|
+
},
|
|
1806
|
+
"feature_changelog_label": {
|
|
1807
|
+
"source": "Changelog",
|
|
1808
|
+
"translation": "Änderungsprotokoll"
|
|
1809
|
+
},
|
|
1790
1810
|
"feature_charts_description": {
|
|
1791
1811
|
"source": "Add and edit interactive charts.",
|
|
1792
1812
|
"translation": "Interaktive Diagramme hinzufügen und bearbeiten."
|
|
@@ -1179,6 +1179,18 @@
|
|
|
1179
1179
|
"source": "Cancel selection",
|
|
1180
1180
|
"translation": ""
|
|
1181
1181
|
},
|
|
1182
|
+
"changelogDialogTitle": {
|
|
1183
|
+
"source": "What's New",
|
|
1184
|
+
"translation": ""
|
|
1185
|
+
},
|
|
1186
|
+
"changelogMenuDescription": {
|
|
1187
|
+
"source": "View recent changes and new features",
|
|
1188
|
+
"translation": ""
|
|
1189
|
+
},
|
|
1190
|
+
"changelogMenuTitle": {
|
|
1191
|
+
"source": "What's New",
|
|
1192
|
+
"translation": ""
|
|
1193
|
+
},
|
|
1182
1194
|
"chartsAddColumn": {
|
|
1183
1195
|
"source": "Add column",
|
|
1184
1196
|
"translation": ""
|
|
@@ -1787,6 +1799,14 @@
|
|
|
1787
1799
|
"source": "Breadcrumbs",
|
|
1788
1800
|
"translation": ""
|
|
1789
1801
|
},
|
|
1802
|
+
"feature_changelog_description": {
|
|
1803
|
+
"source": "Provides a menu button to display a changelog of what's new.",
|
|
1804
|
+
"translation": ""
|
|
1805
|
+
},
|
|
1806
|
+
"feature_changelog_label": {
|
|
1807
|
+
"source": "Changelog",
|
|
1808
|
+
"translation": ""
|
|
1809
|
+
},
|
|
1790
1810
|
"feature_charts_description": {
|
|
1791
1811
|
"source": "Add and edit interactive charts.",
|
|
1792
1812
|
"translation": ""
|
|
@@ -1179,6 +1179,18 @@
|
|
|
1179
1179
|
"source": "Cancel selection",
|
|
1180
1180
|
"translation": "Uswahl abbräche"
|
|
1181
1181
|
},
|
|
1182
|
+
"changelogDialogTitle": {
|
|
1183
|
+
"source": "What's New",
|
|
1184
|
+
"translation": ""
|
|
1185
|
+
},
|
|
1186
|
+
"changelogMenuDescription": {
|
|
1187
|
+
"source": "View recent changes and new features",
|
|
1188
|
+
"translation": ""
|
|
1189
|
+
},
|
|
1190
|
+
"changelogMenuTitle": {
|
|
1191
|
+
"source": "What's New",
|
|
1192
|
+
"translation": ""
|
|
1193
|
+
},
|
|
1182
1194
|
"chartsAddColumn": {
|
|
1183
1195
|
"source": "Add column",
|
|
1184
1196
|
"translation": ""
|
|
@@ -1787,6 +1799,14 @@
|
|
|
1787
1799
|
"source": "Breadcrumbs",
|
|
1788
1800
|
"translation": ""
|
|
1789
1801
|
},
|
|
1802
|
+
"feature_changelog_description": {
|
|
1803
|
+
"source": "Provides a menu button to display a changelog of what's new.",
|
|
1804
|
+
"translation": ""
|
|
1805
|
+
},
|
|
1806
|
+
"feature_changelog_label": {
|
|
1807
|
+
"source": "Changelog",
|
|
1808
|
+
"translation": ""
|
|
1809
|
+
},
|
|
1790
1810
|
"feature_charts_description": {
|
|
1791
1811
|
"source": "Add and edit interactive charts.",
|
|
1792
1812
|
"translation": ""
|
|
@@ -1179,6 +1179,18 @@
|
|
|
1179
1179
|
"source": "Cancel selection",
|
|
1180
1180
|
"translation": ""
|
|
1181
1181
|
},
|
|
1182
|
+
"changelogDialogTitle": {
|
|
1183
|
+
"source": "What's New",
|
|
1184
|
+
"translation": ""
|
|
1185
|
+
},
|
|
1186
|
+
"changelogMenuDescription": {
|
|
1187
|
+
"source": "View recent changes and new features",
|
|
1188
|
+
"translation": ""
|
|
1189
|
+
},
|
|
1190
|
+
"changelogMenuTitle": {
|
|
1191
|
+
"source": "What's New",
|
|
1192
|
+
"translation": ""
|
|
1193
|
+
},
|
|
1182
1194
|
"chartsAddColumn": {
|
|
1183
1195
|
"source": "Add column",
|
|
1184
1196
|
"translation": ""
|
|
@@ -1787,6 +1799,14 @@
|
|
|
1787
1799
|
"source": "Breadcrumbs",
|
|
1788
1800
|
"translation": ""
|
|
1789
1801
|
},
|
|
1802
|
+
"feature_changelog_description": {
|
|
1803
|
+
"source": "Provides a menu button to display a changelog of what's new.",
|
|
1804
|
+
"translation": ""
|
|
1805
|
+
},
|
|
1806
|
+
"feature_changelog_label": {
|
|
1807
|
+
"source": "Changelog",
|
|
1808
|
+
"translation": ""
|
|
1809
|
+
},
|
|
1790
1810
|
"feature_charts_description": {
|
|
1791
1811
|
"source": "Add and edit interactive charts.",
|
|
1792
1812
|
"translation": ""
|
|
@@ -235,6 +235,30 @@ type ModuleOptions = {
|
|
|
235
235
|
* name including the extension.
|
|
236
236
|
*/
|
|
237
237
|
schemaOptionsPath?: string;
|
|
238
|
+
/**
|
|
239
|
+
* Configure automatic text replacements when editing plaintext fields.
|
|
240
|
+
*
|
|
241
|
+
* Set to `true` to enable all replacements, `false` to disable all.
|
|
242
|
+
* Or pass an object to enable/disable individual replacements.
|
|
243
|
+
*
|
|
244
|
+
* Defaults to `true` (all replacements enabled).
|
|
245
|
+
*/
|
|
246
|
+
textAutoReplace?: boolean | {
|
|
247
|
+
/**
|
|
248
|
+
* Replace straight double quotes ("...") with guillemets («...»).
|
|
249
|
+
*
|
|
250
|
+
* Only active when the interface language is 'de' or 'fr'.
|
|
251
|
+
*/
|
|
252
|
+
quotes?: boolean;
|
|
253
|
+
/**
|
|
254
|
+
* Replace three consecutive dots (...) with an ellipsis character (…).
|
|
255
|
+
*/
|
|
256
|
+
ellipsis?: boolean;
|
|
257
|
+
/**
|
|
258
|
+
* Replace two consecutive hyphens (--) with an en dash (–).
|
|
259
|
+
*/
|
|
260
|
+
enDash?: boolean;
|
|
261
|
+
};
|
|
238
262
|
/**
|
|
239
263
|
* Override the feature settings.
|
|
240
264
|
*/
|
package/dist/types.d.mts
CHANGED
|
@@ -4,6 +4,6 @@ declare module '@nuxt/schema' {
|
|
|
4
4
|
interface NuxtHooks extends ModuleHooks {}
|
|
5
5
|
}
|
|
6
6
|
|
|
7
|
-
export { type ModuleHooks } from './shared/editor.
|
|
7
|
+
export { type ModuleHooks } from './shared/editor.BVregnEC.mjs'
|
|
8
8
|
|
|
9
9
|
export { type ModuleOptions, default } from './module.mjs'
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@blokkli/editor",
|
|
3
|
-
"version": "2.0.0-alpha.
|
|
3
|
+
"version": "2.0.0-alpha.46",
|
|
4
4
|
"description": "Interactive page building experience for Nuxt",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"cms",
|
|
@@ -88,6 +88,7 @@
|
|
|
88
88
|
"dev:start": "npx serve playground/.output/public",
|
|
89
89
|
"dev:prepare": "PLAYGROUND_MODULE_BUILD=true nuxt-module-build build --stub && PLAYGROUND_MODULE_BUILD=true nuxt-module-build prepare && nuxi prepare playground",
|
|
90
90
|
"release": "npm run lint && npm run prepack && changelogen --release",
|
|
91
|
+
"changelog": "node ./scripts/changelog/index.cjs",
|
|
91
92
|
"texts": "node ./scripts/texts/index.cjs",
|
|
92
93
|
"material-icons": "node ./scripts/material-icons/index.cjs",
|
|
93
94
|
"lint": "npx oxlint && eslint ./src",
|