Skip to content

Commit

Permalink
feat: expose more slotProps (#915)
Browse files Browse the repository at this point in the history
* fix(Progress): indeterminate state is wrong  when value is 0 (#911)

* fix(Select): make `null` to showPlaceholder (#912)

* feat: expost slotProps to all useVModel state

* docs: codegen

* chore: make sure boolean state is correct
  • Loading branch information
zernonia committed May 13, 2024
1 parent 6f55576 commit f0bd36b
Show file tree
Hide file tree
Showing 46 changed files with 374 additions and 32 deletions.
8 changes: 8 additions & 0 deletions docs/content/meta/CheckboxRoot.md
Original file line number Diff line number Diff line change
Expand Up @@ -66,3 +66,11 @@
'type': '[value: boolean]'
}
]" />

<SlotsTable :data="[
{
'name': 'checked',
'description': '<p>Current checked state</p>\n',
'type': 'false | true | \'indeterminate\''
}
]" />
8 changes: 8 additions & 0 deletions docs/content/meta/ContextMenuSub.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,3 +22,11 @@
'type': '[payload: boolean]'
}
]" />

<SlotsTable :data="[
{
'name': 'open',
'description': '<p>Current open state</p>\n',
'type': 'boolean'
}
]" />
8 changes: 8 additions & 0 deletions docs/content/meta/DialogRoot.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,3 +30,11 @@
'type': '[value: boolean]'
}
]" />

<SlotsTable :data="[
{
'name': 'open',
'description': '<p>Current open state</p>\n',
'type': 'boolean'
}
]" />
8 changes: 8 additions & 0 deletions docs/content/meta/DropdownMenuRoot.md
Original file line number Diff line number Diff line change
Expand Up @@ -35,3 +35,11 @@
'type': '[payload: boolean]'
}
]" />

<SlotsTable :data="[
{
'name': 'open',
'description': '<p>Current open state</p>\n',
'type': 'boolean'
}
]" />
8 changes: 8 additions & 0 deletions docs/content/meta/DropdownMenuSub.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,3 +22,11 @@
'type': '[payload: boolean]'
}
]" />

<SlotsTable :data="[
{
'name': 'open',
'description': '<p>Current open state</p>\n',
'type': 'boolean'
}
]" />
8 changes: 8 additions & 0 deletions docs/content/meta/HoverCardRoot.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,3 +37,11 @@
'type': '[value: boolean]'
}
]" />

<SlotsTable :data="[
{
'name': 'open',
'description': '<p>Current open state</p>\n',
'type': 'boolean'
}
]" />
8 changes: 8 additions & 0 deletions docs/content/meta/ListboxFilter.md
Original file line number Diff line number Diff line change
Expand Up @@ -35,3 +35,11 @@
'type': '[string]'
}
]" />

<SlotsTable :data="[
{
'name': 'modelValue',
'description': '<p>Current input values</p>\n',
'type': 'string | undefined'
}
]" />
8 changes: 8 additions & 0 deletions docs/content/meta/MenubarRoot.md
Original file line number Diff line number Diff line change
Expand Up @@ -35,3 +35,11 @@
'type': '[value: boolean]'
}
]" />

<SlotsTable :data="[
{
'name': 'modelValue',
'description': '<p>Current input values</p>\n',
'type': 'string'
}
]" />
8 changes: 8 additions & 0 deletions docs/content/meta/MenubarSub.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,3 +22,11 @@
'type': '[payload: boolean]'
}
]" />

<SlotsTable :data="[
{
'name': 'open',
'description': '<p>Current open state</p>\n',
'type': 'boolean'
}
]" />
8 changes: 8 additions & 0 deletions docs/content/meta/NavigationMenuRoot.md
Original file line number Diff line number Diff line change
Expand Up @@ -76,3 +76,11 @@
'type': '[value: string]'
}
]" />

