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

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 (194) hide show
  1. package/CHANGELOG.md +126 -0
  2. package/design/define-call.ts +69 -0
  3. package/design/define-part.ts +43 -9
  4. package/design/embed-page.ts +37 -4
  5. package/design/icon-sheet.ts +151 -0
  6. package/design/logo-sheet.ts +52 -0
  7. package/design/mark-part.ts +79 -2
  8. package/design/motion-drive.ts +215 -0
  9. package/design/motion-runtime.ts +224 -5
  10. package/design/motion-tokens.ts +177 -0
  11. package/design/spring.ts +53 -0
  12. package/design/token-sheet.ts +87 -0
  13. package/design/web/frame-fill.ts +4 -0
  14. package/design/web/frame-scheme.ts +44 -0
  15. package/design/web/frame.ts +239 -31
  16. package/package.json +1 -1
  17. package/src/lib/design/calls-tsconfig.d.ts +2 -0
  18. package/src/lib/design/calls-tsconfig.js +11 -5
  19. package/src/lib/design/calls-tsconfig.js.map +1 -1
  20. package/src/lib/design/check.d.ts +1 -0
  21. package/src/lib/design/check.js +62 -6
  22. package/src/lib/design/check.js.map +1 -1
  23. package/src/lib/design/contact-sheet.d.ts +9 -0
  24. package/src/lib/design/contact-sheet.js +38 -4
  25. package/src/lib/design/contact-sheet.js.map +1 -1
  26. package/src/lib/design/design-command.js +56 -7
  27. package/src/lib/design/design-command.js.map +1 -1
  28. package/src/lib/design/draw-ledger.d.ts +36 -0
  29. package/src/lib/design/draw-ledger.js +52 -0
  30. package/src/lib/design/draw-ledger.js.map +1 -0
  31. package/src/lib/design/force-interactions.d.ts +2 -1
  32. package/src/lib/design/force-interactions.js +7 -4
  33. package/src/lib/design/force-interactions.js.map +1 -1
  34. package/src/lib/design/mcp-command.d.ts +81 -0
  35. package/src/lib/design/mcp-command.js +422 -0
  36. package/src/lib/design/mcp-command.js.map +1 -0
  37. package/src/lib/design/motion-command.d.ts +71 -0
  38. package/src/lib/design/motion-command.js +308 -0
  39. package/src/lib/design/motion-command.js.map +1 -0
  40. package/src/lib/design/motion-endpoint.d.ts +61 -0
  41. package/src/lib/design/motion-endpoint.js +133 -0
  42. package/src/lib/design/motion-endpoint.js.map +1 -0
  43. package/src/lib/design/motion-flow.d.ts +5 -0
  44. package/src/lib/design/motion-flow.js +29 -0
  45. package/src/lib/design/motion-flow.js.map +1 -0
  46. package/src/lib/design/motion-shot.d.ts +43 -0
  47. package/src/lib/design/motion-shot.js +97 -0
  48. package/src/lib/design/motion-shot.js.map +1 -0
  49. package/src/lib/design/paths.d.ts +14 -0
  50. package/src/lib/design/paths.js +50 -1
  51. package/src/lib/design/paths.js.map +1 -1
  52. package/src/lib/design/ready-shots.d.ts +7 -0
  53. package/src/lib/design/ready-shots.js +22 -1
  54. package/src/lib/design/ready-shots.js.map +1 -1
  55. package/src/lib/design/render-packages.d.ts +14 -0
  56. package/src/lib/design/render-packages.js +18 -3
  57. package/src/lib/design/render-packages.js.map +1 -1
  58. package/src/lib/design/render-worker.js +1 -0
  59. package/src/lib/design/render-worker.js.map +1 -1
  60. package/src/lib/design/render.js +3 -3
  61. package/src/lib/design/render.js.map +1 -1
  62. package/src/lib/design/serve.d.ts +2 -2
  63. package/src/lib/design/serve.js +191 -21
  64. package/src/lib/design/serve.js.map +1 -1
  65. package/src/lib/design/shot-command.d.ts +13 -4
  66. package/src/lib/design/shot-command.js +30 -24
  67. package/src/lib/design/shot-command.js.map +1 -1
  68. package/src/lib/design/shot-store.d.ts +24 -0
  69. package/src/lib/design/shot-store.js +120 -0
  70. package/src/lib/design/shot-store.js.map +1 -0
  71. package/src/lib/design/shot.d.ts +37 -1
  72. package/src/lib/design/shot.js +185 -34
  73. package/src/lib/design/shot.js.map +1 -1
  74. package/src/lib/design/sketch-command.js +197 -51
  75. package/src/lib/design/sketch-command.js.map +1 -1
  76. package/src/lib/design/ssr-shims.d.ts +2 -0
  77. package/src/lib/design/ssr-shims.js +12 -1
  78. package/src/lib/design/ssr-shims.js.map +1 -1
  79. package/src/lib/design/studio-api.d.ts +31 -0
  80. package/src/lib/design/studio-api.js +118 -1
  81. package/src/lib/design/studio-api.js.map +1 -1
  82. package/src/lib/design/system/check-system.d.ts +6 -2
  83. package/src/lib/design/system/check-system.js +102 -20
  84. package/src/lib/design/system/check-system.js.map +1 -1
  85. package/src/lib/design/system/colour.d.ts +4 -1
  86. package/src/lib/design/system/colour.js +54 -2
  87. package/src/lib/design/system/colour.js.map +1 -1
  88. package/src/lib/design/system/complete-command.d.ts +1 -1
  89. package/src/lib/design/system/complete-command.js +80 -6
  90. package/src/lib/design/system/complete-command.js.map +1 -1
  91. package/src/lib/design/system/complete.d.ts +172 -9
  92. package/src/lib/design/system/complete.js +792 -167
  93. package/src/lib/design/system/complete.js.map +1 -1
  94. package/src/lib/design/system/contrast-check.d.ts +6 -1
  95. package/src/lib/design/system/contrast-check.js +167 -12
  96. package/src/lib/design/system/contrast-check.js.map +1 -1
  97. package/src/lib/design/system/drawn-open-points.d.ts +16 -0
  98. package/src/lib/design/system/drawn-open-points.js +43 -0
  99. package/src/lib/design/system/drawn-open-points.js.map +1 -0
  100. package/src/lib/design/system/exceptions.d.ts +59 -0
  101. package/src/lib/design/system/exceptions.js +132 -0
  102. package/src/lib/design/system/exceptions.js.map +1 -0
  103. package/src/lib/design/system/flows/flow.d.ts +3 -0
  104. package/src/lib/design/system/flows/flow.js +5 -3
  105. package/src/lib/design/system/flows/flow.js.map +1 -1
  106. package/src/lib/design/system/handoff.d.ts +11 -0
  107. package/src/lib/design/system/handoff.js +30 -0
  108. package/src/lib/design/system/handoff.js.map +1 -0
  109. package/src/lib/design/system/inventory-approval.d.ts +41 -0
  110. package/src/lib/design/system/inventory-approval.js +71 -0
  111. package/src/lib/design/system/inventory-approval.js.map +1 -0
  112. package/src/lib/design/system/inventory.d.ts +65 -0
  113. package/src/lib/design/system/inventory.js +168 -0
  114. package/src/lib/design/system/inventory.js.map +1 -0
  115. package/src/lib/design/system/list-system.d.ts +4 -1
  116. package/src/lib/design/system/list-system.js +11 -3
  117. package/src/lib/design/system/list-system.js.map +1 -1
  118. package/src/lib/design/system/open-points.d.ts +101 -0
  119. package/src/lib/design/system/open-points.js +156 -0
  120. package/src/lib/design/system/open-points.js.map +1 -0
  121. package/src/lib/design/system/part-ready.d.ts +52 -0
  122. package/src/lib/design/system/part-ready.js +101 -0
  123. package/src/lib/design/system/part-ready.js.map +1 -0
  124. package/src/lib/design/system/read-open-points.d.ts +27 -0
  125. package/src/lib/design/system/read-open-points.js +81 -0
  126. package/src/lib/design/system/read-open-points.js.map +1 -0
  127. package/src/lib/design/system/ready-command.d.ts +7 -0
  128. package/src/lib/design/system/ready-command.js +65 -0
  129. package/src/lib/design/system/ready-command.js.map +1 -0
  130. package/src/lib/design/system/render-check.d.ts +2 -0
  131. package/src/lib/design/system/render-check.js +216 -32
  132. package/src/lib/design/system/render-check.js.map +1 -1
  133. package/src/lib/design/system/resolve-product.d.ts +4 -4
  134. package/src/lib/design/system/resolve-product.js +22 -7
  135. package/src/lib/design/system/resolve-product.js.map +1 -1
  136. package/src/lib/design/system/rules/implements.d.ts +7 -0
  137. package/src/lib/design/system/rules/implements.js +43 -0
  138. package/src/lib/design/system/rules/implements.js.map +1 -0
  139. package/src/lib/design/system/rules/motion.d.ts +2 -0
  140. package/src/lib/design/system/rules/motion.js +26 -1
  141. package/src/lib/design/system/rules/motion.js.map +1 -1
  142. package/src/lib/design/system/rules/option-values.d.ts +15 -0
  143. package/src/lib/design/system/rules/option-values.js +145 -0
  144. package/src/lib/design/system/rules/option-values.js.map +1 -0
  145. package/src/lib/design/system/rules/stale-replace.js +80 -3
  146. package/src/lib/design/system/rules/stale-replace.js.map +1 -1
  147. package/src/lib/design/system/rules/token-selectors.js +1 -1
  148. package/src/lib/design/system/rules/token-selectors.js.map +1 -1
  149. package/src/lib/design/system/sketch/baseline.d.ts +11 -2
  150. package/src/lib/design/system/sketch/baseline.js +4 -2
  151. package/src/lib/design/system/sketch/baseline.js.map +1 -1
  152. package/src/lib/design/system/sketch/check-sketches.d.ts +1 -0
  153. package/src/lib/design/system/sketch/check-sketches.js +4 -2
  154. package/src/lib/design/system/sketch/check-sketches.js.map +1 -1
  155. package/src/lib/design/system/sketch/host-edit.d.ts +4 -0
  156. package/src/lib/design/system/sketch/host-edit.js +68 -0
  157. package/src/lib/design/system/sketch/host-edit.js.map +1 -0
  158. package/src/lib/design/system/sketch/merge.d.ts +3 -2
  159. package/src/lib/design/system/sketch/merge.js +79 -12
  160. package/src/lib/design/system/sketch/merge.js.map +1 -1
  161. package/src/lib/design/system/sketch/merged-parts.d.ts +11 -1
  162. package/src/lib/design/system/sketch/merged-parts.js +24 -3
  163. package/src/lib/design/system/sketch/merged-parts.js.map +1 -1
  164. package/src/lib/design/system/sketch/no-visible-change.d.ts +6 -0
  165. package/src/lib/design/system/sketch/no-visible-change.js +25 -1
  166. package/src/lib/design/system/sketch/no-visible-change.js.map +1 -1
  167. package/src/lib/design/system/sketch/overlay.js +11 -3
  168. package/src/lib/design/system/sketch/overlay.js.map +1 -1
  169. package/src/lib/design/system/sketch/part-definition.d.ts +36 -0
  170. package/src/lib/design/system/sketch/part-definition.js +56 -2
  171. package/src/lib/design/system/sketch/part-definition.js.map +1 -1
  172. package/src/lib/design/system/sketch/sketch.d.ts +47 -0
  173. package/src/lib/design/system/sketch/sketch.js +137 -44
  174. package/src/lib/design/system/sketch/sketch.js.map +1 -1
  175. package/src/lib/design/system/sketch/unchanged-states.d.ts +4 -1
  176. package/src/lib/design/system/sketch/unchanged-states.js +9 -5
  177. package/src/lib/design/system/sketch/unchanged-states.js.map +1 -1
  178. package/src/lib/design/system/sketch/unused-closure.d.ts +12 -0
  179. package/src/lib/design/system/sketch/unused-closure.js +195 -0
  180. package/src/lib/design/system/sketch/unused-closure.js.map +1 -0
  181. package/src/lib/design/system/sketch/unused-files.d.ts +1 -1
  182. package/src/lib/design/system/sketch/unused-files.js +6 -3
  183. package/src/lib/design/system/sketch/unused-files.js.map +1 -1
  184. package/src/lib/design/system/system-modules.js +6 -9
  185. package/src/lib/design/system/system-modules.js.map +1 -1
  186. package/src/lib/design/system/system-tsconfig.d.ts +2 -1
  187. package/src/lib/design/system/system-tsconfig.js +10 -6
  188. package/src/lib/design/system/system-tsconfig.js.map +1 -1
  189. package/src/lib/design/system/ts-source.d.ts +3 -0
  190. package/src/lib/design/system/ts-source.js +21 -4
  191. package/src/lib/design/system/ts-source.js.map +1 -1
  192. package/src/lib/design/thumb.d.ts +31 -4
  193. package/src/lib/design/thumb.js +105 -40
  194. package/src/lib/design/thumb.js.map +1 -1
