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
						
					
					
				"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
 | 
						|
 */
 |