@codecademy/variance 0.19.1-alpha.a809e8.0 → 1.0.0-alpha.2627a4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +7 -2
- package/dist/core.d.ts +10 -0
- package/dist/core.js +251 -0
- package/dist/core.js.map +1 -0
- package/dist/createTheme/createTheme.d.ts +55 -0
- package/dist/createTheme/createTheme.js +168 -0
- package/dist/createTheme/createTheme.js.map +1 -0
- package/dist/createTheme/createTheme.test.d.ts +1 -0
- package/dist/createTheme/createTheme.test.js +192 -0
- package/dist/createTheme/createTheme.test.js.map +1 -0
- package/dist/createTheme/index.d.ts +3 -0
- package/dist/createTheme/index.js +3 -0
- package/dist/createTheme/index.js.map +1 -0
- package/dist/createTheme/types.d.ts +42 -0
- package/dist/createTheme/types.js +0 -0
- package/dist/createTheme/types.js.map +1 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -0
- package/dist/scales/createScale.d.ts +3 -0
- package/dist/scales/createScale.js +3 -0
- package/dist/scales/createScale.js.map +1 -0
- package/dist/scales/createScaleLookup.d.ts +5 -0
- package/dist/scales/createScaleLookup.js +24 -0
- package/dist/scales/createScaleLookup.js.map +1 -0
- package/dist/transforms/index.d.ts +1 -0
- package/dist/transforms/index.js +1 -0
- package/dist/transforms/index.js.map +1 -0
- package/dist/transforms/transformSize.d.ts +2 -0
- package/dist/transforms/transformSize.js +47 -0
- package/dist/transforms/transformSize.js.map +1 -0
- package/dist/types/config.d.ts +71 -0
- package/dist/types/config.js +0 -0
- package/dist/types/config.js.map +1 -0
- package/dist/types/properties.d.ts +22 -0
- package/dist/types/properties.js +0 -0
- package/dist/types/properties.js.map +1 -0
- package/dist/types/props.d.ts +47 -0
- package/dist/types/props.js +0 -0
- package/dist/types/props.js.map +1 -0
- package/dist/types/theme.d.ts +17 -0
- package/dist/types/theme.js +0 -0
- package/dist/types/theme.js.map +1 -0
- package/dist/types/utils.d.ts +3 -0
- package/dist/types/utils.js +0 -0
- package/dist/types/utils.js.map +1 -0
- package/dist/utils/__fixtures__/testConfig.d.ts +153 -0
- package/dist/utils/__fixtures__/testConfig.js +153 -0
- package/dist/utils/__fixtures__/testConfig.js.map +1 -0
- package/dist/utils/flattenScale.d.ts +20 -0
- package/dist/utils/flattenScale.js +24 -0
- package/dist/utils/flattenScale.js.map +1 -0
- package/dist/utils/getStaticProperties.d.ts +1 -0
- package/dist/utils/getStaticProperties.js +6 -0
- package/dist/utils/getStaticProperties.js.map +1 -0
- package/dist/utils/propNames.d.ts +6 -0
- package/dist/utils/propNames.js +52 -0
- package/dist/utils/propNames.js.map +1 -0
- package/dist/utils/responsive.d.ts +16 -0
- package/dist/utils/responsive.js +94 -0
- package/dist/utils/responsive.js.map +1 -0
- package/dist/utils/serializeTokens.d.ts +18 -0
- package/dist/utils/serializeTokens.js +42 -0
- package/dist/utils/serializeTokens.js.map +1 -0
- package/package.json +5 -5
|
@@ -0,0 +1,192 @@
|
|
|
1
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
|
|
2
|
+
|
|
3
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
4
|
+
|
|
5
|
+
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
6
|
+
|
|
7
|
+
import { mapValues } from 'lodash';
|
|
8
|
+
import { createTheme } from './createTheme';
|
|
9
|
+
describe('createTheme', function () {
|
|
10
|
+
var base = {
|
|
11
|
+
breakpoints: {
|
|
12
|
+
xs: '1',
|
|
13
|
+
sm: '2',
|
|
14
|
+
md: '3',
|
|
15
|
+
lg: '4',
|
|
16
|
+
xl: '5'
|
|
17
|
+
}
|
|
18
|
+
};
|
|
19
|
+
it('works', function () {
|
|
20
|
+
expect(createTheme(base).build()).toEqual(_objectSpread(_objectSpread({}, base), {}, {
|
|
21
|
+
_variables: {},
|
|
22
|
+
_tokens: {}
|
|
23
|
+
}));
|
|
24
|
+
});
|
|
25
|
+
it('adds a scale', function () {
|
|
26
|
+
var theme = createTheme(base).addScale('test', function () {
|
|
27
|
+
return {
|
|
28
|
+
test: 1,
|
|
29
|
+
test2: 2
|
|
30
|
+
};
|
|
31
|
+
}).build();
|
|
32
|
+
expect(theme.test).toEqual({
|
|
33
|
+
test: 1,
|
|
34
|
+
test2: 2
|
|
35
|
+
});
|
|
36
|
+
});
|
|
37
|
+
it('updates a scale', function () {
|
|
38
|
+
var builder = createTheme(base).addScale('test', function () {
|
|
39
|
+
return {
|
|
40
|
+
test: 1,
|
|
41
|
+
test2: 2
|
|
42
|
+
};
|
|
43
|
+
});
|
|
44
|
+
expect(builder.build().test).toEqual({
|
|
45
|
+
test: 1,
|
|
46
|
+
test2: 2
|
|
47
|
+
});
|
|
48
|
+
builder.updateScale('test', function () {
|
|
49
|
+
return {
|
|
50
|
+
test3: 3
|
|
51
|
+
};
|
|
52
|
+
});
|
|
53
|
+
expect(builder.build().test).toEqual({
|
|
54
|
+
test: 1,
|
|
55
|
+
test2: 2,
|
|
56
|
+
test3: 3
|
|
57
|
+
});
|
|
58
|
+
});
|
|
59
|
+
it('serializes variables', function () {
|
|
60
|
+
var theme = createTheme(base).addScale('test', function () {
|
|
61
|
+
return {
|
|
62
|
+
test: 1,
|
|
63
|
+
test2: 2
|
|
64
|
+
};
|
|
65
|
+
}).createScaleVariables('test').build();
|
|
66
|
+
expect(theme.test).toEqual({
|
|
67
|
+
test: 'var(--test-test)',
|
|
68
|
+
test2: 'var(--test-test2)'
|
|
69
|
+
});
|
|
70
|
+
expect(theme._variables.root).toEqual({
|
|
71
|
+
'--test-test': 1,
|
|
72
|
+
'--test-test2': 2
|
|
73
|
+
});
|
|
74
|
+
});
|
|
75
|
+
describe('colors', function () {
|
|
76
|
+
var staticColors = {
|
|
77
|
+
white: 'white',
|
|
78
|
+
black: 'black',
|
|
79
|
+
blue: 'blue',
|
|
80
|
+
green: 'green',
|
|
81
|
+
red: 'red'
|
|
82
|
+
};
|
|
83
|
+
var cssVariableReferences = mapValues(staticColors, function (val) {
|
|
84
|
+
return "var(--color-".concat(val, ")");
|
|
85
|
+
});
|
|
86
|
+
var builder = createTheme(base);
|
|
87
|
+
it('creates color variables', function () {
|
|
88
|
+
var theme = builder.addColors(staticColors).build();
|
|
89
|
+
expect(theme.colors).toEqual(cssVariableReferences);
|
|
90
|
+
});
|
|
91
|
+
it('adds colorModes', function () {
|
|
92
|
+
var theme = builder.addColors(staticColors).addColorModes('light', {
|
|
93
|
+
light: {
|
|
94
|
+
primary: 'red'
|
|
95
|
+
},
|
|
96
|
+
dark: {
|
|
97
|
+
primary: 'blue'
|
|
98
|
+
}
|
|
99
|
+
}).build();
|
|
100
|
+
expect(theme.colors).toEqual(_objectSpread(_objectSpread({}, mapValues(staticColors, function (val) {
|
|
101
|
+
return "var(--color-".concat(val, ")");
|
|
102
|
+
})), {}, {
|
|
103
|
+
primary: 'var(--color-primary)'
|
|
104
|
+
}));
|
|
105
|
+
expect(theme._variables.mode).toEqual({
|
|
106
|
+
'--color-primary': 'var(--color-red)'
|
|
107
|
+
});
|
|
108
|
+
});
|
|
109
|
+
it('returns value checker for colors', function () {
|
|
110
|
+
var theme = builder.addColors({
|
|
111
|
+
black: '#000000',
|
|
112
|
+
white: '#FFFFFF'
|
|
113
|
+
}).addColorModes('light', {
|
|
114
|
+
light: {
|
|
115
|
+
primary: 'black'
|
|
116
|
+
},
|
|
117
|
+
dark: {
|
|
118
|
+
primary: 'white'
|
|
119
|
+
}
|
|
120
|
+
}).build();
|
|
121
|
+
expect(theme._getColorValue('white')).toEqual('#FFFFFF');
|
|
122
|
+
expect(theme._getColorValue(theme.modes.light.primary)).toEqual('#000000');
|
|
123
|
+
});
|
|
124
|
+
it('returns value checker for colors with deep values', function () {
|
|
125
|
+
var theme = builder.addColors({
|
|
126
|
+
black: '#000000',
|
|
127
|
+
white: '#FFFFFF',
|
|
128
|
+
gray: {
|
|
129
|
+
200: '#eeeeee',
|
|
130
|
+
300: '#666666'
|
|
131
|
+
}
|
|
132
|
+
}).addColorModes('light', {
|
|
133
|
+
light: {
|
|
134
|
+
primary: {
|
|
135
|
+
"default": 'gray-200',
|
|
136
|
+
cool: {
|
|
137
|
+
_: 'gray-300',
|
|
138
|
+
town: 'black'
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
}).build();
|
|
143
|
+
expect(theme._getColorValue('gray-300')).toEqual('#666666');
|
|
144
|
+
expect(theme._getColorValue(theme.modes.light['primary-default'])).toEqual('#eeeeee');
|
|
145
|
+
});
|
|
146
|
+
it('merges color mode configurations when overriden', function () {
|
|
147
|
+
var theme = builder.addColors({
|
|
148
|
+
black: '#000000',
|
|
149
|
+
white: '#FFFFFF'
|
|
150
|
+
}).addColorModes('light', {
|
|
151
|
+
light: {
|
|
152
|
+
primary: {
|
|
153
|
+
_: 'black',
|
|
154
|
+
hover: 'white'
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
}).build();
|
|
158
|
+
var override = createTheme(theme).addColorModes('light', {
|
|
159
|
+
light: {
|
|
160
|
+
primary: {
|
|
161
|
+
_: 'white',
|
|
162
|
+
hover: 'black'
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
}).build();
|
|
166
|
+
expect(override.modes.light.primary).toEqual('white');
|
|
167
|
+
});
|
|
168
|
+
it('returns the raw values of color mode colors on the tokens object', function () {
|
|
169
|
+
var theme = createTheme(base).addColors({
|
|
170
|
+
black: '#000000',
|
|
171
|
+
gray: {
|
|
172
|
+
300: '#666666'
|
|
173
|
+
}
|
|
174
|
+
}).addColorModes('light', {
|
|
175
|
+
light: {
|
|
176
|
+
primary: {
|
|
177
|
+
cool: {
|
|
178
|
+
_: 'gray-300',
|
|
179
|
+
town: 'black'
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
}).build();
|
|
184
|
+
expect(theme._tokens.modes).toEqual({
|
|
185
|
+
light: {
|
|
186
|
+
'primary-cool': '#666666',
|
|
187
|
+
'primary-cool-town': '#000000'
|
|
188
|
+
}
|
|
189
|
+
});
|
|
190
|
+
});
|
|
191
|
+
});
|
|
192
|
+
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createTheme.test.js","sourceRoot":"","sources":["../../src/createTheme/createTheme.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/createTheme/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,0BAA0B,CAAC;AACzC,cAAc,uBAAuB,CAAC"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { CSSObject } from '../types/props';
|
|
2
|
+
import { AbstractTheme } from '../types/theme';
|
|
3
|
+
/**
|
|
4
|
+
* This is a custom generic that ensures the safety of adding additional values to a theme object without accidentally wiping out
|
|
5
|
+
* required keys like `breakpoints`. It works by creating a new mapped type and merging the values of the union of Base & Next:
|
|
6
|
+
* 1. If the key exists on both Base and Next return the intersection of both values
|
|
7
|
+
* 2. If the key exists on next use the value on next.
|
|
8
|
+
* 3. If the key exists on base but nothing else use the value on base.
|
|
9
|
+
*
|
|
10
|
+
* The resulting type is then rejoined with keys that cannot be mutated (breakpoints) as the next version of Theme
|
|
11
|
+
*/
|
|
12
|
+
export declare type MergeTheme<Base extends AbstractTheme, Next, Unmergable = Record<'breakpoints', Base['breakpoints']>> = Unmergable & Merge<Base, Next>;
|
|
13
|
+
/** This merges at 2 levels of depth */
|
|
14
|
+
export declare type Merge<A, B> = {
|
|
15
|
+
[K in keyof (A & B)]: K extends keyof B ? K extends keyof A ? AssignValueIfUnmergable<A[K], B[K]> : B[K] : K extends keyof A ? A[K] : never;
|
|
16
|
+
};
|
|
17
|
+
/** Extract mergable objects */
|
|
18
|
+
export declare type Mergable<T> = Exclude<T, ((...args: any) => any) | string | boolean | symbol | number | any[]>;
|
|
19
|
+
/** Return B if either A or B is unmergable */
|
|
20
|
+
export declare type AssignValueIfUnmergable<A, B> = Mergable<A> extends never ? B : Mergable<B> extends never ? B : Assign<A, B>;
|
|
21
|
+
/** Prefer all values from B */
|
|
22
|
+
export declare type Assign<A, B> = {
|
|
23
|
+
[K in keyof A | keyof B]: K extends keyof B ? B[K] : K extends keyof A ? A[K] : never;
|
|
24
|
+
};
|
|
25
|
+
/** These are keys that are consistent for all theme builds - they are loosely typed as they are not meant to be accessed directly */
|
|
26
|
+
export declare type PrivateThemeKeys = {
|
|
27
|
+
_variables: Record<string, CSSObject>;
|
|
28
|
+
_tokens: Record<string | number, any>;
|
|
29
|
+
};
|
|
30
|
+
/** This allows 3 layers of color aliases to be constructed when adding colorModes
|
|
31
|
+
* @example
|
|
32
|
+
* {
|
|
33
|
+
* button: {
|
|
34
|
+
* bg: {
|
|
35
|
+
* hover: 'someAlias'
|
|
36
|
+
* }
|
|
37
|
+
* }
|
|
38
|
+
* }
|
|
39
|
+
*
|
|
40
|
+
* `button-bg-hover`
|
|
41
|
+
* */
|
|
42
|
+
export declare type ColorModeConfig<Colors> = Record<string, Colors | Record<string, Colors> | Record<string, Colors | Record<string, Colors>>>;
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/createTheme/types.ts"],"names":[],"mappings":""}
|
package/dist/index.d.ts
ADDED
package/dist/index.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,sBAAsB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createScale.js","sourceRoot":"","sources":["../../src/scales/createScale.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,WAAW,GAAG,GAA8B,EAAE,CACzD,EAAkC,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { Prop } from '../types/config';
|
|
2
|
+
import { ThemeProps } from '../types/props';
|
|
3
|
+
declare type GetScaleValue = (val: string | number, props: ThemeProps) => string | number | undefined;
|
|
4
|
+
export declare const createScaleLookup: (scale: Prop['scale']) => GetScaleValue;
|
|
5
|
+
export {};
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { get, isArray, isObject, isString } from 'lodash';
|
|
2
|
+
export var createScaleLookup = function createScaleLookup(scale) {
|
|
3
|
+
if (isString(scale)) {
|
|
4
|
+
return function (val, props) {
|
|
5
|
+
return get(props, ['theme', scale, val]);
|
|
6
|
+
};
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
if (isArray(scale)) {
|
|
10
|
+
return function (val) {
|
|
11
|
+
return val;
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
if (isObject(scale)) {
|
|
16
|
+
return function (val) {
|
|
17
|
+
return get(scale, val);
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
return function () {
|
|
22
|
+
return undefined;
|
|
23
|
+
};
|
|
24
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createScaleLookup.js","sourceRoot":"","sources":["../../src/scales/createScaleLookup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAU1D,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,KAAoB,EAAiB,EAAE;IACvE,IAAI,QAAQ,CAAC,KAAK,CAAC,EAAE;QACnB,OAAO,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;KAC1D;IACD,IAAI,OAAO,CAAC,KAAK,CAAC,EAAE;QAClB,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC;KACrB;IACD,IAAI,QAAQ,CAAC,KAAK,CAAC,EAAE;QACnB,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;KACjC;IAED,OAAO,GAAG,EAAE,CAAC,SAAS,CAAC;AACzB,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './transformSize';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './transformSize';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/transforms/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
2
|
+
|
|
3
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
4
|
+
|
|
5
|
+
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
6
|
+
|
|
7
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
8
|
+
|
|
9
|
+
function _iterableToArrayLimit(arr, i) { var _i = arr && (typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]); if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
|
|
10
|
+
|
|
11
|
+
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
12
|
+
|
|
13
|
+
import { isNumber } from 'lodash';
|
|
14
|
+
export var percentageOrAbsolute = function percentageOrAbsolute(coordinate) {
|
|
15
|
+
if (coordinate === 0) {
|
|
16
|
+
return coordinate;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
if (coordinate <= 1 && coordinate >= -1) {
|
|
20
|
+
return "".concat(coordinate * 100, "%");
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
return "".concat(coordinate, "px");
|
|
24
|
+
};
|
|
25
|
+
var valueWithUnit = /(-?\d*\.?\d+)(%|\w*)/;
|
|
26
|
+
export var transformSize = function transformSize(value) {
|
|
27
|
+
if (isNumber(value)) {
|
|
28
|
+
return percentageOrAbsolute(value);
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
if (value.includes('calc')) {
|
|
32
|
+
return value;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
var _ref = valueWithUnit.exec(value) || [],
|
|
36
|
+
_ref2 = _slicedToArray(_ref, 3),
|
|
37
|
+
match = _ref2[0],
|
|
38
|
+
number = _ref2[1],
|
|
39
|
+
unit = _ref2[2];
|
|
40
|
+
|
|
41
|
+
if (match === undefined) {
|
|
42
|
+
return value;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
var numericValue = parseFloat(number);
|
|
46
|
+
return !unit ? percentageOrAbsolute(numericValue) : "".concat(numericValue).concat(unit);
|
|
47
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transformSize.js","sourceRoot":"","sources":["../../src/transforms/transformSize.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAElC,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,UAAkB,EAAE,EAAE;IACzD,IAAI,UAAU,KAAK,CAAC,EAAE;QACpB,OAAO,UAAU,CAAC;KACnB;IACD,IAAI,UAAU,IAAI,CAAC,IAAI,UAAU,IAAI,CAAC,CAAC,EAAE;QACvC,OAAO,GAAG,UAAU,GAAG,GAAG,GAAG,CAAC;KAC/B;IACD,OAAO,GAAG,UAAU,IAAI,CAAC;AAC3B,CAAC,CAAC;AAEF,MAAM,aAAa,GAAG,sBAAsB,CAAC;AAE7C,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,KAAsB,EAAE,EAAE;IACtD,IAAI,QAAQ,CAAC,KAAK,CAAC,EAAE;QACnB,OAAO,oBAAoB,CAAC,KAAK,CAAC,CAAC;KACpC;IAED,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;QAC1B,OAAO,KAAK,CAAC;KACd;IAED,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,GAAG,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;IAE9D,IAAI,KAAK,KAAK,SAAS,EAAE;QACvB,OAAO,KAAK,CAAC;KACd;IAED,MAAM,YAAY,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;IAExC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,oBAAoB,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG,YAAY,GAAG,IAAI,EAAE,CAAC;AAC/E,CAAC,CAAC"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { Theme } from '@emotion/react';
|
|
2
|
+
import { DefaultCSSPropertyValue, PropertyTypes } from './properties';
|
|
3
|
+
import { AbstractProps, CSSObject, CSSPropMap, CSSProps, ResponsiveProp, ThemeProps } from './props';
|
|
4
|
+
import { AllUnionKeys, Key, KeyFromUnion } from './utils';
|
|
5
|
+
export declare type MapScale = Record<string | number, string | number>;
|
|
6
|
+
export declare type ArrayScale = readonly (string | number)[] & {
|
|
7
|
+
length: 0;
|
|
8
|
+
};
|
|
9
|
+
export interface BaseProperty {
|
|
10
|
+
property: keyof PropertyTypes;
|
|
11
|
+
properties?: readonly (keyof PropertyTypes)[];
|
|
12
|
+
}
|
|
13
|
+
export interface Prop extends BaseProperty {
|
|
14
|
+
scale?: keyof Theme | MapScale | ArrayScale;
|
|
15
|
+
transform?: (val: string | number, prop?: string, props?: AbstractProps) => string | number | CSSObject;
|
|
16
|
+
}
|
|
17
|
+
export interface AbstractPropTransformer extends Prop {
|
|
18
|
+
prop: string;
|
|
19
|
+
styleFn: (value: unknown, prop: string, props: AbstractProps) => CSSObject;
|
|
20
|
+
}
|
|
21
|
+
export interface AbstractParser {
|
|
22
|
+
(props: AbstractProps): CSSObject;
|
|
23
|
+
propNames: string[];
|
|
24
|
+
config: Record<string, AbstractPropTransformer>;
|
|
25
|
+
}
|
|
26
|
+
export declare type PropertyValues<Property extends keyof PropertyTypes, All extends boolean = false> = Exclude<PropertyTypes<All extends true ? DefaultCSSPropertyValue : never>[Property], All extends true ? never : object | any[]>;
|
|
27
|
+
export declare type ScaleValue<Config extends Prop> = Config['scale'] extends keyof Theme ? keyof Theme[Config['scale']] | PropertyValues<Config['property']> : Config['scale'] extends MapScale ? keyof Config['scale'] | PropertyValues<Config['property']> : Config['scale'] extends ArrayScale ? Config['scale'][number] | PropertyValues<Config['property']> : PropertyValues<Config['property'], true>;
|
|
28
|
+
export declare type Scale<Config extends Prop> = ResponsiveProp<ScaleValue<Config> | ((theme: Theme) => ScaleValue<Config>)>;
|
|
29
|
+
export interface TransformFn<P extends string, Config extends Prop> {
|
|
30
|
+
(value: Scale<Config> | Scale<Config>, prop: P, props: ThemeProps<{
|
|
31
|
+
[K in P]?: Scale<Config>;
|
|
32
|
+
}>): CSSObject;
|
|
33
|
+
}
|
|
34
|
+
export interface PropTransformer<P extends string, C extends Prop> extends AbstractPropTransformer, Prop {
|
|
35
|
+
prop: P;
|
|
36
|
+
styleFn: TransformFn<P, C>;
|
|
37
|
+
}
|
|
38
|
+
export declare type TransformerMap<Config extends Record<string, Prop>> = {
|
|
39
|
+
[P in Key<keyof Config>]: PropTransformer<Key<P>, Config[P]>;
|
|
40
|
+
};
|
|
41
|
+
export interface Parser<Config extends Record<string, AbstractPropTransformer>> {
|
|
42
|
+
(props: ParserProps<Config>): CSSObject;
|
|
43
|
+
propNames: (keyof Config)[];
|
|
44
|
+
config: Config;
|
|
45
|
+
}
|
|
46
|
+
export declare type Compose<Args extends AbstractParser[]> = {
|
|
47
|
+
[K in AllUnionKeys<Args[number]['config']>]: KeyFromUnion<Args[number]['config'], K>;
|
|
48
|
+
};
|
|
49
|
+
export interface Variant<P extends AbstractParser> {
|
|
50
|
+
<Keys extends keyof Props, Base extends AbstractProps, Props extends Record<Keys, AbstractProps>, PropKey extends Readonly<string> = 'variant'>(options: {
|
|
51
|
+
prop?: PropKey;
|
|
52
|
+
defaultVariant?: keyof Props;
|
|
53
|
+
base?: CSSProps<Base, SystemProps<P>>;
|
|
54
|
+
variants: CSSPropMap<Props, SystemProps<P>>;
|
|
55
|
+
}): (props: VariantProps<PropKey, Keys | false> & ThemeProps) => CSSObject;
|
|
56
|
+
}
|
|
57
|
+
export interface States<P extends AbstractParser> {
|
|
58
|
+
<Props extends Record<string, AbstractProps>>(states: CSSPropMap<Props, SystemProps<P>>): (props: Partial<Record<keyof Props, boolean>> & ThemeProps) => CSSObject;
|
|
59
|
+
}
|
|
60
|
+
export interface CSS<P extends AbstractParser> {
|
|
61
|
+
<Props extends AbstractProps>(config: CSSProps<Props, SystemProps<P>>): (props: ThemeProps) => CSSObject;
|
|
62
|
+
}
|
|
63
|
+
export declare type ParserProps<Config extends Record<string, AbstractPropTransformer>> = ThemeProps<{
|
|
64
|
+
[P in keyof Config]?: Parameters<Config[P]['styleFn']>[2][Config[P]['prop']];
|
|
65
|
+
}>;
|
|
66
|
+
export declare type SystemProps<P extends AbstractParser> = {
|
|
67
|
+
[K in keyof Omit<Parameters<P>[0], 'theme'>]: Omit<Parameters<P>[0], 'theme'>[K];
|
|
68
|
+
};
|
|
69
|
+
export declare type VariantProps<T extends string, V> = {
|
|
70
|
+
[Key in T]?: V;
|
|
71
|
+
};
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/types/config.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { Globals, StandardProperties, VendorProperties } from 'csstype';
|
|
2
|
+
declare type ColorProperties = 'color' | `${string}Color`;
|
|
3
|
+
declare type ColorGlobals = {
|
|
4
|
+
[K in Extract<keyof StandardProperties, ColorProperties>]?: Globals | 'currentColor' | 'transparent' | (string & {});
|
|
5
|
+
};
|
|
6
|
+
declare type SizeProperties = 'left' | 'right' | 'top' | 'bottom' | 'inset' | 'width' | 'height' | `${string}${'Width' | 'Height'}`;
|
|
7
|
+
declare type SizeGlobals = {
|
|
8
|
+
[K in Extract<keyof StandardProperties, SizeProperties>]?: StandardProperties[K] | (number & {});
|
|
9
|
+
};
|
|
10
|
+
/** This is a placeholder type for CSS properties that may not have any specific global values (outlineOffset).
|
|
11
|
+
* (string & {}) will allow strings but not generalize the union type to just a string if other string literals exist in the union.
|
|
12
|
+
*
|
|
13
|
+
* This ensures that autosuggestions will still work for literal types but still allow any string for certain properties.
|
|
14
|
+
*/
|
|
15
|
+
export declare type DefaultCSSPropertyValue = (string & {}) | 0;
|
|
16
|
+
export interface PropertyTypes<Overrides = DefaultCSSPropertyValue> extends Omit<StandardProperties<Overrides>, keyof ColorGlobals | keyof SizeGlobals>, ColorGlobals, SizeGlobals {
|
|
17
|
+
}
|
|
18
|
+
export interface VendorPropertyTypes<Overrides = DefaultCSSPropertyValue> extends VendorProperties<Overrides> {
|
|
19
|
+
}
|
|
20
|
+
export interface CSSPropertyTypes<Overrides = DefaultCSSPropertyValue> extends PropertyTypes<Overrides>, VendorPropertyTypes<Overrides> {
|
|
21
|
+
}
|
|
22
|
+
export {};
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"properties.js","sourceRoot":"","sources":["../../src/types/properties.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { Theme } from '@emotion/react';
|
|
2
|
+
import { AbstractParser, Scale } from './config';
|
|
3
|
+
import { CSSPropertyTypes } from './properties';
|
|
4
|
+
export declare type AbstractProps = ThemeProps<Record<string, unknown>>;
|
|
5
|
+
interface BreakpointKeys<T = string> {
|
|
6
|
+
xs: T;
|
|
7
|
+
sm: T;
|
|
8
|
+
md: T;
|
|
9
|
+
lg: T;
|
|
10
|
+
xl: T;
|
|
11
|
+
}
|
|
12
|
+
export interface BreakpointCache {
|
|
13
|
+
map: BreakpointKeys;
|
|
14
|
+
array: string[];
|
|
15
|
+
}
|
|
16
|
+
export declare type ThemeProps<Props = {}> = Props & {
|
|
17
|
+
theme?: Theme;
|
|
18
|
+
};
|
|
19
|
+
export interface MediaQueryArray<T> {
|
|
20
|
+
0?: T;
|
|
21
|
+
1?: T;
|
|
22
|
+
2?: T;
|
|
23
|
+
3?: T;
|
|
24
|
+
4?: T;
|
|
25
|
+
5?: T;
|
|
26
|
+
}
|
|
27
|
+
export interface MediaQueryMap<T> {
|
|
28
|
+
_?: T;
|
|
29
|
+
xs?: T;
|
|
30
|
+
sm?: T;
|
|
31
|
+
md?: T;
|
|
32
|
+
lg?: T;
|
|
33
|
+
xl?: T;
|
|
34
|
+
}
|
|
35
|
+
export declare type ResponsiveProp<T> = T | MediaQueryMap<T> | MediaQueryArray<T>;
|
|
36
|
+
export interface CSSObject {
|
|
37
|
+
[key: string]: string | number | CSSObject | undefined;
|
|
38
|
+
}
|
|
39
|
+
export declare type CSSPropMap<Props, System> = {
|
|
40
|
+
[K in keyof Props]?: CSSProps<Props[K], System>;
|
|
41
|
+
};
|
|
42
|
+
export declare type CSSProps<Props, System> = {
|
|
43
|
+
[K in keyof Props]?: K extends keyof System ? System[K] : K extends keyof CSSPropertyTypes ? CSSPropertyTypes[K] : Omit<CSSPropertyTypes, keyof System> & Omit<System, 'theme'>;
|
|
44
|
+
};
|
|
45
|
+
export declare type StyleProps<T extends (args: AbstractProps) => CSSObject> = Parameters<T>[0];
|
|
46
|
+
export declare type ScaleValue<P extends AbstractParser, Prop extends keyof P['config']> = Scale<P['config'][Prop]>;
|
|
47
|
+
export {};
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"props.js","sourceRoot":"","sources":["../../src/types/props.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export interface Breakpoints<T = string> {
|
|
2
|
+
xs: T;
|
|
3
|
+
sm: T;
|
|
4
|
+
md: T;
|
|
5
|
+
lg: T;
|
|
6
|
+
xl: T;
|
|
7
|
+
}
|
|
8
|
+
export interface BaseTheme {
|
|
9
|
+
breakpoints: Breakpoints;
|
|
10
|
+
}
|
|
11
|
+
export interface AbstractTheme extends BaseTheme {
|
|
12
|
+
readonly [key: string]: any;
|
|
13
|
+
}
|
|
14
|
+
declare module '@emotion/react' {
|
|
15
|
+
interface Theme extends BaseTheme {
|
|
16
|
+
}
|
|
17
|
+
}
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"theme.js","sourceRoot":"","sources":["../../src/types/theme.ts"],"names":[],"mappings":""}
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/types/utils.ts"],"names":[],"mappings":""}
|