-
-
+ class:inline-block={!display_block}
+ role="none"
+ onkeydown={handle_keydown}>
+
+
+
{#if children}
{@render children()}
{:else if field_type === 'checkbox'}
-
+
{display_value ? 'True' : 'False'}
- {:else if field_type === 'tiptap'}
+ {:else if field_type === 'tiptap' || field_type === 'codemirror'}
- {@html display_value ||
- 'Empty '}
+
+ {@html display_value || 'Empty '}
{:else}
@@ -201,148 +515,72 @@ function toggle_edit() {
{/if}
-
-
+ aria-label="Edit {edit_label || field_name}"
+ title="Edit {edit_label || field_name}">
-
- {#if is_editing}
+
+ {#if is_editing && !display_modal}
-
- {edit_label || field_name}
-
-
-
-
-
-
-
-
-
-
-
- {#if patch_status === 'processing'}
-
- Saving...
-
- {:else if patch_status === 'success'}
-
- Saved
-
- {:else if patch_status === 'error'}
-
- Error
-
- {/if}
-
-
-
- {#if allow_null && draft_value !== null}
- (draft_value = null)}>
- Set Null
-
- {/if}
-
- {#if patch_status === 'processing'}
-
- {:else}
-
- {/if}
- Save
-
-
-
+ {@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}
+
diff --git a/src/lib/elements/element_ae_obj_field_editor_new.svelte b/src/lib/elements/element_ae_obj_field_editor_new.svelte
deleted file mode 100644
index 9c8e203d..00000000
--- a/src/lib/elements/element_ae_obj_field_editor_new.svelte
+++ /dev/null
@@ -1,557 +0,0 @@
-
-
-
-{#snippet edit_panel()}
-
-
- {edit_label || field_name}
-
-
-
-
-
-
-
-
-
-
-
-
- {#if patch_status === 'processing'}
-
- Saving...
-
- {:else if patch_status === 'success'}
-
- Saved
-
- {:else if patch_status === 'error'}
-
-
- Error
-
- {error_message}
-
- {/if}
-
-
-
- {#if allow_null && draft_value !== null}
- (draft_value = null)}
- aria-label="Clear value"
- title="Clear value">
-
- Clear
-
- {/if}
-
- {#if patch_status === 'processing'}
-
- {:else}
-
- {/if}
- Save
-
-
-
-{/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}
-
-
diff --git a/src/routes/core/data_stores/+page.svelte b/src/routes/core/data_stores/+page.svelte
index 25e623d7..c6782840 100644
--- a/src/routes/core/data_stores/+page.svelte
+++ b/src/routes/core/data_stores/+page.svelte
@@ -27,7 +27,7 @@ import { db_core } from '$lib/ae_core/db_core';
import { ae_util } from '$lib/ae_utils/ae_utils';
import type { ae_DataStore } from '$lib/types/ae_types';
import AE_DataStore_Form from '$lib/elements/element_data_store_form.svelte';
-import AE_Field_Editor from '$lib/elements/element_ae_obj_field_editor_new.svelte';
+import AE_Field_Editor from '$lib/elements/element_ae_obj_field_editor.svelte';
let account_map = new SvelteMap
();
@@ -544,8 +544,6 @@ function content_preview(ds: ae_DataStore): string {
edit_label="Code"
current_value={ds.code ?? ''}
placeholder="store_code"
- display_modal={true}
- modal_blocking={false}
on_success={() => do_search(false)}>
{ds.code}
{#if !ds.enable}off {/if}
@@ -560,8 +558,6 @@ function content_preview(ds: ae_DataStore): string {
edit_label="Name"
current_value={ds.name ?? ''}
placeholder="Display name"
- display_modal={true}
- modal_blocking={false}
on_success={() => do_search(false)} />
@@ -573,8 +569,6 @@ function content_preview(ds: ae_DataStore): string {
current_value={ds.type ?? 'text'}
field_type="select"
select_options={ds_type_options}
- display_modal={true}
- modal_blocking={false}
on_success={() => do_search(false)}>
{ds.type ?? '?'}
diff --git a/src/routes/core/person_view.svelte b/src/routes/core/person_view.svelte
index e1678c73..284f1e29 100644
--- a/src/routes/core/person_view.svelte
+++ b/src/routes/core/person_view.svelte
@@ -13,7 +13,7 @@ import { liveQuery } from 'dexie';
import type { key_val } from '$lib/stores/ae_stores';
import { ae_util } from '$lib/ae_utils/ae_utils';
-import Element_ae_obj_field_editor from '$lib/elements/element_ae_obj_field_editor_new.svelte';
+import Element_ae_obj_field_editor from '$lib/elements/element_ae_obj_field_editor.svelte';
import { core_func } from '$lib/ae_core/ae_core_functions';
import {
ae_snip,
diff --git a/src/routes/events/[event_id]/(leads)/leads/exhibit/[exhibit_id]/ae_tab__manage.svelte b/src/routes/events/[event_id]/(leads)/leads/exhibit/[exhibit_id]/ae_tab__manage.svelte
index c820cfa2..8ff4b938 100644
--- a/src/routes/events/[event_id]/(leads)/leads/exhibit/[exhibit_id]/ae_tab__manage.svelte
+++ b/src/routes/events/[event_id]/(leads)/leads/exhibit/[exhibit_id]/ae_tab__manage.svelte
@@ -10,7 +10,7 @@ import { ae_api, ae_loc } from '$lib/stores/ae_stores';
import { events_sess } from '$lib/stores/ae_events_stores';
import { leads_loc } from '$lib/stores/ae_events_stores__leads.svelte';
import { events_func } from '$lib/ae_events/ae_events_functions';
-import Element_ae_obj_field_editor from '$lib/elements/element_ae_obj_field_editor_new.svelte';
+import Element_ae_obj_field_editor from '$lib/elements/element_ae_obj_field_editor.svelte';
import Comp_exhibit_license_list from './ae_comp__exhibit_license_list.svelte';
import Comp_exhibit_custom_questions from './ae_comp__exhibit_custom_questions.svelte';
import Comp_exhibit_payment from './ae_comp__exhibit_payment.svelte';
diff --git a/src/routes/events/[event_id]/(pres_mgmt)/device/device/ae_comp__event_device_obj_li.svelte b/src/routes/events/[event_id]/(pres_mgmt)/device/device/ae_comp__event_device_obj_li.svelte
index c8c557b8..90d9075a 100644
--- a/src/routes/events/[event_id]/(pres_mgmt)/device/device/ae_comp__event_device_obj_li.svelte
+++ b/src/routes/events/[event_id]/(pres_mgmt)/device/device/ae_comp__event_device_obj_li.svelte
@@ -40,7 +40,7 @@ import {
import { pres_mgmt_loc } from '$lib/stores/ae_events_stores__pres_mgmt.svelte';
import { events_func } from '$lib/ae_events/ae_events_functions';
-import Element_ae_obj_field_editor from '$lib/elements/element_ae_obj_field_editor_new.svelte';
+import Element_ae_obj_field_editor from '$lib/elements/element_ae_obj_field_editor.svelte';
import {
Barcode,
Camera,
diff --git a/src/routes/events/[event_id]/(pres_mgmt)/location/[event_location_id]/location_view.svelte b/src/routes/events/[event_id]/(pres_mgmt)/location/[event_location_id]/location_view.svelte
index 7c04b1e8..143e4aa1 100644
--- a/src/routes/events/[event_id]/(pres_mgmt)/location/[event_location_id]/location_view.svelte
+++ b/src/routes/events/[event_id]/(pres_mgmt)/location/[event_location_id]/location_view.svelte
@@ -19,7 +19,7 @@ import { liveQuery } from 'dexie';
import type { key_val } from '$lib/stores/ae_stores';
// import { ae_util } from '$lib/ae_utils/ae_utils';
-import Element_ae_obj_field_editor from '$lib/elements/element_ae_obj_field_editor_new.svelte';
+import Element_ae_obj_field_editor from '$lib/elements/element_ae_obj_field_editor.svelte';
import Element_data_store from '$lib/elements/element_data_store.svelte';
let ae_promises: key_val = $state({});
diff --git a/src/routes/events/[event_id]/(pres_mgmt)/locations/ae_comp__event_location_obj_li.svelte b/src/routes/events/[event_id]/(pres_mgmt)/locations/ae_comp__event_location_obj_li.svelte
index 64850df6..30e11f93 100644
--- a/src/routes/events/[event_id]/(pres_mgmt)/locations/ae_comp__event_location_obj_li.svelte
+++ b/src/routes/events/[event_id]/(pres_mgmt)/locations/ae_comp__event_location_obj_li.svelte
@@ -36,7 +36,7 @@ import { pres_mgmt_loc } from '$lib/stores/ae_events_stores__pres_mgmt.svelte';
import { events_func } from '$lib/ae_events/ae_events_functions';
import Comp_event_session_obj_li from '../../../ae_comp__event_session_obj_li_wrapper.svelte';
-import Element_ae_obj_field_editor from '$lib/elements/element_ae_obj_field_editor_new.svelte';
+import Element_ae_obj_field_editor from '$lib/elements/element_ae_obj_field_editor.svelte';
import Comp_event_device_obj_li from '../device/device/ae_comp__event_device_obj_li_wrapper.svelte';
import {
Barcode,
diff --git a/src/routes/events/[event_id]/(pres_mgmt)/presenter/[presenter_id]/presenter_view.svelte b/src/routes/events/[event_id]/(pres_mgmt)/presenter/[presenter_id]/presenter_view.svelte
index ef892b17..f6645f78 100644
--- a/src/routes/events/[event_id]/(pres_mgmt)/presenter/[presenter_id]/presenter_view.svelte
+++ b/src/routes/events/[event_id]/(pres_mgmt)/presenter/[presenter_id]/presenter_view.svelte
@@ -20,7 +20,7 @@ import { browser } from '$app/environment';
import { ae_util } from '$lib/ae_utils/ae_utils';
import { api } from '$lib/api/api';
-import Element_ae_obj_field_editor from '$lib/elements/element_ae_obj_field_editor_new.svelte';
+import Element_ae_obj_field_editor from '$lib/elements/element_ae_obj_field_editor.svelte';
import MyClipboard from '$lib/app_components/e_app_clipboard.svelte';
import { core_func } from '$lib/ae_core/ae_core_functions';
diff --git a/src/routes/events/[event_id]/(pres_mgmt)/session/[session_id]/session_view.svelte b/src/routes/events/[event_id]/(pres_mgmt)/session/[session_id]/session_view.svelte
index 2c185ddb..d95255e3 100644
--- a/src/routes/events/[event_id]/(pres_mgmt)/session/[session_id]/session_view.svelte
+++ b/src/routes/events/[event_id]/(pres_mgmt)/session/[session_id]/session_view.svelte
@@ -20,7 +20,7 @@ import { Modal } from 'flowbite-svelte';
import { liveQuery } from 'dexie';
import type { key_val } from '$lib/stores/ae_stores';
import { ae_util } from '$lib/ae_utils/ae_utils';
-import Element_ae_obj_field_editor from '$lib/elements/element_ae_obj_field_editor_new.svelte';
+import Element_ae_obj_field_editor from '$lib/elements/element_ae_obj_field_editor.svelte';
import MyClipboard from '$lib/app_components/e_app_clipboard.svelte';
import { core_func } from '$lib/ae_core/ae_core_functions';
import { ae_snip, ae_loc, ae_api, slct } from '$lib/stores/ae_stores';
@@ -96,15 +96,6 @@ let lq__event_obj = $derived(
})
);
-// Convert a stored datetime string (YYYY-MM-DD HH:mm:ss or ISO with T) to the
-// YYYY-MM-DDTHH:MM format required by .
-// WHY: dayjs has no timezone plugin here — DB stores local time strings,
-// datetime-local uses the same local time. Safe direct conversion.
-function to_datetime_local(raw: string | Date | null | undefined): string {
- if (!raw) return '';
- return ae_util.iso_datetime_formatter(raw, 'datetime_iso_no_seconds').replace(' ', 'T');
-}
-
// Loads account people into the shared select options map so staff can assign
// a session POC from known person records instead of typing IDs manually.
async function load_person_options_for_session_poc() {
diff --git a/src/routes/events/ae_comp__event_presentation_obj_li.svelte b/src/routes/events/ae_comp__event_presentation_obj_li.svelte
index 26b50988..7e1744d4 100644
--- a/src/routes/events/ae_comp__event_presentation_obj_li.svelte
+++ b/src/routes/events/ae_comp__event_presentation_obj_li.svelte
@@ -35,7 +35,7 @@ import {
} from '$lib/stores/ae_events_stores';
import { pres_mgmt_loc } from '$lib/stores/ae_events_stores__pres_mgmt.svelte';
import { events_auth_loc } from '$lib/stores/ae_events_stores__auth.svelte';
-import Element_ae_obj_field_editor from '$lib/elements/element_ae_obj_field_editor_new.svelte';
+import Element_ae_obj_field_editor from '$lib/elements/element_ae_obj_field_editor.svelte';
import Comp_event_presenter_obj_li from '../events/[event_id]/(pres_mgmt)/presenter/ae_comp__event_presenter_obj_li_wrapper.svelte';
import Element_manage_event_file_li_wrap from '$lib/elements/element_manage_event_file_li_all.svelte';
import {
diff --git a/src/routes/testing/ae_obj_field_editor/+page.svelte b/src/routes/testing/ae_obj_field_editor/+page.svelte
index ecc0515b..a9015c96 100644
--- a/src/routes/testing/ae_obj_field_editor/+page.svelte
+++ b/src/routes/testing/ae_obj_field_editor/+page.svelte
@@ -1,12 +1,11 @@
-
+
-
Field Editor Comparison
+
Field Editor
- Left: Legacy (Skeleton) | Right: NEW (Tailwind v4)
+ Aether V3 Inline Editor (Tailwind v4)
@@ -81,56 +80,83 @@ function handle_success(data: any) {
-
-
-
-
-
-
-
- Legacy V3 Editor
-
+
+
+ Interactive Tests
+
- {#if $lq__test_journal && $lq__test_journal_entry}
-
-
+ {#if $lq__test_journal && $lq__test_journal_entry}
+
+
+
Name (Text + Generic T)
+
+
-
+
+
Type (Select + Coercion)
+
+
-
+
+
Start (Datetime + Conversion)
+
+
+
+
Summary (CodeMirror)
+
+
+
+
+
Code (New: Email/URL/Tel)
+
+
+
+
-
Priority (Checkbox)
-
Priority
+
-
- {/if}
-
-
-
-
-
-
-
- NEW Field Editor
-
-
- {#if $lq__test_journal && $lq__test_journal_entry}
-
-
Name (Text + Generic T)
-
-
-
-
-
Type (Select + Coercion)
-
-
-
-
-
Start (Datetime + Conversion)
-
Enable
+
-
-
-
Summary (CodeMirror)
-
-
-
-
-
Code (New: Email/URL/Tel)
-
-
-
-
-
- {:else}
-
-
-
Loading Test Objects...
- {/if}
-
+
+ {:else}
+
+
+
Loading Test Objects...
+
+ {/if}