SEAM ships a compact, self-contained component library written in vanilla JavaScript. Most UI components are plain functions that accept a props object and return an HTML string, which is then injected directly into the DOM. Feedback components such asDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/TheSerchCp/SEAM/llms.txt
Use this file to discover all available pages before exploring further.
Modal, Toast, and Loader operate differently — they mount themselves on document.body imperatively rather than returning markup. There are no virtual-DOM diffing steps, no framework lifecycle hooks, and no build-time compilation — just composable functions you import, call, and render.
Form Components
Form, InputField, SelectField, TextareaField, and the FormValidator validation engine.
Table
A responsive Table component with a desktop
<table> view and an automatic mobile card layout.Modal & Toast
Modal, FormModal, Toast convenience helpers, Loader overlay, and EventBus toast events.
Quickstart
Get SEAM running locally in under five minutes.
All shared components
UI components
| Component | Description |
|---|---|
Form | Generates a complete <form> element from a fields array — delegates rendering to the appropriate field component. |
InputField | Renders a styled <input> with an optional label, inline error message, and success/error state icons. |
SelectField | Custom-styled dropdown that supports single and multi-select; uses a hidden <input> so standard FormData picks up the value. |
TextareaField | Renders a <textarea> with an optional character counter and inline validation feedback. |
Table | Renders a responsive data table on desktop and automatically switches to a card-based layout on mobile. |
Modal | Confirmation dialog appended directly to document.body; supports a danger variant and an async onConfirm callback. |
FormModal | Wraps Modal + Form into a single create/edit dialog with FormValidator wired up automatically. |
Toast | Non-blocking notification banner with four severity levels; auto-dismisses after a configurable duration. |
Loader | Full-screen overlay with a spinning indicator; controlled via Loader.show(message) / Loader.hide(). |
Layout components
| Component | Description |
|---|---|
Header | Top navigation bar that shows the SEAM logo and the currently authenticated user’s name. |
Sidebar | Renders a fixed left sidebar on desktop and a floating bottom navigation bar on mobile; reads menu items from getSidebarItems(). |
Footer | Minimal footer that outputs the current year and the SEAM copyright notice. |
Utilities
| Utility | Description |
|---|---|
FormValidator | Class-based validator that binds to a form element by ID, evaluates a rule schema on every input/focusout event, and optionally enables or disables a submit button. |
Validators | Low-level validation primitives (validateEmail, validatePassword, validateText) used internally by FormValidator. |
ComponentInitializer | Thin helper that calls initSelectFields() after a component tree is injected into the DOM. |
HTML-string rendering model
SEAM components fall into two categories based on how they reach the screen. String-returning components (Form, InputField, SelectField, TextareaField, Table) accept a props object and return an HTML string. Inject the string into the DOM with innerHTML, then call initSelectFields() if any SelectField elements are present:
Modal, FormModal, Toast, Loader) append or manage their own DOM nodes directly:
For string-returning components, event listeners must be attached after the string has been written to
innerHTML. FormModal and FormValidator.attach() both handle this automatically when used together.