@ethlete/cli 3.0.0-next.23 → 3.0.0-next.25

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 (202) hide show
  1. package/CHANGELOG.md +85 -0
  2. package/design/contrast.ts +49 -0
  3. package/design/define-call.ts +48 -8
  4. package/design/define-part.ts +83 -1
  5. package/design/embed-page.ts +37 -4
  6. package/design/icon-sheet.ts +151 -0
  7. package/design/mark-part.ts +79 -2
  8. package/design/morph.ts +67 -0
  9. package/design/motion-runtime.ts +407 -0
  10. package/design/spring.ts +53 -0
  11. package/design/token-sheet.ts +87 -0
  12. package/design/web/env.d.ts +6 -2
  13. package/design/web/frame.ts +159 -6
  14. package/package.json +2 -1
  15. package/src/lib/design/calls-tsconfig.js +1 -2
  16. package/src/lib/design/calls-tsconfig.js.map +1 -1
  17. package/src/lib/design/changed-parts.d.ts +4 -4
  18. package/src/lib/design/changed-parts.js +10 -6
  19. package/src/lib/design/changed-parts.js.map +1 -1
  20. package/src/lib/design/contact-sheet.d.ts +26 -13
  21. package/src/lib/design/contact-sheet.js +122 -40
  22. package/src/lib/design/contact-sheet.js.map +1 -1
  23. package/src/lib/design/design-command.js +50 -2
  24. package/src/lib/design/design-command.js.map +1 -1
  25. package/src/lib/design/force-interactions.d.ts +2 -1
  26. package/src/lib/design/force-interactions.js +7 -4
  27. package/src/lib/design/force-interactions.js.map +1 -1
  28. package/src/lib/design/generated-stylesheets.d.ts +15 -0
  29. package/src/lib/design/generated-stylesheets.js +52 -0
  30. package/src/lib/design/generated-stylesheets.js.map +1 -0
  31. package/src/lib/design/inbox-command.d.ts +1 -0
  32. package/src/lib/design/inbox-command.js +15 -0
  33. package/src/lib/design/inbox-command.js.map +1 -1
  34. package/src/lib/design/mcp-command.d.ts +60 -0
  35. package/src/lib/design/mcp-command.js +327 -0
  36. package/src/lib/design/mcp-command.js.map +1 -0
  37. package/src/lib/design/merge-compare.d.ts +10 -0
  38. package/src/lib/design/merge-compare.js +17 -4
  39. package/src/lib/design/merge-compare.js.map +1 -1
  40. package/src/lib/design/motion-command.d.ts +71 -0
  41. package/src/lib/design/motion-command.js +314 -0
  42. package/src/lib/design/motion-command.js.map +1 -0
  43. package/src/lib/design/motion-endpoint.d.ts +61 -0
  44. package/src/lib/design/motion-endpoint.js +133 -0
  45. package/src/lib/design/motion-endpoint.js.map +1 -0
  46. package/src/lib/design/motion-flow.d.ts +5 -0
  47. package/src/lib/design/motion-flow.js +29 -0
  48. package/src/lib/design/motion-flow.js.map +1 -0
  49. package/src/lib/design/motion-shot.d.ts +43 -0
  50. package/src/lib/design/motion-shot.js +97 -0
  51. package/src/lib/design/motion-shot.js.map +1 -0
  52. package/src/lib/design/paths.d.ts +11 -0
  53. package/src/lib/design/paths.js.map +1 -1
  54. package/src/lib/design/ready-shots.d.ts +7 -0
  55. package/src/lib/design/ready-shots.js +22 -1
  56. package/src/lib/design/ready-shots.js.map +1 -1
  57. package/src/lib/design/render-packages.d.ts +9 -0
  58. package/src/lib/design/render-packages.js +13 -3
  59. package/src/lib/design/render-packages.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.js +108 -21
  63. package/src/lib/design/serve.js.map +1 -1
  64. package/src/lib/design/shot-command.d.ts +12 -6
  65. package/src/lib/design/shot-command.js +60 -48
  66. package/src/lib/design/shot-command.js.map +1 -1
  67. package/src/lib/design/shot.d.ts +30 -4
  68. package/src/lib/design/shot.js +138 -53
  69. package/src/lib/design/shot.js.map +1 -1
  70. package/src/lib/design/sketch-command.js +132 -39
  71. package/src/lib/design/sketch-command.js.map +1 -1
  72. package/src/lib/design/sketch-stylesheets.d.ts +7 -0
  73. package/src/lib/design/sketch-stylesheets.js +63 -0
  74. package/src/lib/design/sketch-stylesheets.js.map +1 -0
  75. package/src/lib/design/studio-api.d.ts +28 -6
  76. package/src/lib/design/studio-api.js +102 -17
  77. package/src/lib/design/studio-api.js.map +1 -1
  78. package/src/lib/design/system/check-system.js +8 -0
  79. package/src/lib/design/system/check-system.js.map +1 -1
  80. package/src/lib/design/system/comments/comment.d.ts +17 -0
  81. package/src/lib/design/system/comments/comment.js +35 -1
  82. package/src/lib/design/system/comments/comment.js.map +1 -1
  83. package/src/lib/design/system/comments/complete.js +4 -2
  84. package/src/lib/design/system/comments/complete.js.map +1 -1
  85. package/src/lib/design/system/complete-command.d.ts +9 -0
  86. package/src/lib/design/system/complete-command.js +134 -0
  87. package/src/lib/design/system/complete-command.js.map +1 -0
  88. package/src/lib/design/system/complete.d.ts +171 -0
  89. package/src/lib/design/system/complete.js +1106 -0
  90. package/src/lib/design/system/complete.js.map +1 -0
  91. package/src/lib/design/system/contrast-check.d.ts +26 -0
  92. package/src/lib/design/system/contrast-check.js +153 -0
  93. package/src/lib/design/system/contrast-check.js.map +1 -0
  94. package/src/lib/design/system/exceptions.d.ts +59 -0
  95. package/src/lib/design/system/exceptions.js +132 -0
  96. package/src/lib/design/system/exceptions.js.map +1 -0
  97. package/src/lib/design/system/flows/flow.d.ts +3 -0
  98. package/src/lib/design/system/flows/flow.js +5 -3
  99. package/src/lib/design/system/flows/flow.js.map +1 -1
  100. package/src/lib/design/system/handoff.d.ts +11 -0
  101. package/src/lib/design/system/handoff.js +30 -0
  102. package/src/lib/design/system/handoff.js.map +1 -0
  103. package/src/lib/design/system/imports.d.ts +28 -3
  104. package/src/lib/design/system/imports.js +84 -7
  105. package/src/lib/design/system/imports.js.map +1 -1
  106. package/src/lib/design/system/inventory-approval.d.ts +41 -0
  107. package/src/lib/design/system/inventory-approval.js +71 -0
  108. package/src/lib/design/system/inventory-approval.js.map +1 -0
  109. package/src/lib/design/system/inventory.d.ts +65 -0
  110. package/src/lib/design/system/inventory.js +168 -0
  111. package/src/lib/design/system/inventory.js.map +1 -0
  112. package/src/lib/design/system/list-system.d.ts +11 -0
  113. package/src/lib/design/system/list-system.js +26 -3
  114. package/src/lib/design/system/list-system.js.map +1 -1
  115. package/src/lib/design/system/product-stylesheets.d.ts +3 -0
  116. package/src/lib/design/system/product-stylesheets.js +40 -0
  117. package/src/lib/design/system/product-stylesheets.js.map +1 -0
  118. package/src/lib/design/system/render-check.js +30 -4
  119. package/src/lib/design/system/render-check.js.map +1 -1
  120. package/src/lib/design/system/resolve-product.d.ts +2 -3
  121. package/src/lib/design/system/resolve-product.js +4 -6
  122. package/src/lib/design/system/resolve-product.js.map +1 -1
  123. package/src/lib/design/system/rules/canonical-class.d.ts +9 -0
  124. package/src/lib/design/system/rules/canonical-class.js +132 -0
  125. package/src/lib/design/system/rules/canonical-class.js.map +1 -0
  126. package/src/lib/design/system/rules/inline-svg.d.ts +7 -0
  127. package/src/lib/design/system/rules/inline-svg.js +28 -0
  128. package/src/lib/design/system/rules/inline-svg.js.map +1 -0
  129. package/src/lib/design/system/rules/motion.d.ts +4 -0
  130. package/src/lib/design/system/rules/motion.js +46 -2
  131. package/src/lib/design/system/rules/motion.js.map +1 -1
  132. package/src/lib/design/system/rules/stale-replace.js +41 -2
  133. package/src/lib/design/system/rules/stale-replace.js.map +1 -1
  134. package/src/lib/design/system/rules/token-selectors.js +1 -1
  135. package/src/lib/design/system/rules/token-selectors.js.map +1 -1
  136. package/src/lib/design/system/rules/utility-css.d.ts +11 -0
  137. package/src/lib/design/system/rules/utility-css.js +290 -0
  138. package/src/lib/design/system/rules/utility-css.js.map +1 -0
  139. package/src/lib/design/system/sketch/baseline.d.ts +3 -2
  140. package/src/lib/design/system/sketch/baseline.js +10 -4
  141. package/src/lib/design/system/sketch/baseline.js.map +1 -1
  142. package/src/lib/design/system/sketch/host-edit.d.ts +4 -0
  143. package/src/lib/design/system/sketch/host-edit.js +68 -0
  144. package/src/lib/design/system/sketch/host-edit.js.map +1 -0
  145. package/src/lib/design/system/sketch/merge-preview.d.ts +4 -2
  146. package/src/lib/design/system/sketch/merge-preview.js +20 -3
  147. package/src/lib/design/system/sketch/merge-preview.js.map +1 -1
  148. package/src/lib/design/system/sketch/merge-shared.d.ts +42 -6
  149. package/src/lib/design/system/sketch/merge-shared.js +122 -24
  150. package/src/lib/design/system/sketch/merge-shared.js.map +1 -1
  151. package/src/lib/design/system/sketch/merge.d.ts +6 -5
  152. package/src/lib/design/system/sketch/merge.js +95 -35
  153. package/src/lib/design/system/sketch/merge.js.map +1 -1
  154. package/src/lib/design/system/sketch/merged-parts.d.ts +17 -0
  155. package/src/lib/design/system/sketch/merged-parts.js +35 -2
  156. package/src/lib/design/system/sketch/merged-parts.js.map +1 -1
  157. package/src/lib/design/system/sketch/no-visible-change.d.ts +10 -3
  158. package/src/lib/design/system/sketch/no-visible-change.js +75 -20
  159. package/src/lib/design/system/sketch/no-visible-change.js.map +1 -1
  160. package/src/lib/design/system/sketch/overlay.js +16 -3
  161. package/src/lib/design/system/sketch/overlay.js.map +1 -1
  162. package/src/lib/design/system/sketch/part-definition.d.ts +12 -0
  163. package/src/lib/design/system/sketch/part-definition.js +40 -1
  164. package/src/lib/design/system/sketch/part-definition.js.map +1 -1
  165. package/src/lib/design/system/sketch/sketch.d.ts +40 -3
  166. package/src/lib/design/system/sketch/sketch.js +147 -50
  167. package/src/lib/design/system/sketch/sketch.js.map +1 -1
  168. package/src/lib/design/system/sketch/unchanged-states.d.ts +10 -4
  169. package/src/lib/design/system/sketch/unchanged-states.js +37 -23
  170. package/src/lib/design/system/sketch/unchanged-states.js.map +1 -1
  171. package/src/lib/design/system/sketch/unused-closure.d.ts +12 -0
  172. package/src/lib/design/system/sketch/unused-closure.js +185 -0
  173. package/src/lib/design/system/sketch/unused-closure.js.map +1 -0
  174. package/src/lib/design/system/system-modules.d.ts +5 -1
  175. package/src/lib/design/system/system-modules.js +32 -17
  176. package/src/lib/design/system/system-modules.js.map +1 -1
  177. package/src/lib/design/system/system-tsconfig.d.ts +2 -1
  178. package/src/lib/design/system/system-tsconfig.js +11 -6
  179. package/src/lib/design/system/system-tsconfig.js.map +1 -1
  180. package/src/lib/design/thumb.d.ts +6 -2
  181. package/src/lib/design/thumb.js +36 -15
  182. package/src/lib/design/thumb.js.map +1 -1
  183. package/src/lib/design/variant-diff.d.ts +12 -10
  184. package/src/lib/design/variant-diff.js +14 -13
  185. package/src/lib/design/variant-diff.js.map +1 -1
  186. package/src/lib/design/warm-pages.d.ts +20 -0
  187. package/src/lib/design/warm-pages.js +78 -0
  188. package/src/lib/design/warm-pages.js.map +1 -0
  189. package/src/lib/update/commits.d.ts +9 -0
  190. package/src/lib/update/commits.js +15 -1
  191. package/src/lib/update/commits.js.map +1 -1
  192. package/src/lib/update/migration-manifest.d.ts +6 -0
  193. package/src/lib/update/migration-manifest.js +7 -0
  194. package/src/lib/update/migration-manifest.js.map +1 -1
  195. package/src/lib/update/migrations-command.js +1 -0
  196. package/src/lib/update/migrations-command.js.map +1 -1
  197. package/src/lib/update/run-migrations.d.ts +22 -0
  198. package/src/lib/update/run-migrations.js +60 -1
  199. package/src/lib/update/run-migrations.js.map +1 -1
  200. package/src/lib/update/update-command.d.ts +10 -0
  201. package/src/lib/update/update-command.js +28 -2
  202. package/src/lib/update/update-command.js.map +1 -1
