Files
hemx/examples/workout/templates/workout.heml
T
slhx agent 189bdf5eea feat(examples): polish workout phone UI
Give the workout exemplar a durable gym-floor command-slate direction, serve focused CSS, keep the first viewport centered on one action, and extend the HTTP E2E to verify stylesheet delivery.

req: examples/001

req: local/001

req: local/003

req: host/002
2026-06-11 22:03:18 +02:00

42 lines
2.1 KiB
Plaintext

<main data-hemx-root="workout" class="workout-app">
<section class="command-slate" aria-labelledby="next-action-heading">
<p class="eyebrow">Now-first Workout Copilot</p>
<h1 id="next-action-heading" data-hemx-slot="next_action">{+ self.next_action +}</h1>
<p class="proofline" data-hemx-slot="status">{+ self.status +}</p>
</section>
<section class="action-rail" aria-label="Current workout action">
<button class="primary-action" type="button" data-hemx-handle="complete_set">Complete set</button>
<form class="micro-form" data-hemx-handle="change_weight" method="post">
<label>Weight <input name="kg" value="52.5" inputmode="decimal" aria-label="Weight in kilograms"></label>
<button type="submit">Update</button>
</form>
<button class="quiet-action" type="button" data-hemx-handle="skip_exercise">Skip</button>
<form class="voice-strip" data-hemx-handle="record_note" method="post">
<label>Dictate note <input name="text" value="left shoulder felt tight"></label>
<button type="submit">Record</button>
</form>
</section>
<section class="ledger" aria-labelledby="event-log-heading">
<div class="section-heading">
<h2 id="event-log-heading">Private event log</h2>
<button type="button" data-hemx-handle="replay_export">Replay export</button>
</div>
<pre data-hemx-slot="event_log">{+ self.event_log +}</pre>
<h3>Export payload</h3>
<pre data-hemx-slot="export_payload">{+ self.export_payload +}</pre>
</section>
<section class="host-boundary" aria-labelledby="host-heading">
<h2 id="host-heading">Host boundary</h2>
<p data-hemx-slot="host_status">{+ self.host_status +}</p>
<div class="host-actions">
<button type="button" data-hemx-handle="export_log">Share export</button>
<button type="button" data-hemx-handle="record_share_result">Share done</button>
<button type="button" data-hemx-handle="request_native_haptic">Haptic</button>
<button type="button" data-hemx-handle="record_native_haptic_ack">Haptic done</button>
</div>
</section>
</main>