{"version":3,"file":"ButtonGroupSection.cjs","sources":["../../../../src/components/Button/ButtonGroupSection/ButtonGroupSection.tsx"],"sourcesContent":["import {\n  Box,\n  BoxProps,\n  createVarsResolver,\n  ElementProps,\n  factory,\n  Factory,\n  getFontSize,\n  getRadius,\n  getSize,\n  RaikouGradient,\n  RaikouRadius,\n  RaikouSize,\n  StylesApiProps,\n  useProps,\n  useStyles,\n} from '../../../core';\nimport type { ButtonVariant } from '../Button';\nimport { ButtonGroupSectionStyle } from '../Button.css';\n\nexport type ButtonGroupSectionStylesNames = 'groupSection';\nexport type ButtonGroupSectionCssVariables = {\n  groupSection:\n    | '--section-radius'\n    | '--section-bg'\n    | '--section-color'\n    | '--section-bd'\n    | '--section-height'\n    | '--section-padding-x'\n    | '--section-fz';\n};\n\nexport interface ButtonGroupSectionProps\n  extends BoxProps,\n    StylesApiProps<ButtonGroupSectionFactory>,\n    ElementProps<'div'> {\n  /** Key of `theme.radius` or any valid CSS value to set `border-radius`, `theme.defaultRadius` by default */\n  radius?: RaikouRadius;\n\n  /** Gradient configuration used when `variant=\"gradient\"`, default value is `theme.defaultGradient` */\n  gradient?: RaikouGradient;\n\n  /** Determines whether section text color with filled variant should depend on `background-color`. If luminosity of the `color` prop is less than `theme.luminosityThreshold`, then `theme.white` will be used for text color, otherwise `theme.black`. Overrides `theme.autoContrast`. */\n  autoContrast?: boolean;\n\n  /** Controls section `height`, `font-size` and horizontal `padding`, `'sm'` by default */\n  size?: RaikouSize | `compact-${RaikouSize}` | (string & {});\n}\n\nexport type ButtonGroupSectionFactory = Factory<{\n  props: ButtonGroupSectionProps;\n  ref: HTMLDivElement;\n  stylesNames: ButtonGroupSectionStylesNames;\n  vars: ButtonGroupSectionCssVariables;\n  variant: ButtonVariant;\n}>;\n\nconst defaultProps: Partial<ButtonGroupSectionProps> = {};\n\nconst varsResolver = createVarsResolver<ButtonGroupSectionFactory>(\n  (theme, { radius, color, gradient, variant, autoContrast, size }) => {\n    const colors = theme.variantColorResolver({\n      color: color || theme.primaryColor,\n      theme,\n      gradient,\n      variant: variant || 'filled',\n      autoContrast,\n    });\n\n    return {\n      groupSection: {\n        '--section-height': getSize(size, 'section-height'),\n        '--section-padding-x': getSize(size, 'section-padding-x'),\n        '--section-fz': size?.includes('compact')\n          ? getFontSize(size.replace('compact-', ''))\n          : getFontSize(size),\n        '--section-radius': radius === undefined ? undefined : getRadius(radius),\n        '--section-bg': color || variant ? colors.background : undefined,\n        '--section-color': colors.color,\n        '--section-bd': color || variant ? colors.border : undefined,\n      },\n    };\n  }\n);\n\nexport const ButtonGroupSection = factory<ButtonGroupSectionFactory>((_props, ref) => {\n  const props = useProps('ButtonGroupSection', defaultProps, _props);\n  const {\n    className,\n    style,\n    classNames,\n    styles,\n    unstyled,\n    vars,\n    variant,\n    gradient,\n    radius,\n    autoContrast,\n    ...others\n  } = useProps('ButtonGroupSection', defaultProps, _props);\n\n  const getStyles = useStyles<ButtonGroupSectionFactory>({\n    name: 'ButtonGroupSection',\n    props,\n    classes: {\n      groupSection: ButtonGroupSectionStyle\n    },\n    className,\n    style,\n    classNames,\n    styles,\n    unstyled,\n    vars,\n    varsResolver,\n    rootSelector: 'groupSection',\n  });\n\n  return <Box {...getStyles('groupSection')} ref={ref} variant={variant} {...others} />;\n});\n\nButtonGroupSection.displayName = '@raikou/core/ButtonGroupSection';\n"],"names":["createVarsResolver","getSize","getFontSize","getRadius","factory","useProps","useStyles","ButtonGroupSectionStyle","jsx","Box"],"mappings":";;;;;;;;;;;;;;;AAyDA,MAAM,eAAiD,EAAC;AAExD,MAAM,YAAe,GAAAA,qCAAA;AAAA,EACnB,CAAC,OAAO,EAAE,MAAA,EAAQ,OAAO,QAAU,EAAA,OAAA,EAAS,YAAc,EAAA,IAAA,EAAW,KAAA;AACnE,IAAM,MAAA,MAAA,GAAS,MAAM,oBAAqB,CAAA;AAAA,MACxC,KAAA,EAAO,SAAS,KAAM,CAAA,YAAA;AAAA,MACtB,KAAA;AAAA,MACA,QAAA;AAAA,MACA,SAAS,OAAW,IAAA,QAAA;AAAA,MACpB;AAAA,KACD,CAAA;AAED,IAAO,OAAA;AAAA,MACL,YAAc,EAAA;AAAA,QACZ,kBAAA,EAAoBC,eAAQ,CAAA,IAAA,EAAM,gBAAgB,CAAA;AAAA,QAClD,qBAAA,EAAuBA,eAAQ,CAAA,IAAA,EAAM,mBAAmB,CAAA;AAAA,QACxD,cAAgB,EAAA,IAAA,EAAM,QAAS,CAAA,SAAS,CACpC,GAAAC,mBAAA,CAAY,IAAK,CAAA,OAAA,CAAQ,UAAY,EAAA,EAAE,CAAC,CAAA,GACxCA,oBAAY,IAAI,CAAA;AAAA,QACpB,kBAAoB,EAAA,MAAA,KAAW,KAAY,CAAA,GAAA,KAAA,CAAA,GAAYC,kBAAU,MAAM,CAAA;AAAA,QACvE,cAAgB,EAAA,KAAA,IAAS,OAAU,GAAA,MAAA,CAAO,UAAa,GAAA,KAAA,CAAA;AAAA,QACvD,mBAAmB,MAAO,CAAA,KAAA;AAAA,QAC1B,cAAgB,EAAA,KAAA,IAAS,OAAU,GAAA,MAAA,CAAO,MAAS,GAAA,KAAA;AAAA;AACrD,KACF;AAAA;AAEJ,CAAA;AAEO,MAAM,kBAAqB,GAAAC,eAAA,CAAmC,CAAC,MAAA,EAAQ,GAAQ,KAAA;AACpF,EAAA,MAAM,KAAQ,GAAAC,iBAAA,CAAS,oBAAsB,EAAA,YAAA,EAAc,MAAM,CAAA;AACjE,EAAM,MAAA;AAAA,IACJ,SAAA;AAAA,IACA,KAAA;AAAA,IACA,UAAA;AAAA,IACA,MAAA;AAAA,IACA,QAAA;AAAA,IACA,IAAA;AAAA,IACA,OAAA;AAAA,IACA,QAAA;AAAA,IACA,MAAA;AAAA,IACA,YAAA;AAAA,IACA,GAAG;AAAA,GACD,GAAAA,iBAAA,CAAS,oBAAsB,EAAA,YAAA,EAAc,MAAM,CAAA;AAEvD,EAAA,MAAM,YAAYC,mBAAqC,CAAA;AAAA,IACrD,IAAM,EAAA,oBAAA;AAAA,IACN,KAAA;AAAA,IACA,OAAS,EAAA;AAAA,MACP,YAAc,EAAAC;AAAA,KAChB;AAAA,IACA,SAAA;AAAA,IACA,KAAA;AAAA,IACA,UAAA;AAAA,IACA,MAAA;AAAA,IACA,QAAA;AAAA,IACA,IAAA;AAAA,IACA,YAAA;AAAA,IACA,YAAc,EAAA;AAAA,GACf,CAAA;AAED,EAAO,uBAAAC,cAAA,CAACC,WAAK,GAAG,SAAA,CAAU,cAAc,CAAG,EAAA,GAAA,EAAU,OAAmB,EAAA,GAAG,MAAQ,EAAA,CAAA;AACrF,CAAC;AAED,kBAAA,CAAmB,WAAc,GAAA,iCAAA;;;;"}