{#if !loaded}{:else} {#if showForm}
{#if error}{/if}
form.icon = v} /> nameManuallyEdited = true} required placeholder={t('trackingConfig.namePlaceholder')} class="flex-1 px-3 py-2 border border-[var(--color-border)] rounded-md text-sm bg-[var(--color-background)]" />
{t('trackingConfig.providerType')}
{#if !editing} {:else}

{form.provider_type}

{/if}
{#if descriptor}
{t('trackingConfig.eventTracking')}
{#each descriptor.eventFields as field (field.key)} {/each}
{#if descriptor.extraTrackingFields?.length}
{#each descriptor.extraTrackingFields as field (field.key)}
{#if field.type === 'grid-select' && field.gridItems} {:else} {/if}
{/each}
{/if}
{#each descriptor.featureSections ?? [] as section (section.key)}
{t(section.legend)} {#if section.legendHint}{/if}
{#if SLOT_FOR_SECTION[section.key]} {/if}
{#if form[section.enabledField]}
{#each section.fields as field (field.key)}
{#if field.type === 'toggle'} {:else if field.type === 'grid-select' && field.gridItems} {:else} {@const inputType = field.type === 'date' ? 'date' : field.type === 'time' ? 'time' : field.type === 'time-list' ? 'text' : 'number'} {@const hasError = field.type === 'time-list' && !!timeListErrors[field.key]} normalizeTimeList(field.key) : undefined} placeholder={field.type === 'time-list' || field.type === 'time' ? String(typeof field.defaultValue === 'function' ? field.defaultValue() : (field.defaultValue ?? '')) : ''} class="w-full px-2 py-1 border rounded-md text-sm bg-[var(--color-background)] {hasError ? 'border-[var(--color-error-fg)]' : 'border-[var(--color-border)]'}" /> {#if field.inlineHelp}

{t(field.inlineHelp)}

{/if} {#if hasError}

{timeListErrors[field.key]}

{/if} {/if}
{/each}
{#if section.key === 'quietHours' && form.quiet_hours_start && form.quiet_hours_end}

{quietHoursPreview(String(form.quiet_hours_start), String(form.quiet_hours_end))}

{/if} {/if}
{/each} {:else if form.provider_type}
{t('trackingConfig.unknownProviderType')}: {form.provider_type}
{/if}
{/if} {#if !showForm && allConfigs.length > 0}
{#if !globalProviderFilter.id}
{/if}
{/if} {#if allConfigs.length === 0 && !showForm} {:else if configs.length === 0 && !showForm} {:else}
{#each configs as config} {@const desc = getDescriptor(config.provider_type)}

{config.name}

{config.provider_type}

{(desc?.eventFields ?? []).filter(f => (config as Record)[f.key]).map(f => t(f.label)).join(', ')} {config.periodic_enabled ? ` · ${t('trackingConfig.periodic')}` : ''} {config.scheduled_enabled ? ` · ${t('trackingConfig.scheduled')}` : ''} {config.memory_enabled ? ` · ${t('trackingConfig.memory')}` : ''}

edit(config)} /> remove(config.id)} variant="danger" />
{/each}
{/if} {/if} confirmDelete?.onconfirm()} oncancel={() => confirmDelete = null} /> blockedBy = null} /> previewModal = null}> {#if previewModal} {#if previewLocales.length > 1}
{#each previewLocales as loc} {/each}
{/if}

{t('trackingConfig.previewSampleNote')}

{#if previewModal.error}
{previewModal.error}
{:else if previewModal.rendered}
{@html sanitizePreview(previewModal.rendered)}
{:else}
{/if}
{/if}