diff --git a/packages/component-library/__snapshots__/components-mt-email-field-interaction-tests--visual-test-hint-snap.png b/packages/component-library/__snapshots__/components-mt-email-field-interaction-tests--visual-test-hint-snap.png
index dc7fc52d3..5c0344ab1 100644
Binary files a/packages/component-library/__snapshots__/components-mt-email-field-interaction-tests--visual-test-hint-snap.png and b/packages/component-library/__snapshots__/components-mt-email-field-interaction-tests--visual-test-hint-snap.png differ
diff --git a/packages/component-library/__snapshots__/components-mt-number-field-interaction-tests--visual-test-hint-snap.png b/packages/component-library/__snapshots__/components-mt-number-field-interaction-tests--visual-test-hint-snap.png
index 0605eab7e..8fb1184d9 100644
Binary files a/packages/component-library/__snapshots__/components-mt-number-field-interaction-tests--visual-test-hint-snap.png and b/packages/component-library/__snapshots__/components-mt-number-field-interaction-tests--visual-test-hint-snap.png differ
diff --git a/packages/component-library/__snapshots__/components-mt-password-field-interaction-tests--visual-test-hint-snap.png b/packages/component-library/__snapshots__/components-mt-password-field-interaction-tests--visual-test-hint-snap.png
index 0cef6ee1f..716013161 100644
Binary files a/packages/component-library/__snapshots__/components-mt-password-field-interaction-tests--visual-test-hint-snap.png and b/packages/component-library/__snapshots__/components-mt-password-field-interaction-tests--visual-test-hint-snap.png differ
diff --git a/packages/component-library/__snapshots__/components-mt-radio-group-interaction-tests--visual-test-hint-snap.png b/packages/component-library/__snapshots__/components-mt-radio-group-interaction-tests--visual-test-hint-snap.png
index 683d6441f..3922bb688 100644
Binary files a/packages/component-library/__snapshots__/components-mt-radio-group-interaction-tests--visual-test-hint-snap.png and b/packages/component-library/__snapshots__/components-mt-radio-group-interaction-tests--visual-test-hint-snap.png differ
diff --git a/packages/component-library/__snapshots__/components-mt-select-interaction-tests--visual-test-hint-snap.png b/packages/component-library/__snapshots__/components-mt-select-interaction-tests--visual-test-hint-snap.png
index 0d9ab407c..bd1b54a14 100644
Binary files a/packages/component-library/__snapshots__/components-mt-select-interaction-tests--visual-test-hint-snap.png and b/packages/component-library/__snapshots__/components-mt-select-interaction-tests--visual-test-hint-snap.png differ
diff --git a/packages/component-library/__snapshots__/components-mt-text-field-interaction-tests--visual-test-character-count-with-hint-snap.png b/packages/component-library/__snapshots__/components-mt-text-field-interaction-tests--visual-test-character-count-with-hint-snap.png
index 8aa9b1216..f808c0eb3 100644
Binary files a/packages/component-library/__snapshots__/components-mt-text-field-interaction-tests--visual-test-character-count-with-hint-snap.png and b/packages/component-library/__snapshots__/components-mt-text-field-interaction-tests--visual-test-character-count-with-hint-snap.png differ
diff --git a/packages/component-library/__snapshots__/components-mt-text-field-interaction-tests--visual-test-hint-snap.png b/packages/component-library/__snapshots__/components-mt-text-field-interaction-tests--visual-test-hint-snap.png
index 44605b7ac..f539a4067 100644
Binary files a/packages/component-library/__snapshots__/components-mt-text-field-interaction-tests--visual-test-hint-snap.png and b/packages/component-library/__snapshots__/components-mt-text-field-interaction-tests--visual-test-hint-snap.png differ
diff --git a/packages/component-library/__snapshots__/components-mt-textarea-interaction-tests--visual-test-character-count-with-hint-snap.png b/packages/component-library/__snapshots__/components-mt-textarea-interaction-tests--visual-test-character-count-with-hint-snap.png
index d40c6eead..3ebd1555b 100644
Binary files a/packages/component-library/__snapshots__/components-mt-textarea-interaction-tests--visual-test-character-count-with-hint-snap.png and b/packages/component-library/__snapshots__/components-mt-textarea-interaction-tests--visual-test-character-count-with-hint-snap.png differ
diff --git a/packages/component-library/__snapshots__/components-mt-textarea-interaction-tests--visual-test-hint-snap.png b/packages/component-library/__snapshots__/components-mt-textarea-interaction-tests--visual-test-hint-snap.png
index 22d4166ec..40477539b 100644
Binary files a/packages/component-library/__snapshots__/components-mt-textarea-interaction-tests--visual-test-hint-snap.png and b/packages/component-library/__snapshots__/components-mt-textarea-interaction-tests--visual-test-hint-snap.png differ
diff --git a/packages/component-library/__snapshots__/components-mt-url-field-interaction-tests--visual-test-hint-snap.png b/packages/component-library/__snapshots__/components-mt-url-field-interaction-tests--visual-test-hint-snap.png
index c189b874d..39c6d6161 100644
Binary files a/packages/component-library/__snapshots__/components-mt-url-field-interaction-tests--visual-test-hint-snap.png and b/packages/component-library/__snapshots__/components-mt-url-field-interaction-tests--visual-test-hint-snap.png differ
diff --git a/packages/component-library/src/components/form/_internal/mt-field-hint/mt-field-hint.vue b/packages/component-library/src/components/form/_internal/mt-field-hint/mt-field-hint.vue
new file mode 100644
index 000000000..43ffdca30
--- /dev/null
+++ b/packages/component-library/src/components/form/_internal/mt-field-hint/mt-field-hint.vue
@@ -0,0 +1,41 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/packages/component-library/src/components/form/mt-colorpicker/mt-colorpicker.vue b/packages/component-library/src/components/form/mt-colorpicker/mt-colorpicker.vue
index bb326ca87..64b0c2e43 100644
--- a/packages/component-library/src/components/form/mt-colorpicker/mt-colorpicker.vue
+++ b/packages/component-library/src/components/form/mt-colorpicker/mt-colorpicker.vue
@@ -235,6 +235,14 @@
+
+
+
+
+ {{ hint }}
+
+
+
@@ -244,6 +252,7 @@ import type { PropType } from "vue";
import { defineComponent } from "vue";
import { debounce } from "@/utils/debounce";
import MtBaseField from "../_internal/mt-base-field/mt-base-field.vue";
+import MtFieldHint from "../_internal/mt-field-hint/mt-field-hint.vue";
import MtFloatingUi from "../../_internal/mt-floating-ui/mt-floating-ui.vue";
import MtText from "@/components/content/mt-text/mt-text.vue";
import { createFocusTrap } from "focus-trap";
@@ -257,6 +266,7 @@ export default defineComponent({
components: {
"mt-base-field": MtBaseField,
+ "mt-field-hint": MtFieldHint,
"mt-text": MtText,
"mt-floating-ui": MtFloatingUi,
"mt-button": MtButton,
@@ -291,6 +301,15 @@ export default defineComponent({
default: null,
},
+ /**
+ * Optional caption below the field. The `#hint` slot takes precedence when provided.
+ */
+ hint: {
+ type: String as PropType,
+ required: false,
+ default: null,
+ },
+
/**
* Change the output value which gets emitted and shown in the field.
* @values auto, hex, hsl, rgb
@@ -494,6 +513,10 @@ export default defineComponent({
},
},
+ showFieldHint(): boolean {
+ return !!this.$slots.hint || (this.hint != null && String(this.hint).trim() !== "");
+ },
+
integerAlpha: {
get(): number {
return Math.floor(this.alphaValue * 100);
diff --git a/packages/component-library/src/components/form/mt-email-field/mt-email-field.vue b/packages/component-library/src/components/form/mt-email-field/mt-email-field.vue
index 13fe8f8b3..13b087ec6 100644
--- a/packages/component-library/src/components/form/mt-email-field/mt-email-field.vue
+++ b/packages/component-library/src/components/form/mt-email-field/mt-email-field.vue
@@ -101,17 +101,20 @@
:style="{ gridArea: 'error' }"
/>
-