@@ -9,12 +9,14 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
9
9
  });
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.createPartShooter = exports.partFrameOf = exports.dependentIdsOf = exports.stylesheetImportsPlugin = exports.viewportOf = exports.cropOf = exports.SHOT_PATH = void 0;
12
+ exports.createPartShooter = exports.partFrameOf = exports.dependencyFilesOf = exports.dependentIdsOf = exports.stylesheetImportsPlugin = exports.viewportOf = exports.cropOf = exports.drawParamsOf = exports.isSchemeFlag = exports.SHOT_PATH = void 0;
13
13
  const crypto_1 = require("crypto");
14
+ const path_1 = require("path");
14
15
  const contact_sheet_1 = require("./contact-sheet");
15
16
  const changed_parts_1 = require("./changed-parts");
16
17
  const system_modules_1 = require("./system/system-modules");
17
18
  const thumb_1 = require("./thumb");
19
+ const motion_shot_1 = require("./motion-shot");
18
20
  const warm_pages_1 = require("./warm-pages");
19
21
  exports.SHOT_PATH = '/__design/shot';
20
22
  const BOX_CACHE_LIMIT = 500;
@@ -22,6 +24,41 @@ const isPositiveWhole = (pixels) => Number.isInteger(pixels) && pixels > 0;
22
24
  const VIEWPORT_HEIGHT = 800;
