UNPKG

@ozen-ui/kit

Version:

React component library

31 lines (30 loc) 1.96 kB
import { __assign, __rest } from "tslib"; import './File.css'; import React from 'react'; import { useThemeProps } from '../../hooks/useThemeProps'; import { cn } from '../../utils/classname'; import { polymorphicComponentWithRef } from '../../utils/polymorphicComponentWithRef'; import { FileIcon } from '../FileIcon'; import { Stack } from '../Stack'; import { FILE_DEFAULT_SIZE, FILE_DEFAULT_STATUS, FILE_DEFAULT_TAG, } from './constants'; import { FileContext } from './FileContext'; export var cnFile = cn('FileNext'); export var File = polymorphicComponentWithRef(function (inProps, ref) { var props = useThemeProps({ props: inProps, name: 'FileNext', }); var className = props.className, children = props.children, hint = props.hint, _a = props.as, Tag = _a === void 0 ? FILE_DEFAULT_TAG : _a, _b = props.status, status = _b === void 0 ? FILE_DEFAULT_STATUS : _b, file = props.file, _c = props.size, size = _c === void 0 ? FILE_DEFAULT_SIZE : _c, trailing = props.trailing, other = __rest(props, ["className", "children", "hint", "as", "status", "file", "size", "trailing"]); return (React.createElement(FileContext.Provider, { value: { size: size } }, React.createElement(Tag, __assign({}, other, { ref: ref, className: cnFile({ status: status, size: size, }, [className]) }), React.createElement("div", { className: cnFile('Main') }, React.createElement(FileIcon, { size: "xs", status: status }, file), React.createElement(Stack, { className: cnFile('Content'), direction: "column", justify: "center" }, React.createElement("div", { className: cnFile('ContentMain') }, children), hint && React.createElement("div", { className: cnFile('Hint') }, hint))), trailing && React.createElement("div", { className: cnFile('Trailing') }, trailing)))); }); File.displayName = 'File';