diff --git a/app/javascript/template_builder/area.vue b/app/javascript/template_builder/area.vue
index 7fe1c075..abe9a313 100644
--- a/app/javascript/template_builder/area.vue
+++ b/app/javascript/template_builder/area.vue
@@ -3,9 +3,12 @@
class="absolute overflow-visible group field-area-container"
:style="positionStyle"
:class="{ 'z-[1]': isMoved || isDragged }"
+ tabindex="0"
+ :aria-label="areaLabel"
@pointerdown.stop
@mousedown="startMouseMove"
@touchstart="startTouchDrag"
+ @keydown="onAreaKeydown"
>
({ value: o.value ?? o, uuid: v4() })) || [{ value: '', uuid: v4() }, { value: '', uuid: v4() }]
+ }
+
+ if (type === 'stamp') {
+ field.readonly = true
+ }
+
+ if (type === 'date') {
+ field.preferences = { format: this.defaultDateFormat }
+ }
+
+ this.insertField(field)
+
+ this.save()
+
+ announcePolite(this.t('field_type_added').replace('{type}', this.t(type)))
},
startFieldDraw ({ name, type }) {
const existingField = this.template.fields?.find((f) => f.submitter_uuid === this.selectedSubmitter.uuid && name && name === f.name)
diff --git a/app/javascript/template_builder/field.vue b/app/javascript/template_builder/field.vue
index 193f3184..31ab2d82 100644
--- a/app/javascript/template_builder/field.vue
+++ b/app/javascript/template_builder/field.vue
@@ -107,12 +107,14 @@
class="dropdown dropdown-end field-settings-dropdown"
@mouseenter="renderDropdown = true"
@touchstart="renderDropdown = true"
+ @keydown.escape.stop="closeDropdown"
>