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.
		
		
		
		
		
			
		
			
				
					54 lines
				
				1.7 KiB
			
		
		
			
		
	
	
					54 lines
				
				1.7 KiB
			| 
								 
											3 years ago
										 
									 | 
							
								"use strict";
							 | 
						||
| 
								 | 
							
								Object.defineProperty(exports, "__esModule", { value: true });
							 | 
						||
| 
								 | 
							
								exports.themeGet = exports.default = void 0;
							 | 
						||
| 
								 | 
							
								const polished_1 = require("polished");
							 | 
						||
| 
								 | 
							
								function themeGet(kind, value, offset) {
							 | 
						||
| 
								 | 
							
								    return ({ theme }) => {
							 | 
						||
| 
								 | 
							
								        const themeVal = value ? theme[kind][value] : theme[kind];
							 | 
						||
| 
								 | 
							
								        if (themeVal && offset) {
							 | 
						||
| 
								 | 
							
								            let offsetValue;
							 | 
						||
| 
								 | 
							
								            if (typeof offset === 'string') {
							 | 
						||
| 
								 | 
							
								                ([offsetValue] = polished_1.getValueAndUnit(offset));
							 | 
						||
| 
								 | 
							
								            }
							 | 
						||
| 
								 | 
							
								            else {
							 | 
						||
| 
								 | 
							
								                offsetValue = offset;
							 | 
						||
| 
								 | 
							
								            }
							 | 
						||
| 
								 | 
							
								            const [pxValue, unit] = polished_1.getValueAndUnit(themeVal);
							 | 
						||
| 
								 | 
							
								            return `${pxValue + offsetValue}${unit}`;
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								        return themeVal;
							 | 
						||
| 
								 | 
							
								    };
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								exports.default = themeGet;
							 | 
						||
| 
								 | 
							
								exports.themeGet = themeGet;
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 * Handy utility function which simplifies taking values from the {@link Theme}.
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 * ### Example
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 * ```javascript
							 | 
						||
| 
								 | 
							
								 * import { Box, themeGet } from '@adminjs/design-system'
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 * const myComponent = styled(Box)`
							 | 
						||
| 
								 | 
							
								 *   padding: ${themeGet('space', 'xl')};
							 | 
						||
| 
								 | 
							
								 *   font: ${themeGet('font')};
							 | 
						||
| 
								 | 
							
								 *   margin-top: ${themeGet('space', 'xl', -2)};
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 *   margin-bottom: ${(props) => themeGet('space', props.disabled ? 'xl' : 'xxl')(props)};
							 | 
						||
| 
								 | 
							
								 * `
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 * ```
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 * @param {string} kind           One of the keys in the {@link Theme} interface. For example:
							 | 
						||
| 
								 | 
							
								 *                                `fontWeights`
							 | 
						||
| 
								 | 
							
								 * @param {string} [value]        Value for the key
							 | 
						||
| 
								 | 
							
								 * @param {string | number} [offset]    optional offset. When you want to take xxl + 2pixels
							 | 
						||
| 
								 | 
							
								 *                                you can do this by passing +2 as the offset.
							 | 
						||
| 
								 | 
							
								 * @return {ThemeFunction}  function taking props as an argument
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 * @new in version 3.3
							 | 
						||
| 
								 | 
							
								 * @function themeGet
							 | 
						||
| 
								 | 
							
								 * @memberof Theme
							 | 
						||
| 
								 | 
							
								 */
							 |