{"version":3,"file":"RadioButtonDot.cjs","sources":["../../../../../src/components/Forms/RadioButtonList/RadioButtonDot.tsx"],"sourcesContent":["import { css } from '@emotion/css';\nimport * as React from 'react';\n\nimport { GrafanaTheme2 } from '@grafana/data';\n\nimport { useStyles2 } from '../../../themes/ThemeContext';\n\nexport interface RadioButtonDotProps<T>\n  extends Omit<React.HTMLProps<HTMLInputElement>, 'label' | 'value' | 'onChange' | 'type'> {\n  id: string;\n  name: string;\n  checked?: boolean;\n  value?: T;\n  disabled?: boolean;\n  label: React.ReactNode;\n  description?: string;\n  onChange?: (id: string) => void;\n}\n\nexport const RadioButtonDot = <T extends string | number | readonly string[]>({\n  id,\n  name,\n  label,\n  checked,\n  value,\n  disabled,\n  description,\n  onChange,\n  ...props\n}: RadioButtonDotProps<T>) => {\n  const styles = useStyles2(getStyles);\n\n  return (\n    <label title={description} className={styles.label}>\n      <input\n        {...props}\n        id={id}\n        name={name}\n        type=\"radio\"\n        checked={checked}\n        value={value}\n        disabled={disabled}\n        className={styles.input}\n        onChange={() => onChange && onChange(id)}\n      />\n      <div>\n        {label}\n        {description && <div className={styles.description}>{description}</div>}\n      </div>\n    </label>\n  );\n};\n\nconst getStyles = (theme: GrafanaTheme2) => ({\n  input: css({\n    position: 'relative',\n    appearance: 'none',\n    outline: 'none',\n    backgroundColor: theme.colors.background.canvas,\n    width: `${theme.spacing(2)} !important` /* TODO How to overcome this? Checkbox does the same 🙁 */,\n    height: theme.spacing(2),\n    border: `1px solid ${theme.colors.border.medium}`,\n    borderRadius: theme.shape.radius.circle,\n    cursor: 'pointer',\n    margin: '3px 0' /* Space for box-shadow when focused */,\n\n    ':checked': {\n      backgroundColor: theme.v1.palette.white,\n      border: `5px solid ${theme.colors.primary.main}`,\n    },\n\n    ':disabled': {\n      backgroundColor: `${theme.colors.action.disabledBackground} !important`,\n      borderColor: theme.colors.border.weak,\n    },\n\n    ':disabled:checked': {\n      border: `1px solid ${theme.colors.border.weak}`,\n    },\n\n    ':disabled:checked::after': {\n      content: '\"\"',\n      width: '6px',\n      height: '6px',\n      backgroundColor: theme.colors.text.disabled,\n      borderRadius: theme.shape.radius.circle,\n      display: 'inline-block',\n      position: 'absolute',\n      top: '4px',\n      left: '4px',\n    },\n\n    ':focus': {\n      outline: 'none !important',\n      boxShadow: `0 0 0 1px ${theme.colors.background.canvas}, 0 0 0 3px ${theme.colors.primary.main}`,\n    },\n  }),\n  label: css({\n    fontSize: theme.typography.fontSize,\n    lineHeight: '22px' /* 16px for the radio button and 6px for the focus shadow */,\n    display: 'grid',\n    gridTemplateColumns: `${theme.spacing(2)} auto`,\n    gap: theme.spacing(1),\n    cursor: 'pointer',\n  }),\n  description: css({\n    fontSize: theme.typography.size.sm,\n    color: theme.colors.text.secondary,\n  }),\n});\n"],"names":["useStyles2","jsx","css"],"mappings":"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"}