import type { DropdownMenuCheckboxItemProps, DropdownMenuContentProps, DropdownMenuGroupLabelProps, DropdownMenuItemLabelProps, DropdownMenuItemProps, DropdownMenuRadioItemProps, DropdownMenuRootProps, DropdownMenuSeparatorProps, DropdownMenuSubTriggerProps, } from '@kobalte/core/dropdown-menu'; import type { PolymorphicProps } from '@kobalte/core/polymorphic'; import type { ComponentProps, ParentProps, ValidComponent } from 'solid-js'; import { cn } from '@/modules/ui/utils/cn'; import { DropdownMenu as DropdownMenuPrimitive } from '@kobalte/core/dropdown-menu'; import { mergeProps, splitProps } from 'solid-js'; export const DropdownMenuTrigger = DropdownMenuPrimitive.Trigger; export const DropdownMenuGroup = DropdownMenuPrimitive.Group; export const DropdownMenuSub = DropdownMenuPrimitive.Sub; export const DropdownMenuRadioGroup = DropdownMenuPrimitive.RadioGroup; export function DropdownMenu(props: DropdownMenuRootProps) { const merge = mergeProps({ gutter: 4 }, props); return ; } type dropdownMenuContentProps = DropdownMenuContentProps & { class?: string; }; export function DropdownMenuContent(props: PolymorphicProps>) { const [local, rest] = splitProps(props as dropdownMenuContentProps, [ 'class', ]); return ( ); } type dropdownMenuItemProps = DropdownMenuItemProps & { class?: string; inset?: boolean; }; export function DropdownMenuItem(props: PolymorphicProps>) { const [local, rest] = splitProps(props as dropdownMenuItemProps, [ 'class', 'inset', ]); return ( ); } type dropdownMenuGroupLabelProps = DropdownMenuGroupLabelProps & { class?: string; }; export function DropdownMenuGroupLabel(props: PolymorphicProps>) { const [local, rest] = splitProps(props as dropdownMenuGroupLabelProps, [ 'class', ]); return ( ); } type dropdownMenuItemLabelProps = DropdownMenuItemLabelProps & { class?: string; }; export function DropdownMenuItemLabel(props: PolymorphicProps>) { const [local, rest] = splitProps(props as dropdownMenuItemLabelProps, [ 'class', ]); return ( ); } type dropdownMenuSeparatorProps = DropdownMenuSeparatorProps & { class?: string; }; export function DropdownMenuSeparator(props: PolymorphicProps>) { const [local, rest] = splitProps(props as dropdownMenuSeparatorProps, [ 'class', ]); return ( ); } export function DropdownMenuShortcut(props: ComponentProps<'span'>) { const [local, rest] = splitProps(props, ['class']); return ( ); } type dropdownMenuSubTriggerProps = ParentProps & { class?: string }>; export function DropdownMenuSubTrigger(props: PolymorphicProps>) { const [local, rest] = splitProps(props as dropdownMenuSubTriggerProps, [ 'class', 'children', ]); return ( {local.children} Arrow ); } type dropdownMenuSubContentProps = DropdownMenuSubTriggerProps & { class?: string; }; export function DropdownMenuSubContent(props: PolymorphicProps>) { const [local, rest] = splitProps(props as dropdownMenuSubContentProps, [ 'class', ]); return ( ); } type dropdownMenuCheckboxItemProps = ParentProps & { class?: string }>; export function DropdownMenuCheckboxItem(props: PolymorphicProps>) { const [local, rest] = splitProps(props as dropdownMenuCheckboxItemProps, [ 'class', 'children', ]); return ( Checkbox {props.children} ); } type dropdownMenuRadioItemProps = ParentProps< DropdownMenuRadioItemProps & { class?: string; } >; export function DropdownMenuRadioItem(props: PolymorphicProps>) { const [local, rest] = splitProps(props as dropdownMenuRadioItemProps, [ 'class', 'children', ]); return ( Radio {props.children} ); }