@@ -23,6 +23,8 @@ const product_command_1 = require("./product-command");
23
23
  const render_1 = require("./render");
24
24
  const render_packages_1 = require("./render-packages");
25
25
  const part_marks_1 = require("./part-marks");
26
+ const generated_stylesheets_1 = require("./generated-stylesheets");
27
+ const sketch_stylesheets_1 = require("./sketch-stylesheets");
26
28
  const shot_1 = require("./shot");
27
29
  const changed_parts_1 = require("./changed-parts");
28
30
  const stamp_1 = require("./stamp");
@@ -32,7 +34,10 @@ const system_modules_1 = require("./system/system-modules");
32
34
  const kit_1 = require("./system/kit");
33
35
  const system_tsconfig_1 = require("./system/system-tsconfig");
34
36
  const sketch_1 = require("./system/sketch/sketch");
37
+ const unchanged_states_1 = require("./system/sketch/unchanged-states");
38
+ const inventory_1 = require("./system/inventory");
35
39
  const thumb_1 = require("./thumb");
40
+ const motion_endpoint_1 = require("./motion-endpoint");
36
41
  const paths_1 = require("./paths");
37
42
  const VIRTUAL = 'virtual:design-explore';
38
43
  /** What a slug says about which project drew it: its first segment. */
@@ -68,16 +73,31 @@ const workspaceAliases = (target) => {
68
73
  };
