@cellarnode/ui 0.187.0 → 0.188.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.
Files changed (56) hide show
  1. package/dist/brand/brand-assets-api.d.ts +58 -0
  2. package/dist/brand/brand-assets-api.d.ts.map +1 -0
  3. package/dist/brand/brand-assets-api.js +160 -0
  4. package/dist/brand/brand-assets-api.js.map +1 -0
  5. package/dist/brand/brand-generation-client.d.ts +8 -0
  6. package/dist/brand/brand-generation-client.d.ts.map +1 -1
  7. package/dist/brand/brand-generation-client.js +1 -1
  8. package/dist/brand/brand-generation-client.js.map +1 -1
  9. package/dist/brand/brand-generation-start.d.ts +49 -0
  10. package/dist/brand/brand-generation-start.d.ts.map +1 -0
  11. package/dist/brand/brand-generation-start.js +48 -0
  12. package/dist/brand/brand-generation-start.js.map +1 -0
  13. package/dist/brand/brand-image-chooser.d.ts +3 -1
  14. package/dist/brand/brand-image-chooser.d.ts.map +1 -1
  15. package/dist/brand/brand-image-chooser.js +7 -1
  16. package/dist/brand/brand-image-chooser.js.map +1 -1
  17. package/dist/brand/brand-image-choosers.d.ts +37 -0
  18. package/dist/brand/brand-image-choosers.d.ts.map +1 -0
  19. package/dist/brand/brand-image-choosers.js +76 -0
  20. package/dist/brand/brand-image-choosers.js.map +1 -0
  21. package/dist/brand/brand-workspace-change-notice.d.ts +20 -0
  22. package/dist/brand/brand-workspace-change-notice.d.ts.map +1 -0
  23. package/dist/brand/brand-workspace-change-notice.js +19 -0
  24. package/dist/brand/brand-workspace-change-notice.js.map +1 -0
  25. package/dist/brand/index.d.ts +17 -0
  26. package/dist/brand/index.d.ts.map +1 -1
  27. package/dist/brand/index.js +14 -0
  28. package/dist/brand/index.js.map +1 -1
  29. package/dist/brand/use-brand-image-operation-result.d.ts +43 -0
  30. package/dist/brand/use-brand-image-operation-result.d.ts.map +1 -0
  31. package/dist/brand/use-brand-image-operation-result.js +162 -0
  32. package/dist/brand/use-brand-image-operation-result.js.map +1 -0
  33. package/dist/brand/use-brand-profile-acceptance.d.ts +38 -0
  34. package/dist/brand/use-brand-profile-acceptance.d.ts.map +1 -0
  35. package/dist/brand/use-brand-profile-acceptance.js +84 -0
  36. package/dist/brand/use-brand-profile-acceptance.js.map +1 -0
  37. package/dist/brand/use-brand-public-visibility.d.ts +59 -0
  38. package/dist/brand/use-brand-public-visibility.d.ts.map +1 -0
  39. package/dist/brand/use-brand-public-visibility.js +69 -0
  40. package/dist/brand/use-brand-public-visibility.js.map +1 -0
  41. package/dist/brand/use-brand-workspace-concurrency.d.ts +132 -0
  42. package/dist/brand/use-brand-workspace-concurrency.d.ts.map +1 -0
  43. package/dist/brand/use-brand-workspace-concurrency.js +255 -0
  44. package/dist/brand/use-brand-workspace-concurrency.js.map +1 -0
  45. package/dist/brand/use-brand-workspace-image-candidates.d.ts +19 -0
  46. package/dist/brand/use-brand-workspace-image-candidates.d.ts.map +1 -0
  47. package/dist/brand/use-brand-workspace-image-candidates.js +39 -0
  48. package/dist/brand/use-brand-workspace-image-candidates.js.map +1 -0
  49. package/dist/moderation/moderation-event.d.ts +2 -0
  50. package/dist/moderation/moderation-event.d.ts.map +1 -1
  51. package/dist/moderation/moderation-event.js +7 -0
  52. package/dist/moderation/moderation-event.js.map +1 -1
  53. package/dist/moderation/moderation-store.d.ts.map +1 -1
  54. package/dist/moderation/moderation-store.js +4 -2
  55. package/dist/moderation/moderation-store.js.map +1 -1
  56. package/package.json +1 -1
