@ethlete/cli 3.0.0-next.22 → 3.0.0-next.24

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 (154) hide show
  1. package/CHANGELOG.md +66 -0
  2. package/design/contrast.ts +49 -0
  3. package/design/define-call.ts +5 -8
  4. package/design/define-part.ts +63 -1
  5. package/design/morph.ts +67 -0
  6. package/design/motion-runtime.ts +200 -0
  7. package/design/web/env.d.ts +6 -2
  8. package/design/web/frame.ts +39 -1
  9. package/package.json +2 -1
  10. package/playwright/failure-reporter.d.ts +2 -0
  11. package/playwright/failure-reporter.js +1 -0
  12. package/src/lib/design/changed-parts.d.ts +4 -4
  13. package/src/lib/design/changed-parts.js +10 -6
  14. package/src/lib/design/changed-parts.js.map +1 -1
  15. package/src/lib/design/check.js +1 -1
  16. package/src/lib/design/check.js.map +1 -1
  17. package/src/lib/design/contact-sheet.d.ts +39 -8
  18. package/src/lib/design/contact-sheet.js +131 -21
  19. package/src/lib/design/contact-sheet.js.map +1 -1
  20. package/src/lib/design/design-command.js +22 -2
  21. package/src/lib/design/design-command.js.map +1 -1
  22. package/src/lib/design/generated-stylesheets.d.ts +15 -0
  23. package/src/lib/design/generated-stylesheets.js +52 -0
  24. package/src/lib/design/generated-stylesheets.js.map +1 -0
  25. package/src/lib/design/inbox-command.d.ts +1 -0
  26. package/src/lib/design/inbox-command.js +15 -0
  27. package/src/lib/design/inbox-command.js.map +1 -1
  28. package/src/lib/design/merge-compare.d.ts +10 -0
  29. package/src/lib/design/merge-compare.js +17 -4
  30. package/src/lib/design/merge-compare.js.map +1 -1
  31. package/src/lib/design/paths.d.ts +11 -0
  32. package/src/lib/design/paths.js.map +1 -1
  33. package/src/lib/design/render.d.ts +3 -1
  34. package/src/lib/design/render.js +17 -1
  35. package/src/lib/design/render.js.map +1 -1
  36. package/src/lib/design/serve.js +317 -254
  37. package/src/lib/design/serve.js.map +1 -1
  38. package/src/lib/design/shot-command.d.ts +25 -0
  39. package/src/lib/design/shot-command.js +162 -62
  40. package/src/lib/design/shot-command.js.map +1 -1
  41. package/src/lib/design/shot.d.ts +14 -4
  42. package/src/lib/design/shot.js +71 -50
  43. package/src/lib/design/shot.js.map +1 -1
  44. package/src/lib/design/sketch-command.d.ts +7 -1
  45. package/src/lib/design/sketch-command.js +108 -31
  46. package/src/lib/design/sketch-command.js.map +1 -1
  47. package/src/lib/design/sketch-stylesheets.d.ts +7 -0
  48. package/src/lib/design/sketch-stylesheets.js +63 -0
  49. package/src/lib/design/sketch-stylesheets.js.map +1 -0
  50. package/src/lib/design/studio-api.d.ts +20 -7
  51. package/src/lib/design/studio-api.js +99 -28
  52. package/src/lib/design/studio-api.js.map +1 -1
  53. package/src/lib/design/system/check-system.js +8 -0
  54. package/src/lib/design/system/check-system.js.map +1 -1
  55. package/src/lib/design/system/comments/comment.d.ts +18 -1
  56. package/src/lib/design/system/comments/comment.js +35 -1
  57. package/src/lib/design/system/comments/comment.js.map +1 -1
  58. package/src/lib/design/system/comments/complete.js +4 -2
  59. package/src/lib/design/system/comments/complete.js.map +1 -1
  60. package/src/lib/design/system/complete-command.d.ts +9 -0
  61. package/src/lib/design/system/complete-command.js +64 -0
  62. package/src/lib/design/system/complete-command.js.map +1 -0
  63. package/src/lib/design/system/complete.d.ts +73 -0
  64. package/src/lib/design/system/complete.js +655 -0
  65. package/src/lib/design/system/complete.js.map +1 -0
  66. package/src/lib/design/system/contrast-check.d.ts +26 -0
  67. package/src/lib/design/system/contrast-check.js +153 -0
  68. package/src/lib/design/system/contrast-check.js.map +1 -0
  69. package/src/lib/design/system/imports.d.ts +28 -3
  70. package/src/lib/design/system/imports.js +84 -7
  71. package/src/lib/design/system/imports.js.map +1 -1
  72. package/src/lib/design/system/list-system.d.ts +11 -0
  73. package/src/lib/design/system/list-system.js +17 -1
  74. package/src/lib/design/system/list-system.js.map +1 -1
  75. package/src/lib/design/system/product-stylesheets.d.ts +3 -0
  76. package/src/lib/design/system/product-stylesheets.js +40 -0
  77. package/src/lib/design/system/product-stylesheets.js.map +1 -0
  78. package/src/lib/design/system/render-check.js +11 -3
  79. package/src/lib/design/system/render-check.js.map +1 -1
  80. package/src/lib/design/system/rules/canonical-class.d.ts +9 -0
  81. package/src/lib/design/system/rules/canonical-class.js +132 -0
  82. package/src/lib/design/system/rules/canonical-class.js.map +1 -0
  83. package/src/lib/design/system/rules/inline-svg.d.ts +7 -0
  84. package/src/lib/design/system/rules/inline-svg.js +28 -0
  85. package/src/lib/design/system/rules/inline-svg.js.map +1 -0
  86. package/src/lib/design/system/rules/motion.d.ts +4 -0
  87. package/src/lib/design/system/rules/motion.js +46 -2
  88. package/src/lib/design/system/rules/motion.js.map +1 -1
  89. package/src/lib/design/system/rules/utility-css.d.ts +11 -0
  90. package/src/lib/design/system/rules/utility-css.js +290 -0
  91. package/src/lib/design/system/rules/utility-css.js.map +1 -0
  92. package/src/lib/design/system/sketch/baseline.d.ts +3 -2
  93. package/src/lib/design/system/sketch/baseline.js +10 -4
  94. package/src/lib/design/system/sketch/baseline.js.map +1 -1
  95. package/src/lib/design/system/sketch/merge-preview.d.ts +4 -2
  96. package/src/lib/design/system/sketch/merge-preview.js +20 -3
  97. package/src/lib/design/system/sketch/merge-preview.js.map +1 -1
  98. package/src/lib/design/system/sketch/merge-shared.d.ts +42 -6
  99. package/src/lib/design/system/sketch/merge-shared.js +122 -24
  100. package/src/lib/design/system/sketch/merge-shared.js.map +1 -1
  101. package/src/lib/design/system/sketch/merge.d.ts +3 -3
  102. package/src/lib/design/system/sketch/merge.js +57 -29
  103. package/src/lib/design/system/sketch/merge.js.map +1 -1
  104. package/src/lib/design/system/sketch/merged-parts.d.ts +7 -0
  105. package/src/lib/design/system/sketch/merged-parts.js +13 -1
  106. package/src/lib/design/system/sketch/merged-parts.js.map +1 -1
  107. package/src/lib/design/system/sketch/no-visible-change.d.ts +4 -3
  108. package/src/lib/design/system/sketch/no-visible-change.js +50 -19
  109. package/src/lib/design/system/sketch/no-visible-change.js.map +1 -1
  110. package/src/lib/design/system/sketch/overlay.js +7 -2
  111. package/src/lib/design/system/sketch/overlay.js.map +1 -1
  112. package/src/lib/design/system/sketch/part-definition.d.ts +12 -0
  113. package/src/lib/design/system/sketch/part-definition.js +40 -1
  114. package/src/lib/design/system/sketch/part-definition.js.map +1 -1
  115. package/src/lib/design/system/sketch/sketch.d.ts +63 -12
  116. package/src/lib/design/system/sketch/sketch.js +165 -36
  117. package/src/lib/design/system/sketch/sketch.js.map +1 -1
  118. package/src/lib/design/system/sketch/unchanged-states.d.ts +11 -5
  119. package/src/lib/design/system/sketch/unchanged-states.js +39 -25
  120. package/src/lib/design/system/sketch/unchanged-states.js.map +1 -1
  121. package/src/lib/design/system/system-modules.d.ts +5 -1
  122. package/src/lib/design/system/system-modules.js +26 -8
  123. package/src/lib/design/system/system-modules.js.map +1 -1
  124. package/src/lib/design/system/system-tsconfig.js +2 -1
  125. package/src/lib/design/system/system-tsconfig.js.map +1 -1
  126. package/src/lib/design/thumb.d.ts +6 -2
  127. package/src/lib/design/thumb.js +36 -15
  128. package/src/lib/design/thumb.js.map +1 -1
  129. package/src/lib/design/typecheck.d.ts +2 -0
  130. package/src/lib/design/typecheck.js +19 -2
  131. package/src/lib/design/typecheck.js.map +1 -1
  132. package/src/lib/design/variant-diff.d.ts +24 -6
  133. package/src/lib/design/variant-diff.js +26 -10
  134. package/src/lib/design/variant-diff.js.map +1 -1
  135. package/src/lib/design/warm-pages.d.ts +20 -0
  136. package/src/lib/design/warm-pages.js +78 -0
  137. package/src/lib/design/warm-pages.js.map +1 -0
  138. package/src/lib/playwright/failure-reporter.d.ts +35 -0
  139. package/src/lib/playwright/failure-reporter.js +66 -0
  140. package/src/lib/playwright/failure-reporter.js.map +1 -0
  141. package/src/lib/update/commits.d.ts +9 -0
  142. package/src/lib/update/commits.js +15 -1
  143. package/src/lib/update/commits.js.map +1 -1
  144. package/src/lib/update/migration-manifest.d.ts +6 -0
  145. package/src/lib/update/migration-manifest.js +7 -0
  146. package/src/lib/update/migration-manifest.js.map +1 -1
  147. package/src/lib/update/migrations-command.js +1 -0
  148. package/src/lib/update/migrations-command.js.map +1 -1
  149. package/src/lib/update/run-migrations.d.ts +22 -0
  150. package/src/lib/update/run-migrations.js +60 -1
  151. package/src/lib/update/run-migrations.js.map +1 -1
  152. package/src/lib/update/update-command.d.ts +10 -0
  153. package/src/lib/update/update-command.js +28 -2
  154. package/src/lib/update/update-command.js.map +1 -1
