feat: implement and rollout AE Obj Field Editor (New)

Rolls out the full rewrite of the generic inline field editor, standardizing on
Tailwind v4 + Flowbite styling and resolving several long-standing contract issues.

Component Improvements:
- Fully implemented datetime/date conversion (component now owns format normalization).
- Added type-safety via Svelte 5 generics (<script generics="T">).
- Added automatic select value coercion (prevents stuck optimistic state).
- Added support for 'email', 'url', and 'tel' field types.
- Rebuilt styling on Tailwind v4 utility classes, removing legacy Skeleton UI.
- Improved accessibility: added ARIA labels, Escape-to-cancel, and autofocus.
- Improved error handling with visible inline error messages.

Rollout/Migration:
- Migrated all 8 primary call sites (person_view, device_li, locations_li,
  location_view, presentation_li, leads_manage, presenter_view, session_view).
- Swapped manual datetime pre-conversion at call sites for internal handling.
- Updated the test playground to show legacy vs. new side-by-side.

This migration runs the new component in parallel with the old one (still present)
ensuring a safe transition.
This commit is contained in:
Scott Idem
2026-06-16 17:20:05 -04:00
parent 528fb9b33f
commit 7e97928e05
10 changed files with 259 additions and 366 deletions

View File

@@ -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.svelte';
import Element_ae_obj_field_editor from '$lib/elements/element_ae_obj_field_editor_new.svelte';
import { core_func } from '$lib/ae_core/ae_core_functions';
import {
ae_snip,