23
25
  const MAX_SCALE = 4;
24
26
  const scaleOf = (params) => { var _a; return Number((_a = params.get('scale')) !== null && _a !== void 0 ? _a : 1); };
27
+ const viewOf = (raw) => (raw !== null && isPositiveWhole(Number(raw)) ? Number(raw) : null);
28
+ const wantOf = (params, response) => {
29
+ const withdraws = new Set();
30
+ const rank = params.get('rank');
31
+ let hungUp = false;
32
+ response.once('close', () => {
33
+ hungUp = !response.writableFinished;
34
+ if (hungUp)
35
+ withdraws.forEach((withdraw) => withdraw());
36
+ });
37
+ return {
38
+ priority: params.get('priority') === 'low' ? 'low' : 'high',
39
+ view: viewOf(params.get('view')),
40
+ rank: rank === 'active' || rank === 'visible' ? rank : null,
41
+ onWithdraw: (withdraw) => (hungUp ? withdraw() : withdraws.add(withdraw)),
42
+ };
43
+ };
44
+ const schemeOf = (params) => {
45
+ const scheme = params.get('scheme');
46
+ return scheme === 'dark' || scheme === 'light' ? scheme : null;
47
+ };
48
+ /** Whether a `--scheme` value is absent or one the frame pins. */
49
+ const isSchemeFlag = (value) => value === undefined || value === 'light' || value === 'dark';
50
+ exports.isSchemeFlag = isSchemeFlag;
51
+ /** The frame params of the `--surface`, `--color`, `--scheme` and `--scale` flags of a shot command. */
52
+ const drawParamsOf = (values) => {
53
+ const params = new URLSearchParams();
54
+ for (const name of ['surface', 'color', 'scheme', 'scale']) {
55
+ const value = values[`--${name}`];
56
+ if (value)
57
+ params.set(name, value);
58
+ }
59
+ return params;
60
+ };
61
+ exports.drawParamsOf = drawParamsOf;
25
62
  const isScale = (scale) => Number.isInteger(scale) && scale >= 1 && scale <= MAX_SCALE;
