@cellarnode/ui 0.188.0 → 0.189.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 (45) hide show
  1. package/dist/brand/brand-assets-api.d.ts +7 -0
  2. package/dist/brand/brand-assets-api.d.ts.map +1 -1
  3. package/dist/brand/brand-assets-api.js +12 -0
  4. package/dist/brand/brand-assets-api.js.map +1 -1
  5. package/dist/brand/brand-assets-section-copy.d.ts +63 -0
  6. package/dist/brand/brand-assets-section-copy.d.ts.map +1 -0
  7. package/dist/brand/brand-assets-section-copy.js +56 -0
  8. package/dist/brand/brand-assets-section-copy.js.map +1 -0
  9. package/dist/brand/brand-assets-section.d.ts +62 -0
  10. package/dist/brand/brand-assets-section.d.ts.map +1 -0
  11. package/dist/brand/brand-assets-section.js +172 -0
  12. package/dist/brand/brand-assets-section.js.map +1 -0
  13. package/dist/brand/brand-font-family.d.ts +37 -0
  14. package/dist/brand/brand-font-family.d.ts.map +1 -0
  15. package/dist/brand/brand-font-family.js +83 -0
  16. package/dist/brand/brand-font-family.js.map +1 -0
  17. package/dist/brand/brand-font-upload.d.ts +17 -0
  18. package/dist/brand/brand-font-upload.d.ts.map +1 -0
  19. package/dist/brand/brand-font-upload.js +42 -0
  20. package/dist/brand/brand-font-upload.js.map +1 -0
  21. package/dist/brand/index.d.ts +6 -0
  22. package/dist/brand/index.d.ts.map +1 -1
  23. package/dist/brand/index.js +7 -0
  24. package/dist/brand/index.js.map +1 -1
  25. package/dist/brand/scan-page-banner.d.ts +21 -0
  26. package/dist/brand/scan-page-banner.d.ts.map +1 -0
  27. package/dist/brand/scan-page-banner.js +48 -0
  28. package/dist/brand/scan-page-banner.js.map +1 -0
  29. package/dist/brand/use-brand-workspace-concurrency.d.ts +0 -1
  30. package/dist/brand/use-brand-workspace-concurrency.d.ts.map +1 -1
  31. package/dist/brand/use-brand-workspace-concurrency.js +4 -8
  32. package/dist/brand/use-brand-workspace-concurrency.js.map +1 -1
  33. package/dist/moderation/focus-upload-control.d.ts +15 -0
  34. package/dist/moderation/focus-upload-control.d.ts.map +1 -0
  35. package/dist/moderation/focus-upload-control.js +21 -0
  36. package/dist/moderation/focus-upload-control.js.map +1 -0
  37. package/dist/moderation/index.d.ts +1 -0
  38. package/dist/moderation/index.d.ts.map +1 -1
  39. package/dist/moderation/index.js +1 -0
  40. package/dist/moderation/index.js.map +1 -1
  41. package/dist/moderation/moderation-scope.d.ts +31 -0
  42. package/dist/moderation/moderation-scope.d.ts.map +1 -0
  43. package/dist/moderation/moderation-scope.js +109 -0
  44. package/dist/moderation/moderation-scope.js.map +1 -0
  45. package/package.json +5 -1
@@ -0,0 +1,42 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useId, useRef, useState } from "react";
3
+ import { DEFAULT_BRAND_FONT_UPLOAD_COPY, } from "./brand-assets-section-copy.js";
4
+ const ACCEPTED_MIME_TYPES = [
5
+ ".woff2",
6
+ ".woff",
7
+ ".ttf",
8
+ ".otf",
9
+ "font/woff2",
10
+ "font/woff",
11
+ "font/ttf",
12
+ "font/otf",
13
+ ];
14
+ const MAX_FILE_SIZE_BYTES = 5 * 1024 * 1024;
15
+ /** Brand font slot: pick, replace, remove, and warn when no usable family name resolves. */
16
+ export function BrandFontUpload({ asset, familyName, onUpload, onClear, uploading = false, clearing = false, error = null, copy: copyOverrides, }) {
17
+ const copy = { ...DEFAULT_BRAND_FONT_UPLOAD_COPY, ...copyOverrides };
18
+ const inputRef = useRef(null);
19
+ const errorId = useId();
20
+ const [validationError, setValidationError] = useState(null);
21
+ const shownError = validationError ?? error;
22
+ const busy = uploading || clearing;
23
+ const needsFamilyName = asset && !familyName;
24
+ const handleFile = (file) => {
25
+ if (file.size > MAX_FILE_SIZE_BYTES) {
26
+ setValidationError(copy.tooLarge(Math.round(MAX_FILE_SIZE_BYTES / (1024 * 1024))));
27
+ return;
28
+ }
29
+ setValidationError(null);
30
+ onUpload(file);
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: () => {
33
+ setValidationError(null); // else a rejected oversize pick outlives the asset
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) => {
36
+ const file = event.target.files?.[0];
37
+ if (file)
38
+ handleFile(file);
39
+ event.target.value = "";
40
+ } })] })] }));
41
+ }
42
+ //# sourceMappingURL=brand-font-upload.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"brand-font-upload.js","sourceRoot":"","sources":["../../src/brand/brand-font-upload.tsx"],"names":[],"mappings":"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"}
@@ -74,4 +74,10 @@ export { BrandGenerationStart, DEFAULT_BRAND_GENERATION_START_COPY, } from "./br
74
74
  export type { BrandGenerationStartCopy, BrandGenerationStartProps } from "./brand-generation-start.js";