@@ -11,13 +11,14 @@ var __rest = (this && this.__rest) || function (s, e) {
11
11
  return t;
12
12
  };
13
13
  Object.defineProperty(exports, "__esModule", { value: true });
14
- exports.editRound = exports.addVariant = exports.rebaseSketch = exports.decideSketch = exports.markSketchReady = exports.finishSketchReport = exports.clearSketchReport = exports.readSketchReport = exports.reportSketch = exports.sketchReportPath = exports.withAuthor = exports.createSketch = exports.sketchSourceOf = exports.writeSketchFile = exports.findSketch = exports.listSketches = exports.readSketch = exports.authorsOf = exports.runningRoundOf = exports.isVariantName = exports.parseTarget = exports.sourceFilesIn = exports.variantSharedDirOf = exports.sharedDirOf = exports.SHARED_FOLDER = exports.variantDirOf = exports.sketchDirOf = exports.sketchFolderOf = exports.sketchesDirOf = exports.SKETCH_FILE = exports.SKETCH_STATUSES = void 0;
14
+ exports.editRound = exports.addVariant = exports.rebaseSketch = exports.decideSketch = exports.markSketchReady = exports.finishSketchReport = exports.clearSketchReport = exports.readSketchReport = exports.reportSketch = exports.sketchReportPath = exports.withAuthor = exports.createSketch = exports.sketchSourceOf = exports.writeSketchFile = exports.findSketch = exports.listSketches = exports.readSketch = exports.authorsOf = exports.rejectedProblemOf = exports.rejectionOf = exports.runningRoundOf = exports.isVariantName = exports.parseTarget = exports.sourceFilesIn = exports.variantSharedDirOf = exports.sharedDirOf = exports.SHARED_FOLDER = exports.variantDirOf = exports.sketchDirOf = exports.sketchFolderOf = exports.sketchesDirOf = exports.SKETCH_FILE = exports.SKETCH_STATUSES = void 0;
15
15
  const fs_1 = require("fs");
