1 | "use strict";
|
2 |
|
3 | exports.__esModule = true;
|
4 | exports.default = void 0;
|
5 |
|
6 | var _react = require("react");
|
7 |
|
8 | var _ = require(".");
|
9 |
|
10 | exports.css = _.css;
|
11 | exports.stylesheet = _.stylesheet;
|
12 |
|
13 | var _jsx = require("./jsx");
|
14 |
|
15 |
|
16 |
|
17 | const reWords = /[A-Z\xc0-\xd6\xd8-\xde]?[a-z\xdf-\xf6\xf8-\xff]+(?:['’](?:d|ll|m|re|s|t|ve))?(?=[\xac\xb1\xd7\xf7\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\xbf\u2000-\u206f \t\x0b\f\xa0\ufeff\n\r\u2028\u2029\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000]|[A-Z\xc0-\xd6\xd8-\xde]|$)|(?:[A-Z\xc0-\xd6\xd8-\xde]|[^\ud800-\udfff\xac\xb1\xd7\xf7\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\xbf\u2000-\u206f \t\x0b\f\xa0\ufeff\n\r\u2028\u2029\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\d+\u2700-\u27bfa-z\xdf-\xf6\xf8-\xffA-Z\xc0-\xd6\xd8-\xde])+(?:['’](?:D|LL|M|RE|S|T|VE))?(?=[\xac\xb1\xd7\xf7\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\xbf\u2000-\u206f \t\x0b\f\xa0\ufeff\n\r\u2028\u2029\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000]|[A-Z\xc0-\xd6\xd8-\xde](?:[a-z\xdf-\xf6\xf8-\xff]|[^\ud800-\udfff\xac\xb1\xd7\xf7\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\xbf\u2000-\u206f \t\x0b\f\xa0\ufeff\n\r\u2028\u2029\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\d+\u2700-\u27bfa-z\xdf-\xf6\xf8-\xffA-Z\xc0-\xd6\xd8-\xde])|$)|[A-Z\xc0-\xd6\xd8-\xde]?(?:[a-z\xdf-\xf6\xf8-\xff]|[^\ud800-\udfff\xac\xb1\xd7\xf7\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\xbf\u2000-\u206f \t\x0b\f\xa0\ufeff\n\r\u2028\u2029\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\d+\u2700-\u27bfa-z\xdf-\xf6\xf8-\xffA-Z\xc0-\xd6\xd8-\xde])+(?:['’](?:d|ll|m|re|s|t|ve))?|[A-Z\xc0-\xd6\xd8-\xde]+(?:['’](?:D|LL|M|RE|S|T|VE))?|\d*(?:1ST|2ND|3RD|(?![123])\dTH)(?=\b|[a-z_])|\d*(?:1st|2nd|3rd|(?![123])\dth)(?=\b|[A-Z_])|\d+|(?:[\u2700-\u27bf]|(?:\ud83c[\udde6-\uddff]){2}|[\ud800-\udbff][\udc00-\udfff])[\ufe0e\ufe0f]?(?:[\u0300-\u036f\ufe20-\ufe2f\u20d0-\u20ff]|\ud83c[\udffb-\udfff])?(?:\u200d(?:[^\ud800-\udfff]|(?:\ud83c[\udde6-\uddff]){2}|[\ud800-\udbff][\udc00-\udfff])[\ufe0e\ufe0f]?(?:[\u0300-\u036f\ufe20-\ufe2f\u20d0-\u20ff]|\ud83c[\udffb-\udfff])?)*/g;
|
18 |
|
19 | const camelCase = str => (str.match(reWords) || []).reduce((acc, next) => acc + (!acc ? next : next[0].toUpperCase() + next.slice(1)), '');
|
20 |
|
21 | function propsToStyles(props, styles, hasModifiers) {
|
22 | const componentClassName = styles.cls2 || styles.cls1;
|
23 | let className = props.className ? `${props.className} ${componentClassName}` : componentClassName;
|
24 |
|
25 | if (hasModifiers) {
|
26 | Object.keys(props).forEach(propName => {
|
27 | const propValue = props[propName];
|
28 | const typeOf = typeof propValue;
|
29 |
|
30 | if (typeOf === 'boolean' || propValue == null) {
|
31 | if (styles[propName]) {
|
32 | if (propValue) {
|
33 | className += ` ${styles[propName]}`;
|
34 | }
|
35 |
|
36 | delete props[propName];
|
37 | } else {
|
38 | const camelPropName = camelCase(propName);
|
39 |
|
40 | if (styles[camelPropName]) {
|
41 | if (propValue) {
|
42 | className += ` ${styles[camelPropName]}`;
|
43 | }
|
44 |
|
45 | delete props[propName];
|
46 | }
|
47 | }
|
48 | } else if (typeOf === 'string' || typeOf === 'number') {
|
49 | const propKey = `${propName}-${propValue}`;
|
50 |
|
51 | if (styles[propKey]) {
|
52 | className += ` ${styles[propKey]}`;
|
53 | delete props[propName];
|
54 | } else {
|
55 | const camelPropKey = camelCase(propKey);
|
56 |
|
57 | if (styles[camelPropKey]) {
|
58 | className += ` ${styles[camelPropKey]}`;
|
59 | delete props[propName];
|
60 | }
|
61 | }
|
62 | }
|
63 | });
|
64 | }
|
65 |
|
66 | return className;
|
67 | }
|
68 |
|
69 | function styled(type, options, settings) {
|
70 | if (process.env.NODE_ENV !== "production") {
|
71 | if (settings == null) throw new Error('This styled() template tag was mistakenly evaluated at runtime. ' + 'Make sure astroturf is properly configured to compile this file');
|
72 | if (typeof settings === 'string') throw new Error('It looks like you have incompatible astroturf versions in your app. ' + 'This runtime expects styles compiled with a newer version of astroturf, ' + 'ensure that your versions are properly deduped and upgraded. ');
|
73 | }
|
74 |
|
75 | const {
|
76 | displayName,
|
77 | attrs,
|
78 | vars,
|
79 | variants,
|
80 | styles
|
81 | } = settings;
|
82 | options = options || {
|
83 | allowAs: typeof type === 'string'
|
84 | };
|
85 |
|
86 | const allowAs = type.isAstroturf ? false : options.allowAs;
|
87 | const hasModifiers = Object.keys(styles).some(className => className !== (styles.cls2 || styles.cls1));
|
88 | const decorated = (0, _react.forwardRef)((rawProps, ref) => {
|
89 | const props = attrs ? attrs(rawProps) : rawProps;
|
90 | const childProps = Object.assign({}, props, {
|
91 | ref
|
92 | });
|
93 | if (allowAs) delete childProps.as;
|
94 | childProps.style = (0, _jsx.varsToStyles)(childProps, vars);
|
95 | childProps.className = propsToStyles(childProps, styles, hasModifiers);
|
96 | if (variants) childProps.className += ` ${(0, _jsx.resolveVariants)(variants)}`;
|
97 | return (0, _react.createElement)(allowAs && props.as ? props.as : type, childProps);
|
98 | });
|
99 | decorated.displayName = displayName;
|
100 |
|
101 | decorated.withComponent = nextType => styled(nextType, options, settings);
|
102 |
|
103 | decorated.isAstroturf = true;
|
104 | return decorated;
|
105 | }
|
106 |
|
107 | var _default = styled;
|
108 | exports.default = _default; |
\ | No newline at end of file |