Checkout

AddressForm

Shipping/billing address form with GCC-specific fields.

AddressForm

A structured address form using Nuxt UI form components. Includes standard fields (name, phone, street, city, state, country, postal code) and optional GCC-specific fields (district, national address).

Preview

Shipping Address

Usage

<script setup>
const address = ref({})
const countries = [
  { label: 'Saudi Arabia', value: 'SA' },
  { label: 'United Arab Emirates', value: 'AE' },
]
</script>

<CAddressForm
  v-model="address"
  :countries="countries"
  @submit="handleSave"
/>

Without GCC Fields

<CAddressForm v-model="address" :show-gcc-fields="false" />

Loading State

<CAddressForm v-model="address" loading />

Props

PropTypeDefaultDescription
modelValuePartial<Address>requiredCurrent address values
countries{ label: string; value: string }[][]Country dropdown options
showGccFieldsbooleantrueShow district & national address fields
loadingbooleanfalseDisable form during submission
uiPartial<{...}>Per-instance theme overrides

Events

EventPayloadDescription
update:modelValuePartial<Address>Any field changed
submitPartial<Address>Form submitted

Slots

SlotScoped PropsDescription
gcc-fieldsCustom GCC-specific fields
actionsCustom submit button

Example: Custom Submit Button

<CAddressForm v-model="address" @submit="save">
  <template #actions>
    <div class="flex gap-2">
      <UButton type="button" variant="outline" @click="cancel">Cancel</UButton>
      <UButton type="submit" color="primary">Save Address</UButton>
    </div>
  </template>
</CAddressForm>