@aglyn/plugins-ai 1.0.0-beta.270 → 1.0.0-beta.272
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/package.json +17 -17
- package/src/lib/activity/ai-activity-actions.d.ts +4 -3
- package/src/lib/activity/ai-activity-actions.js +4 -0
- package/src/lib/activity/ai-activity-actions.js.map +1 -1
- package/src/lib/assets/site-styles/beauty.webp +0 -0
- package/src/lib/assets/site-styles/blog.webp +0 -0
- package/src/lib/assets/site-styles/business.webp +0 -0
- package/src/lib/assets/site-styles/coming-soon.webp +0 -0
- package/src/lib/assets/site-styles/education.webp +0 -0
- package/src/lib/assets/site-styles/events.webp +0 -0
- package/src/lib/assets/site-styles/fitness.webp +0 -0
- package/src/lib/assets/site-styles/landing.webp +0 -0
- package/src/lib/assets/site-styles/music.webp +0 -0
- package/src/lib/assets/site-styles/nonprofit.webp +0 -0
- package/src/lib/assets/site-styles/personal.webp +0 -0
- package/src/lib/assets/site-styles/photography.webp +0 -0
- package/src/lib/assets/site-styles/portfolio.webp +0 -0
- package/src/lib/assets/site-styles/professional.webp +0 -0
- package/src/lib/assets/site-styles/realestate.webp +0 -0
- package/src/lib/assets/site-styles/restaurant.webp +0 -0
- package/src/lib/assets/site-styles/store.webp +0 -0
- package/src/lib/assets/site-styles/studio.webp +0 -0
- package/src/lib/assets/site-styles/trades.webp +0 -0
- package/src/lib/assets/site-styles/wellness.webp +0 -0
- package/src/lib/assets/site-styles/yoga.webp +0 -0
- package/src/lib/components/ai-credits-card.component.d.ts +4 -3
- package/src/lib/components/ai-credits-card.component.js +15 -15
- package/src/lib/components/ai-credits-card.component.js.map +1 -1
- package/src/lib/components/ai-job-input-form.component.d.ts +36 -0
- package/src/lib/components/ai-job-input-form.component.js +100 -0
- package/src/lib/components/ai-job-input-form.component.js.map +1 -0
- package/src/lib/components/ai-job-requests.d.ts +4 -0
- package/src/lib/components/ai-job-requests.js +4 -0
- package/src/lib/components/ai-job-requests.js.map +1 -1
- package/src/lib/components/ai-site-build-page.component.js +18 -0
- package/src/lib/components/ai-site-build-page.component.js.map +1 -1
- package/src/lib/components/ai-site-import-job.component.d.ts +41 -0
- package/src/lib/components/ai-site-import-job.component.js +707 -0
- package/src/lib/components/ai-site-import-job.component.js.map +1 -0
- package/src/lib/components/ai-site-import-start.component.d.ts +64 -0
- package/src/lib/components/ai-site-import-start.component.js +335 -0
- package/src/lib/components/ai-site-import-start.component.js.map +1 -0
- package/src/lib/components/ai-site-ownership-proof.component.d.ts +42 -0
- package/src/lib/components/ai-site-ownership-proof.component.js +353 -0
- package/src/lib/components/ai-site-ownership-proof.component.js.map +1 -0
- package/src/lib/components/ai-site-start-card.component.d.ts +1 -1
- package/src/lib/components/ai-site-start-card.component.js +261 -119
- package/src/lib/components/ai-site-start-card.component.js.map +1 -1
- package/src/lib/components/ai-site-start-steps.component.d.ts +43 -2
- package/src/lib/components/ai-site-start-steps.component.js +651 -15
- package/src/lib/components/ai-site-start-steps.component.js.map +1 -1
- package/src/lib/components/ai-site-start-tracking.d.ts +10 -0
- package/src/lib/components/ai-site-start-tracking.js +14 -0
- package/src/lib/components/ai-site-start-tracking.js.map +1 -1
- package/src/lib/components/ai-site-style-previews.js +26 -22
- package/src/lib/components/ai-site-style-previews.js.map +1 -1
- package/src/lib/components/ai-upsell-dialog.component.d.ts +7 -5
- package/src/lib/components/ai-upsell-dialog.component.js +8 -6
- package/src/lib/components/ai-upsell-dialog.component.js.map +1 -1
- package/src/lib/components/assist-build-card.component.js +11 -1
- package/src/lib/components/assist-build-card.component.js.map +1 -1
- package/src/lib/components/assist-jobs-drawer.component.js +9 -1
- package/src/lib/components/assist-jobs-drawer.component.js.map +1 -1
- package/src/lib/components/assist-panel.component.js +8 -4
- package/src/lib/components/assist-panel.component.js.map +1 -1
- package/src/lib/components/staff-org-ai-card.component.js +4 -7
- package/src/lib/components/staff-org-ai-card.component.js.map +1 -1
- package/src/lib/declarations.d.ts +2 -2
- package/src/lib/declarations.js +9 -5
- package/src/lib/declarations.js.map +1 -1
- package/src/lib/jobs/ai-build-capabilities.js +3 -1
- package/src/lib/jobs/ai-build-capabilities.js.map +1 -1
- package/src/lib/jobs/ai-business-profile-prefill.d.ts +1 -1
- package/src/lib/jobs/ai-business-profile-prefill.js +14 -3
- package/src/lib/jobs/ai-business-profile-prefill.js.map +1 -1
- package/src/lib/jobs/ai-job-build-step.js +5 -3
- package/src/lib/jobs/ai-job-build-step.js.map +1 -1
- package/src/lib/jobs/ai-job-drafts.d.ts +14 -0
- package/src/lib/jobs/ai-job-drafts.js +24 -0
- package/src/lib/jobs/ai-job-drafts.js.map +1 -1
- package/src/lib/jobs/ai-job-form-step.d.ts +15 -1
- package/src/lib/jobs/ai-job-form-step.js +75 -8
- package/src/lib/jobs/ai-job-form-step.js.map +1 -1
- package/src/lib/jobs/ai-job-import-step.d.ts +136 -0
- package/src/lib/jobs/ai-job-import-step.js +809 -0
- package/src/lib/jobs/ai-job-import-step.js.map +1 -0
- package/src/lib/jobs/ai-job-page-language.d.ts +52 -1
- package/src/lib/jobs/ai-job-page-language.js +99 -5
- package/src/lib/jobs/ai-job-page-language.js.map +1 -1
- package/src/lib/jobs/ai-job-page-step.d.ts +19 -2
- package/src/lib/jobs/ai-job-page-step.js +42 -18
- package/src/lib/jobs/ai-job-page-step.js.map +1 -1
- package/src/lib/jobs/ai-job-plan-step.d.ts +25 -2
- package/src/lib/jobs/ai-job-plan-step.js +103 -29
- package/src/lib/jobs/ai-job-plan-step.js.map +1 -1
- package/src/lib/jobs/ai-job-settings-step.js +4 -3
- package/src/lib/jobs/ai-job-settings-step.js.map +1 -1
- package/src/lib/jobs/ai-job-site-datasets.d.ts +27 -0
- package/src/lib/jobs/ai-job-site-datasets.js +140 -14
- package/src/lib/jobs/ai-job-site-datasets.js.map +1 -1
- package/src/lib/jobs/ai-job-site-look.js +18 -5
- package/src/lib/jobs/ai-job-site-look.js.map +1 -1
- package/src/lib/jobs/ai-job-site-step.d.ts +16 -1
- package/src/lib/jobs/ai-job-site-step.js +95 -22
- package/src/lib/jobs/ai-job-site-step.js.map +1 -1
- package/src/lib/jobs/ai-job-text-step.d.ts +15 -1
- package/src/lib/jobs/ai-job-text-step.js.map +1 -1
- package/src/lib/jobs/ai-job-tracking-step.d.ts +14 -3
- package/src/lib/jobs/ai-job-tracking-step.js +28 -5
- package/src/lib/jobs/ai-job-tracking-step.js.map +1 -1
- package/src/lib/jobs/ai-jobs.d.ts +13 -1
- package/src/lib/jobs/ai-jobs.js +77 -10
- package/src/lib/jobs/ai-jobs.js.map +1 -1
- package/src/lib/jobs/ai-layout-owner-photos.d.ts +16 -1
- package/src/lib/jobs/ai-layout-owner-photos.js +47 -0
- package/src/lib/jobs/ai-layout-owner-photos.js.map +1 -1
- package/src/lib/jobs/ai-layout-stock-photos.d.ts +27 -2
- package/src/lib/jobs/ai-layout-stock-photos.js +190 -19
- package/src/lib/jobs/ai-layout-stock-photos.js.map +1 -1
- package/src/lib/jobs/ai-site-inspiration-signals.d.ts +98 -0
- package/src/lib/jobs/ai-site-inspiration-signals.js +585 -0
- package/src/lib/jobs/ai-site-inspiration-signals.js.map +1 -0
- package/src/lib/jobs/ai-site-inspiration.d.ts +157 -0
- package/src/lib/jobs/ai-site-inspiration.js +346 -0
- package/src/lib/jobs/ai-site-inspiration.js.map +1 -0
- package/src/lib/jobs/ai-site-publish.d.ts +26 -1
- package/src/lib/jobs/ai-site-publish.js +162 -13
- package/src/lib/jobs/ai-site-publish.js.map +1 -1
- package/src/lib/jobs/ai-theme-brand-inputs.d.ts +77 -3
- package/src/lib/jobs/ai-theme-brand-inputs.js +135 -31
- package/src/lib/jobs/ai-theme-brand-inputs.js.map +1 -1
- package/src/lib/jobs/fixtures/ai-candle-shop-free-plan-recording.d.ts +97 -0
- package/src/lib/jobs/fixtures/ai-candle-shop-free-plan-recording.js +137 -0
- package/src/lib/jobs/fixtures/ai-candle-shop-free-plan-recording.js.map +1 -0
- package/src/lib/jobs/fixtures/ai-site-inspiration-pages.d.ts +38 -0
- package/src/lib/jobs/fixtures/ai-site-inspiration-pages.js +103 -0
- package/src/lib/jobs/fixtures/ai-site-inspiration-pages.js.map +1 -0
- package/src/lib/jobs/fixtures/ai-stock-photo-agl3988-recordings.d.ts +25 -0
- package/src/lib/jobs/fixtures/ai-stock-photo-agl3988-recordings.js +174 -0
- package/src/lib/jobs/fixtures/ai-stock-photo-agl3988-recordings.js.map +1 -0
- package/src/lib/layout-language/ai-layout-compiler.d.ts +1 -1
- package/src/lib/layout-language/ai-layout-compiler.js +438 -25
- package/src/lib/layout-language/ai-layout-compiler.js.map +1 -1
- package/src/lib/layout-language/ai-layout-contact.d.ts +57 -0
- package/src/lib/layout-language/ai-layout-contact.js +137 -0
- package/src/lib/layout-language/ai-layout-contact.js.map +1 -0
- package/src/lib/layout-language/ai-layout-copy.d.ts +12 -0
- package/src/lib/layout-language/ai-layout-copy.js +34 -2
- package/src/lib/layout-language/ai-layout-copy.js.map +1 -1
- package/src/lib/layout-language/ai-layout-design.d.ts +65 -8
- package/src/lib/layout-language/ai-layout-design.js +411 -97
- package/src/lib/layout-language/ai-layout-design.js.map +1 -1
- package/src/lib/layout-language/ai-layout-frame.js +23 -0
- package/src/lib/layout-language/ai-layout-frame.js.map +1 -1
- package/src/lib/layout-language/ai-layout-labels.d.ts +2 -0
- package/src/lib/layout-language/ai-layout-labels.js +12 -6
- package/src/lib/layout-language/ai-layout-labels.js.map +1 -1
- package/src/lib/layout-language/ai-layout-language.d.ts +3 -2
- package/src/lib/layout-language/ai-layout-language.js +4 -3
- package/src/lib/layout-language/ai-layout-language.js.map +1 -1
- package/src/lib/layout-language/ai-layout-links.d.ts +13 -0
- package/src/lib/layout-language/ai-layout-links.js +30 -0
- package/src/lib/layout-language/ai-layout-links.js.map +1 -1
- package/src/lib/layout-language/ai-layout-pictures.d.ts +49 -6
- package/src/lib/layout-language/ai-layout-pictures.js +145 -22
- package/src/lib/layout-language/ai-layout-pictures.js.map +1 -1
- package/src/lib/model/ai-build-job.d.ts +16 -1
- package/src/lib/model/ai-build-job.js +40 -0
- package/src/lib/model/ai-build-job.js.map +1 -1
- package/src/lib/model/ai-credit-estimate.d.ts +20 -0
- package/src/lib/model/ai-credit-estimate.js +13 -0
- package/src/lib/model/ai-credit-estimate.js.map +1 -1
- package/src/lib/model/ai-job-activity.d.ts +2 -2
- package/src/lib/model/ai-job-activity.js +6 -4
- package/src/lib/model/ai-job-activity.js.map +1 -1
- package/src/lib/model/ai-job-input.d.ts +33 -0
- package/src/lib/model/ai-job-input.js +59 -0
- package/src/lib/model/ai-job-input.js.map +1 -0
- package/src/lib/model/ai-job-notice.d.ts +4 -0
- package/src/lib/model/ai-job-notice.js +28 -4
- package/src/lib/model/ai-job-notice.js.map +1 -1
- package/src/lib/model/ai-jobs.types.d.ts +69 -3
- package/src/lib/model/ai-jobs.types.js +2 -1
- package/src/lib/model/ai-jobs.types.js.map +1 -1
- package/src/lib/model/ai-site-details.d.ts +122 -0
- package/src/lib/model/ai-site-details.js +300 -0
- package/src/lib/model/ai-site-details.js.map +1 -0
- package/src/lib/model/ai-site-entity.d.ts +181 -0
- package/src/lib/model/ai-site-entity.js +390 -0
- package/src/lib/model/ai-site-entity.js.map +1 -0
- package/src/lib/model/ai-site-import-view.d.ts +130 -0
- package/src/lib/model/ai-site-import-view.js +182 -0
- package/src/lib/model/ai-site-import-view.js.map +1 -0
- package/src/lib/model/ai-site-import.d.ts +302 -0
- package/src/lib/model/ai-site-import.js +526 -0
- package/src/lib/model/ai-site-import.js.map +1 -0
- package/src/lib/model/ai-site-inspiration.d.ts +72 -0
- package/src/lib/model/ai-site-inspiration.js +109 -0
- package/src/lib/model/ai-site-inspiration.js.map +1 -0
- package/src/lib/model/ai-site-job.d.ts +13 -1
- package/src/lib/model/ai-site-job.js +15 -2
- package/src/lib/model/ai-site-job.js.map +1 -1
- package/src/lib/model/ai-site-kinds.js +109 -21
- package/src/lib/model/ai-site-kinds.js.map +1 -1
- package/src/lib/model/ai-site-look.d.ts +10 -0
- package/src/lib/model/ai-site-look.js +24 -0
- package/src/lib/model/ai-site-look.js.map +1 -1
- package/src/lib/model/ai-site-start-seo.d.ts +19 -5
- package/src/lib/model/ai-site-start-seo.js +25 -7
- package/src/lib/model/ai-site-start-seo.js.map +1 -1
- package/src/lib/model/ai-site-start-steps.d.ts +9 -3
- package/src/lib/model/ai-site-start-steps.js +67 -5
- package/src/lib/model/ai-site-start-steps.js.map +1 -1
- package/src/lib/model/ai-site-start.d.ts +81 -4
- package/src/lib/model/ai-site-start.js +207 -13
- package/src/lib/model/ai-site-start.js.map +1 -1
- package/src/lib/model/ai-upsell-copy.js +4 -1
- package/src/lib/model/ai-upsell-copy.js.map +1 -1
- package/src/lib/plan-entitlements.d.ts +4 -3
- package/src/lib/plan-entitlements.js +3 -8
- package/src/lib/plan-entitlements.js.map +1 -1
- package/src/lib/runtime/ai-dataset-generation.d.ts +8 -1
- package/src/lib/runtime/ai-dataset-generation.js +12 -2
- package/src/lib/runtime/ai-dataset-generation.js.map +1 -1
- package/src/lib/runtime/ai-doctrine-validators.d.ts +26 -33
- package/src/lib/runtime/ai-doctrine-validators.js +54 -44
- package/src/lib/runtime/ai-doctrine-validators.js.map +1 -1
- package/src/lib/runtime/ai-doctrine.js +1 -1
- package/src/lib/runtime/ai-doctrine.js.map +1 -1
- package/src/lib/runtime/ai-node-tree.d.ts +7 -0
- package/src/lib/runtime/ai-node-tree.js +9 -1
- package/src/lib/runtime/ai-node-tree.js.map +1 -1
- package/src/lib/server/ai-create-route.d.ts +1 -1
- package/src/lib/server/ai-create-route.js +3 -4
- package/src/lib/server/ai-create-route.js.map +1 -1
- package/src/lib/server/ai-jobs-resume.js +27 -3
- package/src/lib/server/ai-jobs-resume.js.map +1 -1
- package/src/lib/server/ai-jobs-route.js +18 -0
- package/src/lib/server/ai-jobs-route.js.map +1 -1
- package/src/lib/server/ai-site-import-route.d.ts +89 -0
- package/src/lib/server/ai-site-import-route.js +356 -0
- package/src/lib/server/ai-site-import-route.js.map +1 -0
- package/src/lib/server.js +14 -0
- package/src/lib/server.js.map +1 -1
- package/src/lib/site-import/fixtures/site-import-crawl-recordings.d.ts +45 -0
- package/src/lib/site-import/fixtures/site-import-crawl-recordings.js +313 -0
- package/src/lib/site-import/fixtures/site-import-crawl-recordings.js.map +1 -0
- package/src/lib/site-import/fixtures/site-import-wave-recordings.d.ts +50 -0
- package/src/lib/site-import/fixtures/site-import-wave-recordings.js +217 -0
- package/src/lib/site-import/fixtures/site-import-wave-recordings.js.map +1 -0
- package/src/lib/site-import/site-import-crawl.d.ts +163 -0
- package/src/lib/site-import/site-import-crawl.js +467 -0
- package/src/lib/site-import/site-import-crawl.js.map +1 -0
- package/src/lib/site-import/site-import-flag.d.ts +23 -0
- package/src/lib/site-import/site-import-flag.js +23 -0
- package/src/lib/site-import/site-import-flag.js.map +1 -0
- package/src/lib/site-import/site-import-html.d.ts +94 -0
- package/src/lib/site-import/site-import-html.js +462 -0
- package/src/lib/site-import/site-import-html.js.map +1 -0
- package/src/lib/site-import/site-import-images.d.ts +54 -0
- package/src/lib/site-import/site-import-images.js +204 -0
- package/src/lib/site-import/site-import-images.js.map +1 -0
- package/src/lib/site-import/site-import-page.d.ts +48 -0
- package/src/lib/site-import/site-import-page.js +150 -0
- package/src/lib/site-import/site-import-page.js.map +1 -0
- package/src/lib/site-import/site-import-review.d.ts +40 -0
- package/src/lib/site-import/site-import-review.js +149 -0
- package/src/lib/site-import/site-import-review.js.map +1 -0
- package/src/lib/site-import/site-import-robots.d.ts +52 -0
- package/src/lib/site-import/site-import-robots.js +126 -0
- package/src/lib/site-import/site-import-robots.js.map +1 -0
- package/src/lib/usage/assist-credits.d.ts +4 -4
- package/src/lib/usage/assist-credits.js +4 -4
- package/src/lib/usage/assist-credits.js.map +1 -1
- package/src/lib/usage/staff-org-ai-view.js +6 -3
- package/src/lib/usage/staff-org-ai-view.js.map +1 -1
- package/src/lib/usage/staff-org-ai.d.ts +4 -2
- package/src/lib/usage/staff-org-ai.js +7 -7
- package/src/lib/usage/staff-org-ai.js.map +1 -1
- package/src/lib/usage/staff-org-usage-ai.js +2 -2
- package/src/lib/usage/staff-org-usage-ai.js.map +1 -1
|
@@ -616,6 +616,11 @@ const ALL_HUES = [
|
|
|
616
616
|
'ant-design'
|
|
617
617
|
],
|
|
618
618
|
chroma: 'balanced',
|
|
619
|
+
headerAligns: [
|
|
620
|
+
'start',
|
|
621
|
+
'start',
|
|
622
|
+
'center'
|
|
623
|
+
],
|
|
619
624
|
hues: ALL_HUES,
|
|
620
625
|
grounds: [
|
|
621
626
|
'white',
|
|
@@ -639,7 +644,7 @@ const ALL_HUES = [
|
|
|
639
644
|
headingScale: 1,
|
|
640
645
|
density: 'regular'
|
|
641
646
|
},
|
|
642
|
-
design: 'Clear and confident: say plainly what the business does and for whom, draw what it offers as cards or a ruled list, and let a photo carry a section that describes the place or the work. Mix plain and soft bands with one brand band where the page most needs it.',
|
|
647
|
+
design: 'Clear and confident: say plainly what the business does and for whom, draw what it offers as cards or a ruled list, and let a photo carry a section that describes the place or the work. Mix plain and soft bands with one brand band where the page most needs it. The first section opens beside a photo of the work or on a card over it: an eyebrow, a heading that says what the business does, one line and one or two buttons.',
|
|
643
648
|
pages: 'Home, Services, About and Contact are typical; a pricing or booking page where the brief asks for one.'
|
|
644
649
|
},
|
|
645
650
|
{
|
|
@@ -725,6 +730,9 @@ const ALL_HUES = [
|
|
|
725
730
|
'starter'
|
|
726
731
|
],
|
|
727
732
|
chroma: 'vivid',
|
|
733
|
+
headerAligns: [
|
|
734
|
+
'start'
|
|
735
|
+
],
|
|
728
736
|
hues: [
|
|
729
737
|
[
|
|
730
738
|
4,
|
|
@@ -769,7 +777,7 @@ const ALL_HUES = [
|
|
|
769
777
|
headingScale: 1.05,
|
|
770
778
|
density: 'compact'
|
|
771
779
|
},
|
|
772
|
-
design: 'Direct and high-contrast: a big promise and a call-to-action button in the first section, services as a tight grid, trust only as the brief gives it (licensed, insured, years, guarantees), and short, practical copy. Use a dark band and a brand band.',
|
|
780
|
+
design: 'Direct and high-contrast: a big promise and a call-to-action button in the first section, services as a tight grid, trust only as the brief gives it (licensed, insured, years, guarantees), and short, practical copy. Use a dark band and a brand band. The first section opens over a full-bleed photo of the work, or beside one: a short promise as the heading, one practical line and the quote button first.',
|
|
773
781
|
pages: 'Home, Services, About or Why us, and a Quote or Contact page with the form.'
|
|
774
782
|
},
|
|
775
783
|
{
|
|
@@ -819,6 +827,11 @@ const ALL_HUES = [
|
|
|
819
827
|
'starter'
|
|
820
828
|
],
|
|
821
829
|
chroma: 'muted',
|
|
830
|
+
headerAligns: [
|
|
831
|
+
'start',
|
|
832
|
+
'start',
|
|
833
|
+
'center'
|
|
834
|
+
],
|
|
822
835
|
hues: [
|
|
823
836
|
[
|
|
824
837
|
210,
|
|
@@ -857,7 +870,7 @@ const ALL_HUES = [
|
|
|
857
870
|
headingScale: 0.95,
|
|
858
871
|
density: 'airy'
|
|
859
872
|
},
|
|
860
|
-
design: 'Measured and credible: generous space, calm statements, practice areas with short plain explanations, and an unhurried tone with no hard sell. Prefer plain and soft bands, at most one dark band.',
|
|
873
|
+
design: 'Measured and credible: generous space, calm statements, practice areas with short plain explanations, and an unhurried tone with no hard sell. Prefer plain and soft bands, at most one dark band. The first section opens on a card over a photo of the office or the people, or as large type above a wide photo: a calm heading and one plain line.',
|
|
861
874
|
pages: 'Home, Practice areas or Services, About or Our team, and Contact with a consultation form.'
|
|
862
875
|
},
|
|
863
876
|
{
|
|
@@ -928,6 +941,10 @@ const ALL_HUES = [
|
|
|
928
941
|
'fluent'
|
|
929
942
|
],
|
|
930
943
|
chroma: 'muted',
|
|
944
|
+
headerAligns: [
|
|
945
|
+
'center',
|
|
946
|
+
'start'
|
|
947
|
+
],
|
|
931
948
|
hues: [
|
|
932
949
|
[
|
|
933
950
|
150,
|
|
@@ -966,7 +983,7 @@ const ALL_HUES = [
|
|
|
966
983
|
headingScale: 1,
|
|
967
984
|
density: 'airy'
|
|
968
985
|
},
|
|
969
|
-
design: 'Reassuring and gentle: warm words that name who it helps, soft cards, answers in plain language, and a low-pressure tone in every call to action. Prefer soft bands, avoid dark ones.',
|
|
986
|
+
design: 'Reassuring and gentle: warm words that name who it helps, soft cards, answers in plain language, and a low-pressure tone in every call to action. Prefer soft bands, avoid dark ones. The first section opens with half the band a photo of a calm room, or as a centered heading above a wide photo: a gentle heading and one warm line.',
|
|
970
987
|
pages: 'Home, Services or Approach, About, and Book or Contact with the form.'
|
|
971
988
|
},
|
|
972
989
|
{
|
|
@@ -1042,6 +1059,11 @@ const ALL_HUES = [
|
|
|
1042
1059
|
'cupertino'
|
|
1043
1060
|
],
|
|
1044
1061
|
chroma: 'balanced',
|
|
1062
|
+
headerAligns: [
|
|
1063
|
+
'center',
|
|
1064
|
+
'center',
|
|
1065
|
+
'start'
|
|
1066
|
+
],
|
|
1045
1067
|
hues: [
|
|
1046
1068
|
[
|
|
1047
1069
|
0,
|
|
@@ -1075,7 +1097,7 @@ const ALL_HUES = [
|
|
|
1075
1097
|
headingScale: 1.1,
|
|
1076
1098
|
density: 'regular'
|
|
1077
1099
|
},
|
|
1078
|
-
design: 'Photo-led and inviting: large images of the food and the room, the menu as lines rather than cards where it fits, and warm, sensory copy. Use images generously and a warm brand band.',
|
|
1100
|
+
design: 'Photo-led and inviting: large images of the food and the room, the menu as lines rather than cards where it fits, and warm, sensory copy. Use images generously and a warm brand band. The first section opens with the name or the promise centered over a full-bleed photo of the room or the food, or beside one filling half the band: a few words, one line, the menu and visit buttons.',
|
|
1079
1101
|
pages: 'Home, Menu, About or Our story, and Visit or Reserve with the form.'
|
|
1080
1102
|
},
|
|
1081
1103
|
{
|
|
@@ -1135,6 +1157,9 @@ const ALL_HUES = [
|
|
|
1135
1157
|
'material3'
|
|
1136
1158
|
],
|
|
1137
1159
|
chroma: 'balanced',
|
|
1160
|
+
headerAligns: [
|
|
1161
|
+
'start'
|
|
1162
|
+
],
|
|
1138
1163
|
hues: ALL_HUES,
|
|
1139
1164
|
grounds: [
|
|
1140
1165
|
'white',
|
|
@@ -1156,7 +1181,7 @@ const ALL_HUES = [
|
|
|
1156
1181
|
headingScale: 1,
|
|
1157
1182
|
density: 'regular'
|
|
1158
1183
|
},
|
|
1159
|
-
design: 'A storefront, like a designer shop theme: a hero that sells, its picture the product itself and its first button Shop all; the bestsellers, which the platform lists with their photos, prices and add to cart; the range by collection as picture tiles; the brand story beside a photo; why buy here as three or four short items each with an icon (shipping, small batch, returns, only as the brief gives them); the store\'s customer reviews, which the platform shows once shoppers leave them; and a newsletter sign-up. Keep copy short and let images lead; never draw the products themselves as cards of your own, and never a band of text alone.',
|
|
1184
|
+
design: 'A storefront, like a designer shop theme: a hero that sells, its picture the product itself and its first button Shop all; the bestsellers, which the platform lists with their photos, prices and add to cart; the range by collection as picture tiles; the brand story beside a photo; why buy here as three or four short items each with an icon (shipping, small batch, returns, only as the brief gives them); the store\'s customer reviews, which the platform shows once shoppers leave them; and a newsletter sign-up. Keep copy short and let images lead; never draw the products themselves as cards of your own, and never a band of text alone. The first section opens beside two pictures of the products, or one: what the shop sells in a short heading and its Shop all button first.',
|
|
1160
1185
|
pages: 'Home as a storefront: a hero, then sections named "Bestsellers", "Shop by collection" (3 or 4 items), the story, why buy here (3 or 4 items) and "Customer reviews", in the order given above, with "Newsletter sign-up" last. Shop at /shop: a short title section, then "Product grid" second (the platform lists the real products there, with sort, filters, photos, prices and the cart). About, and Contact. Plan no checkout or cart page.'
|
|
1161
1186
|
},
|
|
1162
1187
|
{
|
|
@@ -1209,6 +1234,10 @@ const ALL_HUES = [
|
|
|
1209
1234
|
'carbon'
|
|
1210
1235
|
],
|
|
1211
1236
|
chroma: 'neutral',
|
|
1237
|
+
headerAligns: [
|
|
1238
|
+
'start',
|
|
1239
|
+
'center'
|
|
1240
|
+
],
|
|
1212
1241
|
hues: ALL_HUES,
|
|
1213
1242
|
grounds: [
|
|
1214
1243
|
'white',
|
|
@@ -1228,7 +1257,7 @@ const ALL_HUES = [
|
|
|
1228
1257
|
headingScale: 1.3,
|
|
1229
1258
|
density: 'airy'
|
|
1230
1259
|
},
|
|
1231
|
-
design: 'Minimal and image-led: a large, short statement as the title, the work as image cards with one-line captions, and very few words elsewhere. Mostly plain bands, lots of space, big type, one accent color.',
|
|
1260
|
+
design: 'Minimal and image-led: a large, short statement as the title, the work as image cards with one-line captions, and very few words elsewhere. Mostly plain bands, lots of space, big type, one accent color. The first section opens as large type above a wide picture of the work, or beside two pieces: a short statement and a line about the work.',
|
|
1232
1261
|
pages: 'Home with selected work, Work or Projects, About, and Contact.'
|
|
1233
1262
|
},
|
|
1234
1263
|
{
|
|
@@ -1283,6 +1312,9 @@ const ALL_HUES = [
|
|
|
1283
1312
|
'cupertino'
|
|
1284
1313
|
],
|
|
1285
1314
|
chroma: 'neutral',
|
|
1315
|
+
headerAligns: [
|
|
1316
|
+
'start'
|
|
1317
|
+
],
|
|
1286
1318
|
hues: ALL_HUES,
|
|
1287
1319
|
grounds: [
|
|
1288
1320
|
'white',
|
|
@@ -1302,7 +1334,7 @@ const ALL_HUES = [
|
|
|
1302
1334
|
headingScale: 1.3,
|
|
1303
1335
|
density: 'airy'
|
|
1304
1336
|
},
|
|
1305
|
-
design: 'Confident and editorial: oversized statements, case studies as large image cards with the outcome in a line, services as a short list, and a bold dark band where the page needs weight.',
|
|
1337
|
+
design: 'Confident and editorial: oversized statements, case studies as large image cards with the outcome in a line, services as a short list, and a bold dark band where the page needs weight. The first section opens as an oversized statement above a wide picture of the work, or over a full-bleed one: a statement of a few words and a line about what the studio does.',
|
|
1306
1338
|
pages: 'Home, Work or Case studies, Services, About, and Contact or Start a project.'
|
|
1307
1339
|
},
|
|
1308
1340
|
{
|
|
@@ -1338,6 +1370,10 @@ const ALL_HUES = [
|
|
|
1338
1370
|
'carbon'
|
|
1339
1371
|
],
|
|
1340
1372
|
chroma: 'neutral',
|
|
1373
|
+
headerAligns: [
|
|
1374
|
+
'center',
|
|
1375
|
+
'start'
|
|
1376
|
+
],
|
|
1341
1377
|
hues: ALL_HUES,
|
|
1342
1378
|
grounds: [
|
|
1343
1379
|
'white',
|
|
@@ -1356,7 +1392,7 @@ const ALL_HUES = [
|
|
|
1356
1392
|
headingScale: 1.2,
|
|
1357
1393
|
density: 'airy'
|
|
1358
1394
|
},
|
|
1359
|
-
design: 'Gallery-first: full images, galleries as image cards by subject, few words, packages only as the brief gives them. Many images, mostly plain bands and one dark band.',
|
|
1395
|
+
design: 'Gallery-first: full images, galleries as image cards by subject, few words, packages only as the brief gives them. Many images, mostly plain bands and one dark band. The first section opens as large type above a wide photo, or with the words centered over a full-bleed one: a few words, and the booking button.',
|
|
1360
1396
|
pages: 'Home, Galleries or Portfolio, About, and Book or Contact with the form.'
|
|
1361
1397
|
},
|
|
1362
1398
|
{
|
|
@@ -1407,6 +1443,11 @@ const ALL_HUES = [
|
|
|
1407
1443
|
'cupertino'
|
|
1408
1444
|
],
|
|
1409
1445
|
chroma: 'muted',
|
|
1446
|
+
headerAligns: [
|
|
1447
|
+
'center',
|
|
1448
|
+
'center',
|
|
1449
|
+
'start'
|
|
1450
|
+
],
|
|
1410
1451
|
hues: ALL_HUES,
|
|
1411
1452
|
grounds: [
|
|
1412
1453
|
'white',
|
|
@@ -1426,7 +1467,7 @@ const ALL_HUES = [
|
|
|
1426
1467
|
headingScale: 1.05,
|
|
1427
1468
|
density: 'airy'
|
|
1428
1469
|
},
|
|
1429
|
-
design: 'Reading-first: a narrow, calm measure, writing as cards with a title and a one-line summary, topics as a list, and a quiet, personal voice. Mostly plain bands.',
|
|
1470
|
+
design: 'Reading-first: a narrow, calm measure, writing as cards with a title and a one-line summary, topics as a list, and a quiet, personal voice. Mostly plain bands. The first section opens as a centered masthead above the lead picture, or as large type above a wide one: the blog\'s name or promise and one line about what it covers.',
|
|
1430
1471
|
pages: 'Home, Articles presenting the writing as cards, About, and Subscribe or Contact. Posts themselves are added in Data as a collection, so plan the articles page as an introduction and a few featured cards.'
|
|
1431
1472
|
},
|
|
1432
1473
|
{
|
|
@@ -1478,6 +1519,11 @@ const ALL_HUES = [
|
|
|
1478
1519
|
'starter'
|
|
1479
1520
|
],
|
|
1480
1521
|
chroma: 'balanced',
|
|
1522
|
+
headerAligns: [
|
|
1523
|
+
'center',
|
|
1524
|
+
'center',
|
|
1525
|
+
'start'
|
|
1526
|
+
],
|
|
1481
1527
|
hues: [
|
|
1482
1528
|
[
|
|
1483
1529
|
320,
|
|
@@ -1520,7 +1566,7 @@ const ALL_HUES = [
|
|
|
1520
1566
|
headingScale: 1.2,
|
|
1521
1567
|
density: 'regular'
|
|
1522
1568
|
},
|
|
1523
|
-
design: 'Celebratory and clear: the name and what it is in big type, when and where only as the brief gives them, the schedule as steps, and the details guests ask about as an FAQ. One brand band.',
|
|
1569
|
+
design: 'Celebratory and clear: the name and what it is in big type, when and where only as the brief gives them, the schedule as steps, and the details guests ask about as an FAQ. One brand band. The first section opens beside two pictures of the day, or with its name centered over a full-bleed photo: the name, what it is, and the main action.',
|
|
1524
1570
|
pages: 'Home, Schedule or Details, Travel or Venue where the brief names one, and RSVP or Register with the form.'
|
|
1525
1571
|
},
|
|
1526
1572
|
{
|
|
@@ -1602,6 +1648,9 @@ const ALL_HUES = [
|
|
|
1602
1648
|
'material3'
|
|
1603
1649
|
],
|
|
1604
1650
|
chroma: 'vivid',
|
|
1651
|
+
headerAligns: [
|
|
1652
|
+
'start'
|
|
1653
|
+
],
|
|
1605
1654
|
hues: [
|
|
1606
1655
|
[
|
|
1607
1656
|
0,
|
|
@@ -1638,7 +1687,7 @@ const ALL_HUES = [
|
|
|
1638
1687
|
headingScale: 1.15,
|
|
1639
1688
|
density: 'compact'
|
|
1640
1689
|
},
|
|
1641
|
-
design: 'High-energy: punchy headlines, strong buttons, classes or programs as cards and short, motivating copy. Use a dark band and a brand band.',
|
|
1690
|
+
design: 'High-energy: punchy headlines, strong buttons, classes or programs as cards and short, motivating copy. Use a dark band and a brand band. The first section opens with half the band a photo of training and a loud headline in the other, or over a full-bleed photo: a punchy heading, one line and the join button.',
|
|
1642
1691
|
pages: 'Home, Classes or Programs, About or Coaches, and Join or Contact with the form.'
|
|
1643
1692
|
},
|
|
1644
1693
|
{
|
|
@@ -1674,6 +1723,11 @@ const ALL_HUES = [
|
|
|
1674
1723
|
'fluent'
|
|
1675
1724
|
],
|
|
1676
1725
|
chroma: 'muted',
|
|
1726
|
+
headerAligns: [
|
|
1727
|
+
'center',
|
|
1728
|
+
'center',
|
|
1729
|
+
'start'
|
|
1730
|
+
],
|
|
1677
1731
|
hues: [
|
|
1678
1732
|
[
|
|
1679
1733
|
20,
|
|
@@ -1711,7 +1765,7 @@ const ALL_HUES = [
|
|
|
1711
1765
|
headingScale: 1.05,
|
|
1712
1766
|
density: 'airy'
|
|
1713
1767
|
},
|
|
1714
|
-
design: 'Calm and spacious: quiet headlines, classes as soft cards, gentle copy and lots of space. Soft bands, no dark band.',
|
|
1768
|
+
design: 'Calm and spacious: quiet headlines, classes as soft cards, gentle copy and lots of space. Soft bands, no dark band. The first section opens as a quiet centered heading above a wide photo of the space, or beside one: a calm heading and one gentle line.',
|
|
1715
1769
|
pages: 'Home, Classes or Schedule, About, and Book or Contact with the form.'
|
|
1716
1770
|
},
|
|
1717
1771
|
{
|
|
@@ -1761,6 +1815,10 @@ const ALL_HUES = [
|
|
|
1761
1815
|
'minimal'
|
|
1762
1816
|
],
|
|
1763
1817
|
chroma: 'balanced',
|
|
1818
|
+
headerAligns: [
|
|
1819
|
+
'center',
|
|
1820
|
+
'start'
|
|
1821
|
+
],
|
|
1764
1822
|
hues: [
|
|
1765
1823
|
[
|
|
1766
1824
|
320,
|
|
@@ -1800,7 +1858,7 @@ const ALL_HUES = [
|
|
|
1800
1858
|
headingScale: 1.1,
|
|
1801
1859
|
density: 'regular'
|
|
1802
1860
|
},
|
|
1803
|
-
design: 'Stylish and image-led: striking images, services as a menu or cards, the look and feel of the place in pictures, and booking made obvious. One brand band.',
|
|
1861
|
+
design: 'Stylish and image-led: striking images, services as a menu or cards, the look and feel of the place in pictures, and booking made obvious. One brand band. The first section opens beside two pictures of the work and the place, or with half the band one: a stylish heading, one line and the booking button.',
|
|
1804
1862
|
pages: 'Home, Services, About or The team, and Book or Contact with the form.'
|
|
1805
1863
|
},
|
|
1806
1864
|
{
|
|
@@ -1845,6 +1903,11 @@ const ALL_HUES = [
|
|
|
1845
1903
|
'carbon'
|
|
1846
1904
|
],
|
|
1847
1905
|
chroma: 'muted',
|
|
1906
|
+
headerAligns: [
|
|
1907
|
+
'start',
|
|
1908
|
+
'start',
|
|
1909
|
+
'center'
|
|
1910
|
+
],
|
|
1848
1911
|
hues: [
|
|
1849
1912
|
[
|
|
1850
1913
|
200,
|
|
@@ -1882,7 +1945,7 @@ const ALL_HUES = [
|
|
|
1882
1945
|
headingScale: 1.05,
|
|
1883
1946
|
density: 'regular'
|
|
1884
1947
|
},
|
|
1885
|
-
design: 'Polished and local: image-led sections, the areas served by name only as the brief gives them, listings only as image cards the owner fills in, and confident, local copy. One dark band.',
|
|
1948
|
+
design: 'Polished and local: image-led sections, the areas served by name only as the brief gives them, listings only as image cards the owner fills in, and confident, local copy. One dark band. The first section opens on a card over a full-bleed photo of a home, or under a scrim over one: a confident local heading, one line and the main action.',
|
|
1886
1949
|
pages: 'Home, Buy or Listings, Sell, About, and Contact with the form.'
|
|
1887
1950
|
},
|
|
1888
1951
|
{
|
|
@@ -1936,6 +1999,11 @@ const ALL_HUES = [
|
|
|
1936
1999
|
'material-ui'
|
|
1937
2000
|
],
|
|
1938
2001
|
chroma: 'balanced',
|
|
2002
|
+
headerAligns: [
|
|
2003
|
+
'start',
|
|
2004
|
+
'start',
|
|
2005
|
+
'center'
|
|
2006
|
+
],
|
|
1939
2007
|
hues: [
|
|
1940
2008
|
[
|
|
1941
2009
|
200,
|
|
@@ -1974,7 +2042,7 @@ const ALL_HUES = [
|
|
|
1974
2042
|
headingScale: 1,
|
|
1975
2043
|
density: 'regular'
|
|
1976
2044
|
},
|
|
1977
|
-
design: 'Clear and encouraging: who it is for and the result they get in plain words, courses or subjects as cards, steps where something happens in order, and an FAQ where people have questions.',
|
|
2045
|
+
design: 'Clear and encouraging: who it is for and the result they get in plain words, courses or subjects as cards, steps where something happens in order, and an FAQ where people have questions. The first section opens beside a photo of learning, or with a round photo of the teacher over the words: who it is for and the result, in a heading and one line.',
|
|
1978
2046
|
pages: 'Home, Courses or Lessons, About or Teachers, and Enroll or Contact with the form.'
|
|
1979
2047
|
},
|
|
1980
2048
|
{
|
|
@@ -2057,6 +2125,11 @@ const ALL_HUES = [
|
|
|
2057
2125
|
'starter'
|
|
2058
2126
|
],
|
|
2059
2127
|
chroma: 'balanced',
|
|
2128
|
+
headerAligns: [
|
|
2129
|
+
'start',
|
|
2130
|
+
'start',
|
|
2131
|
+
'center'
|
|
2132
|
+
],
|
|
2060
2133
|
hues: [
|
|
2061
2134
|
[
|
|
2062
2135
|
130,
|
|
@@ -2094,7 +2167,7 @@ const ALL_HUES = [
|
|
|
2094
2167
|
headingScale: 1.05,
|
|
2095
2168
|
density: 'regular'
|
|
2096
2169
|
},
|
|
2097
|
-
design: 'Mission-led: the cause in one strong line, what the organization does as cards, how to help as steps (volunteer, give, spread the word), and hopeful, concrete copy. A brand band for the call to help.',
|
|
2170
|
+
design: 'Mission-led: the cause in one strong line, what the organization does as cards, how to help as steps (volunteer, give, spread the word), and hopeful, concrete copy. A brand band for the call to help. The first section opens over a full-bleed photo of the people it serves, or beside two pictures: the cause in one strong line and the help button first.',
|
|
2098
2171
|
pages: 'Home, Our work or Programs, About, and Get involved or Contact with the form.'
|
|
2099
2172
|
},
|
|
2100
2173
|
{
|
|
@@ -2173,6 +2246,10 @@ const ALL_HUES = [
|
|
|
2173
2246
|
'material-ui'
|
|
2174
2247
|
],
|
|
2175
2248
|
chroma: 'vivid',
|
|
2249
|
+
headerAligns: [
|
|
2250
|
+
'center',
|
|
2251
|
+
'start'
|
|
2252
|
+
],
|
|
2176
2253
|
hues: ALL_HUES,
|
|
2177
2254
|
grounds: [
|
|
2178
2255
|
'white',
|
|
@@ -2192,7 +2269,7 @@ const ALL_HUES = [
|
|
|
2192
2269
|
headingScale: 1.3,
|
|
2193
2270
|
density: 'regular'
|
|
2194
2271
|
},
|
|
2195
|
-
design: 'Loud and visual: the name huge, image bands, a listen section where the platform places a music player for the artist’s own tracks, releases or shows as image cards only as the brief gives them, and a short bio. Dark bands are welcome. Never name or link songs by other artists.',
|
|
2272
|
+
design: 'Loud and visual: the name huge, image bands, a listen section where the platform places a music player for the artist’s own tracks, releases or shows as image cards only as the brief gives them, and a short bio. Dark bands are welcome. Never name or link songs by other artists. The first section opens with the name huge over a full-bleed photo, set at the start or centered: the name, one line and the listen or shows button.',
|
|
2196
2273
|
pages: 'Home, Music or Shows, About, and Booking or Contact with the form.'
|
|
2197
2274
|
},
|
|
2198
2275
|
{
|
|
@@ -2234,6 +2311,10 @@ const ALL_HUES = [
|
|
|
2234
2311
|
'fluent'
|
|
2235
2312
|
],
|
|
2236
2313
|
chroma: 'muted',
|
|
2314
|
+
headerAligns: [
|
|
2315
|
+
'center',
|
|
2316
|
+
'start'
|
|
2317
|
+
],
|
|
2237
2318
|
hues: ALL_HUES,
|
|
2238
2319
|
grounds: [
|
|
2239
2320
|
'white',
|
|
@@ -2255,7 +2336,7 @@ const ALL_HUES = [
|
|
|
2255
2336
|
headingScale: 1.1,
|
|
2256
2337
|
density: 'airy'
|
|
2257
2338
|
},
|
|
2258
|
-
design: 'Simple and personal: who the person is in one line, what they do in plain words, experience or highlights as a list or steps, selected work as cards where the brief names some. Mostly plain bands.',
|
|
2339
|
+
design: 'Simple and personal: who the person is in one line, what they do in plain words, experience or highlights as a list or steps, selected work as cards where the brief names some. Mostly plain bands. The first section opens with a round portrait over the words, or as a centered heading above a wide photo: who the person is in one line and what they do.',
|
|
2259
2340
|
pages: 'Home, About or Experience, Work where the brief names some, and Contact.'
|
|
2260
2341
|
},
|
|
2261
2342
|
{
|
|
@@ -2299,6 +2380,10 @@ const ALL_HUES = [
|
|
|
2299
2380
|
'ant-design'
|
|
2300
2381
|
],
|
|
2301
2382
|
chroma: 'vivid',
|
|
2383
|
+
headerAligns: [
|
|
2384
|
+
'start',
|
|
2385
|
+
'center'
|
|
2386
|
+
],
|
|
2302
2387
|
hues: ALL_HUES,
|
|
2303
2388
|
grounds: [
|
|
2304
2389
|
'white',
|
|
@@ -2320,7 +2405,7 @@ const ALL_HUES = [
|
|
|
2320
2405
|
headingScale: 1.15,
|
|
2321
2406
|
density: 'regular'
|
|
2322
2407
|
},
|
|
2323
|
-
design: 'One action: a strong promise and the call to action in the first section, benefits as cards, how it works as steps, objections answered as an FAQ, and the call to action repeated. A brand band where the page asks.',
|
|
2408
|
+
design: 'One action: a strong promise and the call to action in the first section, benefits as cards, how it works as steps, objections answered as an FAQ, and the call to action repeated. A brand band where the page asks. The first section opens with the promise centered above a wide picture of the offer, or over a full-bleed photo: a strong promise, one line and the call to action.',
|
|
2324
2409
|
pages: 'One long home page carries the story; a second page only for the form or details the brief asks for.'
|
|
2325
2410
|
},
|
|
2326
2411
|
{
|
|
@@ -2348,6 +2433,9 @@ const ALL_HUES = [
|
|
|
2348
2433
|
'cupertino'
|
|
2349
2434
|
],
|
|
2350
2435
|
chroma: 'vivid',
|
|
2436
|
+
headerAligns: [
|
|
2437
|
+
'center'
|
|
2438
|
+
],
|
|
2351
2439
|
hues: ALL_HUES,
|
|
2352
2440
|
grounds: [
|
|
2353
2441
|
'white',
|
|
@@ -2368,7 +2456,7 @@ const ALL_HUES = [
|
|
|
2368
2456
|
headingScale: 1.3,
|
|
2369
2457
|
density: 'airy'
|
|
2370
2458
|
},
|
|
2371
|
-
design: 'Short and striking: what is coming in one big line, two or three reasons to care, and a way to hear first through the form. Few sections, big type.',
|
|
2459
|
+
design: 'Short and striking: what is coming in one big line, two or three reasons to care, and a way to hear first through the form. Few sections, big type. The first section opens with one big line centered over a full-bleed photo, or on a card over one: what is coming and the sign-up button.',
|
|
2372
2460
|
pages: 'A home page that says what is coming and invites people to sign up; nothing else unless the brief asks.'
|
|
2373
2461
|
}
|
|
2374
2462
|
];
|