@cfxjs/react-ui
Version:
Modern and minimalist React UI library.
456 lines (394 loc) • 19.1 kB
JavaScript
(function(e, a) { for(var i in a) e[i] = a[i]; }(exports, /******/ (function(modules) { // webpackBootstrap
/******/ // The module cache
/******/ var installedModules = {};
/******/
/******/ // The require function
/******/ function __webpack_require__(moduleId) {
/******/
/******/ // Check if module is in cache
/******/ if(installedModules[moduleId]) {
/******/ return installedModules[moduleId].exports;
/******/ }
/******/ // Create a new module (and put it into the cache)
/******/ var module = installedModules[moduleId] = {
/******/ i: moduleId,
/******/ l: false,
/******/ exports: {}
/******/ };
/******/
/******/ // Execute the module function
/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
/******/
/******/ // Flag the module as loaded
/******/ module.l = true;
/******/
/******/ // Return the exports of the module
/******/ return module.exports;
/******/ }
/******/
/******/
/******/ // expose the modules object (__webpack_modules__)
/******/ __webpack_require__.m = modules;
/******/
/******/ // expose the module cache
/******/ __webpack_require__.c = installedModules;
/******/
/******/ // define getter function for harmony exports
/******/ __webpack_require__.d = function(exports, name, getter) {
/******/ if(!__webpack_require__.o(exports, name)) {
/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter });
/******/ }
/******/ };
/******/
/******/ // define __esModule on exports
/******/ __webpack_require__.r = function(exports) {
/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
/******/ }
/******/ Object.defineProperty(exports, '__esModule', { value: true });
/******/ };
/******/
/******/ // create a fake namespace object
/******/ // mode & 1: value is a module id, require it
/******/ // mode & 2: merge all properties of value into the ns
/******/ // mode & 4: return value when already ns object
/******/ // mode & 8|1: behave like require
/******/ __webpack_require__.t = function(value, mode) {
/******/ if(mode & 1) value = __webpack_require__(value);
/******/ if(mode & 8) return value;
/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
/******/ var ns = Object.create(null);
/******/ __webpack_require__.r(ns);
/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value });
/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
/******/ return ns;
/******/ };
/******/
/******/ // getDefaultExport function for compatibility with non-harmony modules
/******/ __webpack_require__.n = function(module) {
/******/ var getter = module && module.__esModule ?
/******/ function getDefault() { return module['default']; } :
/******/ function getModuleExports() { return module; };
/******/ __webpack_require__.d(getter, 'a', getter);
/******/ return getter;
/******/ };
/******/
/******/ // Object.prototype.hasOwnProperty.call
/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
/******/
/******/ // __webpack_public_path__
/******/ __webpack_require__.p = "";
/******/
/******/
/******/ // Load entry module and return exports
/******/ return __webpack_require__(__webpack_require__.s = 72);
/******/ })
/************************************************************************/
/******/ ({
/***/ 19:
/***/ (function(module, __webpack_exports__, __webpack_require__) {
;
__webpack_require__.r(__webpack_exports__);
var withDefaults = function withDefaults(component, defaultProps) {
component.defaultProps = defaultProps;
return component;
};
/* harmony default export */ __webpack_exports__["default"] = (withDefaults);
/***/ }),
/***/ 2:
/***/ (function(module, exports) {
module.exports = require("styled-jsx/style");
/***/ }),
/***/ 3:
/***/ (function(module, exports) {
module.exports = require("react");
/***/ }),
/***/ 5:
/***/ (function(module, __webpack_exports__, __webpack_require__) {
;
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _use_theme__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(6);
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "default", function() { return _use_theme__WEBPACK_IMPORTED_MODULE_0__["default"]; });
/***/ }),
/***/ 6:
/***/ (function(module, __webpack_exports__, __webpack_require__) {
;
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(3);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _theme_context__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(7);
var useTheme = function useTheme() {
return react__WEBPACK_IMPORTED_MODULE_0___default.a.useContext(_theme_context__WEBPACK_IMPORTED_MODULE_1__["default"]);
};
/* harmony default export */ __webpack_exports__["default"] = (useTheme);
/***/ }),
/***/ 64:
/***/ (function(module, __webpack_exports__, __webpack_require__) {
;
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ButtonGroupContext", function() { return ButtonGroupContext; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "useButtonGroupContext", function() { return useButtonGroupContext; });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(3);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
var defaultContext = {
isButtonGroup: false,
disabled: false
};
var ButtonGroupContext = react__WEBPACK_IMPORTED_MODULE_0___default.a.createContext(defaultContext);
var useButtonGroupContext = function useButtonGroupContext() {
return react__WEBPACK_IMPORTED_MODULE_0___default.a.useContext(ButtonGroupContext);
};
/***/ }),
/***/ 7:
/***/ (function(module, __webpack_exports__, __webpack_require__) {
;
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(3);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _themes_default__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(8);
var ThemeContext = react__WEBPACK_IMPORTED_MODULE_0___default.a.createContext(_themes_default__WEBPACK_IMPORTED_MODULE_1__["default"]);
/* harmony default export */ __webpack_exports__["default"] = (ThemeContext);
/***/ }),
/***/ 72:
/***/ (function(module, __webpack_exports__, __webpack_require__) {
;
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _button_group__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(73);
/* harmony default export */ __webpack_exports__["default"] = (_button_group__WEBPACK_IMPORTED_MODULE_0__["default"]);
/***/ }),
/***/ 73:
/***/ (function(module, __webpack_exports__, __webpack_require__) {
;
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var styled_jsx_style__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2);
/* harmony import */ var styled_jsx_style__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(styled_jsx_style__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(3);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _styles_use_theme__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(5);
/* harmony import */ var _utils_with_defaults__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(19);
/* harmony import */ var _button_group_context__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(64);
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
var defaultProps = {
ghost: false,
disabled: false,
vertical: false,
size: 'medium',
className: '',
variant: 'line',
color: 'default'
};
var getGroupBorderColors = function getGroupBorderColors(palette, props) {
var color = props.color,
variant = props.variant;
if (variant === 'solid') return palette.cNeutral8;
var colors = {
"default": palette.cNeutral2,
primary: palette.cTheme5,
secondary: palette.cNeutral7,
success: palette.success,
error: palette.error,
warning: palette.warning
};
var withoutLightType = color.replace('-light', '');
return colors[withoutLightType] || colors["default"];
};
var ButtonGroup = function ButtonGroup(groupProps) {
var theme = Object(_styles_use_theme__WEBPACK_IMPORTED_MODULE_2__["default"])();
var disabled = groupProps.disabled,
size = groupProps.size,
color = groupProps.color,
variant = groupProps.variant,
ghost = groupProps.ghost,
vertical = groupProps.vertical,
children = groupProps.children,
className = groupProps.className,
props = _objectWithoutProperties(groupProps, ["disabled", "size", "color", "variant", "ghost", "vertical", "children", "className"]);
var initialValue = Object(react__WEBPACK_IMPORTED_MODULE_1__["useMemo"])(function () {
return {
disabled: disabled,
size: size,
variant: variant === 'solid' ? variant : 'line',
color: color,
ghost: ghost,
isButtonGroup: true
};
}, [disabled, size, color]);
var border = Object(react__WEBPACK_IMPORTED_MODULE_1__["useMemo"])(function () {
return getGroupBorderColors(theme.palette, groupProps);
}, [theme, color, disabled, ghost]);
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(_button_group_context__WEBPACK_IMPORTED_MODULE_4__["ButtonGroupContext"].Provider, {
value: initialValue
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("div", _extends({}, props, {
className: styled_jsx_style__WEBPACK_IMPORTED_MODULE_0___default.a.dynamic([["4258922295", [theme.expressiveness.R2, theme.layout.gapQuarter, theme.expressiveness.L1, theme.expressiveness.cLineStyle1, border, theme.expressiveness.L1, theme.expressiveness.cLineStyle1, border, theme.expressiveness.L1, theme.expressiveness.cLineStyle1, border]]]) + " " + (props && props.className != null && props.className || "btn-group ".concat(vertical ? 'vertical' : 'horizontal', " ").concat(className))
}), children, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(styled_jsx_style__WEBPACK_IMPORTED_MODULE_0___default.a, {
id: "4258922295",
dynamic: [theme.expressiveness.R2, theme.layout.gapQuarter, theme.expressiveness.L1, theme.expressiveness.cLineStyle1, border, theme.expressiveness.L1, theme.expressiveness.cLineStyle1, border, theme.expressiveness.L1, theme.expressiveness.cLineStyle1, border]
}, ".btn-group.__jsx-style-dynamic-selector{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;border-radius:".concat(theme.expressiveness.R2, ";margin:").concat(theme.layout.gapQuarter, ";border:").concat(theme.expressiveness.L1, " ").concat(theme.expressiveness.cLineStyle1, " ").concat(border, ";background-color:transparent;overflow:hidden;height:-webkit-min-content;height:-moz-min-content;height:min-content;}.vertical.__jsx-style-dynamic-selector{-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}.btn-group.__jsx-style-dynamic-selector .btn{border:none;}.btn-group.__jsx-style-dynamic-selector .btn .text{top:0;}.horizontal.__jsx-style-dynamic-selector .btn:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0;border-left:").concat(theme.expressiveness.L1, " ").concat(theme.expressiveness.cLineStyle1, " ").concat(border, ";}.horizontal.__jsx-style-dynamic-selector .btn:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0;}.vertical.__jsx-style-dynamic-selector .btn:not(:first-child){border-top-left-radius:0;border-top-right-radius:0;border-top:").concat(theme.expressiveness.L1, " ").concat(theme.expressiveness.cLineStyle1, " ").concat(border, ";}.vertical.__jsx-style-dynamic-selector .btn:not(:last-child){border-bottom-left-radius:0;border-bottom-right-radius:0;}"))));
};
var MemoButtonGroup = react__WEBPACK_IMPORTED_MODULE_1___default.a.memo(ButtonGroup);
/* harmony default export */ __webpack_exports__["default"] = (Object(_utils_with_defaults__WEBPACK_IMPORTED_MODULE_3__["default"])(MemoButtonGroup, defaultProps));
/***/ }),
/***/ 8:
/***/ (function(module, __webpack_exports__, __webpack_require__) {
;
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "palette", function() { return palette; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "expressiveness", function() { return expressiveness; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "font", function() { return font; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "breakpoints", function() { return breakpoints; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "layout", function() { return layout; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "themes", function() { return themes; });
/* harmony import */ var _shared__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(9);
var palette = {
/* eslint-disable @typescript-eslint/camelcase */
accents_1: '#fafafa',
accents_2: '#eaeaea',
accents_3: '#999',
accents_4: '#888',
accents_5: '#666',
accents_6: '#444',
accents_7: '#333',
accents_8: '#111',
/* eslint-enable camelcase */
background: '#fff',
foreground: '#000',
selection: '#79ffe1',
cyan: '#50e3c2',
cyanLighter: '#aaffec',
cyanLight: '#79ffe1',
cyanDark: '#29bc9b',
violet: '#7928ca',
violetLighter: '#e3d7fc',
violetLight: '#8a63d2',
violetDark: '#4c2889',
purple: '#f81ce5',
alert: '#ff0080',
magenta: '#eb367f',
link: '#0070f3',
// conflux ui
secondary: '#666',
error: '#e15c56',
errorLight: '#fbebeb',
errorDark: '#b34a50',
success: '#7cd77b',
successLight: '#effaef',
successDark: '#61be75',
warning: '#ffc438',
warningLight: '#fef1ea',
warningDark: '#fb7a03',
code: '#f81ce5',
border: '#eaeaea',
cTheme0: '#f0f5ff',
cTheme1: '#dfe8ff',
cTheme2: '#9cb4ff',
cTheme3: '#788bef',
cTheme4: '#4b64e9',
cTheme5: '#1e3de4',
cTheme6: '#0f23bd',
cTheme7: '#030f8e',
cNeutral0: '#f9fafb',
cNeutral1: '#f1f3f6',
cNeutral2: '#ebeced',
cNeutral3: '#ccc',
cNeutral4: '#999',
cNeutral5: '#666',
cNeutral6: '#444',
cNeutral7: '#333',
cNeutral8: '#fff'
};
var expressiveness = {
linkStyle: 'none',
linkHoverStyle: 'none',
dropdownBoxShadow: '0 4px 4px 0 rgba(0, 0, 0, 0.02)',
scrollerStart: 'rgba(255, 255, 255, 1)',
scrollerEnd: 'rgba(255, 255, 255, 0)',
shadowSmall: '0 5px 10px rgba(0, 0, 0, 0.12)',
shadowMedium: '0 8px 30px rgba(0, 0, 0, 0.12)',
shadowLarge: '0 30px 60px rgba(0, 0, 0, 0.12)',
portalOpacity: 0.25,
// radius
R0: '0',
R1: '2px',
R2: '4px',
R3: '8px',
R4: '12px',
R5: '50%',
// border-width
L1: '1px',
L2: '2px',
L4: '4px',
// border-style
cLineStyle1: 'solid',
cLineStyle2: 'dashed',
cLineStyle3: 'dotted',
// drop shadows
D0: 'none',
D1: '0px 4px 6px -4px rgba(0, 0, 0, 0.12)',
D2: '0px 6px 16px rgba(0, 0, 0, 0.08)',
D3: '0px 8px 24px 8px rgba(0, 0, 0, 0.06)',
D4: '8px 12px 16px rgba(0, 0, 0, 0.08)',
D5: '12px 12px 24px rgba(0, 0, 0, 0.12)'
};
var font = _shared__WEBPACK_IMPORTED_MODULE_0__["defaultFont"];
var breakpoints = _shared__WEBPACK_IMPORTED_MODULE_0__["defaultBreakpoints"];
var layout = _shared__WEBPACK_IMPORTED_MODULE_0__["defaultLayout"];
var themes = {
type: 'light',
font: font,
layout: layout,
palette: palette,
breakpoints: breakpoints,
expressiveness: expressiveness
};
/* harmony default export */ __webpack_exports__["default"] = (themes);
/***/ }),
/***/ 9:
/***/ (function(module, __webpack_exports__, __webpack_require__) {
;
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "defaultFont", function() { return defaultFont; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "defaultBreakpoints", function() { return defaultBreakpoints; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "defaultLayout", function() { return defaultLayout; });
var defaultFont = {
sans: '"Circular Std", "PingFang SC", -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif',
mono: 'Menlo, Monaco, Lucida Console, Liberation Mono, DejaVu Sans Mono, Bitstream Vera Sans Mono, Courier New, monospace'
};
var defaultBreakpoints = {
xs: {
min: '0',
max: '650px'
},
sm: {
min: '650px',
max: '900px'
},
md: {
min: '900px',
max: '1280px'
},
lg: {
min: '1280px',
max: '1920px'
},
xl: {
min: '1920px',
max: '10000px'
}
};
var defaultLayout = {
gap: '1.1429rem',
gapNegative: '-1.1429rem',
gapHalf: '0.5714rem',
gapHalfNegative: '-0.5714rem',
gapQuarter: '0.2857rem',
gapQuarterNegative: '-0.2857rem',
pageMargin: '16px',
pageWidth: '950px',
pageWidthWithMargin: '982px',
breakpointMobile: defaultBreakpoints.xs.max,
breakpointTablet: defaultBreakpoints.sm.max // radius: '5px',
};
/***/ })
/******/ })));