SX docs: configurable shell, SX-native event handlers, nav fixes
- Configurable page shell (~sx-page-shell kwargs + SX_SHELL app config) so each app controls its own assets — sx docs loads only sx-browser.js - SX-evaluated sx-on:* handlers (eval-expr instead of new Function) with DOM primitives registered in PRIMITIVES table - data-init boot mode for pure SX initialization scripts - Jiggle animation on links while fetching - Nav: 3-column grid for centered alignment, is-leaf sizing, fix map-indexed param order (index, item), guard mod-by-zero - Async route eval failure now falls back to server fetch instead of silently rendering nothing - Remove duplicate h1 title from ~doc-page - Re-bootstrap sx-ref.js + sx-browser.js Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -846,17 +846,22 @@ def compute_page_render_plans(service_name: str) -> None:
|
||||
Must be called after components are loaded (compute_all_deps/io_refs done)
|
||||
and pages are registered. Stores plans on PageDef.render_plan.
|
||||
"""
|
||||
import time
|
||||
from .parser import serialize
|
||||
from .deps import page_render_plan, get_all_io_names
|
||||
from .jinja_bridge import _COMPONENT_ENV
|
||||
|
||||
t0 = time.monotonic()
|
||||
io_names = get_all_io_names()
|
||||
pages = get_all_pages(service_name)
|
||||
count = 0
|
||||
for page_def in pages.values():
|
||||
if page_def.content_expr is not None:
|
||||
content_src = serialize(page_def.content_expr)
|
||||
page_def.render_plan = page_render_plan(content_src, _COMPONENT_ENV, io_names)
|
||||
logger.info("Computed render plans for %d pages in %s", len(pages), service_name)
|
||||
count += 1
|
||||
elapsed = (time.monotonic() - t0) * 1000
|
||||
logger.info("Computed render plans for %d pages in %s (%.1fms)", count, service_name, elapsed)
|
||||
|
||||
|
||||
def auto_mount_pages(app: Any, service_name: str) -> None:
|
||||
|
||||
Reference in New Issue
Block a user