<SlotsTable :data="[
{
'name': 'modelValue',
'description': '<p>Current input values</p>\n',
'type': 'string'
}
]" />
8 changes: 8 additions & 0 deletions docs/content/meta/NavigationMenuSub.md
Original file line number Diff line number Diff line change
Expand Up @@ -42,3 +42,11 @@
'type': '[value: string]'
}
]" />

<SlotsTable :data="[
{
'name': 'modelValue',
'description': '<p>Current input values</p>\n',
'type': 'string'
}
]" />
8 changes: 8 additions & 0 deletions docs/content/meta/PopoverRoot.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,3 +30,11 @@
'type': '[value: boolean]'
}
]" />

<SlotsTable :data="[
{
'name': 'open',
'description': '<p>Current open state</p>\n',
'type': 'boolean'
}
]" />
8 changes: 8 additions & 0 deletions docs/content/meta/ProgressRoot.md
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,14 @@
}
]" />

<SlotsTable :data="[
{
'name': 'modelValue',
'description': '<p>Current input values</p>\n',
'type': 'number | null | undefined'
}
]" />

<MethodsTable :data="[
{
'name': 'getValueLabel',
Expand Down
8 changes: 8 additions & 0 deletions docs/content/meta/RadioGroupRoot.md
Original file line number Diff line number Diff line change
Expand Up @@ -74,3 +74,11 @@
'type': '[payload: string]'
}
]" />

<SlotsTable :data="[
{
'name': 'modelValue',
'description': '<p>Current input values</p>\n',
'type': 'string | undefined'
}
]" />
13 changes: 13 additions & 0 deletions docs/content/meta/SelectRoot.md
Original file line number Diff line number Diff line change
Expand Up @@ -70,3 +70,16 @@
'type': '[value: boolean]'
}
]" />

<SlotsTable :data="[
{
'name': 'modelValue',
'description': '<p>Current input values</p>\n',
'type': 'string'
},
{
'name': 'open',
'description': '<p>Current open state</p>\n',
'type': 'boolean'
}
]" />
8 changes: 8 additions & 0 deletions docs/content/meta/SwitchRoot.md
Original file line number Diff line number Diff line change
Expand Up @@ -66,3 +66,11 @@
'type': '[payload: boolean]'
}
]" />

<SlotsTable :data="[
{
'name': 'checked',
'description': '<p>Current checked state</p>\n',
'type': 'boolean'
}
]" />
8 changes: 8 additions & 0 deletions docs/content/meta/TabsRoot.md
Original file line number Diff line number Diff line change
Expand Up @@ -55,3 +55,11 @@
'type': '[payload: StringOrNumber]'
}
]" />

<SlotsTable :data="[
{
'name': 'modelValue',
'description': '<p>Current input values</p>\n',
'type': 'string | number'
}
]" />
5 changes: 5 additions & 0 deletions docs/content/meta/ToastRoot.md
Original file line number Diff line number Diff line change
Expand Up @@ -92,6 +92,11 @@
]" />

<SlotsTable :data="[
{
'name': 'open',
'description': '<p>Current open state</p>\n',
'type': 'boolean'
},
{
'name': 'remaining',
'description': '<p>Remaining time (in ms)</p>\n',
Expand Down
8 changes: 8 additions & 0 deletions docs/content/meta/Toggle.md
Original file line number Diff line number Diff line change
Expand Up @@ -42,3 +42,11 @@
'type': '[value: boolean]'
}
]" />

<SlotsTable :data="[
{
'name': 'pressed',
'description': '<p>Current pressed state</p>\n',
'type': 'boolean'
}
]" />
8 changes: 8 additions & 0 deletions docs/content/meta/TooltipRoot.md
Original file line number Diff line number Diff line change
Expand Up @@ -53,3 +53,11 @@
'type': '[value: boolean]'
}
]" />

