{"version":3,"file":"PillGroup.cjs","sources":["../../../../src/components/Pill/PillGroup/PillGroup.tsx"],"sourcesContent":["import {\n  Box,\n  BoxProps,\n  createVarsResolver,\n  ElementProps,\n  factory,\n  Factory,\n  getSize,\n  RaikouSize,\n  StylesApiProps,\n  useProps,\n  useStyles,\n} from '../../../core';\nimport { usePillsInputContext } from '../../PillsInput/PillsInput.context';\nimport { PillGroupProvider } from '../PillGroup.context';\nimport { PillGroupStyle } from '../Pill.css';\n\nexport type PillGroupStylesNames = 'group';\nexport type PillGroupCssVariables = {\n  group: '--pg-gap';\n};\n\nexport interface PillGroupProps\n  extends BoxProps,\n    StylesApiProps<PillGroupFactory>,\n    ElementProps<'div'> {\n  /** Controls spacing between pills, by default controlled by `size` */\n  gap?: RaikouSize | (string & {}) | number;\n\n  /** Controls size of the child `Pill` components and gap between them, `'sm'` by default */\n  size?: RaikouSize | (string & {});\n\n  /** Determines whether child `Pill` components should be disabled */\n  disabled?: boolean;\n}\n\nexport type PillGroupFactory = Factory<{\n  props: PillGroupProps;\n  ref: HTMLDivElement;\n  stylesNames: PillGroupStylesNames;\n  vars: PillGroupCssVariables;\n  ctx: { size: RaikouSize | (string & {}) | undefined };\n}>;\n\nconst defaultProps: Partial<PillGroupProps> = {};\n\nconst varsResolver = createVarsResolver<PillGroupFactory>((_, { gap }, { size }) => ({\n  group: {\n    '--pg-gap': gap !== undefined ? getSize(gap) : getSize(size, 'pg-gap'),\n  },\n}));\n\nexport const PillGroup = factory<PillGroupFactory>((_props, ref) => {\n  const props = useProps('PillGroup', defaultProps, _props);\n  const { classNames, className, style, styles, unstyled, vars, size, disabled, ...others } = props;\n  const pillsInputCtx = usePillsInputContext();\n  const _size = pillsInputCtx?.size || size || undefined;\n\n  const getStyles = useStyles<PillGroupFactory>({\n    name: 'PillGroup',\n    classes: {\n      group: PillGroupStyle,\n    },\n    props,\n    className,\n    style,\n    classNames,\n    styles,\n    unstyled,\n    vars,\n    varsResolver,\n    stylesCtx: { size: _size },\n    rootSelector: 'group',\n  });\n\n  return (\n    <PillGroupProvider value={{ size: _size, disabled }}>\n      <Box ref={ref} size={_size} {...getStyles('group')} {...others} />\n    </PillGroupProvider>\n  );\n});\n\nPillGroup.displayName = '@raikou/core/PillGroup';\n"],"names":["createVarsResolver","getSize","factory","useProps","usePillsInputContext","useStyles","PillGroupStyle","PillGroupProvider","jsx","Box"],"mappings":";;;;;;;;;;;;;;;;;AA4CA,MAAM,eAAwC,EAAC;AAE/C,MAAM,YAAA,GAAeA,sCAAqC,CAAC,CAAA,EAAG,EAAE,GAAI,EAAA,EAAG,EAAE,IAAA,EAAY,MAAA;AAAA,EACnF,KAAO,EAAA;AAAA,IACL,UAAA,EAAY,QAAQ,KAAY,CAAA,GAAAC,eAAA,CAAQ,GAAG,CAAI,GAAAA,eAAA,CAAQ,MAAM,QAAQ;AAAA;AAEzE,CAAE,CAAA,CAAA;AAEK,MAAM,SAAY,GAAAC,eAAA,CAA0B,CAAC,MAAA,EAAQ,GAAQ,KAAA;AAClE,EAAA,MAAM,KAAQ,GAAAC,iBAAA,CAAS,WAAa,EAAA,YAAA,EAAc,MAAM,CAAA;AACxD,EAAM,MAAA,EAAE,UAAY,EAAA,SAAA,EAAW,KAAO,EAAA,MAAA,EAAQ,QAAU,EAAA,IAAA,EAAM,IAAM,EAAA,QAAA,EAAU,GAAG,MAAA,EAAW,GAAA,KAAA;AAC5F,EAAA,MAAM,gBAAgBC,uCAAqB,EAAA;AAC3C,EAAM,MAAA,KAAA,GAAQ,aAAe,EAAA,IAAA,IAAQ,IAAQ,IAAA,KAAA,CAAA;AAE7C,EAAA,MAAM,YAAYC,mBAA4B,CAAA;AAAA,IAC5C,IAAM,EAAA,WAAA;AAAA,IACN,OAAS,EAAA;AAAA,MACP,KAAO,EAAAC;AAAA,KACT;AAAA,IACA,KAAA;AAAA,IACA,SAAA;AAAA,IACA,KAAA;AAAA,IACA,UAAA;AAAA,IACA,MAAA;AAAA,IACA,QAAA;AAAA,IACA,IAAA;AAAA,IACA,YAAA;AAAA,IACA,SAAA,EAAW,EAAE,IAAA,EAAM,KAAM,EAAA;AAAA,IACzB,YAAc,EAAA;AAAA,GACf,CAAA;AAED,EAAA,sCACGC,mCAAkB,EAAA,EAAA,KAAA,EAAO,EAAE,IAAM,EAAA,KAAA,EAAO,UACvC,EAAA,QAAA,kBAAAC,cAAA,CAACC,WAAI,GAAU,EAAA,IAAA,EAAM,OAAQ,GAAG,SAAA,CAAU,OAAO,CAAI,EAAA,GAAG,QAAQ,CAClE,EAAA,CAAA;AAEJ,CAAC;AAED,SAAA,CAAU,WAAc,GAAA,wBAAA;;;;"}