@cellarnode/ui 0.189.0 → 0.190.0
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/dist/brand/brand-assets-section.d.ts +7 -1
- package/dist/brand/brand-assets-section.d.ts.map +1 -1
- package/dist/brand/brand-assets-section.js +3 -3
- package/dist/brand/brand-assets-section.js.map +1 -1
- package/dist/brand/brand-font-upload.js +2 -2
- package/dist/brand/brand-font-upload.js.map +1 -1
- package/dist/brand/brand-generation-client.d.ts +7 -1
- package/dist/brand/brand-generation-client.d.ts.map +1 -1
- package/dist/brand/brand-generation-client.js +19 -8
- package/dist/brand/brand-generation-client.js.map +1 -1
- package/dist/brand/brand-generation-start-error.d.ts +24 -0
- package/dist/brand/brand-generation-start-error.d.ts.map +1 -0
- package/dist/brand/brand-generation-start-error.js +37 -0
- package/dist/brand/brand-generation-start-error.js.map +1 -0
- package/dist/brand/brand-generation-start.d.ts +27 -1
- package/dist/brand/brand-generation-start.d.ts.map +1 -1
- package/dist/brand/brand-generation-start.js +53 -6
- package/dist/brand/brand-generation-start.js.map +1 -1
- package/dist/brand/index.d.ts +1 -0
- package/dist/brand/index.d.ts.map +1 -1
- package/dist/brand/index.js +1 -0
- package/dist/brand/index.js.map +1 -1
- package/dist/brand/scan-page-banner.js +1 -1
- package/dist/brand/scan-page-banner.js.map +1 -1
- package/dist/brand/use-brand-generation.d.ts +5 -0
- package/dist/brand/use-brand-generation.d.ts.map +1 -1
- package/dist/brand/use-brand-generation.js +16 -2
- package/dist/brand/use-brand-generation.js.map +1 -1
- package/package.json +1 -1
|
@@ -41,6 +41,12 @@ export interface BrandAssetsSectionProps {
|
|
|
41
41
|
* (importers) pass false: the control would be dead.
|
|
42
42
|
*/
|
|
43
43
|
showScanPageBanner?: boolean;
|
|
44
|
+
/**
|
|
45
|
+
* Render the brand font slot (upload, copy, family-name warning). Default
|
|
46
|
+
* true. The font only appears on e-label scan pages, so surfaces without them
|
|
47
|
+
* (importers) pass false: no font UI, and a stored font asset changes nothing.
|
|
48
|
+
*/
|
|
49
|
+
showBrandFont?: boolean;
|
|
44
50
|
/** Called after any successful upload, remove or clear: invalidate the assets/profile caches here. */
|
|
45
51
|
onAssetsChanged?: () => void;
|
|
46
52
|
/** Toast adapter. The section never imports a toast library. */
|
|
@@ -58,5 +64,5 @@ export interface BrandAssetsSectionProps {
|
|
|
58
64
|
* `ModerationScope` (`@cellarnode/ui/moderation/scope`) so verdicts show live;
|
|
59
65
|
* outside a provider the moderation notices stay silent.
|
|
60
66
|
*/
|
|
61
|
-
export declare function BrandAssetsSection({ profileId, visual, assets, api, allowedImageOrigins, showScanPageBanner, onAssetsChanged, onNotify, requestModerationReview, copy: copyOverrides, className, }: BrandAssetsSectionProps): import("react/jsx-runtime").JSX.Element;
|
|
67
|
+
export declare function BrandAssetsSection({ profileId, visual, assets, api, allowedImageOrigins, showScanPageBanner, showBrandFont, onAssetsChanged, onNotify, requestModerationReview, copy: copyOverrides, className, }: BrandAssetsSectionProps): import("react/jsx-runtime").JSX.Element;
|
|
62
68
|
//# sourceMappingURL=brand-assets-section.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"brand-assets-section.d.ts","sourceRoot":"","sources":["../../src/brand/brand-assets-section.tsx"],"names":[],"mappings":"AAIA,OAAO,EAEL,KAAK,4BAA4B,EAClC,MAAM,uCAAuC,CAAC;AAE/C,OAAO,EAGL,KAAK,cAAc,EACpB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAEL,KAAK,+BAA+B,EACrC,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAA0B,KAAK,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAG1F,OAAO,EAAoB,KAAK,UAAU,EAAsB,MAAM,SAAS,CAAC;AAEhF,6FAA6F;AAC7F,MAAM,MAAM,iBAAiB,GAAG,SAAS,GAAG,QAAQ,CAAC;AAErD,2FAA2F;AAC3F,MAAM,WAAW,qBAAsB,SAAQ,IAAI,CACjD,cAAc,EACd,QAAQ,GAAG,QAAQ,GAAG,iBAAiB,CACxC;IACC;;;;;OAKG;IACH,iBAAiB,CAAC,CAAC,IAAI,EAAE;QAAE,IAAI,EAAE,iBAAiB,CAAC;QAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9F;AAED,4CAA4C;AAC5C,MAAM,WAAW,wBAAyB,SAAQ,sBAAsB;IACtE,QAAQ,CAAC,WAAW,CAAC,EAAE;QAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,GAAG,IAAI,CAAC;CAClE;AAED,MAAM,MAAM,iBAAiB,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAEjG,MAAM,WAAW,uBAAuB;IACtC,SAAS,EAAE,MAAM,CAAC;IAClB,8EAA8E;IAC9E,MAAM,CAAC,EAAE,wBAAwB,GAAG,IAAI,CAAC;IACzC,MAAM,CAAC,EAAE,SAAS,UAAU,EAAE,CAAC;IAC/B,GAAG,EAAE,qBAAqB,CAAC;IAC3B,iGAAiG;IACjG,mBAAmB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACxC;;;OAGG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,sGAAsG;IACtG,eAAe,CAAC,EAAE,MAAM,IAAI,CAAC;IAC7B,gEAAgE;IAChE,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,iBAAiB,KAAK,IAAI,CAAC;IAC/C,wEAAwE;IACxE,uBAAuB,CAAC,EAAE,4BAA4B,CAAC,eAAe,CAAC,CAAC;IACxE,IAAI,CAAC,EAAE,+BAA+B,CAAC;IACvC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAuCD;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,EACjC,SAAS,EACT,MAAM,EACN,MAAW,EACX,GAAG,EACH,mBAAmB,EACnB,kBAAyB,EACzB,eAAe,EACf,QAAQ,EACR,uBAAuB,EACvB,IAAI,EAAE,aAAa,EACnB,SAAS,GACV,EAAE,uBAAuB,
|
|
1
|
+
{"version":3,"file":"brand-assets-section.d.ts","sourceRoot":"","sources":["../../src/brand/brand-assets-section.tsx"],"names":[],"mappings":"AAIA,OAAO,EAEL,KAAK,4BAA4B,EAClC,MAAM,uCAAuC,CAAC;AAE/C,OAAO,EAGL,KAAK,cAAc,EACpB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAEL,KAAK,+BAA+B,EACrC,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAA0B,KAAK,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAG1F,OAAO,EAAoB,KAAK,UAAU,EAAsB,MAAM,SAAS,CAAC;AAEhF,6FAA6F;AAC7F,MAAM,MAAM,iBAAiB,GAAG,SAAS,GAAG,QAAQ,CAAC;AAErD,2FAA2F;AAC3F,MAAM,WAAW,qBAAsB,SAAQ,IAAI,CACjD,cAAc,EACd,QAAQ,GAAG,QAAQ,GAAG,iBAAiB,CACxC;IACC;;;;;OAKG;IACH,iBAAiB,CAAC,CAAC,IAAI,EAAE;QAAE,IAAI,EAAE,iBAAiB,CAAC;QAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9F;AAED,4CAA4C;AAC5C,MAAM,WAAW,wBAAyB,SAAQ,sBAAsB;IACtE,QAAQ,CAAC,WAAW,CAAC,EAAE;QAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,GAAG,IAAI,CAAC;CAClE;AAED,MAAM,MAAM,iBAAiB,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAEjG,MAAM,WAAW,uBAAuB;IACtC,SAAS,EAAE,MAAM,CAAC;IAClB,8EAA8E;IAC9E,MAAM,CAAC,EAAE,wBAAwB,GAAG,IAAI,CAAC;IACzC,MAAM,CAAC,EAAE,SAAS,UAAU,EAAE,CAAC;IAC/B,GAAG,EAAE,qBAAqB,CAAC;IAC3B,iGAAiG;IACjG,mBAAmB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACxC;;;OAGG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B;;;;OAIG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,sGAAsG;IACtG,eAAe,CAAC,EAAE,MAAM,IAAI,CAAC;IAC7B,gEAAgE;IAChE,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,iBAAiB,KAAK,IAAI,CAAC;IAC/C,wEAAwE;IACxE,uBAAuB,CAAC,EAAE,4BAA4B,CAAC,eAAe,CAAC,CAAC;IACxE,IAAI,CAAC,EAAE,+BAA+B,CAAC;IACvC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAuCD;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,EACjC,SAAS,EACT,MAAM,EACN,MAAW,EACX,GAAG,EACH,mBAAmB,EACnB,kBAAyB,EACzB,aAAoB,EACpB,eAAe,EACf,QAAQ,EACR,uBAAuB,EACvB,IAAI,EAAE,aAAa,EACnB,SAAS,GACV,EAAE,uBAAuB,2CAuPzB"}
|
|
@@ -30,7 +30,7 @@ function BrandAssetModerationNotice({ profileId, asset, fetchModeration, ...noti
|
|
|
30
30
|
* `ModerationScope` (`@cellarnode/ui/moderation/scope`) so verdicts show live;
|
|
31
31
|
* outside a provider the moderation notices stay silent.
|
|
32
32
|
*/
|
|
33
|
-
export function BrandAssetsSection({ profileId, visual, assets = [], api, allowedImageOrigins, showScanPageBanner = true, onAssetsChanged, onNotify, requestModerationReview, copy: copyOverrides, className, }) {
|
|
33
|
+
export function BrandAssetsSection({ profileId, visual, assets = [], api, allowedImageOrigins, showScanPageBanner = true, showBrandFont = true, onAssetsChanged, onNotify, requestModerationReview, copy: copyOverrides, className, }) {
|
|
34
34
|
const copy = useMemo(() => resolveBrandAssetsSectionCopy(copyOverrides), [copyOverrides]);
|
|
35
35
|
const { beginOperation, markChecking } = useModerationCheckControls();
|
|
36
36
|
const bannerSectionRef = useRef(null);
|
|
@@ -161,12 +161,12 @@ export function BrandAssetsSection({ profileId, visual, assets = [], api, allowe
|
|
|
161
161
|
onSuccess: () => notify("success", copy.bannerUploaded),
|
|
162
162
|
onError: (error) => setBannerError(uploadErrorMessage(error)),
|
|
163
163
|
});
|
|
164
|
-
}, onClear: handleBannerClear, uploading: pending.upload === "banner", clearing: pending.clear === "banner", error: bannerError }), _jsx(BrandAssetModerationNotice, { profileId: profileId, asset: bannerAsset ?? undefined, fetchModeration: api.fetchModeration, match: bannerSubject, pendingHint: copy.bannerPendingHint, onReupload: () => focusUploadControl(bannerSectionRef.current), copy: copy.moderation, requestReview: requestModerationReview })] })) : null, _jsx(BrandFontUpload, { asset: fontAsset, familyName: fontFamilyName, copy: copy.font, onUpload: (file) => {
|
|
164
|
+
}, onClear: handleBannerClear, uploading: pending.upload === "banner", clearing: pending.clear === "banner", error: bannerError }), _jsx(BrandAssetModerationNotice, { profileId: profileId, asset: bannerAsset ?? undefined, fetchModeration: api.fetchModeration, match: bannerSubject, pendingHint: copy.bannerPendingHint, onReupload: () => focusUploadControl(bannerSectionRef.current), copy: copy.moderation, requestReview: requestModerationReview })] })) : null, showBrandFont ? (_jsx(BrandFontUpload, { asset: fontAsset, familyName: fontFamilyName, copy: copy.font, onUpload: (file) => {
|
|
165
165
|
setFontError(null);
|
|
166
166
|
void upload("font", file, {
|
|
167
167
|
onSuccess: () => notify("success", copy.fontUploaded),
|
|
168
168
|
onError: (error) => setFontError(uploadErrorMessage(error)),
|
|
169
169
|
});
|
|
170
|
-
}, onClear: handleFontClear, uploading: pending.upload === "font", clearing: Boolean(fontAsset && pending.remove === fontAsset.id), error: fontError })] }));
|
|
170
|
+
}, onClear: handleFontClear, uploading: pending.upload === "font", clearing: Boolean(fontAsset && pending.remove === fontAsset.id), error: fontError })) : null] }));
|
|
171
171
|
}
|
|
172
172
|
//# sourceMappingURL=brand-assets-section.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"brand-assets-section.js","sourceRoot":"","sources":["../../src/brand/brand-assets-section.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC/D,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAClC,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AACxE,OAAO,EAAE,0BAA0B,EAAE,MAAM,gCAAgC,CAAC;AAC5E,OAAO,EACL,uBAAuB,GAExB,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EACL,wBAAwB,GAGzB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,6BAA6B,GAE9B,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,sBAAsB,EAA+B,MAAM,qBAAqB,CAAC;AAC1F,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAuC,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"brand-assets-section.js","sourceRoot":"","sources":["../../src/brand/brand-assets-section.tsx"],"names":[],"mappings":"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"}
|
|
@@ -29,10 +29,10 @@ export function BrandFontUpload({ asset, familyName, onUpload, onClear, uploadin
|
|
|
29
29
|
setValidationError(null);
|
|
30
30
|
onUpload(file);
|
|
31
31
|
};
|
|
32
|
-
return (_jsxs("section", { className: "flex flex-col gap-3", "data-testid": "brand-font-upload", children: [_jsxs("div", { children: [_jsx("h3", { className: "text-sm font-semibold text-foreground", children: copy.title }), _jsx("p", { className: "max-w-prose text-sm text-muted-foreground", children: copy.subtitle })] }), _jsxs("div", { className: "rounded-xl border border-border/60 bg-card p-4", children: [asset ? (_jsxs("div", { className: "flex flex-col gap-3", children: [_jsxs("div", { className: "flex flex-col gap-1", children: [_jsx("span", { className: "text-sm font-medium text-foreground", children: asset.fileName }), needsFamilyName && (_jsx("span", { role: "status", "aria-live": "polite", className: "text-xs text-[var(--tone-warning-fg)]", children: copy.needsFamilyName }))] }), _jsxs("div", { className: "flex flex-wrap items-center gap-x-3 gap-y-2", children: [_jsx("button", { type: "button", onClick: () => inputRef.current?.click(), disabled: busy, className: "-ml-2 shrink-0 rounded-lg px-2 py-1 text-xs font-medium text-primary hover:underline disabled:cursor-not-allowed disabled:opacity-50", children: uploading ? copy.uploading : copy.replace }), _jsx("button", { type: "button", onClick: () => {
|
|
32
|
+
return (_jsxs("section", { className: "flex flex-col gap-3", "data-testid": "brand-font-upload", children: [_jsxs("div", { children: [_jsx("h3", { className: "text-sm font-semibold text-foreground", children: copy.title }), _jsx("p", { className: "max-w-prose text-sm text-muted-foreground", children: copy.subtitle })] }), _jsxs("div", { className: "rounded-xl border border-border/60 bg-card p-4", children: [asset ? (_jsxs("div", { className: "flex flex-col gap-3", children: [_jsxs("div", { className: "flex flex-col gap-1", children: [_jsx("span", { className: "text-sm font-medium text-foreground", children: asset.fileName }), needsFamilyName && (_jsx("span", { role: "status", "aria-live": "polite", className: "text-xs text-[var(--tone-warning-fg)]", children: copy.needsFamilyName }))] }), _jsxs("div", { className: "flex flex-wrap items-center gap-x-3 gap-y-2", children: [_jsx("button", { type: "button", onClick: () => inputRef.current?.click(), disabled: busy, className: "-ml-2 relative before:absolute before:inset-x-0 before:-inset-y-2.5 shrink-0 rounded-lg px-2 py-1 text-xs font-medium focus-visible:outline-hidden focus-visible:ring-3 focus-visible:ring-ring/70 text-primary hover:underline disabled:cursor-not-allowed disabled:opacity-50", children: uploading ? copy.uploading : copy.replace }), _jsx("button", { type: "button", onClick: () => {
|
|
33
33
|
setValidationError(null); // else a rejected oversize pick outlives the asset
|
|
34
34
|
onClear();
|
|
35
|
-
}, disabled: busy, className: "shrink-0 rounded-lg px-2 py-1 text-xs font-medium text-[var(--tone-danger-fg)] hover:underline disabled:cursor-not-allowed disabled:opacity-50", children: clearing ? copy.removing : copy.remove })] })] })) : (_jsxs("button", { type: "button", onClick: () => inputRef.current?.click(), "aria-describedby": shownError ? errorId : undefined, "aria-invalid": shownError ? true : undefined, disabled: busy, className: "flex w-full cursor-pointer items-center justify-center rounded-lg border border-dashed border-border/60 px-3 py-6 text-xs text-muted-foreground hover:border-primary hover:text-primary disabled:cursor-not-allowed disabled:opacity-50", children: [_jsx("span", { className: "sr-only", children: copy.inputLabel }), _jsx("span", { "aria-hidden": "true", children: uploading ? copy.uploading : copy.upload })] })), shownError ? (_jsx("p", { role: "alert", id: errorId, className: "mt-2 text-xs font-medium text-[var(--tone-danger-fg)]", children: shownError })) : null, _jsx("input", { ref: inputRef, type: "file", accept: ACCEPTED_MIME_TYPES.join(","), tabIndex: -1, className: "sr-only", "aria-label": copy.inputLabel, disabled: busy, onChange: (event) => {
|
|
35
|
+
}, disabled: busy, className: "relative before:absolute before:inset-x-0 before:-inset-y-2.5 shrink-0 rounded-lg px-2 py-1 text-xs font-medium focus-visible:outline-hidden focus-visible:ring-3 focus-visible:ring-ring/70 text-[var(--tone-danger-fg)] hover:underline disabled:cursor-not-allowed disabled:opacity-50", children: clearing ? copy.removing : copy.remove })] })] })) : (_jsxs("button", { type: "button", onClick: () => inputRef.current?.click(), "aria-describedby": shownError ? errorId : undefined, "aria-invalid": shownError ? true : undefined, disabled: busy, className: "flex w-full cursor-pointer items-center justify-center rounded-lg border border-dashed border-border/60 px-3 py-6 text-xs text-muted-foreground hover:border-primary hover:text-primary disabled:cursor-not-allowed disabled:opacity-50", children: [_jsx("span", { className: "sr-only", children: copy.inputLabel }), _jsx("span", { "aria-hidden": "true", children: uploading ? copy.uploading : copy.upload })] })), shownError ? (_jsx("p", { role: "alert", id: errorId, className: "mt-2 text-xs font-medium text-[var(--tone-danger-fg)]", children: shownError })) : null, _jsx("input", { ref: inputRef, type: "file", accept: ACCEPTED_MIME_TYPES.join(","), tabIndex: -1, className: "sr-only", "aria-label": copy.inputLabel, disabled: busy, onChange: (event) => {
|
|
36
36
|
const file = event.target.files?.[0];
|
|
37
37
|
if (file)
|
|
38
38
|
handleFile(file);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"brand-font-upload.js","sourceRoot":"","sources":["../../src/brand/brand-font-upload.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAChD,OAAO,EACL,8BAA8B,GAE/B,MAAM,6BAA6B,CAAC;AAGrC,MAAM,mBAAmB,GAAG;IAC1B,QAAQ;IACR,OAAO;IACP,MAAM;IACN,MAAM;IACN,YAAY;IACZ,WAAW;IACX,UAAU;IACV,UAAU;CACF,CAAC;AACX,MAAM,mBAAmB,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC;AAe5C,4FAA4F;AAC5F,MAAM,UAAU,eAAe,CAAC,EAC9B,KAAK,EACL,UAAU,EACV,QAAQ,EACR,OAAO,EACP,SAAS,GAAG,KAAK,EACjB,QAAQ,GAAG,KAAK,EAChB,KAAK,GAAG,IAAI,EACZ,IAAI,EAAE,aAAa,GACE;IACrB,MAAM,IAAI,GAAG,EAAE,GAAG,8BAA8B,EAAE,GAAG,aAAa,EAAE,CAAC;IACrE,MAAM,QAAQ,GAAG,MAAM,CAAmB,IAAI,CAAC,CAAC;IAChD,MAAM,OAAO,GAAG,KAAK,EAAE,CAAC;IACxB,MAAM,CAAC,eAAe,EAAE,kBAAkB,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAC;IAE5E,MAAM,UAAU,GAAG,eAAe,IAAI,KAAK,CAAC;IAC5C,MAAM,IAAI,GAAG,SAAS,IAAI,QAAQ,CAAC;IACnC,MAAM,eAAe,GAAG,KAAK,IAAI,CAAC,UAAU,CAAC;IAE7C,MAAM,UAAU,GAAG,CAAC,IAAU,EAAE,EAAE;QAChC,IAAI,IAAI,CAAC,IAAI,GAAG,mBAAmB,EAAE,CAAC;YACpC,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,mBAAmB,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;YACnF,OAAO;QACT,CAAC;QACD,kBAAkB,CAAC,IAAI,CAAC,CAAC;QACzB,QAAQ,CAAC,IAAI,CAAC,CAAC;IACjB,CAAC,CAAC;IAEF,OAAO,CACL,mBAAS,SAAS,EAAC,qBAAqB,iBAAa,mBAAmB,aACtE,0BACE,aAAI,SAAS,EAAC,uCAAuC,YAAE,IAAI,CAAC,KAAK,GAAM,EACvE,YAAG,SAAS,EAAC,2CAA2C,YAAE,IAAI,CAAC,QAAQ,GAAK,IACxE,EAEN,eAAK,SAAS,EAAC,gDAAgD,aAC5D,KAAK,CAAC,CAAC,CAAC,CACP,eAAK,SAAS,EAAC,qBAAqB,aAClC,eAAK,SAAS,EAAC,qBAAqB,aAClC,eAAM,SAAS,EAAC,qCAAqC,YAAE,KAAK,CAAC,QAAQ,GAAQ,EAC5E,eAAe,IAAI,CAClB,eACE,IAAI,EAAC,QAAQ,eACH,QAAQ,EAClB,SAAS,EAAC,uCAAuC,YAEhD,IAAI,CAAC,eAAe,GAChB,CACR,IACG,EAEN,eAAK,SAAS,EAAC,6CAA6C,aAC1D,iBACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,KAAK,EAAE,EACxC,QAAQ,EAAE,IAAI,EACd,SAAS,EAAC,
|
|
1
|
+
{"version":3,"file":"brand-font-upload.js","sourceRoot":"","sources":["../../src/brand/brand-font-upload.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,15 @@
|
|
|
1
1
|
import type { BrandGenerationApi } from "./brand-generation-api.js";
|
|
2
|
+
/** The message a failed start carries when the server sent none. */
|
|
3
|
+
export declare const BRAND_GENERATION_START_FALLBACK_MESSAGE = "Failed to start brand generation";
|
|
2
4
|
/** A non-2xx answer from a generation endpoint. */
|
|
3
5
|
export declare class BrandGenerationRequestError extends Error {
|
|
4
6
|
readonly status: number;
|
|
5
7
|
readonly code: string;
|
|
6
|
-
|
|
8
|
+
/** The parsed response body (a 409 carries `eligibility` here), when it was JSON. */
|
|
9
|
+
readonly body?: unknown | undefined;
|
|
10
|
+
constructor(status: number, code: string, message: string,
|
|
11
|
+
/** The parsed response body (a 409 carries `eligibility` here), when it was JSON. */
|
|
12
|
+
body?: unknown | undefined);
|
|
7
13
|
}
|
|
8
14
|
export interface BrandGenerationClientOptions {
|
|
9
15
|
/** API origin (e.g. `http://localhost:4000`). */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"brand-generation-client.d.ts","sourceRoot":"","sources":["../../src/brand/brand-generation-client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AASjE,mDAAmD;AACnD,qBAAa,2BAA4B,SAAQ,KAAK;IAElD,QAAQ,CAAC,MAAM,EAAE,MAAM;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM;
|
|
1
|
+
{"version":3,"file":"brand-generation-client.d.ts","sourceRoot":"","sources":["../../src/brand/brand-generation-client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AASjE,oEAAoE;AACpE,eAAO,MAAM,uCAAuC,qCAAqC,CAAC;AAE1F,mDAAmD;AACnD,qBAAa,2BAA4B,SAAQ,KAAK;IAElD,QAAQ,CAAC,MAAM,EAAE,MAAM;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM;IAErB,qFAAqF;IACrF,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO;gBAJd,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACrB,OAAO,EAAE,MAAM;IACf,qFAAqF;IAC5E,IAAI,CAAC,EAAE,OAAO,YAAA;CAK1B;AAED,MAAM,WAAW,4BAA4B;IAC3C,iDAAiD;IACjD,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,4EAA4E;IAC5E,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACvD;;;;;;OAMG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;IAC9B;;;;;;OAMG;IACH,QAAQ,CAAC,qBAAqB,CAAC,EAAE,OAAO,CAAC;CAC1C;AA8BD;;;;GAIG;AACH,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,4BAA4B,GACpC,kBAAkB,CA+EpB"}
|
|
@@ -1,30 +1,41 @@
|
|
|
1
1
|
import { BrandGenerationResponseError, parseActiveEnvelope, parseJob, parseStart, } from "./brand-generation-response.js";
|
|
2
|
+
/** The message a failed start carries when the server sent none. */
|
|
3
|
+
export const BRAND_GENERATION_START_FALLBACK_MESSAGE = "Failed to start brand generation";
|
|
2
4
|
/** A non-2xx answer from a generation endpoint. */
|
|
3
5
|
export class BrandGenerationRequestError extends Error {
|
|
4
6
|
status;
|
|
5
7
|
code;
|
|
6
|
-
|
|
8
|
+
body;
|
|
9
|
+
constructor(status, code, message,
|
|
10
|
+
/** The parsed response body (a 409 carries `eligibility` here), when it was JSON. */
|
|
11
|
+
body) {
|
|
7
12
|
super(message);
|
|
8
13
|
this.status = status;
|
|
9
14
|
this.code = code;
|
|
15
|
+
this.body = body;
|
|
10
16
|
this.name = "BrandGenerationRequestError";
|
|
11
17
|
}
|
|
12
18
|
}
|
|
13
19
|
function isRecord(value) {
|
|
14
20
|
return value !== null && typeof value === "object" && !Array.isArray(value);
|
|
15
21
|
}
|
|
22
|
+
/**
|
|
23
|
+
* The backend answers `{ error: "<text>", code }`; a nested `{ error: { code,
|
|
24
|
+
* message } }` and a bare `{ message }` are accepted too. Precedence for the
|
|
25
|
+
* text: `error` (string), nested `error.message`, `message`, then `fallback`.
|
|
26
|
+
*/
|
|
16
27
|
function errorFields(body, fallback) {
|
|
17
28
|
if (!isRecord(body))
|
|
18
29
|
return { code: "UNKNOWN", message: fallback };
|
|
19
30
|
const nested = isRecord(body.error) ? body.error : body;
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
31
|
+
const text = typeof body.error === "string"
|
|
32
|
+
? body.error
|
|
33
|
+
: typeof nested.message === "string"
|
|
23
34
|
? nested.message
|
|
24
35
|
: typeof body.message === "string"
|
|
25
36
|
? body.message
|
|
26
|
-
: fallback
|
|
27
|
-
};
|
|
37
|
+
: fallback;
|
|
38
|
+
return { code: typeof nested.code === "string" ? nested.code : "UNKNOWN", message: text };
|
|
28
39
|
}
|
|
29
40
|
function toWireContext(context) {
|
|
30
41
|
const { focusUrls, ...rest } = context;
|
|
@@ -69,7 +80,7 @@ export function createBrandGenerationClient(options) {
|
|
|
69
80
|
}
|
|
70
81
|
if (!response.ok) {
|
|
71
82
|
const { code, message } = errorFields(parsed, fallback);
|
|
72
|
-
throw new BrandGenerationRequestError(response.status, code, message);
|
|
83
|
+
throw new BrandGenerationRequestError(response.status, code, message, parsed);
|
|
73
84
|
}
|
|
74
85
|
return { status: response.status, data: parsed };
|
|
75
86
|
}
|
|
@@ -83,7 +94,7 @@ export function createBrandGenerationClient(options) {
|
|
|
83
94
|
const jobPath = (jobId) => `/brand-profiles/generate/${encodeURIComponent(jobId)}`;
|
|
84
95
|
return {
|
|
85
96
|
async start(homepageUrl, context) {
|
|
86
|
-
const { status, data } = await request("POST", "/brand-profiles/generate/",
|
|
97
|
+
const { status, data } = await request("POST", "/brand-profiles/generate/", BRAND_GENERATION_START_FALLBACK_MESSAGE, context === undefined ? { homepageUrl } : { homepageUrl, context: toWireContext(context) });
|
|
87
98
|
const start = parseStart(data);
|
|
88
99
|
if (start === null)
|
|
89
100
|
throw new BrandGenerationResponseError(status);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"brand-generation-client.js","sourceRoot":"","sources":["../../src/brand/brand-generation-client.ts"],"names":[],"mappings":"AACA,OAAO,EACL,4BAA4B,EAC5B,mBAAmB,EACnB,QAAQ,EACR,UAAU,GAEX,MAAM,6BAA6B,CAAC;AAErC,mDAAmD;AACnD,MAAM,OAAO,2BAA4B,SAAQ,KAAK;IAEzC;IACA;
|
|
1
|
+
{"version":3,"file":"brand-generation-client.js","sourceRoot":"","sources":["../../src/brand/brand-generation-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
export type BrandGenerationStartErrorKind =
|
|
2
|
+
/** The server rejected the URL or input (400 or 422). */
|
|
3
|
+
"validation"
|
|
4
|
+
/** Cooldown, retry limit or an active attempt blocked the start (409). */
|
|
5
|
+
| "not_eligible"
|
|
6
|
+
/** The server failed (5xx or an unreadable answer). */
|
|
7
|
+
| "server"
|
|
8
|
+
/** No answer: offline, DNS, CORS, aborted. */
|
|
9
|
+
| "network"
|
|
10
|
+
/** Anything else (401, 403, 429, ...). */
|
|
11
|
+
| "unknown";
|
|
12
|
+
/** Why a start failed, in the shape `BrandGenerationStart` renders. */
|
|
13
|
+
export interface BrandGenerationStartError {
|
|
14
|
+
readonly kind: BrandGenerationStartErrorKind;
|
|
15
|
+
/** The server's own text, only for `validation`. */
|
|
16
|
+
readonly message: string | null;
|
|
17
|
+
/** The backend's `code`, so a host can branch on it. */
|
|
18
|
+
readonly code: string | null;
|
|
19
|
+
/** ISO time the next start is allowed, when a 409 reports one. */
|
|
20
|
+
readonly nextEligibleAt: string | null;
|
|
21
|
+
}
|
|
22
|
+
/** Classify what `api.start` threw. Duck-typed on `status` so it needs no instanceof. */
|
|
23
|
+
export declare function classifyBrandGenerationStartError(cause: unknown): BrandGenerationStartError;
|
|
24
|
+
//# sourceMappingURL=brand-generation-start-error.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"brand-generation-start-error.d.ts","sourceRoot":"","sources":["../../src/brand/brand-generation-start-error.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,6BAA6B;AACvC,yDAAyD;AACvD,YAAY;AACd,0EAA0E;GACxE,cAAc;AAChB,uDAAuD;GACrD,QAAQ;AACV,8CAA8C;GAC5C,SAAS;AACX,0CAA0C;GACxC,SAAS,CAAC;AAEd,uEAAuE;AACvE,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,IAAI,EAAE,6BAA6B,CAAC;IAC7C,oDAAoD;IACpD,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,wDAAwD;IACxD,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,kEAAkE;IAClE,QAAQ,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;CACxC;AAUD,yFAAyF;AACzF,wBAAgB,iCAAiC,CAAC,KAAK,EAAE,OAAO,GAAG,yBAAyB,CA6B3F"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { BRAND_GENERATION_START_FALLBACK_MESSAGE } from "./brand-generation-client.js";
|
|
2
|
+
function readNextEligibleAt(body) {
|
|
3
|
+
if (typeof body !== "object" || body === null)
|
|
4
|
+
return null;
|
|
5
|
+
const eligibility = body.eligibility;
|
|
6
|
+
if (typeof eligibility !== "object" || eligibility === null)
|
|
7
|
+
return null;
|
|
8
|
+
const at = eligibility.nextEligibleAt;
|
|
9
|
+
return typeof at === "string" && at ? at : null;
|
|
10
|
+
}
|
|
11
|
+
/** Classify what `api.start` threw. Duck-typed on `status` so it needs no instanceof. */
|
|
12
|
+
export function classifyBrandGenerationStartError(cause) {
|
|
13
|
+
const fields = (cause ?? {});
|
|
14
|
+
const code = typeof fields.code === "string" && fields.code !== "UNKNOWN" ? fields.code : null;
|
|
15
|
+
if (typeof fields.status !== "number") {
|
|
16
|
+
return { kind: "network", message: null, code, nextEligibleAt: null };
|
|
17
|
+
}
|
|
18
|
+
const { status } = fields;
|
|
19
|
+
if (status === 400 || status === 422) {
|
|
20
|
+
const text = typeof fields.message === "string" ? fields.message.trim() : "";
|
|
21
|
+
// An Elysia schema failure stringifies its JSON into `message`; never show that.
|
|
22
|
+
const readable = text && text !== BRAND_GENERATION_START_FALLBACK_MESSAGE && !/^[[{]/.test(text);
|
|
23
|
+
return { kind: "validation", message: readable ? text : null, code, nextEligibleAt: null };
|
|
24
|
+
}
|
|
25
|
+
if (status === 409) {
|
|
26
|
+
return {
|
|
27
|
+
kind: "not_eligible",
|
|
28
|
+
message: null,
|
|
29
|
+
code,
|
|
30
|
+
nextEligibleAt: readNextEligibleAt(fields.body),
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
if (status >= 500)
|
|
34
|
+
return { kind: "server", message: null, code, nextEligibleAt: null };
|
|
35
|
+
return { kind: "unknown", message: null, code, nextEligibleAt: null };
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=brand-generation-start-error.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"brand-generation-start-error.js","sourceRoot":"","sources":["../../src/brand/brand-generation-start-error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uCAAuC,EAAE,MAAM,2BAA2B,CAAC;AAyBpF,SAAS,kBAAkB,CAAC,IAAa;IACvC,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAC3D,MAAM,WAAW,GAAI,IAAkC,CAAC,WAAW,CAAC;IACpE,IAAI,OAAO,WAAW,KAAK,QAAQ,IAAI,WAAW,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IACzE,MAAM,EAAE,GAAI,WAA4C,CAAC,cAAc,CAAC;IACxE,OAAO,OAAO,EAAE,KAAK,QAAQ,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AAClD,CAAC;AAED,yFAAyF;AACzF,MAAM,UAAU,iCAAiC,CAAC,KAAc;IAC9D,MAAM,MAAM,GAAG,CAAC,KAAK,IAAI,EAAE,CAK1B,CAAC;IACF,MAAM,IAAI,GAAG,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;IAC/F,IAAI,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;QACtC,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC;IACxE,CAAC;IACD,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;IAC1B,IAAI,MAAM,KAAK,GAAG,IAAI,MAAM,KAAK,GAAG,EAAE,CAAC;QACrC,MAAM,IAAI,GAAG,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7E,iFAAiF;QACjF,MAAM,QAAQ,GACZ,IAAI,IAAI,IAAI,KAAK,uCAAuC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAClF,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC;IAC7F,CAAC;IACD,IAAI,MAAM,KAAK,GAAG,EAAE,CAAC;QACnB,OAAO;YACL,IAAI,EAAE,cAAc;YACpB,OAAO,EAAE,IAAI;YACb,IAAI;YACJ,cAAc,EAAE,kBAAkB,CAAC,MAAM,CAAC,IAAI,CAAC;SAChD,CAAC;IACJ,CAAC;IACD,IAAI,MAAM,IAAI,GAAG;QAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC;IACxF,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC;AACxE,CAAC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { BrandGenerationRecoveryCopy } from "./brand-generation-recovery-copy.js";
|
|
2
|
+
import type { BrandGenerationStartError } from "./brand-generation-start-error.js";
|
|
2
3
|
import type { BrandGenerationEligibility } from "./brand-generation-types.js";
|
|
3
4
|
import type { BrandPersona } from "./types.js";
|
|
4
5
|
export interface BrandGenerationStartCopy {
|
|
@@ -15,6 +16,18 @@ export interface BrandGenerationStartCopy {
|
|
|
15
16
|
* replacement here would leak braces. Receives the already formatted date.
|
|
16
17
|
*/
|
|
17
18
|
readonly eligibilityUnknownReasonWithDate: (formattedDate: string) => string;
|
|
19
|
+
/** A start failed for a reason this client does not recognise. */
|
|
20
|
+
readonly startFailed: string;
|
|
21
|
+
/** The server rejected the URL and sent no text of its own (its text is shown when it has one). */
|
|
22
|
+
readonly startInvalidUrl: string;
|
|
23
|
+
/** A cooldown, retry limit or active attempt blocked the start (409). */
|
|
24
|
+
readonly startNotEligible: string;
|
|
25
|
+
/** Same, when the server reports when the next start is allowed. Receives the formatted date. */
|
|
26
|
+
readonly startNotEligibleWithDate: (formattedDate: string) => string;
|
|
27
|
+
/** The server failed (5xx). */
|
|
28
|
+
readonly startServerError: string;
|
|
29
|
+
/** No answer from the server: offline or unreachable. */
|
|
30
|
+
readonly startNetworkError: string;
|
|
18
31
|
}
|
|
19
32
|
export declare const DEFAULT_BRAND_GENERATION_START_COPY: BrandGenerationStartCopy;
|
|
20
33
|
export interface BrandGenerationStartProps {
|
|
@@ -27,6 +40,19 @@ export interface BrandGenerationStartProps {
|
|
|
27
40
|
readonly onStart: (url: string) => void;
|
|
28
41
|
readonly onCreateManually: () => void;
|
|
29
42
|
readonly formatDateTime: (iso: string) => string;
|
|
43
|
+
/**
|
|
44
|
+
* Why a start failed (the hook's `startError`). Renders an inline message
|
|
45
|
+
* under the URL field, moves focus back to it, and is referenced by the field
|
|
46
|
+
* through `aria-describedby` so it is read on focus. Cleared on edit or retry.
|
|
47
|
+
*/
|
|
48
|
+
readonly startError?: BrandGenerationStartError | null;
|
|
49
|
+
/**
|
|
50
|
+
* Show the generic failure copy without a cause (hosts that only know
|
|
51
|
+
* `error === "start"`). Optional; `startError` takes precedence.
|
|
52
|
+
*/
|
|
53
|
+
readonly startFailed?: boolean;
|
|
54
|
+
/** Called when the user edits the URL or retries, so the host can clear its error state. */
|
|
55
|
+
readonly onStartErrorDismiss?: () => void;
|
|
30
56
|
readonly copy?: Partial<BrandGenerationStartCopy>;
|
|
31
57
|
readonly recoveryCopy?: BrandGenerationRecoveryCopy;
|
|
32
58
|
/**
|
|
@@ -45,5 +71,5 @@ export interface BrandGenerationStartProps {
|
|
|
45
71
|
* disabled and the reason is shown rather than letting a start 409 unexplained.
|
|
46
72
|
* A blocked state with no known reason still gets a fallback notice.
|
|
47
73
|
*/
|
|
48
|
-
export declare function BrandGenerationStart({ persona, eligibility, generationUrl, onGenerationUrlChange, onStart, onCreateManually, formatDateTime, copy, recoveryCopy, idPrefix, }: BrandGenerationStartProps): import("react/jsx-runtime").JSX.Element;
|
|
74
|
+
export declare function BrandGenerationStart({ persona, eligibility, generationUrl, onGenerationUrlChange, onStart, onCreateManually, formatDateTime, startError, startFailed, onStartErrorDismiss, copy, recoveryCopy, idPrefix, }: BrandGenerationStartProps): import("react/jsx-runtime").JSX.Element;
|
|
49
75
|
//# sourceMappingURL=brand-generation-start.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"brand-generation-start.d.ts","sourceRoot":"","sources":["../../src/brand/brand-generation-start.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"brand-generation-start.d.ts","sourceRoot":"","sources":["../../src/brand/brand-generation-start.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,kCAAkC,CAAC;AACpF,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAChF,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AAC3E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAE5C,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC;IACtC,oFAAoF;IACpF,QAAQ,CAAC,wBAAwB,EAAE,MAAM,CAAC;IAC1C;;;;OAIG;IACH,QAAQ,CAAC,gCAAgC,EAAE,CAAC,aAAa,EAAE,MAAM,KAAK,MAAM,CAAC;IAC7E,kEAAkE;IAClE,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,mGAAmG;IACnG,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,yEAAyE;IACzE,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,iGAAiG;IACjG,QAAQ,CAAC,wBAAwB,EAAE,CAAC,aAAa,EAAE,MAAM,KAAK,MAAM,CAAC;IACrE,+BAA+B;IAC/B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,yDAAyD;IACzD,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;CACpC;AAED,eAAO,MAAM,mCAAmC,EAAE,wBAgBjD,CAAC;AAIF,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,OAAO,CAAC,EAAE,YAAY,CAAC;IAChC,+EAA+E;IAC/E,QAAQ,CAAC,WAAW,EAAE,0BAA0B,GAAG,IAAI,CAAC;IACxD,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,qBAAqB,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACtD,gFAAgF;IAChF,QAAQ,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,IAAI,CAAC;IACtC,QAAQ,CAAC,cAAc,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC;IACjD;;;;OAIG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,yBAAyB,GAAG,IAAI,CAAC;IACvD;;;OAGG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC;IAC/B,4FAA4F;IAC5F,QAAQ,CAAC,mBAAmB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC1C,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,wBAAwB,CAAC,CAAC;IAClD,QAAQ,CAAC,YAAY,CAAC,EAAE,2BAA2B,CAAC;IACpD;;;OAGG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CAAC,EACnC,OAAoB,EACpB,WAAW,EACX,aAAa,EACb,qBAAqB,EACrB,OAAO,EACP,gBAAgB,EAChB,cAAc,EACd,UAAiB,EACjB,WAAmB,EACnB,mBAAmB,EACnB,IAAI,EACJ,YAAY,EACZ,QAAQ,GACT,EAAE,yBAAyB,2CA8G3B"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { useId } from "react";
|
|
2
|
+
import { useEffect, useId, useRef, useState } from "react";
|
|
3
3
|
import { Button } from "../components/button.js";
|
|
4
|
+
import { Field, ErrorMessage } from "../components/fieldset.js";
|
|
4
5
|
import { Input } from "../components/input.js";
|
|
5
6
|
import { BrandGenerationRecovery } from "./brand-generation-recovery.js";
|
|
6
7
|
export const DEFAULT_BRAND_GENERATION_START_COPY = {
|
|
@@ -11,6 +12,12 @@ export const DEFAULT_BRAND_GENERATION_START_COPY = {
|
|
|
11
12
|
createManuallyAction: "Create manually",
|
|
12
13
|
eligibilityUnknownReason: "Generation is not available right now.",
|
|
13
14
|
eligibilityUnknownReasonWithDate: (formattedDate) => `Generation is not available right now. Try again after ${formattedDate}.`,
|
|
15
|
+
startFailed: "Could not start generation. Try again.",
|
|
16
|
+
startInvalidUrl: "Check the URL and try again.",
|
|
17
|
+
startNotEligible: "Generation cannot start right now. Try again later.",
|
|
18
|
+
startNotEligibleWithDate: (formattedDate) => `Generation cannot start right now. Try again after ${formattedDate}.`,
|
|
19
|
+
startServerError: "Something went wrong on our side. Try again in a moment.",
|
|
20
|
+
startNetworkError: "Could not reach the server. Check your connection and try again.",
|
|
14
21
|
};
|
|
15
22
|
const IMPORTER_PLACEHOLDER = "https://your-company.com";
|
|
16
23
|
/**
|
|
@@ -23,8 +30,24 @@ const IMPORTER_PLACEHOLDER = "https://your-company.com";
|
|
|
23
30
|
* disabled and the reason is shown rather than letting a start 409 unexplained.
|
|
24
31
|
* A blocked state with no known reason still gets a fallback notice.
|
|
25
32
|
*/
|
|
26
|
-
export function BrandGenerationStart({ persona = "producer", eligibility, generationUrl, onGenerationUrlChange, onStart, onCreateManually, formatDateTime, copy, recoveryCopy, idPrefix, }) {
|
|
33
|
+
export function BrandGenerationStart({ persona = "producer", eligibility, generationUrl, onGenerationUrlChange, onStart, onCreateManually, formatDateTime, startError = null, startFailed = false, onStartErrorDismiss, copy, recoveryCopy, idPrefix, }) {
|
|
27
34
|
const generatedId = useId();
|
|
35
|
+
const inputRef = useRef(null);
|
|
36
|
+
// Local too, so the alert clears on edit even for a host that wires no callback.
|
|
37
|
+
const [dismissed, setDismissed] = useState(false);
|
|
38
|
+
const failed = startFailed || startError !== null;
|
|
39
|
+
const showError = failed && !dismissed;
|
|
40
|
+
// A new failure re-arms the alert (adjusting state while rendering, not in an effect).
|
|
41
|
+
const [wasFailed, setWasFailed] = useState(failed);
|
|
42
|
+
if (wasFailed !== failed) {
|
|
43
|
+
setWasFailed(failed);
|
|
44
|
+
if (failed)
|
|
45
|
+
setDismissed(false);
|
|
46
|
+
}
|
|
47
|
+
useEffect(() => {
|
|
48
|
+
if (showError)
|
|
49
|
+
inputRef.current?.focus();
|
|
50
|
+
}, [showError]);
|
|
28
51
|
const prefix = idPrefix ?? `brand-generation-idle-${generatedId}`;
|
|
29
52
|
const defaults = persona === "importer"
|
|
30
53
|
? { ...DEFAULT_BRAND_GENERATION_START_COPY, urlPlaceholder: IMPORTER_PLACEHOLDER }
|
|
@@ -32,6 +55,22 @@ export function BrandGenerationStart({ persona = "producer", eligibility, genera
|
|
|
32
55
|
const text = { ...defaults, ...copy };
|
|
33
56
|
const canStart = eligibility?.canStart !== false;
|
|
34
57
|
const trimmedUrl = generationUrl.trim();
|
|
58
|
+
const errorText = (() => {
|
|
59
|
+
switch (startError?.kind) {
|
|
60
|
+
case "validation":
|
|
61
|
+
return startError.message ?? text.startInvalidUrl;
|
|
62
|
+
case "not_eligible":
|
|
63
|
+
return startError.nextEligibleAt
|
|
64
|
+
? text.startNotEligibleWithDate(formatDateTime(startError.nextEligibleAt))
|
|
65
|
+
: text.startNotEligible;
|
|
66
|
+
case "server":
|
|
67
|
+
return text.startServerError;
|
|
68
|
+
case "network":
|
|
69
|
+
return text.startNetworkError;
|
|
70
|
+
default:
|
|
71
|
+
return text.startFailed;
|
|
72
|
+
}
|
|
73
|
+
})();
|
|
35
74
|
const blockedMessage = eligibility?.nextEligibleAt
|
|
36
75
|
? text.eligibilityUnknownReasonWithDate(formatDateTime(eligibility.nextEligibleAt))
|
|
37
76
|
: text.eligibilityUnknownReason;
|
|
@@ -39,10 +78,18 @@ export function BrandGenerationStart({ persona = "producer", eligibility, genera
|
|
|
39
78
|
// `BrandGenerationRecovery` renders only for a known `reason`, and
|
|
40
79
|
// an unrecognised one parses to `null`: without this the form would
|
|
41
80
|
// be disabled with nothing explaining why.
|
|
42
|
-
_jsx("div", { role: "status", "data-testid": "brand-generation-idle-unknown-reason", className: "rounded-2xl border border-border bg-card p-5 text-sm/6 text-muted-foreground", children: blockedMessage })) })) : null, _jsxs("form", { className: "flex w-full max-w-md items-
|
|
81
|
+
_jsx("div", { role: "status", "data-testid": "brand-generation-idle-unknown-reason", className: "rounded-2xl border border-border bg-card p-5 text-sm/6 text-muted-foreground", children: blockedMessage })) })) : null, _jsxs("form", { className: "flex w-full max-w-md items-start gap-2", onSubmit: (event) => {
|
|
43
82
|
event.preventDefault();
|
|
44
|
-
if (trimmedUrl
|
|
45
|
-
|
|
46
|
-
|
|
83
|
+
if (!trimmedUrl || !canStart)
|
|
84
|
+
return;
|
|
85
|
+
onStartErrorDismiss?.();
|
|
86
|
+
onStart(trimmedUrl);
|
|
87
|
+
}, children: [_jsxs(Field, { className: "flex-1", children: [_jsx(Input, { ref: inputRef, "aria-label": text.websiteUrlLabel, type: "url", placeholder: text.urlPlaceholder, value: generationUrl, onChange: (event) => {
|
|
88
|
+
if (failed) {
|
|
89
|
+
setDismissed(true);
|
|
90
|
+
onStartErrorDismiss?.();
|
|
91
|
+
}
|
|
92
|
+
onGenerationUrlChange(event.target.value);
|
|
93
|
+
}, disabled: !canStart, invalid: showError, required: true }), showError ? (_jsx(ErrorMessage, { "data-testid": "brand-generation-start-error", children: errorText })) : null] }), _jsx(Button, { type: "submit", color: "brand", disabled: !canStart || !trimmedUrl, children: text.generateAction })] }), _jsx("p", { className: "text-xs text-muted-foreground", children: text.orSeparator }), _jsx(Button, { outline: true, onClick: onCreateManually, children: text.createManuallyAction })] }));
|
|
47
94
|
}
|
|
48
95
|
//# sourceMappingURL=brand-generation-start.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"brand-generation-start.js","sourceRoot":"","sources":["../../src/brand/brand-generation-start.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"brand-generation-start.js","sourceRoot":"","sources":["../../src/brand/brand-generation-start.tsx"],"names":[],"mappings":"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"}
|
package/dist/brand/index.d.ts
CHANGED
|
@@ -80,4 +80,5 @@ export * from "./brand-assets-section-copy.js";
|
|
|
80
80
|
export { BrandFontUpload, type BrandFontUploadProps } from "./brand-font-upload.js";
|
|
81
81
|
export { ScanPageBanner, type ScanPageBannerProps } from "./scan-page-banner.js";
|
|
82
82
|
export { isUsableBrandFontFamily, resolveBrandFontFamily, type BrandVisualFontSources, } from "./brand-font-family.js";
|
|
83
|
+
export { classifyBrandGenerationStartError, type BrandGenerationStartError, type BrandGenerationStartErrorKind, } from "./brand-generation-start-error.js";
|
|
83
84
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/brand/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/brand/index.ts"],"names":[],"mappings":"AAGA,cAAc,SAAS,CAAC;AACxB,cAAc,eAAe,CAAC;AAC9B,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,iBAAiB,CAAC;AAChC,cAAc,sBAAsB,CAAC;AACrC,cAAc,gBAAgB,CAAC;AAC/B,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,YAAY,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AACxE,YAAY,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAC5E,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,YAAY,EACV,sBAAsB,EACtB,sBAAsB,EACtB,uBAAuB,GACxB,MAAM,wBAAwB,CAAC;AAChC,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,0BAA0B,CAAC;AACzC,cAAc,6BAA6B,CAAC;AAC5C,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACpE,YAAY,EAAE,2BAA2B,EAAE,MAAM,4BAA4B,CAAC;AAK9E,OAAO,EAAE,4BAA4B,EAAE,MAAM,qCAAqC,CAAC;AACnF,YAAY,EACV,qBAAqB,EACrB,uBAAuB,EACvB,wBAAwB,EACxB,kCAAkC,EAClC,0BAA0B,EAC1B,uBAAuB,EACvB,8BAA8B,EAC9B,sBAAsB,EACtB,sBAAsB,EACtB,qBAAqB,GACtB,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EACL,0BAA0B,EAC1B,+BAA+B,GAChC,MAAM,mCAAmC,CAAC;AAC3C,YAAY,EAAE,wBAAwB,EAAE,MAAM,mCAAmC,CAAC;AAClF,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AACtE,YAAY,EAAE,4BAA4B,EAAE,MAAM,6BAA6B,CAAC;AAChF,OAAO,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AAC7E,YAAY,EAAE,+BAA+B,EAAE,MAAM,iCAAiC,CAAC;AACvF,OAAO,EAAE,sCAAsC,EAAE,MAAM,kCAAkC,CAAC;AAC1F,YAAY,EAAE,2BAA2B,EAAE,MAAM,kCAAkC,CAAC;AACpF,OAAO,EAAE,2BAA2B,EAAE,MAAM,0BAA0B,CAAC;AACvE,YAAY,EACV,2BAA2B,EAC3B,0BAA0B,EAC1B,+BAA+B,EAC/B,iCAAiC,EACjC,sBAAsB,GACvB,MAAM,0BAA0B,CAAC;AAMlC,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,YAAY,EAAE,yBAAyB,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAClG,OAAO,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAChF,YAAY,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AACxE,YAAY,EAAE,kBAAkB,EAAE,2BAA2B,EAAE,MAAM,wBAAwB,CAAC;AAC9F,OAAO,EACL,2BAA2B,EAC3B,2BAA2B,GAC5B,MAAM,2BAA2B,CAAC;AACnC,YAAY,EAAE,4BAA4B,EAAE,MAAM,2BAA2B,CAAC;AAC9E,OAAO,EAAE,4BAA4B,EAAE,MAAM,6BAA6B,CAAC;AAC3E,YAAY,EACV,wBAAwB,EACxB,2BAA2B,EAC3B,sBAAsB,EACtB,kBAAkB,EAClB,yBAAyB,EACzB,0BAA0B,EAC1B,wBAAwB,EACxB,2BAA2B,EAC3B,yBAAyB,EACzB,oBAAoB,EACpB,4BAA4B,GAC7B,MAAM,6BAA6B,CAAC;AACrC,YAAY,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAC;AACrE,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AACtE,YAAY,EAAE,4BAA4B,EAAE,MAAM,6BAA6B,CAAC;AAChF,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACpE,YAAY,EAAE,2BAA2B,EAAE,MAAM,4BAA4B,CAAC;AAC9E,OAAO,EAAE,4BAA4B,EAAE,MAAM,mCAAmC,CAAC;AACjF,OAAO,EAAE,0BAA0B,EAAE,0BAA0B,EAAE,MAAM,yBAAyB,CAAC;AACjG,YAAY,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAMnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,YAAY,EACV,4BAA4B,EAC5B,qBAAqB,EACrB,sBAAsB,EACtB,uBAAuB,GACxB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,2BAA2B,EAC3B,kCAAkC,EAClC,4BAA4B,GAC7B,MAAM,6BAA6B,CAAC;AACrC,YAAY,EACV,yBAAyB,EACzB,yBAAyB,GAC1B,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACtE,YAAY,EACV,0BAA0B,EAC1B,yBAAyB,GAC1B,MAAM,4BAA4B,CAAC;AACpC,YAAY,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAOvE,OAAO,EACL,4BAA4B,EAC5B,4BAA4B,GAC7B,MAAM,mCAAmC,CAAC;AAC3C,YAAY,EACV,mBAAmB,EACnB,yBAAyB,EACzB,sBAAsB,EACtB,oBAAoB,EACpB,uBAAuB,EACvB,mCAAmC,EACnC,kCAAkC,GACnC,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EACL,0BAA0B,EAC1B,0CAA0C,GAC3C,MAAM,iCAAiC,CAAC;AACzC,YAAY,EACV,8BAA8B,EAC9B,+BAA+B,GAChC,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AACzE,YAAY,EACV,wBAAwB,EACxB,0BAA0B,EAC1B,0BAA0B,EAC1B,sBAAsB,EACtB,+BAA+B,GAChC,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACL,uBAAuB,EACvB,uBAAuB,EACvB,yBAAyB,GAC1B,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EACV,oBAAoB,EACpB,gBAAgB,EAChB,cAAc,EACd,wBAAwB,EACxB,oBAAoB,GACrB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,kBAAkB,EAClB,gCAAgC,GACjC,MAAM,wCAAwC,CAAC;AAChD,OAAO,EAAE,4BAA4B,EAAE,MAAM,oCAAoC,CAAC;AAClF,YAAY,EAAE,6BAA6B,EAAE,MAAM,oCAAoC,CAAC;AACxF,OAAO,EAAE,kBAAkB,EAAE,iCAAiC,EAAE,MAAM,wBAAwB,CAAC;AAC/F,YAAY,EAAE,sBAAsB,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AAC9F,OAAO,EACL,oBAAoB,EACpB,mCAAmC,GACpC,MAAM,0BAA0B,CAAC;AAClC,YAAY,EAAE,wBAAwB,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAC;AACpG,OAAO,EACL,qCAAqC,EACrC,yBAAyB,GAC1B,MAAM,gCAAgC,CAAC;AACxC,YAAY,EACV,0BAA0B,EAC1B,oBAAoB,EACpB,gCAAgC,GACjC,MAAM,gCAAgC,CAAC;AAGxC,OAAO,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,cAAc,wBAAwB,CAAC;AACvC,cAAc,6BAA6B,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,KAAK,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AACjF,OAAO,EAAE,cAAc,EAAE,KAAK,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC9E,OAAO,EACL,uBAAuB,EACvB,sBAAsB,EACtB,KAAK,sBAAsB,GAC5B,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,iCAAiC,EACjC,KAAK,yBAAyB,EAC9B,KAAK,6BAA6B,GACnC,MAAM,gCAAgC,CAAC"}
|
package/dist/brand/index.js
CHANGED
|
@@ -69,4 +69,5 @@ export * from "./brand-assets-section-copy.js";
|
|
|
69
69
|
export { BrandFontUpload } from "./brand-font-upload.js";
|
|
70
70
|
export { ScanPageBanner } from "./scan-page-banner.js";
|
|
71
71
|
export { isUsableBrandFontFamily, resolveBrandFontFamily, } from "./brand-font-family.js";
|
|
72
|
+
export { classifyBrandGenerationStartError, } from "./brand-generation-start-error.js";
|
|
72
73
|
//# sourceMappingURL=index.js.map
|
package/dist/brand/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/brand/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/brand/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -37,7 +37,7 @@ export function ScanPageBanner({ asset, scrapedUrl, onUpload, onClear, uploading
|
|
|
37
37
|
setValidationError(null);
|
|
38
38
|
onUpload(file);
|
|
39
39
|
};
|
|
40
|
-
return (_jsxs("section", { className: "flex flex-col gap-3", "data-testid": "scan-page-banner", children: [_jsxs("div", { children: [_jsx("h3", { className: "text-sm font-semibold text-foreground", children: copy.title }), _jsx("p", { className: "max-w-prose text-sm text-muted-foreground", children: copy.subtitle })] }), _jsxs("div", { className: "rounded-xl border border-border/60 bg-card p-4", children: [currentUrl ? (_jsxs("div", { className: "flex flex-col gap-3", children: [_jsx(BrandSafeImage, { src: currentUrl, alt: copy.previewAlt, allowedOrigins: allowedImageOrigins, className: "h-28 w-full rounded-lg border border-border/60 object-cover", fallback: _jsx("span", { role: "status", className: "flex h-28 w-full items-center justify-center rounded-lg border border-border/60 text-xs text-muted-foreground", children: copy.previewUnavailable }) }), _jsxs("div", { className: "flex flex-wrap items-center gap-x-3 gap-y-2", children: [_jsx("span", { className: "min-w-0 flex-1 truncate text-xs text-muted-foreground", children: isScraped ? copy.fromWebsite : (asset?.fileName ?? "") }), _jsx("button", { type: "button", onClick: () => inputRef.current?.click(), disabled: busy, className: "shrink-0 rounded-lg px-2 py-1 text-xs font-medium text-primary hover:underline disabled:cursor-not-allowed disabled:opacity-50", children: uploading ? copy.uploading : copy.replace }), canClear ? (_jsx("button", { type: "button", onClick: onClear, disabled: busy, className: "shrink-0 rounded-lg px-2 py-1 text-xs font-medium text-[var(--tone-danger-fg)] hover:underline disabled:cursor-not-allowed disabled:opacity-50", children: clearing ? copy.removing : copy.remove })) : null] })] })) : (_jsxs("button", { type: "button", onClick: () => inputRef.current?.click(), "aria-describedby": shownError ? errorId : undefined, "aria-invalid": shownError ? true : undefined, disabled: busy, className: "flex w-full cursor-pointer items-center justify-center rounded-lg border border-dashed border-border/60 px-3 py-6 text-xs text-muted-foreground hover:border-primary hover:text-primary disabled:cursor-not-allowed disabled:opacity-50", children: [_jsx("span", { className: "sr-only", children: copy.inputLabel }), _jsx("span", { "aria-hidden": "true", children: uploading ? copy.uploading : copy.upload })] })), shownError ? (_jsx("p", { role: "alert", id: errorId, className: "mt-2 text-xs font-medium text-[var(--tone-danger-fg)]", children: shownError })) : null, _jsx("input", { ref: inputRef, type: "file", accept: ACCEPTED_MIME_TYPES.join(","), tabIndex: -1, className: "sr-only", "aria-label": copy.inputLabel, disabled: busy, onChange: (event) => {
|
|
40
|
+
return (_jsxs("section", { className: "flex flex-col gap-3", "data-testid": "scan-page-banner", children: [_jsxs("div", { children: [_jsx("h3", { className: "text-sm font-semibold text-foreground", children: copy.title }), _jsx("p", { className: "max-w-prose text-sm text-muted-foreground", children: copy.subtitle })] }), _jsxs("div", { className: "rounded-xl border border-border/60 bg-card p-4", children: [currentUrl ? (_jsxs("div", { className: "flex flex-col gap-3", children: [_jsx(BrandSafeImage, { src: currentUrl, alt: copy.previewAlt, allowedOrigins: allowedImageOrigins, className: "h-28 w-full rounded-lg border border-border/60 object-cover", fallback: _jsx("span", { role: "status", className: "flex h-28 w-full items-center justify-center rounded-lg border border-border/60 text-xs text-muted-foreground", children: copy.previewUnavailable }) }), _jsxs("div", { className: "flex flex-wrap items-center gap-x-3 gap-y-2", children: [_jsx("span", { className: "min-w-0 flex-1 truncate text-xs text-muted-foreground", children: isScraped ? copy.fromWebsite : (asset?.fileName ?? "") }), _jsx("button", { type: "button", onClick: () => inputRef.current?.click(), disabled: busy, className: "relative before:absolute before:inset-x-0 before:-inset-y-2.5 shrink-0 rounded-lg px-2 py-1 text-xs font-medium focus-visible:outline-hidden focus-visible:ring-3 focus-visible:ring-ring/70 text-primary hover:underline disabled:cursor-not-allowed disabled:opacity-50", children: uploading ? copy.uploading : copy.replace }), canClear ? (_jsx("button", { type: "button", onClick: onClear, disabled: busy, className: "relative before:absolute before:inset-x-0 before:-inset-y-2.5 shrink-0 rounded-lg px-2 py-1 text-xs font-medium focus-visible:outline-hidden focus-visible:ring-3 focus-visible:ring-ring/70 text-[var(--tone-danger-fg)] hover:underline disabled:cursor-not-allowed disabled:opacity-50", children: clearing ? copy.removing : copy.remove })) : null] })] })) : (_jsxs("button", { type: "button", onClick: () => inputRef.current?.click(), "aria-describedby": shownError ? errorId : undefined, "aria-invalid": shownError ? true : undefined, disabled: busy, className: "flex w-full cursor-pointer items-center justify-center rounded-lg border border-dashed border-border/60 px-3 py-6 text-xs text-muted-foreground hover:border-primary hover:text-primary disabled:cursor-not-allowed disabled:opacity-50", children: [_jsx("span", { className: "sr-only", children: copy.inputLabel }), _jsx("span", { "aria-hidden": "true", children: uploading ? copy.uploading : copy.upload })] })), shownError ? (_jsx("p", { role: "alert", id: errorId, className: "mt-2 text-xs font-medium text-[var(--tone-danger-fg)]", children: shownError })) : null, _jsx("input", { ref: inputRef, type: "file", accept: ACCEPTED_MIME_TYPES.join(","), tabIndex: -1, className: "sr-only", "aria-label": copy.inputLabel, disabled: busy, onChange: (event) => {
|
|
41
41
|
const file = event.target.files?.[0];
|
|
42
42
|
if (file)
|
|
43
43
|
handleFile(file);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scan-page-banner.js","sourceRoot":"","sources":["../../src/brand/scan-page-banner.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"scan-page-banner.js","sourceRoot":"","sources":["../../src/brand/scan-page-banner.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { type QueryKey } from "@tanstack/react-query";
|
|
2
2
|
import type { BrandGenerationApi, BrandGenerationStreamConfig } from "./brand-generation-api.js";
|
|
3
3
|
import type { BrandGenerationContext, BrandGenerationJob } from "./brand-generation-response.js";
|
|
4
|
+
import { type BrandGenerationStartError } from "./brand-generation-start-error.js";
|
|
4
5
|
export interface UseBrandGenerationOptions {
|
|
5
6
|
/** Active org id. Every piece of generation state resets when it changes. */
|
|
6
7
|
readonly orgId: string;
|
|
@@ -23,6 +24,10 @@ export declare function useBrandGeneration({ orgId, api, stream, profileQueryKey
|
|
|
23
24
|
isDiscoveringActive: boolean;
|
|
24
25
|
discoveryError: Error | null;
|
|
25
26
|
error: "start" | "resume" | "accept" | "cancel" | "prioritize" | null;
|
|
27
|
+
/** Why the last start failed (behind `error === "start"`), else `null`. */
|
|
28
|
+
startError: BrandGenerationStartError | null;
|
|
29
|
+
/** Clears a failed-start error (the start form calls it on edit). */
|
|
30
|
+
clearStartError: () => void;
|
|
26
31
|
transportDegraded: boolean;
|
|
27
32
|
eligibility: import("./brand-generation-types.js").BrandGenerationEligibility | null;
|
|
28
33
|
start: (homepageUrl: string, context?: BrandGenerationContext) => Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-brand-generation.d.ts","sourceRoot":"","sources":["../../src/brand/use-brand-generation.ts"],"names":[],"mappings":"AACA,OAAO,EAAkB,KAAK,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACtE,OAAO,KAAK,EAAE,kBAAkB,EAAE,2BAA2B,EAAE,MAAM,wBAAwB,CAAC;AAM9F,OAAO,KAAK,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"use-brand-generation.d.ts","sourceRoot":"","sources":["../../src/brand/use-brand-generation.ts"],"names":[],"mappings":"AACA,OAAO,EAAkB,KAAK,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACtE,OAAO,KAAK,EAAE,kBAAkB,EAAE,2BAA2B,EAAE,MAAM,wBAAwB,CAAC;AAM9F,OAAO,KAAK,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAC9F,OAAO,EAEL,KAAK,yBAAyB,EAC/B,MAAM,gCAAgC,CAAC;AASxC,MAAM,WAAW,yBAAyB;IACxC,6EAA6E;IAC7E,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,yDAAyD;IACzD,QAAQ,CAAC,GAAG,EAAE,kBAAkB,CAAC;IACjC,iFAAiF;IACjF,QAAQ,CAAC,MAAM,EAAE,2BAA2B,CAAC;IAC7C;;;;;OAKG;IACH,QAAQ,CAAC,eAAe,EAAE,QAAQ,CAAC;CACpC;AAED,MAAM,MAAM,wBAAwB,GAAG,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE7E,wBAAgB,kBAAkB,CAAC,EACjC,KAAK,EACL,GAAG,EACH,MAAM,EACN,eAAe,GAChB,EAAE,yBAAyB;;;;;;IAmNxB,2EAA2E;;IAE3E,qEAAqE;;;;yBAxIrC,MAAM,YAAY,sBAAsB;oBAoHnD,MAAM;;yBA1EK,MAAM;;;EAsHzC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { useEffect, useCallback, useRef } from "react";
|
|
2
2
|
import { useQueryClient } from "@tanstack/react-query";
|
|
3
3
|
import { brandGenerationKeys, isTerminalStatus, } from "./brand-generation-keys.js";
|
|
4
|
+
import { classifyBrandGenerationStartError, } from "./brand-generation-start-error.js";
|
|
4
5
|
import { resumeBrandGeneration } from "./resume-brand-generation.js";
|
|
5
6
|
import { useBrandGenerationDiscovery } from "./use-brand-generation-discovery.js";
|
|
6
7
|
import { useBrandGenerationTransport, } from "./use-brand-generation-transport.js";
|
|
@@ -22,13 +23,15 @@ export function useBrandGeneration({ orgId, api, stream, profileQueryKey, }) {
|
|
|
22
23
|
const [dismissedTerminalJobId, setDismissedTerminalJobId] = useOrgScopedState(orgId, null);
|
|
23
24
|
const [isGenerating, setIsGenerating] = useOrgScopedState(orgId, false);
|
|
24
25
|
const [error, setError] = useOrgScopedState(orgId, null);
|
|
26
|
+
const [startError, setStartError] = useOrgScopedState(orgId, null);
|
|
25
27
|
const [transportDegraded, setTransportDegraded] = useOrgScopedState(orgId, false);
|
|
26
28
|
const clearGenerationState = useCallback(() => {
|
|
27
29
|
setJob(null);
|
|
28
30
|
setIsGenerating(false);
|
|
29
31
|
setError(null);
|
|
32
|
+
setStartError(null);
|
|
30
33
|
setTransportDegraded(false);
|
|
31
|
-
}, [setError, setIsGenerating, setJob, setTransportDegraded]);
|
|
34
|
+
}, [setError, setIsGenerating, setJob, setStartError, setTransportDegraded]);
|
|
32
35
|
const markTransportDegraded = useCallback(() => {
|
|
33
36
|
if (orgEpochRef.current === orgEpoch)
|
|
34
37
|
setTransportDegraded(true);
|
|
@@ -72,6 +75,7 @@ export function useBrandGeneration({ orgId, api, stream, profileQueryKey, }) {
|
|
|
72
75
|
const actionEpoch = orgEpoch;
|
|
73
76
|
try {
|
|
74
77
|
setError(null);
|
|
78
|
+
setStartError(null);
|
|
75
79
|
setTransportDegraded(false);
|
|
76
80
|
setDismissedTerminalJobId(null);
|
|
77
81
|
setIsGenerating(true);
|
|
@@ -89,10 +93,11 @@ export function useBrandGeneration({ orgId, api, stream, profileQueryKey, }) {
|
|
|
89
93
|
});
|
|
90
94
|
connectSSE(res.jobId);
|
|
91
95
|
}
|
|
92
|
-
catch {
|
|
96
|
+
catch (cause) {
|
|
93
97
|
if (orgEpochRef.current !== actionEpoch)
|
|
94
98
|
return;
|
|
95
99
|
setIsGenerating(false);
|
|
100
|
+
setStartError(classifyBrandGenerationStartError(cause));
|
|
96
101
|
setError("start");
|
|
97
102
|
}
|
|
98
103
|
};
|
|
@@ -204,6 +209,15 @@ export function useBrandGeneration({ orgId, api, stream, profileQueryKey, }) {
|
|
|
204
209
|
isDiscoveringActive,
|
|
205
210
|
discoveryError,
|
|
206
211
|
error,
|
|
212
|
+
/** Why the last start failed (behind `error === "start"`), else `null`. */
|
|
213
|
+
startError,
|
|
214
|
+
/** Clears a failed-start error (the start form calls it on edit). */
|
|
215
|
+
clearStartError: () => {
|
|
216
|
+
if (error !== "start")
|
|
217
|
+
return;
|
|
218
|
+
setError(null);
|
|
219
|
+
setStartError(null);
|
|
220
|
+
},
|
|
207
221
|
transportDegraded,
|
|
208
222
|
// CEL-1682 (contracts §2): prefers the tracked job's own eligibility
|
|
209
223
|
// (populated by GET /:jobId via `resume`, and by GET /active when a job
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-brand-generation.js","sourceRoot":"","sources":["../../src/brand/use-brand-generation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AACvD,OAAO,EAAE,cAAc,EAAiB,MAAM,uBAAuB,CAAC;AAEtE,OAAO,EACL,mBAAmB,EACnB,gBAAgB,GAEjB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAAE,2BAA2B,EAAE,MAAM,kCAAkC,CAAC;AAC/E,OAAO,EACL,2BAA2B,GAE5B,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAoB3D,MAAM,UAAU,kBAAkB,CAAC,EACjC,KAAK,EACL,GAAG,EACH,MAAM,EACN,eAAe,GACW;IAC1B,4FAA4F;IAC5F,MAAM,aAAa,GAAG,MAAM,CAAC,eAAe,CAAC,CAAC;IAC9C,aAAa,CAAC,OAAO,GAAG,eAAe,CAAC;IACxC,MAAM,WAAW,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IAC9B,MAAM,gBAAgB,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IACvC,IAAI,gBAAgB,CAAC,OAAO,KAAK,KAAK,EAAE,CAAC;QACvC,gBAAgB,CAAC,OAAO,GAAG,KAAK,CAAC;QACjC,WAAW,CAAC,OAAO,IAAI,CAAC,CAAC;IAC3B,CAAC;IACD,MAAM,QAAQ,GAAG,WAAW,CAAC,OAAO,CAAC;IACrC,MAAM,WAAW,GAAG,cAAc,EAAE,CAAC;IACrC,MAAM,EACJ,WAAW,EACX,SAAS,EACT,aAAa,EACb,WAAW,EACX,WAAW,EAAE,oBAAoB,EACjC,oBAAoB,EACpB,mBAAmB,EACnB,cAAc,GACf,GAAG,2BAA2B,CAAC,KAAK,EAAE,GAAG,EAAE,aAAa,CAAC,CAAC;IAC3D,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,CAAC,GAAG,iBAAiB,CAA4B,KAAK,EAAE,IAAI,CAAC,CAAC;IAC3F,MAAM,CAAC,sBAAsB,EAAE,yBAAyB,CAAC,GAAG,iBAAiB,CAC3E,KAAK,EACL,IAAI,CACL,CAAC;IACF,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,iBAAiB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACxE,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,iBAAiB,CAAkC,KAAK,EAAE,IAAI,CAAC,CAAC;IAC1F,MAAM,CAAC,iBAAiB,EAAE,oBAAoB,CAAC,GAAG,iBAAiB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IAClF,MAAM,oBAAoB,GAAG,WAAW,CAAC,GAAG,EAAE;QAC5C,MAAM,CAAC,IAAI,CAAC,CAAC;QACb,eAAe,CAAC,KAAK,CAAC,CAAC;QACvB,QAAQ,CAAC,IAAI,CAAC,CAAC;QACf,oBAAoB,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC,EAAE,CAAC,QAAQ,EAAE,eAAe,EAAE,MAAM,EAAE,oBAAoB,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"use-brand-generation.js","sourceRoot":"","sources":["../../src/brand/use-brand-generation.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cellarnode/ui",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.190.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"private": false,
|
|
6
6
|
"packageManager": "pnpm@10.28.2+sha512.41872f037ad22f7348e3b1debbaf7e867cfd448f2726d9cf74c08f19507c31d2c8e7a11525b983febc2df640b5438dee6023ebb1f84ed43cc2d654d2bc326264",
|