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 @@ + + @@ -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' }" /> -
- +
+ + {{ hint }} +