Getting Started
Basic Confirmation Action
A dropdown with a single confirmation action that submits to a form action path:
<script lang="ts">
import { ActionButton } from '@repo/actions'
</script>
<ActionButton.Root>
<ActionButton.Item>
<ActionButton.Confirmation action="?/delete" label="Delete Item" invalidateAll />
</ActionButton.Item>
</ActionButton.Root>
Clicking "Delete Item" opens a confirmation dialog. On confirm, it POSTs to ?/delete.
Form Action
For actions that require user input, use ActionButton.Form with a @repo/form superform:
<script lang="ts">
import { ActionButton } from '@repo/actions'
import { FormField } from '@repo/form'
import { importForm, importSchema } from './import.remote'
</script>
<ActionButton.Root>
<ActionButton.Item>
<ActionButton.Form label="Import Data" form={importForm} enctype="multipart/form-data" action="?/import">
<FormField.Simple accessor="file" label="CSV File">
{#snippet children({ props })}
<FormField.FileField bind:value={$formData.file} accept="text/csv" {...props} />
{/snippet}
</FormField.Simple>
</ActionButton.Form>
</ActionButton.Item>
</ActionButton.Root>
Remote Action
For actions that submit to a remote function instead of a form action path:
<script lang="ts">
import { ActionButton } from '@repo/actions'
import { generateReport } from './reports.remote'
</script>
<ActionButton.Root>
<ActionButton.Item>
<ActionButton.Remote label="Generate Report" form={generateReport} />
</ActionButton.Item>
</ActionButton.Root>
Multiple Actions
Combine different action types in a single dropdown:
<ActionButton.Root>
<ActionButton.Item>
<ActionButton.Confirmation action="?/generate" label="Generate Tasks" invalidateAll />
</ActionButton.Item>
<ActionButton.Item>
<ActionButton.Remote label="Sync Data" form={syncForm} />
</ActionButton.Item>
<ActionButton.Item>
<ActionButton.Simple label="Preview">
<p>Custom content here.</p>
</ActionButton.Simple>
</ActionButton.Item>
</ActionButton.Root>
Next Steps
- Confirmation Actions -- dialog-based confirm with form action
- Form Actions -- actions with form fields
- Remote Actions -- submit to remote functions