|
-
+
+
+
+
@@ -42,9 +33,10 @@
diff --git a/resources/js/components/fieldtypes/grid/Table.vue b/resources/js/components/fieldtypes/grid/Table.vue
index b8cb4d08393..611c4597e06 100644
--- a/resources/js/components/fieldtypes/grid/Table.vue
+++ b/resources/js/components/fieldtypes/grid/Table.vue
@@ -28,6 +28,7 @@
:meta="meta[row._id]"
:name="name"
:field-path-prefix="fieldPathPrefix"
+ :meta-path-prefix="metaPathPrefix"
:can-delete="canDeleteRows"
:can-add-rows="canAddRows"
@updated="(row, value) => $emit('updated', row, value)"
diff --git a/resources/js/components/fieldtypes/grid/View.vue b/resources/js/components/fieldtypes/grid/View.vue
index 1f94f0747d5..b298a1397a6 100644
--- a/resources/js/components/fieldtypes/grid/View.vue
+++ b/resources/js/components/fieldtypes/grid/View.vue
@@ -14,7 +14,11 @@ export default {
},
fieldPathPrefix() {
- return this.grid.fieldPathPrefix || this.grid.handle;
+ return this.grid.fieldPathPrefix ? `${this.grid.fieldPathPrefix}.${this.grid.handle}` : this.grid.handle;
+ },
+
+ metaPathPrefix() {
+ return this.grid.metaPathPrefix ? `${this.grid.metaPathPrefix}.${this.grid.handle}` : this.grid.handle;
},
},
diff --git a/resources/js/components/fieldtypes/replicator/ManagesPreviewText.js b/resources/js/components/fieldtypes/replicator/ManagesPreviewText.js
index 18be6ac019b..98688c2170b 100644
--- a/resources/js/components/fieldtypes/replicator/ManagesPreviewText.js
+++ b/resources/js/components/fieldtypes/replicator/ManagesPreviewText.js
@@ -3,17 +3,15 @@ import PreviewHtml from './PreviewHtml';
export default {
computed: {
previewText() {
- const previews = Object.entries(this.previews).filter(([handle, value]) => {
- const config = this.config.fields.find((f) => f.handle === handle) || {};
- return config.replicator_preview === undefined ? this.showFieldPreviews : config.replicator_preview;
- });
-
- return previews
- .map(([handle, value]) => value)
- .filter((value) => {
- if (['null', '[]', '{}', ''].includes(JSON.stringify(value))) return null;
- return value;
+ return Object.entries(this.previews)
+ .filter(([handle, value]) => {
+ if (!handle.endsWith('_')) return false;
+ handle = handle.substr(0, handle.length - 1); // Remove the trailing underscore.
+ const config = this.config.fields.find((f) => f.handle === handle) || {};
+ return config.replicator_preview === undefined ? this.showFieldPreviews : config.replicator_preview;
})
+ .map(([handle, value]) => value)
+ .filter((value) => (['null', '[]', '{}', ''].includes(JSON.stringify(value)) ? null : value))
.map((value) => {
if (value instanceof PreviewHtml) return value.html;
diff --git a/resources/js/components/fieldtypes/replicator/ManagesSetMeta.js b/resources/js/components/fieldtypes/replicator/ManagesSetMeta.js
index 87b1b4b1642..b62221d9435 100644
--- a/resources/js/components/fieldtypes/replicator/ManagesSetMeta.js
+++ b/resources/js/components/fieldtypes/replicator/ManagesSetMeta.js
@@ -4,8 +4,8 @@ export default {
mixins: [ManagesRowMeta],
methods: {
- updateSetMeta(set, value, previews) {
- this.updateRowMeta(set, value, previews);
+ updateSetMeta(set, value) {
+ this.updateRowMeta(set, value);
},
removeSetMeta(set) {
diff --git a/resources/js/components/fieldtypes/replicator/Replicator.vue b/resources/js/components/fieldtypes/replicator/Replicator.vue
index c6c28588874..625331a5ebd 100644
--- a/resources/js/components/fieldtypes/replicator/Replicator.vue
+++ b/resources/js/components/fieldtypes/replicator/Replicator.vue
@@ -7,7 +7,7 @@
-
+
@@ -120,6 +115,14 @@ export default {
},
computed: {
+ setFieldPathPrefix() {
+ return this.fieldPathPrefix ? `${this.fieldPathPrefix}.${this.handle}` : this.handle;
+ },
+
+ setMetaPathPrefix() {
+ return this.metaPathPrefix ? `${this.metaPathPrefix}.${this.handle}` : this.handle;
+ },
+
canAddSet() {
if (this.isReadOnly) return false;
@@ -208,7 +211,7 @@ export default {
enabled: true,
};
- this.updateSetMeta(set._id, this.meta.new[handle], {});
+ this.updateSetMeta(set._id, this.meta.new[handle]);
this.update([...this.value.slice(0, index), set, ...this.value.slice(index)]);
@@ -223,23 +226,13 @@ export default {
_id: uniqid(),
};
- this.updateSetMeta(set._id, this.meta.existing[old_id], {});
+ this.updateSetMeta(set._id, this.meta.existing[old_id]);
this.update([...this.value.slice(0, index + 1), set, ...this.value.slice(index + 1)]);
this.expandSet(set._id);
},
- updateSetPreviews(id, previews) {
- this.updateMeta({
- ...this.meta,
- previews: {
- ...this.meta.previews,
- [id]: previews,
- },
- });
- },
-
collapseSet(id) {
if (!this.collapsed.includes(id)) {
this.collapsed.push(id);
diff --git a/resources/js/components/fieldtypes/replicator/Set.vue b/resources/js/components/fieldtypes/replicator/Set.vue
index 01ac731b58a..64f83c377ae 100644
--- a/resources/js/components/fieldtypes/replicator/Set.vue
+++ b/resources/js/components/fieldtypes/replicator/Set.vue
@@ -1,43 +1,157 @@
+
+
-
-
-
-
diff --git a/resources/js/components/terms/PublishForm.vue b/resources/js/components/terms/PublishForm.vue
index e420ef41a76..f85ac415adf 100644
--- a/resources/js/components/terms/PublishForm.vue
+++ b/resources/js/components/terms/PublishForm.vue
@@ -1,306 +1,162 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
-
+ {{ formattedTitle }}
+
+
+
+
+
+
+
+
+
+
+
+
-
+
{{ __('Read Only') }}
-
-
+
+
-
-
-
+
-
-
-
-
+
-
-
+
+
-
-
-
-
-
-
-
-
-
-
-
- {{ __(option.name) }}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
+
+
+
diff --git a/resources/js/components/ui/Combobox.vue b/resources/js/components/ui/Combobox.vue
index 795ecd3f8e2..98a72f2ca94 100644
--- a/resources/js/components/ui/Combobox.vue
+++ b/resources/js/components/ui/Combobox.vue
@@ -12,7 +12,7 @@ import {
ComboboxViewport,
} from 'reka-ui';
import { computed, nextTick, ref, useAttrs, useTemplateRef, watch } from 'vue';
-import { Button, WithField, Icon, Badge } from '@statamic/ui';
+import { Button, Icon, Badge } from '@statamic/ui';
import fuzzysort from 'fuzzysort';
import { SortableList } from '@statamic/components/sortable/Sortable.js';
@@ -201,135 +201,122 @@ function updateModelValue(value) {
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
-
-
-
-
-
-
-
- {{ __('No options to choose from.') }}
-
-
-
-
-
-
-
- {{ __(getOptionLabel(option)) }}
-
-
-
-
-
-
-
-
- /
-
-
-
-
-
-
-
-
-
- {{ __(getOptionLabel(option)) }}
-
-
-
-
+
+
+
+
+
+
+
+
+
+
-
-
-
+
+
+
+
+
+
+
+ {{ __('No options to choose from.') }}
+
+
+
+
+
+
+
+ {{ __(getOptionLabel(option)) }}
+
+
+
+
+
+
+
+
+ /
+
+
+
+
+
+
+
+
+
+ {{ __(getOptionLabel(option)) }}
+
+
+
+
+
+
+
+
diff --git a/resources/js/components/ui/DatePicker/DatePicker.vue b/resources/js/components/ui/DatePicker/DatePicker.vue
index 26230885646..df37b380e41 100644
--- a/resources/js/components/ui/DatePicker/DatePicker.vue
+++ b/resources/js/components/ui/DatePicker/DatePicker.vue
@@ -19,7 +19,7 @@ import {
DatePickerNext,
DatePickerPrev,
} from 'reka-ui';
-import { WithField, Card, Button, Calendar, Icon } from '@statamic/ui';
+import { Card, Button, Calendar, Icon } from '@statamic/ui';
const emit = defineEmits(['update:modelValue']);
@@ -64,77 +64,75 @@ const calendarEvents = computed(() => ({
-
-
-
+
+
+
+
+
+
+
diff --git a/resources/js/components/ui/DateRangePicker/DateRangePicker.vue b/resources/js/components/ui/DateRangePicker/DateRangePicker.vue
index d36ad925fbe..814865ba65e 100644
--- a/resources/js/components/ui/DateRangePicker/DateRangePicker.vue
+++ b/resources/js/components/ui/DateRangePicker/DateRangePicker.vue
@@ -19,7 +19,7 @@ import {
DateRangePickerRoot,
DateRangePickerTrigger,
} from 'reka-ui';
-import { WithField, Card, Button, Calendar, Icon } from '@statamic/ui';
+import { Card, Button, Calendar, Icon } from '@statamic/ui';
import { parseAbsoluteToLocal } from '@internationalized/date';
const emit = defineEmits(['update:modelValue']);
@@ -71,85 +71,83 @@ const calendarEvents = computed(() => ({
-
-
-
-
+
+
+
+
+
+
+
+
diff --git a/resources/js/components/ui/Field.vue b/resources/js/components/ui/Field.vue
index 5f9b03e7862..c7a5c8a68a5 100644
--- a/resources/js/components/ui/Field.vue
+++ b/resources/js/components/ui/Field.vue
@@ -1,41 +1,101 @@
diff --git a/resources/js/components/ui/Input/Group.vue b/resources/js/components/ui/Input/Group.vue
index f9013bf387a..52a2ede4621 100644
--- a/resources/js/components/ui/Input/Group.vue
+++ b/resources/js/components/ui/Input/Group.vue
@@ -1,6 +1,4 @@
-
-
-
-
-
+
+
+
diff --git a/resources/js/components/ui/Input/Input.vue b/resources/js/components/ui/Input/Input.vue
index 31071077c7b..3c364e3f06c 100644
--- a/resources/js/components/ui/Input/Input.vue
+++ b/resources/js/components/ui/Input/Input.vue
@@ -2,7 +2,7 @@
import { computed, useSlots, ref, useId } from 'vue';
import { cva } from 'cva';
import { twMerge } from 'tailwind-merge';
-import { Icon, Button, CharacterCounter, WithField } from '@statamic/ui';
+import { Icon, Button, CharacterCounter } from '@statamic/ui';
const slots = useSlots();
@@ -25,6 +25,7 @@ const props = defineProps({
placeholder: { type: String, default: null },
prepend: { type: String, default: null },
append: { type: String, default: null },
+ disabled: { type: Boolean, default: false },
});
const hasPrependedIcon = !!props.iconPrepend || !!props.icon || !!slots.prepend;
@@ -109,49 +110,48 @@ const copy = () => {
-
- |