@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.
- package/CHANGELOG.md +417 -0
- package/build-info.json +1 -0
- package/design/define-call.ts +99 -31
- package/design/define-part.ts +50 -3
- package/design/icon-sheet.ts +1 -1
- package/design/interaction-rows.ts +13 -6
- package/design/logo-sheet.ts +52 -0
- package/design/mark-part.ts +51 -1
- package/design/motion-drive.ts +215 -0
- package/design/motion-runtime.ts +14 -2
- package/design/motion-tokens.ts +177 -0
- package/design/token-sheet.ts +1 -1
- package/design/web/frame-fill.ts +4 -0
- package/design/web/frame-fit.ts +7 -0
- package/design/web/frame-scheme.ts +44 -0
- package/design/web/frame-surfaces.ts +294 -0
- package/design/web/frame.ts +162 -43
- package/design/web/surface-interactive.css +42 -0
- package/design/with-action.ts +29 -0
- package/package.json +3 -1
- package/src/index.js +9 -1
- package/src/index.js.map +1 -1
- package/src/lib/design/asset-shot.js +2 -2
- package/src/lib/design/asset-shot.js.map +1 -1
- package/src/lib/design/build-watch.d.ts +26 -0
- package/src/lib/design/build-watch.js +138 -0
- package/src/lib/design/build-watch.js.map +1 -0
- package/src/lib/design/calls-tsconfig.d.ts +2 -0
- package/src/lib/design/calls-tsconfig.js +10 -3
- package/src/lib/design/calls-tsconfig.js.map +1 -1
- package/src/lib/design/check.d.ts +1 -0
- package/src/lib/design/check.js +195 -13
- package/src/lib/design/check.js.map +1 -1
- package/src/lib/design/commit-hunks.d.ts +22 -0
- package/src/lib/design/commit-hunks.js +173 -0
- package/src/lib/design/commit-hunks.js.map +1 -0
- package/src/lib/design/contact-sheet.d.ts +9 -0
- package/src/lib/design/contact-sheet.js +38 -4
- package/src/lib/design/contact-sheet.js.map +1 -1
- package/src/lib/design/design-command.d.ts +2 -0
- package/src/lib/design/design-command.js +183 -15
- package/src/lib/design/design-command.js.map +1 -1
- package/src/lib/design/draw-ledger.d.ts +36 -0
- package/src/lib/design/draw-ledger.js +52 -0
- package/src/lib/design/draw-ledger.js.map +1 -0
- package/src/lib/design/force-interactions.d.ts +1 -1
- package/src/lib/design/force-interactions.js +4 -2
- package/src/lib/design/force-interactions.js.map +1 -1
- package/src/lib/design/inbox-command.js +9 -5
- package/src/lib/design/inbox-command.js.map +1 -1
- package/src/lib/design/mcp-command.d.ts +28 -3
- package/src/lib/design/mcp-command.js +134 -21
- package/src/lib/design/mcp-command.js.map +1 -1
- package/src/lib/design/merge-compare.d.ts +10 -2
- package/src/lib/design/merge-compare.js +63 -11
- package/src/lib/design/merge-compare.js.map +1 -1
- package/src/lib/design/motion-command.js +10 -16
- package/src/lib/design/motion-command.js.map +1 -1
- package/src/lib/design/motion-shot.js +3 -2
- package/src/lib/design/motion-shot.js.map +1 -1
- package/src/lib/design/new-call.js +19 -10
- package/src/lib/design/new-call.js.map +1 -1
- package/src/lib/design/part-marks.d.ts +3 -2
- package/src/lib/design/part-marks.js +13 -5
- package/src/lib/design/part-marks.js.map +1 -1
- package/src/lib/design/paths.d.ts +42 -0
- package/src/lib/design/paths.js +50 -1
- package/src/lib/design/paths.js.map +1 -1
- package/src/lib/design/product-command.d.ts +1 -1
- package/src/lib/design/product-command.js +12 -14
- package/src/lib/design/product-command.js.map +1 -1
- package/src/lib/design/ready-shots.d.ts +29 -3
- package/src/lib/design/ready-shots.js +105 -5
- package/src/lib/design/ready-shots.js.map +1 -1
- package/src/lib/design/render-packages.d.ts +9 -17
- package/src/lib/design/render-packages.js +25 -63
- package/src/lib/design/render-packages.js.map +1 -1
- package/src/lib/design/render-worker.js +2 -3
- package/src/lib/design/render-worker.js.map +1 -1
- package/src/lib/design/render.d.ts +2 -0
- package/src/lib/design/render.js +32 -7
- package/src/lib/design/render.js.map +1 -1
- package/src/lib/design/serve.d.ts +23 -3
- package/src/lib/design/serve.js +288 -35
- package/src/lib/design/serve.js.map +1 -1
- package/src/lib/design/server-identity.d.ts +36 -0
- package/src/lib/design/server-identity.js +68 -0
- package/src/lib/design/server-identity.js.map +1 -0
- package/src/lib/design/settle-frames.d.ts +4 -0
- package/src/lib/design/settle-frames.js +22 -0
- package/src/lib/design/settle-frames.js.map +1 -0
- package/src/lib/design/shot-command.d.ts +30 -6
- package/src/lib/design/shot-command.js +144 -56
- package/src/lib/design/shot-command.js.map +1 -1
- package/src/lib/design/shot-store.d.ts +24 -0
- package/src/lib/design/shot-store.js +120 -0
- package/src/lib/design/shot-store.js.map +1 -0
- package/src/lib/design/shot.d.ts +71 -1
- package/src/lib/design/shot.js +253 -40
- package/src/lib/design/shot.js.map +1 -1
- package/src/lib/design/sketch-command.d.ts +6 -1
- package/src/lib/design/sketch-command.js +452 -136
- package/src/lib/design/sketch-command.js.map +1 -1
- package/src/lib/design/ssr-shims.d.ts +2 -0
- package/src/lib/design/ssr-shims.js +12 -1
- package/src/lib/design/ssr-shims.js.map +1 -1
- package/src/lib/design/stale-cli-dist.d.ts +11 -0
- package/src/lib/design/stale-cli-dist.js +56 -0
- package/src/lib/design/stale-cli-dist.js.map +1 -0
- package/src/lib/design/stamp.d.ts +18 -1
- package/src/lib/design/stamp.js +53 -7
- package/src/lib/design/stamp.js.map +1 -1
- package/src/lib/design/started-by-studio.d.ts +1 -0
- package/src/lib/design/started-by-studio.js +6 -0
- package/src/lib/design/started-by-studio.js.map +1 -0
- package/src/lib/design/studio-api.d.ts +35 -4
- package/src/lib/design/studio-api.js +312 -41
- package/src/lib/design/studio-api.js.map +1 -1
- package/src/lib/design/system/accept-command.d.ts +39 -5
- package/src/lib/design/system/accept-command.js +109 -25
- package/src/lib/design/system/accept-command.js.map +1 -1
- package/src/lib/design/system/accepted-pictures.d.ts +83 -0
- package/src/lib/design/system/accepted-pictures.js +324 -0
- package/src/lib/design/system/accepted-pictures.js.map +1 -0
- package/src/lib/design/system/action-lost.d.ts +59 -0
- package/src/lib/design/system/action-lost.js +120 -0
- package/src/lib/design/system/action-lost.js.map +1 -0
- package/src/lib/design/system/action-press.d.ts +23 -0
- package/src/lib/design/system/action-press.js +76 -0
- package/src/lib/design/system/action-press.js.map +1 -0
- package/src/lib/design/system/action-undeclared.d.ts +34 -0
- package/src/lib/design/system/action-undeclared.js +81 -0
- package/src/lib/design/system/action-undeclared.js.map +1 -0
- package/src/lib/design/system/actions-command.d.ts +101 -0
- package/src/lib/design/system/actions-command.js +695 -0
- package/src/lib/design/system/actions-command.js.map +1 -0
- package/src/lib/design/system/actions.d.ts +158 -0
- package/src/lib/design/system/actions.js +295 -0
- package/src/lib/design/system/actions.js.map +1 -0
- package/src/lib/design/system/app-files.d.ts +10 -0
- package/src/lib/design/system/app-files.js +159 -0
- package/src/lib/design/system/app-files.js.map +1 -0
- package/src/lib/design/system/bespoke-controls.d.ts +30 -0
- package/src/lib/design/system/bespoke-controls.js +147 -0
- package/src/lib/design/system/bespoke-controls.js.map +1 -0
- package/src/lib/design/system/build-ready-contract.d.ts +27 -0
- package/src/lib/design/system/build-ready-contract.js +12 -0
- package/src/lib/design/system/build-ready-contract.js.map +1 -0
- package/src/lib/design/system/check-rules.d.ts +1 -0
- package/src/lib/design/system/check-rules.js +82 -0
- package/src/lib/design/system/check-rules.js.map +1 -0
- package/src/lib/design/system/check-system.d.ts +62 -3
- package/src/lib/design/system/check-system.js +527 -34
- package/src/lib/design/system/check-system.js.map +1 -1
- package/src/lib/design/system/colour.d.ts +4 -1
- package/src/lib/design/system/colour.js +54 -2
- package/src/lib/design/system/colour.js.map +1 -1
- package/src/lib/design/system/comments/comment.d.ts +4 -1
- package/src/lib/design/system/comments/comment.js +13 -4
- package/src/lib/design/system/comments/comment.js.map +1 -1
- package/src/lib/design/system/comments/inbox.js +2 -2
- package/src/lib/design/system/comments/inbox.js.map +1 -1
- package/src/lib/design/system/compare-command.d.ts +119 -0
- package/src/lib/design/system/compare-command.js +558 -0
- package/src/lib/design/system/compare-command.js.map +1 -0
- package/src/lib/design/system/complete-command.js +7 -3
- package/src/lib/design/system/complete-command.js.map +1 -1
- package/src/lib/design/system/complete.d.ts +99 -3
- package/src/lib/design/system/complete.js +358 -88
- package/src/lib/design/system/complete.js.map +1 -1
- package/src/lib/design/system/component-outputs.d.ts +20 -0
- package/src/lib/design/system/component-outputs.js +86 -0
- package/src/lib/design/system/component-outputs.js.map +1 -0
- package/src/lib/design/system/contrast-check.d.ts +6 -1
- package/src/lib/design/system/contrast-check.js +179 -13
- package/src/lib/design/system/contrast-check.js.map +1 -1
- package/src/lib/design/system/demo-backdrop.d.ts +11 -0
- package/src/lib/design/system/demo-backdrop.js +41 -0
- package/src/lib/design/system/demo-backdrop.js.map +1 -0
- package/src/lib/design/system/design-hash.d.ts +31 -0
- package/src/lib/design/system/design-hash.js +73 -0
- package/src/lib/design/system/design-hash.js.map +1 -0
- package/src/lib/design/system/disabled-interaction.d.ts +8 -0
- package/src/lib/design/system/disabled-interaction.js +37 -0
- package/src/lib/design/system/disabled-interaction.js.map +1 -0
- package/src/lib/design/system/dom-command.d.ts +36 -0
- package/src/lib/design/system/dom-command.js +175 -0
- package/src/lib/design/system/dom-command.js.map +1 -0
- package/src/lib/design/system/drawn-open-points.d.ts +38 -0
- package/src/lib/design/system/drawn-open-points.js +94 -0
- package/src/lib/design/system/drawn-open-points.js.map +1 -0
- package/src/lib/design/system/dropped-props.d.ts +25 -0
- package/src/lib/design/system/dropped-props.js +159 -0
- package/src/lib/design/system/dropped-props.js.map +1 -0
- package/src/lib/design/system/embedded-actions.d.ts +21 -0
- package/src/lib/design/system/embedded-actions.js +37 -0
- package/src/lib/design/system/embedded-actions.js.map +1 -0
- package/src/lib/design/system/exceptions.js +2 -1
- package/src/lib/design/system/exceptions.js.map +1 -1
- package/src/lib/design/system/flows/flow.js +2 -1
- package/src/lib/design/system/flows/flow.js.map +1 -1
- package/src/lib/design/system/frozen-animations.d.ts +13 -0
- package/src/lib/design/system/frozen-animations.js +51 -0
- package/src/lib/design/system/frozen-animations.js.map +1 -0
- package/src/lib/design/system/go-batch.d.ts +24 -0
- package/src/lib/design/system/go-batch.js +110 -0
- package/src/lib/design/system/go-batch.js.map +1 -0
- package/src/lib/design/system/go-command.d.ts +4 -0
- package/src/lib/design/system/go-command.js +64 -0
- package/src/lib/design/system/go-command.js.map +1 -0
- package/src/lib/design/system/go-guard.d.ts +26 -0
- package/src/lib/design/system/go-guard.js +70 -0
- package/src/lib/design/system/go-guard.js.map +1 -0
- package/src/lib/design/system/go-step.d.ts +13 -0
- package/src/lib/design/system/go-step.js +84 -0
- package/src/lib/design/system/go-step.js.map +1 -0
- package/src/lib/design/system/handoff.js +2 -1
- package/src/lib/design/system/handoff.js.map +1 -1
- package/src/lib/design/system/harness-build-cache.d.ts +35 -0
- package/src/lib/design/system/harness-build-cache.js +175 -0
- package/src/lib/design/system/harness-build-cache.js.map +1 -0
- package/src/lib/design/system/harness-command.d.ts +7 -0
- package/src/lib/design/system/harness-command.js +51 -0
- package/src/lib/design/system/harness-command.js.map +1 -0
- package/src/lib/design/system/harness-config.d.ts +9 -0
- package/src/lib/design/system/harness-config.js +65 -0
- package/src/lib/design/system/harness-config.js.map +1 -0
- package/src/lib/design/system/harness-map.d.ts +44 -0
- package/src/lib/design/system/harness-map.js +126 -0
- package/src/lib/design/system/harness-map.js.map +1 -0
- package/src/lib/design/system/harness-samples.d.ts +20 -0
- package/src/lib/design/system/harness-samples.js +92 -0
- package/src/lib/design/system/harness-samples.js.map +1 -0
- package/src/lib/design/system/harness-server.d.ts +40 -0
- package/src/lib/design/system/harness-server.js +296 -0
- package/src/lib/design/system/harness-server.js.map +1 -0
- package/src/lib/design/system/imports.js +14 -1
- package/src/lib/design/system/imports.js.map +1 -1
- package/src/lib/design/system/in-order-at-once.d.ts +6 -0
- package/src/lib/design/system/in-order-at-once.js +28 -0
- package/src/lib/design/system/in-order-at-once.js.map +1 -0
- package/src/lib/design/system/inventory-approval.js +2 -1
- package/src/lib/design/system/inventory-approval.js.map +1 -1
- package/src/lib/design/system/inventory.d.ts +13 -4
- package/src/lib/design/system/inventory.js +36 -7
- package/src/lib/design/system/inventory.js.map +1 -1
- package/src/lib/design/system/list-system.d.ts +8 -1
- package/src/lib/design/system/list-system.js +13 -3
- package/src/lib/design/system/list-system.js.map +1 -1
- package/src/lib/design/system/live-actions.d.ts +121 -0
- package/src/lib/design/system/live-actions.js +665 -0
- package/src/lib/design/system/live-actions.js.map +1 -0
- package/src/lib/design/system/live-compare.d.ts +136 -0
- package/src/lib/design/system/live-compare.js +441 -0
- package/src/lib/design/system/live-compare.js.map +1 -0
- package/src/lib/design/system/live-uncovered.d.ts +40 -0
- package/src/lib/design/system/live-uncovered.js +123 -0
- package/src/lib/design/system/live-uncovered.js.map +1 -0
- package/src/lib/design/system/nested-scroll.d.ts +7 -0
- package/src/lib/design/system/nested-scroll.js +25 -0
- package/src/lib/design/system/nested-scroll.js.map +1 -0
- package/src/lib/design/system/notes/note.js +2 -1
- package/src/lib/design/system/notes/note.js.map +1 -1
- package/src/lib/design/system/occluded.d.ts +13 -0
- package/src/lib/design/system/occluded.js +111 -0
- package/src/lib/design/system/occluded.js.map +1 -0
- package/src/lib/design/system/open-points.d.ts +119 -0
- package/src/lib/design/system/open-points.js +185 -0
- package/src/lib/design/system/open-points.js.map +1 -0
- package/src/lib/design/system/part-build-ready.d.ts +39 -0
- package/src/lib/design/system/part-build-ready.js +107 -0
- package/src/lib/design/system/part-build-ready.js.map +1 -0
- package/src/lib/design/system/part-command.js +2 -9
- package/src/lib/design/system/part-command.js.map +1 -1
- package/src/lib/design/system/part-compare.d.ts +123 -0
- package/src/lib/design/system/part-compare.js +396 -0
- package/src/lib/design/system/part-compare.js.map +1 -0
- package/src/lib/design/system/part-go.d.ts +70 -0
- package/src/lib/design/system/part-go.js +94 -0
- package/src/lib/design/system/part-go.js.map +1 -0
- package/src/lib/design/system/part-ready.d.ts +90 -0
- package/src/lib/design/system/part-ready.js +172 -0
- package/src/lib/design/system/part-ready.js.map +1 -0
- package/src/lib/design/system/part-task.d.ts +147 -0
- package/src/lib/design/system/part-task.js +285 -0
- package/src/lib/design/system/part-task.js.map +1 -0
- package/src/lib/design/system/pointer-focus.d.ts +81 -0
- package/src/lib/design/system/pointer-focus.js +152 -0
- package/src/lib/design/system/pointer-focus.js.map +1 -0
- package/src/lib/design/system/prettier.d.ts +10 -0
- package/src/lib/design/system/prettier.js +36 -0
- package/src/lib/design/system/prettier.js.map +1 -0
- package/src/lib/design/system/reach.d.ts +12 -0
- package/src/lib/design/system/reach.js +186 -0
- package/src/lib/design/system/reach.js.map +1 -0
- package/src/lib/design/system/reachable-controls.d.ts +6 -0
- package/src/lib/design/system/reachable-controls.js +19 -0
- package/src/lib/design/system/reachable-controls.js.map +1 -0
- package/src/lib/design/system/reachable-files.d.ts +14 -0
- package/src/lib/design/system/reachable-files.js +101 -0
- package/src/lib/design/system/reachable-files.js.map +1 -0
- package/src/lib/design/system/reached-state.d.ts +23 -0
- package/src/lib/design/system/reached-state.js +53 -0
- package/src/lib/design/system/reached-state.js.map +1 -0
- package/src/lib/design/system/read-open-points.d.ts +33 -0
- package/src/lib/design/system/read-open-points.js +110 -0
- package/src/lib/design/system/read-open-points.js.map +1 -0
- package/src/lib/design/system/ready-command.d.ts +11 -0
- package/src/lib/design/system/ready-command.js +82 -0
- package/src/lib/design/system/ready-command.js.map +1 -0
- package/src/lib/design/system/render-check.d.ts +52 -0
- package/src/lib/design/system/render-check.js +479 -60
- package/src/lib/design/system/render-check.js.map +1 -1
- package/src/lib/design/system/resolve-product.d.ts +2 -1
- package/src/lib/design/system/resolve-product.js +25 -3
- package/src/lib/design/system/resolve-product.js.map +1 -1
- package/src/lib/design/system/rules/app-spec.d.ts +30 -0
- package/src/lib/design/system/rules/app-spec.js +87 -0
- package/src/lib/design/system/rules/app-spec.js.map +1 -0
- package/src/lib/design/system/rules/canonical-class.d.ts +2 -0
- package/src/lib/design/system/rules/canonical-class.js +36 -110
- package/src/lib/design/system/rules/canonical-class.js.map +1 -1
- package/src/lib/design/system/rules/capability-place.d.ts +44 -0
- package/src/lib/design/system/rules/capability-place.js +116 -0
- package/src/lib/design/system/rules/capability-place.js.map +1 -0
- package/src/lib/design/system/rules/denied-class.d.ts +9 -0
- package/src/lib/design/system/rules/denied-class.js +121 -0
- package/src/lib/design/system/rules/denied-class.js.map +1 -0
- package/src/lib/design/system/rules/exemptions.d.ts +18 -0
- package/src/lib/design/system/rules/exemptions.js +18 -0
- package/src/lib/design/system/rules/exemptions.js.map +1 -0
- package/src/lib/design/system/rules/flow.js +1 -1
- package/src/lib/design/system/rules/flow.js.map +1 -1
- package/src/lib/design/system/rules/glued-interpolation.d.ts +8 -0
- package/src/lib/design/system/rules/glued-interpolation.js +61 -0
- package/src/lib/design/system/rules/glued-interpolation.js.map +1 -0
- package/src/lib/design/system/rules/hard-coded-colour.js +2 -1
- package/src/lib/design/system/rules/hard-coded-colour.js.map +1 -1
- package/src/lib/design/system/rules/implemented-components.d.ts +22 -0
- package/src/lib/design/system/rules/implemented-components.js +45 -0
- package/src/lib/design/system/rules/implemented-components.js.map +1 -0
- package/src/lib/design/system/rules/implements.d.ts +8 -0
- package/src/lib/design/system/rules/implements.js +48 -0
- package/src/lib/design/system/rules/implements.js.map +1 -0
- package/src/lib/design/system/rules/inline-svg.js +4 -1
- package/src/lib/design/system/rules/inline-svg.js.map +1 -1
- package/src/lib/design/system/rules/inline-ui-in-page-open.d.ts +13 -0
- package/src/lib/design/system/rules/inline-ui-in-page-open.js +5 -0
- package/src/lib/design/system/rules/inline-ui-in-page-open.js.map +1 -0
- package/src/lib/design/system/rules/inline-ui-in-page.d.ts +18 -0
- package/src/lib/design/system/rules/inline-ui-in-page.js +123 -0
- package/src/lib/design/system/rules/inline-ui-in-page.js.map +1 -0
- package/src/lib/design/system/rules/inline-ui.d.ts +16 -0
- package/src/lib/design/system/rules/inline-ui.js +100 -0
- package/src/lib/design/system/rules/inline-ui.js.map +1 -0
- package/src/lib/design/system/rules/motion.d.ts +2 -0
- package/src/lib/design/system/rules/motion.js +35 -2
- package/src/lib/design/system/rules/motion.js.map +1 -1
- package/src/lib/design/system/rules/native-title.d.ts +7 -0
- package/src/lib/design/system/rules/native-title.js +64 -0
- package/src/lib/design/system/rules/native-title.js.map +1 -0
- package/src/lib/design/system/rules/option-values.d.ts +15 -0
- package/src/lib/design/system/rules/option-values.js +145 -0
- package/src/lib/design/system/rules/option-values.js.map +1 -0
- package/src/lib/design/system/rules/orphan-endpoint-known.d.ts +12 -0
- package/src/lib/design/system/rules/orphan-endpoint-known.js +20 -0
- package/src/lib/design/system/rules/orphan-endpoint-known.js.map +1 -0
- package/src/lib/design/system/rules/orphan-endpoint.d.ts +23 -0
- package/src/lib/design/system/rules/orphan-endpoint.js +166 -0
- package/src/lib/design/system/rules/orphan-endpoint.js.map +1 -0
- package/src/lib/design/system/rules/part-rewrite.d.ts +13 -0
- package/src/lib/design/system/rules/part-rewrite.js +125 -0
- package/src/lib/design/system/rules/part-rewrite.js.map +1 -0
- package/src/lib/design/system/rules/sample-default-known.d.ts +5 -0
- package/src/lib/design/system/rules/sample-default-known.js +17 -0
- package/src/lib/design/system/rules/sample-default-known.js.map +1 -0
- package/src/lib/design/system/rules/sample-default.d.ts +22 -0
- package/src/lib/design/system/rules/sample-default.js +92 -0
- package/src/lib/design/system/rules/sample-default.js.map +1 -0
- package/src/lib/design/system/rules/stale-replace.js +45 -3
- package/src/lib/design/system/rules/stale-replace.js.map +1 -1
- package/src/lib/design/system/rules/state-in-component.d.ts +16 -0
- package/src/lib/design/system/rules/state-in-component.js +101 -0
- package/src/lib/design/system/rules/state-in-component.js.map +1 -0
- package/src/lib/design/system/rules/tailwind-classes.d.ts +51 -0
- package/src/lib/design/system/rules/tailwind-classes.js +232 -0
- package/src/lib/design/system/rules/tailwind-classes.js.map +1 -0
- package/src/lib/design/system/rules/top-level-await.d.ts +9 -0
- package/src/lib/design/system/rules/top-level-await.js +62 -0
- package/src/lib/design/system/rules/top-level-await.js.map +1 -0
- package/src/lib/design/system/rules/unbound-input-known.d.ts +5 -0
- package/src/lib/design/system/rules/unbound-input-known.js +47 -0
- package/src/lib/design/system/rules/unbound-input-known.js.map +1 -0
- package/src/lib/design/system/rules/unbound-input.d.ts +22 -0
- package/src/lib/design/system/rules/unbound-input.js +61 -0
- package/src/lib/design/system/rules/unbound-input.js.map +1 -0
- package/src/lib/design/system/rules/uncovered-region.d.ts +13 -0
- package/src/lib/design/system/rules/uncovered-region.js +36 -0
- package/src/lib/design/system/rules/uncovered-region.js.map +1 -0
- package/src/lib/design/system/rules/undefined-class.d.ts +9 -0
- package/src/lib/design/system/rules/undefined-class.js +32 -0
- package/src/lib/design/system/rules/undefined-class.js.map +1 -0
- package/src/lib/design/system/rules/undefined-token.d.ts +1 -1
- package/src/lib/design/system/rules/undefined-token.js +7 -61
- package/src/lib/design/system/rules/undefined-token.js.map +1 -1
- package/src/lib/design/system/rules/utility-css.d.ts +2 -1
- package/src/lib/design/system/rules/utility-css.js +29 -14
- package/src/lib/design/system/rules/utility-css.js.map +1 -1
- package/src/lib/design/system/rules/view-coverage.d.ts +8 -0
- package/src/lib/design/system/rules/view-coverage.js +51 -0
- package/src/lib/design/system/rules/view-coverage.js.map +1 -0
- package/src/lib/design/system/rules/visible-change.d.ts +20 -0
- package/src/lib/design/system/rules/visible-change.js +48 -0
- package/src/lib/design/system/rules/visible-change.js.map +1 -0
- package/src/lib/design/system/sdk-errors.d.ts +14 -0
- package/src/lib/design/system/sdk-errors.js +38 -0
- package/src/lib/design/system/sdk-errors.js.map +1 -0
- package/src/lib/design/system/see-through.d.ts +12 -0
- package/src/lib/design/system/see-through.js +112 -0
- package/src/lib/design/system/see-through.js.map +1 -0
- package/src/lib/design/system/settled-panes.d.ts +18 -0
- package/src/lib/design/system/settled-panes.js +70 -0
- package/src/lib/design/system/settled-panes.js.map +1 -0
- package/src/lib/design/system/sketch/after-merge.d.ts +11 -0
- package/src/lib/design/system/sketch/after-merge.js +51 -0
- package/src/lib/design/system/sketch/after-merge.js.map +1 -0
- package/src/lib/design/system/sketch/aktuell-placeholders.d.ts +30 -0
- package/src/lib/design/system/sketch/aktuell-placeholders.js +87 -0
- package/src/lib/design/system/sketch/aktuell-placeholders.js.map +1 -0
- package/src/lib/design/system/sketch/baseline.d.ts +29 -2
- package/src/lib/design/system/sketch/baseline.js +33 -9
- package/src/lib/design/system/sketch/baseline.js.map +1 -1
- package/src/lib/design/system/sketch/check-sketches.d.ts +11 -0
- package/src/lib/design/system/sketch/check-sketches.js +54 -6
- package/src/lib/design/system/sketch/check-sketches.js.map +1 -1
- package/src/lib/design/system/sketch/cli-args.d.ts +12 -2
- package/src/lib/design/system/sketch/cli-args.js +18 -3
- package/src/lib/design/system/sketch/cli-args.js.map +1 -1
- package/src/lib/design/system/sketch/edit-sketch.d.ts +21 -0
- package/src/lib/design/system/sketch/edit-sketch.js +117 -0
- package/src/lib/design/system/sketch/edit-sketch.js.map +1 -0
- package/src/lib/design/system/sketch/frame-budget.d.ts +24 -0
- package/src/lib/design/system/sketch/frame-budget.js +23 -0
- package/src/lib/design/system/sketch/frame-budget.js.map +1 -0
- package/src/lib/design/system/sketch/identical-renders.d.ts +31 -0
- package/src/lib/design/system/sketch/identical-renders.js +137 -0
- package/src/lib/design/system/sketch/identical-renders.js.map +1 -0
- package/src/lib/design/system/sketch/merge-shared.d.ts +2 -0
- package/src/lib/design/system/sketch/merge-shared.js +7 -10
- package/src/lib/design/system/sketch/merge-shared.js.map +1 -1
- package/src/lib/design/system/sketch/merge-step.d.ts +35 -0
- package/src/lib/design/system/sketch/merge-step.js +98 -0
- package/src/lib/design/system/sketch/merge-step.js.map +1 -0
- package/src/lib/design/system/sketch/merge.d.ts +10 -3
- package/src/lib/design/system/sketch/merge.js +122 -17
- package/src/lib/design/system/sketch/merge.js.map +1 -1
- package/src/lib/design/system/sketch/merged-layout.d.ts +17 -0
- package/src/lib/design/system/sketch/merged-layout.js +57 -0
- package/src/lib/design/system/sketch/merged-layout.js.map +1 -0
- package/src/lib/design/system/sketch/merged-parts.d.ts +41 -11
- package/src/lib/design/system/sketch/merged-parts.js +113 -50
- package/src/lib/design/system/sketch/merged-parts.js.map +1 -1
- package/src/lib/design/system/sketch/no-visible-change.d.ts +10 -0
- package/src/lib/design/system/sketch/no-visible-change.js +16 -6
- package/src/lib/design/system/sketch/no-visible-change.js.map +1 -1
- package/src/lib/design/system/sketch/part-definition.d.ts +56 -0
- package/src/lib/design/system/sketch/part-definition.js +129 -13
- package/src/lib/design/system/sketch/part-definition.js.map +1 -1
- package/src/lib/design/system/sketch/rebase-port.d.ts +24 -0
- package/src/lib/design/system/sketch/rebase-port.js +170 -0
- package/src/lib/design/system/sketch/rebase-port.js.map +1 -0
- package/src/lib/design/system/sketch/sample-mark-drift.d.ts +33 -0
- package/src/lib/design/system/sketch/sample-mark-drift.js +88 -0
- package/src/lib/design/system/sketch/sample-mark-drift.js.map +1 -0
- package/src/lib/design/system/sketch/sketch-check-worker.d.ts +1 -0
- package/src/lib/design/system/sketch/sketch-check-worker.js +27 -0
- package/src/lib/design/system/sketch/sketch-check-worker.js.map +1 -0
- package/src/lib/design/system/sketch/sketch-checker.d.ts +27 -0
- package/src/lib/design/system/sketch/sketch-checker.js +99 -0
- package/src/lib/design/system/sketch/sketch-checker.js.map +1 -0
- package/src/lib/design/system/sketch/sketch.d.ts +78 -2
- package/src/lib/design/system/sketch/sketch.js +247 -54
- package/src/lib/design/system/sketch/sketch.js.map +1 -1
- package/src/lib/design/system/sketch/stale-base.d.ts +22 -0
- package/src/lib/design/system/sketch/stale-base.js +56 -0
- package/src/lib/design/system/sketch/stale-base.js.map +1 -0
- package/src/lib/design/system/sketch/unchanged-states.d.ts +36 -1
- package/src/lib/design/system/sketch/unchanged-states.js +60 -17
- package/src/lib/design/system/sketch/unchanged-states.js.map +1 -1
- package/src/lib/design/system/sketch/unused-closure.js +26 -4
- package/src/lib/design/system/sketch/unused-closure.js.map +1 -1
- package/src/lib/design/system/sketch/unused-files.d.ts +1 -1
- package/src/lib/design/system/sketch/unused-files.js +6 -3
- package/src/lib/design/system/sketch/unused-files.js.map +1 -1
- package/src/lib/design/system/sketch/viewed-shots.d.ts +24 -0
- package/src/lib/design/system/sketch/viewed-shots.js +61 -0
- package/src/lib/design/system/sketch/viewed-shots.js.map +1 -0
- package/src/lib/design/system/slow-checks.d.ts +40 -0
- package/src/lib/design/system/slow-checks.js +197 -0
- package/src/lib/design/system/slow-checks.js.map +1 -0
- package/src/lib/design/system/slow-run.d.ts +57 -0
- package/src/lib/design/system/slow-run.js +253 -0
- package/src/lib/design/system/slow-run.js.map +1 -0
- package/src/lib/design/system/stale-design-mocks.d.ts +20 -0
- package/src/lib/design/system/stale-design-mocks.js +59 -0
- package/src/lib/design/system/stale-design-mocks.js.map +1 -0
- package/src/lib/design/system/stale-dist.d.ts +25 -0
- package/src/lib/design/system/stale-dist.js +91 -0
- package/src/lib/design/system/stale-dist.js.map +1 -0
- package/src/lib/design/system/stale-parts.d.ts +30 -0
- package/src/lib/design/system/stale-parts.js +106 -0
- package/src/lib/design/system/stale-parts.js.map +1 -0
- package/src/lib/design/system/surface-nesting.d.ts +11 -0
- package/src/lib/design/system/surface-nesting.js +86 -0
- package/src/lib/design/system/surface-nesting.js.map +1 -0
- package/src/lib/design/system/system-command.js +8 -6
- package/src/lib/design/system/system-command.js.map +1 -1
- package/src/lib/design/system/system-modules.d.ts +16 -1
- package/src/lib/design/system/system-modules.js +18 -2
- package/src/lib/design/system/system-modules.js.map +1 -1
- package/src/lib/design/system/system-tsconfig.js +2 -2
- package/src/lib/design/system/system-tsconfig.js.map +1 -1
- package/src/lib/design/system/task-command.d.ts +51 -0
- package/src/lib/design/system/task-command.js +233 -0
- package/src/lib/design/system/task-command.js.map +1 -0
- package/src/lib/design/system/theming-text.d.ts +2 -0
- package/src/lib/design/system/theming-text.js +6 -0
- package/src/lib/design/system/theming-text.js.map +1 -0
- package/src/lib/design/system/tom-confirm.d.ts +40 -0
- package/src/lib/design/system/tom-confirm.js +55 -0
- package/src/lib/design/system/tom-confirm.js.map +1 -0
- package/src/lib/design/system/touched-parts.d.ts +16 -0
- package/src/lib/design/system/touched-parts.js +122 -0
- package/src/lib/design/system/touched-parts.js.map +1 -0
- package/src/lib/design/system/ts-source.d.ts +5 -0
- package/src/lib/design/system/ts-source.js +35 -4
- package/src/lib/design/system/ts-source.js.map +1 -1
- package/src/lib/design/system/unchanged-rows.d.ts +15 -0
- package/src/lib/design/system/unchanged-rows.js +134 -0
- package/src/lib/design/system/unchanged-rows.js.map +1 -0
- package/src/lib/design/system/uncommitted-decisions.d.ts +6 -0
- package/src/lib/design/system/uncommitted-decisions.js +38 -0
- package/src/lib/design/system/uncommitted-decisions.js.map +1 -0
- package/src/lib/design/system/uncovered-regions.d.ts +61 -0
- package/src/lib/design/system/uncovered-regions.js +171 -0
- package/src/lib/design/system/uncovered-regions.js.map +1 -0
- package/src/lib/design/system/unused-base-parts.d.ts +7 -0
- package/src/lib/design/system/unused-base-parts.js +76 -0
- package/src/lib/design/system/unused-base-parts.js.map +1 -0
- package/src/lib/design/system/visible-change-command.d.ts +48 -0
- package/src/lib/design/system/visible-change-command.js +308 -0
- package/src/lib/design/system/visible-change-command.js.map +1 -0
- package/src/lib/design/system/visible-change-parts.d.ts +28 -0
- package/src/lib/design/system/visible-change-parts.js +96 -0
- package/src/lib/design/system/visible-change-parts.js.map +1 -0
- package/src/lib/design/system/visible-change.d.ts +82 -0
- package/src/lib/design/system/visible-change.js +149 -0
- package/src/lib/design/system/visible-change.js.map +1 -0
- package/src/lib/design/thumb.d.ts +50 -6
- package/src/lib/design/thumb.js +154 -54
- package/src/lib/design/thumb.js.map +1 -1
- package/src/lib/design/typecheck.d.ts +1 -1
- package/src/lib/design/typecheck.js +3 -3
- package/src/lib/design/typecheck.js.map +1 -1
- package/src/lib/design/unstable-cells.d.ts +23 -0
- package/src/lib/design/unstable-cells.js +40 -0
- package/src/lib/design/unstable-cells.js.map +1 -0
- package/src/lib/design/variant-diff.js +1 -1
- package/src/lib/design/variant-diff.js.map +1 -1
- package/src/lib/design/wait.d.ts +15 -0
- package/src/lib/design/wait.js +30 -0
- package/src/lib/design/wait.js.map +1 -0
- package/src/lib/json-file.d.ts +11 -0
- package/src/lib/json-file.js +21 -0
- package/src/lib/json-file.js.map +1 -0
- package/src/lib/source-hash.d.ts +7 -0
- package/src/lib/source-hash.js +62 -0
- package/src/lib/source-hash.js.map +1 -0
- package/src/lib/update/agent-setup.js +2 -1
- package/src/lib/update/agent-setup.js.map +1 -1
- package/src/lib/update/migration-manifest.d.ts +12 -0
- package/src/lib/update/migration-manifest.js +13 -0
- package/src/lib/update/migration-manifest.js.map +1 -1
- package/src/lib/update/migration-record.js +2 -1
- package/src/lib/update/migration-record.js.map +1 -1
- package/src/lib/update/pending.js +2 -1
- package/src/lib/update/pending.js.map +1 -1
- package/src/lib/update/run-migrations.d.ts +3 -2
- package/src/lib/update/run-migrations.js +38 -5
- package/src/lib/update/run-migrations.js.map +1 -1
- package/src/lib/update/tasks.js +2 -1
- 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":"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"}
|
package/src/lib/design/shot.d.ts
CHANGED
|
@@ -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
|
/**
|
package/src/lib/design/shot.js
CHANGED
|
@@ -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
|
|
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
|
-
|
|
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
|
|
156
|
-
|
|
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 =
|
|
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 ?
|
|
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
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
208
|
-
|
|
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) => {
|
|
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.
|
|
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
|
|
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 {
|
|
232
|
-
const
|
|
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 =
|
|
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,
|
|
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
|
-
|
|
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
|
|
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,
|
|
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
|
-
|
|
330
|
-
|
|
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
|
},
|