69
74
  // Sequential on purpose: Vite appends a sheet's <style> when its import settles, so parallel
70
75
  // imports let the head order, and with it the winning rule, change from load to load.
71
- const settingsLoaders = (options) => `{\n${Object.entries(options.settings)
72
- .map(([name, entry]) => {
76
+ const stylesLoaderOf = (options) => {
73
77
  var _a;
74
- return ` ${JSON.stringify(name)}: () => Promise.resolve()${((_a = entry.styles) !== null && _a !== void 0 ? _a : [])
78
+ return `() => Promise.resolve()${((_a = options.entry.styles) !== null && _a !== void 0 ? _a : [])
75
79
  .map((style) => (0, path_1.resolve)(options.target, style))
76
- .map((file) => (options.products ? (0, system_modules_1.productModuleIdOf)({ file, product: name }) : file))
80
+ .map((file) => options.product ? (0, system_modules_1.productModuleIdOf)({ file, product: options.product, sketch: options.sketch }) : file)
77
81
  .map((file) => `.then(() => import(${JSON.stringify((0, vite_paths_1.fsUrl)(file))}))`)
78
82
  .join('')},`;
79
- })
83
+ };
84
+ const settingsLoaders = (options) => `{\n${Object.entries(options.settings)
85
+ .map(([name, entry]) => ` ${JSON.stringify(name)}: ${stylesLoaderOf({ target: options.target, entry, product: options.products ? name : undefined })}`)
80
86
  .join('\n')}\n}`;
