@tryvitris/website-harness 0.0.0-stage → 0.1.0-beta.5
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/CONTRIBUTING.md +7 -0
- package/LICENSE +21 -0
- package/NOTICE +17 -0
- package/README.md +139 -2
- package/agent/EVALUATION.md +23 -0
- package/agent/PROMPT.md +13 -0
- package/agent/STATE.json +109 -0
- package/agent/WORKFLOW.md +108 -0
- package/agent/evals/preview.md +5 -0
- package/agent/graph.yaml +752 -0
- package/agent/guardrails.md +10 -0
- package/agent/refs/accessibility.md +9 -0
- package/agent/refs/art-direction.md +15 -0
- package/agent/refs/brand.md +3 -0
- package/agent/refs/browser.md +15 -0
- package/agent/refs/business.md +9 -0
- package/agent/refs/components.md +42 -0
- package/agent/refs/compose.md +10 -0
- package/agent/refs/contracts.md +32 -0
- package/agent/refs/copy.md +14 -0
- package/agent/refs/counterpoint.md +3 -0
- package/agent/refs/critic.md +29 -0
- package/agent/refs/design-calibration.md +31 -0
- package/agent/refs/design-feedback.md +13 -0
- package/agent/refs/design-quality.md +33 -0
- package/agent/refs/design-synthesis.md +9 -0
- package/agent/refs/direction.md +29 -0
- package/agent/refs/feedback-fulfillment.md +7 -0
- package/agent/refs/geo.md +7 -0
- package/agent/refs/harvest.md +7 -0
- package/agent/refs/icons.md +102 -0
- package/agent/refs/images.md +3 -0
- package/agent/refs/implement.md +24 -0
- package/agent/refs/industry-reference-shortlist.md +64 -0
- package/agent/refs/inspiration.md +17 -0
- package/agent/refs/interpret.md +3 -0
- package/agent/refs/jev.md +166 -0
- package/agent/refs/launch.md +11 -0
- package/agent/refs/layout.md +7 -0
- package/agent/refs/media.md +35 -0
- package/agent/refs/motif.md +3 -0
- package/agent/refs/motion-count.md +13 -0
- package/agent/refs/motion-image.md +12 -0
- package/agent/refs/motion-numeric.md +14 -0
- package/agent/refs/motion-page.md +23 -0
- package/agent/refs/motion-process.md +12 -0
- package/agent/refs/motion-sequence.md +7 -0
- package/agent/refs/motion-text.md +12 -0
- package/agent/refs/motion.md +11 -0
- package/agent/refs/narrative.md +9 -0
- package/agent/refs/performance.md +36 -0
- package/agent/refs/preview.md +3 -0
- package/agent/refs/production-quality.md +33 -0
- package/agent/refs/psychology.md +3 -0
- package/agent/refs/refine.md +14 -0
- package/agent/refs/research.md +7 -0
- package/agent/refs/sections.md +6 -0
- package/agent/refs/seo.md +9 -0
- package/agent/refs/storyboard.md +27 -0
- package/agent/refs/template-adaptation.md +42 -0
- package/agent/refs/template-from-url.md +91 -0
- package/agent/refs/template-library.md +32 -0
- package/agent/refs/template-motion.md +44 -0
- package/agent/refs/theme-selection.md +13 -0
- package/agent/refs/ui-ux.md +7 -0
- package/agent/refs/usability.md +5 -0
- package/agent/refs/variant-directions.md +20 -0
- package/agent/refs/write.md +6 -0
- package/agent/request.json +11 -0
- package/agent/workflow.json +4 -0
- package/bin/api/agent/artifacts.js +38 -0
- package/bin/api/agent/evaluate.js +55 -0
- package/bin/api/agent/grade.js +51 -0
- package/bin/api/agent/graph.js +16 -0
- package/bin/api/cli/api.js +104 -0
- package/bin/api/cli.js +48 -0
- package/bin/api/contracts.js +22 -0
- package/bin/api/engine.js +53 -0
- package/bin/api/hosting.js +40 -0
- package/bin/api/icons.js +57 -0
- package/bin/api/index.js +20 -0
- package/bin/api/references.js +45 -0
- package/bin/api/render.js +61 -0
- package/bin/api/schema.js +68 -0
- package/bin/api/theme.js +9 -0
- package/bin/api/types.js +8 -0
- package/bin/chunks/chunk-2NW7KSPA.js +17 -0
- package/bin/chunks/chunk-34H54KEY.js +45 -0
- package/bin/chunks/chunk-3CTBXY5K.js +22313 -0
- package/bin/chunks/chunk-42IXFXUD.js +1141 -0
- package/bin/chunks/chunk-4DM5TTLG.js +219 -0
- package/bin/chunks/chunk-4GZCAWWK.js +327 -0
- package/bin/chunks/chunk-54JC5L35.js +493 -0
- package/bin/chunks/chunk-5OOPJNGN.js +511 -0
- package/bin/chunks/chunk-6A3VWYMF.js +28 -0
- package/bin/chunks/chunk-6H3T46F5.js +25 -0
- package/bin/chunks/chunk-7FS67SRF.js +12 -0
- package/bin/chunks/chunk-7VLBEAFW.js +56 -0
- package/bin/chunks/chunk-ANMJRJQ5.js +31 -0
- package/bin/chunks/chunk-AUO5I56E.js +118774 -0
- package/bin/chunks/chunk-B5I45LFD.js +619 -0
- package/bin/chunks/chunk-BBV7PMFC.js +185 -0
- package/bin/chunks/chunk-BIEDSEL2.js +8 -0
- package/bin/chunks/chunk-CBEJZO4L.js +67 -0
- package/bin/chunks/chunk-DRJQ4OOU.js +514 -0
- package/bin/chunks/chunk-DSS2U2OM.js +115 -0
- package/bin/chunks/chunk-E5Y46VBX.js +678 -0
- package/bin/chunks/chunk-FOXUQXTV.js +278 -0
- package/bin/chunks/chunk-FYN4T4SV.js +4900 -0
- package/bin/chunks/chunk-G7MNMULR.js +192 -0
- package/bin/chunks/chunk-GVNIL34R.js +78 -0
- package/bin/chunks/chunk-GZDLXYZV.js +3425 -0
- package/bin/chunks/chunk-HNORQ74T.js +40 -0
- package/bin/chunks/chunk-IKNMBGGD.js +217 -0
- package/bin/chunks/chunk-JCRGE6AL.js +14 -0
- package/bin/chunks/chunk-LKN75JGA.js +63 -0
- package/bin/chunks/chunk-M2ETYSVJ.js +176 -0
- package/bin/chunks/chunk-M4LNHYYR.js +177 -0
- package/bin/chunks/chunk-PRLL7B63.js +113 -0
- package/bin/chunks/chunk-R7YELY3C.js +923 -0
- package/bin/chunks/chunk-T6PE4KN4.js +277 -0
- package/bin/chunks/chunk-T7DGRVTP.js +458 -0
- package/bin/chunks/chunk-TY33XMHW.js +239 -0
- package/bin/chunks/chunk-VH7PM7KJ.js +179 -0
- package/bin/chunks/chunk-WEFDVXFX.js +65 -0
- package/bin/chunks/chunk-XGTHGWPW.js +90 -0
- package/bin/chunks/chunk-XL2DRAYI.js +39 -0
- package/bin/chunks/chunk-YCVGD2CG.js +2751 -0
- package/bin/chunks/chunk-YQYHROLZ.js +1023 -0
- package/bin/chunks/chunk-YYPYYOEV.js +34 -0
- package/bin/chunks/chunk-Z2UNY47A.js +2418 -0
- package/bin/chunks/design-context-store-IAT2P2OC.js +39 -0
- package/bin/chunks/packets-VBMY4SQJ.js +53 -0
- package/bin/chunks/policy-2I37JUU3.js +18 -0
- package/bin/chunks/preparation-S4MG3RPL.js +93 -0
- package/bin/chunks/questions-HKELBDFL.js +120 -0
- package/bin/chunks/state-GDL6CCJI.js +20 -0
- package/bin/chunks/template-gallery-ET76ERZQ.js +140 -0
- package/bin/cloudflare/backend.js +24421 -0
- package/bin/cloudflare/blake3.wasm +0 -0
- package/bin/cloudflare/forms-test.js +429 -0
- package/bin/cloudflare/templates.js +100 -0
- package/bin/types/scripts/lib/r2.d.ts +7 -0
- package/bin/types/scripts/onboard/browser.d.ts +9 -0
- package/bin/types/scripts/onboard/crawl.d.ts +35 -0
- package/bin/types/scripts/onboard/images.d.ts +19 -0
- package/bin/types/scripts/onboard/prompt.d.ts +10 -0
- package/bin/types/scripts/onboard/run.d.ts +47 -0
- package/bin/types/src/agent/adaptation-checkpoint.d.ts +70 -0
- package/bin/types/src/agent/added-media.d.ts +31 -0
- package/bin/types/src/agent/api-contracts.d.ts +2 -0
- package/bin/types/src/agent/art-direction-policy.d.ts +9 -0
- package/bin/types/src/agent/art-direction.d.ts +253 -0
- package/bin/types/src/agent/artifacts.d.ts +602 -0
- package/bin/types/src/agent/browser-motion-journey.d.ts +59 -0
- package/bin/types/src/agent/browser-motion.d.ts +40 -0
- package/bin/types/src/agent/browser-timeout.d.ts +4 -0
- package/bin/types/src/agent/composition-authoring.d.ts +12 -0
- package/bin/types/src/agent/composition-context.d.ts +63 -0
- package/bin/types/src/agent/composition-contract.d.ts +4 -0
- package/bin/types/src/agent/composition-decisions.d.ts +43 -0
- package/bin/types/src/agent/composition-preflight.d.ts +16 -0
- package/bin/types/src/agent/creative-change-context.d.ts +21 -0
- package/bin/types/src/agent/creative-context.d.ts +56 -0
- package/bin/types/src/agent/creative-contract.d.ts +123 -0
- package/bin/types/src/agent/creative-efficiency.d.ts +18 -0
- package/bin/types/src/agent/creative-evidence.d.ts +57 -0
- package/bin/types/src/agent/creative-objective.d.ts +33 -0
- package/bin/types/src/agent/creative-profile.d.ts +81 -0
- package/bin/types/src/agent/creative-prompts.d.ts +7 -0
- package/bin/types/src/agent/creative-render-bindings.d.ts +13 -0
- package/bin/types/src/agent/creative-revision.d.ts +33 -0
- package/bin/types/src/agent/creative-skills.d.ts +25 -0
- package/bin/types/src/agent/cursor-hook.d.ts +182 -0
- package/bin/types/src/agent/design-bundle.d.ts +24 -0
- package/bin/types/src/agent/design-calibration.d.ts +43 -0
- package/bin/types/src/agent/design-cli.d.ts +5 -0
- package/bin/types/src/agent/design-comparison.d.ts +63 -0
- package/bin/types/src/agent/design-context-packet.d.ts +82 -0
- package/bin/types/src/agent/design-context-store.d.ts +14 -0
- package/bin/types/src/agent/design-context.d.ts +85 -0
- package/bin/types/src/agent/design-contracts.d.ts +35 -0
- package/bin/types/src/agent/design-copy.d.ts +29 -0
- package/bin/types/src/agent/design-feedback.d.ts +91 -0
- package/bin/types/src/agent/design-knowledge.d.ts +124 -0
- package/bin/types/src/agent/design-quality.d.ts +143 -0
- package/bin/types/src/agent/design-review-server.d.ts +13 -0
- package/bin/types/src/agent/design-run.d.ts +174 -0
- package/bin/types/src/agent/design-synthesis.d.ts +76 -0
- package/bin/types/src/agent/design-usage.d.ts +38 -0
- package/bin/types/src/agent/editorial.d.ts +11 -0
- package/bin/types/src/agent/evaluate.d.ts +28 -0
- package/bin/types/src/agent/grade.d.ts +16 -0
- package/bin/types/src/agent/graph.d.ts +82 -0
- package/bin/types/src/agent/industry/document.d.ts +10 -0
- package/bin/types/src/agent/industry/interactions.d.ts +2 -0
- package/bin/types/src/agent/industry/markup.d.ts +14 -0
- package/bin/types/src/agent/industry/registry.d.ts +2 -0
- package/bin/types/src/agent/industry/render-style.d.ts +3 -0
- package/bin/types/src/agent/industry/ridgeline/browse.d.ts +2 -0
- package/bin/types/src/agent/industry/ridgeline/diagrams.d.ts +9 -0
- package/bin/types/src/agent/industry/ridgeline/facts.d.ts +61 -0
- package/bin/types/src/agent/industry/ridgeline/pages/company.d.ts +5 -0
- package/bin/types/src/agent/industry/ridgeline/pages/home.d.ts +1 -0
- package/bin/types/src/agent/industry/ridgeline/pages/journal.d.ts +24 -0
- package/bin/types/src/agent/industry/ridgeline/pages/services.d.ts +6 -0
- package/bin/types/src/agent/industry/ridgeline/photo.d.ts +18 -0
- package/bin/types/src/agent/industry/ridgeline/script.d.ts +1 -0
- package/bin/types/src/agent/industry/ridgeline/site.d.ts +2 -0
- package/bin/types/src/agent/industry/ridgeline/style.d.ts +1 -0
- package/bin/types/src/agent/industry/ridgeline/theme.d.ts +4 -0
- package/bin/types/src/agent/industry/seven/barber-club.d.ts +2 -0
- package/bin/types/src/agent/industry/seven/barber-corner.d.ts +2 -0
- package/bin/types/src/agent/industry/seven/barber-form.d.ts +2 -0
- package/bin/types/src/agent/industry/seven/browse.d.ts +4 -0
- package/bin/types/src/agent/industry/seven/construction-built.d.ts +2 -0
- package/bin/types/src/agent/industry/seven/construction-craft.d.ts +2 -0
- package/bin/types/src/agent/industry/seven/construction-siteworks.d.ts +3 -0
- package/bin/types/src/agent/industry/seven/electrical-circuit.d.ts +2 -0
- package/bin/types/src/agent/industry/seven/electrical-light.d.ts +3 -0
- package/bin/types/src/agent/industry/seven/electrical-power.d.ts +3 -0
- package/bin/types/src/agent/industry/seven/hvac-climate.d.ts +3 -0
- package/bin/types/src/agent/industry/seven/hvac-dispatch.d.ts +2 -0
- package/bin/types/src/agent/industry/seven/hvac-seasonal.d.ts +2 -0
- package/bin/types/src/agent/industry/seven/interactions.d.ts +2 -0
- package/bin/types/src/agent/industry/seven/landscape-atlas.d.ts +4 -0
- package/bin/types/src/agent/industry/seven/landscape-courtyard.d.ts +3 -0
- package/bin/types/src/agent/industry/seven/landscape-seasons.d.ts +3 -0
- package/bin/types/src/agent/industry/seven/legal-casework.d.ts +2 -0
- package/bin/types/src/agent/industry/seven/legal-counsel.d.ts +2 -0
- package/bin/types/src/agent/industry/seven/legal-table.d.ts +2 -0
- package/bin/types/src/agent/industry/seven/medical-continuum.d.ts +2 -0
- package/bin/types/src/agent/industry/seven/medical-movement.d.ts +2 -0
- package/bin/types/src/agent/industry/seven/medical-neighborhood.d.ts +2 -0
- package/bin/types/src/agent/industry/seven/primitives.d.ts +31 -0
- package/bin/types/src/agent/industry/seven/registry.d.ts +4 -0
- package/bin/types/src/agent/industry/seven/theme.d.ts +3 -0
- package/bin/types/src/agent/industry/sites/common-ground.d.ts +2 -0
- package/bin/types/src/agent/industry/sites/coordination.d.ts +2 -0
- package/bin/types/src/agent/industry/sites/everyday.d.ts +2 -0
- package/bin/types/src/agent/industry/sites/independent.d.ts +2 -0
- package/bin/types/src/agent/industry/sites/mainstage.d.ts +2 -0
- package/bin/types/src/agent/industry/sites/neighborhood.d.ts +2 -0
- package/bin/types/src/agent/industry/sites/next-chapter.d.ts +2 -0
- package/bin/types/src/agent/industry/sites/practice-notes.d.ts +2 -0
- package/bin/types/src/agent/industry/sites/property-desk.d.ts +2 -0
- package/bin/types/src/agent/industry/sites/residence.d.ts +2 -0
- package/bin/types/src/agent/industry/sites/risk-office.d.ts +2 -0
- package/bin/types/src/agent/industry/sites/workshop.d.ts +2 -0
- package/bin/types/src/agent/industry/types.d.ts +48 -0
- package/bin/types/src/agent/invocation-budget.d.ts +32 -0
- package/bin/types/src/agent/jev/agent-usage.d.ts +165 -0
- package/bin/types/src/agent/jev/batching.d.ts +101 -0
- package/bin/types/src/agent/jev/block-catalog.d.ts +95 -0
- package/bin/types/src/agent/jev/bounds.d.ts +30 -0
- package/bin/types/src/agent/jev/budget.d.ts +76 -0
- package/bin/types/src/agent/jev/business-draft.d.ts +103 -0
- package/bin/types/src/agent/jev/calibration.d.ts +131 -0
- package/bin/types/src/agent/jev/client.d.ts +52 -0
- package/bin/types/src/agent/jev/component-select.d.ts +102 -0
- package/bin/types/src/agent/jev/config.d.ts +52 -0
- package/bin/types/src/agent/jev/consistency.d.ts +105 -0
- package/bin/types/src/agent/jev/content-checks.d.ts +121 -0
- package/bin/types/src/agent/jev/creative.d.ts +81 -0
- package/bin/types/src/agent/jev/critic-report.d.ts +132 -0
- package/bin/types/src/agent/jev/extraction.d.ts +84 -0
- package/bin/types/src/agent/jev/goals.d.ts +43 -0
- package/bin/types/src/agent/jev/html-tree.d.ts +28 -0
- package/bin/types/src/agent/jev/indexing.d.ts +51 -0
- package/bin/types/src/agent/jev/ledger.d.ts +154 -0
- package/bin/types/src/agent/jev/media.d.ts +62 -0
- package/bin/types/src/agent/jev/observations.d.ts +26 -0
- package/bin/types/src/agent/jev/ownership.d.ts +74 -0
- package/bin/types/src/agent/jev/packets.d.ts +124 -0
- package/bin/types/src/agent/jev/policy.d.ts +83 -0
- package/bin/types/src/agent/jev/questions.d.ts +244 -0
- package/bin/types/src/agent/jev/ranking.d.ts +129 -0
- package/bin/types/src/agent/jev/repair.d.ts +73 -0
- package/bin/types/src/agent/jev/review.d.ts +37 -0
- package/bin/types/src/agent/jev/security.d.ts +28 -0
- package/bin/types/src/agent/jev/semantic-lifecycle.d.ts +19 -0
- package/bin/types/src/agent/jev/semantic-tasks.d.ts +89 -0
- package/bin/types/src/agent/jev/service-registry.d.ts +98 -0
- package/bin/types/src/agent/jev/state.d.ts +104 -0
- package/bin/types/src/agent/jev/types.d.ts +190 -0
- package/bin/types/src/agent/jev/visible-assertions.d.ts +84 -0
- package/bin/types/src/agent/kernel-commands.d.ts +2 -0
- package/bin/types/src/agent/kit-runtime.d.ts +12 -0
- package/bin/types/src/agent/legacy-definitions/theme-art.d.ts +5 -0
- package/bin/types/src/agent/legacy-definitions/theme-commissions.d.ts +1 -0
- package/bin/types/src/agent/legacy-definitions/theme-compositions-extremes.d.ts +7 -0
- package/bin/types/src/agent/legacy-definitions/theme-compositions-graphic.d.ts +2 -0
- package/bin/types/src/agent/legacy-definitions/theme-compositions-reading.d.ts +2 -0
- package/bin/types/src/agent/legacy-definitions/theme-compositions-service-extremes.d.ts +2 -0
- package/bin/types/src/agent/legacy-definitions/theme-compositions-service-people.d.ts +2 -0
- package/bin/types/src/agent/legacy-definitions/theme-compositions-service-programme.d.ts +3 -0
- package/bin/types/src/agent/legacy-definitions/theme-compositions-service-project.d.ts +2 -0
- package/bin/types/src/agent/legacy-definitions/theme-compositions-service-season.d.ts +2 -0
- package/bin/types/src/agent/legacy-definitions/theme-compositions-tactile.d.ts +2 -0
- package/bin/types/src/agent/legacy-definitions/theme-compositions.d.ts +2 -0
- package/bin/types/src/agent/legacy-definitions/theme-legacy-specimens.d.ts +8 -0
- package/bin/types/src/agent/legacy-definitions/theme-library-legacy.d.ts +20 -0
- package/bin/types/src/agent/legacy-definitions/theme-library-release2.d.ts +3 -0
- package/bin/types/src/agent/legacy-definitions/theme-service-art.d.ts +7 -0
- package/bin/types/src/agent/legacy-definitions/theme-service-commissions.d.ts +1 -0
- package/bin/types/src/agent/legacy-definitions/theme-specimen-base.d.ts +1 -0
- package/bin/types/src/agent/legacy-definitions/theme-specimens.d.ts +2 -0
- package/bin/types/src/agent/legacy-definitions/theme-suite-data.d.ts +25 -0
- package/bin/types/src/agent/legacy-definitions/theme-suite-style.d.ts +1 -0
- package/bin/types/src/agent/legacy-definitions/theme-suites-checkpoint.d.ts +14 -0
- package/bin/types/src/agent/legacy-definitions/theme-suites-graphic.d.ts +2 -0
- package/bin/types/src/agent/legacy-definitions/theme-suites-information.d.ts +2 -0
- package/bin/types/src/agent/legacy-definitions/theme-suites-local.d.ts +2 -0
- package/bin/types/src/agent/legacy-definitions/theme-suites-material.d.ts +2 -0
- package/bin/types/src/agent/legacy-definitions/theme-suites-practice.d.ts +2 -0
- package/bin/types/src/agent/legacy-definitions/theme-suites-spatial.d.ts +2 -0
- package/bin/types/src/agent/legacy-definitions/theme-suites.d.ts +3 -0
- package/bin/types/src/agent/lifecycle.d.ts +136 -0
- package/bin/types/src/agent/lighthouse-browser.d.ts +5 -0
- package/bin/types/src/agent/media-format.d.ts +5 -0
- package/bin/types/src/agent/migration-links.d.ts +4 -0
- package/bin/types/src/agent/motion-composition.d.ts +22 -0
- package/bin/types/src/agent/motion-knowledge.d.ts +3 -0
- package/bin/types/src/agent/motion-plan.d.ts +6 -0
- package/bin/types/src/agent/performance.d.ts +52 -0
- package/bin/types/src/agent/playwright-runtime.d.ts +8 -0
- package/bin/types/src/agent/preparation.d.ts +193 -0
- package/bin/types/src/agent/preview.d.ts +1 -0
- package/bin/types/src/agent/production-quality.d.ts +72 -0
- package/bin/types/src/agent/reference-contract.d.ts +3 -0
- package/bin/types/src/agent/reference-fit.d.ts +50 -0
- package/bin/types/src/agent/reference-library.d.ts +313 -0
- package/bin/types/src/agent/reference-studies.d.ts +110 -0
- package/bin/types/src/agent/refine.d.ts +348 -0
- package/bin/types/src/agent/result-manifest.d.ts +38 -0
- package/bin/types/src/agent/runner.d.ts +10 -0
- package/bin/types/src/agent/site-inputs.d.ts +26 -0
- package/bin/types/src/agent/source-manifest.d.ts +9 -0
- package/bin/types/src/agent/state-transition.d.ts +16 -0
- package/bin/types/src/agent/storyboard-media.d.ts +11 -0
- package/bin/types/src/agent/study-render.d.ts +27 -0
- package/bin/types/src/agent/template-adaptation.d.ts +69 -0
- package/bin/types/src/agent/template-motion.d.ts +59 -0
- package/bin/types/src/agent/theme-art-direction.d.ts +2 -0
- package/bin/types/src/agent/theme-art.d.ts +1 -0
- package/bin/types/src/agent/theme-assets.d.ts +36 -0
- package/bin/types/src/agent/theme-browse.d.ts +67 -0
- package/bin/types/src/agent/theme-cloud-resources.d.ts +7 -0
- package/bin/types/src/agent/theme-cloud.d.ts +41 -0
- package/bin/types/src/agent/theme-commissions.d.ts +1 -0
- package/bin/types/src/agent/theme-compositions-extremes.d.ts +1 -0
- package/bin/types/src/agent/theme-compositions.d.ts +1 -0
- package/bin/types/src/agent/theme-identity.d.ts +23 -0
- package/bin/types/src/agent/theme-layout-roles.d.ts +7 -0
- package/bin/types/src/agent/theme-legacy-specimens.d.ts +1 -0
- package/bin/types/src/agent/theme-library-legacy.d.ts +1 -0
- package/bin/types/src/agent/theme-library-release2.d.ts +1 -0
- package/bin/types/src/agent/theme-library.d.ts +60 -0
- package/bin/types/src/agent/theme-page-manifest.d.ts +26 -0
- package/bin/types/src/agent/theme-picker-model.d.ts +51 -0
- package/bin/types/src/agent/theme-picker-runtime.d.ts +1 -0
- package/bin/types/src/agent/theme-picker-selection-runtime.d.ts +1 -0
- package/bin/types/src/agent/theme-picker-shell.d.ts +7 -0
- package/bin/types/src/agent/theme-picker-styles.d.ts +1 -0
- package/bin/types/src/agent/theme-picker.d.ts +20 -0
- package/bin/types/src/agent/theme-preview.d.ts +26 -0
- package/bin/types/src/agent/theme-release2/assets.d.ts +22 -0
- package/bin/types/src/agent/theme-release2/specimens.d.ts +2 -0
- package/bin/types/src/agent/theme-release2/theme-art.d.ts +5 -0
- package/bin/types/src/agent/theme-release2/theme-compositions-extremes.d.ts +7 -0
- package/bin/types/src/agent/theme-release2/theme-compositions-graphic.d.ts +2 -0
- package/bin/types/src/agent/theme-release2/theme-compositions-reading.d.ts +2 -0
- package/bin/types/src/agent/theme-release2/theme-compositions-tactile.d.ts +2 -0
- package/bin/types/src/agent/theme-release2/theme-compositions.d.ts +3 -0
- package/bin/types/src/agent/theme-release2/theme-specimen-base.d.ts +1 -0
- package/bin/types/src/agent/theme-release3/theme-art-direction.d.ts +2 -0
- package/bin/types/src/agent/theme-release3/theme-art.d.ts +5 -0
- package/bin/types/src/agent/theme-release3/theme-assets.d.ts +121 -0
- package/bin/types/src/agent/theme-release3/theme-compositions-extremes.d.ts +7 -0
- package/bin/types/src/agent/theme-release3/theme-compositions-graphic.d.ts +2 -0
- package/bin/types/src/agent/theme-release3/theme-compositions-reading.d.ts +2 -0
- package/bin/types/src/agent/theme-release3/theme-compositions-service-extremes.d.ts +2 -0
- package/bin/types/src/agent/theme-release3/theme-compositions-service-people.d.ts +2 -0
- package/bin/types/src/agent/theme-release3/theme-compositions-service-programme.d.ts +2 -0
- package/bin/types/src/agent/theme-release3/theme-compositions-service-project.d.ts +2 -0
- package/bin/types/src/agent/theme-release3/theme-compositions-service-season.d.ts +2 -0
- package/bin/types/src/agent/theme-release3/theme-compositions-tactile.d.ts +2 -0
- package/bin/types/src/agent/theme-release3/theme-compositions.d.ts +2 -0
- package/bin/types/src/agent/theme-release3/theme-identity.d.ts +23 -0
- package/bin/types/src/agent/theme-release3/theme-library.d.ts +4 -0
- package/bin/types/src/agent/theme-release3/theme-service-art.d.ts +7 -0
- package/bin/types/src/agent/theme-release3/theme-specimen-base.d.ts +1 -0
- package/bin/types/src/agent/theme-release3/theme-specimens.d.ts +2 -0
- package/bin/types/src/agent/theme-selection.d.ts +75 -0
- package/bin/types/src/agent/theme-service-art.d.ts +1 -0
- package/bin/types/src/agent/theme-specimen-base.d.ts +1 -0
- package/bin/types/src/agent/theme-specimens.d.ts +1 -0
- package/bin/types/src/agent/theme-suite-data.d.ts +1 -0
- package/bin/types/src/agent/theme-suite-identity.d.ts +42 -0
- package/bin/types/src/agent/theme-suite-primitives.d.ts +14 -0
- package/bin/types/src/agent/theme-suite-renderer.d.ts +8 -0
- package/bin/types/src/agent/theme-suite-style.d.ts +1 -0
- package/bin/types/src/agent/theme-suites.d.ts +1 -0
- package/bin/types/src/agent/theme-thumbnails.d.ts +8 -0
- package/bin/types/src/agent/trace.d.ts +337 -0
- package/bin/types/src/agent/workflow-config.d.ts +25 -0
- package/bin/types/src/agent/workflow.d.ts +104 -0
- package/bin/types/src/blocks/library-profile.d.ts +9 -0
- package/bin/types/src/blocks/metadata.d.ts +65 -0
- package/bin/types/src/build/index.d.ts +29 -0
- package/bin/types/src/build/responsive-media.d.ts +19 -0
- package/bin/types/src/build/serve.d.ts +4 -0
- package/bin/types/src/build/static-output.d.ts +2 -0
- package/bin/types/src/build/verified.d.ts +1 -0
- package/bin/types/src/cli/api.d.ts +17 -0
- package/bin/types/src/cli/deploy.d.ts +21 -0
- package/bin/types/src/cli/doctor.d.ts +16 -0
- package/bin/types/src/cli/events.d.ts +16 -0
- package/bin/types/src/cli/feedback.d.ts +21 -0
- package/bin/types/src/cli/forms.d.ts +16 -0
- package/bin/types/src/cli/index.d.ts +1 -0
- package/bin/types/src/cli/lifecycle.d.ts +18 -0
- package/bin/types/src/cli/preserve.d.ts +8 -0
- package/bin/types/src/cli/preview.d.ts +14 -0
- package/bin/types/src/cli/refine.d.ts +41 -0
- package/bin/types/src/cli/root.d.ts +3 -0
- package/bin/types/src/cli/run.d.ts +30 -0
- package/bin/types/src/cli/share.d.ts +17 -0
- package/bin/types/src/cli/site-create.d.ts +24 -0
- package/bin/types/src/cli/site-migrate.d.ts +11 -0
- package/bin/types/src/cli/status.d.ts +8 -0
- package/bin/types/src/cli/types.d.ts +34 -0
- package/bin/types/src/cli/upgrade.d.ts +11 -0
- package/bin/types/src/cli/verify.d.ts +17 -0
- package/bin/types/src/cli/workflow-argv.d.ts +2 -0
- package/bin/types/src/compile/flatten.d.ts +23 -0
- package/bin/types/src/compile/frontmatter.d.ts +10 -0
- package/bin/types/src/compile/icons.d.ts +2 -0
- package/bin/types/src/compile/paths.d.ts +4 -0
- package/bin/types/src/compile/primitives.d.ts +2 -0
- package/bin/types/src/compile/scroll-motion.d.ts +14 -0
- package/bin/types/src/compile/site.d.ts +40 -0
- package/bin/types/src/editing/identity.d.ts +7 -0
- package/bin/types/src/editing/manifest.d.ts +38 -0
- package/bin/types/src/engine/checks.d.ts +2 -0
- package/bin/types/src/engine/contracts.d.ts +104 -0
- package/bin/types/src/engine/impact.d.ts +3 -0
- package/bin/types/src/engine/index.d.ts +70 -0
- package/bin/types/src/engine/revision.d.ts +5 -0
- package/bin/types/src/forms/cloudflare.d.ts +24 -0
- package/bin/types/src/forms/config.d.ts +34 -0
- package/bin/types/src/forms/frontend.d.ts +9 -0
- package/bin/types/src/html.d.ts +3 -0
- package/bin/types/src/icons/catalog.d.ts +28 -0
- package/bin/types/src/icons/coverage.d.ts +12 -0
- package/bin/types/src/icons/drawing.d.ts +7 -0
- package/bin/types/src/icons/duotone.d.ts +4 -0
- package/bin/types/src/icons/index.d.ts +37 -0
- package/bin/types/src/icons/industry-refinements-v4.d.ts +4 -0
- package/bin/types/src/icons/industry-review.d.ts +11 -0
- package/bin/types/src/icons/industry.d.ts +2 -0
- package/bin/types/src/icons/refinements.d.ts +5 -0
- package/bin/types/src/icons/studio-industry-review.d.ts +9 -0
- package/bin/types/src/icons/studio-industry.d.ts +5 -0
- package/bin/types/src/icons/studio.d.ts +34 -0
- package/bin/types/src/integrations/cloudflare-pages.d.ts +10 -0
- package/bin/types/src/integrations/deployment-smoke.d.ts +11 -0
- package/bin/types/src/integrations/hosting.d.ts +33 -0
- package/bin/types/src/integrations/wrangler-command.d.ts +5 -0
- package/bin/types/src/knowledge/artifact-order.d.ts +1 -0
- package/bin/types/src/knowledge/artifact.d.ts +11 -0
- package/bin/types/src/knowledge/composition.d.ts +54 -0
- package/bin/types/src/knowledge/contracts.d.ts +111 -0
- package/bin/types/src/knowledge/explain.d.ts +6 -0
- package/bin/types/src/knowledge/pack.d.ts +32 -0
- package/bin/types/src/knowledge/selection.d.ts +18 -0
- package/bin/types/src/knowledge/site-widgets.d.ts +6 -0
- package/bin/types/src/onboard/brief.d.ts +182 -0
- package/bin/types/src/onboard/classify.d.ts +31 -0
- package/bin/types/src/onboard/crawl-order.d.ts +7 -0
- package/bin/types/src/onboard/extract.d.ts +102 -0
- package/bin/types/src/onboard/harvest-inventory.d.ts +84 -0
- package/bin/types/src/onboard/outline.d.ts +13 -0
- package/bin/types/src/onboard/quality.d.ts +6 -0
- package/bin/types/src/onboard/shortlist.d.ts +11 -0
- package/bin/types/src/onboard/social.d.ts +15 -0
- package/bin/types/src/onboard/visual-hints.d.ts +12 -0
- package/bin/types/src/preserve/build.d.ts +1 -0
- package/bin/types/src/preserve/capture.d.ts +21 -0
- package/bin/types/src/preserve/components.d.ts +10 -0
- package/bin/types/src/preserve/config.d.ts +53 -0
- package/bin/types/src/preserve/embeds.d.ts +15 -0
- package/bin/types/src/preserve/hovers.d.ts +10 -0
- package/bin/types/src/preserve/react-capabilities.d.ts +2 -0
- package/bin/types/src/preserve/runtime.d.ts +2 -0
- package/bin/types/src/preserve/source-defects.d.ts +4 -0
- package/bin/types/src/preserve/supplement.d.ts +3 -0
- package/bin/types/src/preserve/verify.d.ts +29 -0
- package/bin/types/src/render.d.ts +10 -0
- package/bin/types/src/runtime/beacon.d.ts +2 -0
- package/bin/types/src/runtime/before-after.d.ts +2 -0
- package/bin/types/src/runtime/carousel.d.ts +2 -0
- package/bin/types/src/runtime/cookie-compliance.d.ts +14 -0
- package/bin/types/src/runtime/experience.d.ts +4 -0
- package/bin/types/src/runtime/header.d.ts +2 -0
- package/bin/types/src/runtime/leads.d.ts +2 -0
- package/bin/types/src/runtime/lightbox.d.ts +2 -0
- package/bin/types/src/runtime/scroll-motion.generated.d.ts +4 -0
- package/bin/types/src/runtime/tabs.d.ts +2 -0
- package/bin/types/src/schema.d.ts +27 -0
- package/bin/types/src/stock/library.d.ts +14 -0
- package/bin/types/src/stock/search.d.ts +30 -0
- package/bin/types/src/stock/selection.d.ts +30 -0
- package/bin/types/src/stock/types.d.ts +54 -0
- package/bin/types/src/theme.d.ts +3 -0
- package/bin/types/src/types.d.ts +115 -0
- package/bin/types/src/upgrade/kit.d.ts +48 -0
- package/bin/vitris-art.js +192 -0
- package/bin/vitris-blocks.js +238 -0
- package/bin/vitris-build.js +24 -0
- package/bin/vitris-catalog.js +49 -0
- package/bin/vitris-content-coverage.js +21 -0
- package/bin/vitris-create-site.js +86 -0
- package/bin/vitris-cursor-hook.js +61 -0
- package/bin/vitris-eval.js +76 -0
- package/bin/vitris-go.js +99 -0
- package/bin/vitris-harvest.js +184 -0
- package/bin/vitris-icons.js +168 -0
- package/bin/vitris-knowledge.js +43 -0
- package/bin/vitris-launch-preflight.js +964 -0
- package/bin/vitris-media-serve.js +50 -0
- package/bin/vitris-migrate-site.js +20 -0
- package/bin/vitris-motion-view.js +80 -0
- package/bin/vitris-prepare-media.js +64 -0
- package/bin/vitris-preview.js +36 -0
- package/bin/vitris-references.js +173 -0
- package/bin/vitris-refresh.js +50 -0
- package/bin/vitris-sign-publish-bundle.js +64 -0
- package/bin/vitris-stock.js +161 -0
- package/bin/vitris-templates.js +261 -0
- package/bin/vitris-themes.js +321 -0
- package/bin/vitris-upgrade.js +50 -0
- package/bin/vitris-verify-browser.js +662 -0
- package/bin/vitris-verify-performance.js +44 -0
- package/bin/vitris.js +50 -0
- package/blocks/CONVENTIONS.md +121 -0
- package/blocks/INDEX.md +130 -0
- package/blocks/about/about-awards/README.md +36 -0
- package/blocks/about/about-awards/styles.css +13 -0
- package/blocks/about/about-awards/template.html +1 -0
- package/blocks/about/about-credentials/README.md +33 -0
- package/blocks/about/about-credentials/block.meta.json +85 -0
- package/blocks/about/about-credentials/styles.css +4 -0
- package/blocks/about/about-credentials/template.html +1 -0
- package/blocks/about/about-founder/README.md +35 -0
- package/blocks/about/about-founder/styles.css +9 -0
- package/blocks/about/about-founder/template.html +1 -0
- package/blocks/about/about-mission/README.md +31 -0
- package/blocks/about/about-mission/styles.css +5 -0
- package/blocks/about/about-mission/template.html +1 -0
- package/blocks/about/about-statement/README.md +28 -0
- package/blocks/about/about-statement/styles.css +7 -0
- package/blocks/about/about-statement/template.html +1 -0
- package/blocks/about/about-story/README.md +35 -0
- package/blocks/about/about-story/styles.css +5 -0
- package/blocks/about/about-story/template.html +1 -0
- package/blocks/about/about-timeline/README.md +33 -0
- package/blocks/about/about-timeline/styles.css +8 -0
- package/blocks/about/about-timeline/template.html +1 -0
- package/blocks/about/about-values/README.md +31 -0
- package/blocks/about/about-values/styles.css +3 -0
- package/blocks/about/about-values/template.html +1 -0
- package/blocks/blog/blog-featured/README.md +39 -0
- package/blocks/blog/blog-featured/styles.css +12 -0
- package/blocks/blog/blog-featured/template.html +1 -0
- package/blocks/blog/blog-index/README.md +34 -0
- package/blocks/blog/blog-index/styles.css +6 -0
- package/blocks/blog/blog-index/template.html +1 -0
- package/blocks/blog/blog-post-header/README.md +31 -0
- package/blocks/blog/blog-post-header/styles.css +8 -0
- package/blocks/blog/blog-post-header/template.html +1 -0
- package/blocks/contact/contact-cards/README.md +32 -0
- package/blocks/contact/contact-cards/styles.css +7 -0
- package/blocks/contact/contact-cards/template.html +1 -0
- package/blocks/contact/contact-chips/README.md +41 -0
- package/blocks/contact/contact-chips/styles.css +13 -0
- package/blocks/contact/contact-chips/template.html +1 -0
- package/blocks/contact/contact-hours/README.md +41 -0
- package/blocks/contact/contact-hours/block.meta.json +87 -0
- package/blocks/contact/contact-hours/styles.css +8 -0
- package/blocks/contact/contact-hours/template.html +1 -0
- package/blocks/contact/contact-map/README.md +39 -0
- package/blocks/contact/contact-map/styles.css +10 -0
- package/blocks/contact/contact-map/template.html +1 -0
- package/blocks/contact/contact-offices/README.md +32 -0
- package/blocks/contact/contact-offices/styles.css +8 -0
- package/blocks/contact/contact-offices/template.html +1 -0
- package/blocks/contact/contact-phone-first/README.md +33 -0
- package/blocks/contact/contact-phone-first/block.meta.json +86 -0
- package/blocks/contact/contact-phone-first/styles.css +11 -0
- package/blocks/contact/contact-phone-first/template.html +1 -0
- package/blocks/contact/contact-split/README.md +43 -0
- package/blocks/contact/contact-split/styles.css +12 -0
- package/blocks/contact/contact-split/template.html +1 -0
- package/blocks/contact/contact-visit/README.md +36 -0
- package/blocks/contact/contact-visit/block.meta.json +88 -0
- package/blocks/contact/contact-visit/styles.css +13 -0
- package/blocks/contact/contact-visit/template.html +1 -0
- package/blocks/contact/service-areas/README.md +32 -0
- package/blocks/contact/service-areas/styles.css +9 -0
- package/blocks/contact/service-areas/template.html +1 -0
- package/blocks/content/glossary/README.md +35 -0
- package/blocks/content/glossary/styles.css +6 -0
- package/blocks/content/glossary/template.html +1 -0
- package/blocks/content/list-split/README.md +33 -0
- package/blocks/content/list-split/styles.css +13 -0
- package/blocks/content/list-split/template.html +1 -0
- package/blocks/content/prose-split/README.md +32 -0
- package/blocks/content/prose-split/styles.css +12 -0
- package/blocks/content/prose-split/template.html +1 -0
- package/blocks/content/specification-ledger/README.md +32 -0
- package/blocks/content/specification-ledger/block.meta.json +85 -0
- package/blocks/content/specification-ledger/styles.css +10 -0
- package/blocks/content/specification-ledger/template.html +1 -0
- package/blocks/cta/cta-band/README.md +33 -0
- package/blocks/cta/cta-band/styles.css +11 -0
- package/blocks/cta/cta-band/template.html +1 -0
- package/blocks/cta/cta-card/README.md +35 -0
- package/blocks/cta/cta-card/styles.css +8 -0
- package/blocks/cta/cta-card/template.html +1 -0
- package/blocks/cta/cta-floating-bar/README.md +28 -0
- package/blocks/cta/cta-floating-bar/styles.css +8 -0
- package/blocks/cta/cta-floating-bar/template.html +1 -0
- package/blocks/cta/cta-inline/README.md +30 -0
- package/blocks/cta/cta-inline/styles.css +9 -0
- package/blocks/cta/cta-inline/template.html +1 -0
- package/blocks/cta/cta-newsletter/README.md +34 -0
- package/blocks/cta/cta-newsletter/styles.css +8 -0
- package/blocks/cta/cta-newsletter/template.html +1 -0
- package/blocks/cta/cta-photo-fan/README.md +36 -0
- package/blocks/cta/cta-photo-fan/styles.css +14 -0
- package/blocks/cta/cta-photo-fan/template.html +1 -0
- package/blocks/cta/cta-split/README.md +38 -0
- package/blocks/cta/cta-split/styles.css +10 -0
- package/blocks/cta/cta-split/template.html +1 -0
- package/blocks/faq/faq-accordion/README.md +36 -0
- package/blocks/faq/faq-accordion/styles.css +6 -0
- package/blocks/faq/faq-accordion/template.html +1 -0
- package/blocks/faq/faq-grouped/README.md +40 -0
- package/blocks/faq/faq-grouped/styles.css +20 -0
- package/blocks/faq/faq-grouped/template.html +1 -0
- package/blocks/faq/faq-split/README.md +37 -0
- package/blocks/faq/faq-split/styles.css +5 -0
- package/blocks/faq/faq-split/template.html +1 -0
- package/blocks/faq/faq-tabs/README.md +36 -0
- package/blocks/faq/faq-tabs/styles.css +3 -0
- package/blocks/faq/faq-tabs/template.html +1 -0
- package/blocks/feature/feature-bento/README.md +33 -0
- package/blocks/feature/feature-bento/styles.css +7 -0
- package/blocks/feature/feature-bento/template.html +1 -0
- package/blocks/feature/feature-compare-table/README.md +44 -0
- package/blocks/feature/feature-compare-table/styles.css +15 -0
- package/blocks/feature/feature-compare-table/template.html +1 -0
- package/blocks/feature/feature-comparison/README.md +34 -0
- package/blocks/feature/feature-comparison/styles.css +6 -0
- package/blocks/feature/feature-comparison/template.html +1 -0
- package/blocks/feature/feature-grid-3/README.md +34 -0
- package/blocks/feature/feature-grid-3/styles.css +8 -0
- package/blocks/feature/feature-grid-3/template.html +1 -0
- package/blocks/feature/feature-icon-list/README.md +39 -0
- package/blocks/feature/feature-icon-list/styles.css +9 -0
- package/blocks/feature/feature-icon-list/template.html +1 -0
- package/blocks/feature/feature-spotlight/README.md +39 -0
- package/blocks/feature/feature-spotlight/styles.css +5 -0
- package/blocks/feature/feature-spotlight/template.html +1 -0
- package/blocks/feature/feature-stats-band/README.md +33 -0
- package/blocks/feature/feature-stats-band/styles.css +8 -0
- package/blocks/feature/feature-stats-band/template.html +1 -0
- package/blocks/feature/feature-tabs/README.md +38 -0
- package/blocks/feature/feature-tabs/styles.css +7 -0
- package/blocks/feature/feature-tabs/template.html +1 -0
- package/blocks/feature/feature-thumb-list/README.md +38 -0
- package/blocks/feature/feature-thumb-list/styles.css +13 -0
- package/blocks/feature/feature-thumb-list/template.html +1 -0
- package/blocks/feature/feature-zigzag/README.md +31 -0
- package/blocks/feature/feature-zigzag/styles.css +6 -0
- package/blocks/feature/feature-zigzag/template.html +1 -0
- package/blocks/footer/footer-columns/README.md +39 -0
- package/blocks/footer/footer-columns/styles.css +16 -0
- package/blocks/footer/footer-columns/template.html +1 -0
- package/blocks/footer/footer-compact/README.md +33 -0
- package/blocks/footer/footer-compact/styles.css +12 -0
- package/blocks/footer/footer-compact/template.html +1 -0
- package/blocks/footer/footer-cta/README.md +37 -0
- package/blocks/footer/footer-cta/styles.css +18 -0
- package/blocks/footer/footer-cta/template.html +1 -0
- package/blocks/footer/footer-social/README.md +37 -0
- package/blocks/footer/footer-social/styles.css +17 -0
- package/blocks/footer/footer-social/template.html +1 -0
- package/blocks/footer/footer-wordmark/README.md +40 -0
- package/blocks/footer/footer-wordmark/styles.css +19 -0
- package/blocks/footer/footer-wordmark/template.html +1 -0
- package/blocks/gallery/gallery-before-after/README.md +31 -0
- package/blocks/gallery/gallery-before-after/styles.css +6 -0
- package/blocks/gallery/gallery-before-after/template.html +1 -0
- package/blocks/gallery/gallery-carousel/README.md +32 -0
- package/blocks/gallery/gallery-carousel/styles.css +7 -0
- package/blocks/gallery/gallery-carousel/template.html +1 -0
- package/blocks/gallery/gallery-grid/README.md +39 -0
- package/blocks/gallery/gallery-grid/styles.css +13 -0
- package/blocks/gallery/gallery-grid/template.html +1 -0
- package/blocks/gallery/gallery-masonry/README.md +33 -0
- package/blocks/gallery/gallery-masonry/styles.css +4 -0
- package/blocks/gallery/gallery-masonry/template.html +1 -0
- package/blocks/gallery/gallery-mosaic-split/README.md +40 -0
- package/blocks/gallery/gallery-mosaic-split/styles.css +15 -0
- package/blocks/gallery/gallery-mosaic-split/template.html +1 -0
- package/blocks/hero/hero-asymmetric/README.md +34 -0
- package/blocks/hero/hero-asymmetric/styles.css +13 -0
- package/blocks/hero/hero-asymmetric/template.html +10 -0
- package/blocks/hero/hero-before-after/README.md +38 -0
- package/blocks/hero/hero-before-after/styles.css +8 -0
- package/blocks/hero/hero-before-after/template.html +19 -0
- package/blocks/hero/hero-editorial/README.md +34 -0
- package/blocks/hero/hero-editorial/block.meta.json +85 -0
- package/blocks/hero/hero-editorial/styles.css +6 -0
- package/blocks/hero/hero-editorial/template.html +10 -0
- package/blocks/hero/hero-evidence/README.md +32 -0
- package/blocks/hero/hero-evidence/block.meta.json +85 -0
- package/blocks/hero/hero-evidence/styles.css +13 -0
- package/blocks/hero/hero-evidence/template.html +1 -0
- package/blocks/hero/hero-form/README.md +46 -0
- package/blocks/hero/hero-form/styles.css +11 -0
- package/blocks/hero/hero-form/template.html +15 -0
- package/blocks/hero/hero-menu/README.md +36 -0
- package/blocks/hero/hero-menu/styles.css +7 -0
- package/blocks/hero/hero-menu/template.html +10 -0
- package/blocks/hero/hero-overlay/README.md +35 -0
- package/blocks/hero/hero-overlay/styles.css +14 -0
- package/blocks/hero/hero-overlay/template.html +10 -0
- package/blocks/hero/hero-page/README.md +35 -0
- package/blocks/hero/hero-page/styles.css +19 -0
- package/blocks/hero/hero-page/template.html +1 -0
- package/blocks/hero/hero-product/README.md +41 -0
- package/blocks/hero/hero-product/styles.css +11 -0
- package/blocks/hero/hero-product/template.html +14 -0
- package/blocks/hero/hero-service/README.md +37 -0
- package/blocks/hero/hero-service/block.meta.json +85 -0
- package/blocks/hero/hero-service/styles.css +17 -0
- package/blocks/hero/hero-service/template.html +1 -0
- package/blocks/hero/hero-split/README.md +36 -0
- package/blocks/hero/hero-split/styles.css +7 -0
- package/blocks/hero/hero-split/template.html +11 -0
- package/blocks/hero/hero-statement/README.md +33 -0
- package/blocks/hero/hero-statement/styles.css +8 -0
- package/blocks/hero/hero-statement/template.html +1 -0
- package/blocks/hero/hero-stats/README.md +37 -0
- package/blocks/hero/hero-stats/styles.css +10 -0
- package/blocks/hero/hero-stats/template.html +10 -0
- package/blocks/hero/hero-video-still/README.md +36 -0
- package/blocks/hero/hero-video-still/styles.css +9 -0
- package/blocks/hero/hero-video-still/template.html +13 -0
- package/blocks/icons.md +44 -0
- package/blocks/incentives/incentive-banner/README.md +28 -0
- package/blocks/incentives/incentive-banner/styles.css +7 -0
- package/blocks/incentives/incentive-banner/template.html +1 -0
- package/blocks/incentives/incentive-cards/README.md +31 -0
- package/blocks/incentives/incentive-cards/styles.css +4 -0
- package/blocks/incentives/incentive-cards/template.html +1 -0
- package/blocks/navbar/nav-announcement/README.md +35 -0
- package/blocks/navbar/nav-announcement/styles.css +10 -0
- package/blocks/navbar/nav-announcement/template.html +14 -0
- package/blocks/navbar/nav-centered/README.md +35 -0
- package/blocks/navbar/nav-centered/styles.css +11 -0
- package/blocks/navbar/nav-centered/template.html +12 -0
- package/blocks/navbar/nav-minimal/README.md +29 -0
- package/blocks/navbar/nav-minimal/styles.css +5 -0
- package/blocks/navbar/nav-minimal/template.html +6 -0
- package/blocks/navbar/nav-split/README.md +34 -0
- package/blocks/navbar/nav-split/styles.css +11 -0
- package/blocks/navbar/nav-split/template.html +11 -0
- package/blocks/navbar/nav-utility/README.md +37 -0
- package/blocks/navbar/nav-utility/styles.css +17 -0
- package/blocks/navbar/nav-utility/template.html +12 -0
- package/blocks/pricing/menu-featured/README.md +34 -0
- package/blocks/pricing/menu-featured/styles.css +4 -0
- package/blocks/pricing/menu-featured/template.html +1 -0
- package/blocks/pricing/menu-sections/README.md +33 -0
- package/blocks/pricing/menu-sections/styles.css +9 -0
- package/blocks/pricing/menu-sections/template.html +1 -0
- package/blocks/pricing/pricing-table/README.md +40 -0
- package/blocks/pricing/pricing-table/styles.css +9 -0
- package/blocks/pricing/pricing-table/template.html +1 -0
- package/blocks/pricing/pricing-tiers/README.md +34 -0
- package/blocks/pricing/pricing-tiers/styles.css +7 -0
- package/blocks/pricing/pricing-tiers/template.html +1 -0
- package/blocks/pricing/pricing-toggle/README.md +34 -0
- package/blocks/pricing/pricing-toggle/styles.css +10 -0
- package/blocks/pricing/pricing-toggle/template.html +1 -0
- package/blocks/process/process-carousel/README.md +33 -0
- package/blocks/process/process-carousel/styles.css +5 -0
- package/blocks/process/process-carousel/template.html +1 -0
- package/blocks/process/process-split/README.md +35 -0
- package/blocks/process/process-split/styles.css +6 -0
- package/blocks/process/process-split/template.html +1 -0
- package/blocks/process/process-stepper/README.md +40 -0
- package/blocks/process/process-stepper/styles.css +11 -0
- package/blocks/process/process-stepper/template.html +1 -0
- package/blocks/process/process-steps/README.md +35 -0
- package/blocks/process/process-steps/styles.css +6 -0
- package/blocks/process/process-steps/template.html +1 -0
- package/blocks/process/process-sticky/README.md +38 -0
- package/blocks/process/process-sticky/styles.css +12 -0
- package/blocks/process/process-sticky/template.html +1 -0
- package/blocks/process/process-timeline/README.md +35 -0
- package/blocks/process/process-timeline/styles.css +10 -0
- package/blocks/process/process-timeline/template.html +1 -0
- package/blocks/services/services-cards/README.md +34 -0
- package/blocks/services/services-cards/styles.css +3 -0
- package/blocks/services/services-cards/template.html +1 -0
- package/blocks/services/services-carousel/README.md +34 -0
- package/blocks/services/services-carousel/styles.css +6 -0
- package/blocks/services/services-carousel/template.html +1 -0
- package/blocks/services/services-list/README.md +32 -0
- package/blocks/services/services-list/block.meta.json +85 -0
- package/blocks/services/services-list/styles.css +10 -0
- package/blocks/services/services-list/template.html +1 -0
- package/blocks/services/services-menu/README.md +39 -0
- package/blocks/services/services-menu/styles.css +6 -0
- package/blocks/services/services-menu/template.html +1 -0
- package/blocks/services/services-packages/README.md +34 -0
- package/blocks/services/services-packages/styles.css +6 -0
- package/blocks/services/services-packages/template.html +1 -0
- package/blocks/services/services-panels/README.md +36 -0
- package/blocks/services/services-panels/styles.css +15 -0
- package/blocks/services/services-panels/template.html +1 -0
- package/blocks/services/services-photo-grid/README.md +39 -0
- package/blocks/services/services-photo-grid/styles.css +10 -0
- package/blocks/services/services-photo-grid/template.html +1 -0
- package/blocks/services/services-priority/README.md +33 -0
- package/blocks/services/services-priority/block.meta.json +86 -0
- package/blocks/services/services-priority/styles.css +16 -0
- package/blocks/services/services-priority/template.html +1 -0
- package/blocks/stats/stats-cards/README.md +31 -0
- package/blocks/stats/stats-cards/styles.css +4 -0
- package/blocks/stats/stats-cards/template.html +1 -0
- package/blocks/stats/stats-mosaic/README.md +27 -0
- package/blocks/stats/stats-mosaic/styles.css +9 -0
- package/blocks/stats/stats-mosaic/template.html +1 -0
- package/blocks/stats/stats-row/README.md +29 -0
- package/blocks/stats/stats-row/styles.css +8 -0
- package/blocks/stats/stats-row/template.html +1 -0
- package/blocks/stats/stats-split/README.md +35 -0
- package/blocks/stats/stats-split/styles.css +3 -0
- package/blocks/stats/stats-split/template.html +1 -0
- package/blocks/team/team-featured/README.md +42 -0
- package/blocks/team/team-featured/styles.css +9 -0
- package/blocks/team/team-featured/template.html +1 -0
- package/blocks/team/team-grid/README.md +35 -0
- package/blocks/team/team-grid/styles.css +8 -0
- package/blocks/team/team-grid/template.html +1 -0
- package/blocks/team/team-list/README.md +32 -0
- package/blocks/team/team-list/styles.css +7 -0
- package/blocks/team/team-list/template.html +1 -0
- package/blocks/testimonial/testimonial-carousel/README.md +32 -0
- package/blocks/testimonial/testimonial-carousel/styles.css +7 -0
- package/blocks/testimonial/testimonial-carousel/template.html +1 -0
- package/blocks/testimonial/testimonial-grid/README.md +32 -0
- package/blocks/testimonial/testimonial-grid/styles.css +5 -0
- package/blocks/testimonial/testimonial-grid/template.html +1 -0
- package/blocks/testimonial/testimonial-mosaic/README.md +38 -0
- package/blocks/testimonial/testimonial-mosaic/styles.css +14 -0
- package/blocks/testimonial/testimonial-mosaic/template.html +1 -0
- package/blocks/testimonial/testimonial-platform/README.md +34 -0
- package/blocks/testimonial/testimonial-platform/styles.css +17 -0
- package/blocks/testimonial/testimonial-platform/template.html +1 -0
- package/blocks/testimonial/testimonial-rating/README.md +28 -0
- package/blocks/testimonial/testimonial-rating/styles.css +6 -0
- package/blocks/testimonial/testimonial-rating/template.html +1 -0
- package/blocks/testimonial/testimonial-spotlight/README.md +31 -0
- package/blocks/testimonial/testimonial-spotlight/styles.css +9 -0
- package/blocks/testimonial/testimonial-spotlight/template.html +1 -0
- package/blocks/testimonial/testimonial-switcher/README.md +39 -0
- package/blocks/testimonial/testimonial-switcher/styles.css +23 -0
- package/blocks/testimonial/testimonial-switcher/template.html +1 -0
- package/blocks/testimonial/testimonial-wall/README.md +34 -0
- package/blocks/testimonial/testimonial-wall/styles.css +7 -0
- package/blocks/testimonial/testimonial-wall/template.html +1 -0
- package/blocks/trust-strip/trust-badges/README.md +30 -0
- package/blocks/trust-strip/trust-badges/styles.css +5 -0
- package/blocks/trust-strip/trust-badges/template.html +1 -0
- package/blocks/trust-strip/trust-certs/README.md +31 -0
- package/blocks/trust-strip/trust-certs/styles.css +12 -0
- package/blocks/trust-strip/trust-certs/template.html +1 -0
- package/blocks/trust-strip/trust-logos/README.md +32 -0
- package/blocks/trust-strip/trust-logos/styles.css +5 -0
- package/blocks/trust-strip/trust-logos/template.html +1 -0
- package/blocks/trust-strip/trust-quote/README.md +29 -0
- package/blocks/trust-strip/trust-quote/styles.css +5 -0
- package/blocks/trust-strip/trust-quote/template.html +1 -0
- package/blocks/trust-strip/trust-reviews/README.md +35 -0
- package/blocks/trust-strip/trust-reviews/styles.css +9 -0
- package/blocks/trust-strip/trust-reviews/template.html +1 -0
- package/blocks/work/case-alternating/README.md +34 -0
- package/blocks/work/case-alternating/block.meta.json +86 -0
- package/blocks/work/case-alternating/styles.css +7 -0
- package/blocks/work/case-alternating/template.html +1 -0
- package/blocks/work/case-carousel/README.md +26 -0
- package/blocks/work/case-carousel/styles.css +7 -0
- package/blocks/work/case-carousel/template.html +1 -0
- package/blocks/work/case-header/README.md +38 -0
- package/blocks/work/case-header/styles.css +18 -0
- package/blocks/work/case-header/template.html +1 -0
- package/blocks/work/project-evidence/README.md +35 -0
- package/blocks/work/project-evidence/block.meta.json +87 -0
- package/blocks/work/project-evidence/styles.css +12 -0
- package/blocks/work/project-evidence/template.html +1 -0
- package/blocks/work/project-grid/README.md +38 -0
- package/blocks/work/project-grid/styles.css +9 -0
- package/blocks/work/project-grid/template.html +1 -0
- package/cloudflare/wrangler.forms-test.jsonc +19 -0
- package/cloudflare/wrangler.jsonc +14 -0
- package/cloudflare/wrangler.templates.jsonc +6 -0
- package/design-system/MASTER.md +76 -0
- package/design-system/calibration/v2/accuracy.html +1 -0
- package/design-system/calibration/v2/accuracy.png +0 -0
- package/design-system/calibration/v2/manifest.json +88 -0
- package/design-system/calibration/v2/probe.png +0 -0
- package/design-system/calibration/v2/vitris-northline-counsel-home-1280-viewport.png +0 -0
- package/design-system/calibration/v2/vitris-northline-counsel-home-375-viewport.png +0 -0
- package/design-system/calibration/v2/vitris-northline-counsel-planning-1280-viewport.png +0 -0
- package/design-system/calibration/v2/vitris-northline-counsel-planning-375-viewport.png +0 -0
- package/design-system/calibration/v2/vitris-tide-and-slate-home-1280-viewport.png +0 -0
- package/design-system/calibration/v2/vitris-tide-and-slate-home-375-viewport.png +0 -0
- package/design-system/calibration/v2/vitris-tide-and-slate-project-1280-viewport.png +0 -0
- package/design-system/calibration/v2/vitris-tide-and-slate-project-375-viewport.png +0 -0
- package/design-system/compositions/v1/README.md +13 -0
- package/design-system/compositions/v1/northline-counsel/components/contact-phone-first/styles.css +11 -0
- package/design-system/compositions/v1/northline-counsel/components/contact-phone-first/template.html +1 -0
- package/design-system/compositions/v1/northline-counsel/components/contact-visit/styles.css +13 -0
- package/design-system/compositions/v1/northline-counsel/components/contact-visit/template.html +1 -0
- package/design-system/compositions/v1/northline-counsel/components/footer-compact/styles.css +12 -0
- package/design-system/compositions/v1/northline-counsel/components/footer-compact/template.html +1 -0
- package/design-system/compositions/v1/northline-counsel/components/hero-evidence/styles.css +13 -0
- package/design-system/compositions/v1/northline-counsel/components/hero-evidence/template.html +1 -0
- package/design-system/compositions/v1/northline-counsel/components/hero-page/styles.css +19 -0
- package/design-system/compositions/v1/northline-counsel/components/hero-page/template.html +1 -0
- package/design-system/compositions/v1/northline-counsel/components/nav-split/styles.css +11 -0
- package/design-system/compositions/v1/northline-counsel/components/nav-split/template.html +11 -0
- package/design-system/compositions/v1/northline-counsel/components/services-priority/styles.css +16 -0
- package/design-system/compositions/v1/northline-counsel/components/services-priority/template.html +1 -0
- package/design-system/compositions/v1/northline-counsel/components/specification-ledger/styles.css +10 -0
- package/design-system/compositions/v1/northline-counsel/components/specification-ledger/template.html +1 -0
- package/design-system/compositions/v1/northline-counsel/direction.md +5 -0
- package/design-system/compositions/v1/northline-counsel/fixture-brief.json +10 -0
- package/design-system/compositions/v1/northline-counsel/media-inventory.json +1 -0
- package/design-system/compositions/v1/northline-counsel/pages/index.html +11 -0
- package/design-system/compositions/v1/northline-counsel/pages/planning.html +11 -0
- package/design-system/compositions/v1/northline-counsel/selection-receipt.json +36 -0
- package/design-system/compositions/v1/northline-counsel/site.json +1 -0
- package/design-system/compositions/v1/northline-counsel/storyboard.md +12 -0
- package/design-system/compositions/v1/northline-counsel/theme/defaults.json +1 -0
- package/design-system/compositions/v1/source-ledger.json +18 -0
- package/design-system/compositions/v1/tide-and-slate/components/contact-phone-first/styles.css +11 -0
- package/design-system/compositions/v1/tide-and-slate/components/contact-phone-first/template.html +1 -0
- package/design-system/compositions/v1/tide-and-slate/components/footer-compact/styles.css +12 -0
- package/design-system/compositions/v1/tide-and-slate/components/footer-compact/template.html +1 -0
- package/design-system/compositions/v1/tide-and-slate/components/hero-page/styles.css +19 -0
- package/design-system/compositions/v1/tide-and-slate/components/hero-page/template.html +1 -0
- package/design-system/compositions/v1/tide-and-slate/components/hero-split/styles.css +7 -0
- package/design-system/compositions/v1/tide-and-slate/components/hero-split/template.html +11 -0
- package/design-system/compositions/v1/tide-and-slate/components/nav-split/styles.css +11 -0
- package/design-system/compositions/v1/tide-and-slate/components/nav-split/template.html +11 -0
- package/design-system/compositions/v1/tide-and-slate/components/project-evidence/styles.css +12 -0
- package/design-system/compositions/v1/tide-and-slate/components/project-evidence/template.html +1 -0
- package/design-system/compositions/v1/tide-and-slate/components/services-priority/styles.css +16 -0
- package/design-system/compositions/v1/tide-and-slate/components/services-priority/template.html +1 -0
- package/design-system/compositions/v1/tide-and-slate/components/specification-ledger/styles.css +10 -0
- package/design-system/compositions/v1/tide-and-slate/components/specification-ledger/template.html +1 -0
- package/design-system/compositions/v1/tide-and-slate/direction.md +5 -0
- package/design-system/compositions/v1/tide-and-slate/fixture-brief.json +10 -0
- package/design-system/compositions/v1/tide-and-slate/media/teaching/slate-roof-finished.webp +0 -0
- package/design-system/compositions/v1/tide-and-slate/media/teaching/slate-roof-finished.webp.provenance.json +9 -0
- package/design-system/compositions/v1/tide-and-slate/media/teaching/slate-roof-work.webp +0 -0
- package/design-system/compositions/v1/tide-and-slate/media/teaching/slate-roof-work.webp.provenance.json +9 -0
- package/design-system/compositions/v1/tide-and-slate/media-inventory.json +7 -0
- package/design-system/compositions/v1/tide-and-slate/pages/index.html +10 -0
- package/design-system/compositions/v1/tide-and-slate/pages/project.html +10 -0
- package/design-system/compositions/v1/tide-and-slate/site.json +1 -0
- package/design-system/compositions/v1/tide-and-slate/storyboard.md +12 -0
- package/design-system/compositions/v1/tide-and-slate/theme/defaults.json +1 -0
- package/design-system/compositions/v2/catalog.json +4018 -0
- package/design-system/compositions/v2/clearwell-directory/components/study-clearwell-directory/styles.css +3 -0
- package/design-system/compositions/v2/clearwell-directory/components/study-clearwell-directory/template.html +1 -0
- package/design-system/compositions/v2/clearwell-directory/pages/detail/index.html +5 -0
- package/design-system/compositions/v2/clearwell-directory/pages/index.html +5 -0
- package/design-system/compositions/v2/clearwell-directory/site.json +7 -0
- package/design-system/compositions/v2/clearwell-directory/study.json +244 -0
- package/design-system/compositions/v2/clearwell-directory/theme/defaults.json +16 -0
- package/design-system/compositions/v2/clearwell-letter/components/study-clearwell-letter/styles.css +2 -0
- package/design-system/compositions/v2/clearwell-letter/components/study-clearwell-letter/template.html +1 -0
- package/design-system/compositions/v2/clearwell-letter/pages/detail/index.html +5 -0
- package/design-system/compositions/v2/clearwell-letter/pages/index.html +5 -0
- package/design-system/compositions/v2/clearwell-letter/site.json +7 -0
- package/design-system/compositions/v2/clearwell-letter/study.json +236 -0
- package/design-system/compositions/v2/clearwell-letter/theme/defaults.json +16 -0
- package/design-system/compositions/v2/dock-radio/components/study-dock-radio/styles.css +2 -0
- package/design-system/compositions/v2/dock-radio/components/study-dock-radio/template.html +1 -0
- package/design-system/compositions/v2/dock-radio/media/teaching/original-tone-study.wav +0 -0
- package/design-system/compositions/v2/dock-radio/media/teaching/original-tone-study.wav.provenance.json +6 -0
- package/design-system/compositions/v2/dock-radio/pages/detail/index.html +5 -0
- package/design-system/compositions/v2/dock-radio/pages/index.html +5 -0
- package/design-system/compositions/v2/dock-radio/site.json +7 -0
- package/design-system/compositions/v2/dock-radio/study.json +288 -0
- package/design-system/compositions/v2/dock-radio/theme/defaults.json +16 -0
- package/design-system/compositions/v2/fen-repair/components/study-fen-repair/styles.css +2 -0
- package/design-system/compositions/v2/fen-repair/components/study-fen-repair/template.html +1 -0
- package/design-system/compositions/v2/fen-repair/media/teaching/slate-roof-finished.webp +0 -0
- package/design-system/compositions/v2/fen-repair/media/teaching/slate-roof-finished.webp.provenance.json +9 -0
- package/design-system/compositions/v2/fen-repair/media/teaching/slate-roof-work.webp +0 -0
- package/design-system/compositions/v2/fen-repair/media/teaching/slate-roof-work.webp.provenance.json +9 -0
- package/design-system/compositions/v2/fen-repair/pages/detail/index.html +5 -0
- package/design-system/compositions/v2/fen-repair/pages/index.html +5 -0
- package/design-system/compositions/v2/fen-repair/site.json +7 -0
- package/design-system/compositions/v2/fen-repair/study.json +236 -0
- package/design-system/compositions/v2/fen-repair/theme/defaults.json +16 -0
- package/design-system/compositions/v2/hearth-plane/components/study-hearth-plane/styles.css +2 -0
- package/design-system/compositions/v2/hearth-plane/components/study-hearth-plane/template.html +1 -0
- package/design-system/compositions/v2/hearth-plane/pages/detail/index.html +5 -0
- package/design-system/compositions/v2/hearth-plane/pages/index.html +5 -0
- package/design-system/compositions/v2/hearth-plane/site.json +7 -0
- package/design-system/compositions/v2/hearth-plane/study.json +238 -0
- package/design-system/compositions/v2/hearth-plane/theme/defaults.json +16 -0
- package/design-system/compositions/v2/lacuna-objects/components/study-lacuna-objects/styles.css +2 -0
- package/design-system/compositions/v2/lacuna-objects/components/study-lacuna-objects/template.html +1 -0
- package/design-system/compositions/v2/lacuna-objects/pages/detail/index.html +5 -0
- package/design-system/compositions/v2/lacuna-objects/pages/index.html +5 -0
- package/design-system/compositions/v2/lacuna-objects/site.json +7 -0
- package/design-system/compositions/v2/lacuna-objects/study.json +242 -0
- package/design-system/compositions/v2/lacuna-objects/theme/defaults.json +16 -0
- package/design-system/compositions/v2/loop-room/components/study-loop-room/styles.css +2 -0
- package/design-system/compositions/v2/loop-room/components/study-loop-room/template.html +1 -0
- package/design-system/compositions/v2/loop-room/pages/detail/index.html +5 -0
- package/design-system/compositions/v2/loop-room/pages/index.html +5 -0
- package/design-system/compositions/v2/loop-room/site.json +7 -0
- package/design-system/compositions/v2/loop-room/study.json +253 -0
- package/design-system/compositions/v2/loop-room/theme/defaults.json +16 -0
- package/design-system/compositions/v2/manifest.json +740 -0
- package/design-system/compositions/v2/mara-reading-room/components/study-mara-reading-room/styles.css +2 -0
- package/design-system/compositions/v2/mara-reading-room/components/study-mara-reading-room/template.html +1 -0
- package/design-system/compositions/v2/mara-reading-room/pages/detail/index.html +5 -0
- package/design-system/compositions/v2/mara-reading-room/pages/index.html +5 -0
- package/design-system/compositions/v2/mara-reading-room/site.json +7 -0
- package/design-system/compositions/v2/mara-reading-room/study.json +246 -0
- package/design-system/compositions/v2/mara-reading-room/theme/defaults.json +16 -0
- package/design-system/compositions/v2/mara-specimen/components/study-mara-specimen/styles.css +3 -0
- package/design-system/compositions/v2/mara-specimen/components/study-mara-specimen/template.html +1 -0
- package/design-system/compositions/v2/mara-specimen/pages/detail/index.html +5 -0
- package/design-system/compositions/v2/mara-specimen/pages/index.html +5 -0
- package/design-system/compositions/v2/mara-specimen/site.json +7 -0
- package/design-system/compositions/v2/mara-specimen/study.json +244 -0
- package/design-system/compositions/v2/mara-specimen/theme/defaults.json +16 -0
- package/design-system/compositions/v2/margin-journal/components/study-margin-journal/styles.css +2 -0
- package/design-system/compositions/v2/margin-journal/components/study-margin-journal/template.html +1 -0
- package/design-system/compositions/v2/margin-journal/pages/detail/index.html +5 -0
- package/design-system/compositions/v2/margin-journal/pages/index.html +5 -0
- package/design-system/compositions/v2/margin-journal/site.json +7 -0
- package/design-system/compositions/v2/margin-journal/study.json +242 -0
- package/design-system/compositions/v2/margin-journal/theme/defaults.json +16 -0
- package/design-system/compositions/v2/night-orchard/components/study-night-orchard/styles.css +2 -0
- package/design-system/compositions/v2/night-orchard/components/study-night-orchard/template.html +1 -0
- package/design-system/compositions/v2/night-orchard/pages/detail/index.html +5 -0
- package/design-system/compositions/v2/night-orchard/pages/index.html +5 -0
- package/design-system/compositions/v2/night-orchard/site.json +7 -0
- package/design-system/compositions/v2/night-orchard/study.json +247 -0
- package/design-system/compositions/v2/night-orchard/theme/defaults.json +16 -0
- package/design-system/compositions/v2/previews/clearwell-directory-home-1440.png +0 -0
- package/design-system/compositions/v2/previews/clearwell-directory-home-390.png +0 -0
- package/design-system/compositions/v2/previews/clearwell-directory-interior-1440.png +0 -0
- package/design-system/compositions/v2/previews/clearwell-directory-interior-390.png +0 -0
- package/design-system/compositions/v2/previews/clearwell-letter-home-1440.png +0 -0
- package/design-system/compositions/v2/previews/clearwell-letter-home-390.png +0 -0
- package/design-system/compositions/v2/previews/clearwell-letter-interior-1440.png +0 -0
- package/design-system/compositions/v2/previews/clearwell-letter-interior-390.png +0 -0
- package/design-system/compositions/v2/previews/dock-radio-home-1440.png +0 -0
- package/design-system/compositions/v2/previews/dock-radio-home-390.png +0 -0
- package/design-system/compositions/v2/previews/dock-radio-interior-1440.png +0 -0
- package/design-system/compositions/v2/previews/dock-radio-interior-390.png +0 -0
- package/design-system/compositions/v2/previews/fen-repair-home-1440.png +0 -0
- package/design-system/compositions/v2/previews/fen-repair-home-390.png +0 -0
- package/design-system/compositions/v2/previews/fen-repair-interior-1440.png +0 -0
- package/design-system/compositions/v2/previews/fen-repair-interior-390.png +0 -0
- package/design-system/compositions/v2/previews/hearth-plane-home-1440.png +0 -0
- package/design-system/compositions/v2/previews/hearth-plane-home-390.png +0 -0
- package/design-system/compositions/v2/previews/hearth-plane-interior-1440.png +0 -0
- package/design-system/compositions/v2/previews/hearth-plane-interior-390.png +0 -0
- package/design-system/compositions/v2/previews/lacuna-objects-home-1440.png +0 -0
- package/design-system/compositions/v2/previews/lacuna-objects-home-390.png +0 -0
- package/design-system/compositions/v2/previews/lacuna-objects-interior-1440.png +0 -0
- package/design-system/compositions/v2/previews/lacuna-objects-interior-390.png +0 -0
- package/design-system/compositions/v2/previews/loop-room-home-1440.png +0 -0
- package/design-system/compositions/v2/previews/loop-room-home-390.png +0 -0
- package/design-system/compositions/v2/previews/loop-room-interior-1440.png +0 -0
- package/design-system/compositions/v2/previews/loop-room-interior-390.png +0 -0
- package/design-system/compositions/v2/previews/mara-reading-room-home-1440.png +0 -0
- package/design-system/compositions/v2/previews/mara-reading-room-home-390.png +0 -0
- package/design-system/compositions/v2/previews/mara-reading-room-interior-1440.png +0 -0
- package/design-system/compositions/v2/previews/mara-reading-room-interior-390.png +0 -0
- package/design-system/compositions/v2/previews/mara-specimen-home-1440.png +0 -0
- package/design-system/compositions/v2/previews/mara-specimen-home-390.png +0 -0
- package/design-system/compositions/v2/previews/mara-specimen-interior-1440.png +0 -0
- package/design-system/compositions/v2/previews/mara-specimen-interior-390.png +0 -0
- package/design-system/compositions/v2/previews/margin-journal-home-1440.png +0 -0
- package/design-system/compositions/v2/previews/margin-journal-home-390.png +0 -0
- package/design-system/compositions/v2/previews/margin-journal-interior-1440.png +0 -0
- package/design-system/compositions/v2/previews/margin-journal-interior-390.png +0 -0
- package/design-system/compositions/v2/previews/night-orchard-home-1440.png +0 -0
- package/design-system/compositions/v2/previews/night-orchard-home-390.png +0 -0
- package/design-system/compositions/v2/previews/night-orchard-interior-1440.png +0 -0
- package/design-system/compositions/v2/previews/night-orchard-interior-390.png +0 -0
- package/design-system/compositions/v2/previews/relay-workflow-home-1440.png +0 -0
- package/design-system/compositions/v2/previews/relay-workflow-home-390.png +0 -0
- package/design-system/compositions/v2/previews/relay-workflow-interior-1440.png +0 -0
- package/design-system/compositions/v2/previews/relay-workflow-interior-390.png +0 -0
- package/design-system/compositions/v2/previews/rivet-components-home-1440.png +0 -0
- package/design-system/compositions/v2/previews/rivet-components-home-390.png +0 -0
- package/design-system/compositions/v2/previews/rivet-components-interior-1440.png +0 -0
- package/design-system/compositions/v2/previews/rivet-components-interior-390.png +0 -0
- package/design-system/compositions/v2/previews/signal-fair-home-1440.png +0 -0
- package/design-system/compositions/v2/previews/signal-fair-home-390.png +0 -0
- package/design-system/compositions/v2/previews/signal-fair-interior-1440.png +0 -0
- package/design-system/compositions/v2/previews/signal-fair-interior-390.png +0 -0
- package/design-system/compositions/v2/previews/sundial-goods-home-1440.png +0 -0
- package/design-system/compositions/v2/previews/sundial-goods-home-390.png +0 -0
- package/design-system/compositions/v2/previews/sundial-goods-interior-1440.png +0 -0
- package/design-system/compositions/v2/previews/sundial-goods-interior-390.png +0 -0
- package/design-system/compositions/v2/previews/thread-mender-home-1440.png +0 -0
- package/design-system/compositions/v2/previews/thread-mender-home-390.png +0 -0
- package/design-system/compositions/v2/previews/thread-mender-interior-1440.png +0 -0
- package/design-system/compositions/v2/previews/thread-mender-interior-390.png +0 -0
- package/design-system/compositions/v2/relay-workflow/components/study-relay-workflow/styles.css +2 -0
- package/design-system/compositions/v2/relay-workflow/components/study-relay-workflow/template.html +1 -0
- package/design-system/compositions/v2/relay-workflow/pages/detail/index.html +5 -0
- package/design-system/compositions/v2/relay-workflow/pages/index.html +5 -0
- package/design-system/compositions/v2/relay-workflow/site.json +7 -0
- package/design-system/compositions/v2/relay-workflow/study.json +283 -0
- package/design-system/compositions/v2/relay-workflow/theme/defaults.json +16 -0
- package/design-system/compositions/v2/rivet-components/components/study-rivet-components/styles.css +2 -0
- package/design-system/compositions/v2/rivet-components/components/study-rivet-components/template.html +1 -0
- package/design-system/compositions/v2/rivet-components/pages/detail/index.html +5 -0
- package/design-system/compositions/v2/rivet-components/pages/index.html +5 -0
- package/design-system/compositions/v2/rivet-components/site.json +7 -0
- package/design-system/compositions/v2/rivet-components/study.json +241 -0
- package/design-system/compositions/v2/rivet-components/theme/defaults.json +16 -0
- package/design-system/compositions/v2/signal-fair/components/study-signal-fair/styles.css +2 -0
- package/design-system/compositions/v2/signal-fair/components/study-signal-fair/template.html +1 -0
- package/design-system/compositions/v2/signal-fair/pages/detail/index.html +5 -0
- package/design-system/compositions/v2/signal-fair/pages/index.html +5 -0
- package/design-system/compositions/v2/signal-fair/site.json +7 -0
- package/design-system/compositions/v2/signal-fair/study.json +271 -0
- package/design-system/compositions/v2/signal-fair/theme/defaults.json +16 -0
- package/design-system/compositions/v2/sundial-goods/components/study-sundial-goods/styles.css +2 -0
- package/design-system/compositions/v2/sundial-goods/components/study-sundial-goods/template.html +1 -0
- package/design-system/compositions/v2/sundial-goods/pages/detail/index.html +5 -0
- package/design-system/compositions/v2/sundial-goods/pages/index.html +5 -0
- package/design-system/compositions/v2/sundial-goods/site.json +7 -0
- package/design-system/compositions/v2/sundial-goods/study.json +247 -0
- package/design-system/compositions/v2/sundial-goods/theme/defaults.json +16 -0
- package/design-system/compositions/v2/thread-mender/components/study-thread-mender/styles.css +2 -0
- package/design-system/compositions/v2/thread-mender/components/study-thread-mender/template.html +1 -0
- package/design-system/compositions/v2/thread-mender/pages/detail/index.html +5 -0
- package/design-system/compositions/v2/thread-mender/pages/index.html +5 -0
- package/design-system/compositions/v2/thread-mender/site.json +7 -0
- package/design-system/compositions/v2/thread-mender/study.json +253 -0
- package/design-system/compositions/v2/thread-mender/theme/defaults.json +16 -0
- package/design-system/knowledge/v1/README.md +8 -0
- package/design-system/knowledge/v1/catalog.json +479 -0
- package/design-system/knowledge/v1/demonstrations/assets/teaching-slate-slope.png +0 -0
- package/design-system/knowledge/v1/demonstrations/assets/teaching-slate-slope.provenance.json +12 -0
- package/design-system/knowledge/v1/demonstrations/mobile-strong.html +50 -0
- package/design-system/knowledge/v1/demonstrations/mobile-weak.html +50 -0
- package/design-system/knowledge/v1/demonstrations/project-strong.html +50 -0
- package/design-system/knowledge/v1/demonstrations/project-weak.html +50 -0
- package/design-system/knowledge/v1/demonstrations/repeat-strong.html +50 -0
- package/design-system/knowledge/v1/demonstrations/repeat-weak.html +50 -0
- package/design-system/knowledge/v1/demonstrations/services-strong.html +50 -0
- package/design-system/knowledge/v1/demonstrations/services-weak.html +50 -0
- package/design-system/knowledge/v1/demonstrations/sparse-strong.html +50 -0
- package/design-system/knowledge/v1/demonstrations/sparse-weak.html +50 -0
- package/design-system/knowledge/v1/demonstrations/type-strong.html +50 -0
- package/design-system/knowledge/v1/demonstrations/type-weak.html +50 -0
- package/design-system/knowledge/v1/manifest.json +88 -0
- package/design-system/knowledge/v1/observations/mobile-strong-1080.png +0 -0
- package/design-system/knowledge/v1/observations/mobile-strong-375.png +0 -0
- package/design-system/knowledge/v1/observations/mobile-weak-1080.png +0 -0
- package/design-system/knowledge/v1/observations/mobile-weak-375.png +0 -0
- package/design-system/knowledge/v1/observations/project-strong-1080.png +0 -0
- package/design-system/knowledge/v1/observations/project-strong-375.png +0 -0
- package/design-system/knowledge/v1/observations/project-weak-1080.png +0 -0
- package/design-system/knowledge/v1/observations/project-weak-375.png +0 -0
- package/design-system/knowledge/v1/observations/type-strong-1080.png +0 -0
- package/design-system/knowledge/v1/observations/type-strong-375.png +0 -0
- package/design-system/knowledge/v1/observations/type-weak-1080.png +0 -0
- package/design-system/knowledge/v1/observations/type-weak-375.png +0 -0
- package/design-system/knowledge/v2/added-lessons.json +30 -0
- package/design-system/knowledge/v2/assets.json +14 -0
- package/design-system/knowledge/v2/fixtures/contact-alternate.html +17 -0
- package/design-system/knowledge/v2/fixtures/contact-broken.html +15 -0
- package/design-system/knowledge/v2/fixtures/contact-valid.html +20 -0
- package/design-system/knowledge/v2/fixtures/contrast-cases.html +10 -0
- package/design-system/knowledge/v2/island-audit.json +12 -0
- package/design-system/knowledge/v2/lesson-extensions.json +158 -0
- package/design-system/knowledge/v2/manifest.json +52 -0
- package/design-system/knowledge/v2/replacements.json +14 -0
- package/design-system/knowledge/v2/requirements.json +345 -0
- package/design-system/knowledge/v2/sources.json +182 -0
- package/design-system/knowledge/v3/catalog.json +1232 -0
- package/design-system/knowledge/v3/examples/catalog.json +799 -0
- package/design-system/knowledge/v3/lessons/cmp-collection-structure.md +17 -0
- package/design-system/knowledge/v3/lessons/cmp-comparison.md +17 -0
- package/design-system/knowledge/v3/lessons/cmp-contextual-action.md +17 -0
- package/design-system/knowledge/v3/lessons/cmp-contrastive-critique.md +17 -0
- package/design-system/knowledge/v3/lessons/cmp-disclosure.md +17 -0
- package/design-system/knowledge/v3/lessons/cmp-evidence-form.md +17 -0
- package/design-system/knowledge/v3/lessons/cmp-image-art-direction.md +17 -0
- package/design-system/knowledge/v3/lessons/cmp-image-sequence.md +17 -0
- package/design-system/knowledge/v3/lessons/cmp-interactive-explanation.md +17 -0
- package/design-system/knowledge/v3/lessons/cmp-local-information.md +17 -0
- package/design-system/knowledge/v3/lessons/cmp-motion-continuity.md +17 -0
- package/design-system/knowledge/v3/lessons/cmp-narrative-continuity.md +17 -0
- package/design-system/knowledge/v3/lessons/cmp-navigation.md +17 -0
- package/design-system/knowledge/v3/lessons/cmp-page-rhythm.md +17 -0
- package/design-system/knowledge/v3/lessons/cmp-process.md +17 -0
- package/design-system/knowledge/v3/lessons/cmp-proof-adjacency.md +17 -0
- package/design-system/knowledge/v3/lessons/cmp-responsive-recomposition.md +17 -0
- package/design-system/knowledge/v3/lessons/cmp-semantic-grouping.md +17 -0
- package/design-system/knowledge/v3/lessons/cmp-shared-alignment.md +17 -0
- package/design-system/knowledge/v3/lessons/cmp-sparse-media.md +17 -0
- package/design-system/knowledge/v3/lessons/cmp-surfaces-motifs.md +17 -0
- package/design-system/knowledge/v3/lessons/cmp-text-shape.md +17 -0
- package/design-system/knowledge/v3/lessons/cmp-type-roles.md +17 -0
- package/design-system/knowledge/v3/lessons/cmp-unequal-emphasis.md +17 -0
- package/design-system/knowledge/v3/manifest.json +117 -0
- package/design-system/knowledge/v3/sources.json +425 -0
- package/design-system/references/v1/README.md +27 -0
- package/design-system/references/v1/catalog.json +20035 -0
- package/design-system/references/v1/manifest.json +10 -0
- package/design-system/references/v2/README.md +27 -0
- package/design-system/references/v2/catalog.json +27382 -0
- package/design-system/references/v2/manifest.json +11 -0
- package/design-system/references/v3/README.md +27 -0
- package/design-system/references/v3/catalog.json +27628 -0
- package/design-system/references/v3/manifest.json +11 -0
- package/docs/CLI.md +299 -0
- package/docs/CLOUDFLARE.md +53 -0
- package/docs/CONTACT-FORMS.md +161 -0
- package/docs/DISTRIBUTION.md +70 -0
- package/docs/ENGINE.md +28 -0
- package/docs/PRESERVE.md +59 -0
- package/docs/SECURITY.md +23 -0
- package/docs/STOCK-MEDIA.md +66 -0
- package/licenses/blake3-wasm-LICENSE +21 -0
- package/licenses/entities-LICENSE +11 -0
- package/licenses/parse5-LICENSE +19 -0
- package/migrations/0001_init.sql +90 -0
- package/migrations/0002_analytics.sql +50 -0
- package/migrations/0003_site_updates.sql +29 -0
- package/migrations/0004_contact_forms.sql +75 -0
- package/migrations/0005_auth.sql +20 -0
- package/package.json +229 -6
- package/src/runtime/beacon.ts +329 -0
- package/src/runtime/before-after.ts +48 -0
- package/src/runtime/carousel.ts +20 -0
- package/src/runtime/cookie-compliance.ts +50 -0
- package/src/runtime/counter.ts +2 -0
- package/src/runtime/editor.ts +72 -0
- package/src/runtime/experience.ts +57 -0
- package/src/runtime/header.ts +46 -0
- package/src/runtime/leads.ts +102 -0
- package/src/runtime/lightbox.ts +26 -0
- package/src/runtime/reveal.ts +2 -0
- package/src/runtime/scroll-motion.controller.js +100 -0
- package/src/runtime/scroll-motion.count.js +21 -0
- package/src/runtime/scroll-motion.generated.ts +5 -0
- package/src/runtime/scroll-motion.vanilla.js +45 -0
- package/src/runtime/tabs.ts +40 -0
- package/src/stock/catalog.json +5445 -0
- package/src/stock/coverage.json +18 -0
- package/src/stock/picker.css +118 -0
- package/src/stock/picker.js +191 -0
- package/templates/site/.env.example +6 -0
- package/templates/site/.github/workflows/deploy.yml +59 -0
- package/templates/site/AGENTS.md +35 -0
- package/templates/site/CLAUDE.md +5 -0
- package/templates/site/GEMINI.md +5 -0
- package/templates/site/README.md +55 -0
- package/templates/site/components/README.md +18 -0
- package/templates/site/gitignore +10 -0
- package/templates/site/launch.json +14 -0
- package/templates/site/package.json +36 -0
- package/templates/site/pages/README.md +31 -0
- package/templates/site/site.json +10 -0
- package/templates/site/theme/defaults.json +17 -0
|
@@ -0,0 +1,192 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import {
|
|
3
|
+
artDirectionPolicy,
|
|
4
|
+
byteHash,
|
|
5
|
+
findActivePreparation,
|
|
6
|
+
inspectProducedAsset,
|
|
7
|
+
invalidatePreparation,
|
|
8
|
+
loadSiteGraph,
|
|
9
|
+
loadState,
|
|
10
|
+
registerProducedAsset,
|
|
11
|
+
releaseDurableLease,
|
|
12
|
+
retireProducedAsset,
|
|
13
|
+
validateAssetProduction,
|
|
14
|
+
withMutationLock
|
|
15
|
+
} from "./chunks/chunk-3CTBXY5K.js";
|
|
16
|
+
import "./chunks/chunk-DSS2U2OM.js";
|
|
17
|
+
import "./chunks/chunk-M4LNHYYR.js";
|
|
18
|
+
import "./chunks/chunk-DRJQ4OOU.js";
|
|
19
|
+
import "./chunks/chunk-PRLL7B63.js";
|
|
20
|
+
import "./chunks/chunk-5OOPJNGN.js";
|
|
21
|
+
import {
|
|
22
|
+
invalidate
|
|
23
|
+
} from "./chunks/chunk-BBV7PMFC.js";
|
|
24
|
+
import {
|
|
25
|
+
readStockCatalog,
|
|
26
|
+
searchStock
|
|
27
|
+
} from "./chunks/chunk-TY33XMHW.js";
|
|
28
|
+
import "./chunks/chunk-R7YELY3C.js";
|
|
29
|
+
import "./chunks/chunk-BIEDSEL2.js";
|
|
30
|
+
import "./chunks/chunk-T7DGRVTP.js";
|
|
31
|
+
import "./chunks/chunk-AUO5I56E.js";
|
|
32
|
+
import "./chunks/chunk-6H3T46F5.js";
|
|
33
|
+
import "./chunks/chunk-M2ETYSVJ.js";
|
|
34
|
+
import "./chunks/chunk-FOXUQXTV.js";
|
|
35
|
+
import "./chunks/chunk-IKNMBGGD.js";
|
|
36
|
+
import "./chunks/chunk-WEFDVXFX.js";
|
|
37
|
+
import "./chunks/chunk-E5Y46VBX.js";
|
|
38
|
+
import "./chunks/chunk-4GZCAWWK.js";
|
|
39
|
+
import "./chunks/chunk-ANMJRJQ5.js";
|
|
40
|
+
import {
|
|
41
|
+
findHarnessRoot
|
|
42
|
+
} from "./chunks/chunk-HNORQ74T.js";
|
|
43
|
+
import "./chunks/chunk-YCVGD2CG.js";
|
|
44
|
+
import "./chunks/chunk-LKN75JGA.js";
|
|
45
|
+
import "./chunks/chunk-YYPYYOEV.js";
|
|
46
|
+
import "./chunks/chunk-GZDLXYZV.js";
|
|
47
|
+
import {
|
|
48
|
+
mediaDimensions
|
|
49
|
+
} from "./chunks/chunk-G7MNMULR.js";
|
|
50
|
+
import {
|
|
51
|
+
json,
|
|
52
|
+
save,
|
|
53
|
+
within
|
|
54
|
+
} from "./chunks/chunk-T6PE4KN4.js";
|
|
55
|
+
import "./chunks/chunk-7FS67SRF.js";
|
|
56
|
+
|
|
57
|
+
// scripts/art-direction.ts
|
|
58
|
+
import { resolve, join as join3 } from "node:path";
|
|
59
|
+
import { existsSync as existsSync3, readFileSync as readFileSync2 } from "node:fs";
|
|
60
|
+
|
|
61
|
+
// src/agent/media-revision.ts
|
|
62
|
+
import { existsSync } from "node:fs";
|
|
63
|
+
import { join } from "node:path";
|
|
64
|
+
function reviseMedia(root2, request) {
|
|
65
|
+
if (!artDirectionPolicy(root2) || !/^[a-z0-9-]{3,80}$/.test(request.operationId) || !request.request.trim()) throw new Error("Media revision needs opted-in policy, durable ID and exact request");
|
|
66
|
+
return withMutationLock(root2, () => {
|
|
67
|
+
const path = join(root2, `agent/media-revisions/${request.operationId}.json`);
|
|
68
|
+
if (existsSync(path)) {
|
|
69
|
+
const old = json(path);
|
|
70
|
+
if (JSON.stringify(old.request) !== JSON.stringify(request)) throw new Error("Revision operation identity changed");
|
|
71
|
+
return old;
|
|
72
|
+
}
|
|
73
|
+
const graph = loadSiteGraph(root2), state = loadState(root2, graph);
|
|
74
|
+
const owner = request.kind === "placement" ? "storyboard" : ["derivative", "illustration"].includes(request.kind) ? "asset-production" : ["unknown", "inspection"].includes(request.kind) ? "media" : "business";
|
|
75
|
+
for (const node of graph.nodes) {
|
|
76
|
+
const prep = findActivePreparation(root2, node.id);
|
|
77
|
+
if (!prep) continue;
|
|
78
|
+
invalidatePreparation(root2, prep.id, "Media revision routed to " + owner);
|
|
79
|
+
releaseDurableLease(root2, `stage-${node.id}`, prep.ownerToken);
|
|
80
|
+
}
|
|
81
|
+
invalidate(graph, state, owner);
|
|
82
|
+
if (["customer-evidence", "factual"].includes(request.kind)) invalidate(graph, state, "media");
|
|
83
|
+
save(join(root2, "agent/STATE.json"), state);
|
|
84
|
+
const receipt = { version: 1, request, owner, at: (/* @__PURE__ */ new Date()).toISOString(), affected: graph.nodes.filter((n) => state.nodes[n.id]?.status === "pending").map((n) => n.id) };
|
|
85
|
+
save(path, receipt);
|
|
86
|
+
save(join(root2, `agent/requests/${owner}.json`), { originalRequest: request.request, proposedChanges: request.request, preserve: request.preserve, evidencePath: `agent/media-revisions/${request.operationId}.json`, routes: request.routes });
|
|
87
|
+
return receipt;
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
// src/stock/site-acquisition.ts
|
|
92
|
+
import { existsSync as existsSync2, mkdirSync, writeFileSync } from "node:fs";
|
|
93
|
+
import { join as join2 } from "node:path";
|
|
94
|
+
async function acquireSiteStock(opts) {
|
|
95
|
+
if (!/^[a-z0-9-]{3,80}$/.test(opts.operationId) || !opts.fallback.trim() || !Number.isInteger(opts.maxCandidates) || opts.maxCandidates < 1 || opts.maxCandidates > 4 || !Number.isSafeInteger(opts.maxBytes) || opts.maxBytes < 1 || opts.maxBytes > 2e7) throw new Error("Acquisition needs an operation ID, fallback and bounded candidate/byte limits");
|
|
96
|
+
const path = join2(opts.root, `artwork/acquisition-${opts.operationId}/receipt.json`);
|
|
97
|
+
const signature = byteHash(JSON.stringify({ query: opts.query, catalog: opts.catalog.map((i) => [i.id, i.sha256]), fallback: opts.fallback, maxCandidates: opts.maxCandidates, maxBytes: opts.maxBytes }));
|
|
98
|
+
if (existsSync2(path)) {
|
|
99
|
+
const old = json(path);
|
|
100
|
+
if (old.signature !== signature) throw new Error("Acquisition operation inputs changed");
|
|
101
|
+
if (old.status === "dispatched") {
|
|
102
|
+
old.status = "interrupted";
|
|
103
|
+
old.error = "Dispatch outcome unknown; inspect saved response before explicit new attempt";
|
|
104
|
+
save(path, old);
|
|
105
|
+
}
|
|
106
|
+
return old;
|
|
107
|
+
}
|
|
108
|
+
const matches = searchStock(opts.catalog.filter((i) => i.status === "accepted"), opts.query);
|
|
109
|
+
const result = { version: 1, signature, operationId: opts.operationId, status: matches.length ? "catalog-match" : !opts.key ? "unavailable" : "dispatched", query: opts.query, catalogIds: matches.map((i) => i.id), items: [], fallback: opts.fallback, calls: 0, bytes: 0, measuredCost: null, published: false };
|
|
110
|
+
save(path, result);
|
|
111
|
+
if (result.status !== "dispatched") return result;
|
|
112
|
+
const get = opts.transport || fetch;
|
|
113
|
+
try {
|
|
114
|
+
result.calls++;
|
|
115
|
+
save(path, result);
|
|
116
|
+
const query = [opts.query.text, opts.query.subject, opts.query.context, opts.query.detail, opts.query.metaphor, opts.query.setting].filter(Boolean).join(" ");
|
|
117
|
+
const url = new URL("https://api.pexels.com/v1/search");
|
|
118
|
+
url.searchParams.set("query", query);
|
|
119
|
+
url.searchParams.set("per_page", String(opts.maxCandidates));
|
|
120
|
+
if (opts.query.orientation) url.searchParams.set("orientation", opts.query.orientation);
|
|
121
|
+
const response = await get(url, { headers: { Authorization: opts.key }, signal: AbortSignal.timeout(3e4) });
|
|
122
|
+
if (!response.ok) throw new Error(`Pexels search status ${response.status}`);
|
|
123
|
+
const data = await response.json();
|
|
124
|
+
save(join2(opts.root, `artwork/acquisition-${opts.operationId}/response.json`), data);
|
|
125
|
+
for (const hit of (data.photos || []).slice(0, opts.maxCandidates)) {
|
|
126
|
+
const downloadUrl = hit.src.large2x || hit.src.large;
|
|
127
|
+
if (new URL(downloadUrl).protocol !== "https:" || new URL(downloadUrl).hostname !== "images.pexels.com") throw new Error("Unexpected provider download host");
|
|
128
|
+
result.calls++;
|
|
129
|
+
save(path, result);
|
|
130
|
+
const r = await get(downloadUrl, { signal: AbortSignal.timeout(3e4) });
|
|
131
|
+
if (!r.ok) throw new Error(`Download status ${r.status}`);
|
|
132
|
+
const chunks = [];
|
|
133
|
+
let size = 0;
|
|
134
|
+
for await (const chunk of r.body) {
|
|
135
|
+
size += chunk.length;
|
|
136
|
+
if (result.bytes + size > opts.maxBytes) {
|
|
137
|
+
await r.body?.cancel().catch(() => {
|
|
138
|
+
});
|
|
139
|
+
throw new Error("Acquisition byte budget reached");
|
|
140
|
+
}
|
|
141
|
+
chunks.push(chunk);
|
|
142
|
+
}
|
|
143
|
+
const bytes = Buffer.concat(chunks), sha256 = byteHash(bytes);
|
|
144
|
+
result.bytes += bytes.length;
|
|
145
|
+
const src = `/stock/images/${sha256}.jpg`, dest = within(opts.root, `artwork/acquisition-${opts.operationId}${src}`);
|
|
146
|
+
mkdirSync(join2(opts.root, `artwork/acquisition-${opts.operationId}/stock/images`), { recursive: true });
|
|
147
|
+
writeFileSync(dest, bytes, { flag: "wx" });
|
|
148
|
+
const thumb = src.replace("images", "thumbs");
|
|
149
|
+
mkdirSync(join2(opts.root, `artwork/acquisition-${opts.operationId}/stock/thumbs`), { recursive: true });
|
|
150
|
+
writeFileSync(within(opts.root, `artwork/acquisition-${opts.operationId}${thumb}`), bytes, { flag: "wx" });
|
|
151
|
+
result.items.push({ id: `pexels-image-${hit.id}`, kind: "image", src, thumb, thumbSha256: sha256, thumbBytes: bytes.length, alt: hit.alt || query, tags: [], categories: [], credit: `${hit.photographer} / Pexels`, pexelsId: hit.id, sha256, sourceUrl: hit.url, downloadUrl, thumbnailUrl: downloadUrl, acquiredAt: (/* @__PURE__ */ new Date()).toISOString(), termsUrl: "https://www.pexels.com/license/", ...mediaDimensions(bytes, "jpg"), bytes: bytes.length, status: "staged" });
|
|
152
|
+
save(path, result);
|
|
153
|
+
save(join2(opts.root, `artwork/acquisition-${opts.operationId}/catalog.json`), { version: 2, items: result.items });
|
|
154
|
+
}
|
|
155
|
+
result.status = result.items.length ? "staged" : "no-match";
|
|
156
|
+
} catch (e) {
|
|
157
|
+
result.status = "interrupted";
|
|
158
|
+
result.error = e instanceof Error ? e.message : String(e);
|
|
159
|
+
}
|
|
160
|
+
save(path, result);
|
|
161
|
+
return result;
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
// scripts/art-direction.ts
|
|
165
|
+
var arg = (name) => {
|
|
166
|
+
const at = process.argv.indexOf(name);
|
|
167
|
+
return at < 0 ? void 0 : process.argv[at + 1];
|
|
168
|
+
};
|
|
169
|
+
var root = resolve(arg("--site") || ".");
|
|
170
|
+
var command = process.argv[2];
|
|
171
|
+
if (command === "retire") {
|
|
172
|
+
console.log(JSON.stringify(retireProducedAsset(root, json(resolve(arg("--record")))), null, 2));
|
|
173
|
+
} else if (command === "inspect") {
|
|
174
|
+
console.log(JSON.stringify(inspectProducedAsset(root, json(resolve(arg("--record")))), null, 2));
|
|
175
|
+
} else if (command === "register") {
|
|
176
|
+
if (!arg("--record")) throw new Error("register needs --record JSON with preparationId, operationId, requestId, input, sourcePath, method, tool, rights and forbiddenImplications");
|
|
177
|
+
console.log(JSON.stringify(registerProducedAsset(root, json(resolve(arg("--record")))), null, 2));
|
|
178
|
+
} else if (command === "verify") {
|
|
179
|
+
const failures = validateAssetProduction(root);
|
|
180
|
+
console.log(JSON.stringify({ ok: !failures.length, failures }));
|
|
181
|
+
if (failures.length) process.exitCode = 1;
|
|
182
|
+
} else if (command === "revise") {
|
|
183
|
+
console.log(JSON.stringify(reviseMedia(root, json(resolve(arg("--record")))), null, 2));
|
|
184
|
+
} else if (command === "acquire") {
|
|
185
|
+
const prep = findActivePreparation(root, "asset-production");
|
|
186
|
+
if (!prep) throw new Error("Acquisition needs the active asset-production preparation");
|
|
187
|
+
const kernel = findHarnessRoot();
|
|
188
|
+
let key = process.env.PEXELS_API_KEY;
|
|
189
|
+
if (!key && existsSync3(join3(kernel, ".dev.vars"))) key = readFileSync2(join3(kernel, ".dev.vars"), "utf8").match(/^PEXELS_API_KEY\s*=\s*["']?([^\s"']+)/m)?.[1];
|
|
190
|
+
const record = json(resolve(arg("--record")));
|
|
191
|
+
console.log(JSON.stringify(await acquireSiteStock({ ...record, root, catalog: readStockCatalog(join3(kernel, "src/stock/catalog.json")).items, key }), null, 2));
|
|
192
|
+
} else console.log("vitris-art register|inspect|retire|verify|revise|acquire --site SITE [--record JSON]. Kickoff/resume: vitris-go --site SITE --no-preview-server. Register only during the asset-production preparation; inspection and acceptance follow registration.");
|
|
@@ -0,0 +1,238 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import {
|
|
3
|
+
blockPreviewRendererHash,
|
|
4
|
+
blockSourceHash,
|
|
5
|
+
loadBlockLibrary,
|
|
6
|
+
loadProfiledBlockLibrary
|
|
7
|
+
} from "./chunks/chunk-FOXUQXTV.js";
|
|
8
|
+
import "./chunks/chunk-HNORQ74T.js";
|
|
9
|
+
import {
|
|
10
|
+
baseCss,
|
|
11
|
+
flattenBody,
|
|
12
|
+
primitivesCss,
|
|
13
|
+
siteIslands
|
|
14
|
+
} from "./chunks/chunk-YCVGD2CG.js";
|
|
15
|
+
import {
|
|
16
|
+
themeCss
|
|
17
|
+
} from "./chunks/chunk-LKN75JGA.js";
|
|
18
|
+
import {
|
|
19
|
+
defaultTheme
|
|
20
|
+
} from "./chunks/chunk-YYPYYOEV.js";
|
|
21
|
+
import "./chunks/chunk-GZDLXYZV.js";
|
|
22
|
+
import "./chunks/chunk-7FS67SRF.js";
|
|
23
|
+
|
|
24
|
+
// scripts/blocks-preview.ts
|
|
25
|
+
import { mkdirSync, readdirSync, readFileSync, writeFileSync, existsSync, statSync, unlinkSync } from "node:fs";
|
|
26
|
+
import { join, dirname, normalize, extname, resolve } from "node:path";
|
|
27
|
+
import { fileURLToPath } from "node:url";
|
|
28
|
+
import { createServer } from "node:http";
|
|
29
|
+
import { createHash } from "node:crypto";
|
|
30
|
+
var kernelRoot = join(dirname(fileURLToPath(import.meta.url)), "..");
|
|
31
|
+
var blocksRoot = join(kernelRoot, "blocks");
|
|
32
|
+
var argv = process.argv.slice(2);
|
|
33
|
+
var outIndex = argv.indexOf("--out");
|
|
34
|
+
var siteIndex = argv.indexOf("--site");
|
|
35
|
+
var siteRoot = siteIndex >= 0 && argv[siteIndex + 1] ? resolve(argv[siteIndex + 1]) : void 0;
|
|
36
|
+
var installed = /(^|[/\\])node_modules([/\\]|$)/.test(kernelRoot);
|
|
37
|
+
var outRoot = outIndex >= 0 && argv[outIndex + 1] ? resolve(argv[outIndex + 1]) : join(siteRoot || (installed ? process.cwd() : kernelRoot), "dist", "blocks");
|
|
38
|
+
var profiled = siteRoot ? loadProfiledBlockLibrary(kernelRoot, siteRoot) : void 0;
|
|
39
|
+
var library = new Map((profiled?.library || loadBlockLibrary(kernelRoot)).blocks.map((block) => [block.id, block]));
|
|
40
|
+
var sha = (bytes) => createHash("sha256").update(bytes).digest("hex");
|
|
41
|
+
var esc = (value) => value.replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">").replace(/"/g, """);
|
|
42
|
+
function imageStatus(id, dir, previewHtml) {
|
|
43
|
+
const block = library.get(id);
|
|
44
|
+
const rel = block?.meta?.evidence.previewManifest;
|
|
45
|
+
if (!rel) return { status: "unavailable" };
|
|
46
|
+
const file = join(dir, rel);
|
|
47
|
+
if (!existsSync(file)) return { status: "unavailable" };
|
|
48
|
+
try {
|
|
49
|
+
const manifest = JSON.parse(readFileSync(file, "utf8"));
|
|
50
|
+
const valid = manifest.blockId === id && manifest.sourceHash === blockSourceHash(dir) && manifest.previewHtmlHash === sha(previewHtml) && manifest.rendererHash === blockPreviewRendererHash(kernelRoot) && ["mobile", "desktop"].every((kind) => {
|
|
51
|
+
const image = manifest.images?.[kind];
|
|
52
|
+
return image?.file && existsSync(join(dirname(file), image.file)) && sha(readFileSync(join(dirname(file), image.file))) === image.hash;
|
|
53
|
+
});
|
|
54
|
+
return { status: valid ? "current" : "stale", manifest: rel };
|
|
55
|
+
} catch {
|
|
56
|
+
return { status: "stale", manifest: rel };
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
function placeholder(w, h, label) {
|
|
60
|
+
const fs = Math.max(12, Math.round(Math.min(w, h) / 9));
|
|
61
|
+
const svg = `<svg xmlns="http://www.w3.org/2000/svg" width="${w}" height="${h}" viewBox="0 0 ${w} ${h}"><defs><linearGradient id="g" x1="0" y1="0" x2="1" y2="1"><stop offset="0" stop-color="#cbbba9"/><stop offset="1" stop-color="#7a6756"/></linearGradient></defs><rect width="${w}" height="${h}" fill="url(#g)"/><text x="50%" y="50%" dominant-baseline="middle" text-anchor="middle" font-family="system-ui,sans-serif" font-size="${fs}" fill="#fff" opacity="0.7">${label}</text></svg>`;
|
|
62
|
+
return `data:image/svg+xml;charset=utf-8,${encodeURIComponent(svg)}`;
|
|
63
|
+
}
|
|
64
|
+
function placeholderMedia(html) {
|
|
65
|
+
return html.replace(/<img\b[^>]*>/g, (tag) => {
|
|
66
|
+
const src = tag.match(/\bsrc="([^"]*)"/)?.[1] ?? "";
|
|
67
|
+
if (!/^\/(media|stock)\//.test(src)) return tag;
|
|
68
|
+
const w = Number(tag.match(/\bwidth="(\d+)"/)?.[1] ?? 1200);
|
|
69
|
+
const h = Number(tag.match(/\bheight="(\d+)"/)?.[1] ?? 900);
|
|
70
|
+
const isLogo = /logo/i.test(src) || w <= 240 && h <= 80;
|
|
71
|
+
const isAvatar = /avatar|review|portrait-sm/i.test(src) || w === h && w <= 160;
|
|
72
|
+
const label = isLogo ? "logo" : isAvatar ? "" : `${w}\xD7${h}`;
|
|
73
|
+
const fill = isLogo ? placeholderLogo(w, h) : placeholder(w, h, label);
|
|
74
|
+
return tag.replace(/\bsrc="[^"]*"/, `src="${fill}"`);
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
function placeholderLogo(w, h) {
|
|
78
|
+
const svg = `<svg xmlns="http://www.w3.org/2000/svg" width="${w}" height="${h}" viewBox="0 0 ${w} ${h}"><rect x="2" y="${h / 4}" width="${h / 2}" height="${h / 2}" rx="4" fill="#555"/><rect x="${h / 2 + 10}" y="${h / 2 - 5}" width="${w - h / 2 - 14}" height="10" rx="5" fill="#555"/></svg>`;
|
|
79
|
+
return `data:image/svg+xml;charset=utf-8,${encodeURIComponent(svg)}`;
|
|
80
|
+
}
|
|
81
|
+
function readmeExample(readme) {
|
|
82
|
+
const m = readme.match(/## Example\s*```html\s*([\s\S]*?)```/);
|
|
83
|
+
return m ? m[1].trim() : null;
|
|
84
|
+
}
|
|
85
|
+
function readmeVariants(readme) {
|
|
86
|
+
const line = readme.match(/\*\*Variants:\*\*\s*(.+)/)?.[1]?.trim() ?? "";
|
|
87
|
+
if (!line || line.startsWith("(none)")) return [];
|
|
88
|
+
return line.split(",").map((v) => v.trim()).filter(Boolean);
|
|
89
|
+
}
|
|
90
|
+
function readmeLook(readme) {
|
|
91
|
+
return readme.split("\n").map((l) => l.trim()).find((l) => l && !l.startsWith("#") && !l.startsWith("-") && !l.startsWith("```")) ?? "";
|
|
92
|
+
}
|
|
93
|
+
function withVariant(example, name, variant) {
|
|
94
|
+
return example.replace(new RegExp(`^<${name}(\\s|>)`), `<${name} variant="${variant}"$1`);
|
|
95
|
+
}
|
|
96
|
+
var sharedCss = [themeCss(defaultTheme), baseCss, primitivesCss].join("\n");
|
|
97
|
+
var indexByCat = /* @__PURE__ */ new Map();
|
|
98
|
+
var total = 0;
|
|
99
|
+
var written = /* @__PURE__ */ new Set();
|
|
100
|
+
mkdirSync(outRoot, { recursive: true });
|
|
101
|
+
var cats = readdirSync(blocksRoot, { withFileTypes: true }).filter((d) => d.isDirectory()).map((d) => d.name).sort();
|
|
102
|
+
for (const cat of cats) {
|
|
103
|
+
const names = readdirSync(join(blocksRoot, cat), { withFileTypes: true }).filter((d) => d.isDirectory()).map((d) => d.name).sort();
|
|
104
|
+
for (const name of names) {
|
|
105
|
+
const dir = join(blocksRoot, cat, name);
|
|
106
|
+
if (!existsSync(join(dir, "template.html"))) continue;
|
|
107
|
+
if (!library.has(`${cat}/${name}`)) continue;
|
|
108
|
+
const catalog = {
|
|
109
|
+
[name]: {
|
|
110
|
+
html: readFileSync(join(dir, "template.html"), "utf8"),
|
|
111
|
+
css: readFileSync(join(dir, "styles.css"), "utf8"),
|
|
112
|
+
island: existsSync(join(dir, "island.js")) ? readFileSync(join(dir, "island.js"), "utf8") : null
|
|
113
|
+
}
|
|
114
|
+
};
|
|
115
|
+
const readme = existsSync(join(dir, "README.md")) ? readFileSync(join(dir, "README.md"), "utf8") : "";
|
|
116
|
+
const example = readmeExample(readme) ?? `<${name}><h2 slot="heading">${name}</h2><p>No example in README yet.</p></${name}>`;
|
|
117
|
+
const variants = readmeVariants(readme);
|
|
118
|
+
const look = readmeLook(readme);
|
|
119
|
+
const id = `${cat}/${name}`;
|
|
120
|
+
const record = library.get(id);
|
|
121
|
+
const renders = [{ file: `${name}.html`, label: name, body: example }];
|
|
122
|
+
for (const v of variants) renders.push({ file: `${name}--${v}.html`, label: `${name} \xB7 ${v}`, body: withVariant(example, name, v) });
|
|
123
|
+
const destDir = join(outRoot, cat);
|
|
124
|
+
mkdirSync(destDir, { recursive: true });
|
|
125
|
+
let baseHtml = "";
|
|
126
|
+
for (const r of renders) {
|
|
127
|
+
const flat = flattenBody(placeholderMedia(r.body), catalog, { name: "Blocks Preview", motion: { strength: "off" } });
|
|
128
|
+
const page = {
|
|
129
|
+
path: `/${cat}/${r.file}`,
|
|
130
|
+
title: r.label,
|
|
131
|
+
bodyHtml: flat.html,
|
|
132
|
+
used: [name],
|
|
133
|
+
usesMotion: false,
|
|
134
|
+
usesLeadForm: /data-lead-form/.test(flat.html)
|
|
135
|
+
};
|
|
136
|
+
const js = siteIslands([page], catalog);
|
|
137
|
+
const html = `<!doctype html>
|
|
138
|
+
<html lang="en">
|
|
139
|
+
<head>
|
|
140
|
+
<meta charset="utf-8">
|
|
141
|
+
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
142
|
+
<title>${cat}/${r.label}</title>
|
|
143
|
+
<style>${sharedCss}
|
|
144
|
+
${catalog[name].css}</style>
|
|
145
|
+
<style>.bp-bar{position:fixed;inset-inline:0;bottom:0;z-index:999;display:flex;gap:1rem;align-items:center;padding:.4rem .9rem;font:12px/1.4 system-ui,sans-serif;color:#eee;background:#1d1a17;opacity:.9}.bp-bar a{color:#fff}.bp-bar span{color:#bbb}</style>
|
|
146
|
+
</head>
|
|
147
|
+
<body>
|
|
148
|
+
${flat.html}
|
|
149
|
+
<div class="bp-bar"><a href="../index.html">\u2190 All blocks</a><strong>${cat}/${r.label}</strong><span>${look}</span></div>
|
|
150
|
+
${js.trim() ? `<script type="module">${js}</script>` : ""}
|
|
151
|
+
</body>
|
|
152
|
+
</html>`;
|
|
153
|
+
const output = join(destDir, r.file);
|
|
154
|
+
writeFileSync(output, html);
|
|
155
|
+
if (r.file === `${name}.html`) baseHtml = html;
|
|
156
|
+
written.add(output);
|
|
157
|
+
}
|
|
158
|
+
if (!indexByCat.has(cat)) indexByCat.set(cat, []);
|
|
159
|
+
const variantLinks = variants.map((v) => `<a href="${cat}/${name}--${v}.html" class="badge badge--outline">${v}</a>`).join(" ");
|
|
160
|
+
const image = imageStatus(id, dir, baseHtml);
|
|
161
|
+
const roles = record?.meta?.fit.pageRoles.join("|") || cat;
|
|
162
|
+
const jobs = record?.meta?.fit.visitorJobs.join("|") || look;
|
|
163
|
+
const geometry = record?.geometry.join("|") || "";
|
|
164
|
+
const mediaFit = record?.meta ? record.meta.media.min > 0 ? "required" : "optional" : record?.mediaRequired ? "required" : "optional";
|
|
165
|
+
indexByCat.get(cat).push(
|
|
166
|
+
`<li class="bp-item" data-role="${esc(roles)}" data-job="${esc(jobs)}" data-geometry="${esc(geometry)}" data-media="${mediaFit}"><div><a class="bp-item__name" href="${cat}/${name}.html">${esc(name)}</a><label class="bp-compare-label"><input type="checkbox" class="bp-compare" value="${cat}/${name}.html"> compare</label></div><span class="bp-item__look">${esc(look)}<small>Image evidence: ${image.status}; metadata: ${record?.metadataSource || "legacy-readme"}</small></span>${variantLinks ? `<span class="bp-item__variants">${variantLinks}</span>` : ""}</li>`
|
|
167
|
+
);
|
|
168
|
+
total++;
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
for (const cat of readdirSync(outRoot, { withFileTypes: true }).filter((d) => d.isDirectory())) {
|
|
172
|
+
const dir = join(outRoot, cat.name);
|
|
173
|
+
for (const name of readdirSync(dir)) {
|
|
174
|
+
const file = join(dir, name);
|
|
175
|
+
if (name.endsWith(".html") && !written.has(file) && statSync(file).isFile()) unlinkSync(file);
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
var groups = [...indexByCat.entries()].map(
|
|
179
|
+
([cat, items]) => `<section class="bp-group" id="${cat}"><h2>${cat} <span class="bp-count">${items.length}</span></h2><ul class="bp-list">${items.join("\n")}</ul></section>`
|
|
180
|
+
).join("\n");
|
|
181
|
+
var toc = [...indexByCat.keys()].map((cat) => `<a class="badge" href="#${cat}">${cat}</a>`).join(" ");
|
|
182
|
+
var geometryOptions = [...new Set([...library.values()].flatMap((b) => b.geometry))].sort().map((value) => `<option value="${esc(value)}">${esc(value)}</option>`).join("");
|
|
183
|
+
var roleOptions = [...new Set([...library.values()].flatMap((b) => b.meta?.fit.pageRoles || [b.category]))].sort().map((value) => `<option value="${esc(value)}">${esc(value)}</option>`).join("");
|
|
184
|
+
writeFileSync(
|
|
185
|
+
join(outRoot, "index.html"),
|
|
186
|
+
`<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><title>Vitris blocks</title>
|
|
187
|
+
<style>${sharedCss}
|
|
188
|
+
.bp-head{padding-block:var(--space-8) var(--space-6);display:grid;gap:var(--space-4)}
|
|
189
|
+
.bp-toc{display:flex;flex-wrap:wrap;gap:var(--space-2)}
|
|
190
|
+
.bp-toc .badge{text-decoration:none}
|
|
191
|
+
.bp-group{padding-block:var(--space-6);border-top:1px solid var(--color-border)}
|
|
192
|
+
.bp-group h2{font-size:var(--step-2);margin-bottom:var(--space-4);display:flex;gap:.5rem;align-items:baseline}
|
|
193
|
+
.bp-count{font-family:var(--font-body);font-size:var(--step-0);color:var(--color-muted);font-weight:500}
|
|
194
|
+
.bp-list{list-style:none;margin:0;padding:0;display:grid;gap:var(--space-2)}
|
|
195
|
+
.bp-item{display:grid;grid-template-columns:14rem 1fr auto;gap:var(--space-4);align-items:center;padding:var(--space-2) 0;border-bottom:1px dashed var(--color-border)}
|
|
196
|
+
.bp-item__name{font-weight:600}
|
|
197
|
+
.bp-item__look{color:var(--color-muted);font-size:var(--step-0)}
|
|
198
|
+
.bp-item__variants{display:flex;gap:var(--space-1)}
|
|
199
|
+
.bp-item__variants .badge{text-decoration:none;min-height:1.5rem;padding:0 .5rem;font-size:.75rem}
|
|
200
|
+
.bp-item__look small{display:block;color:var(--color-muted);font-size:.75rem}
|
|
201
|
+
.bp-compare-label{display:block;font:12px system-ui;color:var(--color-muted);margin-top:.3rem}
|
|
202
|
+
.bp-filters{display:flex;flex-wrap:wrap;gap:var(--space-2);align-items:end}
|
|
203
|
+
.bp-filters label{display:grid;gap:.2rem;font:12px system-ui}
|
|
204
|
+
.bp-filters input,.bp-filters select{min-height:2.5rem;padding:.3rem .5rem}
|
|
205
|
+
.bp-compare-view{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-3);margin-top:var(--space-4)}
|
|
206
|
+
.bp-compare-view iframe{width:100%;height:650px;border:1px solid var(--color-border)}
|
|
207
|
+
[hidden]{display:none!important}
|
|
208
|
+
@media(max-width:719px){.bp-item{grid-template-columns:1fr}}
|
|
209
|
+
</style></head>
|
|
210
|
+
<body><main class="wrap"><header class="bp-head"><p class="eyebrow">Kernel block library</p><h1>Vitris blocks</h1><p class="lede">${total} blocks across ${indexByCat.size} categories, rendered from each block's README example with the default theme and placeholder media. Variant chips render the same example with <code>variant="\u2026"</code>. Image evidence is marked unavailable or stale when no verified capture exists.</p><div class="bp-filters"><label>Find by job or name<input id="bp-search" type="search" placeholder="e.g. hours, credentials"></label><label>Page role<select id="bp-role"><option value="">Any role</option>${roleOptions}</select></label><label>Media<select id="bp-media"><option value="">Any</option><option value="optional">Works without essential media</option><option value="required">Requires media</option></select></label><label>Geometry<select id="bp-geometry"><option value="">Any</option>${geometryOptions}</select></label></div><div class="bp-toc">${toc}</div><div class="bp-compare-view" id="bp-compare-view" hidden></div></header>${groups}</main><script>
|
|
211
|
+
const items=[...document.querySelectorAll('.bp-item')];
|
|
212
|
+
const fields=['search','role','media','geometry'].map(id=>document.getElementById('bp-'+id));
|
|
213
|
+
function filter(){const [search,role,media,geometry]=fields.map(x=>x.value.toLowerCase().trim());for(const item of items){const text=item.textContent.toLowerCase()+' '+item.dataset.job.toLowerCase();item.hidden=!!(search&&!text.includes(search)||role&&!item.dataset.role.toLowerCase().split('|').includes(role)||media&&item.dataset.media!==media||geometry&&!item.dataset.geometry.toLowerCase().split('|').includes(geometry));}for(const group of document.querySelectorAll('.bp-group'))group.hidden=![...group.querySelectorAll('.bp-item')].some(x=>!x.hidden);}
|
|
214
|
+
fields.forEach(x=>x.addEventListener('input',filter));
|
|
215
|
+
document.querySelectorAll('.bp-compare').forEach(box=>box.addEventListener('change',()=>{const selected=[...document.querySelectorAll('.bp-compare:checked')];if(selected.length>2){selected[0].checked=false;selected.shift();}const view=document.getElementById('bp-compare-view');view.hidden=!selected.length;view.innerHTML='';for(const item of selected){const frame=document.createElement('iframe');frame.title='Comparison: '+item.value;frame.src=item.value;view.append(frame);}}));
|
|
216
|
+
</script></body></html>`
|
|
217
|
+
);
|
|
218
|
+
console.log(`Wrote ${total} block previews to ${outRoot}`);
|
|
219
|
+
if (argv.includes("--serve")) {
|
|
220
|
+
const portIdx = argv.indexOf("--port");
|
|
221
|
+
const port = portIdx >= 0 ? Number(argv[portIdx + 1]) || 4173 : 4173;
|
|
222
|
+
const types = { ".html": "text/html; charset=utf-8", ".css": "text/css", ".js": "text/javascript", ".svg": "image/svg+xml" };
|
|
223
|
+
const server = createServer((req, res) => {
|
|
224
|
+
const urlPath = decodeURIComponent((req.url ?? "/").split("?")[0]);
|
|
225
|
+
let rel = normalize(urlPath).replace(/^(\.\.[/\\])+/, "");
|
|
226
|
+
if (rel.endsWith("/") || rel === "\\" || rel === "") rel = join(rel, "index.html");
|
|
227
|
+
const file = join(outRoot, rel);
|
|
228
|
+
if (!file.startsWith(outRoot) || !existsSync(file) || !statSync(file).isFile()) {
|
|
229
|
+
res.writeHead(404, { "content-type": "text/plain" }).end("Not found");
|
|
230
|
+
return;
|
|
231
|
+
}
|
|
232
|
+
res.writeHead(200, { "content-type": types[extname(file)] ?? "application/octet-stream" });
|
|
233
|
+
res.end(readFileSync(file));
|
|
234
|
+
});
|
|
235
|
+
server.listen(port, "127.0.0.1", () => {
|
|
236
|
+
console.log(`Serving block previews at http://127.0.0.1:${port}/ (Ctrl+C to stop)`);
|
|
237
|
+
});
|
|
238
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import {
|
|
3
|
+
buildVerified
|
|
4
|
+
} from "./chunks/chunk-E5Y46VBX.js";
|
|
5
|
+
import "./chunks/chunk-4GZCAWWK.js";
|
|
6
|
+
import "./chunks/chunk-ANMJRJQ5.js";
|
|
7
|
+
import "./chunks/chunk-HNORQ74T.js";
|
|
8
|
+
import "./chunks/chunk-YCVGD2CG.js";
|
|
9
|
+
import "./chunks/chunk-LKN75JGA.js";
|
|
10
|
+
import "./chunks/chunk-YYPYYOEV.js";
|
|
11
|
+
import "./chunks/chunk-GZDLXYZV.js";
|
|
12
|
+
import "./chunks/chunk-T6PE4KN4.js";
|
|
13
|
+
import "./chunks/chunk-7FS67SRF.js";
|
|
14
|
+
|
|
15
|
+
// src/build/cli.ts
|
|
16
|
+
import { join, resolve } from "node:path";
|
|
17
|
+
var arg = (flag) => {
|
|
18
|
+
const i = process.argv.indexOf(flag);
|
|
19
|
+
return i < 0 ? void 0 : process.argv[i + 1];
|
|
20
|
+
};
|
|
21
|
+
var root = resolve(arg("--site") || ".");
|
|
22
|
+
var out = resolve(arg("--out") || join(root, "dist"));
|
|
23
|
+
await buildVerified(root, out, arg("--backend-origin") || arg("--kernel-origin"), arg("--slug"));
|
|
24
|
+
console.log(`Built and verified local assets in ${out}`);
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
// scripts/catalog.ts
|
|
4
|
+
import { mkdir, writeFile } from "node:fs/promises";
|
|
5
|
+
import { dirname, join } from "node:path";
|
|
6
|
+
import { fileURLToPath } from "node:url";
|
|
7
|
+
import { stripTypeScriptTypes } from "node:module";
|
|
8
|
+
if (process.argv.includes("--help")) {
|
|
9
|
+
console.log("Usage: vitris-catalog");
|
|
10
|
+
process.exit(0);
|
|
11
|
+
}
|
|
12
|
+
var root = join(dirname(fileURLToPath(import.meta.url)), "..");
|
|
13
|
+
var outFile = join(root, "src", "gen", "catalog.ts");
|
|
14
|
+
await mkdir(dirname(outFile), { recursive: true });
|
|
15
|
+
await writeFile(
|
|
16
|
+
outFile,
|
|
17
|
+
[
|
|
18
|
+
'import type { Catalog } from "../types.ts";',
|
|
19
|
+
"",
|
|
20
|
+
"/** Empty kernel catalog. Tenant sites supply components/ at build time. */",
|
|
21
|
+
"export const catalog: Catalog = {};",
|
|
22
|
+
""
|
|
23
|
+
].join("\n"),
|
|
24
|
+
"utf8"
|
|
25
|
+
);
|
|
26
|
+
console.log("Wrote empty src/gen/catalog.ts");
|
|
27
|
+
var stockDir = join(root, "src", "stock");
|
|
28
|
+
var { readFile } = await import("node:fs/promises");
|
|
29
|
+
function jsString(value) {
|
|
30
|
+
return JSON.stringify(value);
|
|
31
|
+
}
|
|
32
|
+
var searchJs = stripTypeScriptTypes(await readFile(join(stockDir, "search.ts"), "utf8")).replace(/export\s+/g, "");
|
|
33
|
+
var pickerJs = `(() => { ${searchJs}
|
|
34
|
+
window.VitrisStockSearch = searchStock; })();
|
|
35
|
+
` + await readFile(join(stockDir, "picker.js"), "utf8");
|
|
36
|
+
var pickerCss = await readFile(join(stockDir, "picker.css"), "utf8");
|
|
37
|
+
var catalogRaw = await readFile(join(stockDir, "catalog.json"), "utf8");
|
|
38
|
+
JSON.parse(catalogRaw);
|
|
39
|
+
await writeFile(
|
|
40
|
+
join(root, "src", "gen", "stock.ts"),
|
|
41
|
+
[
|
|
42
|
+
`export const stockPickerJs = ${jsString(pickerJs)};`,
|
|
43
|
+
`export const stockPickerCss = ${jsString(pickerCss)};`,
|
|
44
|
+
`export const stockCatalogJson = ${jsString(catalogRaw.trim())};`,
|
|
45
|
+
""
|
|
46
|
+
].join("\n"),
|
|
47
|
+
"utf8"
|
|
48
|
+
);
|
|
49
|
+
console.log("Wrote src/gen/stock.ts");
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import {
|
|
3
|
+
coverageAudit
|
|
4
|
+
} from "./chunks/chunk-M2ETYSVJ.js";
|
|
5
|
+
import {
|
|
6
|
+
save
|
|
7
|
+
} from "./chunks/chunk-T6PE4KN4.js";
|
|
8
|
+
|
|
9
|
+
// scripts/content-coverage.ts
|
|
10
|
+
import { resolve, join } from "node:path";
|
|
11
|
+
if (process.argv.includes("--help")) {
|
|
12
|
+
console.log("vitris-content-coverage --site SITE; compute current source-to-rendered coverage evidence during content-review");
|
|
13
|
+
process.exit(0);
|
|
14
|
+
}
|
|
15
|
+
var at = process.argv.indexOf("--site");
|
|
16
|
+
if (at < 0 || !process.argv[at + 1]) throw new Error("Pass --site SITE");
|
|
17
|
+
var root = resolve(process.argv[at + 1]);
|
|
18
|
+
var audit = coverageAudit(root);
|
|
19
|
+
save(join(root, "agent/reviews/content-coverage.json"), audit);
|
|
20
|
+
console.log(JSON.stringify(audit, null, 2));
|
|
21
|
+
if (!audit.passed) process.exitCode = 1;
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import {
|
|
3
|
+
createSite
|
|
4
|
+
} from "./chunks/chunk-4DM5TTLG.js";
|
|
5
|
+
import "./chunks/chunk-34H54KEY.js";
|
|
6
|
+
import "./chunks/chunk-JCRGE6AL.js";
|
|
7
|
+
import {
|
|
8
|
+
promptSourceUrl
|
|
9
|
+
} from "./chunks/chunk-Z2UNY47A.js";
|
|
10
|
+
import "./chunks/chunk-XGTHGWPW.js";
|
|
11
|
+
import {
|
|
12
|
+
siteInputsFromArgv
|
|
13
|
+
} from "./chunks/chunk-3CTBXY5K.js";
|
|
14
|
+
import "./chunks/chunk-DSS2U2OM.js";
|
|
15
|
+
import "./chunks/chunk-M4LNHYYR.js";
|
|
16
|
+
import "./chunks/chunk-DRJQ4OOU.js";
|
|
17
|
+
import "./chunks/chunk-PRLL7B63.js";
|
|
18
|
+
import "./chunks/chunk-5OOPJNGN.js";
|
|
19
|
+
import "./chunks/chunk-BBV7PMFC.js";
|
|
20
|
+
import "./chunks/chunk-TY33XMHW.js";
|
|
21
|
+
import "./chunks/chunk-R7YELY3C.js";
|
|
22
|
+
import "./chunks/chunk-BIEDSEL2.js";
|
|
23
|
+
import "./chunks/chunk-T7DGRVTP.js";
|
|
24
|
+
import "./chunks/chunk-AUO5I56E.js";
|
|
25
|
+
import "./chunks/chunk-6H3T46F5.js";
|
|
26
|
+
import "./chunks/chunk-M2ETYSVJ.js";
|
|
27
|
+
import "./chunks/chunk-FOXUQXTV.js";
|
|
28
|
+
import "./chunks/chunk-IKNMBGGD.js";
|
|
29
|
+
import "./chunks/chunk-WEFDVXFX.js";
|
|
30
|
+
import "./chunks/chunk-E5Y46VBX.js";
|
|
31
|
+
import "./chunks/chunk-4GZCAWWK.js";
|
|
32
|
+
import "./chunks/chunk-ANMJRJQ5.js";
|
|
33
|
+
import "./chunks/chunk-HNORQ74T.js";
|
|
34
|
+
import "./chunks/chunk-YCVGD2CG.js";
|
|
35
|
+
import "./chunks/chunk-LKN75JGA.js";
|
|
36
|
+
import "./chunks/chunk-YYPYYOEV.js";
|
|
37
|
+
import "./chunks/chunk-GZDLXYZV.js";
|
|
38
|
+
import "./chunks/chunk-G7MNMULR.js";
|
|
39
|
+
import "./chunks/chunk-T6PE4KN4.js";
|
|
40
|
+
import "./chunks/chunk-7FS67SRF.js";
|
|
41
|
+
|
|
42
|
+
// scripts/create-site.ts
|
|
43
|
+
var arg = (flag) => {
|
|
44
|
+
const i = process.argv.indexOf(flag);
|
|
45
|
+
return i < 0 ? void 0 : process.argv[i + 1];
|
|
46
|
+
};
|
|
47
|
+
var usage = `Usage: vitris-create-site --dir ../acme --slug acme [--name "Acme Shop"] [--from URL | --blank]
|
|
48
|
+
--owner EMAIL Owner login email
|
|
49
|
+
--template ID Catalog ID, name, or hosted template URL; continue automatically
|
|
50
|
+
--template-release R Optional catalog revision
|
|
51
|
+
--content TEXT Additional business content or instructions
|
|
52
|
+
--content-file FILE UTF-8 content file (instead of --content)
|
|
53
|
+
--mode MODE redesign (default) or preserve (legacy Vitris duplicate)
|
|
54
|
+
--backend-origin URL Backend origin (default http://127.0.0.1:8787)
|
|
55
|
+
--harness SPEC Dependency version, tarball, or file: path (default: this package version)
|
|
56
|
+
--no-prompt Do not ask for a source URL
|
|
57
|
+
Legacy --kernel and --kernel-origin flags remain accepted.`;
|
|
58
|
+
async function main() {
|
|
59
|
+
if (process.argv.includes("--help")) {
|
|
60
|
+
console.log(usage);
|
|
61
|
+
return;
|
|
62
|
+
}
|
|
63
|
+
if (!arg("--dir") || !arg("--slug")) throw new Error(usage);
|
|
64
|
+
const blank = process.argv.includes("--blank");
|
|
65
|
+
if (blank && arg("--from")) throw new Error("Use either --from or --blank, not both.");
|
|
66
|
+
const from = await promptSourceUrl({ noPrompt: process.argv.includes("--no-prompt"), from: arg("--from"), blank });
|
|
67
|
+
const result = await createSite({
|
|
68
|
+
dir: arg("--dir"),
|
|
69
|
+
slug: arg("--slug"),
|
|
70
|
+
name: arg("--name"),
|
|
71
|
+
from: from || void 0,
|
|
72
|
+
blank,
|
|
73
|
+
...siteInputsFromArgv(process.argv),
|
|
74
|
+
mode: arg("--mode"),
|
|
75
|
+
owner: arg("--owner"),
|
|
76
|
+
backendOrigin: arg("--backend-origin") || arg("--kernel-origin"),
|
|
77
|
+
harnessSpec: arg("--harness") || arg("--kernel")
|
|
78
|
+
});
|
|
79
|
+
if (!result.ok) throw new Error(result.error);
|
|
80
|
+
console.log(`${result.summary}
|
|
81
|
+
Open that site directory in your coding agent, run npm install and npx playwright install chromium, then npm run go. The workflow stops at a local preview; launch is separate.`);
|
|
82
|
+
}
|
|
83
|
+
main().catch((error) => {
|
|
84
|
+
console.error(error instanceof Error ? error.message : error);
|
|
85
|
+
process.exitCode = 1;
|
|
86
|
+
});
|