{#if error}
{error}
{/if}
form.icon = v} /> onnameinput?.()} required placeholder={t('notificationTracker.namePlaceholder')} class="flex-1 px-3 py-2 border border-[var(--color-border)] rounded-md text-sm bg-[var(--color-background)]" />
{t('notificationTracker.server')}
{#if !isScheduler && colMeta && collections.length > 0}
{t(colMeta.label)}
({ value: col.id, label: col.albumName || col.name, icon: colMeta.icon, desc: colMeta.desc(col), }))} bind:values={form.collection_ids} placeholder={t(colMeta.placeholder)} />
{/if} {#if descriptor?.userFilters && descriptor.userFilters.length > 0} {@const userItems = users.map(u => ({ value: u.id, label: u.name }))} {#each descriptor.userFilters as uf (uf.key)} {@const filterKey = uf.filterKey ?? uf.key}
{t(uf.label)}
{#if uf.inputMode === 'tags'} form.filters = { ...form.filters, [filterKey]: vals }} placeholder={t(uf.placeholder)} icon={uf.icon} /> {:else} ({ ...i, icon: uf.icon }))} values={form.filters[filterKey] || []} onchange={(vals) => form.filters = { ...form.filters, [filterKey]: vals }} placeholder={t(uf.placeholder)} /> {/if}
{/each} {/if} {#if isScheduler}
{t('notificationTracker.scheduleType')}
{#if form.filters.schedule_type === 'cron'}
form.filters = { ...form.filters, cron_expression: (e.target as HTMLInputElement).value }} placeholder="0 9 * * 1-5" class="w-full px-3 py-2 border border-[var(--color-border)] rounded-md text-sm bg-[var(--color-background)] font-mono" />

{t('notificationTracker.cronHint')}

{:else}
{/if}
{t('notificationTracker.customVariables')}

{t('notificationTracker.customVariablesHint')}

{#each Object.entries(form.filters.custom_variables || {}) as [key, value]}
updateVariableKey(key, (e.target as HTMLInputElement).value)} placeholder="key" class="w-1/3 px-2 py-1.5 border border-[var(--color-border)] rounded-md text-sm bg-[var(--color-background)] font-mono" /> updateVariableValue(key, (e.target as HTMLInputElement).value)} placeholder="value" class="flex-1 px-2 py-1.5 border border-[var(--color-border)] rounded-md text-sm bg-[var(--color-background)]" />
{/each}
{:else} {#if !isWebhook}
{/if} {/if} {#if trackingConfigItems.length > 0 || templateConfigItems.length > 0}
{#if trackingConfigItems.length > 0}
{/if} {#if templateConfigItems.length > 0}
{/if}
{/if} {#if descriptor?.featureDiscoveryHint} {@const hint = descriptor.featureDiscoveryHint}

{t(hint.messageKey)}

{#if hint.ctas && hint.ctas.length > 0}
{#each hint.ctas as cta} {t(cta.labelKey)} {/each}
{/if}
{/if}