function normalizeCheckboxValue(value) { return value === 'yes'; } function normalizeArrayValue(value) { if (Array.isArray(value)) return value; if (typeof value === 'string' && value.trim()) { return value .split(',') .map((part) => Number(part.trim())) .filter((item) => Number.isFinite(item) && item > 0); } return []; } function renderIconPreview(iconType) { if (iconType === 'spark') { return ( ); } if (iconType === 'bolt') { return ( ); } return ( ); } export default function SettingField({ field, value, onChange, options = [] }) { const id = `field-${field.name}`; const rowClassName = `wp-ai-field-row ${field.className || ''}`.trim(); if (field.type === 'checkbox') { return (
{field.label} {field.description ? {field.description} : null}
); } if (field.type === 'tool-selector') { return (
{field.label} {field.description ? {field.description} : null}
{options.map((option) => { const isSelected = value === option.value; return ( ); })}
); } if (field.type === 'card-selector') { return (
{field.label} {field.description ? {field.description} : null}
{options.map((option) => { const isSelected = value === option.value; return ( ); })}
); } if (field.type === 'icon-selector') { return (
{field.label} {field.description ? {field.description} : null}
{options.map((option) => { const isSelected = value === option.value; return ( ); })}
); } if (field.type === 'multi-checkbox') { const selectedValues = normalizeArrayValue(value).map((item) => Number(item)); return (
{field.label} {field.description ? {field.description} : null}
{options.length === 0 ? No pages found. : null} {options.map((option) => { const numericValue = Number(option.value); const isChecked = selectedValues.includes(numericValue); return ( ); })}
); } if (field.type === 'textarea') { return (