import { DropdownMenu } from "@kobalte/core/dropdown-menu" import { ContextMenu } from "@kobalte/core/context-menu" import { Show, splitProps, type Component, type ComponentProps, type JSX, type ParentProps } from "solid-js" import "./menu-v2.css" const ChevronRight: Component = () => ( ) const CheckMark: Component = () => ( ) function ItemBody( props: ParentProps<{ shortcut?: JSX.Element | string badge?: JSX.Element | string trailing?: JSX.Element }>, ) { return ( <> {props.children} {(shortcut) => {shortcut()}} {(badge) => {badge()}} {props.trailing} ) } export interface MenuV2ItemProps extends ComponentProps { shortcut?: JSX.Element | string badge?: JSX.Element | string } function MenuV2Item(props: ParentProps) { const [s, r] = splitProps(props, ["class", "classList", "children", "shortcut", "badge"]) return ( {s.children} ) } export interface MenuV2CheckboxItemProps extends ComponentProps { shortcut?: JSX.Element | string badge?: JSX.Element | string } function MenuV2CheckboxItem(props: ParentProps) { const [s, r] = splitProps(props, ["class", "classList", "children", "shortcut", "badge"]) return ( } > {s.children} ) } export interface MenuV2RadioItemProps extends ComponentProps { shortcut?: JSX.Element | string badge?: JSX.Element | string } function MenuV2RadioItem(props: ParentProps) { const [s, r] = splitProps(props, ["class", "classList", "children", "shortcut", "badge"]) return ( } > {s.children} ) } export interface MenuV2SubTriggerProps extends ComponentProps { shortcut?: JSX.Element | string badge?: JSX.Element | string } function MenuV2SubTrigger(props: ParentProps) { const [s, r] = splitProps(props, ["class", "classList", "children", "shortcut", "badge"]) return ( }> {s.children} ) } function MenuV2SubContent(props: ComponentProps) { const [s, r] = splitProps(props, ["class", "classList"]) return ( ) } function MenuV2GroupLabel(props: ComponentProps) { const [s, r] = splitProps(props, ["class", "classList"]) return ( ) } function MenuV2Separator(props: ComponentProps) { const [s, r] = splitProps(props, ["class", "classList"]) return ( ) } function MenuV2Content(props: ComponentProps) { const [s, r] = splitProps(props, ["class", "classList"]) return ( ) } function MenuV2Root(props: ComponentProps) { return } function MenuV2ContextRoot(props: ComponentProps) { return } function MenuV2ContextContent(props: ComponentProps) { const [s, r] = splitProps(props, ["class", "classList"]) return ( ) } const MenuV2Context = Object.assign(MenuV2ContextRoot, { Trigger: ContextMenu.Trigger, Portal: ContextMenu.Portal, Content: MenuV2ContextContent, }) export const MenuV2 = Object.assign(MenuV2Root, { Trigger: DropdownMenu.Trigger, Portal: DropdownMenu.Portal, Content: MenuV2Content, Item: MenuV2Item, CheckboxItem: MenuV2CheckboxItem, RadioGroup: DropdownMenu.RadioGroup, RadioItem: MenuV2RadioItem, Group: DropdownMenu.Group, GroupLabel: MenuV2GroupLabel, Separator: MenuV2Separator, Sub: DropdownMenu.Sub, SubTrigger: MenuV2SubTrigger, SubContent: MenuV2SubContent, Context: MenuV2Context, })