@codecademy/variance 0.24.1-alpha.8d6013.0 → 0.24.1-alpha.9b9cf1.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/dist/core.js CHANGED
@@ -115,7 +115,10 @@ export const variance = {
115
115
  }
116
116
  };
117
117
  },
118
- compose(...parsers) {
118
+ compose() {
119
+ for (var _len = arguments.length, parsers = new Array(_len), _key = 0; _key < _len; _key++) {
120
+ parsers[_key] = arguments[_key];
121
+ }
119
122
  return this.createParser(parsers.reduce((carry, parser) => ({
120
123
  ...carry,
121
124
  ...parser.config
@@ -135,9 +138,10 @@ export const variance = {
135
138
  const staticCss = getStaticCss(cssProps, ['theme',
136
139
  // Just in case this gets passed somehow
137
140
  ...selectors, ...filteredProps]);
138
- return ({
139
- theme
140
- }) => {
141
+ return _ref => {
142
+ let {
143
+ theme
144
+ } = _ref;
141
145
  if (cache) return cache;
142
146
  const css = parser({
143
147
  ...cssProps,
@@ -165,12 +169,13 @@ export const variance = {
165
169
  },
166
170
  createVariant(config) {
167
171
  const css = this.createCss(config);
168
- return ({
169
- prop = 'variant',
170
- defaultVariant,
171
- base = {},
172
- variants
173
- }) => {
172
+ return _ref2 => {
173
+ let {
174
+ prop = 'variant',
175
+ defaultVariant,
176
+ base = {},
177
+ variants
178
+ } = _ref2;
174
179
  const baseFn = css(base);
175
180
  const variantFns = {};
176
181
  Object.keys(variants).forEach(key => {
@@ -46,6 +46,12 @@ declare class ThemeBuilder<T extends AbstractTheme> {
46
46
  * @example .updateScale('fonts', ({ basic }) => ({ basicFallback: `{basic}, Montserrat` }))
47
47
  */
48
48
  updateScale<Key extends keyof T, Fn extends (tokens: T[Key]) => Record<string | number, unknown>>(key: Key, updateFn: Fn): ThemeBuilder<T & Record<Key, T[Key] & ReturnType<Fn>>>;
49
+ /**
50
+ *
51
+ * @param name Adds an accessible name to the theme
52
+ * @example .addName('core')
53
+ */
54
+ addName(name: string): ThemeBuilder<MergeTheme<T & PrivateThemeKeys, Record<'name', string>>>;
49
55
  /**
50
56
  * This finalizes the theme build and returns the final theme and variables to be provided.
51
57
  */
@@ -3,7 +3,7 @@ import merge from 'lodash/merge';
3
3
  import { flattenScale } from '../utils/flattenScale';
4
4
  import { serializeTokens } from '../utils/serializeTokens';
5
5
  class ThemeBuilder {
6
- #theme = {};
6
+ #theme = (() => ({}))();
7
7
  constructor(baseTheme) {
8
8
  this.#theme = baseTheme;
9
9
  }
@@ -106,6 +106,18 @@ class ThemeBuilder {
106
106
  return this;
107
107
  }
108
108
 
109
+ /**
110
+ *
111
+ * @param name Adds an accessible name to the theme
112
+ * @example .addName('core')
113
+ */
114
+ addName(name) {
115
+ this.#theme = merge({}, this.#theme, {
116
+ name
117
+ });
118
+ return this;
119
+ }
120
+
109
121
  /**
110
122
  * This finalizes the theme build and returns the final theme and variables to be provided.
111
123
  */
@@ -172,5 +172,9 @@ describe('createTheme', () => {
172
172
  }
173
173
  });
174
174
  });
175
+ it('adds a name to the theme', () => {
176
+ const theme = createTheme(base).addName('scoobyDoo').build();
177
+ expect(theme.name).toEqual('scoobyDoo');
178
+ });
175
179
  });
176
180
  });
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@codecademy/variance",
3
3
  "description": "Constraint based CSS in JS for building scalable design systems",
4
- "version": "0.24.1-alpha.8d6013.0",
4
+ "version": "0.24.1-alpha.9b9cf1.0",
5
5
  "author": "codecaaron <aaron@codecademy.com>",
6
6
  "dependencies": {
7
7
  "csstype": "^3.0.7",
@@ -32,5 +32,5 @@
32
32
  "build": "nx build @codecademy/variance"
33
33
  },
34
34
  "types": "dist/index.d.ts",
35
- "gitHead": "4c79ddc340c46696c5c285a3bf5970140c6b4a53"
35
+ "gitHead": "dc8003cd68f37512742116c205a1acda46d9a6cf"
36
36
  }