You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					518 lines
				
				19 KiB
			
		
		
			
		
	
	
					518 lines
				
				19 KiB
			| 
								 
											3 years ago
										 
									 | 
							
								"use strict";
							 | 
						||
| 
								 | 
							
								/* eslint-disable max-len */
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 * @interface Theme
							 | 
						||
| 
								 | 
							
								 * @load ./theme.doc.md
							 | 
						||
| 
								 | 
							
								 * @section design-system
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								Object.defineProperty(exports, "__esModule", { value: true });
							 | 
						||
| 
								 | 
							
								exports.borderWidths = exports.breakpoints = exports.borders = exports.shadows = exports.font = exports.space = exports.sizes = exports.fontSizes = exports.fontWeights = exports.lineHeights = exports.colors = exports.VariantValues = void 0;
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 * Color palette.
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 * @memberof Theme
							 | 
						||
| 
								 | 
							
								 * @alias colors
							 | 
						||
| 
								 | 
							
								 * @property {string} primary100=#4268F6      <div style="background: #4268F6; height: 20px;" />
							 | 
						||
| 
								 | 
							
								 * @property {string} primary80=#6483F8     <div style="background: #6483F8; height: 20px;" />
							 | 
						||
| 
								 | 
							
								 * @property {string} primary60=#879FFA     <div style="background: #879FFA; height: 20px;" />
							 | 
						||
| 
								 | 
							
								 * @property {string} primary40=#A9BAFA     <div style="background: #A9BAFA; height: 20px;" />
							 | 
						||
| 
								 | 
							
								 * @property {string} primary20=#CBD5FD     <div style="background: #CBD5FD; height: 20px;" />
							 | 
						||
| 
								 | 
							
								 * @property {string} accent=#38CAF1      <div style="background: #38CAF1; height: 20px;" />
							 | 
						||
| 
								 | 
							
								 * @property {string} love=#e6282b      <div style="background: #e6282b; height: 20px;" />
							 | 
						||
| 
								 | 
							
								 * @property {string} grey100=#1C1C38     <div style="background: #1C1C38; height: 20px;" />
							 | 
						||
| 
								 | 
							
								 * @property {string} grey80=#454655      <div style="background: #454655; height: 20px;" />
							 | 
						||
| 
								 | 
							
								 * @property {string} grey60=#898A9A      <div style="background: #898A9A; height: 20px;" />
							 | 
						||
| 
								 | 
							
								 * @property {string} grey40=#C0C0CA      <div style="background: #C0C0CA; height: 20px;" />
							 | 
						||
| 
								 | 
							
								 * @property {string} grey20=#F6F7FB      <div style="background: #F6F7FB; height: 20px;" />
							 | 
						||
| 
								 | 
							
								 * @property {string} white=#fff      <div style="background: #fff; height: 20px;" />
							 | 
						||
| 
								 | 
							
								 * @property {string} errorDark=#DE405D     <div style="background: #DE405D; height: 20px;" />
							 | 
						||
| 
								 | 
							
								 * @property {string} error=#FF4567     <div style="background: #FF4567; height: 20px;" />
							 | 
						||
| 
								 | 
							
								 * @property {string} errorLight=#FFA5B5      <div style="background: #FFA5B5; height: 20px;" />
							 | 
						||
| 
								 | 
							
								 * @property {string} successDark=#32A887     <div style="background: #32A887; height: 20px;" />
							 | 
						||
| 
								 | 
							
								 * @property {string} success=#70C9B0     <div style="background: #70C9B0; height: 20px;" />
							 | 
						||
| 
								 | 
							
								 * @property {string} successLight=#DBF0F1      <div style="background: #DBF0F1; height: 20px;" />
							 | 
						||
| 
								 | 
							
								 * @property {string} infoDark=#4268F6      <div style="background: #4268F6; height: 20px;" />
							 | 
						||
| 
								 | 
							
								 * @property {string} info=#879FFA      <div style="background: #879FFA; height: 20px;" />
							 | 
						||
| 
								 | 
							
								 * @property {string} infoLight=#CBD5FD     <div style="background: #CBD5FD; height: 20px;" />
							 | 
						||
| 
								 | 
							
								 * @property {string} filterBg=#343F87      <div style="background: #343F87; height: 20px;" />
							 | 
						||
| 
								 | 
							
								 * @property {string} hoverBg=#535B8E     <div style="background: #535B8E; height: 20px;" />
							 | 
						||
| 
								 | 
							
								 * @property {string} inputBorder=#898A9A     <div style="background: #898A9A; height: 20px;" />
							 | 
						||
