UNPKG

fannypack-v5

Version:

An accessible, composable, and friendly React UI Kit

60 lines (48 loc) 2.45 kB
import 'react'; import '../Provider/ThemeContext.js'; import 'classnames'; import 'emotion'; import '@emotion/core'; import 'emotion-theming'; import '@emotion/styled'; import { useTheme } from './useTheme.js'; import { _ as _objectSpread2 } from '../chunk-0c448560.js'; import { get } from './get.js'; import './useLocalStorage.js'; import '../Provider/ColorModeContext.js'; import { useColorMode } from './useColorMode.js'; import { omitBy } from './omitBy.js'; var isUndefined = function isUndefined(val) { return typeof val === 'undefined'; }; function useDefaultProps(props, config) { var _config$defaultProps, _config2; if (props === void 0) { props = {}; } if (config === void 0) { config = {}; } var _config = config, themeKey = _config.themeKey; var _useTheme = useTheme(), theme = _useTheme.theme; var _useColorMode = useColorMode(), globalColorMode = _useColorMode.colorMode; var colorMode = props.colorMode || globalColorMode; var configDefaultProps = omitBy((_config$defaultProps = (_config2 = config) === null || _config2 === void 0 ? void 0 : _config2.defaultProps) !== null && _config$defaultProps !== void 0 ? _config$defaultProps : {}, isUndefined); var themeDefaultProps = omitBy(get(theme, themeKey + ".defaultProps", {}), isUndefined); var themeVariantDefaultProps = omitBy(get(theme, themeKey + ".variants." + props.variant + ".defaultProps", {}), isUndefined); var themeColorModeDefaultProps = omitBy(get(theme, themeKey + ".modes." + colorMode + ".defaultProps", {}), isUndefined); var overridesDefaultProps = omitBy(get(props, "overrides." + themeKey + ".defaultProps", {}), isUndefined); var overridesVariantDefaultProps = omitBy(get(props, "overrides." + themeKey + ".variants." + props.variant + ".defaultProps", {}), isUndefined); var overridesColorModeDefaultProps = omitBy(get(props, "overrides." + themeKey + ".modes." + colorMode + ".defaultProps", {}), isUndefined); var newProps = _objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2({}, configDefaultProps), themeDefaultProps), themeVariantDefaultProps), themeColorModeDefaultProps), overridesDefaultProps), overridesVariantDefaultProps), overridesColorModeDefaultProps), {}, { colorMode: colorMode }, omitBy(props, isUndefined)); return { props: newProps, themeKey: themeKey }; } export { useDefaultProps };