75
75
  export { DEFAULT_BRAND_PROFILE_ACCEPTANCE_COPY, useBrandProfileAcceptance, } from "./use-brand-profile-acceptance.js";
76
76
  export type { BrandProfileAcceptanceCopy, BrandWorkspaceNotice, UseBrandProfileAcceptanceOptions, } from "./use-brand-profile-acceptance.js";
77
+ export { readBrandAssetModeration } from "./brand-assets-api.js";
78
+ export * from "./brand-assets-section.js";
79
+ export * from "./brand-assets-section-copy.js";
80
+ export { BrandFontUpload, type BrandFontUploadProps } from "./brand-font-upload.js";
81
+ export { ScanPageBanner, type ScanPageBannerProps } from "./scan-page-banner.js";
82
+ export { isUsableBrandFontFamily, resolveBrandFontFamily, type BrandVisualFontSources, } from "./brand-font-family.js";
77
83
  //# 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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"}
@@ -62,4 +62,11 @@ export { useBrandImageOperationResult } from "./use-brand-image-operation-result
62
62
  export { BrandImageChoosers, DEFAULT_BRAND_IMAGE_CHOOSERS_COPY } from "./brand-image-choosers.js";
63
63
  export { BrandGenerationStart, DEFAULT_BRAND_GENERATION_START_COPY, } from "./brand-generation-start.js";
64
64
  export { DEFAULT_BRAND_PROFILE_ACCEPTANCE_COPY, useBrandProfileAcceptance, } from "./use-brand-profile-acceptance.js";
65
+ // CEL-2127: shared brand assets section (logos, banner, font, moderation notices).
66
+ export { readBrandAssetModeration } from "./brand-assets-api.js";
67
+ export * from "./brand-assets-section.js";
68
+ export * from "./brand-assets-section-copy.js";
69
+ export { BrandFontUpload } from "./brand-font-upload.js";
70
+ export { ScanPageBanner } from "./scan-page-banner.js";
71
+ export { isUsableBrandFontFamily, resolveBrandFontFamily, } from "./brand-font-family.js";
65
72
  //# sourceMappingURL=index.js.map