26
63
  /** The `x,y,width,height` crop of a picture in CSS pixels, `null` without one, `undefined` for a malformed one. */
27
64
  const cropOf = (raw) => {
@@ -93,6 +130,24 @@ const dependentIdsOf = (modules, imports = new Map()) => {
93
130
  return [...seen].flatMap((module) => (module.id ? [module.id] : []));
94
131
  };
95
132
  exports.dependentIdsOf = dependentIdsOf;
133
+ /**
134
+ * The files of the given modules and of every module they import, directly or not: the reverse of
135
+ * `dependentIdsOf`, so a Tailwind source a stylesheet only scans is not among them.
136
+ */
137
+ const dependencyFilesOf = (modules, imports = new Map()) => {
138
+ const seen = new Set();
139
+ const open = [...modules];
140
+ for (let next = open.pop(); next; next = open.pop()) {
141
+ if (seen.has(next))
142
+ continue;
143
+ seen.add(next);
144
+ const importer = next;
145
+ open.push(...[...next.importedModules].filter((module) => !isTailwindSourceOf({ imports, module, importer })));
146
+ }
147
+ return [...seen].flatMap((module) => (module.file && (0, path_1.isAbsolute)(module.file) ? [module.file] : []));
148
+ };
149
+ exports.dependencyFilesOf = dependencyFilesOf;
150
+ const SHOT_OPTIONS = { type: 'png', fullPage: true, omitBackground: true, timeout: thumb_1.DRAW_TIMEOUT_MS };
96
151
  /** The frame query, viewport and cache key that draw one state of a part, or why the part cannot be drawn. */
97
152
  const partFrameOf = (options) => {
98
153
  var _a, _b;
@@ -134,15 +189,17 @@ exports.partFrameOf = partFrameOf;
134
189
  * and theme until a change redraws its part.
135
190
  */
136
191
  const createPartShooter = (options) => {
137
- const { system, statesOf } = options;
192
+ var _a;
193
+ const { system, statesOf, store } = options;
138
194
  const baseOf = () => (typeof options.base === 'function' ? options.base() : options.base);
139
- const drawQueue = (0, thumb_1.createDrawQueue)(options);
195
+ const drawQueue = (_a = options.queue) !== null && _a !== void 0 ? _a : (0, thumb_1.createDrawQueue)(options);
140
196
  const warmPages = (0, warm_pages_1.createWarmPages)();
141
197
  const cache = new Map();
198
+ const motions = new Map();
142
199
  const boxes = new Map();
143
200
  const draw = (browser, frame) => warmPages.run({
144
201
  browser,
145
- context: Object.assign({ viewport: (0, exports.viewportOf)(frame.size) }, (frame.scale > 1 ? { deviceScaleFactor: frame.scale } : {})),
202
+ context: Object.assign(Object.assign({ viewport: (0, exports.viewportOf)(frame.size) }, (frame.scale > 1 ? { deviceScaleFactor: frame.scale } : {})), (frame.scheme ? { colorScheme: frame.scheme } : {})),
146
203
  }, (page) => __awaiter(void 0, void 0, void 0, function* () {
147
204
  var _a, _b;
148
205
  yield (0, thumb_1.openFrame)(page, `${baseOf()}/frame.html?${frame.search}`);
@@ -158,26 +215,29 @@ const createPartShooter = (options) => {
158
215
  }
159
216
  const marks = yield page.evaluate(marksIn(frame.clip));
160
217
  const root = page.locator('#root');
218
+ const rootBox = frame.clip ? yield root.boundingBox() : null;
161
219
  if (frame.clip) {
162
- const box = yield root.boundingBox();
220
+ const box = rootBox;
163
221
  if (!box || box.width === 0 || box.height === 0)
164
222
  throw new thumb_1.ShotUnprocessableError('design-explore: part root has zero size - give an element that fills its container a min-height');
165
223
  }
166
- const origin = frame.crop && frame.clip ? yield root.boundingBox() : null;
224
+ const origin = frame.crop && frame.clip ? rootBox : null;
167
225
  const crop = frame.crop && Object.assign(Object.assign({}, frame.crop), { x: frame.crop.x + ((_a = origin === null || origin === void 0 ? void 0 : origin.x) !== null && _a !== void 0 ? _a : 0), y: frame.crop.y + ((_b = origin === null || origin === void 0 ? void 0 : origin.y) !== null && _b !== void 0 ? _b : 0) });
168
226
  const png = yield (crop
169
- ? page.screenshot({ type: 'png', fullPage: true, clip: crop, timeout: thumb_1.DRAW_TIMEOUT_MS })
170
- : frame.clip
171
- ? root.screenshot({ type: 'png', timeout: thumb_1.DRAW_TIMEOUT_MS })
172
- : page.screenshot({ fullPage: true, type: 'png', timeout: thumb_1.DRAW_TIMEOUT_MS })).catch((error) => {
227
+ ? page.screenshot(Object.assign(Object.assign({}, SHOT_OPTIONS), { clip: crop }))
228
+ : rootBox
229
+ ? page.screenshot(Object.assign(Object.assign({}, SHOT_OPTIONS), { clip: rootBox }))
230
+ : page.screenshot(SHOT_OPTIONS)).catch((error) => {
173
231
  const message = error instanceof Error ? error.message : String(error);
174
232
  if (error instanceof Error && error.name === 'TimeoutError')
175
233
  throw new thumb_1.ShotTimeoutError(`design-explore: the screenshot timed out after ${thumb_1.DRAW_TIMEOUT_MS} ms: ${message}`);
176
234
  throw new thumb_1.ShotUnprocessableError(`design-explore: the screenshot failed: ${message}`);
177
235
  });
178
236
  const failure = yield page.evaluate("document.documentElement.getAttribute('data-et-error')");
179
- if (typeof failure === 'string')
180
- throw new thumb_1.ShotFailedError(failure, png);
237
+ if (typeof failure === 'string') {
238
+ const missing = yield page.evaluate("document.documentElement.getAttribute('data-et-missing')");
239
+ throw typeof missing === 'string' ? new thumb_1.ThumbMissingError(failure) : new thumb_1.ShotFailedError(failure, png);
240
+ }
181
241
  const markup = yield page.evaluate("document.getElementById('root')?.innerHTML ?? null");
182
242
  return Object.assign({ png, marks: Array.isArray(marks) ? marks : [] }, (typeof markup === 'string' ? { markup } : {}));
183
243
  }));
@@ -190,17 +250,26 @@ const createPartShooter = (options) => {
190
250
  });
191
251
  };
192
252
  const cached = (options) => {
193
- var _a;
253
+ var _a, _b, _c, _d;
194
254
  const theme = themeOf(options.params);
195
255
  const scale = scaleOf(options.params);
196
256
  const crop = (_a = (0, exports.cropOf)(options.params.get('clip'))) !== null && _a !== void 0 ? _a : null;
197
- const key = JSON.stringify([...options.key, theme.surface, theme.color, theme.fill, scale, crop]);
257
+ const scheme = schemeOf(options.params);
258
+ const key = JSON.stringify([...options.key, theme.surface, theme.color, theme.fill, scale, crop, scheme]);
198
259
  const kept = options.fresh ? undefined : cache.get(key);
199
260
  if (kept) {
200
- if (options.priority === 'high')
201
- drawQueue.hurry(kept.shot);
261
+ (_b = options.onSource) === null || _b === void 0 ? void 0 : _b.call(options, 'memory');
262
+ drawQueue.join(kept.shot, options.want);
202
263
  return kept.shot;
203
264
  }
265
+ const stored = !options.fresh && options.address ? store === null || store === void 0 ? void 0 : store.read(key, options.address) : null;
266
+ if (stored) {
267
+ (_c = options.onSource) === null || _c === void 0 ? void 0 : _c.call(options, 'disk');
268
+ const shot = Promise.resolve(stored);
269
+ cache.set(key, { drawn: options.drawn, shot });
270
+ return shot;
271
+ }
272
+ (_d = options.onSource) === null || _d === void 0 ? void 0 : _d.call(options, 'drawn');
204
273
  if (theme.surface)
205
274
  options.search.set('surface', theme.surface);
206
275
  if (theme.color)
@@ -208,44 +277,59 @@ const createPartShooter = (options) => {
208
277
  if (theme.fill)
209
278
  options.search.set('fill', theme.fill);
210
279
  const search = options.search.toString();
211
- const shot = drawQueue.run((browser) => { var _a; return draw(browser, { search, size: options.size, clip: (_a = options.clip) !== null && _a !== void 0 ? _a : false, scale, crop }); }, options.priority);
280
+ const shot = drawQueue.run((browser) => {
281
+ var _a, _b;
282
+ const gone = (_a = options.gone) === null || _a === void 0 ? void 0 : _a.call(options);
283
+ return gone
284
+ ? Promise.reject(gone)
285
+ : draw(browser, { search, size: options.size, clip: (_b = options.clip) !== null && _b !== void 0 ? _b : false, scale, crop, scheme });
286
+ }, options.want);
287
+ const { address } = options;
212
288
  cache.set(key, { drawn: options.drawn, shot });
213
- shot.catch(() => { var _a; return ((_a = cache.get(key)) === null || _a === void 0 ? void 0 : _a.shot) === shot && cache.delete(key); });
289
+ shot.then((picture) => { var _a; return address && ((_a = cache.get(key)) === null || _a === void 0 ? void 0 : _a.shot) === shot && (store === null || store === void 0 ? void 0 : store.write(key, { address, picture })); }, () => { var _a; return ((_a = cache.get(key)) === null || _a === void 0 ? void 0 : _a.shot) === shot && cache.delete(key); });
214
290
  return shot;
215
291
  };
216
292
  const partShotOf = (options) => {
217
- var _a;
218
293
  const frame = (0, exports.partFrameOf)(Object.assign({ system }, options));
219
294
  if (frame instanceof thumb_1.ThumbMissingError)
220
295
  return Promise.reject(frame);
221
- const draw = () => cached(Object.assign(Object.assign({}, frame), { params: options.params, priority: options.priority, fresh: options.fresh }));
296
+ const gone = () => {
297
+ const now = (0, exports.partFrameOf)(Object.assign({ system }, options));
298
+ return now instanceof thumb_1.ThumbMissingError ? now : null;
299
+ };
300
+ const { product, part, sketch, props } = options;
301
+ const address = { product, part, sketch, props: props !== null && props !== void 0 ? props : null };
302
+ const draw = () => cached(Object.assign(Object.assign({}, frame), { params: options.params, want: options.want, fresh: options.fresh, gone,
303
+ address, onSource: options.onSource }));
222
304
  if (!statesOf)
223
305
  return draw();
224
- const { product, part, state } = options;
225
- const sketch = (_a = options.props) !== null && _a !== void 0 ? _a : options.sketch;
226
- return statesOf({ product, part, sketch }).then((names) => {
306
+ const { state } = options;
307
+ const statesFrom = props !== null && props !== void 0 ? props : sketch;
308
+ return statesOf({ product, part, sketch: statesFrom }).then((names) => {
227
309
  if (!names || names.includes(state))
228
310
  return draw();
229
- const holder = sketch ? `variant "${sketch.variant}" of ${sketch.target}` : `the merged part ${part}`;
311
+ const holder = statesFrom ? `variant "${statesFrom.variant}" of ${statesFrom.target}` : `the merged part ${part}`;
230
312
  throw new thumb_1.ThumbMissingError(`design-explore: state "${state}" is not in ${holder} - it has: ${names.join(', ') || 'no states'}`);
231
313
  });
232
314
  };
233
315
  const callShotOf = (options) => {
234
- const { slug, variant, width, params, priority } = options;
316
+ const { slug, variant, width, params, want, onSource } = options;
235
317
  return cached({
236
318
  key: ['call', slug, variant, width],
237
319
  drawn: { slug },
238
320
  search: new URLSearchParams({ call: slug, variant }),
239
321
  params,
240
322
  size: { width },
241
- priority,
323
+ want,
324
+ onSource,
242
325
  });
243
326
  };
244
327
  return {
245
328
  middleware: (request, response) => {
246
329
  var _a, _b, _c;
247
330
  const params = new URL((_a = request.url) !== null && _a !== void 0 ? _a : '', 'http://localhost').searchParams;
248
- const priority = params.get('priority') === 'low' ? 'low' : 'high';
331
+ const want = wantOf(params, response);
332
+ const onSource = (source) => response.setHeader('x-design-shot', source);
249
333
  if (!isScale(scaleOf(params))) {
250
334
  (0, thumb_1.send)(response, {
251
335
  status: 400,
@@ -273,7 +357,7 @@ const createPartShooter = (options) => {
273
357
  });
274
358
  return;
275
359
  }
276
- (0, thumb_1.sendShot)(response, callShotOf({ slug, variant, width: pixels, params, priority }).then((picture) => picture.png));
360
+ (0, thumb_1.sendShot)(response, (0, thumb_1.noteFailure)(callShotOf({ slug, variant, width: pixels, params, want, onSource }).then((picture) => picture.png), (failure) => { var _a; return (_a = options.ledger) === null || _a === void 0 ? void 0 : _a.fail(Object.assign({ part: slug, state: variant }, failure)); }));
277
361
  return;
278
362
  }
279
363
  const [part, state, preset] = ['part', 'state', 'preset'].map((name) => params.get(name));
@@ -310,7 +394,7 @@ const createPartShooter = (options) => {
310
394
  });
311
395
  return;
312
396
  }
313
- (0, thumb_1.sendShot)(response, partShotOf({
397
+ (0, thumb_1.sendShot)(response, (0, thumb_1.noteFailure)(partShotOf({
314
398
  product,
315
399
  part,
316
400
  state,
@@ -319,14 +403,67 @@ const createPartShooter = (options) => {
319
403
  sketch: sketchVariant,
320
404
  interaction: params.get('interaction'),
321
405
  params,
322
- priority,
323
- }).then((picture) => picture.png));
406
+ want,
407
+ onSource,
408
+ }).then((picture) => picture.png), (failure) => {
409
+ var _a;
410
+ return (_a = options.ledger) === null || _a === void 0 ? void 0 : _a.fail(Object.assign(Object.assign({ part: `${product}/${part}`, state }, failure), { sketch: sketchVariant && Object.assign({ product }, sketchVariant) }));
411
+ }));
324
412
  },
325
413
  /**
326
414
  * Draws one state of a part as `partShotOf` does for the middleware, with the part roots it holds,
327
415
  * ahead of every shot asked with `priority=low`.
328
416
  */
329
- pictureOf: (options) => partShotOf(Object.assign(Object.assign({}, options), { priority: 'high' })),
417
+ pictureOf: (options) => partShotOf(Object.assign(Object.assign({}, options), { want: { priority: 'high' } })),
418
+ /**
419
+ * Draws `motion` of a part from its `from` state, `address.state`, at each keyframe time, with the motion's tracks;
420
+ * `mode` picks `prefers-reduced-motion`. Kept until a change redraws the part. With `flowTo`, `motion` names a flow
421
+ * line instead: the part morphs to that page state in a View Transition, drawn in the whole viewport.
422
+ */
423
+ motionOf: (options) => {
424
+ var _a, _b;
425
+ const frame = (0, exports.partFrameOf)(Object.assign({ system }, options));
426
+ if (frame instanceof thumb_1.ThumbMissingError)
427
+ return Promise.reject(frame);
428
+ const theme = themeOf(options.params);
429
+ const scale = scaleOf(options.params);
430
+ const scheme = schemeOf(options.params);
431
+ const key = JSON.stringify([
432
+ ...frame.key,
433
+ options.motion,
434
+ (_a = options.flowTo) !== null && _a !== void 0 ? _a : null,
435
+ (_b = options.at) !== null && _b !== void 0 ? _b : [],
436
+ options.mode,
437
+ theme.surface,
438
+ theme.color,
439
+ theme.fill,
440
+ scale,
441
+ scheme,
442
+ ]);
443
+ const kept = motions.get(key);
444
+ if (kept)
445
+ return kept.pictures;
446
+ for (const [name, value] of Object.entries(theme))
447
+ if (value)
448
+ frame.search.set(name, value);
449
+ if (options.flowTo)
450
+ frame.search.set('flow-to', `${options.flowTo.part}#${options.flowTo.state}`);
451
+ else
452
+ frame.search.set('motion', options.motion);
453
+ const pictures = drawQueue.run((browser) => warmPages.run({
454
+ browser,
455
+ context: Object.assign(Object.assign({ viewport: (0, exports.viewportOf)(frame.size), reducedMotion: options.mode === 'reduced' ? 'reduce' : 'no-preference' }, (scale > 1 ? { deviceScaleFactor: scale } : {})), (scheme ? { colorScheme: scheme } : {})),
456
+ }, (page) => (0, motion_shot_1.motionPicturesOf)({
457
+ page,
458
+ url: `${baseOf()}/frame.html?${frame.search}`,
459
+ clip: frame.clip && !options.flowTo,
460
+ viewport: !!options.flowTo,
461
+ at: options.at,
462
+ })), 'high');
463
+ motions.set(key, { drawn: frame.drawn, pictures });
464
+ pictures.catch(() => { var _a; return ((_a = motions.get(key)) === null || _a === void 0 ? void 0 : _a.pictures) === pictures && motions.delete(key); });
465
+ return pictures;
466
+ },
330
467
  /** One box per cluster of the pixels `after` changes from `before`, kept per pair of pictures; drawn after every waiting shot. */
331
468
  changedBoxesOf: (before, after) => {
332
469
  var _a;
@@ -344,8 +481,14 @@ const createPartShooter = (options) => {
344
481
  /** Drops the pictures of the parts `change` redraws. */
345
482
  forget: (change) => {
346
483
  for (const [key, { drawn }] of cache) {
347
- if ('part' in drawn && (0, changed_parts_1.redraws)(change, drawn.part))
484
+ if ('part' in drawn && (0, changed_parts_1.redraws)(change, drawn.part)) {
348
485
  cache.delete(key);
486
+ store === null || store === void 0 ? void 0 : store.drop(key);
487
+ }
488
+ }
489
+ for (const [key, { drawn }] of motions) {
490
+ if ('part' in drawn && (0, changed_parts_1.redraws)(change, drawn.part))
491
+ motions.delete(key);
349
492
  }
350
493
  },
351
494
  /** Drops the call pictures a changed file under the calls root may draw into. */
@@ -355,9 +498,17 @@ const createPartShooter = (options) => {
355
498
  cache.delete(key);
356
499
  }
357
500
  },
358
- clear: () => cache.clear(),
501
+ clear: () => {
502
+ for (const [key, { drawn }] of cache) {
503
+ if ('part' in drawn)
504
+ store === null || store === void 0 ? void 0 : store.drop(key);
505
+ }
506
+ cache.clear();
507
+ motions.clear();
508
+ },
359
509
  close: () => __awaiter(void 0, void 0, void 0, function* () {
360
510
  cache.clear();
511
+ motions.clear();
361
512
  boxes.clear();
362
513
  yield drawQueue.close();
363
514
  }),
@@ -1 +1 @@
1
- {"version":3,"file":"shot.js","sourceRoot":"","sources":["../../../../../libs/cli/src/lib/design/shot.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"shot.js","sourceRoot":"","sources":["../../../../../libs/cli/src/lib/design/shot.ts"],"names":[],"mappings":"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"}