@workday/canvas-kit-codemod 15.0.0-alpha.1301-next.0 → 15.0.0-alpha.1326-next.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.
Files changed (39) hide show
  1. package/dist/es6/v13.2/mapping/index.d.ts +59 -1
  2. package/dist/es6/v13.2/mapping/index.d.ts.map +1 -1
  3. package/dist/es6/v13.2/mapping/index.js +88 -1
  4. package/dist/es6/v13.2/migrateColorTokens.d.ts.map +1 -1
  5. package/dist/es6/v13.2/migrateColorTokens.js +64 -13
  6. package/dist/es6/v13.2/migrateDepthTokens.d.ts.map +1 -1
  7. package/dist/es6/v13.2/migrateDepthTokens.js +42 -26
  8. package/dist/es6/v13.2/migrateOtherTokens.d.ts.map +1 -1
  9. package/dist/es6/v13.2/migrateOtherTokens.js +37 -67
  10. package/dist/es6/v13.2/migrateTypeTokens.d.ts.map +1 -1
  11. package/dist/es6/v13.2/migrateTypeTokens.js +43 -19
  12. package/dist/es6/v13.2/utils/filterOutImports.d.ts +6 -1
  13. package/dist/es6/v13.2/utils/filterOutImports.d.ts.map +1 -1
  14. package/dist/es6/v13.2/utils/filterOutImports.js +22 -4
  15. package/dist/es6/v13.2/utils/getImports.d.ts +3 -0
  16. package/dist/es6/v13.2/utils/getImports.d.ts.map +1 -0
  17. package/dist/es6/v13.2/utils/getImports.js +12 -0
  18. package/dist/es6/v13.2/utils/index.d.ts +1 -0
  19. package/dist/es6/v13.2/utils/index.d.ts.map +1 -1
  20. package/dist/es6/v13.2/utils/index.js +1 -0
  21. package/dist/es6/v13.2/utils/transformObjectPropertyRecursively.d.ts +1 -1
  22. package/dist/es6/v13.2/utils/transformObjectPropertyRecursively.d.ts.map +1 -1
  23. package/dist/es6/v13.2/utils/transformObjectPropertyRecursively.js +151 -33
  24. package/dist/es6/v13.2/utils/varToMemberExpression.d.ts.map +1 -1
  25. package/dist/es6/v13.2/utils/varToMemberExpression.js +1 -1
  26. package/dist/es6/v14-tokens/index.d.ts.map +1 -1
  27. package/dist/es6/v14-tokens/index.js +9 -2
  28. package/dist/es6/v14-tokens/migrateColorTokens.d.ts.map +1 -1
  29. package/dist/es6/v14-tokens/migrateColorTokens.js +10 -23
  30. package/dist/es6/v14-tokens/utils/transformObjectPropertyRecursively.d.ts.map +1 -1
  31. package/dist/es6/v14-tokens/utils/transformObjectPropertyRecursively.js +31 -28
  32. package/dist/es6/v15/index.d.ts +4 -0
  33. package/dist/es6/v15/index.d.ts.map +1 -0
  34. package/dist/es6/v15/index.js +6 -0
  35. package/dist/es6/v15/utils/getImportRenameMap.d.ts +7 -0
  36. package/dist/es6/v15/utils/getImportRenameMap.d.ts.map +1 -0
  37. package/dist/es6/v15/utils/getImportRenameMap.js +44 -0
  38. package/index.js +7 -0
  39. package/package.json +2 -2
