UNPKG

@fluido/ui-containers

Version:

A framework for create front-end easy and fast

87 lines (86 loc) 3.03 kB
var __rest = (this && this.__rest) || function (s, e) { var t = {}; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p]; if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) { if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]]; } return t; }; import React from 'react'; import { Flui, tryParseColor } from '@fluido/ui'; import { Box_ } from './styled'; const watchedProps = [ 'm', 'mt', 'mr', 'mb', 'ml', 'mx', 'my', 'mil', 'mis', 'mie', 'mbl', 'mbs', 'mbe', 'margin', 'marginTop', 'marginRight', 'marginBottom', 'marginLeft', 'marginInline', 'marginInlineStart', 'marginInlineEnd', 'marginBlock', 'marginBlockStart', 'marginBlockEnd', 'marginInline', 'marginInlineStart', 'marginInlineEnd', 'radius', ]; export const Box = Flui((_a, ref) => { var { bg, background, bgColor, backgroundColor, children, className, color, fillColor, gradient, srOnly, strokeColor } = _a, props = __rest(_a, ["bg", "background", "bgColor", "backgroundColor", "children", "className", "color", "fillColor", "gradient", "srOnly", "strokeColor"]); const classes = []; const wProps = props; className && classes.push(className); srOnly && classes.push(' sr-only'); for (const k in wProps) { if (watchedProps.includes(k)) { switch (wProps[k]) { case 'full': wProps[k] = '100%'; break; case 'half': wProps[k] = '50%'; break; case 'third': wProps[k] = '33.3333%'; break; case 'quarter': wProps[k] = '25%'; break; } } } wProps.bg = bg && tryParseColor(bg, 'bg'); wProps.background = background && tryParseColor(background, 'bg'); wProps.bgColor = bgColor && tryParseColor(bgColor, 'bgColor'); wProps.backgroundColor = backgroundColor && tryParseColor(backgroundColor, 'bgColor'); wProps.color = color && tryParseColor(color, 'color'); wProps.fillColor = fillColor && tryParseColor(fillColor, 'fill'); wProps.strokeColor = strokeColor && tryParseColor(strokeColor, 'stroke'); if (Array.isArray(gradient) && gradient.length >= 2) { wProps.gradient = gradient .map((color) => tryParseColor(color || 'transparent', 'gradient')) .join(','); } else if (typeof gradient === 'string') { wProps.gradient = gradient; } return (React.createElement(Box_, Object.assign({ className: classes.join(' '), ref: ref }, wProps), children)); });