feat(intent+harmonia): process task-form UX - full-height layout, status step indicator, dialog close icon#6393
Merged
Merged
Conversation
…tus step indicator, dialog close icon Three fixes to the BPM task-form experience (a form opened in the app-wide task dialog): 1. Form layout (template-form-builder-harmonia/ui/index.html.template): drop the hard-coded `max-width: 720px` and let the form fill the dialog; the body is a flex column and, on a task form, the card grows to full height with the action buttons pulled into a bottom-pinned footer. The 720px cap left the form floating tiny in the top-left of the full-screen dialog. 2. Document status step indicator (FormIntentGenerator + the same template): a task form whose bound entity has a `function: EntityStatus` relation now renders a read-only horizontal `x-h-step-indicator` of the document's status flow, active = the current status. The steps are extracted from the intent - the status entity's base seed rows in order, dropping terminal cancel/reject/void-style statuses (the same heuristic the badge colouring uses). Emitted as `metadata.steps` + `metadata.statusVar`; skipped for a cross-model status entity or a <2-step flow. Requires harmonia 2.6.0 (dynamic step number, harmonia #45). New FormStepIndicatorTest covers the emission (ordered non-terminal steps, translation seeds ignored, none on a non-task form). 3. Dialog close button icon (13 shell / page-view templates + static shells): every `x-h-dialog-close` button was emitted empty, so the close control was invisible (only its focus ring showed). Added the standard `<i x-h-lucide data-lucide="x">` glyph to all of them (application / my / partner shells, the document/master/manage/form views, and the document dialogs). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…er on the document page
Extends the step-indicator feature:
- Step descriptions: a status entity's optional `description` seed column is now surfaced under each
step title. FormIntentGenerator emits steps as {label, description} objects (description omitted
when blank); the task-form template renders an x-h-step-indicator-description. FormStepIndicatorTest
updated to assert the description flows and is absent when the seed row has none.
- Single-record document page: the document view now shows the same read-only status flow as a
VERTICAL x-h-step-indicator card under the Details box in the right sidebar, active = the current
status, descriptions from the same seed column. Driven by two small page.js helpers (statusSteps()
= the loaded status options minus terminal ones; activeStep() = 1-based current index) reusing the
existing statusVariant() heuristic; the status option map now carries `description`. The title-bar
pill is kept. The sidebar renders for a status-bearing document even with no audit/read-only fields.
Follow-up (same pattern): the manage/form view (has a sidebar) and the my-document / my-form views
(no sidebar - placement TBD).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Step-indicator + polish for the status-driven UX, in three areas.
1. Full-height task-form layout
The generated task-form template hard-coded
max-width: 720px, so in the full-screen task dialog the form floated tiny in the top-left. Removed the cap; thebodyis a flex column and, on a task form, the card fills the dialog height with the action buttons in a bottom-pinned footer.2. Document status step indicator (extracted from the intent)
A status flow (
function: EntityStatusrelation) now renders as a read-onlyx-h-step-indicator, current status active - so the user sees where in the lifecycle a document is. Two surfaces:The steps come straight from the intent: the status entity's base seed rows, in seed = workflow order, dropping terminal
cancel/reject/void/…statuses (the same heuristic the badge colouring uses). The task form embeds them at generation time (FormIntentGenerator->metadata.steps+metadata.statusVar); the document page reads the status options loaded at runtime (statusSteps()/activeStep()).Step descriptions - an optional
descriptionseed column on the status entity is surfaced under each step title (title-only when absent). Emitted as{label, description}on task forms; carried on the status option objects for the document page.Requires harmonia 2.6.0 (dynamic step number, codbex/harmonia#45), already on master.
3. Empty dialog close ("X") button
Every
x-h-dialog-closebutton across the shells and generated page views was emitted empty - no icon child - so the close control was invisible (only its focus ring showed). Added the standard<i x-h-lucide data-lucide="x">to all 26 occurrences.Verification
FormStepIndicatorTest(new): ordered non-terminal steps, description flows (and is absent when the seed row has none), translation seeds ignored,statusVarcorrect, none on a non-task form. Green.findIndexactive-match + description spans) and document page (optionsStatuscarriesdescription,statusSteps()/activeStep(), vertical stepper card). Layout + rendering validated live.Follow-up (same pattern, not in this PR)
The vertical stepper on the
manage/formview (has a sidebar) and themy-document/my-formviews (no sidebar - placement TBD).🤖 Generated with Claude Code