{#snippet edit_panel()}
{edit_label || field_name}
{#if field_type === 'textarea'}
{:else if field_type === 'select'}
draft_value = coerce_select_value(e.currentTarget.value, current_value)} class="select pr-10"> {#if allow_null}
-- None --
{/if} {#if Object.keys(select_options).length === 0}
Loading options...
{/if} {#each Object.entries(select_options) as [val, label] (val)}
{label}
{/each}
{#if Object.keys(select_options).length === 0}
{/if}
{:else if field_type === 'checkbox'}
{draft_value ? 'True' : 'False'}
{:else if field_type === 'tiptap'}
{:else if field_type === 'codemirror'}
{:else if field_type === 'date'}
{:else if field_type === 'datetime'}
{:else}
e.key === 'Enter' && handle_patch()} /> {/if}
{/snippet}
{#if children} {@render children()} {:else if field_type === 'checkbox'}
{display_value ? 'True' : 'False'}
{:else if field_type === 'tiptap' || field_type === 'codemirror'}
{@html display_value || '
Empty
'}
{:else}
{display_value || 'Not set'}
{/if}
{#if is_editing && !display_modal}
{@render edit_panel()}
{/if}
{#if display_modal}
{ e.preventDefault(); cancel_edit(); }} onclick={(e) => { if (e.target === dialog_ref) cancel_edit(); }} onkeydown={(e) => { if (e.key === 'Escape') cancel_edit(); }}> {@render edit_panel()}
{/if}