@@ -0,0 +1,58 @@
1
+ import type { ModerationPersistedRead } from "../moderation/index.js";
2
+ import type { BrandAsset, BrandProfileAssetSlot } from "./types.js";
3
+ /** The moderation-relevant fields the backend returns with every asset. */
4
+ export interface BrandAssetModeration {
5
+ readonly outcome: "pending" | "pass" | "reject" | "unsure" | null;
6
+ readonly publishedAt: string | null;
7
+ }
8
+ export type BrandAssetRecord = BrandAsset & BrandAssetModeration;
9
+ export interface UploadBrandAssetArgs {
10
+ readonly profileId: string;
11
+ readonly slot: BrandProfileAssetSlot;
12
+ readonly file: File;
13
+ }
14
+ /**
15
+ * CEL-2127 — the transport-agnostic seam of the brand image/asset flow
16
+ * (`/brand-profiles/{id}/assets*`, present in both the producer and importer
17
+ * OpenAPIs). A consumer supplies one implementation: producer may wrap its
18
+ * generated client, importer uses {@link createBrandAssetsClient}. Cache
19
+ * invalidation stays with the consumer (wrap `upload`).
20
+ */
21
+ export interface BrandAssetsApi {
22
+ /** `GET /brand-profiles/{id}/assets`. */
23
+ list(profileId: string): Promise<BrandAssetRecord[]>;
24
+ /** `POST .../assets/upload-url`, `PUT` the file to storage, `POST .../assets/confirm`. */
25
+ upload(args: UploadBrandAssetArgs): Promise<BrandAssetRecord>;
26
+ /** `DELETE /brand-profiles/{id}/assets/{assetId}`. */
27
+ remove(profileId: string, assetId: string): Promise<void>;
28
+ /**
29
+ * The durable, asset-id-keyed moderation read the shared moderation operation
30
+ * falls back to when no live verdict event arrives. `null` when the exact
31
+ * asset no longer exists; rejects on transport failure so the bounded poll
32
+ * retries instead of reporting a false outcome.
33
+ */
34
+ fetchModeration(profileId: string, assetId: string): Promise<ModerationPersistedRead | null>;
35
+ }
36
+ /** A non-2xx answer, or a failed storage upload, from the assets endpoints. */
37
+ export declare class BrandAssetsRequestError extends Error {
38
+ readonly status: number;
39
+ readonly code: string;
40
+ constructor(status: number, code: string, message: string);
41
+ }
42
+ export interface BrandAssetsClientOptions {
43
+ /** API origin (e.g. `http://localhost:4000`). */
44
+ readonly baseUrl: string;
45
+ /** Bearer token source. Omit for cookie auth (`credentials: "include"`). */
46
+ readonly getAccessToken?: () => Promise<string | null>;
47
+ /** Defaults to the global `fetch`. Used for the API calls only, never for the storage PUT. */
48
+ readonly fetch?: typeof fetch;
49
+ /** The injected `fetch` refreshes an expired session itself: never retry a 401 here. */
50
+ readonly fetchRefreshesSession?: boolean;
51
+ /** Abort the storage PUT after this long. Default 30000. */
52
+ readonly uploadTimeoutMs?: number;
53
+ }
54
+ /** Browsers report fonts as octet-stream or empty; the backend whitelists real font MIME types. */
55
+ export declare function resolveBrandAssetMimeType(file: File): string;
56
+ /** The shared HTTP implementation of {@link BrandAssetsApi}. */
57
+ export declare function createBrandAssetsClient(options: BrandAssetsClientOptions): BrandAssetsApi;
58
+ //# sourceMappingURL=brand-assets-api.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"brand-assets-api.d.ts","sourceRoot":"","sources":["../../src/brand/brand-assets-api.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAC7D,OAAO,KAAK,EAAE,UAAU,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAEjE,2EAA2E;AAC3E,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,OAAO,EAAE,SAAS,GAAG,MAAM,GAAG,QAAQ,GAAG,QAAQ,GAAG,IAAI,CAAC;IAClE,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CACrC;AAED,MAAM,MAAM,gBAAgB,GAAG,UAAU,GAAG,oBAAoB,CAAC;AAEjE,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,IAAI,EAAE,qBAAqB,CAAC;IACrC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;CACrB;AAED;;;;;;GAMG;AACH,MAAM,WAAW,cAAc;IAC7B,yCAAyC;IACzC,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAAC;IACrD,0FAA0F;IAC1F,MAAM,CAAC,IAAI,EAAE,oBAAoB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAC9D,sDAAsD;IACtD,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1D;;;;;OAKG;IACH,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,uBAAuB,GAAG,IAAI,CAAC,CAAC;CAC9F;AAED,+EAA+E;AAC/E,qBAAa,uBAAwB,SAAQ,KAAK;IAE9C,QAAQ,CAAC,MAAM,EAAE,MAAM;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM;gBADZ,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACrB,OAAO,EAAE,MAAM;CAKlB;AAED,MAAM,WAAW,wBAAwB;IACvC,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,8FAA8F;IAC9F,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;IAC9B,wFAAwF;IACxF,QAAQ,CAAC,qBAAqB,CAAC,EAAE,OAAO,CAAC;IACzC,4DAA4D;IAC5D,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;CACnC;AASD,mGAAmG;AACnG,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,CAM5D;AAyCD,gEAAgE;AAChE,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,wBAAwB,GAAG,cAAc,CA2HzF"}
@@ -0,0 +1,160 @@
1
+ /** A non-2xx answer, or a failed storage upload, from the assets endpoints. */
2
+ export class BrandAssetsRequestError extends Error {
3
+ status;
4
+ code;
5
+ constructor(status, code, message) {
6
+ super(message);
7
+ this.status = status;
8
+ this.code = code;
9
+ this.name = "BrandAssetsRequestError";
10
+ }
11
+ }
12
+ const FONT_MIME_BY_EXTENSION = {
13
+ woff2: "font/woff2",
14
+ woff: "font/woff",
15
+ ttf: "font/ttf",
16
+ otf: "font/otf",
17
+ };
18
+ /** Browsers report fonts as octet-stream or empty; the backend whitelists real font MIME types. */
19
+ export function resolveBrandAssetMimeType(file) {
20
+ const extension = file.name.split(".").pop()?.toLowerCase();
21
+ const fontMime = extension ? FONT_MIME_BY_EXTENSION[extension] : undefined;
22
+ if (fontMime)
23
+ return fontMime;
24
+ if (file.type && file.type !== "application/octet-stream")
25
+ return file.type;
26
+ return "application/octet-stream";
27
+ }
28
+ function isRecord(value) {
29
+ return value !== null && typeof value === "object" && !Array.isArray(value);
30
+ }
31
+ const OUTCOMES = new Set(["pending", "pass", "reject", "unsure"]);
32
+ function parseAsset(value) {
33
+ if (!isRecord(value) ||
34
+ typeof value.id !== "string" ||
35
+ typeof value.slot !== "string" ||
36
+ typeof value.fileUrl !== "string") {
37
+ throw new BrandAssetsRequestError(200, "INVALID_RESPONSE", "Unexpected brand asset response");
38
+ }
39
+ const outcome = value.moderationOutcome;
40
+ return {
41
+ id: value.id,
42
+ slot: value.slot,
43
+ fileUrl: value.fileUrl,
44
+ fileName: typeof value.fileName === "string" ? value.fileName : "",
45
+ mimeType: typeof value.mimeType === "string" ? value.mimeType : "",
46
+ fileSize: typeof value.fileSize === "number" ? value.fileSize : 0,
47
+ width: typeof value.width === "number" ? value.width : null,
48
+ height: typeof value.height === "number" ? value.height : null,
49
+ outcome: typeof outcome === "string" && OUTCOMES.has(outcome) ? outcome : null,
50
+ publishedAt: typeof value.publishedAt === "string" ? value.publishedAt : null,
51
+ };
52
+ }
53
+ function errorFields(body, fallback) {
54
+ if (!isRecord(body))
55
+ return { code: "UNKNOWN", message: fallback };
56
+ const nested = isRecord(body.error) ? body.error : body;
57
+ return {
58
+ code: typeof nested.code === "string" ? nested.code : "UNKNOWN",
59
+ message: typeof nested.message === "string" ? nested.message : fallback,
60
+ };
61
+ }
62
+ /** The shared HTTP implementation of {@link BrandAssetsApi}. */
63
+ export function createBrandAssetsClient(options) {
64
+ const base = options.baseUrl.replace(/\/+$/, "");
65
+ const assetsPath = (profileId) => `/brand-profiles/${encodeURIComponent(profileId)}/assets`;
66
+ async function request(method, path, fallback, body) {
67
+ const doFetch = options.fetch ?? fetch;
68
+ const send = async (token) => {
69
+ const headers = { Accept: "application/json" };
70
+ if (body !== undefined)
71
+ headers["Content-Type"] = "application/json";
72
+ if (token)
73
+ headers.Authorization = `Bearer ${token}`;
74
+ return doFetch(`${base}${path}`, {
75
+ method,
76
+ headers,
77
+ ...(options.getAccessToken ? {} : { credentials: "include" }),
78
+ ...(body === undefined ? {} : { body: JSON.stringify(body) }),
79
+ });
80
+ };
81
+ let response = await send(options.getAccessToken ? await options.getAccessToken() : undefined);
82
+ if (response.status === 401 && options.getAccessToken && !options.fetchRefreshesSession) {
83
+ response = await send(await options.getAccessToken());
84
+ }
85
+ let parsed;
86
+ if (response.status !== 204) {
87
+ try {
88
+ parsed = await response.json();
89
+ }
90
+ catch {
91
+ parsed = undefined;
92
+ }
93
+ }
94
+ if (!response.ok) {
95
+ const { code, message } = errorFields(parsed, fallback);
96
+ throw new BrandAssetsRequestError(response.status, code, message);
97
+ }
98
+ return parsed;
99
+ }
100
+ async function list(profileId) {
101
+ const data = await request("GET", assetsPath(profileId), "Failed to list brand assets");
102
+ if (!isRecord(data) || !Array.isArray(data.assets)) {
103
+ throw new BrandAssetsRequestError(200, "INVALID_RESPONSE", "Unexpected brand asset list");
104
+ }
105
+ return data.assets.map(parseAsset);
106
+ }
107
+ return {
108
+ list,
109
+ async upload({ profileId, slot, file }) {
110
+ const mimeType = resolveBrandAssetMimeType(file);
111
+ const target = await request("POST", `${assetsPath(profileId)}/upload-url`, "Failed to start brand asset upload", { slot, fileName: file.name, mimeType, fileSize: file.size });
112
+ if (!isRecord(target) ||
113
+ typeof target.uploadUrl !== "string" ||
114
+ typeof target.uploadId !== "string") {
115
+ throw new BrandAssetsRequestError(200, "INVALID_RESPONSE", "Unexpected upload target");
116
+ }
117
+ const requiredHeaders = isRecord(target.requiredHeaders)
118
+ ? target.requiredHeaders
119
+ : {};
120
+ const controller = new AbortController();
121
+ const timeoutId = setTimeout(() => controller.abort(), options.uploadTimeoutMs ?? 30_000);
122
+ try {
123
+ let stored;
124
+ try {
125
+ // Storage is a different origin with a presigned URL: plain fetch,
126
+ // never the authenticated one, so no bearer token leaks to it.
127
+ stored = await fetch(target.uploadUrl, {
128
+ method: "PUT",
129
+ headers: requiredHeaders,
130
+ body: file,
131
+ signal: controller.signal,
132
+ });
133
+ }
134
+ catch {
135
+ throw new BrandAssetsRequestError(0, controller.signal.aborted ? "BRAND_ASSET_UPLOAD_TIMEOUT" : "BRAND_ASSET_UPLOAD_NETWORK", controller.signal.aborted
136
+ ? "Upload timed out. Please try again."
137
+ : "Network error while uploading. Please check your connection and try again.");
138
+ }
139
+ if (!stored.ok) {
140
+ throw new BrandAssetsRequestError(stored.status, "BRAND_ASSET_UPLOAD_FAILED", "Failed to upload file to storage");
141
+ }
142
+ }
143
+ finally {
144
+ clearTimeout(timeoutId);
145
+ }
146
+ const confirmed = await request("POST", `${assetsPath(profileId)}/confirm`, "Failed to confirm brand asset upload", { uploadId: target.uploadId, slot, fileName: file.name, mimeType, fileSize: file.size });
147
+ return parseAsset(confirmed);
148
+ },
149
+ async remove(profileId, assetId) {
150
+ await request("DELETE", `${assetsPath(profileId)}/${encodeURIComponent(assetId)}`, "Failed to delete brand asset");
151
+ },
152
+ async fetchModeration(profileId, assetId) {
153
+ const asset = (await list(profileId)).find((candidate) => candidate.id === assetId);
154
+ if (!asset)
155
+ return null;
156
+ return { identity: asset.id, outcome: asset.outcome, published: asset.publishedAt !== null };
157
+ },
158
+ };
159
+ }
160
+ //# sourceMappingURL=brand-assets-api.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"brand-assets-api.js","sourceRoot":"","sources":["../../src/brand/brand-assets-api.ts"],"names":[],"mappings":"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"}
@@ -18,6 +18,14 @@ export interface BrandGenerationClientOptions {
18
18
  * refreshes needs no custom fetch.
19
19
  */
20
20
  readonly fetch?: typeof fetch;
21
+ /**
22
+ * Set when the injected `fetch` already refreshes an expired session and
23
+ * retries the request itself. The client then NEVER retries a 401: stacking
24
+ * its own retry on top of the consumer's would send a persistent 401 twice
25
+ * (2x2 requests) and hammer the refresh endpoint. Only meaningful together
26
+ * with `fetch`; default `false`.
27
+ */
28
+ readonly fetchRefreshesSession?: boolean;
21
29
  }
