RadioGroep
Gebruik
Gebruik de v-model-richtlijn om de waarde van de RadioGroup te regelen of de default-value-prop om de beginwaarde in te stellen wanneer u de status niet hoeft te regelen.
<script setup lang="ts">
const items = ref(['System', 'Light', 'Dark'])
const value = ref('System')
</script>
<template>
<URadioGroup v-model="value" :items="items" />
</template><script setup lang="ts">
import { ref } from 'vue'
const items = ref(['System', 'Light', 'Dark'])
const value = ref('System')
</script>
<template>
<URadioGroup v-model="value" :items="items" />
</template>Items
Gebruik de items prop als een array van strings of getallen:
<script setup lang="ts">
const items = ref(['System', 'Light', 'Dark'])
const value = ref('System')
</script>
<template>
<URadioGroup v-model="value" :items="items" />
</template><script setup lang="ts">
import { ref } from 'vue'
const items = ref(['System', 'Light', 'Dark'])
const value = ref('System')
</script>
<template>
<URadioGroup v-model="value" :items="items" />
</template>U kunt ook een reeks objecten doorgeven met de volgende eigenschappen:
label?: stringdescription?: stringvalue?: stringdisabled?: booleanicon?: stringclass?: anyui?: { item?: ClassNameValue, container?: ClassNameValue, base?: ClassNameValue, 'indicator'?: ClassNameValue, wrapper?: ClassNameValue, label?: ClassNameValue, icon?: ClassNameValue, description?: ClassNameValue }
<script setup lang="ts">
import type { RadioGroupItem } from '@nuxt/ui'
const items = ref<RadioGroupItem[]>([
{
label: 'System',
description: 'Matches your device settings.',
value: 'system'
},
{
label: 'Light',
description: 'Always uses the light theme.',
value: 'light'
},
{
label: 'Dark',
description: 'Always uses the dark theme.',
value: 'dark'
}
])
const value = ref('system')
</script>
<template>
<URadioGroup v-model="value" :items="items" />
</template><script setup lang="ts">
import { ref } from 'vue'
import type { RadioGroupItem } from '@nuxt/ui'
const items = ref<RadioGroupItem[]>([
{
label: 'System',
description: 'Matches your device settings.',
value: 'system'
},
{
label: 'Light',
description: 'Always uses the light theme.',
value: 'light'
},
{
label: 'Dark',
description: 'Always uses the dark theme.',
value: 'dark'
}
])
const value = ref('system')
</script>
<template>
<URadioGroup v-model="value" :items="items" />
</template>value-eigenschap van het object in de v-model-richtlijn of de default-value-prop.Value-sleutel
U kunt de eigenschap die wordt gebruikt om de waarde in te stellen wijzigen met behulp van de value-key prop. Standaard is value.
<script setup lang="ts">
import type { RadioGroupItem } from '@nuxt/ui'
const items = ref<RadioGroupItem[]>([
{
label: 'System',
description: 'Matches your device settings.',
id: 'system'
},
{
label: 'Light',
description: 'Always uses the light theme.',
id: 'light'
},
{
label: 'Dark',
description: 'Always uses the dark theme.',
id: 'dark'
}
])
const value = ref('light')
</script>
<template>
<URadioGroup v-model="value" value-key="id" :items="items" />
</template><script setup lang="ts">
import { ref } from 'vue'
import type { RadioGroupItem } from '@nuxt/ui'
const items = ref<RadioGroupItem[]>([
{
label: 'System',
description: 'Matches your device settings.',
id: 'system'
},
{
label: 'Light',
description: 'Always uses the light theme.',
id: 'light'
},
{
label: 'Dark',
description: 'Always uses the dark theme.',
id: 'dark'
}
])
const value = ref('light')
</script>
<template>
<URadioGroup v-model="value" value-key="id" :items="items" />
</template>Legende
Gebruik de legend prop om de legenda van de RadioGroup in te stellen.
<script setup lang="ts">
const items = ref(['System', 'Light', 'Dark'])
</script>
<template>
<URadioGroup legend="Theme" default-value="System" :items="items" />
</template><script setup lang="ts">
import { ref } from 'vue'
const items = ref(['System', 'Light', 'Dark'])
</script>
<template>
<URadioGroup legend="Theme" default-value="System" :items="items" />
</template>Kleur
Gebruik de color prop om de kleur van de RadioGroup te wijzigen.
<script setup lang="ts">
const items = ref(['System', 'Light', 'Dark'])
</script>
<template>
<URadioGroup color="neutral" default-value="System" :items="items" />
</template><script setup lang="ts">
import { ref } from 'vue'
const items = ref(['System', 'Light', 'Dark'])
</script>
<template>
<URadioGroup color="neutral" default-value="System" :items="items" />
</template>Variant
Gebruik de variant prop om de variant van de RadioGroup te wijzigen.
<script setup lang="ts">
import type { RadioGroupItem } from '@nuxt/ui'
const items = ref<RadioGroupItem[]>([
{
label: 'System',
value: 'system',
description: 'Matches your device settings.'
},
{
label: 'Light',
value: 'light',
description: 'Always uses the light theme.'
},
{
label: 'Dark',
value: 'dark',
description: 'Always uses the dark theme.'
}
])
</script>
<template>
<URadioGroup color="primary" variant="card" default-value="system" :items="items" />
</template><script setup lang="ts">
import { ref } from 'vue'
import type { RadioGroupItem } from '@nuxt/ui'
const items = ref<RadioGroupItem[]>([
{
label: 'System',
value: 'system',
description: 'Matches your device settings.'
},
{
label: 'Light',
value: 'light',
description: 'Always uses the light theme.'
},
{
label: 'Dark',
value: 'dark',
description: 'Always uses the dark theme.'
}
])
</script>
<template>
<URadioGroup color="primary" variant="card" default-value="system" :items="items" />
</template>Grootte
Gebruik de size prop om de grootte van de RadioGroup te wijzigen.
<script setup lang="ts">
const items = ref(['System', 'Light', 'Dark'])
</script>
<template>
<URadioGroup size="xl" variant="list" default-value="System" :items="items" />
</template><script setup lang="ts">
import { ref } from 'vue'
const items = ref(['System', 'Light', 'Dark'])
</script>
<template>
<URadioGroup size="xl" variant="list" default-value="System" :items="items" />
</template>Oriëntatie
Gebruik de orientation prop om de oriëntatie van de RadioGroup te wijzigen. Standaard vertical.
<script setup lang="ts">
const items = ref(['System', 'Light', 'Dark'])
</script>
<template>
<URadioGroup orientation="horizontal" variant="list" default-value="System" :items="items" />
</template><script setup lang="ts">
import { ref } from 'vue'
const items = ref(['System', 'Light', 'Dark'])
</script>
<template>
<URadioGroup orientation="horizontal" variant="list" default-value="System" :items="items" />
</template>Indicator
Gebruik de indicator prop om de positie te wijzigen of de indicator te verbergen. Standaard start.
icon van een item wordt alleen weergegeven als indicatorhidden boven het label staat, omdat een radio geen pictogram in de indicator heeft.<script setup lang="ts">
import type { RadioGroupItem } from '@nuxt/ui'
const items = ref<RadioGroupItem[]>([
{
label: 'System',
icon: 'i-lucide-monitor',
value: 'System',
class: 'w-20'
},
{
label: 'Light',
icon: 'i-lucide-sun',
value: 'Light',
class: 'w-20'
},
{
label: 'Dark',
icon: 'i-lucide-moon',
value: 'Dark',
class: 'w-20'
}
])
</script>
<template>
<URadioGroup
indicator="hidden"
orientation="horizontal"
variant="table"
default-value="System"
:items="items"
/>
</template><script setup lang="ts">
import { ref } from 'vue'
import type { RadioGroupItem } from '@nuxt/ui'
const items = ref<RadioGroupItem[]>([
{
label: 'System',
icon: 'i-lucide-monitor',
value: 'System',
class: 'w-20'
},
{
label: 'Light',
icon: 'i-lucide-sun',
value: 'Light',
class: 'w-20'
},
{
label: 'Dark',
icon: 'i-lucide-moon',
value: 'Dark',
class: 'w-20'
}
])
</script>
<template>
<URadioGroup
indicator="hidden"
orientation="horizontal"
variant="table"
default-value="System"
:items="items"
/>
</template>Uitgeschakeld
Gebruik de disabled prop om de RadioGroup uit te schakelen.
<script setup lang="ts">
const items = ref(['System', 'Light', 'Dark'])
</script>
<template>
<URadioGroup disabled default-value="System" :items="items" />
</template><script setup lang="ts">
import { ref } from 'vue'
const items = ref(['System', 'Light', 'Dark'])
</script>
<template>
<URadioGroup disabled default-value="System" :items="items" />
</template>API
Props
| Prop | Default | Type |
|---|---|---|
as | 'div' | anyThe element or component this component should render as. |
legend | string | |
valueKey | 'value' | VKWhen |
labelKey | 'label' | keyof Extract<NestedItem<T>, object> & string | DotPathKeys<Extract<NestedItem<T>, object>>When |
descriptionKey | 'description' | keyof Extract<NestedItem<T>, object> & string | DotPathKeys<Extract<NestedItem<T>, object>>When |
items | T | |
modelValue | GetItemValue<T, VK, undefined, NestedItem<T>>The controlled value of the RadioGroup. Can be bind as | |
defaultValue | GetItemValue<T, VK, undefined, NestedItem<T>>The value of the RadioGroup when initially rendered. Use when you do not need to control the state of the RadioGroup. | |
size | 'md' | "xs" | "sm" | "md" | "lg" | "xl" |
variant | 'list' | "card" | "list" | "table" |
color | 'primary' | "primary" | "secondary" | "success" | "info" | "warning" | "error" | "neutral" |
highlight | boolean Highlight the ring color like a focus state. | |
orientation | 'vertical' | "horizontal" | "vertical"The orientation the radio buttons are laid out. |
indicator | 'start' | "start" | "end" | "hidden"Position of the indicator. |
disabled | boolean When | |
loop | boolean When | |
name | stringThe name of the field. Submitted with its owning form as part of a name/value pair. | |
required | boolean When | |
ui | { root?: SlotClass; fieldset?: SlotClass; legend?: SlotClass; item?: SlotClass; container?: SlotClass; base?: SlotClass; indicator?: SlotClass; wrapper?: SlotClass; label?: SlotClass; icon?: SlotClass; description?: SlotClass; } |
Slots
| Slot | Type |
|---|---|
legend | {} |
label | { item: Exclude<T[number] & { id: string; }, AcceptableValue>; modelValue: AcceptableValue; } |
description | { item: Exclude<T[number] & { id: string; }, AcceptableValue>; modelValue: AcceptableValue; } |
Uitzendt
| Event | Type |
|---|---|
update:modelValue | [value: GetItemValue<T, VK, undefined, NestedItem<T>>] |
change | [event: Event] |
Thema
export default defineAppConfig({
ui: {
radioGroup: {
slots: {
root: 'relative',
fieldset: 'flex gap-x-2',
legend: 'mb-1 block font-medium text-default',
item: 'flex items-start',
container: 'flex items-center',
base: 'rounded-full ring ring-inset ring-accented overflow-hidden focus-visible:outline-none',
indicator: 'flex items-center justify-center size-full after:bg-default after:rounded-full',
wrapper: 'w-full',
label: 'block font-medium text-default',
icon: 'shrink-0',
description: 'text-muted'
},
variants: {
color: {
primary: {
indicator: 'bg-primary'
},
secondary: {
indicator: 'bg-secondary'
},
success: {
indicator: 'bg-success'
},
info: {
indicator: 'bg-info'
},
warning: {
indicator: 'bg-warning'
},
error: {
indicator: 'bg-error'
},
neutral: {
indicator: 'bg-inverted'
}
},
variant: {
list: {
fieldset: 'flex-wrap',
item: ''
},
card: {
fieldset: 'flex-wrap',
item: [
'border border-default rounded-lg hover:not-has-disabled:not-has-focus-visible:not-has-data-[state=checked]:bg-elevated/50',
'transition-colors'
]
},
table: {
item: [
'border border-default hover:not-has-disabled:not-has-focus-visible:not-has-data-[state=checked]:bg-elevated/50',
'transition-colors'
]
}
},
orientation: {
horizontal: {
fieldset: 'flex-row'
},
vertical: {
fieldset: 'flex-col'
}
},
indicator: {
start: {
item: 'flex-row',
wrapper: 'ms-2'
},
end: {
item: 'flex-row-reverse',
wrapper: 'me-2'
},
hidden: {
base: 'sr-only',
wrapper: 'flex flex-col items-center gap-1 text-center'
}
},
size: {
xs: {
fieldset: 'gap-y-0.5',
legend: 'text-xs',
base: 'size-3',
item: 'text-xs',
container: 'h-4',
indicator: 'after:size-1'
},
sm: {
fieldset: 'gap-y-0.5',
legend: 'text-xs',
base: 'size-3.5',
item: 'text-xs',
container: 'h-4',
indicator: 'after:size-1'
},
md: {
fieldset: 'gap-y-1',
legend: 'text-sm',
base: 'size-4',
item: 'text-sm',
container: 'h-5',
indicator: 'after:size-1.5'
},
lg: {
fieldset: 'gap-y-1',
legend: 'text-sm',
base: 'size-4.5',
item: 'text-sm',
container: 'h-5',
indicator: 'after:size-1.5'
},
xl: {
fieldset: 'gap-y-1.5',
legend: 'text-base',
base: 'size-5',
item: 'text-base',
container: 'h-6',
indicator: 'after:size-2'
}
},
highlight: {
true: '',
false: ''
},
disabled: {
true: {
item: 'opacity-75',
base: 'cursor-not-allowed',
label: 'cursor-not-allowed',
description: 'cursor-not-allowed'
}
},
required: {
true: {
legend: "after:content-['*'] after:ms-0.5 after:text-error"
}
}
},
compoundVariants: [
{
indicator: 'hidden',
class: {
container: 'h-auto'
}
},
{
variant: [
'card',
'table'
],
highlight: false,
class: {
item: 'hover:not-has-disabled:not-has-focus-visible:not-has-data-[state=checked]:border-accented'
}
},
{
size: 'xs',
indicator: 'hidden',
class: {
icon: 'size-3'
}
},
{
size: 'sm',
indicator: 'hidden',
class: {
icon: 'size-3.5'
}
},
{
size: 'md',
indicator: 'hidden',
class: {
icon: 'size-4'
}
},
{
size: 'lg',
indicator: 'hidden',
class: {
icon: 'size-4.5'
}
},
{
size: 'xl',
indicator: 'hidden',
class: {
icon: 'size-5'
}
},
{
size: 'xs',
variant: [
'card',
'table'
],
class: {
item: 'p-2.5'
}
},
{
size: 'sm',
variant: [
'card',
'table'
],
class: {
item: 'p-3'
}
},
{
size: 'md',
variant: [
'card',
'table'
],
class: {
item: 'p-3.5'
}
},
{
size: 'lg',
variant: [
'card',
'table'
],
class: {
item: 'p-4'
}
},
{
size: 'xl',
variant: [
'card',
'table'
],
class: {
item: 'p-4.5'
}
},
{
orientation: 'horizontal',
variant: 'table',
class: {
item: 'first-of-type:rounded-s-lg last-of-type:rounded-e-lg',
fieldset: 'gap-0 -space-x-px'
}
},
{
orientation: 'vertical',
variant: 'table',
class: {
item: 'first-of-type:rounded-t-lg last-of-type:rounded-b-lg',
fieldset: 'gap-0 -space-y-px'
}
},
{
color: 'primary',
variant: 'list',
indicator: [
'start',
'end'
],
class: {
base: 'outline-primary/25 focus-visible:outline-solid focus-visible:outline-3 focus-visible:ring-primary'
}
},
{
color: 'neutral',
variant: 'list',
indicator: [
'start',
'end'
],
class: {
base: 'outline-inverted/25 focus-visible:outline-solid focus-visible:outline-3 focus-visible:ring-inverted'
}
},
{
color: 'primary',
variant: [
'card',
'table'
],
class: {
item: 'outline-primary/25 has-focus-visible:outline-3 not-has-disabled:has-focus-visible:border-primary has-focus-visible:z-[1]'
}
},
{
color: 'neutral',
variant: [
'card',
'table'
],
class: {
item: 'outline-inverted/25 has-focus-visible:outline-3 not-has-disabled:has-focus-visible:border-inverted has-focus-visible:z-[1]'
}
},
{
color: 'primary',
variant: 'list',
indicator: 'hidden',
class: {
item: 'outline-primary/25 has-focus-visible:outline-3 not-has-disabled:has-focus-visible:border-primary has-focus-visible:z-[1]'
}
},
{
color: 'neutral',
variant: 'list',
indicator: 'hidden',
class: {
item: 'outline-inverted/25 has-focus-visible:outline-3 not-has-disabled:has-focus-visible:border-inverted has-focus-visible:z-[1]'
}
},
{
color: 'primary',
variant: 'card',
class: {
item: 'has-data-[state=checked]:border-primary/50 has-data-[state=checked]:bg-primary/10'
}
},
{
color: 'neutral',
variant: 'card',
class: {
item: 'has-data-[state=checked]:border-inverted/50 has-data-[state=checked]:bg-elevated'
}
},
{
color: 'primary',
variant: 'table',
class: {
item: 'has-data-[state=checked]:bg-primary/10 has-data-[state=checked]:border-primary/50 has-data-[state=checked]:z-[1]'
}
},
{
color: 'neutral',
variant: 'table',
class: {
item: 'has-data-[state=checked]:bg-elevated has-data-[state=checked]:border-inverted/50 has-data-[state=checked]:z-[1]'
}
},
{
variant: [
'card',
'table'
],
disabled: true,
class: {
item: 'cursor-not-allowed'
}
},
{
color: 'primary',
indicator: 'hidden',
highlight: true,
class: {
item: 'not-has-disabled:border-primary not-has-disabled:has-data-[state=checked]:border-primary'
}
},
{
color: 'neutral',
indicator: 'hidden',
highlight: true,
class: {
item: 'not-has-disabled:border-inverted not-has-disabled:has-data-[state=checked]:border-inverted'
}
},
{
color: 'primary',
highlight: true,
class: {
base: 'ring-primary'
}
},
{
color: 'neutral',
highlight: true,
class: {
base: 'ring-inverted'
}
}
],
defaultVariants: {
highlight: false,
size: 'md',
color: 'primary',
variant: 'list',
indicator: 'start'
}
}
}
})import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import ui from '@nuxt/ui/vite'
export default defineConfig({
plugins: [
vue(),
ui({
ui: {
radioGroup: {
slots: {
root: 'relative',
fieldset: 'flex gap-x-2',
legend: 'mb-1 block font-medium text-default',
item: 'flex items-start',
container: 'flex items-center',
base: 'rounded-full ring ring-inset ring-accented overflow-hidden focus-visible:outline-none',
indicator: 'flex items-center justify-center size-full after:bg-default after:rounded-full',
wrapper: 'w-full',
label: 'block font-medium text-default',
icon: 'shrink-0',
description: 'text-muted'
},
variants: {
color: {
primary: {
indicator: 'bg-primary'
},
secondary: {
indicator: 'bg-secondary'
},
success: {
indicator: 'bg-success'
},
info: {
indicator: 'bg-info'
},
warning: {
indicator: 'bg-warning'
},
error: {
indicator: 'bg-error'
},
neutral: {
indicator: 'bg-inverted'
}
},
variant: {
list: {
fieldset: 'flex-wrap',
item: ''
},
card: {
fieldset: 'flex-wrap',
item: [
'border border-default rounded-lg hover:not-has-disabled:not-has-focus-visible:not-has-data-[state=checked]:bg-elevated/50',
'transition-colors'
]
},
table: {
item: [
'border border-default hover:not-has-disabled:not-has-focus-visible:not-has-data-[state=checked]:bg-elevated/50',
'transition-colors'
]
}
},
orientation: {
horizontal: {
fieldset: 'flex-row'
},
vertical: {
fieldset: 'flex-col'
}
},
indicator: {
start: {
item: 'flex-row',
wrapper: 'ms-2'
},
end: {
item: 'flex-row-reverse',
wrapper: 'me-2'
},
hidden: {
base: 'sr-only',
wrapper: 'flex flex-col items-center gap-1 text-center'
}
},
size: {
xs: {
fieldset: 'gap-y-0.5',
legend: 'text-xs',
base: 'size-3',
item: 'text-xs',
container: 'h-4',
indicator: 'after:size-1'
},
sm: {
fieldset: 'gap-y-0.5',
legend: 'text-xs',
base: 'size-3.5',
item: 'text-xs',
container: 'h-4',
indicator: 'after:size-1'
},
md: {
fieldset: 'gap-y-1',
legend: 'text-sm',
base: 'size-4',
item: 'text-sm',
container: 'h-5',
indicator: 'after:size-1.5'
},
lg: {
fieldset: 'gap-y-1',
legend: 'text-sm',
base: 'size-4.5',
item: 'text-sm',
container: 'h-5',
indicator: 'after:size-1.5'
},
xl: {
fieldset: 'gap-y-1.5',
legend: 'text-base',
base: 'size-5',
item: 'text-base',
container: 'h-6',
indicator: 'after:size-2'
}
},
highlight: {
true: '',
false: ''
},
disabled: {
true: {
item: 'opacity-75',
base: 'cursor-not-allowed',
label: 'cursor-not-allowed',
description: 'cursor-not-allowed'
}
},
required: {
true: {
legend: "after:content-['*'] after:ms-0.5 after:text-error"
}
}
},
compoundVariants: [
{
indicator: 'hidden',
class: {
container: 'h-auto'
}
},
{
variant: [
'card',
'table'
],
highlight: false,
class: {
item: 'hover:not-has-disabled:not-has-focus-visible:not-has-data-[state=checked]:border-accented'
}
},
{
size: 'xs',
indicator: 'hidden',
class: {
icon: 'size-3'
}
},
{
size: 'sm',
indicator: 'hidden',
class: {
icon: 'size-3.5'
}
},
{
size: 'md',
indicator: 'hidden',
class: {
icon: 'size-4'
}
},
{
size: 'lg',
indicator: 'hidden',
class: {
icon: 'size-4.5'
}
},
{
size: 'xl',
indicator: 'hidden',
class: {
icon: 'size-5'
}
},
{
size: 'xs',
variant: [
'card',
'table'
],
class: {
item: 'p-2.5'
}
},
{
size: 'sm',
variant: [
'card',
'table'
],
class: {
item: 'p-3'
}
},
{
size: 'md',
variant: [
'card',
'table'
],
class: {
item: 'p-3.5'
}
},
{
size: 'lg',
variant: [
'card',
'table'
],
class: {
item: 'p-4'
}
},
{
size: 'xl',
variant: [
'card',
'table'
],
class: {
item: 'p-4.5'
}
},
{
orientation: 'horizontal',
variant: 'table',
class: {
item: 'first-of-type:rounded-s-lg last-of-type:rounded-e-lg',
fieldset: 'gap-0 -space-x-px'
}
},
{
orientation: 'vertical',
variant: 'table',
class: {
item: 'first-of-type:rounded-t-lg last-of-type:rounded-b-lg',
fieldset: 'gap-0 -space-y-px'
}
},
{
color: 'primary',
variant: 'list',
indicator: [
'start',
'end'
],
class: {
base: 'outline-primary/25 focus-visible:outline-solid focus-visible:outline-3 focus-visible:ring-primary'
}
},
{
color: 'neutral',
variant: 'list',
indicator: [
'start',
'end'
],
class: {
base: 'outline-inverted/25 focus-visible:outline-solid focus-visible:outline-3 focus-visible:ring-inverted'
}
},
{
color: 'primary',
variant: [
'card',
'table'
],
class: {
item: 'outline-primary/25 has-focus-visible:outline-3 not-has-disabled:has-focus-visible:border-primary has-focus-visible:z-[1]'
}
},
{
color: 'neutral',
variant: [
'card',
'table'
],
class: {
item: 'outline-inverted/25 has-focus-visible:outline-3 not-has-disabled:has-focus-visible:border-inverted has-focus-visible:z-[1]'
}
},
{
color: 'primary',
variant: 'list',
indicator: 'hidden',
class: {
item: 'outline-primary/25 has-focus-visible:outline-3 not-has-disabled:has-focus-visible:border-primary has-focus-visible:z-[1]'
}
},
{
color: 'neutral',
variant: 'list',
indicator: 'hidden',
class: {
item: 'outline-inverted/25 has-focus-visible:outline-3 not-has-disabled:has-focus-visible:border-inverted has-focus-visible:z-[1]'
}
},
{
color: 'primary',
variant: 'card',
class: {
item: 'has-data-[state=checked]:border-primary/50 has-data-[state=checked]:bg-primary/10'
}
},
{
color: 'neutral',
variant: 'card',
class: {
item: 'has-data-[state=checked]:border-inverted/50 has-data-[state=checked]:bg-elevated'
}
},
{
color: 'primary',
variant: 'table',
class: {
item: 'has-data-[state=checked]:bg-primary/10 has-data-[state=checked]:border-primary/50 has-data-[state=checked]:z-[1]'
}
},
{
color: 'neutral',
variant: 'table',
class: {
item: 'has-data-[state=checked]:bg-elevated has-data-[state=checked]:border-inverted/50 has-data-[state=checked]:z-[1]'
}
},
{
variant: [
'card',
'table'
],
disabled: true,
class: {
item: 'cursor-not-allowed'
}
},
{
color: 'primary',
indicator: 'hidden',
highlight: true,
class: {
item: 'not-has-disabled:border-primary not-has-disabled:has-data-[state=checked]:border-primary'
}
},
{
color: 'neutral',
indicator: 'hidden',
highlight: true,
class: {
item: 'not-has-disabled:border-inverted not-has-disabled:has-data-[state=checked]:border-inverted'
}
},
{
color: 'primary',
highlight: true,
class: {
base: 'ring-primary'
}
},
{
color: 'neutral',
highlight: true,
class: {
base: 'ring-inverted'
}
}
],
defaultVariants: {
highlight: false,
size: 'md',
color: 'primary',
variant: 'list',
indicator: 'start'
}
}
}
})
]
})