X Enterprises
nuxt-x-app-formkit

Slide

FormKit-powered slideover panel form with automatic CRUD mode and legacy submit support.

Slide

XFormSlide has the same feature set as XFormModal but renders as a USlideover panel. Supports the same CRUD props, success behaviors, and exposed methods.

Components

<XFormSlide />

<XFormSlide
  v-model="slide"
  endpoint="/api/profile"
  :record-id="user.id"
  side="right"
  size="lg"
  on-success="refresh"
>
  <FormKit type="text" name="displayName" label="Display Name" validation="required" />
  <FormKit type="textarea" name="bio" label="Bio" />
</XFormSlide>

Props

PropTypeDefaultDescription
modelValuebooleanfalseControls slideover open state (v-model)
titlestring""Panel header title. Auto-derived from endpoint when omitted
side"left" | "right""right"Which edge the panel slides from
size"sm" | "md" | "lg" | "xl""md"Panel width (sm=320px, md=400px, lg=500px, xl=600px)
loadingbooleanfalseExternal loading state
disabledbooleanfalseDisable the submit button
submitTextstring"Save"Submit button label
cancelTextstring"Cancel"Cancel button label
confirmClosebooleanfalseSuppress auto-close; handle @close yourself
endpointstringAPI base path. Enables CRUD mode
recordIdstring | numberID of the record to fetch and edit
initialDataRecord<string, any>Pre-populate form without fetching from API
method"POST" | "PUT" | "PATCH"autoHTTP method override
idKeystring"id"Key used to detect and append record ID
headersRecord<string,string> | () => Record<string,string>Extra request headers
transform(data) => dataTransform form data before sending
showToastbooleantrueShow success/error toasts
closeOnSuccessbooleantrueClose panel after successful API call
resetOnClosebooleantrueClear form data when the panel closes
formIdstringautoOverride the generated FormKit form node ID
onSuccess"refresh" | "navigate" | FunctionPost-success action
navigateTostringRoute template for onSuccess: "navigate"

Emits

EventPayloadDescription
update:modelValuebooleanv-model sync
submitFired in legacy mode
closeFired when closed
success(data, response)Fired after successful API call
error(error)Fired on API error
loaded(data)Fired after record fetch

Slots

SlotScopeDescription
default{ data, isEdit } (CRUD mode only)Form fields or arbitrary content
headerPanel header content (defaults to the computed title)
loadingShown while a record is being fetched by recordId
error{ error, retry }Shown when the record fetch fails
footer{ loading, disabled }Footer actions (defaults to Submit + Cancel)
2026-07 fix (v0.2.1):unplugin-formkit previously injected its provider inside the single-root USlideover, hijacking the internal #content slot so the panel rendered an empty shell and named slots were silently lost. The overlay is now wrapped in a plain div. If your slideover renders empty, update to >=0.2.1 — no markup change needed.

Exposed Methods

MethodDescription
open(data?)Open the panel, optionally pre-populate
close()Close the panel
reset()Re-initialize form data
submit()Programmatically trigger submission

AI Context

component: XFormSlide
package: "@xenterprises/nuxt-x-app-formkit"
crud-mode: pass endpoint prop; component handles fetch/submit/toast/close automatically
legacy-mode: omit endpoint; handle @submit event yourself
success-behaviors: onSuccess="refresh" | "navigate" | custom function
form-engine: FormKit (validation, node.submit(), node.setErrors())
ui-primitive: USlideover (Nuxt UI)
use-when: Slideover panel forms for creating or editing a resource via API
Copyright © 2026