16
16
  const path_1 = require("path");
17
17
  const json_layout_1 = require("../../json-layout");
18
18
  const status_1 = require("../../status");
19
19
  const assets_1 = require("../assets");
20
20
  const imports_1 = require("../imports");
21
+ Object.defineProperty(exports, "SHARED_FOLDER", { enumerable: true, get: function () { return imports_1.SHARED_FOLDER; } });
21
22
  const layers_1 = require("../layers");
22
23
  const resolve_product_1 = require("../resolve-product");
23
24
  const baseline_1 = require("./baseline");
@@ -33,12 +34,10 @@ const sketchDirOf = (options) => (0, path_1.resolve)((0, exports.sketchesDirOf)(
33
34
  exports.sketchDirOf = sketchDirOf;
34
35
  const variantDirOf = (sketch, variant) => (0, path_1.resolve)(sketch.dir, variant);
35
36
  exports.variantDirOf = variantDirOf;
36
- /** The folder of a sketch that holds no variant: code every variant imports as `@shared/<path>`. */
37
- exports.SHARED_FOLDER = 'shared';
38
- const sharedDirOf = (sketch) => (0, path_1.resolve)(sketch.dir, exports.SHARED_FOLDER);
37
+ const sharedDirOf = (sketch) => (0, path_1.resolve)(sketch.dir, imports_1.SHARED_FOLDER);
39
38
  exports.sharedDirOf = sharedDirOf;
40
39
  /** A variant's own `shared/` folder: a file there wins over the sketch's `shared/` file of the same path. */
41
- const variantSharedDirOf = (sketch, variant) => (0, path_1.resolve)((0, exports.variantDirOf)(sketch, variant), exports.SHARED_FOLDER);
40
+ const variantSharedDirOf = (sketch, variant) => (0, path_1.resolve)((0, exports.variantDirOf)(sketch, variant), imports_1.SHARED_FOLDER);
42
41
  exports.variantSharedDirOf = variantSharedDirOf;
43
42
  const SOURCE = /\.(?:ts|js|mjs)$/u;
44
43
  const sourceFilesIn = (dir) => (0, fs_1.existsSync)(dir)
@@ -49,7 +48,7 @@ const sourceFilesIn = (dir) => (0, fs_1.existsSync)(dir)
49
48
  exports.sourceFilesIn = sourceFilesIn;
50
49
  const liftShared = (options) => {
51
50
  const { partDir, sketchSharedDir } = options;
52
- const shared = (0, path_1.resolve)(partDir, exports.SHARED_FOLDER);
51
+ const shared = (0, path_1.resolve)(partDir, imports_1.SHARED_FOLDER);
53
52
  if (!(0, fs_1.existsSync)(shared))
54
53
  return;
55
54
  for (const file of (0, exports.sourceFilesIn)(partDir)) {
@@ -66,6 +65,23 @@ const liftShared = (options) => {
66
65
  (0, fs_1.cpSync)(shared, sketchSharedDir, { recursive: true });
67
66
  (0, fs_1.rmSync)(shared, { recursive: true });
68
67
  };
68
+ const sharedClashOf = (parts) => {
69
+ const seen = new Map();
70
+ for (const part of parts) {
71
+ if (!part)
72
+ continue;
73
+ const shared = (0, path_1.resolve)((0, path_1.dirname)(part.file), imports_1.SHARED_FOLDER);
74
+ for (const file of (0, assets_1.filesBelow)(shared)) {
75
+ const path = (0, path_1.relative)(shared, file).split(path_1.sep).join('/');
76
+ const source = (0, fs_1.readFileSync)(file, 'utf8');
77
+ const held = seen.get(path);
78
+ if (held && held.source !== source)
79
+ return `${held.key} and ${(0, resolve_product_1.partKeyOf)(part)} each hold a different ${imports_1.SHARED_FOLDER}/${path} - rename one, then open the sketch`;
80
+ seen.set(path, { key: (0, resolve_product_1.partKeyOf)(part), source });
81
+ }
82
+ }
83
+ return undefined;
84
+ };
69
85
  /** Reads `<layer>/<name>` as a sketch target, or answers with why it is not one. */
70
86
  const parseTarget = (value) => {
71
87
  const [layer = '', name = '', ...rest] = (value !== null && value !== void 0 ? value : '').split('/');
@@ -74,7 +90,7 @@ const parseTarget = (value) => {
74
90
  return { layer, name };
75
91
  };
76
92
  exports.parseTarget = parseTarget;
77
- const isVariantName = (name) => NAME.test(name) && name !== exports.SHARED_FOLDER;
93
+ const isVariantName = (name) => NAME.test(name) && name !== imports_1.SHARED_FOLDER;
78
94
  exports.isVariantName = isVariantName;
79
95
  const foldersOf = (dir) => (0, fs_1.existsSync)(dir)
80
96
  ? (0, fs_1.readdirSync)(dir)
@@ -91,6 +107,33 @@ const isVariantInfo = (value) => typeof value === 'object' &&
91
107
  isAuthors(info.authors) &&
92
108
  ['undefined', 'string'].includes(typeof info.round) &&
93
109
  ['undefined', 'string'].includes(typeof info.note));
110
+ const VERDICT_BY = ['designer', 'agent'];
111
+ const isVerdictBy = (value) => VERDICT_BY.includes(value);
112
+ const isOptionalText = (value) => value === undefined || typeof value === 'string';
113
+ const isReopening = (value) => {
114
+ const reopening = value;
115
+ return (typeof reopening === 'object' &&
116
+ reopening !== null &&
117
+ isVerdictBy(reopening.by) &&
118
+ typeof reopening.decidedAt === 'string' &&
119
+ isOptionalText(reopening.reason));
120
+ };
121
+ const isRejection = (value) => {
122
+ const rejection = value;
123
+ return (typeof rejection === 'object' &&
124
+ rejection !== null &&
125
+ isVerdictBy(rejection.by) &&
126
+ typeof rejection.decidedAt === 'string' &&
127
+ isOptionalText(rejection.reason) &&
128
+ (rejection.reasonBy === undefined || isVerdictBy(rejection.reasonBy)) &&
129
+ (rejection.reopened === undefined || isReopening(rejection.reopened)));
130
+ };
131
+ const isRejections = (value) => typeof value === 'object' &&
132
+ value !== null &&
133
+ !Array.isArray(value) &&
134
+ Object.values(value).every((list) => Array.isArray(list) &&
135
+ list.every(isRejection) &&
136
+ list.slice(0, -1).every((rejection) => rejection.reopened !== undefined));
94
137
  const isRounds = (value) => Array.isArray(value) &&
95
138
  value.length > 0 &&
96
139
  value.every((round) => typeof (round === null || round === void 0 ? void 0 : round.key) === 'string' &&
@@ -106,12 +149,28 @@ const nextRoundKeyOf = (rounds) => `r${Math.max(0, ...rounds.map((round) => { va
106
149
  /** The round new variants join: the last one. */
107
150
  const runningRoundOf = (sketch) => sketch.rounds[sketch.rounds.length - 1];
108
151
  exports.runningRoundOf = runningRoundOf;
152
+ /** The rejection that holds on a variant now, or `null` when it is live. */
153
+ const rejectionOf = (sketch, variant) => {
154
+ var _a, _b;
155
+ const history = (_b = (_a = sketch.rejections) === null || _a === void 0 ? void 0 : _a[variant]) !== null && _b !== void 0 ? _b : [];
156
+ const last = history[history.length - 1];
157
+ return last && !last.reopened ? last : null;
158
+ };
159
+ exports.rejectionOf = rejectionOf;
160
+ /** Why a rejected variant cannot be picked or merged, or `null` when it can. */
161
+ const rejectedProblemOf = (sketch, variant) => {
162
+ const rejection = (0, exports.rejectionOf)(sketch, variant);
163
+ return rejection
164
+ ? `${sketch.target} variant ${variant} is rejected by the ${rejection.by}${rejection.reason ? `: ${rejection.reason}` : ''} - reopen it first`
165
+ : null;
166
+ };
167
+ exports.rejectedProblemOf = rejectedProblemOf;
109
168
  /** The model ids that reported on a variant, in the order of their first report; none for old data. */
110
169
  const authorsOf = (sketch, variant) => { var _a, _b, _c; return (_c = (_b = (_a = sketch.variantInfo) === null || _a === void 0 ? void 0 : _a[variant]) === null || _b === void 0 ? void 0 : _b.authors) !== null && _c !== void 0 ? _c : []; };
111
170
  exports.authorsOf = authorsOf;
112
171
  /** The sketch in a sketch folder, or why it cannot be read. */
113
172
  const readSketch = (options) => {
114
- var _a, _b, _c, _d;
173
+ var _a, _b, _c, _d, _e;
115
174
  const { product, dir } = options;
116
175
  const file = (0, path_1.resolve)(dir, exports.SKETCH_FILE);
117
176
  if (!(0, fs_1.existsSync)(file))
@@ -126,22 +185,31 @@ const readSketch = (options) => {
126
185
  const target = (0, exports.parseTarget)(parsed.target);
127
186
  if (typeof target === 'string')
128
187
  return `${file}: ${target}`;
188
+ const targets = (_a = parsed.targets) !== null && _a !== void 0 ? _a : [(0, resolve_product_1.partKeyOf)(target)];
189
+ if (!Array.isArray(targets) ||
190
+ targets[0] !== (0, resolve_product_1.partKeyOf)(target) ||
191
+ new Set(targets).size !== targets.length ||
192
+ targets.some((entry) => typeof (0, exports.parseTarget)(entry) === 'string'))
193
+ return `${file}: targets must list unique <layer>/<name> keys, the target first`;
129
194
  if (!isStatus(parsed.status))
130
195
  return `${file}: status must be one of ${exports.SKETCH_STATUSES.join(', ')}`;
131
196
  if (parsed.variantInfo !== undefined && !isVariantInfo(parsed.variantInfo))
132
197
  return `${file}: variantInfo must be { <variant>: { authors?: string[], round?: string, note?: string } }`;
198
+ if (parsed.rejections !== undefined && !isRejections(parsed.rejections))
199
+ return `${file}: rejections must be { <variant>: [{ by: designer | agent, decidedAt, reason?, reasonBy?, reopened?: { by, decidedAt, reason? } }] }, each but the last reopened`;
133
200
  if (parsed.rounds !== undefined && !isRounds(parsed.rounds))
134
201
  return `${file}: rounds must be a non-empty list of { key, title, note } with unique keys`;
135
- const rounds = (_a = parsed.rounds) !== null && _a !== void 0 ? _a : [firstRoundOf()];
202
+ const rounds = (_b = parsed.rounds) !== null && _b !== void 0 ? _b : [firstRoundOf()];
136
203
  const running = (0, exports.runningRoundOf)({ rounds }).key;
137
- const variants = foldersOf(dir).filter((folder) => folder !== exports.SHARED_FOLDER);
204
+ const variants = foldersOf(dir).filter((folder) => folder !== imports_1.SHARED_FOLDER);
138
205
  const variantInfo = Object.assign({}, parsed.variantInfo);
139
206
  for (const variant of variants)
140
- variantInfo[variant] = Object.assign(Object.assign({}, variantInfo[variant]), { round: (_c = (_b = variantInfo[variant]) === null || _b === void 0 ? void 0 : _b.round) !== null && _c !== void 0 ? _c : running });
207
+ variantInfo[variant] = Object.assign(Object.assign({}, variantInfo[variant]), { round: (_d = (_c = variantInfo[variant]) === null || _c === void 0 ? void 0 : _c.round) !== null && _d !== void 0 ? _d : running });
141
208
  const lost = variants.find((variant) => !rounds.some((round) => { var _a; return round.key === ((_a = variantInfo[variant]) === null || _a === void 0 ? void 0 : _a.round); }));
142
209
  if (lost !== undefined)
143
- return `${file}: variant ${lost} names round "${(_d = variantInfo[lost]) === null || _d === void 0 ? void 0 : _d.round}", which rounds does not hold`;
144
- return Object.assign(Object.assign({}, parsed), { rounds,
210
+ return `${file}: variant ${lost} names round "${(_e = variantInfo[lost]) === null || _e === void 0 ? void 0 : _e.round}", which rounds does not hold`;
211
+ return Object.assign(Object.assign({}, parsed), { targets,
212
+ rounds,
145
213
  variantInfo,
146
214
  product, layer: target.layer, name: target.name, dir,
147
215
  variants });
@@ -150,13 +218,18 @@ exports.readSketch = readSketch;
150
218
  /** Every sketch folder of a product, read; a folder that cannot be read answers with its problem. */
151
219
  const listSketches = (options) => foldersOf((0, exports.sketchesDirOf)(options.productDir)).map((folder) => (0, exports.readSketch)({ product: options.product, dir: (0, path_1.resolve)((0, exports.sketchesDirOf)(options.productDir), folder) }));
152
220
  exports.listSketches = listSketches;
221
+ /** The open sketch that targets `sketch`, found by its first target or by any other it names; `null` when none does. */
153
222
  const findSketch = (options) => {
223
+ var _a;
154
224
  const dir = (0, exports.sketchDirOf)(options);
155
- return (0, fs_1.existsSync)(dir) ? (0, exports.readSketch)({ product: options.product, dir }) : null;
225
+ if ((0, fs_1.existsSync)(dir))
226
+ return (0, exports.readSketch)({ product: options.product, dir });
227
+ const key = (0, resolve_product_1.partKeyOf)(options.sketch);
228
+ return ((_a = (0, exports.listSketches)(options).find((sketch) => typeof sketch !== 'string' && sketch.targets.includes(key))) !== null && _a !== void 0 ? _a : null);
156
229
  };
157
230
  exports.findSketch = findSketch;
158
231
  const writeSketchFile = (sketch) => {
159
- const file = Object.assign(Object.assign(Object.assign(Object.assign({ target: (0, resolve_product_1.partKeyOf)(sketch), status: sketch.status, createdAt: sketch.createdAt }, (sketch.baseline ? { baseline: sketch.baseline } : {})), (sketch.decision ? { decision: sketch.decision } : {})), { rounds: sketch.rounds }), (Object.keys(sketch.variantInfo).length > 0 ? { variantInfo: sketch.variantInfo } : {}));
232
+ const file = Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({ target: (0, resolve_product_1.partKeyOf)(sketch) }, (sketch.targets.length > 1 ? { targets: sketch.targets } : {})), { status: sketch.status, createdAt: sketch.createdAt }), (sketch.baseline ? { baseline: sketch.baseline } : {})), (sketch.decision ? { decision: sketch.decision } : {})), { rounds: sketch.rounds }), (Object.keys(sketch.variantInfo).length > 0 ? { variantInfo: sketch.variantInfo } : {})), (sketch.rejections && Object.keys(sketch.rejections).length > 0 ? { rejections: sketch.rejections } : {}));
160
233
  (0, fs_1.writeFileSync)((0, path_1.resolve)(sketch.dir, exports.SKETCH_FILE), (0, json_layout_1.jsonLayoutOf)(file));
161
234
  };
162
235
  exports.writeSketchFile = writeSketchFile;
@@ -243,14 +316,22 @@ const variantInfoOf = (options) => {
243
316
  * author. Each variant starts from `like` when given - renamed to the target, without its `madeBy`, and with its
244
317
  * sketch's `shared/` folder - else from the part the product resolves for the target, or from an empty part when the
245
318
  * target is new. A part's own `shared/` folder becomes the sketch's, imported as `@shared/`. A target holds one open
246
- * sketch at a time.
319
+ * sketch at a time. Each of `others` joins every variant the same way, as a further target; `like` takes one target only.
247
320
  */
248
321
  const createSketch = (options) => {
322
+ var _a;
249
323
  const { product, sketch, variants, roundTitle, roundNote, author, like, variantNotes } = options;
250
324
  const dir = (0, exports.sketchDirOf)({ productDir: product.dir, sketch });
251
325
  const key = (0, resolve_product_1.partKeyOf)(sketch);
252
- if ((0, fs_1.existsSync)(dir))
253
- return `${key} already has an open sketch - merge or discard it first`;
326
+ const all = [sketch, ...((_a = options.others) !== null && _a !== void 0 ? _a : [])];
327
+ const targets = all.map(resolve_product_1.partKeyOf);
328
+ if (new Set(targets).size !== targets.length)
329
+ return 'name each target once';
330
+ if (like && all.length > 1)
331
+ return '--like starts one target - open a sketch with several targets without it';
332
+ const taken = all.find((target) => (0, exports.findSketch)({ productDir: product.dir, product: product.name, sketch: target }) !== null);
333
+ if ((0, fs_1.existsSync)(dir) || taken)
334
+ return `${(0, resolve_product_1.partKeyOf)(taken !== null && taken !== void 0 ? taken : sketch)} already has an open sketch - merge or discard it first`;
254
335
  if (variants.length === 0)
255
336
  return 'name at least one variant';
256
337
  const invalid = variants.find((variant) => !(0, exports.isVariantName)(variant));
@@ -258,34 +339,40 @@ const createSketch = (options) => {
258
339
  return `"${invalid}" is no variant name - use lower case letters, digits and dashes, and not "shared"`;
259
340
  if (new Set(variants).size !== variants.length)
260
341
  return 'each variant name must be unique';
261
- const existing = product.parts.find((part) => (0, resolve_product_1.partKeyOf)(part) === key);
342
+ const clash = like
343
+ ? undefined
344
+ : sharedClashOf(all.map((target) => product.parts.find((part) => (0, resolve_product_1.partKeyOf)(part) === (0, resolve_product_1.partKeyOf)(target))));
345
+ if (clash)
346
+ return clash;
262
347
  for (const variant of variants) {
263
- const folder = (0, path_1.resolve)(dir, variant, sketch.layer, sketch.name);
264
- (0, fs_1.mkdirSync)(folder, { recursive: true });
265
348
  (0, fs_1.mkdirSync)((0, path_1.resolve)(dir, variant, assets_1.ASSETS_FOLDER), { recursive: true });
266
- if (like) {
267
- copyPartAs({ from: like, to: folder, name: sketch.name });
268
- liftShared({ partDir: folder, sketchSharedDir: (0, path_1.resolve)(dir, exports.SHARED_FOLDER) });
269
- }
270
- else if (existing) {
271
- (0, fs_1.cpSync)((0, path_1.resolve)(existing.file, '..'), folder, { recursive: true });
272
- liftShared({ partDir: folder, sketchSharedDir: (0, path_1.resolve)(dir, exports.SHARED_FOLDER) });
273
- }
274
- else {
275
- if (sketch.layer === 'pages') {
349
+ for (const target of all) {
350
+ const folder = (0, path_1.resolve)(dir, variant, target.layer, target.name);
351
+ const existing = product.parts.find((part) => (0, resolve_product_1.partKeyOf)(part) === (0, resolve_product_1.partKeyOf)(target));
352
+ (0, fs_1.mkdirSync)(folder, { recursive: true });
353
+ if (like) {
354
+ copyPartAs({ from: like, to: folder, name: target.name });
355
+ liftShared({ partDir: folder, sketchSharedDir: (0, path_1.resolve)(dir, imports_1.SHARED_FOLDER) });
356
+ }
357
+ else if (existing) {
358
+ (0, fs_1.cpSync)((0, path_1.resolve)(existing.file, '..'), folder, { recursive: true });
359
+ liftShared({ partDir: folder, sketchSharedDir: (0, path_1.resolve)(dir, imports_1.SHARED_FOLDER) });
360
+ }
361
+ else if (target.layer === 'pages') {
276
362
  const widths = [...new Set(Object.values(product.presets).map((preset) => preset.width))].sort((a, b) => a - b);
277
- (0, fs_1.writeFileSync)((0, path_1.resolve)(folder, `${sketch.name}.ts`), pageStubOf({ name: sketch.name, madeBy: author, widths }));
363
+ (0, fs_1.writeFileSync)((0, path_1.resolve)(folder, `${target.name}.ts`), pageStubOf({ name: target.name, madeBy: author, widths }));
278
364
  }
279
365
  else {
280
- (0, fs_1.writeFileSync)((0, path_1.resolve)(folder, `${sketch.name}.ts`), stubOf(sketch.name));
281
- (0, fs_1.writeFileSync)((0, path_1.resolve)(folder, `${sketch.name}.css`), '');
366
+ (0, fs_1.writeFileSync)((0, path_1.resolve)(folder, `${target.name}.ts`), stubOf(target.name));
367
+ (0, fs_1.writeFileSync)((0, path_1.resolve)(folder, `${target.name}.css`), '');
282
368
  }
283
369
  }
284
370
  }
285
371
  if (like === null || like === void 0 ? void 0 : like.shared)
286
- (0, fs_1.cpSync)(like.shared, (0, path_1.resolve)(dir, exports.SHARED_FOLDER), { recursive: true });
372
+ (0, fs_1.cpSync)(like.shared, (0, path_1.resolve)(dir, imports_1.SHARED_FOLDER), { recursive: true });
287
373
  const created = {
288
374
  target: key,
375
+ targets,
289
376
  status: 'in progress',
290
377
  createdAt: new Date().toISOString(),
291
378
  baseline: (0, baseline_1.baselineOf)(product),
@@ -398,14 +485,56 @@ const markSketchReady = (options) => {
398
485
  return ready;
399
486
  };
400
487
  exports.markSketchReady = markSketchReady;
401
- /** Records the user's pick or discard on a sketch, the decision Studio writes and the agent acts on. */
488
+ const withVerdict = (sketch, verdict) => {
489
+ var _a, _b, _c, _d;
490
+ const { variant, by } = verdict;
491
+ const reason = ((_a = verdict.reason) === null || _a === void 0 ? void 0 : _a.trim()) || undefined;
492
+ const decidedAt = new Date().toISOString();
493
+ const history = (_c = (_b = sketch.rejections) === null || _b === void 0 ? void 0 : _b[variant]) !== null && _c !== void 0 ? _c : [];
494
+ const current = (0, exports.rejectionOf)(sketch, variant);
495
+ if (!sketch.variants.includes(variant))
496
+ return `${sketch.target} has no variant "${variant}" - it has ${sketch.variants.join(', ')}`;
497
+ let next;
498
+ if (verdict.kind === 'reject') {
499
+ if (current)
500
+ return `${sketch.target} variant ${variant} is already rejected - set its reason instead`;
501
+ next = [...history, Object.assign({ by, decidedAt }, (reason ? { reason, reasonBy: by } : {}))];
502
+ }
503
+ else if (!current) {
504
+ return `${sketch.target} variant ${variant} is not rejected`;
505
+ }
506
+ else if (verdict.kind === 'reason') {
507
+ if (!reason)
508
+ return 'a reason needs text';
509
+ next = [...history.slice(0, -1), Object.assign(Object.assign({}, current), { reason, reasonBy: by })];
510
+ }
511
+ else {
512
+ next = [...history.slice(0, -1), Object.assign(Object.assign({}, current), { reopened: Object.assign({ by, decidedAt }, (reason ? { reason } : {})) })];
513
+ }
514
+ const unpicked = verdict.kind === 'reject' && ((_d = sketch.decision) === null || _d === void 0 ? void 0 : _d.kind) === 'pick' && sketch.decision.variant === variant;
515
+ const { decision } = sketch, rest = __rest(sketch, ["decision"]);
516
+ return Object.assign(Object.assign(Object.assign({}, rest), (decision && !unpicked ? { decision } : {})), { rejections: Object.assign(Object.assign({}, sketch.rejections), { [variant]: next }) });
517
+ };
518
+ /**
519
+ * Records the user's pick or discard on a sketch, the decision Studio writes and the agent acts on, or a verdict on
520
+ * one variant. A rejected variant cannot be picked; rejecting the picked variant clears the pick.
521
+ */
402
522
  const decideSketch = (options) => {
403
523
  const { sketch, decision } = options;
524
+ if (decision.kind === 'reject' || decision.kind === 'reason' || decision.kind === 'reopen') {
525
+ const judged = withVerdict(sketch, decision);
526
+ if (typeof judged !== 'string')
527
+ (0, exports.writeSketchFile)(judged);
528
+ return judged;
529
+ }
404
530
  if (decision.kind === 'pick') {
405
531
  if (sketch.status !== 'ready')
406
532
  return `${sketch.target} is ${sketch.status} - a variant is picked once it is ready`;
407
533
  if (!sketch.variants.includes(decision.variant))
408
534
  return `${sketch.target} has no variant "${decision.variant}" - it has ${sketch.variants.join(', ')}`;
535
+ const rejected = (0, exports.rejectedProblemOf)(sketch, decision.variant);
536
+ if (rejected)
537
+ return rejected;
409
538
  }
410
539
  const decided = Object.assign(Object.assign({}, sketch), { decision: Object.assign(Object.assign({}, decision), { decidedAt: new Date().toISOString() }) });
411
540
  (0, exports.writeSketchFile)(decided);
@@ -1 +1 @@
1
- {"version":3,"file":"sketch.js","sourceRoot":"","sources":["../../../../../../../libs/cli/src/lib/design/system/sketch/sketch.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sketch.js","sourceRoot":"","sources":["../../../../../../../libs/cli/src/lib/design/system/sketch/sketch.ts"],"names":[],"mappings":"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"}
@@ -7,12 +7,16 @@ export type SketchPartLoader = (options: {
7
7
  product: string;
8
8
  sketch: SketchVariant | null;
9
9
  }) => Promise<unknown>;
10
+ /** Drops every kept result, so the next call compares again. Call it when a product file changes. */
11
+ export declare const forgetUnchangedStates: () => void;
10
12
  /**
11
- * The states of the sketch's target that `variant` renders to the same markup and styles as the product
12
- * does now, with the same widths and interactions, so every frame of them matches. With `pictureOf`, a state
13
- * with the same markup but other styles is unchanged when every frame draws the same pixels in the default
14
- * theme. A state the product lacks, or one that fails to render on either side, is never unchanged. Markup-only
15
- * comparisons are cached by source hashes; pixel comparisons run again for each screenshot session.
13
+ * The states of the sketch's target, or of the part `part` names, that `variant` renders to the same markup and styles as the product
14
+ * does now, with the same widths and interactions, so every frame of them matches, unless the variant changes a
15
+ * part stylesheet the product's stylesheets `@import`. With `pictureOf`, any other state, or one that cannot be
16
+ * rendered outside a browser (`ng()`), is unchanged when every frame draws the
17
+ * same pixels in the default theme. A state the product lacks, or one that fails to draw on either side, is never
18
+ * unchanged. Markup-only comparisons are kept by source hashes. Pixel comparisons are kept the same way only with
19
+ * `keepPictures`, and never when a draw failed; `forgetUnchangedStates` drops them all.
16
20
  */
17
21
  export declare const unchangedStatesOf: (options: {
18
22
  product: ResolvedProduct;
@@ -20,4 +24,6 @@ export declare const unchangedStatesOf: (options: {
20
24
  variant: string;
21
25
  load: SketchPartLoader;
22
26
  pictureOf?: PictureOf;
27
+ keepPictures?: boolean;
28
+ part?: string;
23
29
  }) => Promise<string[]>;