{#if as === 'button'} {:else if as === 'icon-button'} {:else if as === 'counter'}
{props.value} шт.
{:else if as === 'toggle-group'}
{#if props.label}{/if}
{#each props.options as opt} {@const val = props.valueKey ? opt[props.valueKey] : opt} {@const lbl = props.labelKey ? opt[props.labelKey] : opt} {/each}
{:else if as === 'range-slider'}
props.onChange?.(parseInt(e.target.value))} class="quality-slider" style="--fill: {Math.round((props.value / (props.options.length - 1)) * 100)}%" />
{#each props.options as q}{q.label}{/each}
{:else if as === 'file-card'} {@const file = props.file}
props.onToggle?.(file.id)}> {file.expanded ? '▼' : '►'} {file.file.name} e.stopPropagation()}> {#if file.previewUrl} props.onPreview?.(file)} title="Предпросмотр">🔍 {/if} props.onRemove?.(file.id)} title="Удалить">✕
{#if file.expanded}
props.onUpdate?.(file.id, { format: v })} /> props.onUpdate?.(file.id, { colorMode: v })} /> props.onUpdate?.(file.id, { qualityIndex: v })} />
{/if}
{:else if as === 'upload-zone'}

Загрузите файлы для печати

Загрузить файл(ы)
{:else if as === 'footer'} {/if}