Skip to content

Bulk actions

Preview Available in release assets

Apply one server-validated command to explicitly selected record identifiers.

Server contract

Use .thin-bulk-actions on a stable identified region. Datastar 1.0.2 may request server fragments; the application owns permissions, validation, idempotency, persistence, and reconciliation.

Server-rendered content, real links, native controls, and ordinary submitted forms preserve the complete workflow without Datastar or JavaScript.

Bulk actions primary example

Show code
<form class="thin-bulk-actions" id="order-bulk-actions" action="/api/advanced/dashboard?view=bulk" method="post" data-on:submit="@post('/api/advanced/dashboard?view=bulk')">
  <fieldset>
    <legend>Select orders</legend>
    <label>
      <input type="checkbox" name="ids" value="1024"> Order 1024</label>
      <label>
        <input type="checkbox" name="ids" value="1025"> Order 1025 with a long customer reference</label>
      </fieldset>
      <label>Action<select name="action" required>
      <option value="">Choose action</option>
      <option value="archive">Archive</option>
    </select>
  </label>
  <button class="thin-button">Apply to selected orders</button>
</form>

Anatomy

  • Stable server-owned region
  • Heading and current status
  • Native links or form controls
  • Server result and error text

Variants and sizes

  • Checkbox selection
  • Page selection

Gallery coverage: No structured variant fixtures are published yet; the primary example above is the only verified production markup.

Rendered fixtures exercise authored content and constrained layouts with the same production assets.

  • Idle
  • Pending
  • Empty
  • Partial success
  • Error
  • Forbidden
  • Long content
  • Narrow container
  • Reconnect

Structured state fixtures are not published for this item yet.

Interaction and keyboard behavior

Native checkboxes submit repeated IDs and an action. The server validates every ID, permission, and partial result before returning the reconciled list and summary.

Accessibility

Use semantic headings, native controls, explicit labels, selected counts, text status/error messages, and predictable focus. Announce completed server changes, not every intermediate client event; preserve source and focus order across patches.

Contract
LIVE
Basis
Native forms, links, file inputs, status regions, and action buttons; async semantics must be chosen per update
Evidence
  • tests/unit/library/dashboard-recipes.test.ts

API

Use .thin-bulk-actions on a stable identified region. Datastar 1.0.2 may request server fragments; the application owns permissions, validation, idempotency, persistence, and reconciliation.

Behavior tier: datastar-required

Structured host, property, and example tables are not authored for this item yet. Use the summary above and the primary example.

Fallback

Server-rendered content, real links, native controls, and ordinary submitted forms preserve the complete workflow without Datastar or JavaScript.

Assets and dependencies

  • /components.css

Dependencies: datastar@1.0.2

Source: packages/ui/src/items/dashboard/style.ts

Composition

Derived from the examples and style specs, not authored.

Composes