22
30
  /**
23
31
  * The shared HTTP implementation of {@link BrandGenerationApi}. It parses every
@@ -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;gBADZ,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACrB,OAAO,EAAE,MAAM;CAKlB;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;CAC/B;AAyBD;;;;GAIG;AACH,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,4BAA4B,GACpC,kBAAkB,CA+EpB"}
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;gBADZ,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACrB,OAAO,EAAE,MAAM;CAKlB;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;AAyBD;;;;GAIG;AACH,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,4BAA4B,GACpC,kBAAkB,CA+EpB"}
@@ -53,7 +53,7 @@ export function createBrandGenerationClient(options) {
53
53
  });
54
54
  };
55
55
  let response = await send(options.getAccessToken ? await options.getAccessToken() : undefined);
56
- if (response.status === 401 && options.getAccessToken) {
56
+ if (response.status === 401 && options.getAccessToken && !options.fetchRefreshesSession) {
57
57
  // The token may have expired between read and send; ask again (a
58
58
  // refreshing getter returns a new one) and retry exactly once.
59
59
  response = await send(await options.getAccessToken());
@@ -1 +1 @@
1
- {"version":3,"file":"brand-generation-client.js","sourceRoot":"","sources":["../../src/brand/brand-generation-client.ts"],"names":[],"mappings":"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"}
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,49 @@
1
+ import type { BrandGenerationRecoveryCopy } from "./brand-generation-recovery-copy.js";
2
+ import type { BrandGenerationEligibility } from "./brand-generation-types.js";
3
+ import type { BrandPersona } from "./types.js";
4
+ export interface BrandGenerationStartCopy {
5
+ readonly websiteUrlLabel: string;
6
+ readonly urlPlaceholder: string;
7
+ readonly generateAction: string;
8
+ readonly orSeparator: string;
9
+ readonly createManuallyAction: string;
10
+ /** Shown when generation is blocked for a reason this client does not recognise. */
11
+ readonly eligibilityUnknownReason: string;
12
+ /**
13
+ * Same, when a retry date is known. A function, not a template: i18n
14
+ * libraries interpolate their own placeholder syntax (`{{date}}`), and string
15
+ * replacement here would leak braces. Receives the already formatted date.
16
+ */
17
+ readonly eligibilityUnknownReasonWithDate: (formattedDate: string) => string;
18
+ }
19
+ export declare const DEFAULT_BRAND_GENERATION_START_COPY: BrandGenerationStartCopy;
20
+ export interface BrandGenerationStartProps {
21
+ readonly persona?: BrandPersona;
22
+ /** Org-level eligibility from discovery; `null` while it is still settling. */
23
+ readonly eligibility: BrandGenerationEligibility | null;
24
+ readonly generationUrl: string;
25
+ readonly onGenerationUrlChange: (url: string) => void;
26
+ /** Called with the trimmed URL on submit; never while generation is blocked. */
27
+ readonly onStart: (url: string) => void;
28
+ readonly onCreateManually: () => void;
29
+ readonly formatDateTime: (iso: string) => string;
30
+ readonly copy?: Partial<BrandGenerationStartCopy>;
31
+ readonly recoveryCopy?: BrandGenerationRecoveryCopy;
32
+ /**
33
+ * Prefix of the generated ids. Producer passes `idPrefix="brand-generation-idle"`
34
+ * (its tests and e2e select on it); omit it for a unique `useId` prefix.
35
+ */
36
+ readonly idPrefix?: string;
37
+ }
38
+ /**
39
+ * CEL-2127 — the idle "no brand profile yet" start form shared by producer and
40
+ * importer: website URL, the brand-coloured "Generate Profile", the "or"
41
+ * separator and "Create manually".
42
+ *
43
+ * Cooldown, active-attempt and retry-limit eligibility block a FRESH start too
44
+ * (it is org-level, not conditioned on a profile existing), so the form is
45
+ * disabled and the reason is shown rather than letting a start 409 unexplained.
46
+ * A blocked state with no known reason still gets a fallback notice.
47
+ */
48
+ export declare function BrandGenerationStart({ persona, eligibility, generationUrl, onGenerationUrlChange, onStart, onCreateManually, formatDateTime, copy, recoveryCopy, idPrefix, }: BrandGenerationStartProps): import("react/jsx-runtime").JSX.Element;
49
+ //# sourceMappingURL=brand-generation-start.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"brand-generation-start.d.ts","sourceRoot":"","sources":["../../src/brand/brand-generation-start.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,kCAAkC,CAAC;AACpF,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;CAC9E;AAED,eAAO,MAAM,mCAAmC,EAAE,wBASjD,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,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,IAAI,EACJ,YAAY,EACZ,QAAQ,GACT,EAAE,yBAAyB,2CAmE3B"}
@@ -0,0 +1,48 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useId } from "react";
3
+ import { Button } from "../components/button.js";
4
+ import { Input } from "../components/input.js";
5
+ import { BrandGenerationRecovery } from "./brand-generation-recovery.js";
6
+ export const DEFAULT_BRAND_GENERATION_START_COPY = {
7
+ websiteUrlLabel: "Website URL",
8
+ urlPlaceholder: "https://your-winery.com",
9
+ generateAction: "Generate Profile",
10
+ orSeparator: "or",
11
+ createManuallyAction: "Create manually",
12
+ eligibilityUnknownReason: "Generation is not available right now.",
13
+ eligibilityUnknownReasonWithDate: (formattedDate) => `Generation is not available right now. Try again after ${formattedDate}.`,
14
+ };
15
+ const IMPORTER_PLACEHOLDER = "https://your-company.com";
16
+ /**
17
+ * CEL-2127 — the idle "no brand profile yet" start form shared by producer and
18
+ * importer: website URL, the brand-coloured "Generate Profile", the "or"
19
+ * separator and "Create manually".
20
+ *
21
+ * Cooldown, active-attempt and retry-limit eligibility block a FRESH start too
22
+ * (it is org-level, not conditioned on a profile existing), so the form is
23
+ * disabled and the reason is shown rather than letting a start 409 unexplained.
24
+ * A blocked state with no known reason still gets a fallback notice.
25
+ */
26
+ export function BrandGenerationStart({ persona = "producer", eligibility, generationUrl, onGenerationUrlChange, onStart, onCreateManually, formatDateTime, copy, recoveryCopy, idPrefix, }) {
27
+ const generatedId = useId();
28
+ const prefix = idPrefix ?? `brand-generation-idle-${generatedId}`;
29
+ const defaults = persona === "importer"
30
+ ? { ...DEFAULT_BRAND_GENERATION_START_COPY, urlPlaceholder: IMPORTER_PLACEHOLDER }
31
+ : DEFAULT_BRAND_GENERATION_START_COPY;
32
+ const text = { ...defaults, ...copy };
33
+ const canStart = eligibility?.canStart !== false;
34
+ const trimmedUrl = generationUrl.trim();
35
+ const blockedMessage = eligibility?.nextEligibleAt
36
+ ? text.eligibilityUnknownReasonWithDate(formatDateTime(eligibility.nextEligibleAt))
37
+ : text.eligibilityUnknownReason;
38
+ return (_jsxs("div", { className: "mt-8 flex flex-col items-center gap-4", children: [eligibility && !canStart ? (_jsx("div", { id: `${prefix}-notice`, className: "w-full max-w-md", children: eligibility.reason ? (_jsx(BrandGenerationRecovery, { eligibility: eligibility, formatDateTime: formatDateTime, copy: recoveryCopy, idPrefix: prefix })) : (
39
+ // `BrandGenerationRecovery` renders only for a known `reason`, and
40
+ // an unrecognised one parses to `null`: without this the form would
41
+ // 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-center gap-2", onSubmit: (event) => {
43
+ event.preventDefault();
44
+ if (trimmedUrl && canStart)
45
+ onStart(trimmedUrl);
46
+ }, children: [_jsx(Input, { "aria-label": text.websiteUrlLabel, type: "url", placeholder: text.urlPlaceholder, value: generationUrl, onChange: (event) => onGenerationUrlChange(event.target.value), className: "flex-1", disabled: !canStart, "aria-describedby": eligibility && !canStart ? `${prefix}-notice` : undefined, required: true }), _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
+ }
48
+ //# sourceMappingURL=brand-generation-start.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"brand-generation-start.js","sourceRoot":"","sources":["../../src/brand/brand-generation-start.tsx"],"names":[],"mappings":"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"}
@@ -54,7 +54,9 @@ export interface BrandImageChooserProps {
54
54
  * Fires once a crop is confirmed, for either a picked candidate or a
55
55
  * fresh upload. The caller owns persistence; an optional `operationId`
56
56
  * on the resolved value lets a later `operationResult` prop update be
57
- * correlated back to this specific call.
57
+ * correlated back to this specific call. Reject to signal failure: the
58
+ * crop dialog stays open for a retry and the rejection is not rethrown, so
59
+ * the caller reports the failure itself.
58
60
  */
59
61
  readonly onApply: (result: ImageCropConfirm & {
60
62
  readonly source: BrandImageChooserSource;
@@ -1 +1 @@
1
- {"version":3,"file":"brand-image-chooser.d.ts","sourceRoot":"","sources":["../../src/brand/brand-image-chooser.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"brand-image-chooser.d.ts","sourceRoot":"","sources":["../../src/brand/brand-image-chooser.tsx"],"names":[],"mappings":"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"}
@@ -75,6 +75,12 @@ export function BrandImageChooser({ target, candidates, unavailableCandidates =
75
75
  const applied = await onApply({ ...result, source: pendingSource });
76
76
  currentOperationIdRef.current = applied?.operationId;
77
77
  }
78
+ catch {
79
+ // A rejected `onApply` is the caller's failure to report (its own toast
80
+ // or error state). The crop dialog stays open for a retry; rethrowing
81
+ // here would only surface as an unhandled rejection from the dialog's
82
+ // submit handler.
83
+ }
78
84
  finally {
79
85
  setApplying(false);
80
86
  }
@@ -88,7 +94,7 @@ export function BrandImageChooser({ target, candidates, unavailableCandidates =
88
94
  !busy &&
89
95
  !failed &&
90
96
  !indeterminate &&
91
- operationResult?.status === "saved" ? (_jsxs("p", { role: "status", className: "flex items-center gap-2 text-sm/6 text-[var(--tone-success-fg)]", children: [_jsx(CheckIcon, { className: "size-4", "aria-hidden": "true" }), c.savedStatus] })) : null, candidates.length === 0 && unavailableCandidates.length === 0 ? (_jsxs("div", { className: "flex flex-col items-start gap-3 rounded-xl border border-dashed border-border/70 bg-muted/20 p-5", children: [_jsxs("div", { children: [_jsx("p", { className: "text-sm/6 font-semibold text-foreground", children: c.emptyStateHeading }), _jsx("p", { className: "mt-1 text-sm/6 text-muted-foreground", children: c.emptyStateBody })] }), _jsxs("div", { className: "flex flex-wrap gap-2", children: [_jsxs("button", { type: "button", onClick: () => inputRef.current?.click(), className: "inline-flex min-h-11 items-center gap-1.5 rounded-lg bg-primary px-3.5 py-2 text-sm/5 font-medium text-primary-foreground hover:bg-primary/90", children: [_jsx(UploadIcon, { className: "size-4", "aria-hidden": "true" }), c.uploadAction] }), onCreateManually ? (_jsx("button", { type: "button", onClick: onCreateManually, className: "inline-flex min-h-11 items-center rounded-lg border border-border bg-background px-3.5 py-2 text-sm/5 font-medium text-foreground hover:bg-muted", children: c.createManuallyAction })) : null] })] })) : (_jsxs(_Fragment, { children: [_jsx(BrandImageSourcePicker, { candidates: candidates, unavailableCandidates: unavailableCandidates, onSelect: handleCandidateSelect, target: target, copy: copy, allowedImageOrigins: allowedImageOrigins }), _jsxs("button", { type: "button", onClick: () => inputRef.current?.click(), className: "inline-flex min-h-11 items-center gap-1.5 self-start rounded-lg border border-border bg-background px-3.5 py-2 text-sm/5 font-medium text-foreground hover:bg-muted focus-visible:outline-hidden focus-visible:ring-3 focus-visible:ring-ring/70", children: [_jsx(UploadIcon, { className: "size-4", "aria-hidden": "true" }), c.uploadNewAction] })] })), _jsx("input", { ref: inputRef, type: "file", accept: uploadAccept, tabIndex: -1, className: "sr-only", "aria-label": c.uploadAction, onChange: (event) => {
97
+ (operationResult?.status === "saved" || operationResult?.status === "passed") ? (_jsxs("p", { role: "status", className: "flex items-center gap-2 text-sm/6 text-[var(--tone-success-fg)]", children: [_jsx(CheckIcon, { className: "size-4", "aria-hidden": "true" }), operationResult?.status === "passed" ? c.passedStatus : c.savedStatus] })) : null, candidates.length === 0 && unavailableCandidates.length === 0 ? (_jsxs("div", { className: "flex flex-col items-start gap-3 rounded-xl border border-dashed border-border/70 bg-muted/20 p-5", children: [_jsxs("div", { children: [_jsx("p", { className: "text-sm/6 font-semibold text-foreground", children: c.emptyStateHeading }), _jsx("p", { className: "mt-1 text-sm/6 text-muted-foreground", children: c.emptyStateBody })] }), _jsxs("div", { className: "flex flex-wrap gap-2", children: [_jsxs("button", { type: "button", onClick: () => inputRef.current?.click(), className: "inline-flex min-h-11 items-center gap-1.5 rounded-lg bg-primary px-3.5 py-2 text-sm/5 font-medium text-primary-foreground hover:bg-primary/90", children: [_jsx(UploadIcon, { className: "size-4", "aria-hidden": "true" }), c.uploadAction] }), onCreateManually ? (_jsx("button", { type: "button", onClick: onCreateManually, className: "inline-flex min-h-11 items-center rounded-lg border border-border bg-background px-3.5 py-2 text-sm/5 font-medium text-foreground hover:bg-muted", children: c.createManuallyAction })) : null] })] })) : (_jsxs(_Fragment, { children: [_jsx(BrandImageSourcePicker, { candidates: candidates, unavailableCandidates: unavailableCandidates, onSelect: handleCandidateSelect, target: target, copy: copy, allowedImageOrigins: allowedImageOrigins }), _jsxs("button", { type: "button", onClick: () => inputRef.current?.click(), className: "inline-flex min-h-11 items-center gap-1.5 self-start rounded-lg border border-border bg-background px-3.5 py-2 text-sm/5 font-medium text-foreground hover:bg-muted focus-visible:outline-hidden focus-visible:ring-3 focus-visible:ring-ring/70", children: [_jsx(UploadIcon, { className: "size-4", "aria-hidden": "true" }), c.uploadNewAction] })] })), _jsx("input", { ref: inputRef, type: "file", accept: uploadAccept, tabIndex: -1, className: "sr-only", "aria-label": c.uploadAction, onChange: (event) => {
92
98
  const file = event.target.files?.[0];
93
99
  if (file)
94
100
  handleFileChosen(file);
@@ -1 +1 @@
1
- {"version":3,"file":"brand-image-chooser.js","sourceRoot":"","sources":["../../src/brand/brand-image-chooser.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"brand-image-chooser.js","sourceRoot":"","sources":["../../src/brand/brand-image-chooser.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AACnF,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC3D,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAClC,OAAO,EAAE,eAAe,EAAyB,MAAM,mCAAmC,CAAC;AAG3F,OAAO,EACL,2BAA2B,EAC3B,kCAAkC,EAClC,4BAA4B,GAE7B,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,sBAAsB,GAEvB,MAAM,6BAA6B,CAAC;AAuCrC,MAAM,oBAAoB,GAkBtB;IACF,iBAAiB,EAAE,qBAAqB;IACxC,cAAc,EAAE,oEAAoE;IACpF,YAAY,EAAE,iBAAiB;IAC/B,eAAe,EAAE,0BAA0B;IAC3C,oBAAoB,EAAE,2BAA2B;IACjD,cAAc,EAAE,sBAAsB;IACtC,WAAW,EAAE,OAAO;IACpB,YAAY,EAAE,mBAAmB;IACjC,cAAc,EAAE,4BAA4B;IAC5C,WAAW,EACT,2FAA2F;IAC7F,eAAe,EAAE,6BAA6B;IAC9C,YAAY,EAAE,sBAAsB;IACpC,WAAW,EAAE,WAAW;IACxB,aAAa,EAAE,SAAS;CACzB,CAAC;AAiDF;;;;;;;;GAQG;AACH,MAAM,UAAU,iBAAiB,CAAC,EAChC,MAAM,EACN,UAAU,EACV,qBAAqB,GAAG,EAAE,EAC1B,mBAAmB,EACnB,IAAI,EACJ,SAAS,EACT,UAAU,EACV,gBAAgB,EAChB,cAAc,EACd,UAAU,EACV,OAAO,EACP,gBAAgB,EAChB,YAAY,GAAG,SAAS,EACxB,eAAe,EACf,OAAO,EACP,SAAS,GACc;IACvB,MAAM,CAAC,GAAG,EAAE,GAAG,oBAAoB,EAAE,GAAG,IAAI,EAAE,CAAC;IAC/C,MAAM,SAAS,GAAG,KAAK,EAAE,CAAC;IAC1B,MAAM,QAAQ,GAAG,MAAM,CAAmB,IAAI,CAAC,CAAC;IAChD,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,QAAQ,CAAiC,IAAI,CAAC,CAAC;IACzF,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAChD,MAAM,qBAAqB,GAAG,MAAM,CAAqB,SAAS,CAAC,CAAC;IAEpE,MAAM,eAAe,GACnB,eAAe,IAAI,IAAI;QACvB,CAAC,qBAAqB,CAAC,OAAO,KAAK,SAAS;YAC1C,eAAe,CAAC,WAAW,KAAK,qBAAqB,CAAC,OAAO,CAAC,CAAC;IACnE,MAAM,OAAO,GAAG,eAAe,IAAI,4BAA4B,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;IACxF,MAAM,MAAM,GAAG,eAAe,IAAI,2BAA2B,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;IACtF,sEAAsE;IACtE,wEAAwE;IACxE,mEAAmE;IACnE,mEAAmE;IACnE,MAAM,aAAa,GACjB,eAAe,IAAI,kCAAkC,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;IAChF,MAAM,IAAI,GAAG,QAAQ,IAAI,CAAC,eAAe,IAAI,eAAe,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC;IAEpF;;;;;;;qDAOiD;IACjD,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,OAAO;YAAE,gBAAgB,CAAC,IAAI,CAAC,CAAC;IACtC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IACd,qDAAqD;IAErD,MAAM,qBAAqB,GAAG,CAAC,SAA8B,EAAE,EAAE;QAC/D,gBAAgB,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC,CAAC;IACrD,CAAC,CAAC;IAEF,MAAM,gBAAgB,GAAG,CAAC,IAAU,EAAE,EAAE;QACtC,gBAAgB,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7C,CAAC,CAAC;IAEF,MAAM,aAAa,GAAG,KAAK,EAAE,MAAwB,EAAE,EAAE;QACvD,IAAI,CAAC,aAAa;YAAE,OAAO;QAC3B,WAAW,CAAC,IAAI,CAAC,CAAC;QAClB,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,EAAE,GAAG,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,CAAC;YACpE,qBAAqB,CAAC,OAAO,GAAG,OAAO,EAAE,WAAW,CAAC;QACvD,CAAC;QAAC,MAAM,CAAC;YACP,wEAAwE;YACxE,sEAAsE;YACtE,sEAAsE;YACtE,kBAAkB;QACpB,CAAC;gBAAS,CAAC;YACT,WAAW,CAAC,KAAK,CAAC,CAAC;QACrB,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,UAAU,GAAG,aAAa;QAC9B,CAAC,CAAC,aAAa,CAAC,IAAI,KAAK,QAAQ;YAC/B,CAAC,CAAC,EAAE,IAAI,EAAE,aAAa,CAAC,IAAI,EAAE;YAC9B,CAAC,CAAC,EAAE,GAAG,EAAE,aAAa,CAAC,SAAS,CAAC,UAAU,EAAE;QAC/C,CAAC,CAAC,IAAI,CAAC;IAET,OAAO,CACL,eAAK,SAAS,EAAE,EAAE,CAAC,qBAAqB,EAAE,SAAS,CAAC,qBAAmB,SAAS,aAC9E,aAAI,EAAE,EAAE,SAAS,EAAE,SAAS,EAAC,SAAS,6BAEjC,EAEJ,MAAM,CAAC,CAAC,CAAC,CACR,eACE,IAAI,EAAC,OAAO,EACZ,SAAS,EAAC,0GAA0G,aAEpH,eAAK,SAAS,EAAC,0BAA0B,aACvC,KAAC,eAAe,IACd,SAAS,EAAC,qDAAqD,iBACnD,MAAM,GAClB,EACF,eAAK,SAAS,EAAC,SAAS,aACtB,YAAG,SAAS,EAAC,sDAAsD,YAChE,eAAe,EAAE,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,GAC1E,EACH,eAAe,EAAE,MAAM,CAAC,CAAC,CAAC,CACzB,YAAG,SAAS,EAAC,+CAA+C,YACzD,eAAe,CAAC,MAAM,GACrB,CACL,CAAC,CAAC,CAAC,IAAI,IACJ,IACF,EACN,eAAK,SAAS,EAAC,YAAY,aACxB,OAAO,CAAC,CAAC,CAAC,CACT,iBACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,OAAO,EAChB,SAAS,EAAC,yHAAyH,YAElI,CAAC,CAAC,WAAW,GACP,CACV,CAAC,CAAC,CAAC,IAAI,EACP,SAAS,CAAC,CAAC,CAAC,CACX,iBACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,SAAS,EAClB,SAAS,EAAC,4FAA4F,YAErG,CAAC,CAAC,aAAa,GACT,CACV,CAAC,CAAC,CAAC,IAAI,IACJ,IACF,CACP,CAAC,CAAC,CAAC,IAAI,EAEP,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CACjB,aAAG,IAAI,EAAC,QAAQ,EAAC,SAAS,EAAC,yDAAyD,aAClF,KAAC,WAAW,IAAC,SAAS,EAAC,qBAAqB,iBAAa,MAAM,GAAG,EACjE,CAAC,CAAC,cAAc,IACf,CACL,CAAC,CAAC,CAAC,IAAI,EAEP,aAAa,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAC1B,eACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,qEAAqE,aAE/E,YAAG,SAAS,EAAC,yCAAyC,YAAE,CAAC,CAAC,cAAc,GAAK,EAC7E,YAAG,SAAS,EAAC,iCAAiC,YAAE,CAAC,CAAC,WAAW,GAAK,EAClE,eAAK,SAAS,EAAC,YAAY,aACxB,OAAO,CAAC,CAAC,CAAC,CACT,iBACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,OAAO,EAChB,SAAS,EAAC,yHAAyH,YAElI,CAAC,CAAC,WAAW,GACP,CACV,CAAC,CAAC,CAAC,IAAI,EACP,SAAS,CAAC,CAAC,CAAC,CACX,iBACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,SAAS,EAClB,SAAS,EAAC,4FAA4F,YAErG,CAAC,CAAC,aAAa,GACT,CACV,CAAC,CAAC,CAAC,IAAI,IACJ,IACF,CACP,CAAC,CAAC,CAAC,IAAI,EAEP,eAAe;gBAChB,CAAC,IAAI;gBACL,CAAC,MAAM;gBACP,CAAC,aAAa;gBACd,CAAC,eAAe,EAAE,MAAM,KAAK,OAAO,IAAI,eAAe,EAAE,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAC9E,aACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,iEAAiE,aAE3E,KAAC,SAAS,IAAC,SAAS,EAAC,QAAQ,iBAAa,MAAM,GAAG,EAClD,eAAe,EAAE,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,IACpE,CACL,CAAC,CAAC,CAAC,IAAI,EAEP,UAAU,CAAC,MAAM,KAAK,CAAC,IAAI,qBAAqB,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAC/D,eAAK,SAAS,EAAC,kGAAkG,aAC/G,0BACE,YAAG,SAAS,EAAC,yCAAyC,YAAE,CAAC,CAAC,iBAAiB,GAAK,EAChF,YAAG,SAAS,EAAC,sCAAsC,YAAE,CAAC,CAAC,cAAc,GAAK,IACtE,EACN,eAAK,SAAS,EAAC,sBAAsB,aACnC,kBACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,KAAK,EAAE,EACxC,SAAS,EAAC,+IAA+I,aAEzJ,KAAC,UAAU,IAAC,SAAS,EAAC,QAAQ,iBAAa,MAAM,GAAG,EACnD,CAAC,CAAC,YAAY,IACR,EACR,gBAAgB,CAAC,CAAC,CAAC,CAClB,iBACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,gBAAgB,EACzB,SAAS,EAAC,kJAAkJ,YAE3J,CAAC,CAAC,oBAAoB,GAChB,CACV,CAAC,CAAC,CAAC,IAAI,IACJ,IACF,CACP,CAAC,CAAC,CAAC,CACF,8BACE,KAAC,sBAAsB,IACrB,UAAU,EAAE,UAAU,EACtB,qBAAqB,EAAE,qBAAqB,EAC5C,QAAQ,EAAE,qBAAqB,EAC/B,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,IAAI,EACV,mBAAmB,EAAE,mBAAmB,GACxC,EACF,kBACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,KAAK,EAAE,EACxC,SAAS,EAAC,kPAAkP,aAE5P,KAAC,UAAU,IAAC,SAAS,EAAC,QAAQ,iBAAa,MAAM,GAAG,EACnD,CAAC,CAAC,eAAe,IACX,IACR,CACJ,EAED,gBACE,GAAG,EAAE,QAAQ,EACb,IAAI,EAAC,MAAM,EACX,MAAM,EAAE,YAAY,EACpB,QAAQ,EAAE,CAAC,CAAC,EACZ,SAAS,EAAC,SAAS,gBACP,CAAC,CAAC,YAAY,EAC1B,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE;oBAClB,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;oBACrC,IAAI,IAAI;wBAAE,gBAAgB,CAAC,IAAI,CAAC,CAAC;oBACjC,KAAK,CAAC,MAAM,CAAC,KAAK,GAAG,EAAE,CAAC;gBAC1B,CAAC,GACD,EAED,UAAU,CAAC,CAAC,CAAC,CACZ,KAAC,eAAe,IACd,IAAI,EAAE,aAAa,KAAK,IAAI,KACxB,UAAU,EACd,MAAM,EAAE,UAAU,EAClB,YAAY,EAAE,gBAAgB,EAC9B,UAAU,EAAE,cAAc,EAC1B,MAAM,EAAE,UAAU,EAClB,SAAS,EAAE,aAAa,EACxB,QAAQ,EAAE,GAAG,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,GACtC,CACH,CAAC,CAAC,CAAC,IAAI,IACJ,CACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1,37 @@
1
+ import type { BrandImageChooserCopy } from "./brand-image-chooser.js";
2
+ import type { BrandImageCandidateSet } from "./brand-image-candidates.js";
3
+ import type { BrandAssetsApi } from "./brand-assets-api.js";
4
+ import type { BrandWorkspaceNotice } from "./use-brand-profile-acceptance.js";
5
+ export interface BrandImageChoosersCopy {
6
+ readonly avatarLabel: string;
7
+ readonly bannerLabel: string;
8
+ readonly uploadRequiresProfile: string;
9
+ readonly uploadFailed: string;
10
+ readonly logoUploaded: string;
11
+ readonly bannerUploaded: string;
12
+ /** Passed through to both `BrandImageChooser`s. */
13
+ readonly chooser?: BrandImageChooserCopy;
14
+ }
15
+ export declare const DEFAULT_BRAND_IMAGE_CHOOSERS_COPY: BrandImageChoosersCopy;
16
+ export interface BrandImageChoosersProps {
17
+ /** `null` before a profile exists (manual create): uploads are refused, not sent. */
18
+ readonly brandProfileId: string | null;
19
+ readonly avatarCandidateSet: BrandImageCandidateSet;
20
+ readonly bannerCandidateSet: BrandImageCandidateSet;
21
+ readonly allowedImageOrigins: readonly string[];
22
+ /** Persistence. Wrap `BrandAssetsApi.upload` to add cache invalidation. */
23
+ readonly assetsApi: Pick<BrandAssetsApi, "upload" | "fetchModeration">;
24
+ readonly notify?: (notice: BrandWorkspaceNotice) => void;
25
+ readonly copy?: Partial<BrandImageChoosersCopy>;
26
+ }
27
+ /**
28
+ * CEL-2127 — the logo + banner choosers of the brand workspace. Mount with a
29
+ * `key` of the profile id so a profile switch (org switch, or the target
30
+ * flipping between approved profile and generated draft) remounts it and no
31
+ * stale "checking"/"saved" moderation state leaks across profiles.
32
+ *
33
+ * It owns persistence (the upload call) and correlating the moderation verdict
34
+ * back to the chooser. It must sit inside a `ModerationVerdictProvider`.
35
+ */
36
+ export declare function BrandImageChoosers({ brandProfileId, avatarCandidateSet, bannerCandidateSet, allowedImageOrigins, assetsApi, notify, copy, }: BrandImageChoosersProps): import("react/jsx-runtime").JSX.Element;
37
+ //# sourceMappingURL=brand-image-choosers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"brand-image-choosers.d.ts","sourceRoot":"","sources":["../../src/brand/brand-image-choosers.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAEV,qBAAqB,EAEtB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AACvE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAMzD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AAK3E,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,qBAAqB,EAAE,MAAM,CAAC;IACvC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,mDAAmD;IACnD,QAAQ,CAAC,OAAO,CAAC,EAAE,qBAAqB,CAAC;CAC1C;AAED,eAAO,MAAM,iCAAiC,EAAE,sBAO/C,CAAC;AAEF,MAAM,WAAW,uBAAuB;IACtC,qFAAqF;IACrF,QAAQ,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IACvC,QAAQ,CAAC,kBAAkB,EAAE,sBAAsB,CAAC;IACpD,QAAQ,CAAC,kBAAkB,EAAE,sBAAsB,CAAC;IACpD,QAAQ,CAAC,mBAAmB,EAAE,SAAS,MAAM,EAAE,CAAC;IAChD,2EAA2E;IAC3E,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC,cAAc,EAAE,QAAQ,GAAG,iBAAiB,CAAC,CAAC;IACvE,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,oBAAoB,KAAK,IAAI,CAAC;IACzD,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,sBAAsB,CAAC,CAAC;CACjD;AAmBD;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,EACjC,cAAc,EACd,kBAAkB,EAClB,kBAAkB,EAClB,mBAAmB,EACnB,SAAS,EACT,MAAM,EACN,IAAI,GACL,EAAE,uBAAuB,2CAoFzB"}