{"version":3,"file":"InlineInput.cjs","sources":["../../../src/components/InlineInput/InlineInput.tsx"],"sourcesContent":["import { forwardRef } from 'react';\nimport {\n  Box,\n  BoxProps,\n  ElementProps,\n  Factory,\n  getFontSize,\n  getSize,\n  RaikouSize,\n  StylesApiProps,\n  useStyles,\n} from '../../core';\nimport { Input } from '../Input';\nimport {\n  InlineInputBodyStyle,\n  InlineInputDescriptionStyle,\n  InlineInputErrorStyle,\n  InlineInputLabelStyle,\n  InlineInputLabelWrapperStyle,\n  InlineInputRootStyle,\n} from './InlineInput.css';\n\nexport type InlineInputStylesNames =\n  | 'root'\n  | 'body'\n  | 'labelWrapper'\n  | 'label'\n  | 'description'\n  | 'error';\n\nexport interface InlineInputProps\n  extends BoxProps,\n    StylesApiProps<InlineInputFactory>,\n    ElementProps<'div'> {\n  __staticSelector: string;\n  __stylesApiProps: Record<string, any>;\n  label: React.ReactNode;\n  description: React.ReactNode;\n  id: string;\n  disabled: boolean | undefined;\n  error: React.ReactNode;\n  size: RaikouSize | (string & {}) | undefined;\n  labelPosition?: 'left' | 'right';\n  bodyElement?: any;\n  labelElement?: any;\n}\n\nexport type InlineInputFactory = Factory<{\n  props: any;\n  stylesNames: InlineInputStylesNames;\n}>;\n\nexport const InlineInput = forwardRef<HTMLDivElement, InlineInputProps>(\n  (\n    {\n      __staticSelector,\n      __stylesApiProps,\n      className,\n      classNames,\n      styles,\n      unstyled,\n      children,\n      label,\n      description,\n      id,\n      disabled,\n      error,\n      size,\n      labelPosition = 'left',\n      bodyElement = 'div',\n      labelElement = 'label',\n      variant,\n      style,\n      vars,\n      mod,\n      ...others\n    },\n    ref\n  ) => {\n    const getStyles = useStyles<InlineInputFactory>({\n      name: __staticSelector,\n      props: __stylesApiProps,\n      className,\n      style,\n      classes: {\n        root: InlineInputRootStyle,\n        body: InlineInputBodyStyle,\n        labelWrapper: InlineInputLabelWrapperStyle,\n        label: InlineInputLabelStyle,\n        description: InlineInputDescriptionStyle,\n        error: InlineInputErrorStyle,\n      },\n      classNames,\n      styles,\n      unstyled,\n    });\n\n    return (\n      <Box\n        {...getStyles('root')}\n        ref={ref}\n        __vars={{\n          '--label-fz': getFontSize(size),\n          '--label-lh': getSize(size, 'label-lh'),\n        }}\n        mod={[{ 'label-position': labelPosition }, mod]}\n        variant={variant}\n        size={size}\n        {...others}\n      >\n        <Box\n          component={bodyElement}\n          htmlFor={bodyElement === 'label' ? id : undefined}\n          {...getStyles('body')}\n        >\n          {children}\n\n          <div {...getStyles('labelWrapper')} data-disabled={disabled || undefined}>\n            {label && (\n              <Box\n                component={labelElement}\n                htmlFor={labelElement === 'label' ? id : undefined}\n                {...getStyles('label')}\n                data-disabled={disabled || undefined}\n              >\n                {label}\n              </Box>\n            )}\n\n            {description && (\n              <Input.Description size={size} __inheritStyles={false} {...getStyles('description')}>\n                {description}\n              </Input.Description>\n            )}\n\n            {error && typeof error !== 'boolean' && (\n              <Input.Error size={size} __inheritStyles={false} {...getStyles('error')}>\n                {error}\n              </Input.Error>\n            )}\n          </div>\n        </Box>\n      </Box>\n    );\n  }\n);\n\nInlineInput.displayName = '@raikou/core/InlineInput';\n"],"names":["forwardRef","useStyles","InlineInputRootStyle","InlineInputBodyStyle","InlineInputLabelWrapperStyle","InlineInputLabelStyle","InlineInputDescriptionStyle","InlineInputErrorStyle","jsx","Box","getFontSize","getSize","jsxs","Input"],"mappings":"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"}