@@ -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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"}
@@ -0,0 +1,21 @@
1
+ import { type ScanPageBannerCopy } from "./brand-assets-section-copy.js";
2
+ import type { BrandAsset } from "./types.js";
3
+ export interface ScanPageBannerProps {
4
+ /** The uploaded banner-slot asset, when it has replaced the scrape. */
5
+ asset: BrandAsset | null;
6
+ /** `visual.bannerImage` value: the web scrape's banner, already re-hosted. */
7
+ scrapedUrl: string | null;
8
+ onUpload: (file: File) => void;
9
+ onClear: () => void;
10
+ uploading?: boolean;
11
+ clearing?: boolean;
12
+ /** Server-side failure for this slot, surfaced inline. */
13
+ error?: string | null;
14
+ copy?: Partial<ScanPageBannerCopy>;
15
+ /** Extra origins the preview may load from (non-https dev deployments). https image URLs always pass the shared safety check. */
16
+ allowedImageOrigins?: readonly string[];
17
+ /** Hide the Remove action when the host cannot clear this banner. Default true. */
18
+ canClear?: boolean;
19
+ }
20
+ export declare function ScanPageBanner({ asset, scrapedUrl, onUpload, onClear, uploading, clearing, error, copy: copyOverrides, allowedImageOrigins, canClear, }: ScanPageBannerProps): import("react/jsx-runtime").JSX.Element;
21
+ //# sourceMappingURL=scan-page-banner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scan-page-banner.d.ts","sourceRoot":"","sources":["../../src/brand/scan-page-banner.tsx"],"names":[],"mappings":"AACA,OAAO,EAEL,KAAK,kBAAkB,EACxB,MAAM,6BAA6B,CAAC;AAErC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAiB1C,MAAM,WAAW,mBAAmB;IAClC,uEAAuE;IACvE,KAAK,EAAE,UAAU,GAAG,IAAI,CAAC;IACzB,8EAA8E;IAC9E,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,QAAQ,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;IAC/B,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,0DAA0D;IAC1D,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,IAAI,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACnC,iIAAiI;IACjI,mBAAmB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACxC,mFAAmF;IACnF,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,wBAAgB,cAAc,CAAC,EAC7B,KAAK,EACL,UAAU,EACV,QAAQ,EACR,OAAO,EACP,SAAiB,EACjB,QAAgB,EAChB,KAAY,EACZ,IAAI,EAAE,aAAa,EACnB,mBAAmB,EACnB,QAAe,GAChB,EAAE,mBAAmB,2CAmHrB"}
@@ -0,0 +1,48 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useId, useRef, useState } from "react";
3
+ import { DEFAULT_SCAN_PAGE_BANNER_COPY, } from "./brand-assets-section-copy.js";
4
+ import { BrandSafeImage } from "./brand-safe-image.js";
5
+ /**
6
+ * Org-level banner for the scanned e-label landing (CEL-1234).
7
+ *
8
+ * Not `BrandAssetUploader`, because the banner has two sources (an uploaded
9
+ * asset AND the scraped `visual.bannerImage`, which the scan page falls back
10
+ * to), a clear that empties both, and a full-bleed preview. One banner per
11
+ * brand profile, shown on every scan page of the org.
12
+ *
13
+ * SVG is absent from the accepted types for this slot only (CEL-1283): it can
14
+ * carry arbitrary text, so the backend refuses it for the banner.
15
+ */
16
+ const ACCEPTED_MIME_TYPES = ["image/png", "image/jpeg", "image/webp"];
17
+ /** Mirrors the backend's `BRAND_ASSET_MAX_BYTES`. */
18
+ const MAX_FILE_SIZE_BYTES = 5 * 1024 * 1024;
19
+ export function ScanPageBanner({ asset, scrapedUrl, onUpload, onClear, uploading = false, clearing = false, error = null, copy: copyOverrides, allowedImageOrigins, canClear = true, }) {
20
+ const copy = { ...DEFAULT_SCAN_PAGE_BANNER_COPY, ...copyOverrides };
21
+ const inputRef = useRef(null);
22
+ const errorId = useId();
23
+ const [validationError, setValidationError] = useState(null);
24
+ const shownError = validationError ?? error;
25
+ const currentUrl = asset?.fileUrl ?? scrapedUrl;
26
+ const isScraped = !asset && scrapedUrl !== null;
27
+ const busy = uploading || clearing;
28
+ const handleFile = (file) => {
29
+ if (file.size > MAX_FILE_SIZE_BYTES) {
30
+ setValidationError(copy.tooLarge(Math.round(MAX_FILE_SIZE_BYTES / (1024 * 1024))));
31
+ return;
32
+ }
33
+ if (!ACCEPTED_MIME_TYPES.some((accepted) => accepted === file.type)) {
34
+ setValidationError(copy.unsupported(file.type));
35
+ return;
36
+ }
37
+ setValidationError(null);
38
+ onUpload(file);
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) => {
41
+ const file = event.target.files?.[0];
42
+ if (file)
43
+ handleFile(file);
44
+ // Reset so re-picking the same file still fires `change`.
45
+ event.target.value = "";
46
+ } })] })] }));
47
+ }
48
+ //# sourceMappingURL=scan-page-banner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scan-page-banner.js","sourceRoot":"","sources":["../../src/brand/scan-page-banner.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAChD,OAAO,EACL,6BAA6B,GAE9B,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAGpD;;;;;;;;;;GAUG;AACH,MAAM,mBAAmB,GAAG,CAAC,WAAW,EAAE,YAAY,EAAE,YAAY,CAAU,CAAC;AAC/E,qDAAqD;AACrD,MAAM,mBAAmB,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC;AAoB5C,MAAM,UAAU,cAAc,CAAC,EAC7B,KAAK,EACL,UAAU,EACV,QAAQ,EACR,OAAO,EACP,SAAS,GAAG,KAAK,EACjB,QAAQ,GAAG,KAAK,EAChB,KAAK,GAAG,IAAI,EACZ,IAAI,EAAE,aAAa,EACnB,mBAAmB,EACnB,QAAQ,GAAG,IAAI,GACK;IACpB,MAAM,IAAI,GAAG,EAAE,GAAG,6BAA6B,EAAE,GAAG,aAAa,EAAE,CAAC;IACpE,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,UAAU,GAAG,KAAK,EAAE,OAAO,IAAI,UAAU,CAAC;IAChD,MAAM,SAAS,GAAG,CAAC,KAAK,IAAI,UAAU,KAAK,IAAI,CAAC;IAChD,MAAM,IAAI,GAAG,SAAS,IAAI,QAAQ,CAAC;IAEnC,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,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACpE,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YAChD,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,kBAAkB,aACrE,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,UAAU,CAAC,CAAC,CAAC,CACZ,eAAK,SAAS,EAAC,qBAAqB,aAClC,KAAC,cAAc,IACb,GAAG,EAAE,UAAU,EACf,GAAG,EAAE,IAAI,CAAC,UAAU,EACpB,cAAc,EAAE,mBAAmB,EACnC,SAAS,EAAC,6DAA6D,EACvE,QAAQ,EACN,eACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,+GAA+G,YAExH,IAAI,CAAC,kBAAkB,GACnB,GAET,EACF,eAAK,SAAS,EAAC,6CAA6C,aAC1D,eAAM,SAAS,EAAC,uDAAuD,YACpE,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,QAAQ,IAAI,EAAE,CAAC,GAClD,EACP,iBACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,KAAK,EAAE,EACxC,QAAQ,EAAE,IAAI,EACd,SAAS,EAAC,gIAAgI,YAEzI,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,GACnC,EACR,QAAQ,CAAC,CAAC,CAAC,CACV,iBACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,IAAI,EACd,SAAS,EAAC,gJAAgJ,YAEzJ,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,GAChC,CACV,CAAC,CAAC,CAAC,IAAI,IACJ,IACF,CACP,CAAC,CAAC,CAAC,CACF,kBACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,KAAK,EAAE,sBACtB,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,kBACpC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,EAC3C,QAAQ,EAAE,IAAI,EACd,SAAS,EAAC,yOAAyO,aAEnP,eAAM,SAAS,EAAC,SAAS,YAAE,IAAI,CAAC,UAAU,GAAQ,EAClD,8BAAkB,MAAM,YAAE,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,GAAQ,IACnE,CACV,EAEA,UAAU,CAAC,CAAC,CAAC,CACZ,YACE,IAAI,EAAC,OAAO,EACZ,EAAE,EAAE,OAAO,EACX,SAAS,EAAC,uDAAuD,YAEhE,UAAU,GACT,CACL,CAAC,CAAC,CAAC,IAAI,EAGR,gBACE,GAAG,EAAE,QAAQ,EACb,IAAI,EAAC,MAAM,EACX,MAAM,EAAE,mBAAmB,CAAC,IAAI,CAAC,GAAG,CAAC,EACrC,QAAQ,EAAE,CAAC,CAAC,EACZ,SAAS,EAAC,SAAS,gBACP,IAAI,CAAC,UAAU,EAC3B,QAAQ,EAAE,IAAI,EACd,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE;4BAClB,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;4BACrC,IAAI,IAAI;gCAAE,UAAU,CAAC,IAAI,CAAC,CAAC;4BAC3B,0DAA0D;4BAC1D,KAAK,CAAC,MAAM,CAAC,KAAK,GAAG,EAAE,CAAC;wBAC1B,CAAC,GACD,IACE,IACE,CACX,CAAC;AACJ,CAAC"}
@@ -26,7 +26,6 @@ import type { BrandProfileConflict } from "./brand-profile-form.js";
26
26
  export interface BrandWorkspaceSnapshot {
27
27
  readonly id?: string | null;
28
28
  readonly revision?: number | null;
29
- readonly version?: number | null;
30
29
  readonly updatedAt?: string | null;
31
30
  readonly status?: string | null;
32
31
  readonly profileData?: unknown;
@@ -1 +1 @@
1
- {"version":3,"file":"use-brand-workspace-concurrency.d.ts","sourceRoot":"","sources":["../../src/brand/use-brand-workspace-concurrency.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"use-brand-workspace-concurrency.d.ts","sourceRoot":"","sources":["../../src/brand/use-brand-workspace-concurrency.ts"],"names":[],"mappings":"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"}
@@ -26,20 +26,16 @@ export function classifyBrandProfileApiError(error) {
26
26
  /**
27
27
  * The fields whose movement means "the server changed".
28
28
  *
29
- * `version` is included on purpose. `revision` is the compare-and-swap counter
30
- * of writes to the row, `version` the profile's own content version (importer
31
- * keyed on it; producer did not). A server-side change that bumps `version`
32
- * without a matching `revision` (a regeneration or backfill) still replaces
33
- * what the form is showing, so it must raise the notice. It cannot cause a
34
- * false positive for our own write: that is matched on `revision` before this
35
- * key is consulted, and both move together on a normal save.
29
+ * `version` is deliberately NOT part of the key. The backend's `version` is a
30
+ * constant `"1"` that nothing ever bumps, so it can never signal a change;
31
+ * `revision` is the row's compare-and-swap counter and is what moves on every
32
+ * write (including a regeneration or backfill).
36
33
  */
37
34
  function snapshotKey(orgId, profile) {
38
35
  return JSON.stringify({
39
36
  orgId,
40
37
  id: profile?.id ?? null,
41
38
  revision: profile?.revision ?? null,
42
- version: profile?.version ?? null,
43
39
  updatedAt: profile?.updatedAt ?? null,
44
40
  status: profile?.status ?? null,
45
41
  profileData: profile?.profileData ?? null,
@@ -1 +1 @@
1
- {"version":3,"file":"use-brand-workspace-concurrency.js","sourceRoot":"","sources":["../../src/brand/use-brand-workspace-concurrency.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"use-brand-workspace-concurrency.js","sourceRoot":"","sources":["../../src/brand/use-brand-workspace-concurrency.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * CEL-1320 — the "re-upload" half of an actionable rejection.
3
+ *
4
+ * A rejection panel that names the problem and then leaves the producer to
5
+ * hunt for the control is only half a fix (spec §7: rejection must be
6
+ * ACTIONABLE). Where the upload control already sits next to the panel, the
7
+ * deep link is a scroll plus a focus rather than a route change: the producer
8
+ * ends up on the button with the keyboard already there.
9
+ *
10
+ * `preventScroll` on the focus call is deliberate. `scrollIntoView` has just
11
+ * placed the section where we want it; letting focus scroll again fights that
12
+ * and lands the viewport somewhere neither call intended.
13
+ */
14
+ export declare function focusUploadControl(container: HTMLElement | null): void;
15
+ //# sourceMappingURL=focus-upload-control.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"focus-upload-control.d.ts","sourceRoot":"","sources":["../../src/moderation/focus-upload-control.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,WAAW,GAAG,IAAI,GAAG,IAAI,CAOtE"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * CEL-1320 — the "re-upload" half of an actionable rejection.
3
+ *
4
+ * A rejection panel that names the problem and then leaves the producer to
5
+ * hunt for the control is only half a fix (spec §7: rejection must be
6
+ * ACTIONABLE). Where the upload control already sits next to the panel, the
7
+ * deep link is a scroll plus a focus rather than a route change: the producer
8
+ * ends up on the button with the keyboard already there.
9
+ *
10
+ * `preventScroll` on the focus call is deliberate. `scrollIntoView` has just
11
+ * placed the section where we want it; letting focus scroll again fights that
12
+ * and lands the viewport somewhere neither call intended.
13
+ */
14
+ export function focusUploadControl(container) {
15
+ if (!container)
16
+ return;
17
+ container.scrollIntoView({ behavior: "smooth", block: "center" });
18
+ const control = container.querySelector('button:not([disabled]), [role="button"]:not([aria-disabled="true"])');
19
+ control?.focus({ preventScroll: true });
20
+ }
21
+ //# sourceMappingURL=focus-upload-control.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"focus-upload-control.js","sourceRoot":"","sources":["../../src/moderation/focus-upload-control.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,kBAAkB,CAAC,SAA6B;IAC9D,IAAI,CAAC,SAAS;QAAE,OAAO;IACvB,SAAS,CAAC,cAAc,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;IAClE,MAAM,OAAO,GAAG,SAAS,CAAC,aAAa,CACrC,qEAAqE,CACtE,CAAC;IACF,OAAO,EAAE,KAAK,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;AAC1C,CAAC"}
@@ -7,4 +7,5 @@ export { MODERATION_VERDICT_EVENT_NAME, ModerationVerdictEventSchema, moderation
7
7
  export { GIVE_UP_AFTER_MS, SLOW_AFTER_MS, ModerationVerdictProvider, useModerationCheckControls, useModerationRecorder, useModerationSubjectState, type ModerationCheckControls, type ModerationSubjectState, } from "./moderation-store.js";
8
8
  export { DEFAULT_POLL_INITIAL_DELAY_MS, DEFAULT_POLL_MAX_ATTEMPTS, DEFAULT_POLL_MAX_DELAY_MS, pollDurableVerdict, type DurablePollOptions, } from "./moderation-durable-read.js";
9
9
  export { useModerationOperation, type ModerationOperationState, type ModerationPersistedOutcome, type ModerationPersistedRead, type UseModerationOperationOptions, } from "./moderation-operation.js";
10
+ export { focusUploadControl } from "./focus-upload-control.js";
10
11
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/moderation/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EACL,6BAA6B,EAC7B,4BAA4B,EAC5B,qBAAqB,EACrB,cAAc,EACd,eAAe,EACf,KAAK,0BAA0B,EAC/B,KAAK,iBAAiB,EACtB,KAAK,sBAAsB,EAC3B,KAAK,sBAAsB,GAC5B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,gBAAgB,EAChB,aAAa,EACb,yBAAyB,EACzB,0BAA0B,EAC1B,qBAAqB,EACrB,yBAAyB,EACzB,KAAK,uBAAuB,EAC5B,KAAK,sBAAsB,GAC5B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,6BAA6B,EAC7B,yBAAyB,EACzB,yBAAyB,EACzB,kBAAkB,EAClB,KAAK,kBAAkB,GACxB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,sBAAsB,EACtB,KAAK,wBAAwB,EAC7B,KAAK,0BAA0B,EAC/B,KAAK,uBAAuB,EAC5B,KAAK,6BAA6B,GACnC,MAAM,wBAAwB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/moderation/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EACL,6BAA6B,EAC7B,4BAA4B,EAC5B,qBAAqB,EACrB,cAAc,EACd,eAAe,EACf,KAAK,0BAA0B,EAC/B,KAAK,iBAAiB,EACtB,KAAK,sBAAsB,EAC3B,KAAK,sBAAsB,GAC5B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,gBAAgB,EAChB,aAAa,EACb,yBAAyB,EACzB,0BAA0B,EAC1B,qBAAqB,EACrB,yBAAyB,EACzB,KAAK,uBAAuB,EAC5B,KAAK,sBAAsB,GAC5B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,6BAA6B,EAC7B,yBAAyB,EACzB,yBAAyB,EACzB,kBAAkB,EAClB,KAAK,kBAAkB,GACxB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,sBAAsB,EACtB,KAAK,wBAAwB,EAC7B,KAAK,0BAA0B,EAC/B,KAAK,uBAAuB,EAC5B,KAAK,6BAA6B,GACnC,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC"}
@@ -7,4 +7,5 @@ export { MODERATION_VERDICT_EVENT_NAME, ModerationVerdictEventSchema, moderation
7
7
  export { GIVE_UP_AFTER_MS, SLOW_AFTER_MS, ModerationVerdictProvider, useModerationCheckControls, useModerationRecorder, useModerationSubjectState, } from "./moderation-store.js";
8
8
  export { DEFAULT_POLL_INITIAL_DELAY_MS, DEFAULT_POLL_MAX_ATTEMPTS, DEFAULT_POLL_MAX_DELAY_MS, pollDurableVerdict, } from "./moderation-durable-read.js";
9
9
  export { useModerationOperation, } from "./moderation-operation.js";
10
+ export { focusUploadControl } from "./focus-upload-control.js";
10
11
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/moderation/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EACL,6BAA6B,EAC7B,4BAA4B,EAC5B,qBAAqB,EACrB,cAAc,EACd,eAAe,GAKhB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,gBAAgB,EAChB,aAAa,EACb,yBAAyB,EACzB,0BAA0B,EAC1B,qBAAqB,EACrB,yBAAyB,GAG1B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,6BAA6B,EAC7B,yBAAyB,EACzB,yBAAyB,EACzB,kBAAkB,GAEnB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,sBAAsB,GAKvB,MAAM,wBAAwB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/moderation/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EACL,6BAA6B,EAC7B,4BAA4B,EAC5B,qBAAqB,EACrB,cAAc,EACd,eAAe,GAKhB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,gBAAgB,EAChB,aAAa,EACb,yBAAyB,EACzB,0BAA0B,EAC1B,qBAAqB,EACrB,yBAAyB,GAG1B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,6BAA6B,EAC7B,yBAAyB,EACzB,yBAAyB,EACzB,kBAAkB,GAEnB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,sBAAsB,GAKvB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * CEL-2127: the app-shell moderation scope, lifted from producer's
3
+ * `ModerationScope` + `ModerationVerdictBridge` so producer and importer stop
4
+ * duplicating it.
5
+ *
6
+ * Two layers: `<ModerationVerdictProvider>` is the read model every surface
7
+ * rendering a moderation chip needs; the bridge is the single subscriber for
8
+ * `moderation.verdict` events of ONE org, and renders nothing without an org
9
+ * or an Ably client (`useChannel` throws without one, and apps mount the shell
10
+ * before auth resolves). A 5-minute `rewind` on the `<ChannelProvider>` buys
11
+ * back verdicts that landed between an upload and a remount; it is a backfill,
12
+ * not a cold-load recovery mechanism (surfaces fall back to the durable read).
13
+ *
14
+ * ONE subscription per org, however many scopes mount (two scopes with their
15
+ * own stores would otherwise each open the same channel): scopes register
16
+ * their recorder in a module-level registry, the first registered scope owns
17
+ * the channel, and each verdict is fanned out to every registered recorder.
18
+ * Ownership passes to the next scope when the owner unmounts (the rewind window
19
+ * backfills what landed in between).
20
+ *
21
+ * Separate entry (`@cellarnode/ui/moderation/scope`) so the plain moderation
22
+ * barrel stays free of the `ably` import.
23
+ */
24
+ import { type ReactElement, type ReactNode } from "react";
25
+ export interface ModerationScopeProps {
26
+ /** The org whose verdict channel to subscribe to. Null/empty: provider only, no subscription. */
27
+ readonly orgId: string | null | undefined;
28
+ readonly children: ReactNode;
29
+ }
30
+ export declare function ModerationScope({ orgId, children }: ModerationScopeProps): ReactElement;
31
+ //# sourceMappingURL=moderation-scope.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"moderation-scope.d.ts","sourceRoot":"","sources":["../../src/moderation/moderation-scope.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,OAAO,EAML,KAAK,YAAY,EACjB,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAaf,MAAM,WAAW,oBAAoB;IACnC,iGAAiG;IACjG,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAC1C,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC;CAC9B;AAED,wBAAgB,eAAe,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,oBAAoB,GAAG,YAAY,CAOvF"}
@@ -0,0 +1,109 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ /**
3
+ * CEL-2127: the app-shell moderation scope, lifted from producer's
4
+ * `ModerationScope` + `ModerationVerdictBridge` so producer and importer stop
5
+ * duplicating it.
6
+ *
7
+ * Two layers: `<ModerationVerdictProvider>` is the read model every surface
8
+ * rendering a moderation chip needs; the bridge is the single subscriber for
9
+ * `moderation.verdict` events of ONE org, and renders nothing without an org
10
+ * or an Ably client (`useChannel` throws without one, and apps mount the shell
11
+ * before auth resolves). A 5-minute `rewind` on the `<ChannelProvider>` buys
12
+ * back verdicts that landed between an upload and a remount; it is a backfill,
13
+ * not a cold-load recovery mechanism (surfaces fall back to the durable read).
14
+ *
15
+ * ONE subscription per org, however many scopes mount (two scopes with their
16
+ * own stores would otherwise each open the same channel): scopes register
17
+ * their recorder in a module-level registry, the first registered scope owns
18
+ * the channel, and each verdict is fanned out to every registered recorder.
19
+ * Ownership passes to the next scope when the owner unmounts (the rewind window
20
+ * backfills what landed in between).
21
+ *
22
+ * Separate entry (`@cellarnode/ui/moderation/scope`) so the plain moderation
23
+ * barrel stays free of the `ably` import.
24
+ */
25
+ import { use, useCallback, useEffect, useId, useSyncExternalStore, } from "react";
26
+ import { AblyContext, ChannelProvider } from "ably/react";
27
+ import { useAblyChannel } from "../realtime/use-ably-channel.js";
28
+ import { MODERATION_VERDICT_EVENT_NAME, ModerationVerdictEventSchema, moderationChannelName, } from "./moderation-event.js";
29
+ import { ModerationVerdictProvider, useModerationRecorder } from "./moderation-store.js";
30
+ const REWIND_WINDOW = "5m";
31
+ export function ModerationScope({ orgId, children }) {
32
+ return (_jsxs(ModerationVerdictProvider, { children: [_jsx(ModerationVerdictBridge, { orgId: orgId }), children] }));
33
+ }
34
+ const registry = new Map();
35
+ const registryListeners = new Set();
36
+ function subscribeRegistry(listener) {
37
+ registryListeners.add(listener);
38
+ return () => registryListeners.delete(listener);
39
+ }
40
+ function emitRegistryChange() {
41
+ for (const listener of registryListeners)
42
+ listener();
43
+ }
44
+ function registerRecorder(orgId, registration) {
45
+ registry.set(orgId, [...(registry.get(orgId) ?? []), registration]);
46
+ emitRegistryChange();
47
+ return () => {
48
+ const remaining = (registry.get(orgId) ?? []).filter((entry) => entry !== registration);
49
+ if (remaining.length > 0)
50
+ registry.set(orgId, remaining);
51
+ else
52
+ registry.delete(orgId);
53
+ emitRegistryChange();
54
+ };
55
+ }
56
+ function ownerToken(orgId) {
57
+ return orgId ? (registry.get(orgId)?.[0]?.token ?? null) : null;
58
+ }
59
+ function ModerationVerdictBridge({ orgId, }) {
60
+ const ctx = use(AblyContext);
61
+ const record = useModerationRecorder();
62
+ const token = useId();
63
+ const hasAblyClient = Boolean(ctx?.default?.client);
64
+ // Both gates are load-bearing: ChannelProvider needs a non-empty name, useChannel a client.
65
+ const eligible = Boolean(orgId) && hasAblyClient && record !== null;
66
+ useEffect(() => {
67
+ if (!eligible || !orgId || !record)
68
+ return;
69
+ return registerRecorder(orgId, { token, record });
70
+ }, [eligible, orgId, record, token]);
71
+ const owner = useSyncExternalStore(subscribeRegistry, () => ownerToken(orgId), () => null);
72
+ if (!eligible || !orgId || owner !== token)
73
+ return null;
74
+ return (_jsx(ChannelProvider
75
+ // Fresh mount on org rotation; without the key the channel-name change
76
+ // mutates the provider's internal map in place and accumulates stale entries.
77
+ , { channelName: moderationChannelName(orgId), options: { params: { rewind: REWIND_WINDOW } }, children: _jsx(ModerationVerdictHookMount, { orgId: orgId }) }, orgId));
78
+ }
79
+ function ModerationVerdictHookMount({ orgId }) {
80
+ const onMessage = useCallback(
81
+ // `data` is optional on Ably's `Message`; a name-filtered subscribe still
82
+ // has to survive a message that carries none.
83
+ (msg) => {
84
+ const parsed = ModerationVerdictEventSchema.safeParse(msg.data);
85
+ if (!parsed.success) {
86
+ console.error("[moderation-verdict] dropped malformed verdict event", {
87
+ issues: parsed.error.issues,
88
+ });
89
+ return;
90
+ }
91
+ // Defense in depth: the channel name is the tenant boundary, this second
92
+ // check keeps a misconfigured capability from showing another org's verdict.
93
+ if (parsed.data.orgId !== orgId) {
94
+ console.warn("[moderation-verdict] dropped cross-org verdict", {
95
+ eventOrg: parsed.data.orgId,
96
+ currentOrgId: orgId,
97
+ });
98
+ return;
99
+ }
100
+ for (const entry of registry.get(orgId) ?? [])
101
+ entry.record(parsed.data);
102
+ }, [orgId]);
103
+ useAblyChannel(moderationChannelName(orgId), {
104
+ event: MODERATION_VERDICT_EVENT_NAME,
105
+ subscribe: onMessage,
106
+ });
107
+ return null;
108
+ }
109
+ //# sourceMappingURL=moderation-scope.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"moderation-scope.js","sourceRoot":"","sources":["../../src/moderation/moderation-scope.tsx"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cellarnode/ui",
3
- "version": "0.188.0",
3
+ "version": "0.189.0",
4
4
  "type": "module",
5
5
  "private": false,
6
6
  "packageManager": "pnpm@10.28.2+sha512.41872f037ad22f7348e3b1debbaf7e867cfd448f2726d9cf74c08f19507c31d2c8e7a11525b983febc2df640b5438dee6023ebb1f84ed43cc2d654d2bc326264",
@@ -143,6 +143,10 @@
143
143
  "types": "./dist/moderation/notice.d.ts",
144
144
  "default": "./dist/moderation/notice.js"
145
145
  },
146
+ "./moderation/scope": {
147
+ "types": "./dist/moderation/moderation-scope.d.ts",
148
+ "default": "./dist/moderation/moderation-scope.js"
149
+ },
146
150
  "./realtime/organisation-events": {
147
151
  "types": "./dist/realtime/organisation-events/index.d.ts",
148
152
  "default": "./dist/realtime/organisation-events/index.js"