From ca3fd5c9b7732596d97803c2da35f5566d9b78a7 Mon Sep 17 00:00:00 2001 From: tolvitty Date: Fri, 13 Feb 2026 14:56:19 +0100 Subject: [PATCH] feat: add slider, color, time to form builder with slider settings Co-Authored-By: Claude Opus 4.6 --- src/ui/form-builder.ts | 33 ++++++++++++++++++++++++++++++++- 1 file changed, 32 insertions(+), 1 deletion(-) diff --git a/src/ui/form-builder.ts b/src/ui/form-builder.ts index d242126..c20847f 100644 --- a/src/ui/form-builder.ts +++ b/src/ui/form-builder.ts @@ -12,6 +12,9 @@ const FIELD_TYPES: FieldType[] = [ 'note-link', 'folder-picker', 'rating', + 'slider', + 'color', + 'time', ]; /** @@ -243,7 +246,7 @@ export class FormBuilderModal extends Modal { }); // Placeholder (for text, textarea, number, date, note-link, folder-picker) - if (['text', 'textarea', 'number', 'date', 'note-link', 'folder-picker'].includes(field.type)) { + if (['text', 'textarea', 'number', 'date', 'time', 'note-link', 'folder-picker'].includes(field.type)) { this.addTextSetting( bodyEl, 'Placeholder', @@ -280,6 +283,34 @@ export class FormBuilderModal extends Modal { }, ); } + + // Min / Max / Step (for slider) + if (field.type === 'slider') { + this.addTextSetting( + bodyEl, + 'Min', + String(field.min ?? 0), + (v) => { + field.min = v === '' ? undefined : Number(v); + }, + ); + this.addTextSetting( + bodyEl, + 'Max', + String(field.max ?? 100), + (v) => { + field.max = v === '' ? undefined : Number(v); + }, + ); + this.addTextSetting( + bodyEl, + 'Step', + String(field.step ?? 1), + (v) => { + field.step = v === '' ? undefined : Number(v); + }, + ); + } } }