87
+ /** The stylesheets of each product as one sketch variant draws them, for each variant that draws a part stylesheet from a file of its own. */
88
+ const sketchStylesLoaders = (options) => {
89
+ var _a;
90
+ const { target, config, system } = options;
91
+ return `{\n${Object.entries((_a = config.products) !== null && _a !== void 0 ? _a : {})
92
+ .map(([product, entry]) => ` ${JSON.stringify(product)}: {\n${system
93
+ .sketchesOf(product)
94
+ .map(({ target: part, variants }) => ` ${JSON.stringify(part)}: {\n${variants
95
+ .filter((variant) => system.replacedStylesheetsOf({ product, sketch: { target: part, variant } }).size > 0)
96
+ .map((variant) => ` ${JSON.stringify(variant)}: ${stylesLoaderOf({ target, entry, product, sketch: { target: part, variant } })}`)
97
+ .join('\n')}\n },`)
98
+ .join('\n')}\n },`)
99
+ .join('\n')}\n}`;
100
+ };
81
101
  const themesOfSettings = (settings) => JSON.stringify(Object.fromEntries(Object.entries(settings).map(([name, entry]) => {
82
102
  var _a, _b, _c, _d;
83
103
  return [
@@ -90,8 +110,9 @@ const themesOfSettings = (settings) => JSON.stringify(Object.fromEntries(Object.
90
110
  * one it draws for: two projects define the same theme variables, so a frame that loaded both would
91
111
  * draw under whichever stylesheet came last.
92
112
  */
93
- const env = (target, config) => {
113
+ const env = (options) => {
94
114
  var _a, _b;
115
+ const { target, config, system } = options;
95
116
  const projects = (_a = config.projects) !== null && _a !== void 0 ? _a : {};
96
117
  const products = (_b = config.products) !== null && _b !== void 0 ? _b : {};
97
118
  return (`const envs = ${settingsLoaders({ target, settings: projects })};\n` +
@@ -99,7 +120,8 @@ const env = (target, config) => {
99
120
  `const themes = ${themesOfSettings(projects)};\n` +
100
121
  `export const themesOf = (project) => themes[project] ?? { surface: [], color: [] };\n` +
101
122
  `const productEnvs = ${settingsLoaders({ target, settings: products, products: true })};\n` +
102
- `export const loadProductEnv = (product) => (productEnvs[product] ?? (() => Promise.resolve()))();\n`);
123
+ `const sketchProductEnvs = ${sketchStylesLoaders({ target, config, system })};\n` +
124
+ `export const loadProductEnv = ({ product, sketch, variant }) => (sketchProductEnvs[product]?.[sketch]?.[variant] ?? productEnvs[product] ?? (() => Promise.resolve()))();\n`);
103
125
  };
104
126
  /** Each product's parts, keyed `<layer>/<name>`, each loaded as the product resolves it. */
105
127
  const partsRegistry = (options) => options.parts
@@ -164,9 +186,14 @@ const isCommentFile = (file) => file.endsWith('.json') && (0, path_1.basename)((
164
186
  const isNoteFile = (file) => file.endsWith('.json') && (0, path_1.basename)((0, path_1.dirname)(file)) === 'notes';
165
187
  const isFlowFile = (file) => file.endsWith('.json') && (0, path_1.basename)((0, path_1.dirname)(file)) === 'flows';
166
188
  const isDecisionFile = (file) => (0, path_1.basename)(file) === sketch_1.SKETCH_FILE || isCommentFile(file) || isNoteFile(file);
189
+ const isSketchFile = (designRoot, file) => {
190
+ const [product, folder, ...inside] = (0, path_1.relative)(designRoot, (0, path_1.resolve)(file)).split(path_1.sep);
191
+ return !!product && product !== '..' && folder === 'sketches' && inside.length > 0;
192
+ };
167
193
  /**
168
- * A server-sent event stream for Studio: `comments` when a comment file changed, `notes` when a note file changed,
169
- * `flows` when a flow file changed, and `parts` with the parts any change redraws and the revision it gave them.
194
+ * A server-sent event stream for Studio: `comments`, `notes`, `flows`, `calls` and `sketches` when a file of that
195
+ * kind changed, and `parts` with the parts a design system change redraws and the revision it gave them. A `parts`
196
+ * event with no parts still tells Studio the system changed.
170
197
  */
171
198
  const createDesignEvents = () => {
172
199
  const listeners = new Set();
@@ -203,22 +230,22 @@ const withAssetUrls = (system) => {
203
230
  const marks = (0, part_marks_1.partMarksTransform)(system);
204
231
  return (code, id) => { var _a; return (_a = system.withAssetUrls(code, id)) !== null && _a !== void 0 ? _a : marks(code, id); };
205
232
  };
206
- const designExplore = ({ target, config, system }) => {
233
+ const designExplore = ({ target, config, system, stylesheetImports, }) => {
207
234
  const renderer = (0, render_1.createRenderer)({ target, config });
208
235
  return {
209
236
  name: 'design-explore',
210
237
  enforce: 'pre',
211
238
  resolveId: (id, importer) => {
212
- var _a, _b, _c;
239
+ var _a;
213
240
  if (id === VIRTUAL || id === `${VIRTUAL}/env` || id === `${VIRTUAL}/system`)
214
241
  return `\0${id}`;
215
- return ((_a = system.resolveId(id, importer)) !== null && _a !== void 0 ? _a : (0, render_packages_1.mappedSubpathOf)({ specifier: id, packages: (_c = (_b = config.render) === null || _b === void 0 ? void 0 : _b.packages) !== null && _c !== void 0 ? _c : {}, target }));
242
+ return ((_a = system.resolveId(id, importer)) !== null && _a !== void 0 ? _a : (0, render_packages_1.mappedSubpathOf)({ specifier: id, packages: (0, render_packages_1.renderPackagesOf)({ target, config }), target }));
216
243
  },
217
244
  load: (id) => {
218
245
  if (id === `\0${VIRTUAL}`)
219
246
  return registry(target);
220
247
  if (id === `\0${VIRTUAL}/env`)
221
- return env(target, config);
248
+ return env({ target, config, system });
222
249
  if (id === `\0${VIRTUAL}/system`)
223
250
  return systemRegistry(system);
224
251
  return null;
@@ -252,6 +279,7 @@ const designExplore = ({ target, config, system }) => {
252
279
  return `http://localhost:${address && typeof address === 'object' ? address.port : (0, paths_1.portOf)(config)}`;
253
280
  };
254
281
  const thumbs = (0, thumb_1.createThumbnailer)({ target, base });
282
+ const inventoryDraws = (0, thumb_1.createDrawQueue)({ target });
255
283
  const shots = (0, shot_1.createPartShooter)({
256
284
  target,
257
285
  base,
@@ -286,10 +314,14 @@ const designExplore = ({ target, config, system }) => {
286
314
  };
287
315
  const events = createDesignEvents();
288
316
  let revision = 0;
289
- const redraw = (change) => {
290
- if (!change.all && change.parts.length === 0 && !change.errored)
317
+ const redraw = (change, listed = false) => {
318
+ if (!change.all && change.parts.length === 0 && !change.errored) {
319
+ if (listed)
320
+ events.signal('parts', Object.assign({ revision }, change));
291
321
  return;
322
+ }
292
323
  revision += 1;
324
+ (0, unchanged_states_1.forgetUnchangedStates)();
293
325
  if (change.all)
294
326
  shots.clear();
295
327
  else
@@ -333,6 +365,15 @@ const designExplore = ({ target, config, system }) => {
333
365
  shots.clear();
334
366
  events.signal('flows');
335
367
  };
368
+ const signalLists = (file) => {
369
+ if (isInside(callsRoot, file))
370
+ events.signal('calls');
371
+ else if (isSketchFile(designRoot, file))
372
+ events.signal('sketches');
373
+ };
374
+ const isSystemFile = (file) => !isInside(callsRoot, file) &&
375
+ !isSketchFile(designRoot, file) &&
376
+ [designRoot, ...baseDirs].some((dir) => isInside(dir, file));
336
377
  const refresh = (file) => {
337
378
  if ((0, path_1.resolve)(file) === configPath)
338
379
  return reloadConfig();
@@ -343,6 +384,7 @@ const designExplore = ({ target, config, system }) => {
343
384
  if (isFlowFile(file))
344
385
  return reloadFlows();
345
386
  forgetCalls(file);
387
+ signalLists(file);
346
388
  if ((0, vite_paths_1.isCallFile)({ callsRoot, file }))
347
389
  return reload(VIRTUAL);
348
390
  if (isDecisionFile(file))
@@ -351,6 +393,7 @@ const designExplore = ({ target, config, system }) => {
351
393
  return;
352
394
  system.forget();
353
395
  unresolveParts();
396
+ reload(`${VIRTUAL}/env`);
354
397
  reload(`${VIRTUAL}/system`);
355
398
  redraw((0, changed_parts_1.addedPartsOf)({ designRoot, baseDirs, system, file: (0, path_1.resolve)(file) }));
356
399
  };
@@ -365,8 +408,9 @@ const designExplore = ({ target, config, system }) => {
365
408
  if (isFlowFile(file))
366
409
  return reloadFlows();
367
410
  forgetCalls(file);
368
- const dependents = (0, shot_1.dependentIdsOf)((_a = vite.moduleGraph.getModulesByFile(file)) !== null && _a !== void 0 ? _a : []);
369
- redraw((0, changed_parts_1.changedPartsOf)({ target, config, system, file, dependents }));
411
+ signalLists(file);
412
+ const dependents = (0, shot_1.dependentIdsOf)((_a = vite.moduleGraph.getModulesByFile(file)) !== null && _a !== void 0 ? _a : [], stylesheetImports);
413
+ redraw((0, changed_parts_1.changedPartsOf)({ target, config, system, file, dependents }), isSystemFile(file));
370
414
  };
371
415
  const answer = (handle) => (request, response) => {
372
416
  var _a;
@@ -383,6 +427,22 @@ const designExplore = ({ target, config, system }) => {
383
427
  vite.middlewares.use(render_1.FORCE_PATH, render_1.forceMiddleware);
384
428
  vite.middlewares.use(thumb_1.THUMB_PATH, thumbs.middleware);
385
429
  vite.middlewares.use(shot_1.SHOT_PATH, shots.middleware);
430
+ vite.middlewares.use(studio_api_1.MOTION_PATH, (0, motion_endpoint_1.motionMiddleware)({
431
+ system,
432
+ motionOf: shots.motionOf,
433
+ declaredOf: (_a) => __awaiter(void 0, [_a], void 0, function* ({ product, part, sketch }) {
434
+ var _b, _c;
435
+ const file = (_b = system.partOf({ product, part, sketch })) === null || _b === void 0 ? void 0 : _b.file;
436
+ if (!file) {
437
+ throw new thumb_1.ThumbMissingError(sketch
438
+ ? `design-explore: variant "${sketch.variant}" of the sketch on ${sketch.target} in product "${product}" has no part "${part}"`
439
+ : `design-explore: product "${product}" has no part "${part}"`);
440
+ }
441
+ const module = (yield vite.ssrLoadModule((0, system_modules_1.productModuleIdOf)({ file, product, sketch })));
442
+ const motions = (_c = module.default) === null || _c === void 0 ? void 0 : _c.motions;
443
+ return motions && typeof motions === 'object' ? motions : {};
444
+ }),
445
+ }));
386
446
  vite.middlewares.use(list_system_1.SYSTEM_PATH, answer((url) => __awaiter(void 0, void 0, void 0, function* () {
387
447
  var _a;
388
448
  const asked = url.searchParams.get('product');
@@ -423,7 +483,15 @@ const designExplore = ({ target, config, system }) => {
423
483
  request,
424
484
  load: ({ file, product, sketch }) => vite.ssrLoadModule((0, system_modules_1.productModuleIdOf)({ file, product, sketch })),
425
485
  pictureOf: shots.pictureOf,
426
- boxOf: shots.changedBoxOf,
486
+ boxOf: shots.changedBoxesOf,
487
+ inventoryOf: ({ product, part }) => (0, inventory_1.inventoryOf)({
488
+ product,
489
+ part,
490
+ system,
491
+ base: base(),
492
+ load: (id) => vite.ssrLoadModule(id),
493
+ draw: (job) => inventoryDraws.run(job),
494
+ }),
427
495
  });
428
496
  })));
429
497
  studio(studio_api_1.SKETCHES_PATH, studio_api_1.sketchesAnswer);
@@ -447,10 +515,14 @@ const designExplore = ({ target, config, system }) => {
447
515
  studio(studio_api_1.FLOW_NOTE_PATH, studio_api_1.flowNoteAnswer);
448
516
  studio(studio_api_1.FLOW_NOTE_CHANGE_PATH, studio_api_1.flowNoteChangeAnswer);
449
517
  studio(studio_api_1.FLOW_NOTE_DELETE_PATH, studio_api_1.flowNoteDeleteAnswer);
518
+ studio(studio_api_1.INVENTORY_PATH, studio_api_1.inventoryAnswer);
519
+ studio(studio_api_1.INVENTORY_APPROVE_PATH, studio_api_1.inventoryApproveAnswer);
520
+ studio(studio_api_1.EXCEPTIONS_PATH, studio_api_1.exceptionsAnswer);
521
+ studio(studio_api_1.EXCEPTION_APPROVE_PATH, studio_api_1.exceptionApproveAnswer);
450
522
  vite.middlewares.use(studio_api_1.COMMENT_EVENTS_PATH, events.middleware);
451
523
  (_c = vite.httpServer) === null || _c === void 0 ? void 0 : _c.on('close', () => {
452
524
  events.close();
453
- void Promise.all([thumbs.close(), shots.close()]);
525
+ void Promise.all([thumbs.close(), shots.close(), inventoryDraws.close()]);
454
526
  });
455
527
  vite.watcher.add([designRoot, ...baseDirs]);
456
528
  vite.watcher.on('add', refresh);
@@ -487,6 +559,7 @@ const createDesignServer = (options) => __awaiter(void 0, void 0, void 0, functi
487
559
  const { default: tailwind } = yield import('@tailwindcss/postcss');
488
560
  const here = (0, paths_1.assetRoot)();
489
561
  const system = (0, system_modules_1.createSystemModules)({ target, config, sketchesRoot });
562
+ const generatedStylesheetsOf = (0, generated_stylesheets_1.createGeneratedStylesheets)({ target, config, system });
490
563
  if (listen) {
491
564
  for (const name of system.products()) {
492
565
  const product = system.productOf(name);
@@ -495,10 +568,24 @@ const createDesignServer = (options) => __awaiter(void 0, void 0, void 0, functi
495
568
  }
496
569
  }
497
570
  const baseDirs = system.products().flatMap((name) => { var _a, _b, _c; return (_c = (_b = (_a = system.productOf(name)) === null || _a === void 0 ? void 0 : _a.base) === null || _b === void 0 ? void 0 : _b.dir) !== null && _c !== void 0 ? _c : []; });
571
+ const stylesheetImports = new Map();
498
572
  const server = yield createServer(Object.assign(Object.assign(Object.assign({ configFile: false, root: (0, path_1.resolve)(here, 'web'),
499
573
  // Every drawing is ruled under Tailwind 4, whatever the checkout installs. The tool brings its
500
574
  // own pipeline so no checkout's postcss config reaches a drawing.
501
- css: { postcss: { plugins: [tailwind(), (0, force_interactions_1.forceInteractionsPlugin)()] } }, cacheDir: (0, paths_1.viteCacheOf)(target, own ? 'vite-check' : 'vite'), resolve: {
575
+ css: {
576
+ postcss: {
577
+ plugins: [
578
+ (0, sketch_stylesheets_1.sketchStylesheetsPlugin)((id) => {
579
+ var _a;
580
+ const drawn = { product: (_a = (0, system_modules_1.productOfModuleId)(id)) !== null && _a !== void 0 ? _a : '', sketch: (0, system_modules_1.sketchOfModuleId)(id) };
581
+ return generatedStylesheetsOf(drawn).then((generated) => new Map([...system.replacedStylesheetsOf(drawn), ...generated]));
582
+ }),
583
+ tailwind(),
584
+ (0, force_interactions_1.forceInteractionsPlugin)(),
585
+ (0, shot_1.stylesheetImportsPlugin)(stylesheetImports),
586
+ ],
587
+ },
588
+ }, cacheDir: (0, paths_1.viteCacheOf)(target, own ? 'vite-check' : 'vite'), resolve: {
502
589
  alias: [
503
590
  { find: /^@design-explore$/, replacement: (0, path_1.resolve)(here, 'define-call.ts') },
504
591
  { find: new RegExp(`^${system_tsconfig_1.DESIGN_SYSTEM_SPECIFIER}$`), replacement: (0, path_1.resolve)(here, 'define-part.ts') },
@@ -508,7 +595,7 @@ const createDesignServer = (options) => __awaiter(void 0, void 0, void 0, functi
508
595
  },
509
596
  // A design mock ships as TS that imports CSS with `?inline`, which the dependency pre-bundler
510
597
  // can not load.
511
- optimizeDeps: { exclude: ['@ethlete/components', '@ethlete/core'] }, plugins: [designExplore({ target, config, system })] }, (listen ? {} : { appType: 'custom' })), (listen && !own ? {} : { logLevel: 'error' })), { server: Object.assign(Object.assign({
598
+ optimizeDeps: { exclude: ['@ethlete/components', '@ethlete/core'] }, plugins: [designExplore({ target, config, system, stylesheetImports })] }, (listen ? {} : { appType: 'custom' })), (listen && !own ? {} : { logLevel: 'error' })), { server: Object.assign(Object.assign({
512
599
  // Studio swaps a frame for a fresh one once it has painted; a Vite reload would blank every frame at once.
513
600
  hmr: false }, (listen
514
601
  ? Object.assign(Object.assign(Object.assign({ port: port !== null && port !== void 0 ? port : (0, paths_1.portOf)(config) }, (host ? { host } : {})), { strictPort: true }), (own ? { watch: null } : {})) : { middlewareMode: true, ws: false, watch: null })), {
@@ -1 +1 @@
1
- {"version":3,"file":"serve.js","sourceRoot":"","sources":["../../../../../libs/cli/src/lib/design/serve.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"serve.js","sourceRoot":"","sources":["../../../../../libs/cli/src/lib/design/serve.ts"],"names":[],"mappings":"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"}
@@ -44,8 +44,14 @@ export declare const planOf: (options: {
44
44
  state: string | null;
45
45
  only?: string[];
46
46
  }) => Plan[][];
47
- /** One sheet row per row of the part's grid, after a row of the states the grid leaves out. */
48
- export declare const gridRowsOf: (row: Plan[], grid: ListedGrid) => Plan[][];
47
+ export type EmptyGridCell = {
48
+ empty: string;
49
+ };
50
+ /**
51
+ * One sheet row per row of the part's grid, after a row of the states the grid leaves out. A grid row keeps an
52
+ * `{ empty: '<row> <column>' }` cell for each column it draws no state in.
53
+ */
54
+ export declare const gridRowsOf: (row: Plan[], grid: ListedGrid) => (Plan | EmptyGridCell)[][];
49
55
  export declare const rowsOf: (options: {
50
56
  part: string;
51
57
  variants: string[] | null;
@@ -78,16 +84,16 @@ export declare const shotProductOf: (options: {
78
84
  part: string;
79
85
  }) => ResolvedProduct | string;
80
86
  /**
81
- * The crop around every pixel a variant cell changes from the merged cell of its state, in CSS pixels inside the
82
- * largest picture, or `null` when no variant changes a pixel.
87
+ * One crop per cluster of the pixels a variant cell changes from the merged cell of its state, in CSS pixels inside
88
+ * the largest picture; empty when no variant changes a pixel.
83
89
  */
84
- export declare const changedCropIn: (options: {
90
+ export declare const changedCropsIn: (options: {
85
91
  plan: Plan[][];
86
92
  sheet: SheetCell[][];
87
93
  mergedIndex: number;
88
94
  boxOf: BoxOf;
89
95
  scale: number;
90
- }) => Promise<import("./contact-sheet").ChangedBox | null>;
96
+ }) => Promise<import("./contact-sheet").ChangedBox[]>;
91
97
  /**
92
98
  * `et design shot <layer>/<name> --states [--variants]` draws every state of a part, and with `--variants`
93
99
  * every variant of its open sketch too, into one contact sheet PNG, and prints where it wrote it.
@@ -9,7 +9,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
9
9
  });
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.designShot = exports.changedCropIn = exports.shotProductOf = exports.shotReportOf = exports.shownVariantsOf = exports.rowsOf = exports.gridRowsOf = exports.planOf = exports.withDiffRows = exports.NEW_STATE_NOTE = exports.SHOT_USAGE = void 0;
12
+ exports.designShot = exports.changedCropsIn = exports.shotProductOf = exports.shotReportOf = exports.shownVariantsOf = exports.rowsOf = exports.gridRowsOf = exports.planOf = exports.withDiffRows = exports.NEW_STATE_NOTE = exports.SHOT_USAGE = void 0;
13
13
  const fs_1 = require("fs");
14
14
  const path_1 = require("path");
15
15
  const contact_sheet_1 = require("./contact-sheet");
@@ -69,12 +69,14 @@ const withDiffRows = (options) => {
69
69
  const grid = grids === null || grids === void 0 ? void 0 : grids[rowIndex];
70
70
  const cells = (_a = plan[rowIndex]) !== null && _a !== void 0 ? _a : [];
71
71
  const groups = grid
72
- ? (0, exports.gridRowsOf)(cells, grid).map((group) => group.map((cell) => cells.indexOf(cell)))
72
+ ? (0, exports.gridRowsOf)(cells, grid).map((group) => group.map((cell) => ('empty' in cell ? cell : cells.indexOf(cell))))
73
73
  : [row.map((_, index) => index)];
74
74
  return groups.flatMap((group) => {
75
- const drawn = group.flatMap((index) => (row[index] ? [row[index]] : []));
75
+ const drawn = group.flatMap((index) => typeof index !== 'number' ? [{ label: index.empty, note: 'not drawn' }] : row[index] ? [row[index]] : []);
76
76
  const diffs = compares && rowIndex !== mergedIndex
77
77
  ? group.flatMap((index) => {
78
+ if (typeof index !== 'number')
79
+ return [];
78
80
  const diff = diffOf(rowIndex, index);
79
81
  return diff ? [diff] : [];
80
82
  })
@@ -111,18 +113,20 @@ const planOf = (options) => {
111
113
  });
112
114
  };
113
115
  exports.planOf = planOf;
114
- /** One sheet row per row of the part's grid, after a row of the states the grid leaves out. */
116
+ /**
117
+ * One sheet row per row of the part's grid, after a row of the states the grid leaves out. A grid row keeps an
118
+ * `{ empty: '<row> <column>' }` cell for each column it draws no state in.
119
+ */
115
120
  const gridRowsOf = (row, grid) => {
116
121
  const byState = new Map(row.map((cell) => [cell.address.state, cell]));
117
122
  const gridded = new Set(grid.cells.map((cell) => cell.state));
118
123
  const rest = row.filter((cell) => !gridded.has(cell.address.state));
119
- const rows = grid.rows.map((name) => grid.columns.flatMap((column) => {
120
- var _a;
124
+ const rows = grid.rows.map((name) => grid.columns.map((column) => {
125
+ var _a, _b;
121
126
  const state = (_a = grid.cells.find((cell) => cell.row === name && cell.column === column)) === null || _a === void 0 ? void 0 : _a.state;
122
- const cell = state === undefined ? undefined : byState.get(state);
123
- return cell ? [cell] : [];
127
+ return (_b = (state === undefined ? undefined : byState.get(state))) !== null && _b !== void 0 ? _b : { empty: `${name} ${column}` };
124
128
  }));
125
- return [rest, ...rows].filter((cells) => cells.length > 0);
129
+ return [rest, ...rows].filter((cells) => cells.some((cell) => !('empty' in cell)));
126
130
  };
127
131
  exports.gridRowsOf = gridRowsOf;
128
132
  const rowsOf = (options) => {
@@ -185,10 +189,10 @@ const shotProductOf = (options) => {
185
189
  exports.shotProductOf = shotProductOf;
186
190
  const CROP_CHANGED = 'changed';
187
191
  /**
188
- * The crop around every pixel a variant cell changes from the merged cell of its state, in CSS pixels inside the
189
- * largest picture, or `null` when no variant changes a pixel.
192
+ * One crop per cluster of the pixels a variant cell changes from the merged cell of its state, in CSS pixels inside
193
+ * the largest picture; empty when no variant changes a pixel.
190
194
  */
191
- const changedCropIn = (options) => __awaiter(void 0, void 0, void 0, function* () {
195
+ const changedCropsIn = (options) => __awaiter(void 0, void 0, void 0, function* () {
192
196
  var _a;
193
197
  const { plan, sheet, mergedIndex, boxOf, scale } = options;
194
198
  const pngs = sheet.flatMap((row) => row.flatMap((cell) => ('png' in cell ? [cell.png] : [])));
@@ -205,11 +209,11 @@ const changedCropIn = (options) => __awaiter(void 0, void 0, void 0, function* (
205
209
  return before && 'png' in cell ? [[before, cell.png]] : [];
206
210
  }));
207
211
  if (pngs.length === 0)
208
- return null;
212
+ return [];
209
213
  const sizes = pngs.map(contact_sheet_1.pngSizeOf);
210
214
  const boxes = yield Promise.all(pairs.map(([before, after]) => boxOf(before, after)));
211
- return (0, contact_sheet_1.changedCropOf)({
212
- boxes,
215
+ return (0, contact_sheet_1.changedCropsOf)({
216
+ boxes: boxes.flat(),
213
217
  frame: {
214
218
  width: Math.max(...sizes.map((size) => size.width)),
215
219
  height: Math.max(...sizes.map((size) => size.height)),
@@ -217,7 +221,7 @@ const changedCropIn = (options) => __awaiter(void 0, void 0, void 0, function* (
217
221
  scale,
218
222
  });
219
223
  });
220
- exports.changedCropIn = changedCropIn;
224
+ exports.changedCropsIn = changedCropsIn;
221
225
  const stringsOf = (states) => (states && typeof states === 'object' ? Object.keys(states) : []);
222
226
  /**
223
227
  * `et design shot <layer>/<name> --states [--variants]` draws every state of a part, and with `--variants`
@@ -392,45 +396,53 @@ const designShot = (options) => __awaiter(void 0, void 0, void 0, function* () {
392
396
  });
393
397
  let sheet = yield shootAll();
394
398
  const mergedIndex = rows.findIndex((axis) => axis.sketch === null);
395
- if (cropChanged) {
396
- const crop = yield (0, exports.changedCropIn)({ plan, sheet, mergedIndex, boxOf: shooter.changedBoxOf, scale });
399
+ const sheetOut = (0, path_1.resolve)(target, (_u = args.values['--out']) !== null && _u !== void 0 ? _u : `${(0, paths_1.workRootOf)(target)}/shots/${product}-${part.replace('/', '-')}.png`);
400
+ const crops = cropChanged
401
+ ? yield (0, exports.changedCropsIn)({ plan, sheet, mergedIndex, boxOf: shooter.changedBoxesOf, scale })
402
+ : [];
403
+ if (cropChanged && crops.length === 0) {
404
+ console.log('crop changed: no variant changes a pixel of the merged part, so the full frame is drawn');
405
+ }
406
+ const takes = crops.length > 0
407
+ ? crops.map((crop, index) => ({
408
+ crop,
409
+ out: crops.length === 1 ? sheetOut : sheetOut.replace(/(\.png)?$/u, `-area-${index + 1}.png`),
410
+ }))
411
+ : [{ crop: null, out: sheetOut }];
412
+ (0, fs_1.mkdirSync)((0, path_1.dirname)(sheetOut), { recursive: true });
413
+ for (const [index, { crop, out }] of takes.entries()) {
397
414
  if (crop) {
398
415
  params.set('clip', `${crop.x},${crop.y},${crop.width},${crop.height}`);
399
- console.log(`crop ${crop.x},${crop.y},${crop.width},${crop.height} (changed bounds)`);
416
+ console.log(`crop ${crop.x},${crop.y},${crop.width},${crop.height} (changed area ${index + 1} of ${takes.length})`);
400
417
  sheet = yield shootAll();
401
418
  }
402
- else {
403
- console.log('crop changed: no variant changes a pixel of the merged part, so the full frame is drawn');
419
+ const mergedStates = new Set((_v = plan[mergedIndex]) === null || _v === void 0 ? void 0 : _v.flatMap((cell) => (cell.absent ? [] : [cell.address.state])));
420
+ const props = [];
421
+ for (const row of diffProps ? plan : []) {
422
+ const cells = [];
423
+ for (const { label, address } of row) {
424
+ cells.push(address.sketch && mergedStates.has(address.state)
425
+ ? yield shoot({ label, address: Object.assign(Object.assign({}, address), { sketch: null, props: address.sketch }) })
426
+ : { label, note: '' });
427
+ }
428
+ props.push(cells);
404
429
  }
405
- }
406
- const mergedStates = new Set((_u = plan[mergedIndex]) === null || _u === void 0 ? void 0 : _u.flatMap((cell) => (cell.absent ? [] : [cell.address.state])));
407
- const props = [];
408
- for (const row of diffProps ? plan : []) {
409
- const cells = [];
410
- for (const { label, address } of row) {
411
- cells.push(address.sketch && mergedStates.has(address.state)
412
- ? yield shoot({ label, address: Object.assign(Object.assign({}, address), { sketch: null, props: address.sketch }) })
413
- : { label, note: '' });
430
+ if (sheet.every((row) => row.length === 0)) {
431
+ console.error(`design-explore: ${part} has no state to draw`);
432
+ return 1;
414
433
  }
415
- props.push(cells);
434
+ const shown = (0, exports.withDiffRows)({
435
+ rows,
436
+ plan,
437
+ sheet,
438
+ props: diffProps ? props : undefined,
439
+ grids: rows.map((axis) => (states ? grids.get(axis) : undefined)),
440
+ });
441
+ const { png, diffs } = yield queue.run((browser) => (0, contact_sheet_1.contactSheetOf)({ browser, rows: shown }));
442
+ (0, fs_1.writeFileSync)(out, png);
443
+ for (const line of (0, exports.shotReportOf)({ out, diffs, sheet: shown }))
444
+ console.log(line);
416
445
  }
417
- if (sheet.every((row) => row.length === 0)) {
418
- console.error(`design-explore: ${part} has no state to draw`);
419
- return 1;
420
- }
421
- const shown = (0, exports.withDiffRows)({
422
- rows,
423
- plan,
424
- sheet,
425
- props: diffProps ? props : undefined,
426
- grids: rows.map((axis) => (states ? grids.get(axis) : undefined)),
427
- });
428
- const { png, diffs } = yield queue.run((browser) => (0, contact_sheet_1.contactSheetOf)({ browser, rows: shown }));
429
- const out = (0, path_1.resolve)(target, (_v = args.values['--out']) !== null && _v !== void 0 ? _v : `${(0, paths_1.workRootOf)(target)}/shots/${product}-${part.replace('/', '-')}.png`);
430
- (0, fs_1.mkdirSync)((0, path_1.dirname)(out), { recursive: true });
431
- (0, fs_1.writeFileSync)(out, png);
432
- for (const line of (0, exports.shotReportOf)({ out, diffs, sheet: shown }))
433
- console.log(line);
434
446
  return 0;
435
447
  }
436
448
  finally {