{
  "version": 3,
  "sources": ["../../../../../../src/lib/ui/components/primitives/menus/TldrawUiMenuSubmenu.tsx"],
  "sourcesContent": ["import {\n\tContextMenuPortal,\n\tContextMenuSub,\n\tContextMenuSubContent,\n\tContextMenuSubTrigger,\n} from '@radix-ui/react-context-menu'\nimport { useContainer } from '@tldraw/editor'\nimport { ReactNode } from 'react'\nimport { useMenuIsOpen } from '../../../hooks/useMenuIsOpen'\nimport { TLUiTranslationKey } from '../../../hooks/useTranslation/TLUiTranslationKey'\nimport { useTranslation } from '../../../hooks/useTranslation/useTranslation'\nimport { TldrawUiButton } from '../Button/TldrawUiButton'\nimport { TldrawUiButtonIcon } from '../Button/TldrawUiButtonIcon'\nimport { TldrawUiButtonLabel } from '../Button/TldrawUiButtonLabel'\nimport {\n\tTldrawUiDropdownMenuSub,\n\tTldrawUiDropdownMenuSubContent,\n\tTldrawUiDropdownMenuSubTrigger,\n} from '../TldrawUiDropdownMenu'\nimport { useTldrawUiMenuContext } from './TldrawUiMenuContext'\n\n/** @public */\nexport interface TLUiMenuSubmenuProps<Translation extends string = string> {\n\tid: string\n\tlabel?: Translation | { [key: string]: Translation }\n\tdisabled?: boolean\n\tchildren: ReactNode\n\tsize?: 'tiny' | 'small' | 'medium' | 'wide'\n}\n\n/** @public @react */\nexport function TldrawUiMenuSubmenu<Translation extends string = string>({\n\tid,\n\tdisabled = false,\n\tlabel,\n\tsize = 'small',\n\tchildren,\n}: TLUiMenuSubmenuProps<Translation>) {\n\tconst { type: menuType, sourceId } = useTldrawUiMenuContext()\n\tconst container = useContainer()\n\tconst msg = useTranslation()\n\tconst labelToUse = label\n\t\t? typeof label === 'string'\n\t\t\t? label\n\t\t\t: label[menuType] ?? label['default']\n\t\t: undefined\n\tconst labelStr = labelToUse ? msg(labelToUse as TLUiTranslationKey) : undefined\n\n\tswitch (menuType) {\n\t\tcase 'menu': {\n\t\t\treturn (\n\t\t\t\t<TldrawUiDropdownMenuSub id={`${sourceId}-sub.${id}`}>\n\t\t\t\t\t<TldrawUiDropdownMenuSubTrigger\n\t\t\t\t\t\tid={`${sourceId}-sub.${id}-button`}\n\t\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\t\tlabel={labelStr!}\n\t\t\t\t\t\ttitle={labelStr!}\n\t\t\t\t\t/>\n\t\t\t\t\t<TldrawUiDropdownMenuSubContent id={`${sourceId}-sub.${id}-content`} size={size}>\n\t\t\t\t\t\t{children}\n\t\t\t\t\t</TldrawUiDropdownMenuSubContent>\n\t\t\t\t</TldrawUiDropdownMenuSub>\n\t\t\t)\n\t\t}\n\t\tcase 'context-menu': {\n\t\t\tif (disabled) return null\n\n\t\t\treturn (\n\t\t\t\t<ContextMenuSubWithMenu id={`${sourceId}-sub.${id}`}>\n\t\t\t\t\t<ContextMenuSubTrigger dir=\"ltr\" disabled={disabled} asChild>\n\t\t\t\t\t\t<TldrawUiButton\n\t\t\t\t\t\t\tdata-testid={`${sourceId}-sub.${id}-button`}\n\t\t\t\t\t\t\ttype=\"menu\"\n\t\t\t\t\t\t\tclassName=\"tlui-menu__submenu__trigger\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<TldrawUiButtonLabel>{labelStr}</TldrawUiButtonLabel>\n\t\t\t\t\t\t\t<TldrawUiButtonIcon icon=\"chevron-right\" small />\n\t\t\t\t\t\t</TldrawUiButton>\n\t\t\t\t\t</ContextMenuSubTrigger>\n\t\t\t\t\t<ContextMenuPortal container={container}>\n\t\t\t\t\t\t<ContextMenuSubContent\n\t\t\t\t\t\t\tdata-testid={`${sourceId}-sub.${id}-content`}\n\t\t\t\t\t\t\tclassName=\"tlui-menu tlui-menu__submenu__content\"\n\t\t\t\t\t\t\talignOffset={-1}\n\t\t\t\t\t\t\tsideOffset={-4}\n\t\t\t\t\t\t\tcollisionPadding={4}\n\t\t\t\t\t\t\tdata-size={size}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{children}\n\t\t\t\t\t\t</ContextMenuSubContent>\n\t\t\t\t\t</ContextMenuPortal>\n\t\t\t\t</ContextMenuSubWithMenu>\n\t\t\t)\n\t\t}\n\t\tdefault: {\n\t\t\t// no submenus in actions\n\t\t\treturn children\n\t\t}\n\t}\n}\n\n/** @private */\nexport interface TLUiContextMenuSubProps {\n\tid: string\n\tchildren: ReactNode\n}\n\n/** @private */\nexport function ContextMenuSubWithMenu({ id, children }: TLUiContextMenuSubProps) {\n\tconst [open, onOpenChange] = useMenuIsOpen(id)\n\n\treturn (\n\t\t<ContextMenuSub open={open} onOpenChange={onOpenChange}>\n\t\t\t{children}\n\t\t</ContextMenuSub>\n\t)\n}\n"],
  "mappings": "AAmDI,SACC,KADD;AAnDJ;AAAA,EACC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACM;AACP,SAAS,oBAAoB;AAE7B,SAAS,qBAAqB;AAE9B,SAAS,sBAAsB;AAC/B,SAAS,sBAAsB;AAC/B,SAAS,0BAA0B;AACnC,SAAS,2BAA2B;AACpC;AAAA,EACC;AAAA,EACA;AAAA,EACA;AAAA,OACM;AACP,SAAS,8BAA8B;AAYhC,SAAS,oBAAyD;AAAA,EACxE;AAAA,EACA,WAAW;AAAA,EACX;AAAA,EACA,OAAO;AAAA,EACP;AACD,GAAsC;AACrC,QAAM,EAAE,MAAM,UAAU,SAAS,IAAI,uBAAuB;AAC5D,QAAM,YAAY,aAAa;AAC/B,QAAM,MAAM,eAAe;AAC3B,QAAM,aAAa,QAChB,OAAO,UAAU,WAChB,QACA,MAAM,QAAQ,KAAK,MAAM,SAAS,IACnC;AACH,QAAM,WAAW,aAAa,IAAI,UAAgC,IAAI;AAEtE,UAAQ,UAAU;AAAA,IACjB,KAAK,QAAQ;AACZ,aACC,qBAAC,2BAAwB,IAAI,GAAG,QAAQ,QAAQ,EAAE,IACjD;AAAA;AAAA,UAAC;AAAA;AAAA,YACA,IAAI,GAAG,QAAQ,QAAQ,EAAE;AAAA,YACzB;AAAA,YACA,OAAO;AAAA,YACP,OAAO;AAAA;AAAA,QACR;AAAA,QACA,oBAAC,kCAA+B,IAAI,GAAG,QAAQ,QAAQ,EAAE,YAAY,MACnE,UACF;AAAA,SACD;AAAA,IAEF;AAAA,IACA,KAAK,gBAAgB;AACpB,UAAI,SAAU,QAAO;AAErB,aACC,qBAAC,0BAAuB,IAAI,GAAG,QAAQ,QAAQ,EAAE,IAChD;AAAA,4BAAC,yBAAsB,KAAI,OAAM,UAAoB,SAAO,MAC3D;AAAA,UAAC;AAAA;AAAA,YACA,eAAa,GAAG,QAAQ,QAAQ,EAAE;AAAA,YAClC,MAAK;AAAA,YACL,WAAU;AAAA,YAEV;AAAA,kCAAC,uBAAqB,oBAAS;AAAA,cAC/B,oBAAC,sBAAmB,MAAK,iBAAgB,OAAK,MAAC;AAAA;AAAA;AAAA,QAChD,GACD;AAAA,QACA,oBAAC,qBAAkB,WAClB;AAAA,UAAC;AAAA;AAAA,YACA,eAAa,GAAG,QAAQ,QAAQ,EAAE;AAAA,YAClC,WAAU;AAAA,YACV,aAAa;AAAA,YACb,YAAY;AAAA,YACZ,kBAAkB;AAAA,YAClB,aAAW;AAAA,YAEV;AAAA;AAAA,QACF,GACD;AAAA,SACD;AAAA,IAEF;AAAA,IACA,SAAS;AAER,aAAO;AAAA,IACR;AAAA,EACD;AACD;AASO,SAAS,uBAAuB,EAAE,IAAI,SAAS,GAA4B;AACjF,QAAM,CAAC,MAAM,YAAY,IAAI,cAAc,EAAE;AAE7C,SACC,oBAAC,kBAAe,MAAY,cAC1B,UACF;AAEF;",
  "names": []
}
