@vectoriox/iox-ui 5.55.0 → 5.56.1
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/fesm2022/vectoriox-iox-ui-generation-core.mjs +431 -12
- package/fesm2022/vectoriox-iox-ui-generation-core.mjs.map +1 -1
- package/fesm2022/vectoriox-iox-ui-harness-core.mjs +28 -1
- package/fesm2022/vectoriox-iox-ui-harness-core.mjs.map +1 -1
- package/generation-core/index.d.ts +223 -4
- package/harness-core/index.d.ts +20 -2
- package/package.json +1 -1
- package/src/generation-core/audit-site.ts +386 -0
- package/src/generation-core/public-api.ts +2 -0
- package/src/generation-core/site-build-run.ts +7 -0
- package/src/generation-core/stock-photos.ts +137 -0
- package/src/harness-core/public-api.ts +1 -0
- package/src/harness-core/starting-design.ts +44 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { DesignChoices, AnimateId } from '@vectoriox/iox-ui/design-core';
|
|
1
|
+
import { DesignChoices, AnimateId, DesignTokenLike } from '@vectoriox/iox-ui/design-core';
|
|
2
2
|
|
|
3
3
|
declare const SPEC_SITE_PLAN_SHAPE: {
|
|
4
4
|
readonly plan: {
|
|
@@ -2884,6 +2884,8 @@ declare enum BuildStep {
|
|
|
2884
2884
|
Preflight = "preflight",
|
|
2885
2885
|
ContentTypes = "content-types",
|
|
2886
2886
|
SampleImages = "sample-images",
|
|
2887
|
+
/** I2: the curated stock photos the plan's empty picture slots take, copied into the studio (never hot-linked). */
|
|
2888
|
+
StockPhotos = "stock-photos",
|
|
2887
2889
|
Items = "items",
|
|
2888
2890
|
DataSources = "data-sources",
|
|
2889
2891
|
Pages = "pages",
|
|
@@ -2903,6 +2905,8 @@ declare enum CreatedKind {
|
|
|
2903
2905
|
/** Fields the build added to a content type it found (types are shared by every organization of a studio). */
|
|
2904
2906
|
ContentTypeFields = "content-type-fields",
|
|
2905
2907
|
SampleImage = "sample-image",
|
|
2908
|
+
/** A stock photo copied into the studio's storage (`media/stock/…`), with its assets row. */
|
|
2909
|
+
StockPhoto = "stock-photo",
|
|
2906
2910
|
Item = "item",
|
|
2907
2911
|
DataSource = "data-source",
|
|
2908
2912
|
Page = "page",
|
|
@@ -2964,7 +2968,9 @@ declare enum BuildNoticeCode {
|
|
|
2964
2968
|
/** Storage is not configured: sample items get the empty image box, and the run says so. */
|
|
2965
2969
|
NoStorage = "no-storage",
|
|
2966
2970
|
/** A content type the build reuses is not public in this studio: the site will not show its items. */
|
|
2967
|
-
ContentTypeNotPublic = "content-type-not-public"
|
|
2971
|
+
ContentTypeNotPublic = "content-type-not-public",
|
|
2972
|
+
/** The stock library could not be read: the picture slots keep the empty box, and the run says so. */
|
|
2973
|
+
StockUnavailable = "stock-unavailable"
|
|
2968
2974
|
}
|
|
2969
2975
|
interface BuildNotice {
|
|
2970
2976
|
code: string;
|
|
@@ -3034,6 +3040,7 @@ declare const buildKeys: {
|
|
|
3034
3040
|
readonly contentTypeFields: (name: string) => string;
|
|
3035
3041
|
readonly item: (contentType: string, n: number) => string;
|
|
3036
3042
|
readonly sampleImage: (n: number) => string;
|
|
3043
|
+
readonly stockPhoto: (libraryKey: string) => string;
|
|
3037
3044
|
readonly dataSource: (alias: string) => string;
|
|
3038
3045
|
readonly page: (key: string) => string;
|
|
3039
3046
|
readonly global: (nodeId: string) => string;
|
|
@@ -3473,5 +3480,217 @@ declare function wordPattern(word: string): RegExp;
|
|
|
3473
3480
|
/** The words to avoid and the facts never given, in every written text of the plan. */
|
|
3474
3481
|
declare function planWordIssues(plan: SitePlan, ctx: PlanWordContext): PlanWordIssue[];
|
|
3475
3482
|
|
|
3476
|
-
|
|
3477
|
-
|
|
3483
|
+
/**
|
|
3484
|
+
* THE Publishable gate (AI plan §3e, M1-7): ONE pure function over a snapshot of a site — its pages, globals, the
|
|
3485
|
+
* connectors' health, the look's token rows, what a build left to fill — run by the Publish dialog, the builder's
|
|
3486
|
+
* Needs attention and the server on publish (iox-cms refuses with the same findings). Works on any site, generated
|
|
3487
|
+
* or hand-built. Severity is decision D8: an unfilled fact, a policy placeholder or an action that points at nothing
|
|
3488
|
+
* BLOCKS; samples, copy placeholders and stock photos ASK ("Publish anyway"); the rest WARN. Design advice
|
|
3489
|
+
* (harness-core `lintDesign`) is not one of the eight — the caller adds it, and it never blocks.
|
|
3490
|
+
*/
|
|
3491
|
+
declare enum SiteCheckId {
|
|
3492
|
+
Navigation = "navigation",
|
|
3493
|
+
Forms = "forms",
|
|
3494
|
+
Consent = "consent",
|
|
3495
|
+
Seo = "seo",
|
|
3496
|
+
Facts = "facts",
|
|
3497
|
+
Accessibility = "accessibility",
|
|
3498
|
+
Tokens = "tokens",
|
|
3499
|
+
Actions = "actions"
|
|
3500
|
+
}
|
|
3501
|
+
/** The eight, in §3e's order. */
|
|
3502
|
+
declare const SITE_CHECKS: ReadonlyArray<SiteCheckId>;
|
|
3503
|
+
declare enum CheckSeverity {
|
|
3504
|
+
Block = "block",
|
|
3505
|
+
Ask = "ask",
|
|
3506
|
+
Warn = "warn"
|
|
3507
|
+
}
|
|
3508
|
+
declare enum SiteFindingCode {
|
|
3509
|
+
NoHeader = "no-header",
|
|
3510
|
+
NoPhoneMenu = "no-phone-menu",
|
|
3511
|
+
FormWithoutId = "form-without-id",
|
|
3512
|
+
EmailNeedsMailer = "email-needs-mailer",
|
|
3513
|
+
TrackerWithoutBanner = "tracker-without-banner",
|
|
3514
|
+
NoTitle = "no-title",
|
|
3515
|
+
NoDescription = "no-description",
|
|
3516
|
+
UnfilledFact = "unfilled-fact",
|
|
3517
|
+
CopyPlaceholder = "copy-placeholder",
|
|
3518
|
+
SampleItems = "sample-items",
|
|
3519
|
+
StockPhoto = "stock-photo",
|
|
3520
|
+
NoPrivacyPage = "no-privacy-page",
|
|
3521
|
+
PrivacyPagePlaceholder = "privacy-page-placeholder",
|
|
3522
|
+
LowContrast = "low-contrast",
|
|
3523
|
+
HeadingOrder = "heading-order",
|
|
3524
|
+
ImageWithoutAlt = "image-without-alt",
|
|
3525
|
+
LiteralColour = "literal-colour",
|
|
3526
|
+
DeadLink = "dead-link",
|
|
3527
|
+
DeadDialogTarget = "dead-dialog-target",
|
|
3528
|
+
ActionNeedsConnector = "action-needs-connector"
|
|
3529
|
+
}
|
|
3530
|
+
/** Each finding's severity — one table (D8), never decided at a call site. */
|
|
3531
|
+
declare const FINDING_SEVERITY: Readonly<Record<SiteFindingCode, CheckSeverity>>;
|
|
3532
|
+
interface SiteFinding {
|
|
3533
|
+
check: SiteCheckId;
|
|
3534
|
+
severity: CheckSeverity;
|
|
3535
|
+
code: SiteFindingCode;
|
|
3536
|
+
/** In plain words, for the screen. */
|
|
3537
|
+
message: string;
|
|
3538
|
+
pageId?: string;
|
|
3539
|
+
nodeId?: string;
|
|
3540
|
+
/** The global slot (`header` / `footer`) when it is in a global. */
|
|
3541
|
+
owner?: string;
|
|
3542
|
+
}
|
|
3543
|
+
interface SiteCheck {
|
|
3544
|
+
id: SiteCheckId;
|
|
3545
|
+
passed: boolean;
|
|
3546
|
+
findings: SiteFinding[];
|
|
3547
|
+
}
|
|
3548
|
+
interface SiteAudit {
|
|
3549
|
+
checks: SiteCheck[];
|
|
3550
|
+
blocking: number;
|
|
3551
|
+
asking: number;
|
|
3552
|
+
}
|
|
3553
|
+
/** A page as the gate reads it. */
|
|
3554
|
+
interface AuditPage {
|
|
3555
|
+
id: string;
|
|
3556
|
+
name: string;
|
|
3557
|
+
route: string;
|
|
3558
|
+
layout: ReadonlyArray<SerializedNode>;
|
|
3559
|
+
seo?: unknown;
|
|
3560
|
+
}
|
|
3561
|
+
/** A placeholder a build left, and whether the node still shows it (the caller compares the node's text). */
|
|
3562
|
+
interface AuditPlaceholder extends ComposedPlaceholder {
|
|
3563
|
+
pageId?: string;
|
|
3564
|
+
filled: boolean;
|
|
3565
|
+
}
|
|
3566
|
+
interface SiteAuditSnapshot {
|
|
3567
|
+
pages: ReadonlyArray<AuditPage>;
|
|
3568
|
+
globals: ReadonlyArray<SerializedNode>;
|
|
3569
|
+
/** Connector type → usable (configured or provided, and healthy). */
|
|
3570
|
+
connectors: Readonly<Record<string, boolean>>;
|
|
3571
|
+
/** Connector types that set a tracker (a consent category) and are configured. */
|
|
3572
|
+
trackers?: ReadonlyArray<string>;
|
|
3573
|
+
/** The look's token rows and the mode(s) the site wears. */
|
|
3574
|
+
design?: {
|
|
3575
|
+
rows: ReadonlyArray<DesignTokenLike>;
|
|
3576
|
+
modes: ReadonlyArray<'light' | 'dark'>;
|
|
3577
|
+
} | null;
|
|
3578
|
+
placeholders?: ReadonlyArray<AuditPlaceholder>;
|
|
3579
|
+
/** Sample items still in the site (`isSample`). */
|
|
3580
|
+
samples?: ReadonlyArray<{
|
|
3581
|
+
contentType: string;
|
|
3582
|
+
id: string;
|
|
3583
|
+
label?: string;
|
|
3584
|
+
}>;
|
|
3585
|
+
/** Stock photos a build placed that are still on the page. */
|
|
3586
|
+
stock?: ReadonlyArray<{
|
|
3587
|
+
nodeId: string;
|
|
3588
|
+
pageId?: string;
|
|
3589
|
+
owner?: string;
|
|
3590
|
+
}>;
|
|
3591
|
+
}
|
|
3592
|
+
interface SiteAuditOptions {
|
|
3593
|
+
/** Audit as if only this page were being published (its own page checks + every site-wide one). */
|
|
3594
|
+
pageId?: string;
|
|
3595
|
+
}
|
|
3596
|
+
/** A route pattern (`/work/:slug`) matches a concrete path (`/work/blue-bowl`). */
|
|
3597
|
+
declare function routeMatches(pattern: string, path: string): boolean;
|
|
3598
|
+
/** Run the eight checks. `pageId` narrows the page checks to the page being published; site-wide ones always run. */
|
|
3599
|
+
declare function auditSite(snapshot: SiteAuditSnapshot, options?: SiteAuditOptions): SiteAudit;
|
|
3600
|
+
/** What a publish request must acknowledge: every ASK finding's code (a BLOCK cannot be acknowledged). */
|
|
3601
|
+
declare function requiredAcknowledgements(audit: SiteAudit): SiteFindingCode[];
|
|
3602
|
+
/** The publish verdict: blocked (never acknowledgeable), needs these acknowledgements, or free to go. */
|
|
3603
|
+
declare function publishVerdict(audit: SiteAudit, acknowledged?: ReadonlyArray<string>): {
|
|
3604
|
+
ok: boolean;
|
|
3605
|
+
blocked: boolean;
|
|
3606
|
+
missing: SiteFindingCode[];
|
|
3607
|
+
};
|
|
3608
|
+
|
|
3609
|
+
/**
|
|
3610
|
+
* Stock photos in a built site (AI plan §3g / §3m, I2): a FREE picture from the platform's curated library, copied
|
|
3611
|
+
* into the studio's own storage (never hot-linked), placed only in an EMPTY picture slot of a section that may show
|
|
3612
|
+
* one — never the owner's work (a collection, a detail page, a gallery: what the nine portfolio types sell is theirs),
|
|
3613
|
+
* never a person (testimonials, the team), never anywhere when the business type says `stock: false`. Its alt text is
|
|
3614
|
+
* the provider's description of what it shows (never a claim), and the credit line its licence requires is placed in
|
|
3615
|
+
* the footer. Pure: the build step does the copying.
|
|
3616
|
+
*/
|
|
3617
|
+
/** Where a stock photo comes from (the library's provider). */
|
|
3618
|
+
declare enum StockProviderId {
|
|
3619
|
+
Magnific = "magnific"
|
|
3620
|
+
}
|
|
3621
|
+
/** What a picture's licence asks of the site that shows it. */
|
|
3622
|
+
interface StockCredit {
|
|
3623
|
+
provider: `${StockProviderId}`;
|
|
3624
|
+
/** The provider's id of the picture. */
|
|
3625
|
+
resourceId: string;
|
|
3626
|
+
/** The provider's page for it. */
|
|
3627
|
+
sourceUrl: string;
|
|
3628
|
+
/** The provider's own title — what the picture shows. */
|
|
3629
|
+
title: string;
|
|
3630
|
+
author: string;
|
|
3631
|
+
/** `freemium` — the free licence (premium pictures never enter the library). */
|
|
3632
|
+
licence: string;
|
|
3633
|
+
licenceUrl: string;
|
|
3634
|
+
/** The words the licence requires, and where they link. */
|
|
3635
|
+
line: string;
|
|
3636
|
+
lineUrl: string;
|
|
3637
|
+
}
|
|
3638
|
+
/** One picture of the platform library (`iox-stock/<type>/`), as its manifest lists it. */
|
|
3639
|
+
interface StockPhoto {
|
|
3640
|
+
/** The library key (`spa/12345.jpg`) — the copy's file name is derived from it. */
|
|
3641
|
+
key: string;
|
|
3642
|
+
/** Where the build downloads it from (the platform bucket). */
|
|
3643
|
+
url: string;
|
|
3644
|
+
/** What it shows, in the provider's words — the alt text. Never a claim. */
|
|
3645
|
+
alt: string;
|
|
3646
|
+
width?: number;
|
|
3647
|
+
height?: number;
|
|
3648
|
+
credit: StockCredit;
|
|
3649
|
+
}
|
|
3650
|
+
/** The section families a stock photo may stand in for a picture in. */
|
|
3651
|
+
declare const STOCK_FAMILIES: ReadonlySet<string>;
|
|
3652
|
+
interface StockSlot {
|
|
3653
|
+
/** The Image node the photo goes into. */
|
|
3654
|
+
nodeId: string;
|
|
3655
|
+
/** The page key it lives on. */
|
|
3656
|
+
owner: string;
|
|
3657
|
+
pattern: string;
|
|
3658
|
+
}
|
|
3659
|
+
/** The empty picture slots of a composed site a stock photo may fill, in page and section order. */
|
|
3660
|
+
declare function stockSlots(plan: SitePlan, composed: Pick<ComposedSite, 'pages' | 'placeholders'>): StockSlot[];
|
|
3661
|
+
interface StockPlacement extends StockSlot {
|
|
3662
|
+
photo: StockPhoto;
|
|
3663
|
+
}
|
|
3664
|
+
/** Which photo goes where: the library's photos in order, one per slot, never twice; none when the type says no stock. */
|
|
3665
|
+
declare function planStockPhotos(slots: ReadonlyArray<StockSlot>, photos: ReadonlyArray<StockPhoto>, stockAllowed: boolean): StockPlacement[];
|
|
3666
|
+
/** A placed photo's copy in the studio's storage: the key the build writes it under. */
|
|
3667
|
+
declare function stockCopyKey(photo: Pick<StockPhoto, 'key'>): string;
|
|
3668
|
+
/** Put the studio's copy of each photo into its slot (src + the provider's alt). Returns the nodes changed. */
|
|
3669
|
+
declare function applyStockPhotos(trees: ReadonlyArray<SerializedNode>, placed: ReadonlyArray<{
|
|
3670
|
+
nodeId: string;
|
|
3671
|
+
url: string;
|
|
3672
|
+
alt: string;
|
|
3673
|
+
}>): number;
|
|
3674
|
+
/** The credit lines a set of photos needs — one per distinct line (a free Magnific photo: "Designed by Magnific"). */
|
|
3675
|
+
declare function stockCreditLines(photos: ReadonlyArray<Pick<StockPhoto, 'credit'>>): Array<{
|
|
3676
|
+
line: string;
|
|
3677
|
+
url: string;
|
|
3678
|
+
}>;
|
|
3679
|
+
/** The footer node id of a credit line (stable — a build that runs twice finds it). */
|
|
3680
|
+
declare const stockCreditNodeId: (index: number) => string;
|
|
3681
|
+
/**
|
|
3682
|
+
* The credit line, as the builder would create a Link (a plain node the owner may move or restyle): the licence's words,
|
|
3683
|
+
* linking where it asks, opening in a new tab. Placed at the end of the footer — the place the licence names for a site.
|
|
3684
|
+
*/
|
|
3685
|
+
declare function stockCreditNode(index: number, credit: {
|
|
3686
|
+
line: string;
|
|
3687
|
+
url: string;
|
|
3688
|
+
}): SerializedNode;
|
|
3689
|
+
/** Append the credit lines to the footer root (once each). Returns how many it added. */
|
|
3690
|
+
declare function addStockCredits(footer: SerializedNode, credits: ReadonlyArray<{
|
|
3691
|
+
line: string;
|
|
3692
|
+
url: string;
|
|
3693
|
+
}>): number;
|
|
3694
|
+
|
|
3695
|
+
export { ACTIVE_BUILD_STATUSES, AI_REFUSAL_NEXT, AI_REFUSAL_STATUS, AI_STEPS, AI_STEP_LABELS, AI_STEP_NEEDS, AI_STEP_TYPICAL_TOKENS, AiCallStatus, AiCapability, AiGenerationStage, AiKeyMode, AiNextKind, AiProviderId, AiRefusalCode, AiStep, BAR_ITEMS_MAX, BAR_ITEMS_MIN, BASELINE_ROLES, BUILD_STEPS, BaselineRole, BindScope, BuildNoticeCode, BuildStep, CREDITS_PER_USD, CardBindTarget, CheckSeverity, ComposeError, ComposeIssueCode, ContentTypeAction, CreatedKind, DANGLING_LINK_CODES, DEFAULT_PHONE_MENU_BREAKPOINT, ENTRANCE_EASING, ENTRANCE_ORIGIN_LOOK, ENTRANCE_TRIGGER, EntrancePart, FACT_KEYS, FINAL_GENERATION_STAGES, FINDING_SEVERITY, GlobalSlot, JSON_SCHEMA_BANNED_KEYWORDS, JsonSchemaShapeError, KeptReason, NAV_PART_LABELS, NAV_SHAPE_COPY, NEUTRAL_STYLE_PROPS, NODE_BASELINES, NO_TOKENS, NavPagesSource, NavRole, NavShape, NavShapeError, PLAN_EDITS_ANSWER_SHAPE, PLAN_EDITS_SCHEMA_NAME, PLAN_EDIT_SHAPE, PRICING_PATTERN, PUBLISH_BLOCKING_PLACEHOLDERS, PageDataKind, PathIssueCollector, PatternDirective, PatternGlobalPosition, PatternOpens, PatternPlaceholder, PatternRecipe, PhoneMenuBreakpoint, PlaceholderKind, PlanChangeAction, PlanChangeKind, PlanDataSourceMode, PlanDataSourceType, PlanEditIssueCode, PlanEditOp, PlanEditsOutcome, PlanWordIssueCode, PreflightRefusalCode, RelativeOp, SAMPLE_IMAGE_REF, SITE_CHECKS, SITE_FACT_LABELS, SITE_HEADER_PATTERN, SITE_PATTERNS, SITE_PLAN_SCHEMA_NAME, SITE_PLAN_VERSION, SITE_TEMPLATES, SPEC_SITE_FACTS, SPEC_SITE_LIBRARY, SPEC_SITE_PATTERNS, SPEC_SITE_PLAN_SHAPE, SPEC_SITE_TEMPLATES, STOCK_FAMILIES, STUDIO_TEMPLATE, SiteBuildKind, SiteBuildStatus, SiteCheckId, SiteFindingCode, SitePlanError, SitePlanIssueCode, SitePlanSourceKind, SitePlanWireKey, SiteTemplateError, SiteTemplateId, StepState, StockProviderId, addBarItem, addStockCredits, altSourceScopes, applyPlanEdits, applyStockPhotos, assertStyleSlots, assertValidSitePlan, auditSite, barIconForRoute, blocksPublish, buildKeys, buildStepFacts, builtHomePageId, composeNavHeader, composeSection, composeSite, contentTypeFromWire, contentTypeJsonSchema, costUsd, createSerializedNode, creditsOfUsd, dataSourceJsonSchema, describePlanData, describeShapeKey, entranceAction, entranceInteraction, estimateStepCredits, failedBuildStep, fieldJsonSchema, findNavRoot, isActiveBuild, isNonEmptyString, isPlainObject, jsonAnyOf, jsonBoolean, jsonClosedObject, jsonInteger, jsonListOf, jsonOneOf, jsonSchemaKeywords, jsonSchemaObjects, jsonShapedObject, jsonText, modelCanDo, moveBarItem, navPages, navShapeBreakpoint, navShapeOf, nextSourceOf, nodeBindPaths, pageJsonSchema, parseSampleImageRef, pathAt, patternById, patternNeedsBinding, patternNodes, patternOptionalParts, patternScopes, patternSlots, patternTakesBinding, phoneMenuPages, planEditsFromWire, planEditsJsonSchema, planFromTemplate, planNavShape, planStockPhotos, planWordIssues, publishVerdict, releasedLayoutDefaults, removeBarItem, requiredAcknowledgements, requiredShapeKeys, routeMatches, routeParams, sampleImageRef, sectionEntrances, sectionFromWire, sectionJsonSchema, sectionPatternIds, setStyleProps, shapeKeys, siteNavPages, sitePlanFromWire, sitePlanJsonSchema, sitePlanToWire, staggerDelay, stockCopyKey, stockCreditLines, stockCreditNode, stockCreditNodeId, stockSlots, validatePlanEdits, validateSitePlan, walkSerialized, wordPattern, writtenTexts };
|
|
3696
|
+
export type { AddBarItemResult, AiMeter, AiModelEntry, AiRefusal, AiTokenCounts, AiTokenPrice, AuditPage, AuditPlaceholder, BarItemsEditResult, BuildNotice, BuildStepError, BuildStepFacts, BuildStepRecord, CmsDataSourcePlan, ComposeContext, ComposeIssue, ComposedDataSource, ComposedItem, ComposedNavHeader, ComposedPage, ComposedPlaceholder, ComposedRoute, ComposedSection, ComposedSite, ContentFieldPlan, ContentSeedPlan, ContentTypePlan, CreateNodeOptions, CreatedRecord, DataSourcePlan, DynamicKeysAsList, EntranceAction, EntranceInteraction, EntranceSpec, FactKey, JsonSchema, NavHeaderInput, NavHeaderOptions, NavPage, NavShapeOptions, NavShapeResult, NodeBaseline, PageData, PageDataLine, PagePlan, PageSectionPlan, PathIssue, PatternNode, PlainObject, PlanChange, PlanEdit, PlanEditIssue, PlanEditResult, PlanEditsAnswer, PlanWordContext, PlanWordIssue, PreflightRefusal, RelativeDataSourcePlan, SectionEntrances, SectionInput, SectionOptions, SerializedBinding, SerializedNode, SerializedResponsive, ShapeEntry, ShapeIssueCodes, SiteAudit, SiteAuditOptions, SiteAuditSnapshot, SiteBuildRun, SiteBusiness, SiteCheck, SiteFinding, SitePageRef, SitePattern, SitePlan, SitePlanIssue, SitePlanSchemaPin, SitePlanSource, SitePlanValidation, SiteTemplate, StockCredit, StockPhoto, StockPlacement, StockSlot, TemplatePlanInput, UndoKept, UndoPreview, UndoRecord, WrittenText };
|
package/harness-core/index.d.ts
CHANGED
|
@@ -2954,5 +2954,23 @@ declare const GENERATION_LIMITS: {
|
|
|
2954
2954
|
readonly sentenceChars: 500;
|
|
2955
2955
|
};
|
|
2956
2956
|
|
|
2957
|
-
|
|
2958
|
-
|
|
2957
|
+
/**
|
|
2958
|
+
* The look a business STARTS from (AI plan §3d "Build with these", §3o, MO-D3) — ONE rule for the wizard's Design step
|
|
2959
|
+
* (a Look pick) and the server's "Build with these": the preset at its defaults, Scrolling · How animated · Between
|
|
2960
|
+
* pages started from the kind of business (and the references), the owner's own Motion choices kept, and — given
|
|
2961
|
+
* references — the best-ranked style with the reference colour as its seed when that colour passes AA in every mode
|
|
2962
|
+
* the style offers (`referenceSeed`). Pure.
|
|
2963
|
+
*/
|
|
2964
|
+
/** A preset for this business: its choices, Motion from the business (`motionFor`), what the owner already set kept. */
|
|
2965
|
+
declare function presetDesign(presetId: string, input: MotionInput | string | null, kept?: Partial<Pick<DesignChoices, 'scroll' | 'animate' | 'between' | 'motion'>>, read?: StyleRead | null): DesignChoices | null;
|
|
2966
|
+
interface StartingDesign {
|
|
2967
|
+
presetId: string;
|
|
2968
|
+
design: DesignChoices;
|
|
2969
|
+
/** The reference colour was used as the seed (it passed AA in every mode the style offers). */
|
|
2970
|
+
referenceColour: boolean;
|
|
2971
|
+
}
|
|
2972
|
+
/** The look a business starts from: its best-ranked style (with the references' boost), at its defaults. */
|
|
2973
|
+
declare function startingDesign(input: (RankInput & MotionInput) | string | null, read?: StyleRead | null): StartingDesign | null;
|
|
2974
|
+
|
|
2975
|
+
export { ANIMATE_ADVICE_STEPS, AnalysisIssueCode, AnalysisLocale, AvoidCheck, BUSINESS_TYPES, BUSINESS_TYPE_IDS, BookingNeed, COPY_LENGTH_ORDER, CopyLength, GENERATION_LIMITS, HARNESS_SOURCE, LITTLE_MOVEMENT_AVOID, LITTLE_MOVEMENT_CAP, LintKind, MAX_ANALYSIS_MOODS, MAX_PIXEL_SAMPLES, MAX_READ_PICTURES, NEEDS, NEED_IDS, NeedSource, PALETTE_SIZE, PALETTE_THRESHOLDS, PictureRole, PlanChangeOutcome, PresetFit, RANK_WEIGHTS, READING_SHAPE, READ_ANIMATE, READ_WEIGHTS, RankReason, ReaderState, ReadingIssueCode, SITE_ANALYSIS_SCHEMA_NAME, SITE_READING_SCHEMA_NAME, SPEC_ANALYSIS_SHAPE, SPEC_BUSINESS_TYPES, SPEC_HARNESS_EXAMPLES, SPEC_HARNESS_SOURCE, SPEC_NEEDS, SPEC_STRUCTURES, SPEC_USER_AVOIDS, STRUCTURES, SiteReadRefusal, StyleReadGround, StyleReadHeadings, StyleReadMotion, StyleReadSourceKind, USER_AVOID_IDS, VoiceFormality, VoicePerson, addressesIn, analysisPromptContext, businessTypeById, calmerChoice, decodeSiteReading, inferNeeds, isLookRule, lintDesign, lookMatches, mapStyleRead, matchBusinessType, matchBusinessTypes, measurePalette, mergeStyleReads, motionAdvice, motionFor, normalizeAddress, oklchHue, paletteBrand, paletteGround, paletteSamples, pictureStyleRead, pixelSamples, presetDesign, presetHasSerifHeadings, presetLook, presetReason, rankStylePresets, rankWithReferences, readPalette, referenceSeed, seedPassesPreset, siteAnalysisJsonSchema, siteReadingJsonSchema, startingDesign, structureFor, userAvoidRule, validateSiteAnalysis, validateSiteReading, withoutAddress };
|
|
2976
|
+
export type { AiGenerationView, AnalysisContext, AnalysisIssue, AnalysisValidation, AvoidRule, BusinessType, BusinessTypeMatch, CheckRule, ColourSample, FactRead, GenerationFileView, GenerationReadersView, GenerationStartRequest, GoodFit, LintFinding, LintSite, LookCondition, LookDesign, LookRule, MeasuredPicture, MotionBasis, MotionInput, MotionStart, NeedDef, NeedId, PaletteColour, PaletteReading, PictureStyle, PlanRevisionView, PromptContext, PromptContextOptions, PromptSection, RankInput, RankedPreset, ReadingIssue, ReferenceSeed, SiteAnalysis, SiteNeed, SiteReaderView, SiteReading, StartingDesign, StructureChoice, StructureId, StyleHints, StyleRead, UserAvoidId };
|