Passed through to the strip — see MJWorkspaceTabStripComponent.AllowReorder.
The primary verb (create / build / …).
Show the spinner + busy label on the confirm button while an async confirm runs.
Optional Font Awesome class for the confirm button (e.g. 'fa-solid fa-check').
The primary verb's label — the ONE thing that changes per workshop ("Create entry" / "Build batch").
Tooltip / blocked-reason on the confirm button; falls back to ConfirmLabel.
Whether the save-as-draft button appears (some workshops have no draft concept).
Render the standardized action bar (confirm / save-as-draft / discard) below the body.
<mj-workspace-card>— the reusable frame every "workspace" screen shares (a screen where the user builds several drafts in parallel, each in a tab). A THIN, slotted wrapper: it owns ONLY the invariant chrome — • the card surface (border + rounded corners + contained scroll), • the tab-strip row (delegated to<mj-workspace-tab-strip>, which carries all tab behavior), • an identity band beside the tabs, and • a single scrollable body — and PROJECTS everything that varies: •[workspaceHeader]— the per-workshop identity band content (e.g. number/status/currency badges); • the default slot — the workshop's form/body; •[workspaceFooterNote]— an optional caption beside the standardized footer verbs.The card deliberately bakes in NO workshop-specific header; those differ per workshop and are projected. Height chain:
:hostfills its parent, the card fills the host, the body is the flex:1 scroller — so the BODY scrolls in place while the strip + identity band stay pinned.SIZING RULE for content inside the card: the card is a query container (
container-type: size), so content sizes with CONTAINER units (cqh/cqw/cqi) — relative to the card as a pane — never viewport units (vh/vw), which break the moment the card sits in a split or a smaller window.