@ozen-ui/kit
Version:
React component library
31 lines (30 loc) • 1.96 kB
JavaScript
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';