@@ -1,8 +1,66 @@
1
+ export declare const paletteNames: string[];
1
2
  export declare const mapping: {
2
3
  readonly colors: {
3
4
  readonly type: "base";
4
5
  readonly name: "colors";
5
6
  };
7
+ readonly commonColors: {
8
+ readonly type: "system";
9
+ readonly name: "commonColors";
10
+ readonly keys: {
11
+ readonly background: "system.color.bg.default";
12
+ readonly backgroundAlt: "system.color.bg.alt.default";
13
+ readonly focusOutline: "system.color.border.primary.default";
14
+ readonly focusBackground: "system.color.bg.primary.default";
15
+ readonly hoverBackground: "system.color.bg.alt.strong";
16
+ readonly divider: "system.color.border.divider";
17
+ };
18
+ };
19
+ readonly inputColors: {
20
+ readonly type: "system";
21
+ readonly name: "inputColors";
22
+ readonly keys: {
23
+ readonly background: "system.color.bg.default";
24
+ readonly border: "system.color.border.input.default";
25
+ readonly placeholder: "system.color.fg.muted.default";
26
+ readonly text: "system.color.fg.default";
27
+ readonly icon: "system.color.fg.muted.soft";
28
+ readonly iconHover: "system.color.fg.muted.stronger";
29
+ readonly selectionControlFill: "system.color.bg.primary.default";
30
+ readonly hoverBorder: "system.color.border.input.strong";
31
+ readonly focusBorder: "system.color.border.primary.default";
32
+ readonly disabled: {
33
+ readonly background: "system.color.bg.alt.softer";
34
+ readonly border: "system.color.border.input.strong";
35
+ readonly text: "system.color.fg.disabled";
36
+ readonly icon: "system.color.fg.disabled";
37
+ };
38
+ readonly error: {
39
+ readonly border: "system.color.border.critical.default";
40
+ readonly message: "system.color.fg.critical.default";
41
+ readonly icon: "system.color.fg.critical.default";
42
+ };
43
+ readonly alert: {
44
+ readonly border: "system.color.border.caution.default";
45
+ readonly message: "system.color.fg.caution.default";
46
+ readonly icon: "system.color.fg.caution.default";
47
+ };
48
+ };
49
+ };
50
+ readonly typeColors: {
51
+ readonly type: "system";
52
+ readonly name: "typeColors";
53
+ readonly keys: {
54
+ readonly body: "system.color.fg.default";
55
+ readonly heading: "system.color.fg.strong";
56
+ readonly hint: "system.color.fg.muted.soft";
57
+ readonly inverse: "system.color.fg.inverse";
58
+ readonly label: "system.color.fg.default";
59
+ readonly link: "system.color.fg.primary.default";
60
+ readonly selectHighlight: "system.color.fg.primary.default";
61
+ readonly selectHighlightInverse: "system.color.fg.inverse";
62
+ };
63
+ };
6
64
  readonly borderRadius: {
7
65
  readonly name: "shape";
8
66
  readonly type: "system";
@@ -215,7 +273,7 @@ export declare const systemColors: {
215
273
  licorice400: string;
216
274
  licorice500: string;
217
275
  };
218
- 'border,borderColor,borderTopColor,borderRightColor,borderBottomColor,borderLeftColor,borderInline,borderInlineStart,borderInlineEnd,borderBlock,borderBlockStart,borderBlockEnd,borderInlineColor,borderBlockColor,borderInlineStartColor,borderInlineEndColor,borderBlockStartColor,borderBlockEndColor,borderColorFocus,borderColorHover,borderColorActive': {
276
+ 'border,borderColor,borderTop,borderTopColor,borderRight,borderRightColor,borderBottom,borderBottomColor,borderLeft,borderLeftColor,borderInlineColor,borderBlockColor,borderInline,borderInlineStart,borderInlineStartColor,borderInlineEnd,borderInlineEndColor,borderBlockStart,borderBlockStartColor,borderBlockEnd,borderBlockEndColor,borderColorFocus,borderColorHover,borderColorActive': {
219
277
  blackPepper400: string;
220
278
  blackPepper500: string;
221
279
  blueberry400: string;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../lib/v13.2/mapping/index.ts"],"names":[],"mappings":"AAqFA,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyBV,CAAC;AAEX,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4DxB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../lib/v13.2/mapping/index.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,YAAY,UA6BxB,CAAC;AAqFF,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkFV,CAAC;AAEX,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4DxB,CAAC"}
@@ -1,4 +1,34 @@
1
1
  import { generateLevelTokens } from '../utils/generateLevelTokens';
2
+ export const paletteNames = [
3
+ 'cinnamon',
4
+ 'peach',
5
+ 'chiliMango',
6
+ 'cantaloupe',
7
+ 'sourLemon',
8
+ 'juicyPear',
9
+ 'kiwi',
10
+ 'greenApple',
11
+ 'watermelon',
12
+ 'jewel',
13
+ 'toothpaste',
14
+ 'blueberry',
15
+ 'plum',
16
+ 'berrySmoothie',
17
+ 'blackberry',
18
+ 'islandPunch',
19
+ 'grapeSoda',
20
+ 'pomegranate',
21
+ 'fruitPunch',
22
+ 'rootBeer',
23
+ 'toastedMarshmallow',
24
+ 'licorice',
25
+ 'soap',
26
+ 'frenchVanilla',
27
+ 'blackPepper',
28
+ 'coconut',
29
+ 'cappuccino',
30
+ 'dragonFruit',
31
+ ];
2
32
  const typeLevelsMap = {
3
33
  subtext: {
4
34
  small: generateLevelTokens(['subtext', 'small']),
@@ -83,6 +113,63 @@ export const mapping = {
83
113
  type: 'base',
84
114
  name: 'colors',
85
115
  },
116
+ commonColors: {
117
+ type: 'system',
118
+ name: 'commonColors',
119
+ keys: {
120
+ background: 'system.color.bg.default',
121
+ backgroundAlt: 'system.color.bg.alt.default',
122
+ focusOutline: 'system.color.border.primary.default',
123
+ focusBackground: 'system.color.bg.primary.default',
124
+ hoverBackground: 'system.color.bg.alt.strong',
125
+ divider: 'system.color.border.divider',
126
+ },
127
+ },
128
+ inputColors: {
129
+ type: 'system',
130
+ name: 'inputColors',
131
+ keys: {
132
+ background: 'system.color.bg.default',
133
+ border: 'system.color.border.input.default',
134
+ placeholder: 'system.color.fg.muted.default',
135
+ text: 'system.color.fg.default',
136
+ icon: 'system.color.fg.muted.soft',
137
+ iconHover: 'system.color.fg.muted.stronger',
138
+ selectionControlFill: 'system.color.bg.primary.default',
139
+ hoverBorder: 'system.color.border.input.strong',
140
+ focusBorder: 'system.color.border.primary.default',
141
+ disabled: {
142
+ background: 'system.color.bg.alt.softer',
143
+ border: 'system.color.border.input.strong',
144
+ text: 'system.color.fg.disabled',
145
+ icon: 'system.color.fg.disabled',
146
+ },
147
+ error: {
148
+ border: 'system.color.border.critical.default',
149
+ message: 'system.color.fg.critical.default',
150
+ icon: 'system.color.fg.critical.default',
151
+ },
152
+ alert: {
153
+ border: 'system.color.border.caution.default',
154
+ message: 'system.color.fg.caution.default',
155
+ icon: 'system.color.fg.caution.default',
156
+ },
157
+ },
158
+ },
159
+ typeColors: {
160
+ type: 'system',
161
+ name: 'typeColors',
162
+ keys: {
163
+ body: 'system.color.fg.default',
164
+ heading: 'system.color.fg.strong',
165
+ hint: 'system.color.fg.muted.soft',
166
+ inverse: 'system.color.fg.inverse',
167
+ label: 'system.color.fg.default',
168
+ link: 'system.color.fg.primary.default',
169
+ selectHighlight: 'system.color.fg.primary.default',
170
+ selectHighlightInverse: 'system.color.fg.inverse',
171
+ },
172
+ },
86
173
  borderRadius: {
87
174
  name: 'shape',
88
175
  type: 'system',
@@ -148,7 +235,7 @@ export const systemColors = {
148
235
  licorice400: 'system.color.fg.muted.strong',
149
236
  licorice500: 'system.color.fg.muted.stronger',
150
237
  },
151
- 'border,borderColor,borderTopColor,borderRightColor,borderBottomColor,borderLeftColor,borderInline,borderInlineStart,borderInlineEnd,borderBlock,borderBlockStart,borderBlockEnd,borderInlineColor,borderBlockColor,borderInlineStartColor,borderInlineEndColor,borderBlockStartColor,borderBlockEndColor,borderColorFocus,borderColorHover,borderColorActive': {
238
+ 'border,borderColor,borderTop,borderTopColor,borderRight,borderRightColor,borderBottom,borderBottomColor,borderLeft,borderLeftColor,borderInlineColor,borderBlockColor,borderInline,borderInlineStart,borderInlineStartColor,borderInlineEnd,borderInlineEndColor,borderBlockStart,borderBlockStartColor,borderBlockEnd,borderBlockEndColor,borderColorFocus,borderColorHover,borderColorActive': {
152
239
  blackPepper400: 'system.color.border.contrast.default',
153
240
  blackPepper500: 'system.color.border.contrast.strong',
154
241
  blueberry400: 'system.color.border.primary.default',
@@ -1 +1 @@
1
- {"version":3,"file":"migrateColorTokens.d.ts","sourceRoot":"","sources":["../../../lib/v13.2/migrateColorTokens.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,SAAS,EAAC,MAAM,aAAa,CAAC;AAQlD,QAAA,MAAM,SAAS,EAAE,SAuFhB,CAAC;AAEF,eAAe,SAAS,CAAC"}
1
+ {"version":3,"file":"migrateColorTokens.d.ts","sourceRoot":"","sources":["../../../lib/v13.2/migrateColorTokens.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,SAAS,EAAC,MAAM,aAAa,CAAC;AAkBlD,QAAA,MAAM,SAAS,EAAE,SAsKhB,CAAC;AAEF,eAAe,SAAS,CAAC"}
@@ -1,6 +1,10 @@
1
- import { addMissingImports, filterOutImports, transformObjectPropertyRecursively } from './utils';
2
- import { mapping } from './mapping';
3
- const canvasImportSources = ['@workday/canvas-kit-styling', '@workday/canvas-kit-react/tokens'];
1
+ import { addMissingImports, filterOutImports, getImports, transformObjectPropertyRecursively, varToMemberExpression, } from './utils';
2
+ import { mapping, paletteNames } from './mapping';
3
+ const canvasImportSources = [
4
+ '@workday/canvas-kit-styling',
5
+ '@workday/canvas-kit-react/tokens',
6
+ '@workday/canvas-colors-web',
7
+ ];
4
8
  const transform = (file, api) => {
5
9
  const j = api.jscodeshift;
6
10
  const root = j(file.source);
@@ -11,7 +15,7 @@ const transform = (file, api) => {
11
15
  source: { value: (value) => canvasImportSources.includes(value) },
12
16
  })
13
17
  .forEach(nodePath => {
14
- importDeclaration = { ...importDeclaration, ...filterOutImports(nodePath) };
18
+ importDeclaration = { ...importDeclaration, ...getImports(nodePath) };
15
19
  });
16
20
  if (!Object.values(importDeclaration).includes('colors')) {
17
21
  return root.toSource();
@@ -26,7 +30,7 @@ const transform = (file, api) => {
26
30
  const name = nodePath.value.callee.name;
27
31
  const stylesDeclaration = nodePath.value.arguments[0];
28
32
  const isCanvasKitStyling = importDeclaration[name] === 'createStyles' || importDeclaration[name] === 'createStencil';
29
- if (stylesDeclaration.type === 'ObjectExpression') {
33
+ if ((stylesDeclaration === null || stylesDeclaration === void 0 ? void 0 : stylesDeclaration.type) === 'ObjectExpression') {
30
34
  stylesDeclaration.properties = stylesDeclaration.properties.map((prop) => transformObjectPropertyRecursively({ j, root }, prop, importDeclaration, isCanvasKitStyling));
31
35
  }
32
36
  });
@@ -35,21 +39,61 @@ const transform = (file, api) => {
35
39
  });
36
40
  root
37
41
  .find(j.MemberExpression, (value) => {
38
- return (value.type === 'MemberExpression' &&
39
- ((value.object.type === 'MemberExpression' &&
40
- value.object.object.type === 'MemberExpression' &&
41
- checkImport(value.object.object.object.name)) ||
42
- checkImport(value.object.name)));
42
+ // Matches: commonColors.background
43
+ const isTwoParts = value.type === 'MemberExpression' &&
44
+ value.object.type === 'Identifier' &&
45
+ checkImport(value.object.name);
46
+ // Matches: inputColors.disabled.border
47
+ const isThreeParts = value.type === 'MemberExpression' &&
48
+ value.object.type === 'MemberExpression' &&
49
+ value.object.object.type === 'Identifier' &&
50
+ checkImport(value.object.object.name);
51
+ return isTwoParts || isThreeParts;
43
52
  })
44
53
  .replaceWith(nodePath => {
54
+ var _a;
45
55
  const mainWrapper = nodePath.value.object;
46
- if (mainWrapper.type === 'Identifier' && importDeclaration[mainWrapper.name] !== 'type') {
56
+ if (mainWrapper.type === 'MemberExpression') {
57
+ const mainObject = mainWrapper.object;
58
+ const mainName = mainObject.type === 'Identifier' ? mainObject.name : '';
59
+ const mainProperty = mainWrapper.property;
60
+ const lowestProperty = nodePath.value.property;
61
+ const importedName = importDeclaration[mainName];
62
+ const map = mapping[importedName];
63
+ if ((map === null || map === void 0 ? void 0 : map.type) === 'system' &&
64
+ importedName &&
65
+ importedName.toLowerCase().includes('colors') &&
66
+ mainProperty.type === 'Identifier' &&
67
+ lowestProperty.type === 'Identifier') {
68
+ const innerGroup = map.keys[mainProperty.name] || {};
69
+ const token = innerGroup[lowestProperty.name];
70
+ if (token) {
71
+ addMissingImports({ j, root }, { importPath: '@workday/canvas-tokens-web', specifiers: ['system'] });
72
+ addMissingImports({ j, root }, { importPath: '@workday/canvas-kit-styling', specifiers: ['cssVar'] });
73
+ return j.callExpression(j.identifier('cssVar'), [varToMemberExpression(j, token)]);
74
+ }
75
+ }
76
+ }
77
+ if (mainWrapper.type === 'Identifier' &&
78
+ ((_a = importDeclaration[mainWrapper.name]) === null || _a === void 0 ? void 0 : _a.toLowerCase().includes('colors'))) {
47
79
  const mainObject = mainWrapper;
48
80
  const mainName = mainObject.name;
49
81
  const lowestProperty = nodePath.value.property;
50
82
  const importedName = importDeclaration[mainName];
51
83
  const map = mapping[importedName];
52
- if (map.type === 'base' && lowestProperty.type === 'Identifier') {
84
+ if ((map === null || map === void 0 ? void 0 : map.type) === 'system' &&
85
+ lowestProperty.type === 'Identifier' &&
86
+ importedName !== 'inputColors') {
87
+ const token = map.keys[lowestProperty.name];
88
+ if (token && typeof token === 'string') {
89
+ addMissingImports({ j, root }, { importPath: '@workday/canvas-tokens-web', specifiers: ['system'] });
90
+ addMissingImports({ j, root }, { importPath: '@workday/canvas-kit-styling', specifiers: ['cssVar'] });
91
+ return j.callExpression(j.identifier('cssVar'), [varToMemberExpression(j, token)]);
92
+ }
93
+ }
94
+ if ((map === null || map === void 0 ? void 0 : map.type) === 'base' &&
95
+ lowestProperty.type === 'Identifier' &&
96
+ paletteNames.some(name => lowestProperty.name.includes(name))) {
53
97
  addMissingImports({ j, root }, { importPath: '@workday/canvas-tokens-web', specifiers: ['base'] });
54
98
  addMissingImports({ j, root }, { importPath: '@workday/canvas-kit-styling', specifiers: ['cssVar'] });
55
99
  return j.callExpression(j.identifier('cssVar'), [
@@ -57,7 +101,14 @@ const transform = (file, api) => {
57
101
  ]);
58
102
  }
59
103
  }
60
- return nodePath;
104
+ return nodePath.value;
105
+ });
106
+ root
107
+ .find(j.ImportDeclaration, {
108
+ source: { value: (value) => canvasImportSources.includes(value) },
109
+ })
110
+ .forEach(nodePath => {
111
+ filterOutImports({ root, j }, nodePath, 'colors');
61
112
  });
62
113
  return root.toSource();
63
114
  };
@@ -1 +1 @@
1
- {"version":3,"file":"migrateDepthTokens.d.ts","sourceRoot":"","sources":["../../../lib/v13.2/migrateDepthTokens.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAC,MAAM,aAAa,CAAC;AAOtC,QAAA,MAAM,SAAS,EAAE,SAoKhB,CAAC;AAEF,eAAe,SAAS,CAAC"}
1
+ {"version":3,"file":"migrateDepthTokens.d.ts","sourceRoot":"","sources":["../../../lib/v13.2/migrateDepthTokens.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAC,MAAM,aAAa,CAAC;AAatC,QAAA,MAAM,SAAS,EAAE,SAqLhB,CAAC;AAEF,eAAe,SAAS,CAAC"}
@@ -1,5 +1,10 @@
1
- import { addMissingImports, filterOutImports } from './utils';
2
- const canvasImportSources = ['@workday/canvas-kit-styling', '@workday/canvas-kit-react/tokens'];
1
+ import { addMissingImports, filterOutImports, getImports } from './utils';
2
+ const canvasImportSources = [
3
+ '@workday/canvas-kit-styling',
4
+ '@workday/canvas-kit-react/tokens',
5
+ '@workday/canvas-depth-web',
6
+ ];
7
+ const depthValues = ['0', '1', '2', '3', '4', '5', '6'];
3
8
  const transform = (file, api) => {
4
9
  const j = api.jscodeshift;
5
10
  const root = j(file.source);
@@ -10,7 +15,7 @@ const transform = (file, api) => {
10
15
  source: { value: (value) => canvasImportSources.includes(value) },
11
16
  })
12
17
  .forEach(nodePath => {
13
- importDeclaration = { ...importDeclaration, ...filterOutImports(nodePath) };
18
+ importDeclaration = { ...importDeclaration, ...getImports(nodePath) };
14
19
  });
15
20
  if (!Object.values(importDeclaration).includes('depth')) {
16
21
  return root.toSource();
@@ -21,28 +26,31 @@ const transform = (file, api) => {
21
26
  type: 'MemberExpression',
22
27
  object: {
23
28
  type: 'Identifier',
24
- name: 'depth',
29
+ name: (name) => importDeclaration[name] === 'depth',
25
30
  },
26
31
  property: {
27
- type: 'NumericLiteral',
32
+ type: (type) => type === 'NumericLiteral' || type === 'StringLiteral',
33
+ value: (value) => ['0', '1', '2', '3', '4', '5', '6'].includes(`${value}`),
28
34
  },
29
35
  },
30
36
  })
31
37
  .replaceWith(nodePath => {
32
38
  const argument = nodePath.value.argument;
33
- if (argument.type === 'MemberExpression' && argument.property.type === 'NumericLiteral') {
39
+ if (argument.type === 'MemberExpression' &&
40
+ (argument.property.type === 'NumericLiteral' || argument.property.type === 'StringLiteral')) {
34
41
  const depthValue = argument.property.value;
42
+ const isDepthNotZero = `${depthValue}` !== '0';
35
43
  addMissingImports({ j, root }, { importPath: '@workday/canvas-tokens-web', specifiers: ['system'] });
36
- if (depthValue > 0) {
44
+ if (isDepthNotZero) {
37
45
  addMissingImports({ j, root }, { importPath: '@workday/canvas-kit-styling', specifiers: ['cssVar'] });
38
46
  }
39
- return depthValue > 0
40
- ? j.objectProperty(j.identifier('boxShadow'), j.callExpression(j.identifier('cssVar'), [
41
- j.memberExpression(j.memberExpression(j.identifier('system'), j.identifier('depth')), j.numericLiteral(depthValue), true),
42
- ]))
43
- : j.objectProperty(j.identifier('boxShadow'), j.literal('none'));
47
+ return j.objectProperty(j.identifier('boxShadow'), isDepthNotZero
48
+ ? j.callExpression(j.identifier('cssVar'), [
49
+ j.memberExpression(j.memberExpression(j.identifier('system'), j.identifier('depth')), j.numericLiteral(parseInt(`${depthValue}`, 10)), true),
50
+ ])
51
+ : j.literal('none'));
44
52
  }
45
- return nodePath;
53
+ return nodePath.value;
46
54
  });
47
55
  root
48
56
  .find(j.MemberExpression, (value) => {
@@ -53,19 +61,22 @@ const transform = (file, api) => {
53
61
  .replaceWith(nodePath => {
54
62
  if (nodePath.value.object.type === 'MemberExpression' &&
55
63
  nodePath.value.object.object.type === 'Identifier' &&
56
- nodePath.value.object.property.type === 'NumericLiteral') {
64
+ (nodePath.value.object.property.type === 'NumericLiteral' ||
65
+ (nodePath.value.object.property.type === 'StringLiteral' &&
66
+ depthValues.includes(nodePath.value.object.property.value)))) {
57
67
  const value = nodePath.value.object.property.value;
58
- if (value.toString() !== '0') {
68
+ const isNotZero = `${value}` !== '0';
69
+ if (isNotZero) {
59
70
  addMissingImports({ j, root }, { importPath: '@workday/canvas-kit-styling', specifiers: ['cssVar'] });
60
71
  addMissingImports({ j, root }, { importPath: '@workday/canvas-tokens-web', specifiers: ['system'] });
61
72
  }
62
- return value.toString() === '0'
73
+ return !isNotZero
63
74
  ? j.literal('none')
64
75
  : j.callExpression(j.identifier('cssVar'), [
65
- j.memberExpression(j.memberExpression(j.identifier('system'), j.identifier('depth')), j.numericLiteral(value), true),
76
+ j.memberExpression(j.memberExpression(j.identifier('system'), j.identifier('depth')), j.numericLiteral(parseInt(`${value}`, 10)), true),
66
77
  ]);
67
78
  }
68
- return nodePath;
79
+ return nodePath.value;
69
80
  });
70
81
  root
71
82
  .find(j.MemberExpression, (value) => {
@@ -77,13 +88,11 @@ const transform = (file, api) => {
77
88
  })
78
89
  .replaceWith(nodePath => {
79
90
  const mainWrapper = nodePath.value.object;
80
- if (mainWrapper.type === 'Identifier' && importDeclaration[mainWrapper.name] !== 'type') {
81
- const mainObject = mainWrapper;
82
- const mainName = mainObject.name;
91
+ if (mainWrapper.type === 'Identifier' && importDeclaration[mainWrapper.name] === 'depth') {
83
92
  const lowestProperty = nodePath.value.property;
84
- const importedName = importDeclaration[mainName];
85
- if (importedName === 'depth' && lowestProperty.type === 'NumericLiteral') {
86
- const isZero = lowestProperty.value.toString() === '0';
93
+ if (lowestProperty.type === 'NumericLiteral' ||
94
+ (lowestProperty.type === 'StringLiteral' && depthValues.includes(lowestProperty.value))) {
95
+ const isZero = `${lowestProperty.value}` === '0';
87
96
  if (!isZero) {
88
97
  addMissingImports({ j, root }, { importPath: '@workday/canvas-kit-styling', specifiers: ['cssVar'] });
89
98
  addMissingImports({ j, root }, { importPath: '@workday/canvas-tokens-web', specifiers: ['system'] });
@@ -92,12 +101,19 @@ const transform = (file, api) => {
92
101
  j.property('init', j.identifier('boxShadow'), isZero
93
102
  ? j.literal('none')
94
103
  : j.callExpression(j.identifier('cssVar'), [
95
- j.memberExpression(j.memberExpression(j.identifier('system'), j.identifier('depth')), j.numericLiteral(lowestProperty.value), true),
104
+ j.memberExpression(j.memberExpression(j.identifier('system'), j.identifier('depth')), j.numericLiteral(parseInt(`${lowestProperty.value}`, 10)), true),
96
105
  ])),
97
106
  ]);
98
107
  }
99
108
  }
100
- return nodePath;
109
+ return nodePath.value;
110
+ });
111
+ root
112
+ .find(j.ImportDeclaration, {
113
+ source: { value: (value) => canvasImportSources.includes(value) },
114
+ })
115
+ .forEach(nodePath => {
116
+ filterOutImports({ root, j }, nodePath, 'depth');
101
117
  });
102
118
  return root.toSource();
103
119
  };
@@ -1 +1 @@
1
- {"version":3,"file":"migrateOtherTokens.d.ts","sourceRoot":"","sources":["../../../lib/v13.2/migrateOtherTokens.ts"],"names":[],"mappings":"AAAA,OAAO,EAA+B,SAAS,EAAC,MAAM,aAAa,CAAC;AAQpE,QAAA,MAAM,SAAS,EAAE,SA4KhB,CAAC;AAEF,eAAe,SAAS,CAAC"}
1
+ {"version":3,"file":"migrateOtherTokens.d.ts","sourceRoot":"","sources":["../../../lib/v13.2/migrateOtherTokens.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,SAAS,EAAC,MAAM,aAAa,CAAC;AAmBlD,QAAA,MAAM,SAAS,EAAE,SAgHhB,CAAC;AAEF,eAAe,SAAS,CAAC"}
@@ -1,6 +1,11 @@
1
- import { addMissingImports, filterOutImports, varToMemberExpression } from './utils';
2
- import { mapping, systemColors } from './mapping';
3
- const canvasImportSources = ['@workday/canvas-kit-styling', '@workday/canvas-kit-react/tokens'];
1
+ import { addMissingImports, filterOutImports, getImports, transformObjectPropertyRecursively, } from './utils';
2
+ import { mapping } from './mapping';
3
+ const canvasImportSources = [
4
+ '@workday/canvas-kit-styling',
5
+ '@workday/canvas-kit-react/tokens',
6
+ '@workday/canvas-space-web',
7
+ ];
8
+ const tokens = ['space', 'borderRadius'];
4
9
  const transform = (file, api) => {
5
10
  const j = api.jscodeshift;
6
11
  const root = j(file.source);
@@ -11,9 +16,12 @@ const transform = (file, api) => {
11
16
  source: { value: (value) => canvasImportSources.includes(value) },
12
17
  })
13
18
  .forEach(nodePath => {
14
- importDeclaration = { ...importDeclaration, ...filterOutImports(nodePath) };
19
+ importDeclaration = {
20
+ ...importDeclaration,
21
+ ...getImports(nodePath),
22
+ };
15
23
  });
16
- if (!Object.values(importDeclaration).some(value => value === 'space' || value === 'borderRadius')) {
24
+ if (!Object.values(importDeclaration).some(value => tokens.includes(value))) {
17
25
  return root.toSource();
18
26
  }
19
27
  root
@@ -23,60 +31,11 @@ const transform = (file, api) => {
23
31
  },
24
32
  })
25
33
  .forEach(nodePath => {
26
- addMissingImports({ j, root }, { importPath: '@workday/canvas-tokens-web', specifiers: ['system'] });
27
34
  const name = nodePath.value.callee.name;
28
35
  const stylesDeclaration = nodePath.value.arguments[0];
29
36
  const isCanvasKitStyling = importDeclaration[name] === 'createStyles' || importDeclaration[name] === 'createStencil';
30
- if (stylesDeclaration.type === 'ObjectExpression') {
31
- const transformProperty = (property) => {
32
- var _a;
33
- if (property.type === 'ObjectProperty' &&
34
- property.key.type === 'Identifier' &&
35
- property.value.type === 'MemberExpression' &&
36
- property.value.object.type === 'Identifier' &&
37
- property.value.property.type === 'Identifier' &&
38
- importDeclaration[property.value.object.name] === 'colors') {
39
- const key = property.key.name;
40
- const tokens = (_a = Object.entries(systemColors).find(([blockKey]) => blockKey.split(',').some(prop => prop === key))) === null || _a === void 0 ? void 0 : _a[1];
41
- const { property: value } = property.value;
42
- const colorToken = tokens === null || tokens === void 0 ? void 0 : tokens[value.name];
43
- if (colorToken) {
44
- if (!isCanvasKitStyling) {
45
- addMissingImports({ j, root }, { importPath: '@workday/canvas-kit-styling', specifiers: ['cssVar'] });
46
- }
47
- return j.objectProperty(j.identifier(key), isCanvasKitStyling
48
- ? varToMemberExpression(j, colorToken)
49
- : j.callExpression(j.identifier('cssVar'), [varToMemberExpression(j, colorToken)]));
50
- }
51
- }
52
- if (property.type === 'ObjectProperty' && property.value.type === 'TemplateLiteral') {
53
- const templateLiteral = property.value;
54
- const transformedQuasis = templateLiteral.quasis.map((quasi) => quasi);
55
- const transformedExpressions = templateLiteral.expressions.map((expr) => {
56
- var _a;
57
- if (expr.type === 'MemberExpression' &&
58
- expr.object.type === 'Identifier' &&
59
- expr.property.type === 'Identifier' &&
60
- importDeclaration[expr.object.name] === 'colors') {
61
- const tokens = (_a = Object.entries(systemColors).find(([blockKey]) => blockKey.split(',').some(prop => prop === property.key.name))) === null || _a === void 0 ? void 0 : _a[1];
62
- const colorToken = tokens === null || tokens === void 0 ? void 0 : tokens[expr.property.name];
63
- if (colorToken) {
64
- addMissingImports({ j, root }, { importPath: '@workday/canvas-kit-styling', specifiers: ['cssVar'] });
65
- return j.callExpression(j.identifier('cssVar'), [
66
- varToMemberExpression(j, colorToken),
67
- ]);
68
- }
69
- }
70
- return expr;
71
- });
72
- return j.objectProperty(property.key, j.templateLiteral(transformedQuasis, transformedExpressions));
73
- }
74
- if (property.type === 'ObjectProperty' && property.value.type === 'ObjectExpression') {
75
- return j.objectProperty(property.key, j.objectExpression(property.value.properties.map(transformProperty)));
76
- }
77
- return property;
78
- };
79
- stylesDeclaration.properties = stylesDeclaration.properties.map(transformProperty);
37
+ if ((stylesDeclaration === null || stylesDeclaration === void 0 ? void 0 : stylesDeclaration.type) === 'ObjectExpression') {
38
+ stylesDeclaration.properties = stylesDeclaration.properties.map((prop) => transformObjectPropertyRecursively({ j, root }, prop, importDeclaration, isCanvasKitStyling, [...tokens]));
80
39
  }
81
40
  });
82
41
  root
@@ -89,23 +48,34 @@ const transform = (file, api) => {
89
48
  })
90
49
  .replaceWith(nodePath => {
91
50
  const mainWrapper = nodePath.value.object;
92
- if (mainWrapper.type === 'Identifier' && importDeclaration[mainWrapper.name] !== 'type') {
93
- const mainObject = mainWrapper;
94
- const mainName = mainObject.name;
51
+ if (mainWrapper.type === 'Identifier' &&
52
+ tokens.includes(importDeclaration[mainWrapper.name])) {
53
+ const mainName = mainWrapper.name;
95
54
  const lowestProperty = nodePath.value.property;
96
55
  const importedName = importDeclaration[mainName];
97
56
  const map = mapping[importedName];
98
- if (importedName !== 'depth') {
99
- if (map.type === 'system' && lowestProperty.type === 'Identifier') {
100
- addMissingImports({ j, root }, { importPath: '@workday/canvas-kit-styling', specifiers: ['cssVar'] });
101
- addMissingImports({ j, root }, { importPath: '@workday/canvas-tokens-web', specifiers: ['system'] });
102
- return j.callExpression(j.identifier('cssVar'), [
103
- j.memberExpression(j.memberExpression(j.identifier(map.type), j.identifier(map.name)), j.identifier(map.keys[lowestProperty.name])),
104
- ]);
57
+ if (['space', 'borderRadius'].includes(importedName) &&
58
+ (map === null || map === void 0 ? void 0 : map.type) === 'system' &&
59
+ lowestProperty.type === 'Identifier') {
60
+ const newValue = map.keys[lowestProperty.name];
61
+ if (!newValue) {
62
+ return nodePath.value;
105
63
  }
64
+ addMissingImports({ j, root }, { importPath: '@workday/canvas-kit-styling', specifiers: ['cssVar'] });
65
+ addMissingImports({ j, root }, { importPath: '@workday/canvas-tokens-web', specifiers: ['system'] });
66
+ return j.callExpression(j.identifier('cssVar'), [
67
+ j.memberExpression(j.memberExpression(j.identifier(map.type), j.identifier(map.name)), j.identifier(map.keys[lowestProperty.name])),
68
+ ]);
106
69
  }
107
70
  }
108
- return nodePath;
71
+ return nodePath.value;
72
+ });
73
+ root
74
+ .find(j.ImportDeclaration, {
75
+ source: { value: (value) => canvasImportSources.includes(value) },
76
+ })
77
+ .forEach(nodePath => {
78
+ filterOutImports({ root, j }, nodePath, tokens);
109
79
  });
110
80
  return root.toSource();
111
81
  };
@@ -1 +1 @@
1
- {"version":3,"file":"migrateTypeTokens.d.ts","sourceRoot":"","sources":["../../../lib/v13.2/migrateTypeTokens.ts"],"names":[],"mappings":"AAAA,OAAO,EAA+B,SAAS,EAAC,MAAM,aAAa,CAAC;AASpE,QAAA,MAAM,SAAS,EAAE,SAiOhB,CAAC;AAEF,eAAe,SAAS,CAAC"}
1
+ {"version":3,"file":"migrateTypeTokens.d.ts","sourceRoot":"","sources":["../../../lib/v13.2/migrateTypeTokens.ts"],"names":[],"mappings":"AAAA,OAAO,EAA+B,SAAS,EAAC,MAAM,aAAa,CAAC;AASpE,QAAA,MAAM,SAAS,EAAE,SA6OhB,CAAC;AAEF,eAAe,SAAS,CAAC"}