Ви не можете вибрати більше 25 тем Теми мають розпочинатися з літери або цифри, можуть містити дефіси (-) і не повинні перевищувати 35 символів.

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. import * as React from 'react'
  2. import { Content } from '@radix-ui/react-dropdown-menu'
  3. import { styled } from '~styles/stitches.config'
  4. import { MenuContent } from '~components/MenuContent'
  5. export interface DMContentProps {
  6. variant?: 'grid' | 'menu' | 'horizontal'
  7. align?: 'start' | 'center' | 'end'
  8. children: React.ReactNode
  9. }
  10. const preventDefault = (e: Event) => e.stopPropagation()
  11. export function DMContent({ children, align, variant }: DMContentProps): JSX.Element {
  12. return (
  13. <Content sideOffset={8} dir="ltr" asChild align={align} onEscapeKeyDown={preventDefault}>
  14. <StyledContent variant={variant}>{children}</StyledContent>
  15. </Content>
  16. )
  17. }
  18. export const StyledContent = styled(MenuContent, {
  19. width: 'fit-content',
  20. height: 'fit-content',
  21. minWidth: 0,
  22. variants: {
  23. variant: {
  24. grid: {
  25. display: 'grid',
  26. gridTemplateColumns: 'repeat(4, auto)',
  27. gap: 0,
  28. },
  29. horizontal: {
  30. flexDirection: 'row',
  31. },
  32. menu: {
  33. minWidth: 128,
  34. },
  35. },
  36. },
  37. })