{"version":3,"file":"InputLabel.cjs","sources":["../../../../src/components/Input/InputLabel/InputLabel.tsx"],"sourcesContent":["import {\n  Box,\n  BoxProps,\n  createVarsResolver,\n  ElementProps,\n  factory,\n  Factory,\n  getFontSize,\n  RaikouSize,\n  StylesApiProps,\n  useProps,\n  useStyles,\n} from '../../../core';\nimport { useInputWrapperContext } from '../InputWrapper.context';\nimport { InputLabelStyle, InputRequiredStyle } from '../Input.css';\n\nexport type InputLabelStylesNames = 'label' | 'required';\nexport type InputLabelCssVariables = {\n  label: '--input-asterisk-color' | '--input-label-size';\n};\n\nexport interface InputLabelProps\n  extends BoxProps,\n    StylesApiProps<InputLabelFactory>,\n    ElementProps<'label'> {\n  __staticSelector?: string;\n\n  /** Determines whether the required asterisk should be displayed  */\n  required?: boolean;\n\n  /** Controls label `font-size`, `'sm'` by default */\n  size?: RaikouSize | (string & {});\n\n  /** Root element of the label, `'label'` by default */\n  labelElement?: 'label' | 'div';\n}\n\nexport type InputLabelFactory = Factory<{\n  props: InputLabelProps;\n  ref: HTMLLabelElement;\n  stylesNames: InputLabelStylesNames;\n  vars: InputLabelCssVariables;\n}>;\n\nconst defaultProps: Partial<InputLabelProps> = {\n  labelElement: 'label',\n};\n\nconst varsResolver = createVarsResolver<InputLabelFactory>((_, { size }) => ({\n  label: {\n    '--input-label-size': getFontSize(size),\n    '--input-asterisk-color': undefined,\n  },\n}));\n\nexport const InputLabel = factory<InputLabelFactory>((_props, ref) => {\n  const props = useProps('InputLabel', defaultProps, _props);\n  const {\n    classNames,\n    className,\n    style,\n    styles,\n    unstyled,\n    vars,\n    labelElement,\n    size,\n    required,\n    htmlFor,\n    onMouseDown,\n    children,\n    __staticSelector,\n    variant,\n    mod,\n    ...others\n  } = useProps('InputLabel', defaultProps, props);\n\n  const _getStyles = useStyles<InputLabelFactory>({\n    name: ['InputWrapper', __staticSelector],\n    props,\n    classes: {\n      label: InputLabelStyle,\n      required: InputRequiredStyle,\n    },\n    className,\n    style,\n    classNames,\n    styles,\n    unstyled,\n    rootSelector: 'label',\n    vars,\n    varsResolver,\n  });\n\n  const ctx = useInputWrapperContext();\n  const getStyles = ctx?.getStyles || _getStyles;\n\n  return (\n    <Box\n      {...getStyles('label', ctx?.getStyles ? { className, style } : undefined)}\n      component={labelElement as 'label'}\n      variant={variant}\n      size={size}\n      ref={ref}\n      htmlFor={labelElement === 'label' ? htmlFor : undefined}\n      mod={[{ required }, mod]}\n      onMouseDown={(event) => {\n        onMouseDown?.(event);\n        if (!event.defaultPrevented && event.detail > 1) {\n          event.preventDefault();\n        }\n      }}\n      {...others}\n    >\n      {children}\n      {required && (\n        <span {...getStyles('required')} aria-hidden>\n          {' *'}\n        </span>\n      )}\n    </Box>\n  );\n});\n\nInputLabel.displayName = '@raikou/core/InputLabel';\n"],"names":["createVarsResolver","getFontSize","factory","useProps","useStyles","InputLabelStyle","InputRequiredStyle","useInputWrapperContext","jsxs","Box"],"mappings":";;;;;;;;;;;;;;;;AA4CA,MAAM,YAAyC,GAAA;AAAA,EAC7C,YAAc,EAAA;AAChB,CAAA;AAEA,MAAM,eAAeA,qCAAsC,CAAA,CAAC,CAAG,EAAA,EAAE,MAAY,MAAA;AAAA,EAC3E,KAAO,EAAA;AAAA,IACL,oBAAA,EAAsBC,oBAAY,IAAI,CAAA;AAAA,IACtC,wBAA0B,EAAA,KAAA;AAAA;AAE9B,CAAE,CAAA,CAAA;AAEK,MAAM,UAAa,GAAAC,eAAA,CAA2B,CAAC,MAAA,EAAQ,GAAQ,KAAA;AACpE,EAAA,MAAM,KAAQ,GAAAC,iBAAA,CAAS,YAAc,EAAA,YAAA,EAAc,MAAM,CAAA;AACzD,EAAM,MAAA;AAAA,IACJ,UAAA;AAAA,IACA,SAAA;AAAA,IACA,KAAA;AAAA,IACA,MAAA;AAAA,IACA,QAAA;AAAA,IACA,IAAA;AAAA,IACA,YAAA;AAAA,IACA,IAAA;AAAA,IACA,QAAA;AAAA,IACA,OAAA;AAAA,IACA,WAAA;AAAA,IACA,QAAA;AAAA,IACA,gBAAA;AAAA,IACA,OAAA;AAAA,IACA,GAAA;AAAA,IACA,GAAG;AAAA,GACD,GAAAA,iBAAA,CAAS,YAAc,EAAA,YAAA,EAAc,KAAK,CAAA;AAE9C,EAAA,MAAM,aAAaC,mBAA6B,CAAA;AAAA,IAC9C,IAAA,EAAM,CAAC,cAAA,EAAgB,gBAAgB,CAAA;AAAA,IACvC,KAAA;AAAA,IACA,OAAS,EAAA;AAAA,MACP,KAAO,EAAAC,yBAAA;AAAA,MACP,QAAU,EAAAC;AAAA,KACZ;AAAA,IACA,SAAA;AAAA,IACA,KAAA;AAAA,IACA,UAAA;AAAA,IACA,MAAA;AAAA,IACA,QAAA;AAAA,IACA,YAAc,EAAA,OAAA;AAAA,IACd,IAAA;AAAA,IACA;AAAA,GACD,CAAA;AAED,EAAA,MAAM,MAAMC,2CAAuB,EAAA;AACnC,EAAM,MAAA,SAAA,GAAY,KAAK,SAAa,IAAA,UAAA;AAEpC,EACE,uBAAAC,eAAA;AAAA,IAACC,OAAA;AAAA,IAAA;AAAA,MACE,GAAG,UAAU,OAAS,EAAA,GAAA,EAAK,YAAY,EAAE,SAAA,EAAW,KAAM,EAAA,GAAI,KAAS,CAAA,CAAA;AAAA,MACxE,SAAW,EAAA,YAAA;AAAA,MACX,OAAA;AAAA,MACA,IAAA;AAAA,MACA,GAAA;AAAA,MACA,OAAA,EAAS,YAAiB,KAAA,OAAA,GAAU,OAAU,GAAA,KAAA,CAAA;AAAA,MAC9C,GAAK,EAAA,CAAC,EAAE,QAAA,IAAY,GAAG,CAAA;AAAA,MACvB,WAAA,EAAa,CAAC,KAAU,KAAA;AACtB,QAAA,WAAA,GAAc,KAAK,CAAA;AACnB,QAAA,IAAI,CAAC,KAAA,CAAM,gBAAoB,IAAA,KAAA,CAAM,SAAS,CAAG,EAAA;AAC/C,UAAA,KAAA,CAAM,cAAe,EAAA;AAAA;AACvB,OACF;AAAA,MACC,GAAG,MAAA;AAAA,MAEH,QAAA,EAAA;AAAA,QAAA,QAAA;AAAA,QACA,QAAA,mCACE,MAAM,EAAA,EAAA,GAAG,UAAU,UAAU,CAAA,EAAG,aAAW,EAAA,IAAA,EACzC,QACH,EAAA,IAAA,EAAA;AAAA;AAAA;AAAA,GAEJ;AAEJ,CAAC;AAED,UAAA,CAAW,WAAc,GAAA,yBAAA;;;;"}