@cellarnode/ui 0.189.0 → 0.191.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/dist/components/country-flag.d.ts +11 -1
- package/dist/components/country-flag.d.ts.map +1 -1
- package/dist/components/country-flag.js +5 -3
- package/dist/components/country-flag.js.map +1 -1
- package/dist/markets/deadline.d.ts +35 -0
- package/dist/markets/deadline.d.ts.map +1 -0
- package/dist/markets/deadline.js +58 -0
- package/dist/markets/deadline.js.map +1 -0
- package/dist/markets/index.d.ts +4 -0
- package/dist/markets/index.d.ts.map +1 -0
- package/dist/markets/index.js +4 -0
- package/dist/markets/index.js.map +1 -0
- package/dist/markets/market-list-item.d.ts +41 -0
- package/dist/markets/market-list-item.d.ts.map +1 -0
- package/dist/markets/market-list-item.js +25 -0
- package/dist/markets/market-list-item.js.map +1 -0
- package/dist/markets/market-opportunities-table.d.ts +137 -0
- package/dist/markets/market-opportunities-table.d.ts.map +1 -0
- package/dist/markets/market-opportunities-table.js +282 -0
- package/dist/markets/market-opportunities-table.js.map +1 -0
- package/dist/markets/market-workspace-header.d.ts +53 -0
- package/dist/markets/market-workspace-header.d.ts.map +1 -0
- package/dist/markets/market-workspace-header.js +34 -0
- package/dist/markets/market-workspace-header.js.map +1 -0
- package/dist/opportunities/opportunities-table.d.ts +3 -1
- package/dist/opportunities/opportunities-table.d.ts.map +1 -1
- package/dist/opportunities/opportunities-table.js +24 -56
- package/dist/opportunities/opportunities-table.js.map +1 -1
- package/package.json +5 -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":"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"}
|
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);
|