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

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 (592) hide show
  1. package/CHANGELOG.md +417 -0
  2. package/build-info.json +1 -0
  3. package/design/define-call.ts +99 -31
  4. package/design/define-part.ts +50 -3
  5. package/design/icon-sheet.ts +1 -1
  6. package/design/interaction-rows.ts +13 -6
  7. package/design/logo-sheet.ts +52 -0
  8. package/design/mark-part.ts +51 -1
  9. package/design/motion-drive.ts +215 -0
  10. package/design/motion-runtime.ts +14 -2
  11. package/design/motion-tokens.ts +177 -0
  12. package/design/token-sheet.ts +1 -1
  13. package/design/web/frame-fill.ts +4 -0
  14. package/design/web/frame-fit.ts +7 -0
  15. package/design/web/frame-scheme.ts +44 -0
  16. package/design/web/frame-surfaces.ts +294 -0
  17. package/design/web/frame.ts +162 -43
  18. package/design/web/surface-interactive.css +42 -0
  19. package/design/with-action.ts +29 -0
  20. package/package.json +3 -1
  21. package/src/index.js +9 -1
  22. package/src/index.js.map +1 -1
  23. package/src/lib/design/asset-shot.js +2 -2
  24. package/src/lib/design/asset-shot.js.map +1 -1
  25. package/src/lib/design/build-watch.d.ts +26 -0
  26. package/src/lib/design/build-watch.js +138 -0
  27. package/src/lib/design/build-watch.js.map +1 -0
  28. package/src/lib/design/calls-tsconfig.d.ts +2 -0
  29. package/src/lib/design/calls-tsconfig.js +10 -3
  30. package/src/lib/design/calls-tsconfig.js.map +1 -1
  31. package/src/lib/design/check.d.ts +1 -0
  32. package/src/lib/design/check.js +195 -13
  33. package/src/lib/design/check.js.map +1 -1
  34. package/src/lib/design/commit-hunks.d.ts +22 -0
  35. package/src/lib/design/commit-hunks.js +173 -0
  36. package/src/lib/design/commit-hunks.js.map +1 -0
  37. package/src/lib/design/contact-sheet.d.ts +9 -0
  38. package/src/lib/design/contact-sheet.js +38 -4
  39. package/src/lib/design/contact-sheet.js.map +1 -1
  40. package/src/lib/design/design-command.d.ts +2 -0
  41. package/src/lib/design/design-command.js +183 -15
  42. package/src/lib/design/design-command.js.map +1 -1
  43. package/src/lib/design/draw-ledger.d.ts +36 -0
  44. package/src/lib/design/draw-ledger.js +52 -0
  45. package/src/lib/design/draw-ledger.js.map +1 -0
  46. package/src/lib/design/force-interactions.d.ts +1 -1
  47. package/src/lib/design/force-interactions.js +4 -2
  48. package/src/lib/design/force-interactions.js.map +1 -1
  49. package/src/lib/design/inbox-command.js +9 -5
  50. package/src/lib/design/inbox-command.js.map +1 -1
  51. package/src/lib/design/mcp-command.d.ts +28 -3
  52. package/src/lib/design/mcp-command.js +134 -21
  53. package/src/lib/design/mcp-command.js.map +1 -1
  54. package/src/lib/design/merge-compare.d.ts +10 -2
  55. package/src/lib/design/merge-compare.js +63 -11
  56. package/src/lib/design/merge-compare.js.map +1 -1
  57. package/src/lib/design/motion-command.js +10 -16
  58. package/src/lib/design/motion-command.js.map +1 -1
  59. package/src/lib/design/motion-shot.js +3 -2
  60. package/src/lib/design/motion-shot.js.map +1 -1
  61. package/src/lib/design/new-call.js +19 -10
  62. package/src/lib/design/new-call.js.map +1 -1
  63. package/src/lib/design/part-marks.d.ts +3 -2
  64. package/src/lib/design/part-marks.js +13 -5
  65. package/src/lib/design/part-marks.js.map +1 -1
  66. package/src/lib/design/paths.d.ts +42 -0
  67. package/src/lib/design/paths.js +50 -1
  68. package/src/lib/design/paths.js.map +1 -1
  69. package/src/lib/design/product-command.d.ts +1 -1
  70. package/src/lib/design/product-command.js +12 -14
  71. package/src/lib/design/product-command.js.map +1 -1
  72. package/src/lib/design/ready-shots.d.ts +29 -3
  73. package/src/lib/design/ready-shots.js +105 -5
  74. package/src/lib/design/ready-shots.js.map +1 -1
  75. package/src/lib/design/render-packages.d.ts +9 -17
  76. package/src/lib/design/render-packages.js +25 -63
  77. package/src/lib/design/render-packages.js.map +1 -1
  78. package/src/lib/design/render-worker.js +2 -3
  79. package/src/lib/design/render-worker.js.map +1 -1
  80. package/src/lib/design/render.d.ts +2 -0
  81. package/src/lib/design/render.js +32 -7
  82. package/src/lib/design/render.js.map +1 -1
  83. package/src/lib/design/serve.d.ts +23 -3
  84. package/src/lib/design/serve.js +288 -35
  85. package/src/lib/design/serve.js.map +1 -1
  86. package/src/lib/design/server-identity.d.ts +36 -0
  87. package/src/lib/design/server-identity.js +68 -0
  88. package/src/lib/design/server-identity.js.map +1 -0
  89. package/src/lib/design/settle-frames.d.ts +4 -0
  90. package/src/lib/design/settle-frames.js +22 -0
  91. package/src/lib/design/settle-frames.js.map +1 -0
  92. package/src/lib/design/shot-command.d.ts +30 -6
  93. package/src/lib/design/shot-command.js +144 -56
  94. package/src/lib/design/shot-command.js.map +1 -1
  95. package/src/lib/design/shot-store.d.ts +24 -0
  96. package/src/lib/design/shot-store.js +120 -0
  97. package/src/lib/design/shot-store.js.map +1 -0
  98. package/src/lib/design/shot.d.ts +71 -1
  99. package/src/lib/design/shot.js +253 -40
  100. package/src/lib/design/shot.js.map +1 -1
  101. package/src/lib/design/sketch-command.d.ts +6 -1
  102. package/src/lib/design/sketch-command.js +452 -136
  103. package/src/lib/design/sketch-command.js.map +1 -1
  104. package/src/lib/design/ssr-shims.d.ts +2 -0
  105. package/src/lib/design/ssr-shims.js +12 -1
  106. package/src/lib/design/ssr-shims.js.map +1 -1
  107. package/src/lib/design/stale-cli-dist.d.ts +11 -0
  108. package/src/lib/design/stale-cli-dist.js +56 -0
  109. package/src/lib/design/stale-cli-dist.js.map +1 -0
  110. package/src/lib/design/stamp.d.ts +18 -1
  111. package/src/lib/design/stamp.js +53 -7
  112. package/src/lib/design/stamp.js.map +1 -1
  113. package/src/lib/design/started-by-studio.d.ts +1 -0
  114. package/src/lib/design/started-by-studio.js +6 -0
  115. package/src/lib/design/started-by-studio.js.map +1 -0
  116. package/src/lib/design/studio-api.d.ts +35 -4
  117. package/src/lib/design/studio-api.js +312 -41
  118. package/src/lib/design/studio-api.js.map +1 -1
  119. package/src/lib/design/system/accept-command.d.ts +39 -5
  120. package/src/lib/design/system/accept-command.js +109 -25
  121. package/src/lib/design/system/accept-command.js.map +1 -1
  122. package/src/lib/design/system/accepted-pictures.d.ts +83 -0
  123. package/src/lib/design/system/accepted-pictures.js +324 -0
  124. package/src/lib/design/system/accepted-pictures.js.map +1 -0
  125. package/src/lib/design/system/action-lost.d.ts +59 -0
  126. package/src/lib/design/system/action-lost.js +120 -0
  127. package/src/lib/design/system/action-lost.js.map +1 -0
  128. package/src/lib/design/system/action-press.d.ts +23 -0
  129. package/src/lib/design/system/action-press.js +76 -0
  130. package/src/lib/design/system/action-press.js.map +1 -0
  131. package/src/lib/design/system/action-undeclared.d.ts +34 -0
  132. package/src/lib/design/system/action-undeclared.js +81 -0
  133. package/src/lib/design/system/action-undeclared.js.map +1 -0
  134. package/src/lib/design/system/actions-command.d.ts +101 -0
  135. package/src/lib/design/system/actions-command.js +695 -0
  136. package/src/lib/design/system/actions-command.js.map +1 -0
  137. package/src/lib/design/system/actions.d.ts +158 -0
  138. package/src/lib/design/system/actions.js +295 -0
  139. package/src/lib/design/system/actions.js.map +1 -0
  140. package/src/lib/design/system/app-files.d.ts +10 -0
  141. package/src/lib/design/system/app-files.js +159 -0
  142. package/src/lib/design/system/app-files.js.map +1 -0
  143. package/src/lib/design/system/bespoke-controls.d.ts +30 -0
  144. package/src/lib/design/system/bespoke-controls.js +147 -0
  145. package/src/lib/design/system/bespoke-controls.js.map +1 -0
  146. package/src/lib/design/system/build-ready-contract.d.ts +27 -0
  147. package/src/lib/design/system/build-ready-contract.js +12 -0
  148. package/src/lib/design/system/build-ready-contract.js.map +1 -0
  149. package/src/lib/design/system/check-rules.d.ts +1 -0
  150. package/src/lib/design/system/check-rules.js +82 -0
  151. package/src/lib/design/system/check-rules.js.map +1 -0
  152. package/src/lib/design/system/check-system.d.ts +62 -3
  153. package/src/lib/design/system/check-system.js +527 -34
  154. package/src/lib/design/system/check-system.js.map +1 -1
  155. package/src/lib/design/system/colour.d.ts +4 -1
  156. package/src/lib/design/system/colour.js +54 -2
  157. package/src/lib/design/system/colour.js.map +1 -1
  158. package/src/lib/design/system/comments/comment.d.ts +4 -1
  159. package/src/lib/design/system/comments/comment.js +13 -4
  160. package/src/lib/design/system/comments/comment.js.map +1 -1
  161. package/src/lib/design/system/comments/inbox.js +2 -2
  162. package/src/lib/design/system/comments/inbox.js.map +1 -1
  163. package/src/lib/design/system/compare-command.d.ts +119 -0
  164. package/src/lib/design/system/compare-command.js +558 -0
  165. package/src/lib/design/system/compare-command.js.map +1 -0
  166. package/src/lib/design/system/complete-command.js +7 -3
  167. package/src/lib/design/system/complete-command.js.map +1 -1
  168. package/src/lib/design/system/complete.d.ts +99 -3
  169. package/src/lib/design/system/complete.js +358 -88
  170. package/src/lib/design/system/complete.js.map +1 -1
  171. package/src/lib/design/system/component-outputs.d.ts +20 -0
  172. package/src/lib/design/system/component-outputs.js +86 -0
  173. package/src/lib/design/system/component-outputs.js.map +1 -0
  174. package/src/lib/design/system/contrast-check.d.ts +6 -1
  175. package/src/lib/design/system/contrast-check.js +179 -13
  176. package/src/lib/design/system/contrast-check.js.map +1 -1
  177. package/src/lib/design/system/demo-backdrop.d.ts +11 -0
  178. package/src/lib/design/system/demo-backdrop.js +41 -0
  179. package/src/lib/design/system/demo-backdrop.js.map +1 -0
  180. package/src/lib/design/system/design-hash.d.ts +31 -0
  181. package/src/lib/design/system/design-hash.js +73 -0
  182. package/src/lib/design/system/design-hash.js.map +1 -0
  183. package/src/lib/design/system/disabled-interaction.d.ts +8 -0
  184. package/src/lib/design/system/disabled-interaction.js +37 -0
  185. package/src/lib/design/system/disabled-interaction.js.map +1 -0
  186. package/src/lib/design/system/dom-command.d.ts +36 -0
  187. package/src/lib/design/system/dom-command.js +175 -0
  188. package/src/lib/design/system/dom-command.js.map +1 -0
  189. package/src/lib/design/system/drawn-open-points.d.ts +38 -0
  190. package/src/lib/design/system/drawn-open-points.js +94 -0
  191. package/src/lib/design/system/drawn-open-points.js.map +1 -0
  192. package/src/lib/design/system/dropped-props.d.ts +25 -0
  193. package/src/lib/design/system/dropped-props.js +159 -0
  194. package/src/lib/design/system/dropped-props.js.map +1 -0
  195. package/src/lib/design/system/embedded-actions.d.ts +21 -0
  196. package/src/lib/design/system/embedded-actions.js +37 -0
  197. package/src/lib/design/system/embedded-actions.js.map +1 -0
  198. package/src/lib/design/system/exceptions.js +2 -1
  199. package/src/lib/design/system/exceptions.js.map +1 -1
  200. package/src/lib/design/system/flows/flow.js +2 -1
  201. package/src/lib/design/system/flows/flow.js.map +1 -1
  202. package/src/lib/design/system/frozen-animations.d.ts +13 -0
  203. package/src/lib/design/system/frozen-animations.js +51 -0
  204. package/src/lib/design/system/frozen-animations.js.map +1 -0
  205. package/src/lib/design/system/go-batch.d.ts +24 -0
  206. package/src/lib/design/system/go-batch.js +110 -0
  207. package/src/lib/design/system/go-batch.js.map +1 -0
  208. package/src/lib/design/system/go-command.d.ts +4 -0
  209. package/src/lib/design/system/go-command.js +64 -0
  210. package/src/lib/design/system/go-command.js.map +1 -0
  211. package/src/lib/design/system/go-guard.d.ts +26 -0
  212. package/src/lib/design/system/go-guard.js +70 -0
  213. package/src/lib/design/system/go-guard.js.map +1 -0
  214. package/src/lib/design/system/go-step.d.ts +13 -0
  215. package/src/lib/design/system/go-step.js +84 -0
  216. package/src/lib/design/system/go-step.js.map +1 -0
  217. package/src/lib/design/system/handoff.js +2 -1
  218. package/src/lib/design/system/handoff.js.map +1 -1
  219. package/src/lib/design/system/harness-build-cache.d.ts +35 -0
  220. package/src/lib/design/system/harness-build-cache.js +175 -0
  221. package/src/lib/design/system/harness-build-cache.js.map +1 -0
  222. package/src/lib/design/system/harness-command.d.ts +7 -0
  223. package/src/lib/design/system/harness-command.js +51 -0
  224. package/src/lib/design/system/harness-command.js.map +1 -0
  225. package/src/lib/design/system/harness-config.d.ts +9 -0
  226. package/src/lib/design/system/harness-config.js +65 -0
  227. package/src/lib/design/system/harness-config.js.map +1 -0
  228. package/src/lib/design/system/harness-map.d.ts +44 -0
  229. package/src/lib/design/system/harness-map.js +126 -0
  230. package/src/lib/design/system/harness-map.js.map +1 -0
  231. package/src/lib/design/system/harness-samples.d.ts +20 -0
  232. package/src/lib/design/system/harness-samples.js +92 -0
  233. package/src/lib/design/system/harness-samples.js.map +1 -0
  234. package/src/lib/design/system/harness-server.d.ts +40 -0
  235. package/src/lib/design/system/harness-server.js +296 -0
  236. package/src/lib/design/system/harness-server.js.map +1 -0
  237. package/src/lib/design/system/imports.js +14 -1
  238. package/src/lib/design/system/imports.js.map +1 -1
  239. package/src/lib/design/system/in-order-at-once.d.ts +6 -0
  240. package/src/lib/design/system/in-order-at-once.js +28 -0
  241. package/src/lib/design/system/in-order-at-once.js.map +1 -0
  242. package/src/lib/design/system/inventory-approval.js +2 -1
  243. package/src/lib/design/system/inventory-approval.js.map +1 -1
  244. package/src/lib/design/system/inventory.d.ts +13 -4
  245. package/src/lib/design/system/inventory.js +36 -7
  246. package/src/lib/design/system/inventory.js.map +1 -1
  247. package/src/lib/design/system/list-system.d.ts +8 -1
  248. package/src/lib/design/system/list-system.js +13 -3
  249. package/src/lib/design/system/list-system.js.map +1 -1
  250. package/src/lib/design/system/live-actions.d.ts +121 -0
  251. package/src/lib/design/system/live-actions.js +665 -0
  252. package/src/lib/design/system/live-actions.js.map +1 -0
  253. package/src/lib/design/system/live-compare.d.ts +136 -0
  254. package/src/lib/design/system/live-compare.js +441 -0
  255. package/src/lib/design/system/live-compare.js.map +1 -0
  256. package/src/lib/design/system/live-uncovered.d.ts +40 -0
  257. package/src/lib/design/system/live-uncovered.js +123 -0
  258. package/src/lib/design/system/live-uncovered.js.map +1 -0
  259. package/src/lib/design/system/nested-scroll.d.ts +7 -0
  260. package/src/lib/design/system/nested-scroll.js +25 -0
  261. package/src/lib/design/system/nested-scroll.js.map +1 -0
  262. package/src/lib/design/system/notes/note.js +2 -1
  263. package/src/lib/design/system/notes/note.js.map +1 -1
  264. package/src/lib/design/system/occluded.d.ts +13 -0
  265. package/src/lib/design/system/occluded.js +111 -0
  266. package/src/lib/design/system/occluded.js.map +1 -0
  267. package/src/lib/design/system/open-points.d.ts +119 -0
  268. package/src/lib/design/system/open-points.js +185 -0
  269. package/src/lib/design/system/open-points.js.map +1 -0
  270. package/src/lib/design/system/part-build-ready.d.ts +39 -0
  271. package/src/lib/design/system/part-build-ready.js +107 -0
  272. package/src/lib/design/system/part-build-ready.js.map +1 -0
  273. package/src/lib/design/system/part-command.js +2 -9
  274. package/src/lib/design/system/part-command.js.map +1 -1
  275. package/src/lib/design/system/part-compare.d.ts +123 -0
  276. package/src/lib/design/system/part-compare.js +396 -0
  277. package/src/lib/design/system/part-compare.js.map +1 -0
  278. package/src/lib/design/system/part-go.d.ts +70 -0
  279. package/src/lib/design/system/part-go.js +94 -0
  280. package/src/lib/design/system/part-go.js.map +1 -0
  281. package/src/lib/design/system/part-ready.d.ts +90 -0
  282. package/src/lib/design/system/part-ready.js +172 -0
  283. package/src/lib/design/system/part-ready.js.map +1 -0
  284. package/src/lib/design/system/part-task.d.ts +147 -0
  285. package/src/lib/design/system/part-task.js +285 -0
  286. package/src/lib/design/system/part-task.js.map +1 -0
  287. package/src/lib/design/system/pointer-focus.d.ts +81 -0
  288. package/src/lib/design/system/pointer-focus.js +152 -0
  289. package/src/lib/design/system/pointer-focus.js.map +1 -0
  290. package/src/lib/design/system/prettier.d.ts +10 -0
  291. package/src/lib/design/system/prettier.js +36 -0
  292. package/src/lib/design/system/prettier.js.map +1 -0
  293. package/src/lib/design/system/reach.d.ts +12 -0
  294. package/src/lib/design/system/reach.js +186 -0
  295. package/src/lib/design/system/reach.js.map +1 -0
  296. package/src/lib/design/system/reachable-controls.d.ts +6 -0
  297. package/src/lib/design/system/reachable-controls.js +19 -0
  298. package/src/lib/design/system/reachable-controls.js.map +1 -0
  299. package/src/lib/design/system/reachable-files.d.ts +14 -0
  300. package/src/lib/design/system/reachable-files.js +101 -0
  301. package/src/lib/design/system/reachable-files.js.map +1 -0
  302. package/src/lib/design/system/reached-state.d.ts +23 -0
  303. package/src/lib/design/system/reached-state.js +53 -0
  304. package/src/lib/design/system/reached-state.js.map +1 -0
  305. package/src/lib/design/system/read-open-points.d.ts +33 -0
  306. package/src/lib/design/system/read-open-points.js +110 -0
  307. package/src/lib/design/system/read-open-points.js.map +1 -0
  308. package/src/lib/design/system/ready-command.d.ts +11 -0
  309. package/src/lib/design/system/ready-command.js +82 -0
  310. package/src/lib/design/system/ready-command.js.map +1 -0
  311. package/src/lib/design/system/render-check.d.ts +52 -0
  312. package/src/lib/design/system/render-check.js +479 -60
  313. package/src/lib/design/system/render-check.js.map +1 -1
  314. package/src/lib/design/system/resolve-product.d.ts +2 -1
  315. package/src/lib/design/system/resolve-product.js +25 -3
  316. package/src/lib/design/system/resolve-product.js.map +1 -1
  317. package/src/lib/design/system/rules/app-spec.d.ts +30 -0
  318. package/src/lib/design/system/rules/app-spec.js +87 -0
  319. package/src/lib/design/system/rules/app-spec.js.map +1 -0
  320. package/src/lib/design/system/rules/canonical-class.d.ts +2 -0
  321. package/src/lib/design/system/rules/canonical-class.js +36 -110
  322. package/src/lib/design/system/rules/canonical-class.js.map +1 -1
  323. package/src/lib/design/system/rules/capability-place.d.ts +44 -0
  324. package/src/lib/design/system/rules/capability-place.js +116 -0
  325. package/src/lib/design/system/rules/capability-place.js.map +1 -0
  326. package/src/lib/design/system/rules/denied-class.d.ts +9 -0
  327. package/src/lib/design/system/rules/denied-class.js +121 -0
  328. package/src/lib/design/system/rules/denied-class.js.map +1 -0
  329. package/src/lib/design/system/rules/exemptions.d.ts +18 -0
  330. package/src/lib/design/system/rules/exemptions.js +18 -0
  331. package/src/lib/design/system/rules/exemptions.js.map +1 -0
  332. package/src/lib/design/system/rules/flow.js +1 -1
  333. package/src/lib/design/system/rules/flow.js.map +1 -1
  334. package/src/lib/design/system/rules/glued-interpolation.d.ts +8 -0
  335. package/src/lib/design/system/rules/glued-interpolation.js +61 -0
  336. package/src/lib/design/system/rules/glued-interpolation.js.map +1 -0
  337. package/src/lib/design/system/rules/hard-coded-colour.js +2 -1
  338. package/src/lib/design/system/rules/hard-coded-colour.js.map +1 -1
  339. package/src/lib/design/system/rules/implemented-components.d.ts +22 -0
  340. package/src/lib/design/system/rules/implemented-components.js +45 -0
  341. package/src/lib/design/system/rules/implemented-components.js.map +1 -0
  342. package/src/lib/design/system/rules/implements.d.ts +8 -0
  343. package/src/lib/design/system/rules/implements.js +48 -0
  344. package/src/lib/design/system/rules/implements.js.map +1 -0
  345. package/src/lib/design/system/rules/inline-svg.js +4 -1
  346. package/src/lib/design/system/rules/inline-svg.js.map +1 -1
  347. package/src/lib/design/system/rules/inline-ui-in-page-open.d.ts +13 -0
  348. package/src/lib/design/system/rules/inline-ui-in-page-open.js +5 -0
  349. package/src/lib/design/system/rules/inline-ui-in-page-open.js.map +1 -0
  350. package/src/lib/design/system/rules/inline-ui-in-page.d.ts +18 -0
  351. package/src/lib/design/system/rules/inline-ui-in-page.js +123 -0
  352. package/src/lib/design/system/rules/inline-ui-in-page.js.map +1 -0
  353. package/src/lib/design/system/rules/inline-ui.d.ts +16 -0
  354. package/src/lib/design/system/rules/inline-ui.js +100 -0
  355. package/src/lib/design/system/rules/inline-ui.js.map +1 -0
  356. package/src/lib/design/system/rules/motion.d.ts +2 -0
  357. package/src/lib/design/system/rules/motion.js +35 -2
  358. package/src/lib/design/system/rules/motion.js.map +1 -1
  359. package/src/lib/design/system/rules/native-title.d.ts +7 -0
  360. package/src/lib/design/system/rules/native-title.js +64 -0
  361. package/src/lib/design/system/rules/native-title.js.map +1 -0
  362. package/src/lib/design/system/rules/option-values.d.ts +15 -0
  363. package/src/lib/design/system/rules/option-values.js +145 -0
  364. package/src/lib/design/system/rules/option-values.js.map +1 -0
  365. package/src/lib/design/system/rules/orphan-endpoint-known.d.ts +12 -0
  366. package/src/lib/design/system/rules/orphan-endpoint-known.js +20 -0
  367. package/src/lib/design/system/rules/orphan-endpoint-known.js.map +1 -0
  368. package/src/lib/design/system/rules/orphan-endpoint.d.ts +23 -0
  369. package/src/lib/design/system/rules/orphan-endpoint.js +166 -0
  370. package/src/lib/design/system/rules/orphan-endpoint.js.map +1 -0
  371. package/src/lib/design/system/rules/part-rewrite.d.ts +13 -0
  372. package/src/lib/design/system/rules/part-rewrite.js +125 -0
  373. package/src/lib/design/system/rules/part-rewrite.js.map +1 -0
  374. package/src/lib/design/system/rules/sample-default-known.d.ts +5 -0
  375. package/src/lib/design/system/rules/sample-default-known.js +17 -0
  376. package/src/lib/design/system/rules/sample-default-known.js.map +1 -0
  377. package/src/lib/design/system/rules/sample-default.d.ts +22 -0
  378. package/src/lib/design/system/rules/sample-default.js +92 -0
  379. package/src/lib/design/system/rules/sample-default.js.map +1 -0
  380. package/src/lib/design/system/rules/stale-replace.js +45 -3
  381. package/src/lib/design/system/rules/stale-replace.js.map +1 -1
  382. package/src/lib/design/system/rules/state-in-component.d.ts +16 -0
  383. package/src/lib/design/system/rules/state-in-component.js +101 -0
  384. package/src/lib/design/system/rules/state-in-component.js.map +1 -0
  385. package/src/lib/design/system/rules/tailwind-classes.d.ts +51 -0
  386. package/src/lib/design/system/rules/tailwind-classes.js +232 -0
  387. package/src/lib/design/system/rules/tailwind-classes.js.map +1 -0
  388. package/src/lib/design/system/rules/top-level-await.d.ts +9 -0
  389. package/src/lib/design/system/rules/top-level-await.js +62 -0
  390. package/src/lib/design/system/rules/top-level-await.js.map +1 -0
  391. package/src/lib/design/system/rules/unbound-input-known.d.ts +5 -0
  392. package/src/lib/design/system/rules/unbound-input-known.js +47 -0
  393. package/src/lib/design/system/rules/unbound-input-known.js.map +1 -0
  394. package/src/lib/design/system/rules/unbound-input.d.ts +22 -0
  395. package/src/lib/design/system/rules/unbound-input.js +61 -0
  396. package/src/lib/design/system/rules/unbound-input.js.map +1 -0
  397. package/src/lib/design/system/rules/uncovered-region.d.ts +13 -0
  398. package/src/lib/design/system/rules/uncovered-region.js +36 -0
  399. package/src/lib/design/system/rules/uncovered-region.js.map +1 -0
  400. package/src/lib/design/system/rules/undefined-class.d.ts +9 -0
  401. package/src/lib/design/system/rules/undefined-class.js +32 -0
  402. package/src/lib/design/system/rules/undefined-class.js.map +1 -0
  403. package/src/lib/design/system/rules/undefined-token.d.ts +1 -1
  404. package/src/lib/design/system/rules/undefined-token.js +7 -61
  405. package/src/lib/design/system/rules/undefined-token.js.map +1 -1
  406. package/src/lib/design/system/rules/utility-css.d.ts +2 -1
  407. package/src/lib/design/system/rules/utility-css.js +29 -14
  408. package/src/lib/design/system/rules/utility-css.js.map +1 -1
  409. package/src/lib/design/system/rules/view-coverage.d.ts +8 -0
  410. package/src/lib/design/system/rules/view-coverage.js +51 -0
  411. package/src/lib/design/system/rules/view-coverage.js.map +1 -0
  412. package/src/lib/design/system/rules/visible-change.d.ts +20 -0
  413. package/src/lib/design/system/rules/visible-change.js +48 -0
  414. package/src/lib/design/system/rules/visible-change.js.map +1 -0
  415. package/src/lib/design/system/sdk-errors.d.ts +14 -0
  416. package/src/lib/design/system/sdk-errors.js +38 -0
  417. package/src/lib/design/system/sdk-errors.js.map +1 -0
  418. package/src/lib/design/system/see-through.d.ts +12 -0
  419. package/src/lib/design/system/see-through.js +112 -0
  420. package/src/lib/design/system/see-through.js.map +1 -0
  421. package/src/lib/design/system/settled-panes.d.ts +18 -0
  422. package/src/lib/design/system/settled-panes.js +70 -0
  423. package/src/lib/design/system/settled-panes.js.map +1 -0
  424. package/src/lib/design/system/sketch/after-merge.d.ts +11 -0
  425. package/src/lib/design/system/sketch/after-merge.js +51 -0
  426. package/src/lib/design/system/sketch/after-merge.js.map +1 -0
  427. package/src/lib/design/system/sketch/aktuell-placeholders.d.ts +30 -0
  428. package/src/lib/design/system/sketch/aktuell-placeholders.js +87 -0
  429. package/src/lib/design/system/sketch/aktuell-placeholders.js.map +1 -0
  430. package/src/lib/design/system/sketch/baseline.d.ts +29 -2
  431. package/src/lib/design/system/sketch/baseline.js +33 -9
  432. package/src/lib/design/system/sketch/baseline.js.map +1 -1
  433. package/src/lib/design/system/sketch/check-sketches.d.ts +11 -0
  434. package/src/lib/design/system/sketch/check-sketches.js +54 -6
  435. package/src/lib/design/system/sketch/check-sketches.js.map +1 -1
  436. package/src/lib/design/system/sketch/cli-args.d.ts +12 -2
  437. package/src/lib/design/system/sketch/cli-args.js +18 -3
  438. package/src/lib/design/system/sketch/cli-args.js.map +1 -1
  439. package/src/lib/design/system/sketch/edit-sketch.d.ts +21 -0
  440. package/src/lib/design/system/sketch/edit-sketch.js +117 -0
  441. package/src/lib/design/system/sketch/edit-sketch.js.map +1 -0
  442. package/src/lib/design/system/sketch/frame-budget.d.ts +24 -0
  443. package/src/lib/design/system/sketch/frame-budget.js +23 -0
  444. package/src/lib/design/system/sketch/frame-budget.js.map +1 -0
  445. package/src/lib/design/system/sketch/identical-renders.d.ts +31 -0
  446. package/src/lib/design/system/sketch/identical-renders.js +137 -0
  447. package/src/lib/design/system/sketch/identical-renders.js.map +1 -0
  448. package/src/lib/design/system/sketch/merge-shared.d.ts +2 -0
  449. package/src/lib/design/system/sketch/merge-shared.js +7 -10
  450. package/src/lib/design/system/sketch/merge-shared.js.map +1 -1
  451. package/src/lib/design/system/sketch/merge-step.d.ts +35 -0
  452. package/src/lib/design/system/sketch/merge-step.js +98 -0
  453. package/src/lib/design/system/sketch/merge-step.js.map +1 -0
  454. package/src/lib/design/system/sketch/merge.d.ts +10 -3
  455. package/src/lib/design/system/sketch/merge.js +122 -17
  456. package/src/lib/design/system/sketch/merge.js.map +1 -1
  457. package/src/lib/design/system/sketch/merged-layout.d.ts +17 -0
  458. package/src/lib/design/system/sketch/merged-layout.js +57 -0
  459. package/src/lib/design/system/sketch/merged-layout.js.map +1 -0
  460. package/src/lib/design/system/sketch/merged-parts.d.ts +41 -11
  461. package/src/lib/design/system/sketch/merged-parts.js +113 -50
  462. package/src/lib/design/system/sketch/merged-parts.js.map +1 -1
  463. package/src/lib/design/system/sketch/no-visible-change.d.ts +10 -0
  464. package/src/lib/design/system/sketch/no-visible-change.js +16 -6
  465. package/src/lib/design/system/sketch/no-visible-change.js.map +1 -1
  466. package/src/lib/design/system/sketch/part-definition.d.ts +56 -0
  467. package/src/lib/design/system/sketch/part-definition.js +129 -13
  468. package/src/lib/design/system/sketch/part-definition.js.map +1 -1
  469. package/src/lib/design/system/sketch/rebase-port.d.ts +24 -0
  470. package/src/lib/design/system/sketch/rebase-port.js +170 -0
  471. package/src/lib/design/system/sketch/rebase-port.js.map +1 -0
  472. package/src/lib/design/system/sketch/sample-mark-drift.d.ts +33 -0
  473. package/src/lib/design/system/sketch/sample-mark-drift.js +88 -0
  474. package/src/lib/design/system/sketch/sample-mark-drift.js.map +1 -0
  475. package/src/lib/design/system/sketch/sketch-check-worker.d.ts +1 -0
  476. package/src/lib/design/system/sketch/sketch-check-worker.js +27 -0
  477. package/src/lib/design/system/sketch/sketch-check-worker.js.map +1 -0
  478. package/src/lib/design/system/sketch/sketch-checker.d.ts +27 -0
  479. package/src/lib/design/system/sketch/sketch-checker.js +99 -0
  480. package/src/lib/design/system/sketch/sketch-checker.js.map +1 -0
  481. package/src/lib/design/system/sketch/sketch.d.ts +78 -2
  482. package/src/lib/design/system/sketch/sketch.js +247 -54
  483. package/src/lib/design/system/sketch/sketch.js.map +1 -1
  484. package/src/lib/design/system/sketch/stale-base.d.ts +22 -0
  485. package/src/lib/design/system/sketch/stale-base.js +56 -0
  486. package/src/lib/design/system/sketch/stale-base.js.map +1 -0
  487. package/src/lib/design/system/sketch/unchanged-states.d.ts +36 -1
  488. package/src/lib/design/system/sketch/unchanged-states.js +60 -17
  489. package/src/lib/design/system/sketch/unchanged-states.js.map +1 -1
  490. package/src/lib/design/system/sketch/unused-closure.js +26 -4
  491. package/src/lib/design/system/sketch/unused-closure.js.map +1 -1
  492. package/src/lib/design/system/sketch/unused-files.d.ts +1 -1
  493. package/src/lib/design/system/sketch/unused-files.js +6 -3
  494. package/src/lib/design/system/sketch/unused-files.js.map +1 -1
  495. package/src/lib/design/system/sketch/viewed-shots.d.ts +24 -0
  496. package/src/lib/design/system/sketch/viewed-shots.js +61 -0
  497. package/src/lib/design/system/sketch/viewed-shots.js.map +1 -0
  498. package/src/lib/design/system/slow-checks.d.ts +40 -0
  499. package/src/lib/design/system/slow-checks.js +197 -0
  500. package/src/lib/design/system/slow-checks.js.map +1 -0
  501. package/src/lib/design/system/slow-run.d.ts +57 -0
  502. package/src/lib/design/system/slow-run.js +253 -0
  503. package/src/lib/design/system/slow-run.js.map +1 -0
  504. package/src/lib/design/system/stale-design-mocks.d.ts +20 -0
  505. package/src/lib/design/system/stale-design-mocks.js +59 -0
  506. package/src/lib/design/system/stale-design-mocks.js.map +1 -0
  507. package/src/lib/design/system/stale-dist.d.ts +25 -0
  508. package/src/lib/design/system/stale-dist.js +91 -0
  509. package/src/lib/design/system/stale-dist.js.map +1 -0
  510. package/src/lib/design/system/stale-parts.d.ts +30 -0
  511. package/src/lib/design/system/stale-parts.js +106 -0
  512. package/src/lib/design/system/stale-parts.js.map +1 -0
  513. package/src/lib/design/system/surface-nesting.d.ts +11 -0
  514. package/src/lib/design/system/surface-nesting.js +86 -0
  515. package/src/lib/design/system/surface-nesting.js.map +1 -0
  516. package/src/lib/design/system/system-command.js +8 -6
  517. package/src/lib/design/system/system-command.js.map +1 -1
  518. package/src/lib/design/system/system-modules.d.ts +16 -1
  519. package/src/lib/design/system/system-modules.js +18 -2
  520. package/src/lib/design/system/system-modules.js.map +1 -1
  521. package/src/lib/design/system/system-tsconfig.js +2 -2
  522. package/src/lib/design/system/system-tsconfig.js.map +1 -1
  523. package/src/lib/design/system/task-command.d.ts +51 -0
  524. package/src/lib/design/system/task-command.js +233 -0
  525. package/src/lib/design/system/task-command.js.map +1 -0
  526. package/src/lib/design/system/theming-text.d.ts +2 -0
  527. package/src/lib/design/system/theming-text.js +6 -0
  528. package/src/lib/design/system/theming-text.js.map +1 -0
  529. package/src/lib/design/system/tom-confirm.d.ts +40 -0
  530. package/src/lib/design/system/tom-confirm.js +55 -0
  531. package/src/lib/design/system/tom-confirm.js.map +1 -0
  532. package/src/lib/design/system/touched-parts.d.ts +16 -0
  533. package/src/lib/design/system/touched-parts.js +122 -0
  534. package/src/lib/design/system/touched-parts.js.map +1 -0
  535. package/src/lib/design/system/ts-source.d.ts +5 -0
  536. package/src/lib/design/system/ts-source.js +35 -4
  537. package/src/lib/design/system/ts-source.js.map +1 -1
  538. package/src/lib/design/system/unchanged-rows.d.ts +15 -0
  539. package/src/lib/design/system/unchanged-rows.js +134 -0
  540. package/src/lib/design/system/unchanged-rows.js.map +1 -0
  541. package/src/lib/design/system/uncommitted-decisions.d.ts +6 -0
  542. package/src/lib/design/system/uncommitted-decisions.js +38 -0
  543. package/src/lib/design/system/uncommitted-decisions.js.map +1 -0
  544. package/src/lib/design/system/uncovered-regions.d.ts +61 -0
  545. package/src/lib/design/system/uncovered-regions.js +171 -0
  546. package/src/lib/design/system/uncovered-regions.js.map +1 -0
  547. package/src/lib/design/system/unused-base-parts.d.ts +7 -0
  548. package/src/lib/design/system/unused-base-parts.js +76 -0
  549. package/src/lib/design/system/unused-base-parts.js.map +1 -0
  550. package/src/lib/design/system/visible-change-command.d.ts +48 -0
  551. package/src/lib/design/system/visible-change-command.js +308 -0
  552. package/src/lib/design/system/visible-change-command.js.map +1 -0
  553. package/src/lib/design/system/visible-change-parts.d.ts +28 -0
  554. package/src/lib/design/system/visible-change-parts.js +96 -0
  555. package/src/lib/design/system/visible-change-parts.js.map +1 -0
  556. package/src/lib/design/system/visible-change.d.ts +82 -0
  557. package/src/lib/design/system/visible-change.js +149 -0
  558. package/src/lib/design/system/visible-change.js.map +1 -0
  559. package/src/lib/design/thumb.d.ts +50 -6
  560. package/src/lib/design/thumb.js +154 -54
  561. package/src/lib/design/thumb.js.map +1 -1
  562. package/src/lib/design/typecheck.d.ts +1 -1
  563. package/src/lib/design/typecheck.js +3 -3
  564. package/src/lib/design/typecheck.js.map +1 -1
  565. package/src/lib/design/unstable-cells.d.ts +23 -0
  566. package/src/lib/design/unstable-cells.js +40 -0
  567. package/src/lib/design/unstable-cells.js.map +1 -0
  568. package/src/lib/design/variant-diff.js +1 -1
  569. package/src/lib/design/variant-diff.js.map +1 -1
  570. package/src/lib/design/wait.d.ts +15 -0
  571. package/src/lib/design/wait.js +30 -0
  572. package/src/lib/design/wait.js.map +1 -0
  573. package/src/lib/json-file.d.ts +11 -0
  574. package/src/lib/json-file.js +21 -0
  575. package/src/lib/json-file.js.map +1 -0
  576. package/src/lib/source-hash.d.ts +7 -0
  577. package/src/lib/source-hash.js +62 -0
  578. package/src/lib/source-hash.js.map +1 -0
  579. package/src/lib/update/agent-setup.js +2 -1
  580. package/src/lib/update/agent-setup.js.map +1 -1
  581. package/src/lib/update/migration-manifest.d.ts +12 -0
  582. package/src/lib/update/migration-manifest.js +13 -0
  583. package/src/lib/update/migration-manifest.js.map +1 -1
  584. package/src/lib/update/migration-record.js +2 -1
  585. package/src/lib/update/migration-record.js.map +1 -1
  586. package/src/lib/update/pending.js +2 -1
  587. package/src/lib/update/pending.js.map +1 -1
  588. package/src/lib/update/run-migrations.d.ts +3 -2
  589. package/src/lib/update/run-migrations.js +38 -5
  590. package/src/lib/update/run-migrations.js.map +1 -1
  591. package/src/lib/update/tasks.js +2 -1
  592. package/src/lib/update/tasks.js.map +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shot-store.js","sourceRoot":"","sources":["../../../../../libs/cli/src/lib/design/shot-store.ts"],"names":[],"mappings":";;;AAAA,mCAAoC;AACpC,2BAAmH;AACnH,+BAA4B;AAsB5B,MAAM,gBAAgB,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,CAAC;AAE3C,MAAM,aAAa,GAAG,KAAM,CAAC;AAE7B,MAAM,YAAY,GAAG,OAAO,CAAC;AAE7B,MAAM,OAAO,GAAG,CAAC,KAAc,EAAkB,EAAE;IACjD,MAAM,KAAK,GAAG,KAA8B,CAAC;IAE7C,OAAO,CACL,OAAO,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,GAAG,CAAA,KAAK,QAAQ;QAC9B,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ;QAC/B,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC;QAC3B,OAAO,KAAK,CAAC,GAAG,KAAK,QAAQ;QAC7B,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAC3B,CAAC;AACJ,CAAC,CAAC;AAEF;;;;GAIG;AACI,MAAM,eAAe,GAAG,CAAC,OAM/B,EAAa,EAAE;;IACd,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;IACjD,MAAM,KAAK,GAAG,MAAA,OAAO,CAAC,KAAK,mCAAI,gBAAgB,CAAC;IAChD,MAAM,MAAM,GAAG,IAAI,GAAG,EAA2C,CAAC;IAClE,IAAI,KAAK,GAA+B,IAAI,CAAC;IAC7C,IAAI,KAAK,GAAG,CAAC,CAAC;IAEd,MAAM,MAAM,GAAG,CAAC,GAAW,EAAE,EAAE,CAC7B,GAAG,IAAA,mBAAU,EAAC,MAAM,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,YAAY,EAAE,CAAC;IAE7F,MAAM,MAAM,GAAG,CAAC,IAAY,EAAE,EAAE;QAC9B,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,IAAA,aAAQ,EAAC,IAAI,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;YAC9C,MAAM,KAAK,GAAG,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YAC7D,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAE/B,IAAI,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,KAAK,MAAK,KAAK;gBAAE,OAAO,KAAK,CAAC,IAAI,CAAC;YAE9C,MAAM,IAAI,GAAG,IAAA,mBAAU,EAAC,MAAM,CAAC,CAAC,MAAM,CAAC,IAAA,iBAAY,EAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAEzE,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YAElC,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,WAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,OAAO,GAAG,GAAG,EAAE;QACnB,IAAI,KAAK;YAAE,OAAO,KAAK,CAAC;QAExB,KAAK,GAAG,IAAI,GAAG,EAAE,CAAC;QAClB,IAAA,cAAS,EAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAEpC,KAAK,MAAM,IAAI,IAAI,IAAA,gBAAW,EAAC,GAAG,CAAC,EAAE,CAAC;YACpC,MAAM,IAAI,GAAG,IAAA,aAAQ,EAAC,IAAA,WAAI,EAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;YAEvC,IAAI,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC;gBAAE,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;iBACvD,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,OAAO,GAAG,aAAa;gBAAE,IAAA,WAAM,EAAC,IAAA,WAAI,EAAC,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAC/F,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;IAEF,MAAM,KAAK,GAAG,CAAC,KAA0B,EAAE,EAAE;;QAC3C,IAAI,KAAK,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC;QAErE,IAAI,KAAK,IAAI,KAAK;YAAE,OAAO;QAE3B,MAAM,MAAM,GAAG,CAAC,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;aAC7B,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,eAAC,OAAA,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,MAAA,MAAA,IAAA,aAAQ,EAAC,IAAA,WAAI,EAAC,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC,0CAAE,OAAO,mCAAI,CAAC,EAAE,CAAC,CAAA,EAAA,CAAC;aACjG,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;QAE/B,KAAK,MAAM,EAAE,IAAI,EAAE,IAAI,MAAM,EAAE,CAAC;YAC9B,IAAI,KAAK,IAAI,KAAK;gBAAE,OAAO;YAE3B,KAAK,IAAI,MAAA,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,mCAAI,CAAC,CAAC;YAC9B,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACnB,IAAA,WAAM,EAAC,IAAA,WAAI,EAAC,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC,CAAC;IAEF,OAAO;QACL,IAAI,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE;YACrB,MAAM,IAAI,GAAG,IAAA,WAAI,EAAC,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;YAEpC,IAAI,CAAC;gBACH,MAAM,KAAK,GAAY,IAAI,CAAC,KAAK,CAAC,IAAA,iBAAY,EAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;gBAE9D,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,GAAG,IAAI,KAAK,CAAC,KAAK,KAAK,OAAO,CAAC,OAAO,CAAC;oBAAE,OAAO,IAAI,CAAC;gBAC1F,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC;oBAAE,OAAO,IAAI,CAAC;gBAE5E,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;gBAEvB,IAAA,eAAU,EAAC,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;gBAE3B,uBACE,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,QAAQ,CAAC,EACrC,KAAK,EAAE,KAAK,CAAC,KAAK,IACf,CAAC,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EACrE;YACJ,CAAC;YAAC,WAAM,CAAC;gBACP,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;QACD,KAAK,EAAE,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE;YACnC,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;YACzB,MAAM,IAAI,GAAG,IAAA,WAAI,EAAC,GAAG,EAAE,IAAI,IAAI,IAAI,OAAO,CAAC,GAAG,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC;YAEtE,IAAI,CAAC;gBACH,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;gBAEhC,IAAI,CAAC,KAAK;oBAAE,OAAO;gBAEnB,MAAM,KAAK,mBACT,GAAG,EACH,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC,EACvB,MAAM,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EACtE,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,EACnC,KAAK,EAAE,OAAO,CAAC,KAAK,IACjB,CAAC,OAAO,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CACpE,CAAC;gBACF,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;gBACnC,MAAM,KAAK,GAAG,OAAO,EAAE,CAAC;gBAExB,IAAA,kBAAa,EAAC,IAAI,EAAE,IAAI,CAAC,CAAC;gBAC1B,IAAA,eAAU,EAAC,IAAI,EAAE,IAAA,WAAI,EAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;gBAClC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;gBACzC,KAAK,CAAC,KAAK,CAAC,CAAC;YACf,CAAC;YAAC,WAAM,CAAC;gBACP,IAAA,WAAM,EAAC,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YAChC,CAAC;QACH,CAAC;QACD,IAAI,EAAE,CAAC,GAAG,EAAE,EAAE;YACZ,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;YAEzB,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,MAAM,CAAC,IAAI,CAAC,CAAC;YACpB,IAAA,WAAM,EAAC,IAAA,WAAI,EAAC,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAC3C,CAAC;KACF,CAAC;AACJ,CAAC,CAAC;AA9HW,QAAA,eAAe,mBA8H1B"}
