diff --git a/packages/ui/src/Input/Input.vue b/packages/ui/src/Input/Input.vue
index 84d8536c90..ee6e32ab3c 100644
--- a/packages/ui/src/Input/Input.vue
+++ b/packages/ui/src/Input/Input.vue
@@ -47,8 +47,8 @@ const inputClasses = computed(() => {
variants: {
size: {
base: 'text-base rounded-lg px-3 py-2 h-10 leading-[1.375rem]',
- sm: 'text-sm rounded-md px-2.5 py-1.5 h-8 leading-[1.125rem]',
- xs: 'text-xs rounded-xs px-2 py-1.5 h-6 leading-[1.125rem]',
+ sm: 'text-sm rounded-lg px-2.5 py-1.5 h-8 leading-[1.125rem]',
+ xs: 'text-xs rounded-md px-2 py-1.5 h-6 leading-[1.125rem]',
},
variant: {
default: '',
diff --git a/packages/ui/src/Textarea.vue b/packages/ui/src/Textarea.vue
index 9dc5b7c43d..d011bc911c 100644
--- a/packages/ui/src/Textarea.vue
+++ b/packages/ui/src/Textarea.vue
@@ -14,18 +14,24 @@ const props = defineProps({
required: { type: Boolean, default: false },
resize: { type: String, default: 'vertical' },
rows: { type: [Number, String], default: 4 },
+ size: { type: String, default: 'base' },
modelValue: { type: String, default: null },
limit: { type: Number, default: null },
});
const classes = cva({
base: [
- 'w-full block bg-white dark:bg-gray-900 px-3 pt-2.5 pb-3 rounded-lg',
+ 'w-full block bg-white dark:bg-gray-900',
'border border-gray-300 with-contrast:border-gray-500 dark:border-x-0 dark:border-t-0 dark:border-white/10 dark:inset-shadow-2xs dark:inset-shadow-black',
'text-gray-900 dark:text-gray-300',
'appearance-none antialiased shadow-ui-sm disabled:shadow-none read-only:border-dashed not-prose'
],
variants: {
+ size: {
+ base: 'text-base rounded-lg px-3 pt-2.5 pb-3',
+ sm: 'text-sm rounded-lg px-2.5 pt-1.5 pb-2',
+ xs: 'text-xs rounded-md px-2 pt-1 pb-1.5',
+ },
resize: {
both: 'resize',
horizontal: 'resize-x',
diff --git a/resources/js/components/fieldtypes/ButtonGroupFieldtype.vue b/resources/js/components/fieldtypes/ButtonGroupFieldtype.vue
index 36e8988764..aced5295ef 100644
--- a/resources/js/components/fieldtypes/ButtonGroupFieldtype.vue
+++ b/resources/js/components/fieldtypes/ButtonGroupFieldtype.vue
@@ -7,6 +7,7 @@
:key="$index"
:name="name"
:read-only="isReadOnly"
+ :size="fieldsContext.size.value"
:text="option.label || option.value"
:value="option.value"
:variant="value == option.value ? 'pressed' : 'default'"
@@ -28,6 +29,10 @@ export default {
ButtonGroup
},
+ inject: {
+ fieldsContext: 'PublishFieldsContext',
+ },
+
data() {
return {
resizeObserver: null,
diff --git a/resources/js/components/fieldtypes/SelectFieldtype.vue b/resources/js/components/fieldtypes/SelectFieldtype.vue
index 1c8ace9d27..63e3783a46 100644
--- a/resources/js/components/fieldtypes/SelectFieldtype.vue
+++ b/resources/js/components/fieldtypes/SelectFieldtype.vue
@@ -11,6 +11,7 @@
:placeholder="__(config.placeholder)"
:read-only="isReadOnly"
:searchable="config.searchable || config.taggable"
+ :size="size"
:taggable="config.taggable"
:id="id"
@update:modelValue="comboboxUpdated"
@@ -22,6 +23,9 @@ import Fieldtype from '@/components/fieldtypes/fieldtype.js';
import HasInputOptions from './HasInputOptions.js';
import { Combobox } from '@/components/ui';
import { computed } from 'vue';
+import { injectFieldsContext } from './../ui/Publish/FieldsProvider.vue';
+
+const { size } = injectFieldsContext() || {};
const emit = defineEmits(Fieldtype.emits);
const props = defineProps(Fieldtype.props);
diff --git a/resources/js/components/fieldtypes/TextFieldtype.vue b/resources/js/components/fieldtypes/TextFieldtype.vue
index de407d0987..60c8282509 100644
--- a/resources/js/components/fieldtypes/TextFieldtype.vue
+++ b/resources/js/components/fieldtypes/TextFieldtype.vue
@@ -12,6 +12,7 @@
:append="__(config.append)"
:limit="config.character_limit"
:placeholder="__(config.placeholder)"
+ :size="size"
:name="name"
:id="id"
:direction="config.direction"
@@ -25,6 +26,9 @@
import Fieldtype from '@/components/fieldtypes/fieldtype.js';
import { Input } from '@/components/ui';
import { computed } from 'vue';
+import { injectFieldsContext } from './../ui/Publish/FieldsProvider.vue';
+
+const { size } = injectFieldsContext() || {};
const emit = defineEmits(Fieldtype.emits);
const props = defineProps(Fieldtype.props);
diff --git a/resources/js/components/fieldtypes/TextareaFieldtype.vue b/resources/js/components/fieldtypes/TextareaFieldtype.vue
index 91442bfbff..12eb8cd7bc 100644
--- a/resources/js/components/fieldtypes/TextareaFieldtype.vue
+++ b/resources/js/components/fieldtypes/TextareaFieldtype.vue
@@ -7,6 +7,7 @@
:limit="config.character_limit || null"
:placeholder="__(config.placeholder)"
:model-value="value"
+ :size="fieldsContext.size.value"
@blur="$emit('blur')"
@focus="$emit('focus')"
@update:model-value="updateDebounced"
@@ -20,5 +21,8 @@ import { Textarea } from '@/components/ui';
export default {
mixins: [Fieldtype],
components: { Textarea },
+ inject: {
+ fieldsContext: 'PublishFieldsContext',
+ },
};
diff --git a/resources/js/components/fieldtypes/ToggleFieldtype.vue b/resources/js/components/fieldtypes/ToggleFieldtype.vue
index a92bfa7bb8..7d93863339 100644
--- a/resources/js/components/fieldtypes/ToggleFieldtype.vue
+++ b/resources/js/components/fieldtypes/ToggleFieldtype.vue
@@ -7,6 +7,7 @@
:id="fieldId"
:model-value="value"
:read-only="isReadOnly"
+ :size="fieldsContext.size.value"
/>
@@ -26,6 +27,10 @@ export default {
Heading,
},
+ inject: {
+ fieldsContext: 'PublishFieldsContext',
+ },
+
computed: {
inlineLabel() {
return this.value
diff --git a/resources/js/components/ui/Publish/FieldsProvider.vue b/resources/js/components/ui/Publish/FieldsProvider.vue
index f342c91d47..2e56d00fa7 100644
--- a/resources/js/components/ui/Publish/FieldsProvider.vue
+++ b/resources/js/components/ui/Publish/FieldsProvider.vue
@@ -19,12 +19,16 @@ const props = defineProps({
type: String,
default: (props) => props.pathPrefix,
},
+ size: {
+ type: String,
+ },
});
provideFieldsContext({
fields: toRef(() => props.fields),
fieldPathPrefix: toRef(() => props.fieldPathPrefix),
metaPathPrefix: toRef(() => props.metaPathPrefix),
+ size: toRef(() => props.size),
});
diff --git a/resources/views/playground.blade.php b/resources/views/playground.blade.php
index e8862d2d16..fed0c41f1e 100644
--- a/resources/views/playground.blade.php
+++ b/resources/views/playground.blade.php
@@ -168,31 +168,24 @@
- Input
+ Input
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+