From 4c4e84f3c62faeb7127562eb41edc3ea6111c9e4 Mon Sep 17 00:00:00 2001 From: Krasimir Chobantonov Date: Sun, 2 Aug 2026 05:56:34 +0300 Subject: [PATCH 1/2] feat(vue-vuetify): improve mixed and additional property editors --- .../vue-vuetify/dev/views/ExampleView.vue | 43 +- packages/vue-vuetify/package.json | 1 + .../vue-vuetify/src/complex/MixedRenderer.vue | 1385 +++++++++++++++-- .../components/AdditionalProperties.vue | 500 ++++-- packages/vue-vuetify/src/components/VPane.vue | 18 + .../src/components/VSplitpanes.sass | 218 +++ .../src/components/VSplitpanes.vue | 27 + packages/vue-vuetify/src/components/index.ts | 2 + packages/vue-vuetify/src/icons/fa.ts | 17 +- packages/vue-vuetify/src/icons/icons.ts | 15 + packages/vue-vuetify/src/icons/mdi.ts | 17 +- packages/vue-vuetify/src/util/composition.ts | 2 +- .../vue-vuetify/src/util/dynamicProperties.ts | 166 ++ .../AdditionalPropertiesMixed.spec.ts | 33 + .../tests/unit/util/dynamicProperties.spec.ts | 181 +++ 15 files changed, 2252 insertions(+), 373 deletions(-) create mode 100644 packages/vue-vuetify/src/components/VPane.vue create mode 100644 packages/vue-vuetify/src/components/VSplitpanes.sass create mode 100644 packages/vue-vuetify/src/components/VSplitpanes.vue create mode 100644 packages/vue-vuetify/src/components/index.ts create mode 100644 packages/vue-vuetify/src/util/dynamicProperties.ts create mode 100644 packages/vue-vuetify/tests/unit/additional/AdditionalPropertiesMixed.spec.ts create mode 100644 packages/vue-vuetify/tests/unit/util/dynamicProperties.spec.ts diff --git a/packages/vue-vuetify/dev/views/ExampleView.vue b/packages/vue-vuetify/dev/views/ExampleView.vue index 653993197b..17269eadca 100644 --- a/packages/vue-vuetify/dev/views/ExampleView.vue +++ b/packages/vue-vuetify/dev/views/ExampleView.vue @@ -29,8 +29,7 @@ import examples from '../examples'; import { useAppStore } from '../store'; import { createAjv } from '../validate'; -import { Pane, Splitpanes } from 'splitpanes'; -import 'splitpanes/dist/splitpanes.css'; +import { VPane, VSplitpanes } from '../../src/components'; import { getCustomRenderersForExample } from '../renderers'; const { extendedVuetifyRenderers } = await import('../../src'); @@ -332,12 +331,11 @@ const handleAction = (action: Action) => {
- - + @@ -348,8 +346,8 @@ const handleAction = (action: Action) => { - - + + @@ -389,8 +387,8 @@ const handleAction = (action: Action) => { :editorBeforeMount="registerValidations" > - - + +
@@ -509,28 +507,3 @@ const handleAction = (action: Action) => { - diff --git a/packages/vue-vuetify/package.json b/packages/vue-vuetify/package.json index 7c92412a2f..a26fc50f1a 100644 --- a/packages/vue-vuetify/package.json +++ b/packages/vue-vuetify/package.json @@ -68,6 +68,7 @@ "dayjs": "^1.10.6", "lodash": "^4.17.21", "maska": "^2.1.11", + "splitpanes": "^3.1.5", "vue": "^3.5.0", "vuetify": "^3.11.0" }, diff --git a/packages/vue-vuetify/src/complex/MixedRenderer.vue b/packages/vue-vuetify/src/complex/MixedRenderer.vue index 5f572a7f17..4888a06fe6 100644 --- a/packages/vue-vuetify/src/complex/MixedRenderer.vue +++ b/packages/vue-vuetify/src/complex/MixedRenderer.vue @@ -1,13 +1,13 @@ - Rename + {{ mixedTranslations.renameTooltip }} - Delete + {{ mixedTranslations.deleteTooltip }} @@ -209,13 +224,14 @@ v-bind="props" class="mixed-navigate-button" :icon="icons.current.value.visibilityOn" + :aria-label="mixedTranslations.viewAriaLabel(computedLabel)" variant="text" color="primary" :disabled="!navigationContext" @click="selectCurrentPath" /> - View {{ computedLabel }} + {{ mixedTranslations.viewTooltip(computedLabel) }} @@ -262,7 +278,10 @@