diff --git a/Tekst-API/openapi.json b/Tekst-API/openapi.json
index 54bd200ce..f61214dd2 100644
--- a/Tekst-API/openapi.json
+++ b/Tekst-API/openapi.json
@@ -4,7 +4,7 @@
"title": "Tekst-Dev",
"summary": "An online text research platform",
"contact": {},
- "version": "0.51.1b0"
+ "version": "0.51.2b0"
},
"servers": [
{
diff --git a/Tekst-API/pyproject.toml b/Tekst-API/pyproject.toml
index 1cf46420d..8b4452e5b 100644
--- a/Tekst-API/pyproject.toml
+++ b/Tekst-API/pyproject.toml
@@ -1,6 +1,6 @@
[project]
name = "tekst"
-version = "0.51.1b0"
+version = "0.51.2b0"
description = "An online text research platform"
readme = "README.md"
authors = [
diff --git a/Tekst-API/uv.lock b/Tekst-API/uv.lock
index ff308079d..602f372cd 100644
--- a/Tekst-API/uv.lock
+++ b/Tekst-API/uv.lock
@@ -1327,7 +1327,7 @@ wheels = [
[[package]]
name = "tekst"
-version = "0.51.1b0"
+version = "0.51.2b0"
source = { editable = "." }
dependencies = [
{ name = "beanie" },
diff --git a/Tekst-Web/i18n/ui/deDE.yml b/Tekst-Web/i18n/ui/deDE.yml
index 848bc5078..5f96f8d96 100644
--- a/Tekst-Web/i18n/ui/deDE.yml
+++ b/Tekst-Web/i18n/ui/deDE.yml
@@ -236,9 +236,9 @@ browse:
activateCategory: Zeige alle Ressourcen dieser Kategorie
deactivateCategory: Verstecke alle Ressourcen dieser Kategorie
contentCitation:
- title: Inhalt zitieren
- full: Volle Ressourcen-Zitation mit Inhalts-URL
- urlOnly: URL zu diesem Inhalt
+ full: Volle Ressourcen-Zitation mit Belegstellen-URL
+ resOnly: Ressourcen-Zitation
+ urlOnly: URL zu Inhalt/Belegstelle
uncategorized: Unkategorisiert
locationResourceNoData: Keine Daten für diese Belegstelle
textNoLocations: Die Einrichtung dieses Textes scheint unvollständig. Es wurden keine Belegstellen definiert.
diff --git a/Tekst-Web/i18n/ui/enUS.yml b/Tekst-Web/i18n/ui/enUS.yml
index 47d10b29f..e05af5ae7 100644
--- a/Tekst-Web/i18n/ui/enUS.yml
+++ b/Tekst-Web/i18n/ui/enUS.yml
@@ -232,9 +232,9 @@ browse:
activateCategory: Show all resources in this category
deactivateCategory: Hide all resources in this category
contentCitation:
- title: Content Citation
- full: Full resource citation with content URL
- urlOnly: URL for this content
+ full: Full resource citation with location URL
+ resOnly: Resource citation
+ urlOnly: URL of content/location
archiveWidgetTitle: Content Archive
uncategorized: Uncategorized
locationResourceNoData: No data for this location
@@ -597,8 +597,8 @@ contents:
tipBtnCompare: Select other resource to compare with
tipBtnCopyOriginal: Copy from original resource
tipBtnApplyChanges: Copy content for this location
- tipBtnPrevChange: Go to previous content
- tipBtnNextChange: Go to next content
+ tipBtnPrevChange: Skip to previous content
+ tipBtnNextChange: Skip to next content
forComparison: '{title} (for comparison)'
fromOriginalResourceHint: |
This is a resource patch.
diff --git a/Tekst-Web/package-lock.json b/Tekst-Web/package-lock.json
index 3f1fbd8d2..0f7923036 100644
--- a/Tekst-Web/package-lock.json
+++ b/Tekst-Web/package-lock.json
@@ -1,12 +1,12 @@
{
"name": "tekst",
- "version": "0.51.1-beta.0",
+ "version": "0.51.2-beta.0",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "tekst",
- "version": "0.51.1-beta.0",
+ "version": "0.51.2-beta.0",
"dependencies": {
"@codemirror/lang-html": "^6.4.9",
"@codemirror/lang-json": "^6.0.1",
@@ -39,13 +39,13 @@
"@babel/types": "^7.25.6",
"@intlify/eslint-plugin-vue-i18n": "^4.0.0",
"@intlify/unplugin-vue-i18n": "^11.0.0",
+ "@lucide/vue": "^1.7.0",
"@rushstack/eslint-patch": "^1.10.4",
"@tsconfig/node24": "^24.0.0",
"@types/color": "^4.0.0",
"@types/js-cookie": "^3.0.6",
"@types/jsdom": "^28.0.0",
"@types/node": "^24.0.0",
- "@vicons/material": "^0.13.0",
"@vitejs/plugin-vue": "^6.0.0",
"@vue/eslint-config-prettier": "^10.0.0",
"@vue/eslint-config-typescript": "^14.0.1",
@@ -1738,6 +1738,16 @@
"@lezer/common": "^1.0.0"
}
},
+ "node_modules/@lucide/vue": {
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/@lucide/vue/-/vue-1.7.0.tgz",
+ "integrity": "sha512-X3gTarOkNh2ThNK7IaDa4gdjFAtZyoKH/eoScklvmtNTWE5uxkycBQOuchGExY5swCqh1WptEIAWrmbuQcy2fA==",
+ "dev": true,
+ "license": "ISC",
+ "peerDependencies": {
+ "vue": ">=3.0.1"
+ }
+ },
"node_modules/@marijn/find-cluster-break": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/@marijn/find-cluster-break/-/find-cluster-break-1.0.2.tgz",
@@ -3095,13 +3105,6 @@
"url": "https://opencollective.com/eslint"
}
},
- "node_modules/@vicons/material": {
- "version": "0.13.0",
- "resolved": "https://registry.npmjs.org/@vicons/material/-/material-0.13.0.tgz",
- "integrity": "sha512-lKVxFNprM+CaBkUH3gt6VjIeiMsKQl2zARQMwTCZruQl2vRHzyeZiKeCflWS99CEfv2JzX/6y697smxlzyxcVw==",
- "dev": true,
- "license": "Apache 2.0"
- },
"node_modules/@vitejs/plugin-vue": {
"version": "6.0.5",
"resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-6.0.5.tgz",
diff --git a/Tekst-Web/package.json b/Tekst-Web/package.json
index 9109572ef..c2760ed14 100644
--- a/Tekst-Web/package.json
+++ b/Tekst-Web/package.json
@@ -1,6 +1,6 @@
{
"name": "tekst",
- "version": "0.51.1-beta.0",
+ "version": "0.51.2-beta.0",
"private": true,
"type": "module",
"scripts": {
@@ -47,13 +47,13 @@
"@babel/types": "^7.25.6",
"@intlify/eslint-plugin-vue-i18n": "^4.0.0",
"@intlify/unplugin-vue-i18n": "^11.0.0",
+ "@lucide/vue": "^1.7.0",
"@rushstack/eslint-patch": "^1.10.4",
"@tsconfig/node24": "^24.0.0",
"@types/color": "^4.0.0",
"@types/js-cookie": "^3.0.6",
"@types/jsdom": "^28.0.0",
"@types/node": "^24.0.0",
- "@vicons/material": "^0.13.0",
"@vitejs/plugin-vue": "^6.0.0",
"@vue/eslint-config-prettier": "^10.0.0",
"@vue/eslint-config-typescript": "^14.0.1",
diff --git a/Tekst-Web/src/components/AudioPlayer.vue b/Tekst-Web/src/components/AudioPlayer.vue
index 5bd999e3a..211060876 100644
--- a/Tekst-Web/src/components/AudioPlayer.vue
+++ b/Tekst-Web/src/components/AudioPlayer.vue
@@ -1,5 +1,5 @@
- {{ $t('browse.contentCitation.full') }}
+ {{ $t('browse.contentCitation.full') }}
+
+
+
+
+
+ {{ citationFull }}
+
+
+
+
+
+ {{ $t('browse.contentCitation.resOnly') }}
-
+
- {{ citation }}
+ {{ citationRes }}
- {{ $t('browse.contentCitation.urlOnly') }}
+ {{ $t('browse.contentCitation.urlOnly') }}
- {{ browseUrl }}
+
+ {{ browseUrl }}
+
diff --git a/Tekst-Web/src/components/content/ExternalReferencesContent.vue b/Tekst-Web/src/components/content/ExternalReferencesContent.vue
index 4e3ed81c0..81f6e388a 100644
--- a/Tekst-Web/src/components/content/ExternalReferencesContent.vue
+++ b/Tekst-Web/src/components/content/ExternalReferencesContent.vue
@@ -1,6 +1,6 @@
-
+
{{ $t('common.community') }}
diff --git a/Tekst-Web/src/views/ContentsView.vue b/Tekst-Web/src/views/ContentsView.vue
index afdd6cae4..d1890e51a 100644
--- a/Tekst-Web/src/views/ContentsView.vue
+++ b/Tekst-Web/src/views/ContentsView.vue
@@ -31,15 +31,15 @@ import ContentFormItems from '@/forms/resources/contents/ContentFormItems.vue';
import { defaultContentModels } from '@/forms/resources/contents/defaultContentModels';
import { $t } from '@/i18n';
import {
- AddIcon,
- ArrowBackIcon,
- ArrowForwardIcon,
+ ArrowLeftIcon,
+ ArrowRightIcon,
BookIcon,
CompareIcon,
EditIcon,
- MoveDownIcon,
NoContentIcon,
+ PasteIcon,
PatchIcon,
+ PlusIcon,
ResourceIcon,
SkipNextIcon,
SkipPreviousIcon,
@@ -467,7 +467,7 @@ whenever(ArrowRight, () => {
-
+
{{ $t('common.backToOverview') }}
@@ -499,7 +499,7 @@ whenever(ArrowRight, () => {
@click="gotoLocation(prevLocationId)"
>
-
+
{
@click="gotoLocation(nextLocationId)"
>
-
+
@@ -630,7 +630,7 @@ whenever(ArrowRight, () => {
@click="copyFromComparison"
>
-
+
{
-
+
{{ $t('contents.btnAddContent') }}
diff --git a/Tekst-Web/src/views/CorrectionsView.vue b/Tekst-Web/src/views/CorrectionsView.vue
index ca8eeba52..2068f0ca4 100644
--- a/Tekst-Web/src/views/CorrectionsView.vue
+++ b/Tekst-Web/src/views/CorrectionsView.vue
@@ -2,7 +2,7 @@
import IconHeading from '@/components/generic/IconHeading.vue';
import CorrectionListItem from '@/components/resource/CorrectionListItem.vue';
import { $t } from '@/i18n';
-import { ArrowBackIcon, CorrectionNoteIcon, NoContentIcon } from '@/icons';
+import { ArrowLeftIcon, CorrectionNoteIcon, NoContentIcon } from '@/icons';
import { useResourcesStore, useStateStore } from '@/stores';
import { pickTranslation } from '@/utils';
import { NButton, NEmpty, NIcon, NList } from 'naive-ui';
@@ -42,7 +42,7 @@ onBeforeMount(async () => {
-
+
{{ $t('common.backToOverview') }}
diff --git a/Tekst-Web/src/views/HelpView.vue b/Tekst-Web/src/views/HelpView.vue
index 523a902b3..f8bf0535d 100644
--- a/Tekst-Web/src/views/HelpView.vue
+++ b/Tekst-Web/src/views/HelpView.vue
@@ -7,7 +7,7 @@ import { NEmpty, NIcon, NInput, NSpin } from 'naive-ui';
import { computed, onMounted, ref, watch } from 'vue';
import type { HelpText } from '@/composables/help';
-import { HelpOverviewIcon, NoContentIcon, SearchIcon } from '@/icons';
+import { FileQuestionMarkIcon, NoContentIcon, SearchIcon } from '@/icons';
const { getHelpTexts } = useHelp();
@@ -62,7 +62,7 @@ onMounted(() => {
-
+
{{ $t('help.heading') }}
diff --git a/Tekst-Web/src/views/ResourceCreateView.vue b/Tekst-Web/src/views/ResourceCreateView.vue
index 0298cac75..1be2c3775 100644
--- a/Tekst-Web/src/views/ResourceCreateView.vue
+++ b/Tekst-Web/src/views/ResourceCreateView.vue
@@ -8,7 +8,7 @@ import { useMessages } from '@/composables/messages';
import { resourceSettingsFormRules } from '@/forms/formRules';
import ResourceSettingsPropertiesFormItems from '@/forms/resources/config/ResourceSettingsPropertiesFormItems.vue';
import { $t } from '@/i18n';
-import { ArrowBackIcon, ResourceIcon, WarningIcon } from '@/icons';
+import { ArrowLeftIcon, ResourceIcon, WarningIcon } from '@/icons';
import { useAuthStore, useResourcesStore, useStateStore } from '@/stores';
import { pickTranslation } from '@/utils';
import {
@@ -129,7 +129,7 @@ async function handleSaveClick() {
>
-
+
{{ $t('common.backToOverview') }}
diff --git a/Tekst-Web/src/views/ResourceSettingsView.vue b/Tekst-Web/src/views/ResourceSettingsView.vue
index fca47ae15..e93a19312 100644
--- a/Tekst-Web/src/views/ResourceSettingsView.vue
+++ b/Tekst-Web/src/views/ResourceSettingsView.vue
@@ -10,7 +10,7 @@ import { useModelChanges } from '@/composables/modelChanges';
import { resourceSettingsFormRules } from '@/forms/formRules';
import ResourceSettingsFormItems from '@/forms/resources/config/ResourceSettingsFormItems.vue';
import { $t } from '@/i18n';
-import { ArrowBackIcon, ResourceIcon, SettingsIcon } from '@/icons';
+import { ArrowLeftIcon, ResourceIcon, SettingsIcon } from '@/icons';
import { useAuthStore, useResourcesStore, useStateStore } from '@/stores';
import { pickTranslation } from '@/utils';
import { cloneDeep } from 'lodash-es';
@@ -106,7 +106,7 @@ async function handleSaveClick() {
>
-
+
{{ $t('common.backToOverview') }}
diff --git a/Tekst-Web/src/views/ResourcesView.vue b/Tekst-Web/src/views/ResourcesView.vue
index 2f39972ca..fe5e7e1bb 100644
--- a/Tekst-Web/src/views/ResourcesView.vue
+++ b/Tekst-Web/src/views/ResourcesView.vue
@@ -19,7 +19,7 @@ import { useMessages } from '@/composables/messages';
import { usePrompt } from '@/composables/prompt';
import { useTasks } from '@/composables/tasks';
import { $t } from '@/i18n';
-import { AddIcon, JumpBackIcon, NoContentIcon, ResourceIcon, SearchIcon, UserIcon } from '@/icons';
+import { NoContentIcon, PlusIcon, ResourceIcon, SearchIcon, UndoIcon, UserIcon } from '@/icons';
import {
useAuthStore,
useBrowseStore,
@@ -462,7 +462,7 @@ onMounted(() => {
-
+
{{ $t('common.reset') }}
@@ -473,7 +473,7 @@ onMounted(() => {
@click="router.push({ name: 'resourceCreate', params: { textSlug: props.textSlug } })"
>
-
+
{{ $t('resources.new') }}
diff --git a/Tekst-Web/src/views/SearchView.vue b/Tekst-Web/src/views/SearchView.vue
index c3568fc9f..280f9d10f 100644
--- a/Tekst-Web/src/views/SearchView.vue
+++ b/Tekst-Web/src/views/SearchView.vue
@@ -17,7 +17,7 @@ import SearchOccurrenceSelector from '@/forms/resources/search/SearchOccurrenceS
import { resourceTypeSearchForms } from '@/forms/resources/search/mappings';
import GeneralSearchSettingsForm from '@/forms/search/GeneralSearchSettingsForm.vue';
import { $t } from '@/i18n';
-import { AddIcon, ClearIcon, LevelsIcon, NoContentIcon, ResourceIcon, SearchIcon } from '@/icons';
+import { ClearIcon, LevelsIcon, NoContentIcon, PlusIcon, ResourceIcon, SearchIcon } from '@/icons';
import { useResourcesStore, useSearchStore, useStateStore, useThemeStore } from '@/stores';
import { pickTranslation } from '@/utils';
import { useMagicKeys, whenever } from '@vueuse/core';
@@ -331,7 +331,7 @@ whenever(ctrlEnter, () => {
@click="addSearchItem(queryIndex)"
>
-
+
{{ $t('search.advancedSearch.addQuery') }}
diff --git a/Tekst-Web/src/views/UserView.vue b/Tekst-Web/src/views/UserView.vue
index 1547f2b65..393faddae 100644
--- a/Tekst-Web/src/views/UserView.vue
+++ b/Tekst-Web/src/views/UserView.vue
@@ -3,7 +3,7 @@ import IconHeading from '@/components/generic/IconHeading.vue';
import UserAvatar from '@/components/user/UserAvatar.vue';
import UserThingHeader from '@/components/user/UserThingHeader.vue';
import { useUser } from '@/composables/user';
-import { MessageIcon, UserIcon } from '@/icons';
+import { MessagesIcon, UserIcon } from '@/icons';
import { useAuthStore, useStateStore, useUserMessagesStore } from '@/stores';
import { NButton, NIcon, NSpin, NThing } from 'naive-ui';
import { computed, watchEffect } from 'vue';
@@ -62,7 +62,7 @@ watchEffect(() => {
@click="() => userMessages.openConversation(user?.id || '?')"
>
-
+
{{
$t('account.messages.btnSendMessageToUser', {
diff --git a/Tekst-Web/src/views/VerifyView.vue b/Tekst-Web/src/views/VerifyView.vue
index c0a8da82e..19171f6d8 100644
--- a/Tekst-Web/src/views/VerifyView.vue
+++ b/Tekst-Web/src/views/VerifyView.vue
@@ -2,7 +2,7 @@
import { POST } from '@/api';
import { useErrors } from '@/composables/errors';
import { $t } from '@/i18n';
-import { CheckCircleIcon, HourglassIcon, KeyOffIcon } from '@/icons';
+import { CheckCircleIcon, ErrorIcon, HourglassIcon } from '@/icons';
import { NEmpty, NIcon } from 'naive-ui';
import { onMounted, ref } from 'vue';
import { useRoute, useRouter } from 'vue-router';
@@ -36,7 +36,7 @@ onMounted(async () => {
-
+
diff --git a/Tekst-Web/src/views/account/AccountMessagesView.vue b/Tekst-Web/src/views/account/AccountMessagesView.vue
index 3455c0560..44ebfe454 100644
--- a/Tekst-Web/src/views/account/AccountMessagesView.vue
+++ b/Tekst-Web/src/views/account/AccountMessagesView.vue
@@ -4,7 +4,7 @@ import HelpButtonWidget from '@/components/HelpButtonWidget.vue';
import IconHeading from '@/components/generic/IconHeading.vue';
import MessageThreadListItem from '@/components/userMessages/MessageThreadListItem.vue';
import { $t } from '@/i18n';
-import { MessageIcon, NoContentIcon } from '@/icons';
+import { MessagesIcon, NoContentIcon } from '@/icons';
import { useUserMessagesStore } from '@/stores';
import { NEmpty, NIcon, NList, NSpin } from 'naive-ui';
import { onMounted } from 'vue';
@@ -22,7 +22,7 @@ onMounted(() => {
-
+
{{ $t('account.messages.heading') }}
diff --git a/Tekst-Web/src/views/admin/AdminSystemMaintenanceView.vue b/Tekst-Web/src/views/admin/AdminSystemMaintenanceView.vue
index a375179d0..64c86dc2d 100644
--- a/Tekst-Web/src/views/admin/AdminSystemMaintenanceView.vue
+++ b/Tekst-Web/src/views/admin/AdminSystemMaintenanceView.vue
@@ -8,7 +8,7 @@ import ButtonShelf from '@/components/generic/ButtonShelf.vue';
import IconHeading from '@/components/generic/IconHeading.vue';
import { useMessages } from '@/composables/messages';
import { useTasks } from '@/composables/tasks';
-import { DeleteIcon, EMailIcon, MaintenanceIcon, RefreshIcon, UpdateIcon } from '@/icons';
+import { DeleteIcon, MaintenanceIcon, MessageIcon, RefreshIcon, TaskIcon } from '@/icons';
import { useStateStore, useThemeStore } from '@/stores';
import { utcToLocalTime } from '@/utils';
import {
@@ -180,7 +180,7 @@ onBeforeMount(() => {
createIndex()">
-
+
{{ $t('admin.maintenance.indices.actionCreate') }}
@@ -191,7 +191,7 @@ onBeforeMount(() => {
@click="() => createIndex(true)"
>
-
+
{{ $t('admin.maintenance.indices.actionCreate') }}
({{ $t('admin.maintenance.force') }})
@@ -286,7 +286,7 @@ onBeforeMount(() => {
@click="() => triggerPrecomputation()"
>
-
+
{{ $t('common.run') }}
@@ -298,7 +298,7 @@ onBeforeMount(() => {
@click="() => triggerPrecomputation(true)"
>
-
+
{{ $t('common.run') }}
({{ $t('admin.maintenance.force') }})
@@ -323,7 +323,7 @@ onBeforeMount(() => {
@click="triggerInternalCleanup"
>
-
+
{{ $t('common.run') }}
@@ -457,7 +457,7 @@ onBeforeMount(() => {
@click="sendTestEMail"
>
-
+
{{ $t('admin.maintenance.email.btn') }}
diff --git a/Tekst-Web/src/views/admin/AdminSystemSegmentsView.vue b/Tekst-Web/src/views/admin/AdminSystemSegmentsView.vue
index 1b240c9e4..9dfa61adf 100644
--- a/Tekst-Web/src/views/admin/AdminSystemSegmentsView.vue
+++ b/Tekst-Web/src/views/admin/AdminSystemSegmentsView.vue
@@ -10,7 +10,7 @@ import { useModelChanges } from '@/composables/modelChanges';
import { usePlatformData } from '@/composables/platformData';
import { infoSegmentFormRules, systemSegmentFormRules } from '@/forms/formRules';
import { $t, getLocaleProfile, renderLanguageOptionLabel } from '@/i18n';
-import { AddIcon, FileOpenIcon, InfoIcon, SegmentsIcon } from '@/icons';
+import { FileOpenIcon, InfoIcon, PlusIcon, SegmentsIcon } from '@/icons';
import { useStateStore } from '@/stores';
import { useUrlSearchParams } from '@vueuse/core';
import { cloneDeep } from 'lodash-es';
@@ -323,7 +323,7 @@ onMounted(() => {
@click="() => handleChangeSegment()"
>
-
+
diff --git a/Tekst-Web/src/views/admin/AdminSystemUsersView.vue b/Tekst-Web/src/views/admin/AdminSystemUsersView.vue
index d7e262d49..12d04fb9a 100644
--- a/Tekst-Web/src/views/admin/AdminSystemUsersView.vue
+++ b/Tekst-Web/src/views/admin/AdminSystemUsersView.vue
@@ -74,7 +74,7 @@ function handleSetSuperuserClick(user: UserRead, setSuperuser: boolean) {
});
}
-function handleActiveClick(user: UserRead, setActive: boolean) {
+function handleToggleActive(user: UserRead, setActive: boolean) {
dialog.warning({
...commonDialogOptions,
title: $t('common.warning'),
@@ -228,7 +228,7 @@ onMounted(() => {
:target-user="user"
:platform-name="state.pf?.state.platformName || 'Tekst'"
:current-user="auth.user"
- @activate-click="handleActiveClick"
+ @toggle-active="handleToggleActive"
@verify-click="handleVerifiedClick"
@set-superuser-click="handleSetSuperuserClick"
@delete-click="handleDeleteClick"
diff --git a/Tekst-Web/src/views/admin/TextView.vue b/Tekst-Web/src/views/admin/TextView.vue
index 2447dccab..5bdf428b4 100644
--- a/Tekst-Web/src/views/admin/TextView.vue
+++ b/Tekst-Web/src/views/admin/TextView.vue
@@ -8,7 +8,7 @@ import TextLevelsForm from '@/forms/texts/TextLevelsForm.vue';
import TextLocationsForm from '@/forms/texts/TextLocationsForm.vue';
import TextSettingsForm from '@/forms/texts/TextSettingsForm.vue';
import { $t } from '@/i18n';
-import { AddIcon, DeleteIcon, TextsIcon } from '@/icons';
+import { DeleteIcon, PlusIcon, TextsIcon } from '@/icons';
import { useStateStore } from '@/stores';
import { NButton, NFlex, NIcon, NTabPane, NTabs, useDialog, type TabsInst } from 'naive-ui';
import { computed, ref, watch } from 'vue';
@@ -89,7 +89,7 @@ watch(
-
+
{{ $t('admin.newText.heading') }}