| 
								 | 
							
								 * @property {string} border=#DDE1E5,     <div style="background: #DDE1E5; height: 20px;" />
							 | 
						||
| 
								 | 
							
								 * @property {string} separator=#C0C0CA     <div style="background: #C0C0CA; height: 20px;" />
							 | 
						||
| 
								 | 
							
								 * @property {string} highlight=#F6F7FB     <div style="background: #F6F7FB; height: 20px;" />
							 | 
						||
| 
								 | 
							
								 * @property {string} filterInputBorder=rgba(255,255,255,0.15)      <div style="background: rgba(255,255,255,0.15); height: 20px;" />
							 | 
						||
| 
								 | 
							
								 * @property {string} filterDisabled=rgba(83,91,142,0.05)      <div style="background: rgba(83,91,142,0.05); height: 20px;" />
							 | 
						||
| 
								 | 
							
								 * @property {string} bg=#F6F7FB      <div style="background: #F6F7FB; height: 20px;" />
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								const colors = {
							 | 
						||
| 
								 | 
							
								    // Primary
							 | 
						||
| 
								 | 
							
								    primary100: '#4268F6',
							 | 
						||
| 
								 | 
							
								    primary80: '#6483F8',
							 | 
						||
| 
								 | 
							
								    primary60: '#879FFA',
							 | 
						||
| 
								 | 
							
								    primary40: '#A9BAFA',
							 | 
						||
| 
								 | 
							
								    primary20: '#CBD5FD',
							 | 
						||
| 
								 | 
							
								    // accent
							 | 
						||
| 
								 | 
							
								    accent: '#38CAF1',
							 | 
						||
| 
								 | 
							
								    love: '#4D70EB',
							 | 
						||
| 
								 | 
							
								    // grey
							 | 
						||
| 
								 | 
							
								    grey100: '#1C1C38',
							 | 
						||
| 
								 | 
							
								    grey80: '#454655',
							 | 
						||
| 
								 | 
							
								    grey60: '#898A9A',
							 | 
						||
| 
								 | 
							
								    grey40: '#C0C0CA',
							 | 
						||
| 
								 | 
							
								    grey20: '#F6F7FB',
							 | 
						||
| 
								 | 
							
								    white: '#fff',
							 | 
						||
| 
								 | 
							
								    // Alerts
							 | 
						||
| 
								 | 
							
								    errorDark: '#DE405D',
							 | 
						||
| 
								 | 
							
								    error: '#FF4567',
							 | 
						||
| 
								 | 
							
								    errorLight: '#FFA5B5',
							 | 
						||
| 
								 | 
							
								    successDark: '#32A887',
							 | 
						||
| 
								 | 
							
								    success: '#70C9B0',
							 | 
						||
| 
								 | 
							
								    successLight: '#DBF0F1',
							 | 
						||
| 
								 | 
							
								    infoDark: '#4268F6',
							 | 
						||
| 
								 | 
							
								    info: '#879FFA',
							 | 
						||
| 
								 | 
							
								    infoLight: '#CBD5FD',
							 | 
						||
| 
								 | 
							
								    // Backgrounds
							 | 
						||
| 
								 | 
							
								    filterBg: '#343F87',
							 | 
						||
| 
								 | 
							
								    hoverBg: '#535B8E',
							 | 
						||
| 
								 | 
							
								    // global
							 | 
						||
| 
								 | 
							
								    border: '#DDE1E5',
							 | 
						||
| 
								 | 
							
								    // Elements
							 | 
						||
| 
								 | 
							
								    inputBorder: '#C0C0CA',
							 | 
						||
| 
								 | 
							
								    separator: '#C0C0CA',
							 | 
						||
| 
								 | 
							
								    highlight: '#F6F7FB',
							 | 
						||
| 
								 | 
							
								    filterInputBorder: 'rgba(255,255,255,0.15)',
							 | 
						||
| 
								 | 
							
								    filterDisabled: 'rgba(83,91,142,0.05)',
							 | 
						||
| 
								 | 
							
								    bg: '#F6F7FB',
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								exports.colors = colors;
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 * Sizes can be used with paddings, margins etc.
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 * This is the example of using responsive margin with Box component
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 * ```javascript
							 | 
						||
| 
								 | 
							
								 * <Box p=['default', 'xl']>some content</Box>
							 | 
						||
| 
								 | 
							
								 * ```
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 * This component will have 8px padding for lowest breakpoint and 24px above
							 | 
						||
| 
								 | 
							
								 * this breakpoint.
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 * @memberof Theme
							 | 
						||
| 
								 | 
							
								 * @alias space
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								 * @property {string} xs=2px        2px - <span class="space-box" style="width: 2px;" />
							 | 
						||
| 
								 | 
							
								 * @property {string} sm=4px        4px - <span class="space-box" style="width: 4px;" />
							 | 
						||
| 
								 | 
							
								 * @property {string} default=8px   8px - <span class="space-box" style="width: 8px;" /> (alias md)
							 | 
						||
| 
								 | 
							
								 * @property {string} lg=16px       16px - <span class="space-box" style="width: 16px;" />
							 | 
						||
| 
								 | 
							
								 * @property {string} xl=24px       24px - <span class="space-box" style="width: 24px;" />
							 | 
						||
| 
								 | 
							
								 * @property {string} xxl=32px      32px - <span class="space-box" style="width: 32px;" />
							 | 
						||
| 
								 | 
							
								 * @property {string} x3=48px       48px - <span class="space-box" style="width: 48px;" />
							 | 
						||
| 
								 | 
							
								 * @property {string} x4=64px       64px - <span class="space-box" style="width: 64px;" />
							 | 
						||
| 
								 | 
							
								 * @property {string} x5=80px       80px - <span class="space-box" style="width: 80px;" />
							 | 
						||
| 
								 | 
							
								 * @property {string} x6=128px      128px - <span class="space-box" style="width: 128px;" />
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								const space = {
							 | 
						||
| 
								 | 
							
								    xs: '2px',
							 | 
						||
| 
								 | 
							
								    sm: '4px',
							 | 
						||
| 
								 | 
							
								    default: '8px',
							 | 
						||
| 
								 | 
							
								    md: '8px',
							 | 
						||
| 
								 | 
							
								    lg: '16px',
							 | 
						||
| 
								 | 
							
								    xl: '24px',
							 | 
						||
| 
								 | 
							
								    xxl: '32px',
							 | 
						||
| 
								 | 
							
								    x3: '48px',
							 | 
						||
| 
								 | 
							
								    x4: '64px',
							 | 
						||
| 
								 | 
							
								    x5: '80px',
							 | 
						||
| 
								 | 
							
								    x6: '128px',
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								exports.space = space;
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 * @memberof Theme
							 | 
						||
| 
								 | 
							
								 * @alias sizes
							 | 
						||
| 
								 | 
							
								 * @property {string} navbarHeight=64px
							 | 
						||
| 
								 | 
							
								 * @property {string} sidebarWidth=300px
							 | 
						||
| 
								 | 
							
								 * @property {string} maxFormWidth=740px
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								const sizes = {
							 | 
						||
| 
								 | 
							
								    navbarHeight: '64px',
							 | 
						||
| 
								 | 
							
								    sidebarWidth: '300px',
							 | 
						||
| 
								 | 
							
								    maxFormWidth: '740px',
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								exports.sizes = sizes;
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 * @memberof Theme
							 | 
						||
| 
								 | 
							
								 * @alias fontSizes
							 | 
						||
| 
								 | 
							
								 * @property {string} xs=10px      <div style="font-size: 10px;">'xs' font size</div>
							 | 
						||
| 
								 | 
							
								 * @property {string} sm=12px      <div style="font-size: 12px;">'sm' font size</div>
							 | 
						||
| 
								 | 
							
								 * @property {string} default=14px (alias md) <div style="font-size: 14px;">'default' font size</div>
							 | 
						||
| 
								 | 
							
								 * @property {string} lg=16px      <div style="font-size: 16px;">'lg' font size</div>
							 | 
						||
| 
								 | 
							
								 * @property {string} xl=18px      <div style="font-size: 18px;">'xl' font size</div>
							 | 
						||
| 
								 | 
							
								 * @property {string} h4=24px      <div style="font-size: 24px;">'h4' font size</div>
							 | 
						||
| 
								 | 
							
								 * @property {string} h3=28px      <div style="font-size: 28px;">'h3' font size</div>
							 | 
						||
| 
								 | 
							
								 * @property {string} h2=32px      <div style="font-size: 32px;">'h2' font size</div>
							 | 
						||
| 
								 | 
							
								 * @property {string} h1=40px      <div style="font-size: 40px;">'h1' font size</div>
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								const fontSizes = {
							 | 
						||
| 
								 | 
							
								    xs: '10px',
							 | 
						||
| 
								 | 
							
								    sm: '12px',
							 | 
						||
| 
								 | 
							
								    default: '14px',
							 | 
						||
| 
								 | 
							
								    md: '14px',
							 | 
						||
| 
								 | 
							
								    lg: '16px',
							 | 
						||
| 
								 | 
							
								    xl: '18px',
							 | 
						||
| 
								 | 
							
								    h4: '24px',
							 | 
						||
| 
								 | 
							
								    h3: '28px',
							 | 
						||
| 
								 | 
							
								    h2: '32px',
							 | 
						||
| 
								 | 
							
								    h1: '40px',
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								exports.fontSizes = fontSizes;
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 * @memberof Theme
							 | 
						||
| 
								 | 
							
								 * @alias fontWeights
							 | 
						||
| 
								 | 
							
								 * @property {string} lighter=200
							 | 
						||
| 
								 | 
							
								 * @property {string} lighter=300
							 | 
						||
| 
								 | 
							
								 * @property {string} normal=400
							 | 
						||
| 
								 | 
							
								 * @property {string} normal=500
							 | 
						||
| 
								 | 
							
								 * @property {string} bolder=900
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								const fontWeights = {
							 | 
						||
| 
								 | 
							
								    lighter: 200,
							 | 
						||
| 
								 | 
							
								    light: 300,
							 | 
						||
| 
								 | 
							
								    normal: 400,
							 | 
						||
| 
								 | 
							
								    bold: 500,
							 | 
						||
| 
								 | 
							
								    bolder: 900,
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								exports.fontWeights = fontWeights;
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 * @memberof Theme
							 | 
						||
| 
								 | 
							
								 * @alias lineHeights
							 | 
						||
| 
								 | 
							
								 * @property {string} xs=10px
							 | 
						||
| 
								 | 
							
								 * @property {string} sm=12px
							 | 
						||
| 
								 | 
							
								 * @property {string} default=16px (alias md)
							 | 
						||
| 
								 | 
							
								 * @property {string} lg=24px
							 | 
						||
| 
								 | 
							
								 * @property {string} xl=32px
							 | 
						||
| 
								 | 
							
								 * @property {string} xxl=40px
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								const lineHeights = {
							 | 
						||
| 
								 | 
							
								    xs: '10px',
							 | 
						||
| 
								 | 
							
								    sm: '12px',
							 | 
						||
| 
								 | 
							
								    default: '16px',
							 | 
						||
| 
								 | 
							
								    md: '16px',
							 | 
						||
| 
								 | 
							
								    lg: '24px',
							 | 
						||
| 
								 | 
							
								    xl: '32px',
							 | 
						||
| 
								 | 
							
								    xxl: '40px',
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								exports.lineHeights = lineHeights;
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 * This dimension can be used with `testShadow` and `boxShadow` props provided
							 | 
						||
| 
								 | 
							
								 * by {@link ShadowProps}
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 * ```javascript
							 | 
						||
| 
								 | 
							
								 * <Box variant="grey" boxShadow="card">Some content...</Box>
							 | 
						||
| 
								 | 
							
								 * ```
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 * @alias shadows
							 | 
						||
| 
								 | 
							
								 * @memberof Theme
							 | 
						||
| 
								 | 
							
								 * @property {string} login              <div class="shadow-div" style="box-shadow: 0 15px 24px 0 rgba(137,138,154,0.15);"/>
							 | 
						||
| 
								 | 
							
								 * @property {string} cardHover          <div class="shadow-div" style="box-shadow: 0 4px 12px 0 rgba(137,138,154,0.4);"/>
							 | 
						||
| 
								 | 
							
								 * @property {string} drawer             <div class="shadow-div" style="box-shadow: -2px 0 8px 0 rgba(137,138,154,0.2);"/>
							 | 
						||
| 
								 | 
							
								 * @property {string} card               <div class="shadow-div" style="box-shadow: 0 1px 6px 0 rgba(137,138,154,0.4);"/>
							 | 
						||
| 
								 | 
							
								 * @property {string} inputFocus         <div class="shadow-div" style="box-shadow: 0 2px 4px 0 rgba(135,159,250,0.4);"/>
							 | 
						||
| 
								 | 
							
								 * @property {string} buttonFocus        <div class="shadow-div" style="box-shadow: 0 4px 6px 0 rgba(56,202,241,0.3);"/>
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								const shadows = {
							 | 
						||
| 
								 | 
							
								    login: '0 15px 24px 0 rgba(137,138,154,0.15)',
							 | 
						||
| 
								 | 
							
								    cardHover: '0 4px 12px 0 rgba(137,138,154,0.4)',
							 | 
						||
| 
								 | 
							
								    drawer: '-2px 0 8px 0 rgba(137,138,154,0.2)',
							 | 
						||
| 
								 | 
							
								    card: '0 1px 6px 0 rgba(137,138,154,0.4)',
							 | 
						||
| 
								 | 
							
								    inputFocus: '0 2px 4px 0 rgba(135,159,250,0.4)',
							 | 
						||
| 
								 | 
							
								    buttonFocus: '0 4px 6px 0 rgba(56,202,241,0.3)',
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								exports.shadows = shadows;
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 * Responsive breakpoints
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 * How to use them - simply pass an array to given prop:
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 * ```javascript
							 | 
						||
| 
								 | 
							
								 * // Showing box on mobile devices
							 | 
						||
| 
								 | 
							
								 * <Box display={["block", "none"]}>...</Box>
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 * // responsive width
							 | 
						||
| 
								 | 
							
								 * <Box width={[1, 1/2, 1/3, 1/4]}>...</Box>
							 | 
						||
| 
								 | 
							
								 * ```
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 * @memberof Theme
							 | 
						||
| 
								 | 
							
								 * @alias breakpoints
							 | 
						||
| 
								 | 
							
								 * @property {string} 0=577px
							 | 
						||
| 
								 | 
							
								 * @property {string} 1=769px
							 | 
						||
| 
								 | 
							
								 * @property {string} 2=1024px
							 | 
						||
| 
								 | 
							
								 * @property {string} 3=1324px
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								const breakpoints = [
							 | 
						||
| 
								 | 
							
								    '577px',
							 | 
						||
| 
								 | 
							
								    '769px',
							 | 
						||
| 
								 | 
							
								    '1024px',
							 | 
						||
| 
								 | 
							
								    '1324px',
							 | 
						||
| 
								 | 
							
								];
							 | 
						||
| 
								 | 
							
								exports.breakpoints = breakpoints;
							 | 
						||
| 
								 | 
							
								const font = '\'Roboto\', sans-serif';
							 | 
						||
| 
								 | 
							
								exports.font = font;
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 * Border styles
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 * @memberof Theme
							 | 
						||
| 
								 | 
							
								 * @alias borders
							 | 
						||
| 
								 | 
							
								 * @property {string} input
							 | 
						||
| 
								 | 
							
								 * @property {string} filterInput
							 | 
						||
| 
								 | 
							
								 * @property {string} bg
							 | 
						||
| 
								 | 
							
								 * @property {string} default
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								const borders = {
							 | 
						||
| 
								 | 
							
								    input: '1px solid #C0C0CA',
							 | 
						||
| 
								 | 
							
								    filterInput: ' 1px rgba(255,255,255,0. solid15)',
							 | 
						||
| 
								 | 
							
								    bg: '1px solid #F6F7FB',
							 | 
						||
| 
								 | 
							
								    default: '1px solid #DDE1E5',
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								exports.borders = borders;
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 * Border widths set for an entire layout. If you like to have border radius in Button's and Box'es
							 | 
						||
| 
								 | 
							
								 * Then set default property.
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 * @memberof Theme
							 | 
						||
| 
								 | 
							
								 * @alias borderWidths
							 | 
						||
| 
								 | 
							
								 * @property {string} default - default border with
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								const borderWidths = {
							 | 
						||
| 
								 | 
							
								    default: '0px',
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								exports.borderWidths = borderWidths;
							 | 
						||
| 
								 | 
							
								exports.VariantValues = [
							 | 
						||
| 
								 | 
							
								    'primary', 'danger', 'success', 'info', 'secondary', 'default', 'light',
							 | 
						||
| 
								 | 
							
								];
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 * The color utility parses a component's color and bg props and converts them into CSS
							 | 
						||
| 
								 | 
							
								 * declarations. By default the raw value of the prop is returned. But most often you
							 | 
						||
| 
								 | 
							
								 * would use one of the color from the [color palette]{@link colors}.
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 * @typedef {object} ColorProps
							 | 
						||
| 
								 | 
							
								 * @alias ColorProps
							 | 
						||
| 
								 | 
							
								 * @memberof Theme
							 | 
						||
| 
								 | 
							
								 * @property {string} [color]                 Text color. It could be either a #hash or
							 | 
						||
| 
								 | 
							
								 *                                            {@link colors} from css theme name like
							 | 
						||
| 
								 | 
							
								 *                                            `grey80`
							 | 
						||
| 
								 | 
							
								 * @property {string} [backgroundColor, bg]   Background color. Similar as above could be a
							 | 
						||
| 
								 | 
							
								 *                                            #hash or one of {@link colors}.
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 * The space utility converts shorthand margin and padding props to margin and padding
							 | 
						||
| 
								 | 
							
								 * CSS declarations.
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 * You can use as a value raw dimensions in "px" or one of the value from the
							 | 
						||
| 
								 | 
							
								 * [space scale]{@link space}.
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 * @typedef {object} SpaceProps
							 | 
						||
| 
								 | 
							
								 * @alias SpaceProps
							 | 
						||
| 
								 | 
							
								 * @memberof Theme
							 | 
						||
| 
								 | 
							
								 * @property {string} [margin, m]             margin
							 | 
						||
| 
								 | 
							
								 * @property {string} [marginTop, mt]         margin-top
							 | 
						||
| 
								 | 
							
								 * @property {string} [marginRight, mr]       margin-right
							 | 
						||
| 
								 | 
							
								 * @property {string} [marginBottom, mb]      margin-bottom
							 | 
						||
| 
								 | 
							
								 * @property {string} [marginLeft, ml]        margin-left
							 | 
						||
| 
								 | 
							
								 * @property {string} [marginX, mx]           margin-left and margin-right
							 | 
						||
| 
								 | 
							
								 * @property {string} [marginY, my]           margin-top and margin-bottom
							 | 
						||
| 
								 | 
							
								 * @property {string} [padding, p]            padding
							 | 
						||
| 
								 | 
							
								 * @property {string} [paddingTop, pt]        padding-top
							 | 
						||
| 
								 | 
							
								 * @property {string} [paddingRight, pr]      padding-right
							 | 
						||
| 
								 | 
							
								 * @property {string} [paddingBottom, pb]     padding-bottom
							 | 
						||
| 
								 | 
							
								 * @property {string} [paddingLeft, pl]       padding-left
							 | 
						||
| 
								 | 
							
								 * @property {string} [paddingX, px]          padding-left and padding-right
							 | 
						||
| 
								 | 
							
								 * @property {string} [paddingY, py]          padding-top and padding-bottom
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 * Set of props related to {@link space}. You can put there either string with 'px' or
							 | 
						||
| 
								 | 
							
								 * one of `space` properties like `sm`, `default`, `xl` etc.
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 * Typography props include _fontFamily_, _fontSize_, _fontWeight_, _lineHeight_, _letterSpacing_,
							 | 
						||
| 
								 | 
							
								 * _textAlign_, and _fontStyle_.
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 * @typedef {object} TypographyProps
							 | 
						||
| 
								 | 
							
								 * @alias TypographyProps
							 | 
						||
| 
								 | 
							
								 * @memberof Theme
							 | 
						||
| 
								 | 
							
								 * @property {string} [fontSize]    font-size. Could be either actual css value or key taken from
							 | 
						||
| 
								 | 
							
								 *                                  {@link fontSizes}
							 | 
						||
| 
								 | 
							
								 * @property {string} [fontWeight]  font-weight. Could be either actual css value or key taken from
							 | 
						||
| 
								 | 
							
								 *                                  {@link fontWeights}
							 | 
						||
| 
								 | 
							
								 * @property {string} [lineHeight]  line-height. Could be either actual css value or key taken from
							 | 
						||
| 
								 | 
							
								 *                                  {@link lineHeights}
							 | 
						||
| 
								 | 
							
								 * @property {string} [textAlign]   text-align
							 | 
						||
| 
								 | 
							
								 * @property {string} [fontFamily]  font-family
							 | 
						||
| 
								 | 
							
								 * @property {string} [fontStyle]   font-style
							 | 
						||
| 
								 | 
							
								 * @property {string} [letterSpacing]  letter-spacing
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 * The layout utility includes style props for width, height, display, minWidth,
							 | 
						||
| 
								 | 
							
								 * minHeight, maxWidth, maxHeight, size, verticalAlign, overflow, overflowX, and overflowY.
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 * The width prop is transformed based on the following:
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 * - Numbers from 0-1 are converted to percentage widths.
							 | 
						||
| 
								 | 
							
								 * - Numbers greater than 1 are converted to pixel values.
							 | 
						||
| 
								 | 
							
								 * - String values are passed as raw CSS values.
							 | 
						||
| 
								 | 
							
								 * - And arrays are converted to responsive width styles.
							 | 
						||
| 
								 | 
							
								 * - the width prop will attempt to pick up values from the {@link sizes}
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 * @example
							 | 
						||
| 
								 | 
							
								 * // width `50%`
							 | 
						||
| 
								 | 
							
								 * <Box width={1/2} />
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 * // width `256px`
							 | 
						||
| 
								 | 
							
								 * <Box width={256} />
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 * // width `'2em'`
							 | 
						||
| 
								 | 
							
								 * <Box width='2em' />
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 * // width `100%` on all viewport and `50%` from the smallest breakpoint and up
							 | 
						||
| 
								 | 
							
								 * <Box width={[ 1, 1/2 ]} />
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 * // width from `sizes`
							 | 
						||
| 
								 | 
							
								 * <Box height='navbarHeight' />
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 * @typedef {object} LayoutProps
							 | 
						||
| 
								 | 
							
								 * @alias LayoutProps
							 | 
						||
| 
								 | 
							
								 * @memberof Theme
							 | 
						||
| 
								 | 
							
								 * @property {string} [width]         width
							 | 
						||
| 
								 | 
							
								 * @property {string} [height]        height
							 | 
						||
| 
								 | 
							
								 * @property {string} [display]       display
							 | 
						||
| 
								 | 
							
								 * @property {string} [minWidth]      min-width
							 | 
						||
| 
								 | 
							
								 * @property {string} [minHeight]     min-height
							 | 
						||
| 
								 | 
							
								 * @property {string} [maxWidth]      max-width
							 | 
						||
| 
								 | 
							
								 * @property {string} [maxHeight]     max-height
							 | 
						||
| 
								 | 
							
								 * @property {string} [size]          size
							 | 
						||
| 
								 | 
							
								 * @property {string} [verticalAlign] vertical-align
							 | 
						||
| 
								 | 
							
								 * @property {string} [overflow]      overflow
							 | 
						||
| 
								 | 
							
								 * @property {string} [overflowX]     overflow-x
							 | 
						||
| 
								 | 
							
								 * @property {string} [overflowY]     overflow-y
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 * The flexbox utility includes style props for alignItems, alignContent, justifyItems,
							 | 
						||
| 
								 | 
							
								 * justifyContent, flexWrap, flexDirection, flex, flexGrow, flexShrink, flexBasis,
							 | 
						||
| 
								 | 
							
								 * justifySelf, alignSelf, and order.
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 * The width prop is transformed based on the following:
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 * - Numbers from 0-1 are converted to percentage widths.
							 | 
						||
| 
								 | 
							
								 * - Numbers greater than 1 are converted to pixel values.
							 | 
						||
| 
								 | 
							
								 * - String values are passed as raw CSS values.
							 | 
						||
| 
								 | 
							
								 * - And arrays are converted to responsive width styles.
							 | 
						||
| 
								 | 
							
								 * - the width prop will attempt to pick up values from the {@link sizes}
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 * @example
							 | 
						||
| 
								 | 
							
								 * // alignItems
							 | 
						||
| 
								 | 
							
								 * <Box alignItems='center' />
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 * // alignContent
							 | 
						||
| 
								 | 
							
								 * <Box alignContent='center' />
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 * // justifyContent
							 | 
						||
| 
								 | 
							
								 * <Box justifyContent='center' />
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 * // flexWrap
							 | 
						||
| 
								 | 
							
								 * <Box flexWrap='wrap' />
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 * // flexBasis
							 | 
						||
| 
								 | 
							
								 * <Box flexBasis='auto' />
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 * // flexDirection
							 | 
						||
| 
								 | 
							
								 * <Box flexDirection='column' />
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 * // flex
							 | 
						||
| 
								 | 
							
								 * <Box flex />
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 * // justifySelf
							 | 
						||
| 
								 | 
							
								 * <Box justifySelf='center' />
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 * // alignSelf
							 | 
						||
| 
								 | 
							
								 * <Box alignSelf='center' />
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 * // order
							 | 
						||
| 
								 | 
							
								 * <Box order='2' />
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 * @typedef {object} FlexboxProps
							 | 
						||
| 
								 | 
							
								 * @alias FlexboxProps
							 | 
						||
| 
								 | 
							
								 * @memberof Theme
							 | 
						||
| 
								 | 
							
								 * @property {string} [alignItems]         align-items
							 | 
						||
| 
								 | 
							
								 * @property {string} [alignContent]       align-content
							 | 
						||
| 
								 | 
							
								 * @property {string} [justifyItems]       justify-items
							 | 
						||
| 
								 | 
							
								 * @property {string} [justifyContent]     justify-content
							 | 
						||
| 
								 | 
							
								 * @property {string} [flexWrap]           flex-wrap
							 | 
						||
| 
								 | 
							
								 * @property {string} [flexDirection]      flex-direction
							 | 
						||
| 
								 | 
							
								 * @property {boolean} [flex]               flex
							 | 
						||
| 
								 | 
							
								 * @property {number|string} [flexGrow]           flex-grow
							 | 
						||
| 
								 | 
							
								 * @property {number} [flexShrink]         flex-shrink
							 | 
						||
| 
								 | 
							
								 * @property {string} [flexBasis]          flex-basis
							 | 
						||
| 
								 | 
							
								 * @property {string} [justifySelf]        justify-self
							 | 
						||
| 
								 | 
							
								 * @property {string} [alignSelf]          align-self
							 | 
						||
| 
								 | 
							
								 * @property {number|string} [order]              order
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 * Reused Variant Enum: `primary` | `danger` | `success` | `info` | `secondary` | `default`
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 * @typedef {Enum} VariantType
							 | 
						||
| 
								 | 
							
								 * @alias VariantType
							 | 
						||
| 
								 | 
							
								 * @memberof Theme
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 * The border utility includes all style props related to border
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 * @typedef {object} BorderProps
							 | 
						||
| 
								 | 
							
								 * @alias BorderProps
							 | 
						||
| 
								 | 
							
								 * @memberof Theme
							 | 
						||
| 
								 | 
							
								 * @property {string | number} [borderWidth]
							 | 
						||
| 
								 | 
							
								 * @property {string} [borderStyle]
							 | 
						||
| 
								 | 
							
								 * @property {string} [borderColor] It could be either a #hash or {@link colors}
							 | 
						||
| 
								 | 
							
								 * @property {string | number} [borderRadius]
							 | 
						||
| 
								 | 
							
								 * @property {string | number} [borderTop]
							 | 
						||
| 
								 | 
							
								 * @property {string | number} [borderTopWidth]
							 | 
						||
| 
								 | 
							
								 * @property {string} [borderTopStyle]
							 | 
						||
| 
								 | 
							
								 * @property {string} [borderTopColor] It could be either a #hash or {@link colors}
							 | 
						||
| 
								 | 
							
								 * @property {string | number} [borderTopLeftRadius]
							 | 
						||
| 
								 | 
							
								 * @property {string | number} [borderTopRightRadius]
							 | 
						||
| 
								 | 
							
								 * @property {string | number} [borderRight]
							 | 
						||
| 
								 | 
							
								 * @property {string | number} [borderRightWidth]
							 | 
						||
| 
								 | 
							
								 * @property {string} [borderRightStyle]
							 | 
						||
| 
								 | 
							
								 * @property {string} [borderRightColor] It could be either a #hash or {@link colors}
							 | 
						||
| 
								 | 
							
								 * @property {string | number} [borderBottom]
							 | 
						||
| 
								 | 
							
								 * @property {string | number} [borderBottomWidth]
							 | 
						||
| 
								 | 
							
								 * @property {string} [borderBottomStyle]
							 | 
						||
| 
								 | 
							
								 * @property {string} [borderBottomColor] It could be either a #hash or {@link colors}
							 | 
						||
| 
								 | 
							
								 * @property {string | number} [borderBottomLeftRadius]
							 | 
						||
| 
								 | 
							
								 * @property {string | number} [borderBottomRightRadius]
							 | 
						||
| 
								 | 
							
								 * @property {string | number} [borderLeft]
							 | 
						||
| 
								 | 
							
								 * @property {string | number} [borderLeftWidth]
							 | 
						||
| 
								 | 
							
								 * @property {string} [borderLeftStyle]
							 | 
						||
| 
								 | 
							
								 * @property {string} [borderLeftColor] It could be either a #hash or {@link colors}
							 | 
						||
| 
								 | 
							
								 * @property {string | number} [borderX]
							 | 
						||
| 
								 | 
							
								 * @property {string | number} [borderY]
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 * The position utility includes style props for position, zIndex, top, right, bottom, and left.
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 * @typedef {object} PositionProps
							 | 
						||
| 
								 | 
							
								 * @alias PositionProps
							 | 
						||
| 
								 | 
							
								 * @memberof Theme
							 | 
						||
| 
								 | 
							
								 * property {string | number} [position]
							 | 
						||
| 
								 | 
							
								 * property {string | number} [zIndex]
							 | 
						||
| 
								 | 
							
								 * property {string | number} [top]
							 | 
						||
| 
								 | 
							
								 * property {string | number} [right]
							 | 
						||
| 
								 | 
							
								 * property {string | number} [bottom]
							 | 
						||
| 
								 | 
							
								 * property {string | number} [left]
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 * The shadow utility includes style props for textShadow and boxShadow.
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 * @typedef {object} ShadowProps
							 | 
						||
| 
								 | 
							
								 * @alias ShadowProps
							 | 
						||
| 
								 | 
							
								 * @memberof Theme
							 | 
						||
| 
								 | 
							
								 * property {string} [boxShadow]
							 | 
						||
| 
								 | 
							
								 * property {string} [textShadow]
							 | 
						||
| 
								 | 
							
								 */
							 |