components · forms wrapper cluster

Forms wrapper

Five components that close the form-authoring gap. Label-help- input clusters, markdown editor (no Tiptap dependency), drag-and-drop uploads, top-of-form error summaries, and the blocking-confirm dialog preset.

label + help + input + error

TuxFormField

The canonical label cluster. Slot scope exposes inputId + describedBy + ariaInvalid so consumer inputs inherit the right a11y attrs for free. Help popover via the info icon next to the label.

TTI / TAMUS addresses preferred.

markdown editor · no deps

TuxMarkdownEditor

Lightweight markdown authoring — no Tiptap, no rich-text WYSIWYG. Toolbar + keyboard shortcuts (⌘B / ⌘I / ⌘K / ⌘E) + Tab indent + preview toggle (rendered via MDC) + char + word count footer.

drag-and-drop uploads

TuxFileDropzone

Branded drop target with hover + drag highlights. Drag a file (or click) to select; multi-file mode with max-count + max-size enforcement; selected files render below with per-file remove. Keyboard-accessible (Enter / Space).

top-of-form error summary

TuxValidationSummary

Surfaces all form errors at the top so the user doesn't miss any. Click an error to jump to the field that produced it (uses the field's id). Renders nothing when the errors list is empty.

destructive-action confirmation

TuxConfirmDialog

TuxModal preset with a tight Cancel + destructive-confirm footer. Four variants — destructive / danger / primary / warning — auto-pick the right button intent + default label.