{"version":3,"file":"use-styles.cjs","sources":["../../../../src/core/styles-api/use-styles/use-styles.ts"],"sourcesContent":["import { CSSProperties } from 'react';\nimport type { RaikouStyleProp } from '../../Box';\nimport { FactoryPayload } from '../../factory';\nimport { useRaikouTheme } from '../../RaikouProvider';\nimport { PartialVarsResolver, VarsResolver } from '../create-vars-resolver/create-vars-resolver';\nimport { ClassNames, ClassNamesArray, GetStylesApiOptions, Styles } from '../styles-api.types';\nimport { getClassName } from './get-class-name/get-class-name';\nimport { getStyle } from './get-style/get-style';\nimport { useStylesTransform } from './use-transformed-styles';\n\nexport interface UseStylesInput<Payload extends FactoryPayload> {\n  name: string | (string | undefined)[];\n  classes: Payload['stylesNames'] extends string ? Record<string, string> : never;\n  props: Payload['props'];\n  stylesCtx?: Payload['ctx'];\n  className?: string;\n  style?: RaikouStyleProp;\n  rootSelector?: Payload['stylesNames'];\n  unstyled?: boolean;\n  classNames?: ClassNames<Payload> | ClassNamesArray<Payload>;\n  styles?: Styles<Payload>;\n  vars?: PartialVarsResolver<Payload>;\n  varsResolver?: VarsResolver<Payload>;\n}\n\nexport type GetStylesApi<Payload extends FactoryPayload> = (\n  selector: NonNullable<Payload['stylesNames']>,\n  options?: GetStylesApiOptions\n) => {\n  className: string;\n  style: CSSProperties;\n};\n\nexport function useStyles<Payload extends FactoryPayload>({\n  name,\n  classes,\n  props,\n  stylesCtx,\n  className,\n  style,\n  rootSelector = 'root' as NonNullable<Payload['stylesNames']>,\n  unstyled,\n  classNames,\n  styles,\n  vars,\n  varsResolver,\n}: UseStylesInput<Payload>): GetStylesApi<Payload> {\n  const theme = useRaikouTheme();\n  const classNamesPrefix = 'raikou';\n  const themeName = (Array.isArray(name) ? name : [name]).filter((n) => n) as string[];\n\n  const { withStylesTransform, getTransformedStyles } = useStylesTransform({\n    props,\n    stylesCtx,\n    themeName,\n  });\n\n  return (selector, options) => ({\n    className: getClassName({\n      theme,\n      options,\n      themeName,\n      selector,\n      classNamesPrefix,\n      classNames,\n      classes,\n      unstyled,\n      className,\n      rootSelector,\n      props,\n      stylesCtx,\n      transformedStyles: getTransformedStyles([options?.styles, styles]),\n    }),\n\n    style: getStyle({\n      theme,\n      themeName,\n      selector,\n      options,\n      props,\n      stylesCtx,\n      rootSelector,\n      styles,\n      style,\n      vars,\n      varsResolver,\n      withStylesTransform,\n    }),\n  });\n}\n"],"names":["useRaikouTheme","useStylesTransform","getClassName","getStyle"],"mappings":";;;;;;;;;;AAiCO,SAAS,SAA0C,CAAA;AAAA,EACxD,IAAA;AAAA,EACA,OAAA;AAAA,EACA,KAAA;AAAA,EACA,SAAA;AAAA,EACA,SAAA;AAAA,EACA,KAAA;AAAA,EACA,YAAe,GAAA,MAAA;AAAA,EACf,QAAA;AAAA,EACA,UAAA;AAAA,EACA,MAAA;AAAA,EACA,IAAA;AAAA,EACA;AACF,CAAmD,EAAA;AACjD,EAAA,MAAM,QAAQA,6BAAe,EAAA;AAC7B,EAAA,MAAM,gBAAmB,GAAA,QAAA;AACzB,EAAA,MAAM,SAAa,GAAA,CAAA,KAAA,CAAM,OAAQ,CAAA,IAAI,CAAI,GAAA,IAAA,GAAO,CAAC,IAAI,CAAG,EAAA,MAAA,CAAO,CAAC,CAAA,KAAM,CAAC,CAAA;AAEvE,EAAA,MAAM,EAAE,mBAAA,EAAqB,oBAAqB,EAAA,GAAIC,uCAAmB,CAAA;AAAA,IACvE,KAAA;AAAA,IACA,SAAA;AAAA,IACA;AAAA,GACD,CAAA;AAED,EAAO,OAAA,CAAC,UAAU,OAAa,MAAA;AAAA,IAC7B,WAAWC,yBAAa,CAAA;AAAA,MACtB,KAAA;AAAA,MACA,OAAA;AAAA,MACA,SAAA;AAAA,MACA,QAAA;AAAA,MACA,gBAAA;AAAA,MACA,UAAA;AAAA,MACA,OAAA;AAAA,MACA,QAAA;AAAA,MACA,SAAA;AAAA,MACA,YAAA;AAAA,MACA,KAAA;AAAA,MACA,SAAA;AAAA,MACA,mBAAmB,oBAAqB,CAAA,CAAC,OAAS,EAAA,MAAA,EAAQ,MAAM,CAAC;AAAA,KAClE,CAAA;AAAA,IAED,OAAOC,iBAAS,CAAA;AAAA,MACd,KAAA;AAAA,MACA,SAAA;AAAA,MACA,QAAA;AAAA,MACA,OAAA;AAAA,MACA,KAAA;AAAA,MACA,SAAA;AAAA,MACA,YAAA;AAAA,MACA,MAAA;AAAA,MACA,KAAA;AAAA,MACA,IAAA;AAAA,MACA,YAAA;AAAA,MACA;AAAA,KACD;AAAA,GACH,CAAA;AACF;;;;"}