{"version":3,"file":"Box.cjs","sources":["../../../../../src/components/Layout/Box/Box.tsx"],"sourcesContent":["import { css, cx } from '@emotion/css';\nimport { Property } from 'csstype';\nimport { ElementType, forwardRef, PropsWithChildren } from 'react';\nimport * as React from 'react';\n\nimport { GrafanaTheme2, ThemeSpacingTokens, ThemeShape, ThemeShadows } from '@grafana/data';\n\nimport { useStyles2 } from '../../../themes/ThemeContext';\nimport { AlignItems, Direction, FlexProps, JustifyContent } from '../types';\nimport { ResponsiveProp, getResponsiveStyle } from '../utils/responsiveness';\nimport { getSizeStyles, SizeProps } from '../utils/styles';\n\ntype Display = 'flex' | 'block' | 'inline' | 'inline-block' | 'none';\nexport type BackgroundColor = keyof GrafanaTheme2['colors']['background'] | 'error' | 'success' | 'warning' | 'info';\nexport type BorderStyle = 'solid' | 'dashed';\nexport type BorderColor = keyof GrafanaTheme2['colors']['border'] | 'error' | 'success' | 'warning' | 'info';\nexport type BorderRadius = keyof ThemeShape['radius'];\nexport type BoxShadow = keyof ThemeShadows;\n\nexport interface BoxProps extends FlexProps, SizeProps, Omit<React.HTMLAttributes<HTMLElement>, 'className' | 'style'> {\n  // Margin props\n  /** Sets the property `margin` */\n  margin?: ResponsiveProp<ThemeSpacingTokens>;\n  /** Sets the properties `margin-top` and `margin-bottom`. Higher priority than margin. */\n  marginX?: ResponsiveProp<ThemeSpacingTokens>;\n  /** Sets the properties `margin-left` and `margin-right`. Higher priority than margin. */\n  marginY?: ResponsiveProp<ThemeSpacingTokens>;\n  /** Sets the property `margin-top`. Higher priority than margin and marginY. */\n  marginTop?: ResponsiveProp<ThemeSpacingTokens>;\n  /** Sets the property `margin-bottom`. Higher priority than margin and marginXY */\n  marginBottom?: ResponsiveProp<ThemeSpacingTokens>;\n  /** Sets the property `margin-left`. Higher priority than margin and marginX. */\n  marginLeft?: ResponsiveProp<ThemeSpacingTokens>;\n  /** Sets the property `margin-right`. Higher priority than margin and marginX. */\n  marginRight?: ResponsiveProp<ThemeSpacingTokens>;\n\n  // Padding props\n  /** Sets the property `padding` */\n  padding?: ResponsiveProp<ThemeSpacingTokens>;\n  /** Sets the properties `padding-top` and `padding-bottom`. Higher priority than padding. */\n  paddingX?: ResponsiveProp<ThemeSpacingTokens>;\n  /** Sets the properties `padding-left` and `padding-right`. Higher priority than padding. */\n  paddingY?: ResponsiveProp<ThemeSpacingTokens>;\n  /** Sets the property `padding-top`. Higher priority than padding and paddingY. */\n  paddingTop?: ResponsiveProp<ThemeSpacingTokens>;\n  /** Sets the property `padding-bottom`. Higher priority than padding and paddingY. */\n  paddingBottom?: ResponsiveProp<ThemeSpacingTokens>;\n  /** Sets the property `padding-left`. Higher priority than padding and paddingX. */\n  paddingLeft?: ResponsiveProp<ThemeSpacingTokens>;\n  /** Sets the property `padding-right`. Higher priority than padding and paddingX. */\n  paddingRight?: ResponsiveProp<ThemeSpacingTokens>;\n\n  // Border Props\n  borderStyle?: ResponsiveProp<BorderStyle>;\n  borderColor?: ResponsiveProp<BorderColor>;\n  borderRadius?: ResponsiveProp<BorderRadius>;\n\n  // Flex Props\n  alignItems?: ResponsiveProp<AlignItems>;\n  direction?: ResponsiveProp<Direction>;\n  justifyContent?: ResponsiveProp<JustifyContent>;\n  gap?: ResponsiveProp<ThemeSpacingTokens>;\n\n  // Other props\n  backgroundColor?: ResponsiveProp<BackgroundColor>;\n  display?: ResponsiveProp<Display>;\n  boxShadow?: ResponsiveProp<BoxShadow>;\n  /** Sets the HTML element that will be rendered as a Box. Defaults to 'div' */\n  element?: ElementType;\n  position?: ResponsiveProp<Property.Position>;\n}\n\n/**\n * The Box Component is the most basic layout component. It can be used to build more complex components and layouts with properties that use our design tokens instead of using CSS.\n *\n * https://developers.grafana.com/ui/latest/index.html?path=/docs/layout-box--docs\n */\nexport const Box = forwardRef<HTMLElement, PropsWithChildren<BoxProps>>((props, ref) => {\n  const {\n    children,\n    margin,\n    marginX,\n    marginY,\n    marginTop,\n    marginBottom,\n    marginLeft,\n    marginRight,\n    padding,\n    paddingX,\n    paddingY,\n    paddingTop,\n    paddingBottom,\n    paddingLeft,\n    paddingRight,\n    display,\n    backgroundColor,\n    grow,\n    shrink,\n    basis,\n    flex,\n    borderColor,\n    borderStyle,\n    borderRadius,\n    direction,\n    justifyContent,\n    alignItems,\n    boxShadow,\n    element,\n    gap,\n    width,\n    minWidth,\n    maxWidth,\n    height,\n    minHeight,\n    maxHeight,\n    position,\n    ...rest\n  } = props;\n  const styles = useStyles2(\n    getStyles,\n    margin,\n    marginX,\n    marginY,\n    marginTop,\n    marginBottom,\n    marginLeft,\n    marginRight,\n    padding,\n    paddingX,\n    paddingY,\n    paddingTop,\n    paddingBottom,\n    paddingLeft,\n    paddingRight,\n    display,\n    backgroundColor,\n    grow,\n    shrink,\n    basis,\n    flex,\n    borderColor,\n    borderStyle,\n    borderRadius,\n    direction,\n    justifyContent,\n    alignItems,\n    boxShadow,\n    gap,\n    position\n  );\n  const sizeStyles = useStyles2(getSizeStyles, width, minWidth, maxWidth, height, minHeight, maxHeight);\n  const Element = element ?? 'div';\n\n  return (\n    <Element ref={ref} className={cx(styles.root, sizeStyles)} {...rest}>\n      {children}\n    </Element>\n  );\n});\n\nBox.displayName = 'Box';\n\nconst customBorderColor = (color: BorderColor, theme: GrafanaTheme2) => {\n  switch (color) {\n    case 'error':\n    case 'success':\n    case 'info':\n    case 'warning':\n      return theme.colors[color].borderTransparent;\n    default:\n      return color ? theme.colors.border[color] : undefined;\n  }\n};\n\nconst customBackgroundColor = (color: BackgroundColor, theme: GrafanaTheme2) => {\n  switch (color) {\n    case 'error':\n    case 'success':\n    case 'info':\n    case 'warning':\n      return theme.colors[color].transparent;\n    default:\n      return color ? theme.colors.background[color] : undefined;\n  }\n};\n\nconst getStyles = (\n  theme: GrafanaTheme2,\n  margin: BoxProps['margin'],\n  marginX: BoxProps['marginX'],\n  marginY: BoxProps['marginY'],\n  marginTop: BoxProps['marginTop'],\n  marginBottom: BoxProps['marginBottom'],\n  marginLeft: BoxProps['marginLeft'],\n  marginRight: BoxProps['marginRight'],\n  padding: BoxProps['padding'],\n  paddingX: BoxProps['paddingX'],\n  paddingY: BoxProps['paddingY'],\n  paddingTop: BoxProps['paddingTop'],\n  paddingBottom: BoxProps['paddingBottom'],\n  paddingLeft: BoxProps['paddingLeft'],\n  paddingRight: BoxProps['paddingRight'],\n  display: BoxProps['display'],\n  backgroundColor: BoxProps['backgroundColor'],\n  grow: BoxProps['grow'],\n  shrink: BoxProps['shrink'],\n  basis: BoxProps['basis'],\n  flex: BoxProps['flex'],\n  borderColor: BoxProps['borderColor'],\n  borderStyle: BoxProps['borderStyle'],\n  borderRadius: BoxProps['borderRadius'],\n  direction: BoxProps['direction'],\n  justifyContent: BoxProps['justifyContent'],\n  alignItems: BoxProps['alignItems'],\n  boxShadow: BoxProps['boxShadow'],\n  gap: BoxProps['gap'],\n  position: BoxProps['position']\n) => {\n  return {\n    root: css([\n      getResponsiveStyle(theme, margin, (val) => ({\n        margin: theme.spacing(val),\n      })),\n      getResponsiveStyle(theme, marginX, (val) => ({\n        marginLeft: theme.spacing(val),\n        marginRight: theme.spacing(val),\n      })),\n      getResponsiveStyle(theme, marginY, (val) => ({\n        marginTop: theme.spacing(val),\n        marginBottom: theme.spacing(val),\n      })),\n      getResponsiveStyle(theme, marginTop, (val) => ({\n        marginTop: theme.spacing(val),\n      })),\n      getResponsiveStyle(theme, marginBottom, (val) => ({\n        marginBottom: theme.spacing(val),\n      })),\n      getResponsiveStyle(theme, marginLeft, (val) => ({\n        marginLeft: theme.spacing(val),\n      })),\n      getResponsiveStyle(theme, marginRight, (val) => ({\n        marginRight: theme.spacing(val),\n      })),\n      getResponsiveStyle(theme, padding, (val) => ({\n        padding: theme.spacing(val),\n      })),\n      getResponsiveStyle(theme, paddingX, (val) => ({\n        paddingLeft: theme.spacing(val),\n        paddingRight: theme.spacing(val),\n      })),\n      getResponsiveStyle(theme, paddingY, (val) => ({\n        paddingTop: theme.spacing(val),\n        paddingBottom: theme.spacing(val),\n      })),\n      getResponsiveStyle(theme, paddingTop, (val) => ({\n        paddingTop: theme.spacing(val),\n      })),\n      getResponsiveStyle(theme, paddingBottom, (val) => ({\n        paddingBottom: theme.spacing(val),\n      })),\n      getResponsiveStyle(theme, paddingLeft, (val) => ({\n        paddingLeft: theme.spacing(val),\n      })),\n      getResponsiveStyle(theme, paddingRight, (val) => ({\n        paddingRight: theme.spacing(val),\n      })),\n      getResponsiveStyle(theme, display, (val) => ({\n        display: val,\n      })),\n      getResponsiveStyle(theme, backgroundColor, (val) => ({\n        backgroundColor: customBackgroundColor(val, theme),\n      })),\n      getResponsiveStyle(theme, direction, (val) => ({\n        flexDirection: val,\n      })),\n      getResponsiveStyle(theme, grow, (val) => ({\n        flexGrow: val,\n      })),\n      getResponsiveStyle(theme, shrink, (val) => ({\n        flexShrink: val,\n      })),\n      getResponsiveStyle(theme, basis, (val) => ({\n        flexBasis: val,\n      })),\n      getResponsiveStyle(theme, flex, (val) => ({\n        flex: val,\n      })),\n      getResponsiveStyle(theme, borderStyle, (val) => ({\n        borderStyle: val,\n      })),\n      getResponsiveStyle(theme, borderColor, (val) => ({\n        borderColor: customBorderColor(val, theme),\n      })),\n      (borderStyle || borderColor) && {\n        borderWidth: '1px',\n      },\n      getResponsiveStyle(theme, justifyContent, (val) => ({\n        justifyContent: val,\n      })),\n      getResponsiveStyle(theme, alignItems, (val) => ({\n        alignItems: val,\n      })),\n      getResponsiveStyle(theme, borderRadius, (val) => ({\n        borderRadius: theme.shape.radius[val],\n      })),\n      getResponsiveStyle(theme, boxShadow, (val) => ({\n        boxShadow: theme.shadows[val],\n      })),\n      getResponsiveStyle(theme, gap, (val) => ({\n        gap: theme.spacing(val),\n      })),\n      getResponsiveStyle(theme, position, (val) => ({\n        position: val,\n      })),\n    ]),\n  };\n};\n"],"names":["forwardRef","styles","useStyles2","getSizeStyles","jsx","cx","css","getResponsiveStyle"],"mappings":"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"}