@@ -4,10 +4,16 @@ import { chromiumOf } from './browser';
4
4
  import { ChangedBox } from './contact-sheet';
5
5
  import { DrawnPart, PartsChange } from './changed-parts';
6
6
  import { DesignPreset } from './paths';
7
+ import { DrawLedger } from './draw-ledger';
7
8
  import { SketchVariant, SystemModules } from './system/system-modules';
8
- import { ThumbMissingError } from './thumb';
9
+ import { createDrawQueue, ThumbMissingError } from './thumb';
9
10
  import { MotionMode, MotionPictures } from './motion-shot';
11
+ import { ShotStore } from './shot-store';
10
12
  export declare const SHOT_PATH = "/__design/shot";
13
+ /** Whether a `--scheme` value is absent or one the frame pins. */
14
+ export declare const isSchemeFlag: (value: string | undefined) => value is "light" | "dark" | undefined;
15
+ /** The frame params of the `--surface`, `--color`, `--scheme` and `--scale` flags of a shot command. */
16
+ export declare const drawParamsOf: (values: Record<string, string | undefined>) => URLSearchParams;
11
17
  /** The `x,y,width,height` crop of a picture in CSS pixels, `null` without one, `undefined` for a malformed one. */
12
18
  export declare const cropOf: (raw: string | null | undefined) => {
13
19
  x: number;
@@ -31,6 +37,10 @@ type GraphModule = {
31
37
  file?: string | null;
32
38
  importers: Set<GraphModule>;
33
39
  };
40
+ export type ImportingModule = {
41
+ file?: string | null;
42
+ importedModules: Set<ImportingModule>;
43
+ };
34
44
  /** An element a part render marked as its root, in CSS pixels from the top left of the picture. */
35
45
  export type PartMark = {
36
46
  parts: string[];
@@ -40,10 +50,28 @@ export type PartMark = {
40
50
  height: number;
41
51
  };
42
52
  /** One drawn PNG, the part roots in it, and the markup of the frame root. */
53
+ /** Where a shot response's picture came from: the disk store, the in-memory cache or a fresh draw. */
54
+ export type ShotSource = 'disk' | 'memory' | 'drawn';
55
+ export declare const TEXT_AMBIENT_PROPERTIES: readonly ["fontFamily", "fontSize", "fontWeight", "fontStyle", "lineHeight", "letterSpacing"];
56
+ /** The inherited text style the frame root hands to a part: font family, size, weight, style, line height and letter spacing. */
57
+ export type TextAmbient = Record<(typeof TEXT_AMBIENT_PROPERTIES)[number], string>;
43
58
  export type Picture = {
44
59
  png: Buffer;
45
60
  marks: PartMark[];
46
61
  markup?: string;
62
+ ambient?: TextAmbient;
63
+ };
64
+ /** A box in CSS pixels rounded to whole pixels, the clip of a fitted design picture and of the app shot compare diffs it with. */
65
+ export declare const pixelBoxOf: (box: {
66
+ x: number;
67
+ y: number;
68
+ width: number;
69
+ height: number;
70
+ }) => {
71
+ x: number;
72
+ y: number;
73
+ width: number;
74
+ height: number;
47
75
  };
48
76
  /** The files each stylesheet inlines through an `@import`, keyed by the stylesheet's file. */
49
77
  export type StylesheetImports = Map<string, Set<string>>;
@@ -54,6 +82,29 @@ export declare const stylesheetImportsPlugin: (imports: StylesheetImports) => Pl
54
82
  * stylesheet does not count as importing a file it only scans as a Tailwind source.
55
83
  */
56
84
  export declare const dependentIdsOf: (modules: Iterable<GraphModule>, imports?: StylesheetImports) => string[];
85
+ /**
86
+ * The files of the given modules and of every module they import, directly or not: the reverse of
87
+ * `dependentIdsOf`, so a Tailwind source a stylesheet only scans is not among them.
88
+ */
89
+ export declare const dependencyFilesOf: (modules: Iterable<ImportingModule>, imports?: StylesheetImports) => string[];
90
+ /**
91
+ * A frame script that empties the `slot()` regions the part `part` draws itself, not those of the parts it embeds.
92
+ * A region belongs to the innermost marked part around it that its markup was not passed into through props.
93
+ */
94
+ export declare const emptySlotsScriptOf: (part: string, fill?: string | null) => string;
95
+ /** Moves the elements a selector matches by `x` and `y` CSS pixels, as a canvas camera pans its content. */
96
+ export type Pan = {
97
+ selector: string;
98
+ x: number;
99
+ y: number;
100
+ };
101
+ /** A frame script that moves every element of `pan.selector` by the pan, on top of its own transform. */
102
+ export declare const panScriptOf: (pan: Pan) => string;
103
+ /** Paints the compare checkerboard on the page canvas, with its origin at the shot's top left corner. */
104
+ export declare const checkerScriptOf: (origin: {
105
+ x: number;
106
+ y: number;
107
+ }) => string;
57
108
  /** One state of a part as a frame draws it: at a product preset, at a container width, or fitted to its content. */
58
109
  export type PartAddress = {
59
110
  product: string;
@@ -64,6 +115,18 @@ export type PartAddress = {
64
115
  sketch: SketchVariant | null;
65
116
  interaction: string | null;
66
117
  props?: SketchVariant | null;
118
+ /** Fits the state to its content without the frame padding, as the app's harness host draws it. */
119
+ bare?: boolean;
120
+ /** Empties the `slot()` regions the part draws itself before the shot, as the app's harness host projects no content into them. */
121
+ emptySlots?: boolean;
122
+ /** The markup the emptied `slot()` regions get instead, as the live compare puts its fixed frame content there. */
123
+ slotFill?: string | null;
124
+ /** Props merged into every render of the named parts, as the live compare draws a page with the panel of its shell hidden. */
125
+ compose?: Record<string, Record<string, unknown>> | null;
126
+ /** Draws the part over the compare checkerboard instead of a transparent page, so a background shows in the picture. */
127
+ checker?: boolean;
128
+ /** Pans part of the picture before the shot, as the live compare moves the app's canvas camera. */
129
+ pan?: Pan | null;
67
130
  };
68
131
  /** The frame query, viewport and cache key that draw one state of a part, or why the part cannot be drawn. */
69
132
  export declare const partFrameOf: (options: PartAddress & {
@@ -74,6 +137,10 @@ export declare const partFrameOf: (options: PartAddress & {
74
137
  search: URLSearchParams;
75
138
  size: DesignPreset | null;
76
139
  clip: boolean;
140
+ emptySlots: string | null;
141
+ slotFill: string | null;
142
+ checker: boolean;
143
+ pan: Pan | null;
77
144
  };
78
145
  /**
79
146
  * Draws one state of a part at one preset, at one container width, or fitted to its content, or one
@@ -85,7 +152,10 @@ export declare const createPartShooter: (options: {
85
152
  base: string | (() => string);
86
153
  system: SystemModules;
87
154
  chromiumOf?: typeof chromiumOf;
155
+ ledger?: DrawLedger;
88
156
  statesOf?: (address: Pick<PartAddress, "product" | "part" | "sketch">) => Promise<string[] | null>;
157
+ store?: ShotStore;
158
+ queue?: ReturnType<typeof createDrawQueue>;
89
159
  }) => {
90
160
  middleware: (request: IncomingMessage, response: ServerResponse) => void;
91
161
  /**
@@ -9,13 +9,16 @@ 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.checkerScriptOf = exports.panScriptOf = exports.emptySlotsScriptOf = exports.dependencyFilesOf = exports.dependentIdsOf = exports.stylesheetImportsPlugin = exports.pixelBoxOf = exports.TEXT_AMBIENT_PROPERTIES = 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");
18
+ const viewed_shots_1 = require("./system/sketch/viewed-shots");
17
19
  const thumb_1 = require("./thumb");
18
20
  const motion_shot_1 = require("./motion-shot");
21
+ const settle_frames_1 = require("./settle-frames");
19
22
  const warm_pages_1 = require("./warm-pages");
20
23
  exports.SHOT_PATH = '/__design/shot';
21
24
  const BOX_CACHE_LIMIT = 500;
@@ -23,10 +26,41 @@ const isPositiveWhole = (pixels) => Number.isInteger(pixels) && pixels > 0;
23
26
  const VIEWPORT_HEIGHT = 800;
24
27
  const MAX_SCALE = 4;
25
28
  const scaleOf = (params) => { var _a; return Number((_a = params.get('scale')) !== null && _a !== void 0 ? _a : 1); };
29
+ const viewOf = (raw) => (raw !== null && isPositiveWhole(Number(raw)) ? Number(raw) : null);
30
+ const wantOf = (params, response) => {
31
+ const withdraws = new Set();
32
+ const rank = params.get('rank');
33
+ let hungUp = false;
34
+ response.once('close', () => {
35
+ hungUp = !response.writableFinished;
36
+ if (hungUp)
37
+ withdraws.forEach((withdraw) => withdraw());
38
+ });
39
+ return {
40
+ priority: params.get('priority') === 'low' ? 'low' : 'high',
41
+ view: viewOf(params.get('view')),
42
+ rank: rank === 'active' || rank === 'visible' ? rank : null,
43
+ onWithdraw: (withdraw) => (hungUp ? withdraw() : withdraws.add(withdraw)),
44
+ };
45
+ };
26
46
  const schemeOf = (params) => {
27
47
  const scheme = params.get('scheme');
28
48
  return scheme === 'dark' || scheme === 'light' ? scheme : null;
29
49
  };
50
+ /** Whether a `--scheme` value is absent or one the frame pins. */
51
+ const isSchemeFlag = (value) => value === undefined || value === 'light' || value === 'dark';
52
+ exports.isSchemeFlag = isSchemeFlag;
53
+ /** The frame params of the `--surface`, `--color`, `--scheme` and `--scale` flags of a shot command. */
54
+ const drawParamsOf = (values) => {
55
+ const params = new URLSearchParams();
56
+ for (const name of ['surface', 'color', 'scheme', 'scale']) {
57
+ const value = values[`--${name}`];
58
+ if (value)
59
+ params.set(name, value);
60
+ }
61
+ return params;
62
+ };
63
+ exports.drawParamsOf = drawParamsOf;
30
64
  const isScale = (scale) => Number.isInteger(scale) && scale >= 1 && scale <= MAX_SCALE;
31
65
  /** The `x,y,width,height` crop of a picture in CSS pixels, `null` without one, `undefined` for a malformed one. */
32
66
  const cropOf = (raw) => {
@@ -50,6 +84,28 @@ const viewportOf = (size) => {
50
84
  });
51
85
  };
52
86
  exports.viewportOf = viewportOf;
87
+ exports.TEXT_AMBIENT_PROPERTIES = [
88
+ 'fontFamily',
89
+ 'fontSize',
90
+ 'fontWeight',
91
+ 'fontStyle',
92
+ 'lineHeight',
93
+ 'letterSpacing',
94
+ ];
95
+ const AMBIENT_SCRIPT = `(() => {
96
+ const root = document.getElementById('root');
97
+ if (!root) return null;
98
+ const style = getComputedStyle(root);
99
+ return Object.fromEntries(${JSON.stringify(exports.TEXT_AMBIENT_PROPERTIES)}.map((name) => [name, style[name]]));
100
+ })()`;
101
+ /** A box in CSS pixels rounded to whole pixels, the clip of a fitted design picture and of the app shot compare diffs it with. */
102
+ const pixelBoxOf = (box) => ({
103
+ x: Math.round(box.x),
104
+ y: Math.round(box.y),
105
+ width: Math.round(box.width),
106
+ height: Math.round(box.height),
107
+ });
108
+ exports.pixelBoxOf = pixelBoxOf;
53
109
  const marksIn = (clip) => `(() => {
54
110
  const origin = ${clip} ? document.getElementById('root').getBoundingClientRect() : { left: -scrollX, top: -scrollY };
55
111
 
@@ -98,11 +154,88 @@ const dependentIdsOf = (modules, imports = new Map()) => {
98
154
  return [...seen].flatMap((module) => (module.id ? [module.id] : []));
99
155
  };
100
156
  exports.dependentIdsOf = dependentIdsOf;
157
+ /**
158
+ * The files of the given modules and of every module they import, directly or not: the reverse of
159
+ * `dependentIdsOf`, so a Tailwind source a stylesheet only scans is not among them.
160
+ */
161
+ const dependencyFilesOf = (modules, imports = new Map()) => {
162
+ const seen = new Set();
163
+ const open = [...modules];
164
+ for (let next = open.pop(); next; next = open.pop()) {
165
+ if (seen.has(next))
166
+ continue;
167
+ seen.add(next);
168
+ const importer = next;
169
+ open.push(...[...next.importedModules].filter((module) => !isTailwindSourceOf({ imports, module, importer })));
170
+ }
171
+ return [...seen].flatMap((module) => (module.file && (0, path_1.isAbsolute)(module.file) ? [module.file] : []));
172
+ };
173
+ exports.dependencyFilesOf = dependencyFilesOf;
174
+ /**
175
+ * A frame script that empties the `slot()` regions the part `part` draws itself, not those of the parts it embeds.
176
+ * A region belongs to the innermost marked part around it that its markup was not passed into through props.
177
+ */
178
+ const emptySlotsScriptOf = (part, fill = null) => `(() => {
179
+ const keysOf = (element, name) => (element.getAttribute(name) ?? '').split(' ').filter(Boolean);
180
+ const ownerOf = (slot) => {
181
+ let passed = keysOf(slot, 'data-et-slot');
182
+
183
+ for (let root = slot.closest('[data-et-part]'); root; root = root.parentElement?.closest('[data-et-part]') ?? null) {
184
+ const owner = keysOf(root, 'data-et-part').find((key) => !passed.includes(key));
185
+
186
+ if (owner) return owner;
187
+
188
+ passed = keysOf(root, 'data-et-slot');
189
+ }
190
+
191
+ return null;
192
+ };
193
+
194
+ document.querySelectorAll('[data-et-projected]').forEach((slot) => {
195
+ const owner = ownerOf(slot);
196
+
197
+ if (owner === null || owner === ${JSON.stringify(part)}) {
198
+ slot.replaceChildren();
199
+ ${fill === null ? '' : `slot.innerHTML = ${JSON.stringify(fill)};`}
200
+ }
201
+ });
202
+
203
+ return Promise.all([...document.images].map((image) => image.decode().catch(() => undefined)));
204
+ })()`;
205
+ exports.emptySlotsScriptOf = emptySlotsScriptOf;
206
+ const SHOT_OPTIONS = { type: 'png', fullPage: true, omitBackground: true, timeout: thumb_1.DRAW_TIMEOUT_MS };
207
+ const CHECKER_SQUARE_PX = 8;
208
+ /** A frame script that moves every element of `pan.selector` by the pan, on top of its own transform. */
209
+ const panScriptOf = (pan) => `(() => {
210
+ const elements = [...document.querySelectorAll(${JSON.stringify(pan.selector)})];
211
+
212
+ if (elements.length === 0) throw new Error(${JSON.stringify(`the picture has no ${pan.selector} to pan`)});
213
+
214
+ elements.forEach((element) => {
215
+ element.style.translate = '${pan.x}px ${pan.y}px';
216
+ });
217
+ })()`;
218
+ exports.panScriptOf = panScriptOf;
219
+ /** Paints the compare checkerboard on the page canvas, with its origin at the shot's top left corner. */
220
+ const checkerScriptOf = (origin) => `(() => {
221
+ const size = ${CHECKER_SQUARE_PX};
222
+ const style = document.documentElement.style;
223
+
224
+ style.setProperty(
225
+ 'background',
226
+ 'conic-gradient(rgb(150,150,150) 25%, rgb(110,110,110) 0 50%, rgb(150,150,150) 0 75%, rgb(110,110,110) 0) ' +
227
+ ${origin.x} + 'px ' + ${origin.y} + 'px / ' + size * 2 + 'px ' + size * 2 + 'px',
228
+ 'important',
229
+ );
230
+ document.body.style.setProperty('background', 'transparent', 'important');
231
+ })()`;
232
+ exports.checkerScriptOf = checkerScriptOf;
101
233
  /** The frame query, viewport and cache key that draw one state of a part, or why the part cannot be drawn. */
102
234
  const partFrameOf = (options) => {
103
235
  var _a, _b;
104
- const { system, product, part, state, preset, width, sketch, interaction, props } = options;
105
- const file = (_a = system.partOf({ product, part, sketch })) === null || _a === void 0 ? void 0 : _a.file;
236
+ const { system, product, part, state, preset, width, sketch, interaction, props, bare, emptySlots, slotFill, compose, checker, pan, } = options;
237
+ const drawn = sketch ? system.drawnOf(product, sketch) : null;
238
+ const file = drawn && 'sketchGone' in drawn ? undefined : (_a = system.partOf({ product, part, sketch })) === null || _a === void 0 ? void 0 : _a.file;
106
239
  const size = preset ? (_b = system.productOf(product)) === null || _b === void 0 ? void 0 : _b.presets[preset] : width ? { width } : null;
107
240
  if (!file)
108
241
  return new thumb_1.ThumbMissingError(sketch
@@ -123,13 +256,23 @@ const partFrameOf = (options) => {
123
256
  interaction,
124
257
  props === null || props === void 0 ? void 0 : props.target,
125
258
  props === null || props === void 0 ? void 0 : props.variant,
259
+ ...(bare ? ['bare'] : []),
260
+ ...(emptySlots ? ['empty-slots'] : []),
261
+ ...(emptySlots && slotFill ? ['slot-fill', (0, crypto_1.createHash)('sha1').update(slotFill).digest('hex')] : []),
262
+ ...(compose ? ['compose', JSON.stringify(compose)] : []),
263
+ ...(checker ? ['checker'] : []),
264
+ ...(pan ? ['pan', pan.selector, pan.x, pan.y] : []),
126
265
  ],
127
266
  drawn: { part: { product, part, sketch } },
128
- search: new URLSearchParams(Object.assign(Object.assign(Object.assign(Object.assign({ product,
267
+ search: new URLSearchParams(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({ product,
129
268
  part,
130
- state }, (size ? {} : { fit: '' })), (sketch ? { sketch: sketch.target, variant: sketch.variant } : {})), (interaction ? { interaction } : {})), (props ? { props: props.target, 'props-variant': props.variant } : {}))),
269
+ state }, (size ? {} : Object.assign({ fit: '' }, (bare ? { bare: '' } : {})))), (sketch ? { sketch: sketch.target, variant: sketch.variant } : {})), (interaction ? { interaction } : {})), (props ? { props: props.target, 'props-variant': props.variant } : {})), (compose ? { compose: JSON.stringify(compose) } : {}))),
131
270
  size: size !== null && size !== void 0 ? size : null,
132
271
  clip: !preset,
272
+ emptySlots: emptySlots ? part : null,
273
+ slotFill: emptySlots ? (slotFill !== null && slotFill !== void 0 ? slotFill : null) : null,
274
+ checker: checker !== null && checker !== void 0 ? checker : false,
275
+ pan: pan !== null && pan !== void 0 ? pan : null,
133
276
  };
134
277
  };
135
278
  exports.partFrameOf = partFrameOf;
@@ -139,9 +282,10 @@ exports.partFrameOf = partFrameOf;
139
282
  * and theme until a change redraws its part.
140
283
  */
141
284
  const createPartShooter = (options) => {
142
- const { system, statesOf } = options;
285
+ var _a;
286
+ const { system, statesOf, store } = options;
143
287
  const baseOf = () => (typeof options.base === 'function' ? options.base() : options.base);
144
- const drawQueue = (0, thumb_1.createDrawQueue)(options);
288
+ const drawQueue = (_a = options.queue) !== null && _a !== void 0 ? _a : (0, thumb_1.createDrawQueue)(options);
145
289
  const warmPages = (0, warm_pages_1.createWarmPages)();
146
290
  const cache = new Map();
147
291
  const motions = new Map();
@@ -150,10 +294,13 @@ const createPartShooter = (options) => {
150
294
  browser,
151
295
  context: Object.assign(Object.assign({ viewport: (0, exports.viewportOf)(frame.size) }, (frame.scale > 1 ? { deviceScaleFactor: frame.scale } : {})), (frame.scheme ? { colorScheme: frame.scheme } : {})),
152
296
  }, (page) => __awaiter(void 0, void 0, void 0, function* () {
153
- var _a, _b;
297
+ var _a, _b, _c, _d;
154
298
  yield (0, thumb_1.openFrame)(page, `${baseOf()}/frame.html?${frame.search}`);
155
- yield page.evaluate(thumb_1.settled);
156
- yield page.evaluate(thumb_1.finished);
299
+ yield (0, settle_frames_1.settleFrames)(page);
300
+ if (frame.emptySlots)
301
+ yield page.evaluate((0, exports.emptySlotsScriptOf)(frame.emptySlots, frame.slotFill));
302
+ if (frame.pan)
303
+ yield page.evaluate((0, exports.panScriptOf)(frame.pan));
157
304
  const overlay = page.locator('vite-error-overlay');
158
305
  if ((yield overlay.count()) > 0) {
159
306
  const message = yield overlay
@@ -164,28 +311,32 @@ const createPartShooter = (options) => {
164
311
  }
165
312
  const marks = yield page.evaluate(marksIn(frame.clip));
166
313
  const root = page.locator('#root');
314
+ const rootBox = frame.clip ? yield root.boundingBox() : null;
167
315
  if (frame.clip) {
168
- const box = yield root.boundingBox();
316
+ const box = rootBox;
169
317
  if (!box || box.width === 0 || box.height === 0)
170
318
  throw new thumb_1.ShotUnprocessableError('design-explore: part root has zero size - give an element that fills its container a min-height');
171
319
  }
172
- const origin = frame.crop && frame.clip ? yield root.boundingBox() : null;
320
+ const origin = frame.crop && frame.clip ? rootBox : null;
173
321
  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) });
174
- const png = yield (crop
175
- ? page.screenshot({ type: 'png', fullPage: true, clip: crop, timeout: thumb_1.DRAW_TIMEOUT_MS })
176
- : frame.clip
177
- ? root.screenshot({ type: 'png', timeout: thumb_1.DRAW_TIMEOUT_MS })
178
- : page.screenshot({ fullPage: true, type: 'png', timeout: thumb_1.DRAW_TIMEOUT_MS })).catch((error) => {
322
+ const shotOptions = frame.checker ? Object.assign(Object.assign({}, SHOT_OPTIONS), { omitBackground: false }) : SHOT_OPTIONS;
323
+ const clip = crop ? crop : rootBox ? (0, exports.pixelBoxOf)(rootBox) : null;
324
+ if (frame.checker)
325
+ yield page.evaluate((0, exports.checkerScriptOf)({ x: (_c = clip === null || clip === void 0 ? void 0 : clip.x) !== null && _c !== void 0 ? _c : 0, y: (_d = clip === null || clip === void 0 ? void 0 : clip.y) !== null && _d !== void 0 ? _d : 0 }));
326
+ const png = yield (clip ? page.screenshot(Object.assign(Object.assign({}, shotOptions), { clip })) : page.screenshot(shotOptions)).catch((error) => {
179
327
  const message = error instanceof Error ? error.message : String(error);
180
328
  if (error instanceof Error && error.name === 'TimeoutError')
181
329
  throw new thumb_1.ShotTimeoutError(`design-explore: the screenshot timed out after ${thumb_1.DRAW_TIMEOUT_MS} ms: ${message}`);
182
330
  throw new thumb_1.ShotUnprocessableError(`design-explore: the screenshot failed: ${message}`);
183
331
  });
184
332
  const failure = yield page.evaluate("document.documentElement.getAttribute('data-et-error')");
185
- if (typeof failure === 'string')
186
- throw new thumb_1.ShotFailedError(failure, png);
333
+ if (typeof failure === 'string') {
334
+ const missing = yield page.evaluate("document.documentElement.getAttribute('data-et-missing')");
335
+ throw typeof missing === 'string' ? new thumb_1.ThumbMissingError(failure) : new thumb_1.ShotFailedError(failure, png);
336
+ }
187
337
  const markup = yield page.evaluate("document.getElementById('root')?.innerHTML ?? null");
188
- return Object.assign({ png, marks: Array.isArray(marks) ? marks : [] }, (typeof markup === 'string' ? { markup } : {}));
338
+ const ambient = yield page.evaluate(AMBIENT_SCRIPT);
339
+ return Object.assign(Object.assign({ png, marks: Array.isArray(marks) ? marks : [] }, (typeof markup === 'string' ? { markup } : {})), (ambient && typeof ambient === 'object' ? { ambient: ambient } : {}));
189
340
  }));
190
341
  const themeOf = (params) => {
191
342
  var _a, _b, _c;
@@ -196,7 +347,7 @@ const createPartShooter = (options) => {
196
347
  });
197
348
  };
198
349
  const cached = (options) => {
199
- var _a;
350
+ var _a, _b, _c, _d;
200
351
  const theme = themeOf(options.params);
201
352
  const scale = scaleOf(options.params);
202
353
  const crop = (_a = (0, exports.cropOf)(options.params.get('clip'))) !== null && _a !== void 0 ? _a : null;
@@ -204,10 +355,18 @@ const createPartShooter = (options) => {
204
355
  const key = JSON.stringify([...options.key, theme.surface, theme.color, theme.fill, scale, crop, scheme]);
205
356
  const kept = options.fresh ? undefined : cache.get(key);
206
357
  if (kept) {
207
- if (options.priority === 'high')
208
- drawQueue.hurry(kept.shot);
358
+ (_b = options.onSource) === null || _b === void 0 ? void 0 : _b.call(options, 'memory');
359
+ drawQueue.join(kept.shot, options.want);
209
360
  return kept.shot;
210
361
  }
362
+ const stored = !options.fresh && options.address ? store === null || store === void 0 ? void 0 : store.read(key, options.address) : null;
363
+ if (stored) {
364
+ (_c = options.onSource) === null || _c === void 0 ? void 0 : _c.call(options, 'disk');
365
+ const shot = Promise.resolve(stored);
366
+ cache.set(key, { drawn: options.drawn, shot });
367
+ return shot;
368
+ }
369
+ (_d = options.onSource) === null || _d === void 0 ? void 0 : _d.call(options, 'drawn');
211
370
  if (theme.surface)
212
371
  options.search.set('surface', theme.surface);
213
372
  if (theme.color)
@@ -215,44 +374,75 @@ const createPartShooter = (options) => {
215
374
  if (theme.fill)
216
375
  options.search.set('fill', theme.fill);
217
376
  const search = options.search.toString();
218
- 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, scheme }); }, options.priority);
377
+ const shot = drawQueue.run((browser) => {
378
+ var _a, _b, _c, _d, _e, _f;
379
+ const gone = (_a = options.gone) === null || _a === void 0 ? void 0 : _a.call(options);
380
+ return gone
381
+ ? Promise.reject(gone)
382
+ : draw(browser, {
383
+ search,
384
+ size: options.size,
385
+ clip: (_b = options.clip) !== null && _b !== void 0 ? _b : false,
386
+ scale,
387
+ crop,
388
+ scheme,
389
+ emptySlots: (_c = options.emptySlots) !== null && _c !== void 0 ? _c : null,
390
+ slotFill: (_d = options.slotFill) !== null && _d !== void 0 ? _d : null,
391
+ checker: (_e = options.checker) !== null && _e !== void 0 ? _e : false,
392
+ pan: (_f = options.pan) !== null && _f !== void 0 ? _f : null,
393
+ });
394
+ }, options.want);
395
+ const { address } = options;
219
396
  cache.set(key, { drawn: options.drawn, shot });
220
- shot.catch(() => { var _a; return ((_a = cache.get(key)) === null || _a === void 0 ? void 0 : _a.shot) === shot && cache.delete(key); });
397
+ 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); });
221
398
  return shot;
222
399
  };
223
400
  const partShotOf = (options) => {
224
- var _a;
225
401
  const frame = (0, exports.partFrameOf)(Object.assign({ system }, options));
226
402
  if (frame instanceof thumb_1.ThumbMissingError)
227
403
  return Promise.reject(frame);
228
- const draw = () => cached(Object.assign(Object.assign({}, frame), { params: options.params, priority: options.priority, fresh: options.fresh }));
404
+ const gone = () => {
405
+ const now = (0, exports.partFrameOf)(Object.assign({ system }, options));
406
+ return now instanceof thumb_1.ThumbMissingError ? now : null;
407
+ };
408
+ const { product, part, sketch, props } = options;
409
+ const address = { product, part, sketch, props: props !== null && props !== void 0 ? props : null };
410
+ const draw = () => cached(Object.assign(Object.assign({}, frame), { params: options.params, want: options.want, fresh: options.fresh, gone,
411
+ address, onSource: options.onSource }));
229
412
  if (!statesOf)
230
413
  return draw();
231
- const { product, part, state } = options;
232
- const sketch = (_a = options.props) !== null && _a !== void 0 ? _a : options.sketch;
233
- return statesOf({ product, part, sketch }).then((names) => {
414
+ const { state } = options;
415
+ const statesFrom = props !== null && props !== void 0 ? props : sketch;
416
+ return statesOf({ product, part, sketch: statesFrom }).then((names) => {
234
417
  if (!names || names.includes(state))
235
418
  return draw();
236
- const holder = sketch ? `variant "${sketch.variant}" of ${sketch.target}` : `the merged part ${part}`;
419
+ const holder = statesFrom ? `variant "${statesFrom.variant}" of ${statesFrom.target}` : `the merged part ${part}`;
237
420
  throw new thumb_1.ThumbMissingError(`design-explore: state "${state}" is not in ${holder} - it has: ${names.join(', ') || 'no states'}`);
238
421
  });
239
422
  };
240
423
  const callShotOf = (options) => {
241
- const { slug, variant, width, params, priority } = options;
424
+ const { slug, variant, width, params, want, onSource } = options;
242
425
  return cached({
243
426
  key: ['call', slug, variant, width],
244
427
  drawn: { slug },
245
428
  search: new URLSearchParams({ call: slug, variant }),
246
429
  params,
247
430
  size: { width },
248
- priority,
431
+ want,
432
+ onSource,
249
433
  });
250
434
  };
435
+ const viewed = ({ product, target, variant }) => {
436
+ const sketch = system.sketchOf(product, target);
437
+ if (sketch)
438
+ (0, viewed_shots_1.recordShotViewed)({ target: options.target, sketch, variant });
439
+ };
251
440
  return {
252
441
  middleware: (request, response) => {
253
442
  var _a, _b, _c;
254
443
  const params = new URL((_a = request.url) !== null && _a !== void 0 ? _a : '', 'http://localhost').searchParams;
255
- const priority = params.get('priority') === 'low' ? 'low' : 'high';
444
+ const want = wantOf(params, response);
445
+ const onSource = (source) => response.setHeader('x-design-shot', source);
256
446
  if (!isScale(scaleOf(params))) {
257
447
  (0, thumb_1.send)(response, {
258
448
  status: 400,
@@ -280,12 +470,21 @@ const createPartShooter = (options) => {
280
470
  });
281
471
  return;
282
472
  }
283
- (0, thumb_1.sendShot)(response, callShotOf({ slug, variant, width: pixels, params, priority }).then((picture) => picture.png));
473
+ (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)); }));
284
474
  return;
285
475
  }
286
476
  const [part, state, preset] = ['part', 'state', 'preset'].map((name) => params.get(name));
287
477
  const pixels = width === null ? null : Number(width);
288
478
  const presetWidth = preset && product ? (_c = (_b = system.productOf(product)) === null || _b === void 0 ? void 0 : _b.presets[preset]) === null || _c === void 0 ? void 0 : _c.width : undefined;
479
+ const sketchVariants = sketch && product ? system.sketchVariantsOf(product, sketch) : null;
480
+ if (sketch && (sketchVariants === null || sketchVariants === void 0 ? void 0 : sketchVariants.length) && (!variant || !sketchVariants.includes(variant))) {
481
+ (0, thumb_1.send)(response, {
482
+ status: 400,
483
+ type: 'text/plain; charset=utf-8',
484
+ body: `design-explore: pass variant=<one of: ${sketchVariants.join(', ')}> with sketch=${sketch}`,
485
+ });
486
+ return;
487
+ }
289
488
  const sketchVariant = sketch && variant ? { target: sketch, variant } : null;
290
489
  if (product && part && !state && statesOf) {
291
490
  void statesOf({ product, part, sketch: sketchVariant }).then((names) => (0, thumb_1.send)(response, {
@@ -317,7 +516,7 @@ const createPartShooter = (options) => {
317
516
  });
318
517
  return;
319
518
  }
320
- (0, thumb_1.sendShot)(response, partShotOf({
519
+ (0, thumb_1.sendShot)(response, (0, thumb_1.noteFailure)(partShotOf({
321
520
  product,
322
521
  part,
323
522
  state,
@@ -326,14 +525,22 @@ const createPartShooter = (options) => {
326
525
  sketch: sketchVariant,
327
526
  interaction: params.get('interaction'),
328
527
  params,
329
- priority,
330
- }).then((picture) => picture.png));
528
+ want,
529
+ onSource,
530
+ }).then((picture) => {
531
+ if (sketchVariant && want.priority === 'high')
532
+ viewed(Object.assign({ product }, sketchVariant));
533
+ return picture.png;
534
+ }), (failure) => {
535
+ var _a;
536
+ 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) }));
537
+ }));
331
538
  },
332
539
  /**
333
540
  * Draws one state of a part as `partShotOf` does for the middleware, with the part roots it holds,
334
541
  * ahead of every shot asked with `priority=low`.
335
542
  */
336
- pictureOf: (options) => partShotOf(Object.assign(Object.assign({}, options), { priority: 'high' })),
543
+ pictureOf: (options) => partShotOf(Object.assign(Object.assign({}, options), { want: { priority: 'high' } })),
337
544
  /**
338
545
  * Draws `motion` of a part from its `from` state, `address.state`, at each keyframe time, with the motion's tracks;
339
546
  * `mode` picks `prefers-reduced-motion`. Kept until a change redraws the part. With `flowTo`, `motion` names a flow
@@ -400,8 +607,10 @@ const createPartShooter = (options) => {
400
607
  /** Drops the pictures of the parts `change` redraws. */
401
608
  forget: (change) => {
402
609
  for (const [key, { drawn }] of cache) {
403
- if ('part' in drawn && (0, changed_parts_1.redraws)(change, drawn.part))
610
+ if ('part' in drawn && (0, changed_parts_1.redraws)(change, drawn.part)) {
404
611
  cache.delete(key);
612
+ store === null || store === void 0 ? void 0 : store.drop(key);
613
+ }
405
614
  }
406
615
  for (const [key, { drawn }] of motions) {
407
616
  if ('part' in drawn && (0, changed_parts_1.redraws)(change, drawn.part))
@@ -416,6 +625,10 @@ const createPartShooter = (options) => {
416
625
  }
417
626
  },
418
627
  clear: () => {
628
+ for (const [key, { drawn }] of cache) {
629
+ if ('part' in drawn)
630
+ store === null || store === void 0 ? void 0 : store.drop(key);
631
+ }
419
632
  cache.clear();
420
633
  motions.clear();
421
634
  },