Convert last Python fragment handlers to SX defhandlers: 100% declarative fragment API

- Add dict recursion to _convert_result for service methods returning dict[K, list[DTO]]
- New container-cards.sx: parses post_ids/slugs, calls confirmed-entries-for-posts, emits card-widget markers
- New account-page.sx: dispatches on slug for tickets/bookings panels with status pills and empty states
- Fix blog _parse_card_fragments to handle SxExpr via str() cast
- Remove events Python fragment handlers and simplify app.py to plain auto_mount

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-03 19:42:19 +00:00
parent e30cb0a992
commit f551fc7453
7 changed files with 91 additions and 63 deletions

View File

@@ -242,6 +242,8 @@ def _convert_result(result: Any) -> Any:
if result is None:
from .types import NIL
return NIL
if isinstance(result, dict):
return {k: _convert_result(v) for k, v in result.items()}
if isinstance(result, tuple):
# Tuple returns (e.g. (entries, has_more)) → list for sx access
return [_convert_result(item) for item in result]