<SlotsTable :data="[
{
'name': 'open',
'description': '<p>Current open state</p>\n',
'type': 'boolean'
}
]" />
10 changes: 9 additions & 1 deletion packages/radix-vue/src/Checkbox/CheckboxRoot.vue
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,14 @@ const props = withDefaults(defineProps<CheckboxRootProps>(), {
as: 'button',
})
const emits = defineEmits<CheckboxRootEmits>()
defineSlots<{
default(props: {
/** Current checked state */
checked: typeof checked.value
}): any
}>()
const { disabled } = toRefs(props)
const checked = useVModel(props, 'checked', emits, {
Expand Down Expand Up @@ -92,7 +100,7 @@ provideCheckboxRootContext({
}"
@click="checked = isIndeterminate(checked) ? true : !checked"
>
<slot />
<slot :checked="checked" />
</Primitive>

<input
Expand Down
12 changes: 10 additions & 2 deletions packages/radix-vue/src/ContextMenu/ContextMenuSub.vue
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
<script lang="ts">
import type { MenuSubEmits, MenuSubProps } from '@/Menu'
import type { Ref } from 'vue'
export type ContextMenuSubEmits = MenuSubEmits
export interface ContextMenuSubProps extends MenuSubProps {
Expand All @@ -18,16 +19,23 @@ const props = withDefaults(defineProps<ContextMenuSubProps>(), {
})
const emit = defineEmits<ContextMenuSubEmits>()
defineSlots<{
default(props: {
/** Current open state */
open: typeof open.value
}): any
}>()
useForwardExpose()
const open = useVModel(props, 'open', emit, {
defaultValue: props.defaultOpen,
passive: (props.open === undefined) as false,
})
}) as Ref<boolean>
</script>

<template>
<MenuSub v-model:open="open">
<slot />
<slot :open="open" />
</MenuSub>
</template>
9 changes: 8 additions & 1 deletion packages/radix-vue/src/Dialog/DialogRoot.vue
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,13 @@ const props = withDefaults(defineProps<DialogRootProps>(), {
})
const emit = defineEmits<DialogRootEmits>()
defineSlots<{
default(props: {
/** Current open state */
open: typeof open.value
}): any
}>()
const open = useVModel(props, 'open', emit, {
defaultValue: props.defaultOpen,
passive: (props.open === undefined) as false,
Expand Down Expand Up @@ -75,5 +82,5 @@ provideDialogRootContext({
</script>

<template>
<slot />
<slot :open="open" />
</template>
9 changes: 8 additions & 1 deletion packages/radix-vue/src/DropdownMenu/DropdownMenuRoot.vue
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,13 @@ const props = withDefaults(defineProps<DropdownMenuRootProps>(), {
})
const emit = defineEmits<DropdownMenuRootEmits>()
defineSlots<{
default(props: {
/** Current open state */
open: typeof open.value
}): any
}>()
useForwardExpose()
const open = useVModel(props, 'open', emit, {
defaultValue: props.defaultOpen,
Expand Down Expand Up @@ -64,6 +71,6 @@ provideDropdownMenuRootContext({

<template>
<MenuRoot v-model:open="open" :dir="dir" :modal="modal">
<slot />
<slot :open="open" />
</MenuRoot>
</template>
12 changes: 10 additions & 2 deletions packages/radix-vue/src/DropdownMenu/DropdownMenuSub.vue
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
<script lang="ts">
import type { MenuSubEmits, MenuSubProps } from '@/Menu'
import type { Ref } from 'vue'
export type DropdownMenuSubEmits = MenuSubEmits
export interface DropdownMenuSubProps extends MenuSubProps {
Expand All @@ -18,16 +19,23 @@ const props = withDefaults(defineProps<DropdownMenuSubProps>(), {
})
const emit = defineEmits<DropdownMenuSubEmits>()
defineSlots<{
default(props: {
/** Current open state */
open: typeof open.value
}): any
}>()
const open = useVModel(props, 'open', emit, {
passive: (props.open === undefined) as false,
defaultValue: props.defaultOpen ?? false,
})
}) as Ref<boolean>
useForwardExpose()
</script>

<template>
<MenuSub v-model:open="open">
<slot />
<slot :open="open" />
</MenuSub>
</template>

0 comments on commit f0bd36b

Please sign in to comment.