> ## Documentation Index
> Fetch the complete documentation index at: https://docs.hyperwisor.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Control Widgets

> The 15 widgets that send commands or capture input — their settings and binding behavior.

Control widgets are the interactive half of a dashboard: they send commands to
devices or capture user input. Every widget shares the four-tab properties model
([General / Style / Triggers / Data](/dashboard/overview)) and the common Style
controls below; each section here focuses on a widget's **distinctive** settings.

<Note>
  **Common Style controls** (on most widgets): background, border (color / width /
  radius / style), font (family / size / weight), padding/margin, container
  visibility, and box shadow. They behave the same everywhere, so they're not
  repeated per widget below.
</Note>

## Button

A momentary or command button. Sends a device command when pressed.

| Setting                                     | Purpose                       |
| ------------------------------------------- | ----------------------------- |
| Normal / Pressed text                       | Label in each state           |
| Button icon · icon size · icon position     | Optional icon                 |
| Button shape · size                         | Pill, rounded, square; sizing |
| Device command                              | The command sent on press     |
| Animation · hover/active scale · box shadow | Press feedback and motion     |

Pairs with firmware's command handler — see [Binding Data](/dashboard/binding-data).

## Switch

A latching on/off toggle. Sends a command on each toggle.

| Setting                                  | Purpose                       |
| ---------------------------------------- | ----------------------------- |
| Initial state                            | ON or OFF at load             |
| ON / OFF text · ON / OFF label text      | State text and labels         |
| Show text labels · show icon · icon size | Visibility of labels and icon |
| Status color · label color               | State coloring                |
| Container shape                          | Pill / rounded / square       |

## Slider

A range input. Sends its value as it moves.

| Setting                         | Purpose                                 |
| ------------------------------- | --------------------------------------- |
| Min / Max / Default value       | Range and starting value                |
| Custom width                    | Track width                             |
| Gradient track                  | Colored gradient fill                   |
| Haptic feedback                 | Vibration on change (supported devices) |
| Animate value · icon color/size | Motion and icon                         |

## Text Input

Captures text (and more) and submits it.

| Setting                                   | Purpose                         |
| ----------------------------------------- | ------------------------------- |
| Input type                                | Text, select, checklist, etc.   |
| Placeholder · default value               | Prompt and initial text         |
| Max length · Pattern (Regex)              | Validation                      |
| Select / Checklist options                | One per line, for choice inputs |
| Enable QR scan                            | Scan a code into the field      |
| Show submit / clear button · submit label | Actions                         |

## Form

A multi-field input form. Each field has its own ID, label, type, default, and
validation.

| Setting                                | Purpose              |
| -------------------------------------- | -------------------- |
| Field ID · Field Label · Field Type    | Per-field definition |
| Default value · Max length · Max value | Per-field validation |
| Focus / Error border                   | Validation states    |

## Database Form

A form that writes directly to a product database table.

| Setting                                               | Purpose                     |
| ----------------------------------------------------- | --------------------------- |
| Auto-generate fields from table schema                | Build fields from the table |
| Field label · type · placeholder · options · required | Per-field config            |
| Submit button label                                   | Action                      |
| Reset after submit                                    | Clear on success            |

Writes to the product database — see [`db`](/script/database-api) for the
programmatic equivalent.

## Color Picker

Pick a color and emit it in a chosen format.

| Setting                                    | Purpose               |
| ------------------------------------------ | --------------------- |
| Picker type · orientation · size           | The picker UI         |
| Output format                              | hex / rgb / hsl, etc. |
| Allow alpha / opacity                      | Transparency channel  |
| Color presets · swatch size · grid columns | Preset palette        |
| Validate hex format · read-only · disabled | Behavior              |

## Joystick

A two-axis joystick — emits X/Y values. Good for movement and direction.

| Setting                     | Purpose                           |
| --------------------------- | --------------------------------- |
| Min / Max value             | Output range per axis             |
| Dead zone                   | Ignore tiny movements near center |
| Sensitivity                 | Output scaling                    |
| Joystick size · custom size | Dimensions                        |
| Base / Handle color         | Appearance                        |

## Countdown Timer

A configurable countdown with completion actions.

| Setting                                                      | Purpose                |
| ------------------------------------------------------------ | ---------------------- |
| Initial duration (H/M/S)                                     | Starting time          |
| Auto start · show controls                                   | Behavior               |
| Show progress bar · progress color · show milliseconds       | Display                |
| Execute action on complete                                   | Fire a command at zero |
| Show notification · title · message · play sound · sound URL | Completion alert       |

## Schedule Manager

Lists and manages device schedules.

| Setting                               | Purpose             |
| ------------------------------------- | ------------------- |
| Device ID (optional)                  | Scope to one device |
| Max schedules to display              | List length         |
| List layout · item spacing/background | Layout              |
| Show status / date / last executed    | Columns             |
| Show action buttons                   | Edit/run controls   |

## Rule Manager

Lists and manages automation rules.

| Setting                               | Purpose           |
| ------------------------------------- | ----------------- |
| Max rules to display                  | List length       |
| Show description / status             | Columns           |
| Show action buttons                   | Edit/run controls |
| List layout · item spacing/background | Layout            |

## WebRTC Camera

Publishes a camera stream over WebRTC.

| Setting                    | Purpose                 |
| -------------------------- | ----------------------- |
| Camera ID · Room name      | Stream identity         |
| Server URL                 | WebRTC signaling server |
| Preferred camera           | Front/back/device       |
| Auto connect · Auto stream | Start behavior          |
| Enable audio               | Include microphone      |

## Voice to Text

Transcribes speech to text.

| Setting                 | Purpose              |
| ----------------------- | -------------------- |
| Language                | Recognition language |
| Continuous recognition  | Keep transcribing    |
| Always listening        | Hands-free           |
| Auto-send on speech end | Emit on pause        |

## Spotify Player

A media player with command bindings.

| Setting                                    | Purpose                        |
| ------------------------------------------ | ------------------------------ |
| Play / Pause / Next / Previous command IDs | Commands sent for each control |
| Show album artwork · album art URL         | Artwork                        |
| Show playback controls                     | Transport buttons              |
| Default volume · repeat mode · autoplay    | Playback                       |
| API credentials                            | Spotify integration            |

## Payment Widget

Charges a user for an action or unlock. See
[Payment Widget](/monetization/payment-widget) for the monetization context.

| Setting                                  | Purpose                       |
| ---------------------------------------- | ----------------------------- |
| Action type                              | What the payment unlocks/does |
| Amount · currency · currency position    | Price                         |
| Button label · button variant            | Call to action                |
| Command endpoint                         | The action invoked on success |
| Description · amount/description styling | Presentation                  |
| Error icon / title / message             | Failure state                 |

<Card title="Display widgets" icon="chart-line" href="/dashboard/widgets/display">
  The widgets that visualize device data.
</Card>
