@cellarnode/ui 0.212.0 → 0.216.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/components/branch-resolution-modal.d.ts.map +1 -1
- package/dist/components/branch-resolution-modal.js +14 -3
- package/dist/components/branch-resolution-modal.js.map +1 -1
- package/dist/components/confirmation/confirmation-card.d.ts.map +1 -1
- package/dist/components/confirmation/confirmation-card.js +5 -5
- package/dist/components/confirmation/confirmation-card.js.map +1 -1
- package/dist/components/extraction-phase-stepper.js +2 -2
- package/dist/components/extraction-phase-stepper.js.map +1 -1
- package/dist/components/image-carousel.d.ts +2 -2
- package/dist/components/image-carousel.d.ts.map +1 -1
- package/dist/components/image-carousel.js +21 -32
- package/dist/components/image-carousel.js.map +1 -1
- package/dist/image-upload/portfolio-config.js +1 -1
- package/dist/image-upload/portfolio-config.js.map +1 -1
- package/dist/nav/app-shell.d.ts.map +1 -1
- package/dist/nav/app-shell.js +18 -3
- package/dist/nav/app-shell.js.map +1 -1
- package/dist/nav/app-sidebar.js +1 -1
- package/dist/nav/app-sidebar.js.map +1 -1
- package/dist/nav/sidebar-nav-group.d.ts.map +1 -1
- package/dist/nav/sidebar-nav-group.js +1 -1
- package/dist/nav/sidebar-nav-group.js.map +1 -1
- package/dist/portfolio/edit-portfolio-dialog.d.ts.map +1 -1
- package/dist/portfolio/edit-portfolio-dialog.js +89 -15
- package/dist/portfolio/edit-portfolio-dialog.js.map +1 -1
- package/dist/portfolio/portfolio-folder-card.d.ts +4 -6
- package/dist/portfolio/portfolio-folder-card.d.ts.map +1 -1
- package/dist/portfolio/portfolio-folder-card.js +20 -10
- package/dist/portfolio/portfolio-folder-card.js.map +1 -1
- package/dist/portfolio/product-kebab-menu.d.ts.map +1 -1
- package/dist/portfolio/product-kebab-menu.js +18 -2
- package/dist/portfolio/product-kebab-menu.js.map +1 -1
- package/dist/portfolio-import/bottle-photos-history.d.ts.map +1 -1
- package/dist/portfolio-import/bottle-photos-history.js +8 -6
- package/dist/portfolio-import/bottle-photos-history.js.map +1 -1
- package/dist/portfolio-import/bottle-photos-status.d.ts.map +1 -1
- package/dist/portfolio-import/bottle-photos-status.js +8 -7
- package/dist/portfolio-import/bottle-photos-status.js.map +1 -1
- package/dist/portfolio-import/confirmations-panel.d.ts.map +1 -1
- package/dist/portfolio-import/confirmations-panel.js +15 -4
- package/dist/portfolio-import/confirmations-panel.js.map +1 -1
- package/dist/portfolio-import/extraction-activity-stream.js +6 -6
- package/dist/portfolio-import/extraction-activity-stream.js.map +1 -1
- package/dist/portfolio-import/import-document-pane.d.ts.map +1 -1
- package/dist/portfolio-import/import-document-pane.js +2 -2
- package/dist/portfolio-import/import-document-pane.js.map +1 -1
- package/dist/portfolio-import/import-job-detail-view.d.ts.map +1 -1
- package/dist/portfolio-import/import-job-detail-view.js +5 -3
- package/dist/portfolio-import/import-job-detail-view.js.map +1 -1
- package/dist/portfolio-import/import-job-panels.js +6 -6
- package/dist/portfolio-import/import-job-panels.js.map +1 -1
- package/dist/portfolio-import/import-job-row.d.ts.map +1 -1
- package/dist/portfolio-import/import-job-row.js +3 -2
- package/dist/portfolio-import/import-job-row.js.map +1 -1
- package/dist/portfolio-import/import-product-progress.js +1 -1
- package/dist/portfolio-import/import-product-progress.js.map +1 -1
- package/dist/portfolio-import/import-products-dialog.d.ts.map +1 -1
- package/dist/portfolio-import/import-products-dialog.js +2 -2
- package/dist/portfolio-import/import-products-dialog.js.map +1 -1
- package/dist/portfolio-import/imports-filter-bar.js +1 -1
- package/dist/portfolio-import/imports-filter-bar.js.map +1 -1
- package/dist/portfolio-import/imports-hub-shell.js +1 -1
- package/dist/portfolio-import/imports-hub-shell.js.map +1 -1
- package/dist/portfolio-import/imports-page-header.js +2 -2
- package/dist/portfolio-import/imports-page-header.js.map +1 -1
- package/dist/portfolio-import/imports-tab-strip.d.ts.map +1 -1
- package/dist/portfolio-import/imports-tab-strip.js +8 -13
- package/dist/portfolio-import/imports-tab-strip.js.map +1 -1
- package/dist/portfolio-import/product-gallery.js +4 -4
- package/dist/portfolio-import/product-gallery.js.map +1 -1
- package/dist/portfolio-import/review-queue-panel.js +1 -1
- package/dist/portfolio-import/review-queue-panel.js.map +1 -1
- package/dist/portfolio-import/session/import-job.d.ts.map +1 -1
- package/dist/portfolio-import/session/import-job.js +25 -6
- package/dist/portfolio-import/session/import-job.js.map +1 -1
- package/dist/portfolio-import/session/import-keys.d.ts +2 -2
- package/dist/portfolio-import/session/import-keys.d.ts.map +1 -1
- package/dist/portfolio-import/session/import-keys.js +2 -2
- package/dist/portfolio-import/session/import-keys.js.map +1 -1
- package/dist/portfolio-import/session/import-start.d.ts.map +1 -1
- package/dist/portfolio-import/session/import-start.js +10 -9
- package/dist/portfolio-import/session/import-start.js.map +1 -1
- package/dist/portfolio-import/session/use-import-detail-recovery.d.ts +3 -0
- package/dist/portfolio-import/session/use-import-detail-recovery.d.ts.map +1 -0
- package/dist/portfolio-import/session/use-import-detail-recovery.js +118 -0
- package/dist/portfolio-import/session/use-import-detail-recovery.js.map +1 -0
- package/dist/product-editor/product-editor-hero.d.ts.map +1 -1
- package/dist/product-editor/product-editor-hero.js +3 -3
- package/dist/product-editor/product-editor-hero.js.map +1 -1
- package/dist/product-editor/product-editor-save-bar.js +5 -5
- package/dist/product-editor/product-editor-save-bar.js.map +1 -1
- package/dist/product-editor/product-editor-surface.d.ts.map +1 -1
- package/dist/product-editor/product-editor-surface.js +4 -3
- package/dist/product-editor/product-editor-surface.js.map +1 -1
- package/dist/product-editor/tabs/product-gallery-tab.d.ts.map +1 -1
- package/dist/product-editor/tabs/product-gallery-tab.js +20 -19
- package/dist/product-editor/tabs/product-gallery-tab.js.map +1 -1
- package/package.json +22 -15
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
import { use, useEffect, useRef } from "react";
|
|
2
|
+
import { useQueryClient } from "@tanstack/react-query";
|
|
3
|
+
import { AblyContext } from "ably/react";
|
|
4
|
+
import { z } from "zod";
|
|
5
|
+
import { reportAblyError } from "../../realtime/ably-error-bus.js";
|
|
6
|
+
import { getAblyRealtimeFromReactContext } from "../../realtime/ably-react-context.js";
|
|
7
|
+
import { useOptionalJobStatusFeed } from "../../realtime/job-status/use-optional-job-status-feed.js";
|
|
8
|
+
import { importSessionKeys } from "./import-keys.js";
|
|
9
|
+
// Existing CEL-194 confirmation wire contract, also consumed by Producer's
|
|
10
|
+
// useConfirmationRealtime. jobId is optional diagnostic context, not a filter.
|
|
11
|
+
const confirmationEventSchema = z.object({
|
|
12
|
+
emissionId: z.string().uuid(),
|
|
13
|
+
orgId: z.string().uuid(),
|
|
14
|
+
pairId: z.string().uuid(),
|
|
15
|
+
kind: z.enum(["pair-created", "pair-resolved", "pair-reconsidered", "pair-auto-resolved"]),
|
|
16
|
+
occurredAt: z.string().datetime({ offset: true }),
|
|
17
|
+
entityId: z.string().uuid().optional(),
|
|
18
|
+
candidateId: z.string().uuid().optional(),
|
|
19
|
+
jobId: z.string().uuid().optional(),
|
|
20
|
+
actorUserId: z.string().uuid().optional(),
|
|
21
|
+
});
|
|
22
|
+
// Invalidating an initial read reuses its pending request. Its older response
|
|
23
|
+
// can then clear the invalidation, so remember one follow-up for this scope.
|
|
24
|
+
function createDetailRefresh(queryClient, queryKey) {
|
|
25
|
+
let active = true;
|
|
26
|
+
let queued = false;
|
|
27
|
+
const invalidate = () => {
|
|
28
|
+
if (active)
|
|
29
|
+
void queryClient.invalidateQueries({ queryKey });
|
|
30
|
+
};
|
|
31
|
+
const settle = () => {
|
|
32
|
+
queued = false;
|
|
33
|
+
invalidate();
|
|
34
|
+
};
|
|
35
|
+
return {
|
|
36
|
+
refresh() {
|
|
37
|
+
if (!active || queued)
|
|
38
|
+
return;
|
|
39
|
+
const query = queryClient.getQueryCache().find({ queryKey, exact: true });
|
|
40
|
+
if (query?.state.data === undefined &&
|
|
41
|
+
query?.state.fetchStatus === "fetching" &&
|
|
42
|
+
query.promise) {
|
|
43
|
+
queued = true;
|
|
44
|
+
void query.promise.then(settle, settle);
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
invalidate();
|
|
48
|
+
}
|
|
49
|
+
},
|
|
50
|
+
dispose() {
|
|
51
|
+
active = false;
|
|
52
|
+
},
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
/** Private recovery for the mounted detail's existing query keys. */
|
|
56
|
+
export function useImportDetailRecovery(orgId, jobId, bottleJobId) {
|
|
57
|
+
const queryClient = useQueryClient();
|
|
58
|
+
const ably = getAblyRealtimeFromReactContext(use(AblyContext));
|
|
59
|
+
const { latest } = useOptionalJobStatusFeed({
|
|
60
|
+
channelName: orgId && bottleJobId ? `org:${orgId}:jobs:bottle-extraction:${bottleJobId}` : "",
|
|
61
|
+
});
|
|
62
|
+
const bottleRefreshRef = useRef(null);
|
|
63
|
+
useEffect(() => {
|
|
64
|
+
if (!orgId || !bottleJobId)
|
|
65
|
+
return;
|
|
66
|
+
const refresh = createDetailRefresh(queryClient, importSessionKeys.bottleJob(orgId, bottleJobId));
|
|
67
|
+
bottleRefreshRef.current = refresh;
|
|
68
|
+
return () => {
|
|
69
|
+
refresh.dispose();
|
|
70
|
+
bottleRefreshRef.current = null;
|
|
71
|
+
};
|
|
72
|
+
}, [orgId, jobId, bottleJobId, queryClient]);
|
|
73
|
+
useEffect(() => {
|
|
74
|
+
// StatusEvent has no org field: the exact org channel owns tenant scope.
|
|
75
|
+
if (!latest || latest.jobId !== bottleJobId || latest.jobType !== "bottle-extraction")
|
|
76
|
+
return;
|
|
77
|
+
bottleRefreshRef.current?.refresh();
|
|
78
|
+
}, [latest, bottleJobId, queryClient]);
|
|
79
|
+
useEffect(() => {
|
|
80
|
+
if (!ably || !orgId)
|
|
81
|
+
return;
|
|
82
|
+
const channel = ably.channels.get(`org:${orgId}:confirmations`);
|
|
83
|
+
const seen = new Set();
|
|
84
|
+
const refresh = createDetailRefresh(queryClient, importSessionKeys.confirmations(orgId, jobId));
|
|
85
|
+
let active = true;
|
|
86
|
+
const listener = (message) => {
|
|
87
|
+
if (!active)
|
|
88
|
+
return;
|
|
89
|
+
const parsed = confirmationEventSchema.safeParse(message.data);
|
|
90
|
+
if (!parsed.success || parsed.data.orgId !== orgId || seen.has(parsed.data.emissionId))
|
|
91
|
+
return;
|
|
92
|
+
if (seen.size >= 200) {
|
|
93
|
+
const oldest = seen.values().next().value;
|
|
94
|
+
if (oldest !== undefined)
|
|
95
|
+
seen.delete(oldest);
|
|
96
|
+
}
|
|
97
|
+
seen.add(parsed.data.emissionId);
|
|
98
|
+
refresh.refresh();
|
|
99
|
+
};
|
|
100
|
+
// Subscription failure leaves the existing five-minute REST fallback in
|
|
101
|
+
// charge. The host owns the client and channel options/reconnect policy.
|
|
102
|
+
try {
|
|
103
|
+
void channel.subscribe("confirmation", listener).catch((error) => {
|
|
104
|
+
if (active)
|
|
105
|
+
reportAblyError(ably, error);
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
catch (error) {
|
|
109
|
+
reportAblyError(ably, error);
|
|
110
|
+
}
|
|
111
|
+
return () => {
|
|
112
|
+
active = false;
|
|
113
|
+
refresh.dispose();
|
|
114
|
+
channel.unsubscribe("confirmation", listener);
|
|
115
|
+
};
|
|
116
|
+
}, [ably, orgId, jobId, queryClient]);
|
|
117
|
+
}
|
|
118
|
+
//# sourceMappingURL=use-import-detail-recovery.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-import-detail-recovery.js","sourceRoot":"","sources":["../../../src/portfolio-import/session/use-import-detail-recovery.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"product-editor-hero.d.ts","sourceRoot":"","sources":["../../src/product-editor/product-editor-hero.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAIpD,MAAM,WAAW,sBAAsB;IACrC,QAAQ,EAAE;QACR,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;QACxB,QAAQ,CAAC,EAAE,WAAW,CAAC;YACrB,EAAE,CAAC,EAAE,MAAM,CAAC;YACZ,IAAI,CAAC,EAAE,MAAM,CAAC;YACd,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;YACrB,SAAS,CAAC,EAAE,MAAM,CAAC;YACnB,QAAQ,CAAC,EAAE,SAAS,CAAC;SACtB,CAAC,CAAC;KACJ,CAAC;IACF,SAAS,CAAC,EAAE;QACV,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACpB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACxB,gBAAgB,EAAE,MAAM,CAAC;QACzB,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC;IACF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,SAAS,EAAE,CAAC;IACxB,YAAY,CAAC,EAAE,SAAS,CAAC;IACzB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;CAChD;AAED,wBAAgB,iBAAiB,CAAC,EAChC,QAAQ,EACR,SAAS,EACT,OAAO,EACP,KAAK,EACL,SAAc,EACd,YAAY,EACZ,SAAS,GACV,EAAE,sBAAsB,
|
|
1
|
+
{"version":3,"file":"product-editor-hero.d.ts","sourceRoot":"","sources":["../../src/product-editor/product-editor-hero.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAIpD,MAAM,WAAW,sBAAsB;IACrC,QAAQ,EAAE;QACR,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;QACxB,QAAQ,CAAC,EAAE,WAAW,CAAC;YACrB,EAAE,CAAC,EAAE,MAAM,CAAC;YACZ,IAAI,CAAC,EAAE,MAAM,CAAC;YACd,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;YACrB,SAAS,CAAC,EAAE,MAAM,CAAC;YACnB,QAAQ,CAAC,EAAE,SAAS,CAAC;SACtB,CAAC,CAAC;KACJ,CAAC;IACF,SAAS,CAAC,EAAE;QACV,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACpB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACxB,gBAAgB,EAAE,MAAM,CAAC;QACzB,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC;IACF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,SAAS,EAAE,CAAC;IACxB,YAAY,CAAC,EAAE,SAAS,CAAC;IACzB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;CAChD;AAED,wBAAgB,iBAAiB,CAAC,EAChC,QAAQ,EACR,SAAS,EACT,OAAO,EACP,KAAK,EACL,SAAc,EACd,YAAY,EACZ,SAAS,GACV,EAAE,sBAAsB,2CA8ExB"}
|
|
@@ -6,8 +6,8 @@ export function ProductEditorHero({ backLink, thumbnail, eyebrow, title, metaIte
|
|
|
6
6
|
const [coverLoadFailed, setCoverLoadFailed] = React.useState(false);
|
|
7
7
|
const backLinkContent = (_jsxs(_Fragment, { children: [_jsx(ArrowLeftIcon, { className: "size-3.5", "aria-hidden": "true" }), backLink.label] }));
|
|
8
8
|
const backLinkClassName = "inline-flex items-center gap-1.5 self-start text-xs font-medium text-muted-foreground transition-colors hover:text-foreground";
|
|
9
|
-
return (_jsxs("div", { className: "relative flex flex-col gap-
|
|
10
|
-
|
|
11
|
-
|
|
9
|
+
return (_jsxs("div", { "data-slot": "product-editor-hero", className: "relative flex flex-col gap-3 sm:gap-4 [@media(max-height:520px)]:gap-2", children: [aboveSlot && _jsx("div", { children: aboveSlot }), backLink.renderAs ? (_jsx(backLink.renderAs, { to: backLink.href, href: backLink.href, onClick: backLink.onNavigate, className: backLinkClassName, children: backLinkContent })) : backLink.href ? (_jsx("a", { href: backLink.href, onClick: backLink.onNavigate, className: backLinkClassName, children: backLinkContent })) : (_jsx("button", { type: "button", onClick: backLink.onNavigate, className: backLinkClassName, children: backLinkContent })), _jsx("div", { className: "rounded-2xl border border-border/70 bg-card p-3 shadow-soft sm:p-5 [@media(max-height:520px)]:p-2", children: _jsxs("div", { className: "flex flex-col gap-4 sm:flex-row sm:items-center sm:justify-between", children: [_jsxs("div", { className: "flex min-w-0 items-center gap-3 sm:gap-4", children: [_jsx("div", { className: "flex size-16 shrink-0 items-center justify-center overflow-hidden rounded-xl border border-border/70 bg-primary-soft/40 p-1.5 shadow-soft sm:size-18 [@media(max-height:520px)]:size-12", children: thumbnail?.url && !coverLoadFailed ? (_jsx("img", { src: thumbnail.url, alt: thumbnail.altText ?? title, className: "size-full object-contain", onError: () => setCoverLoadFailed(true) })) : (_jsx(PortfolioCoverPlaceholder, { entityId: thumbnail?.fallbackEntityId ?? "new", name: thumbnail?.fallbackName ?? title })) }), _jsxs("div", { className: "min-w-0", children: [_jsx("h1", { className: "font-display text-xl font-bold tracking-tight text-foreground sm:text-2xl", children: title }), (eyebrow || metaItems.length > 0) && (_jsxs("div", { className: "mt-1.5 flex flex-wrap items-center gap-2", children: [eyebrow && _jsx("span", { className: "text-sm text-muted-foreground", children: eyebrow }), metaItems.map((item, i) => (
|
|
10
|
+
// eslint-disable-next-line @eslint-react/no-array-index-key
|
|
11
|
+
_jsx(React.Fragment, { children: item }, i)))] }))] })] }), trailingSlot && _jsx("div", { className: "flex shrink-0", children: trailingSlot })] }) })] }));
|
|
12
12
|
}
|
|
13
13
|
//# sourceMappingURL=product-editor-hero.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"product-editor-hero.js","sourceRoot":"","sources":["../../src/product-editor/product-editor-hero.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE7C,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,yBAAyB,EAAE,MAAM,2CAA2C,CAAC;AA6BtF,MAAM,UAAU,iBAAiB,CAAC,EAChC,QAAQ,EACR,SAAS,EACT,OAAO,EACP,KAAK,EACL,SAAS,GAAG,EAAE,EACd,YAAY,EACZ,SAAS,GACc;IACvB,MAAM,CAAC,eAAe,EAAE,kBAAkB,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAEpE,MAAM,eAAe,GAAG,CACtB,8BACE,KAAC,aAAa,IAAC,SAAS,EAAC,UAAU,iBAAa,MAAM,GAAG,EACxD,QAAQ,CAAC,KAAK,IACd,CACJ,CAAC;IAEF,MAAM,iBAAiB,GACrB,+HAA+H,CAAC;IAElI,OAAO,CACL,
|
|
1
|
+
{"version":3,"file":"product-editor-hero.js","sourceRoot":"","sources":["../../src/product-editor/product-editor-hero.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE7C,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,yBAAyB,EAAE,MAAM,2CAA2C,CAAC;AA6BtF,MAAM,UAAU,iBAAiB,CAAC,EAChC,QAAQ,EACR,SAAS,EACT,OAAO,EACP,KAAK,EACL,SAAS,GAAG,EAAE,EACd,YAAY,EACZ,SAAS,GACc;IACvB,MAAM,CAAC,eAAe,EAAE,kBAAkB,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAEpE,MAAM,eAAe,GAAG,CACtB,8BACE,KAAC,aAAa,IAAC,SAAS,EAAC,UAAU,iBAAa,MAAM,GAAG,EACxD,QAAQ,CAAC,KAAK,IACd,CACJ,CAAC;IAEF,MAAM,iBAAiB,GACrB,+HAA+H,CAAC;IAElI,OAAO,CACL,4BACY,qBAAqB,EAC/B,SAAS,EAAC,wEAAwE,aAEjF,SAAS,IAAI,wBAAM,SAAS,GAAO,EAEnC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CACnB,KAAC,QAAQ,CAAC,QAAQ,IAChB,EAAE,EAAE,QAAQ,CAAC,IAAI,EACjB,IAAI,EAAE,QAAQ,CAAC,IAAI,EACnB,OAAO,EAAE,QAAQ,CAAC,UAAU,EAC5B,SAAS,EAAE,iBAAiB,YAE3B,eAAe,GACE,CACrB,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAClB,YAAG,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,CAAC,UAAU,EAAE,SAAS,EAAE,iBAAiB,YAC/E,eAAe,GACd,CACL,CAAC,CAAC,CAAC,CACF,iBAAQ,IAAI,EAAC,QAAQ,EAAC,OAAO,EAAE,QAAQ,CAAC,UAAU,EAAE,SAAS,EAAE,iBAAiB,YAC7E,eAAe,GACT,CACV,EAED,cAAK,SAAS,EAAC,mGAAmG,YAChH,eAAK,SAAS,EAAC,oEAAoE,aACjF,eAAK,SAAS,EAAC,0CAA0C,aACvD,cAAK,SAAS,EAAC,yLAAyL,YACrM,SAAS,EAAE,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CACpC,cACE,GAAG,EAAE,SAAS,CAAC,GAAG,EAClB,GAAG,EAAE,SAAS,CAAC,OAAO,IAAI,KAAK,EAC/B,SAAS,EAAC,0BAA0B,EACpC,OAAO,EAAE,GAAG,EAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC,GACvC,CACH,CAAC,CAAC,CAAC,CACF,KAAC,yBAAyB,IACxB,QAAQ,EAAE,SAAS,EAAE,gBAAgB,IAAI,KAAK,EAC9C,IAAI,EAAE,SAAS,EAAE,YAAY,IAAI,KAAK,GACtC,CACH,GACG,EAEN,eAAK,SAAS,EAAC,SAAS,aACtB,aAAI,SAAS,EAAC,2EAA2E,YACtF,KAAK,GACH,EACJ,CAAC,OAAO,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,CACpC,eAAK,SAAS,EAAC,0CAA0C,aACtD,OAAO,IAAI,eAAM,SAAS,EAAC,+BAA+B,YAAE,OAAO,GAAQ,EAC3E,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC;gDAC1B,4DAA4D;gDAC5D,KAAC,KAAK,CAAC,QAAQ,cAAU,IAAI,IAAR,CAAC,CAAyB,CAChD,CAAC,IACE,CACP,IACG,IACF,EACL,YAAY,IAAI,cAAK,SAAS,EAAC,eAAe,YAAE,YAAY,GAAO,IAChE,GACF,IACF,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -77,9 +77,9 @@ export function ProductEditorSaveBar({ isDirty, isSaving, validationError, valid
|
|
|
77
77
|
errorOccurrences.set(message, occurrence + 1);
|
|
78
78
|
return { key: `${message}:${occurrence}`, message };
|
|
79
79
|
});
|
|
80
|
-
return (_jsxs(_Fragment, { children: [_jsx("span", { "aria-live": "polite", "data-slot": "product-editor-save-bar-status", className: "sr-only", children: statusMessage }), isRendered && (_jsx("div", { ref: barRef, "data-slot": "product-editor-save-bar", inert: !isVisible || undefined, className: cn("static bottom-0 z-50 rounded-t-2xl border border-b-0 border-border/70 bg-background px-4 py-3 shadow-sm min-[20rem]:sticky sm:px-6 sm:py-4", "transition-[transform,opacity] duration-300 ease-in-out motion-reduce:transition-none", isVisible
|
|
80
|
+
return (_jsxs(_Fragment, { children: [_jsx("span", { "aria-live": "polite", "data-slot": "product-editor-save-bar-status", className: "sr-only", children: statusMessage }), isRendered && (_jsx("div", { ref: barRef, "data-slot": "product-editor-save-bar", inert: !isVisible || undefined, className: cn("static bottom-0 z-50 rounded-t-2xl border border-b-0 border-border/70 bg-background px-4 py-3 shadow-sm min-[20rem]:sticky sm:px-6 sm:py-4 [@media(max-height:520px)]:py-2", "transition-[transform,opacity] duration-300 ease-in-out motion-reduce:transition-none", isVisible
|
|
81
81
|
? "translate-y-0 opacity-100"
|
|
82
|
-
: "translate-y-full opacity-0 pointer-events-none", className), children: _jsxs("div", { className: "flex flex-col sm:flex-row sm:items-end
|
|
82
|
+
: "translate-y-full opacity-0 pointer-events-none", className), children: _jsxs("div", { className: "flex flex-col justify-between gap-4 sm:flex-row sm:items-end [@media(max-height:520px)]:gap-2", children: [_jsxs("div", { className: "min-w-0 flex-1 flex flex-col gap-2", children: [validationError && (_jsxs("div", { role: "alert", className: "flex items-start gap-2.5 rounded-lg border px-3 py-2 text-sm/6", style: {
|
|
83
83
|
backgroundColor: "var(--tone-warning-soft)",
|
|
84
84
|
borderColor: "var(--tone-warning-border)",
|
|
85
85
|
color: "var(--tone-warning-fg)",
|
|
@@ -87,14 +87,14 @@ export function ProductEditorSaveBar({ isDirty, isSaving, validationError, valid
|
|
|
87
87
|
backgroundColor: "var(--tone-danger-soft)",
|
|
88
88
|
borderColor: "var(--tone-danger-border)",
|
|
89
89
|
color: "var(--tone-danger-fg)",
|
|
90
|
-
}, children: [_jsx(CircleAlertIcon, { className: "mt-1 size-4 shrink-0", "aria-hidden": "true" }), _jsx("div", { className: "min-w-0 flex-1", children: serverErrors.length === 1 ? (_jsx("p", { children: serverErrors[0] })) : (_jsx("ul", { className: "flex flex-col gap-1", children: keyedServerErrors.map(({ key, message }) => (_jsx("li", { children: message }, key))) })) })] })), !validationError && serverErrors.length === 0 && (_jsxs("div", { className: "flex items-center gap-2 text-sm/6 font-medium text-foreground py-1", children: [_jsx("span", { className: "size-2 rounded-full bg-primary", "aria-hidden": "true" }), tr("productEditor.saveBar.unsavedChanges", "Unsaved changes")] }))] }), _jsxs("div", { className: "flex shrink-0 flex-col items-stretch justify-end gap-2
|
|
90
|
+
}, children: [_jsx(CircleAlertIcon, { className: "mt-1 size-4 shrink-0", "aria-hidden": "true" }), _jsx("div", { className: "min-w-0 flex-1", children: serverErrors.length === 1 ? (_jsx("p", { children: serverErrors[0] })) : (_jsx("ul", { className: "flex flex-col gap-1", children: keyedServerErrors.map(({ key, message }) => (_jsx("li", { children: message }, key))) })) })] })), !validationError && serverErrors.length === 0 && (_jsxs("div", { className: "flex items-center gap-2 text-sm/6 font-medium text-foreground py-1", children: [_jsx("span", { className: "size-2 rounded-full bg-primary", "aria-hidden": "true" }), tr("productEditor.saveBar.unsavedChanges", "Unsaved changes")] }))] }), _jsxs("div", { className: "flex w-full shrink-0 flex-col items-stretch justify-end gap-2 py-1 sm:w-auto sm:flex-row sm:items-center sm:gap-3 [@media(max-height:520px)]:gap-1", children: [_jsx(Button, { plain: true, type: "button", "aria-disabled": isSaving || undefined, onClick: () => {
|
|
91
91
|
if (isSaving)
|
|
92
92
|
return;
|
|
93
93
|
onDiscard();
|
|
94
|
-
}, className: "w-full
|
|
94
|
+
}, className: "h-auto min-h-10 w-full whitespace-normal py-2 text-center sm:h-10 sm:w-auto sm:flex-none sm:whitespace-nowrap sm:py-0", children: tr("productEditor.saveBar.discard", "Discard changes") }), _jsx(Button, { color: "dark/zinc", type: "button", "data-slot": "product-editor-save", "aria-disabled": (!isDirty && serverErrors.length === 0) || isSaving || undefined, onClick: () => {
|
|
95
95
|
if ((!isDirty && serverErrors.length === 0) || isSaving)
|
|
96
96
|
return;
|
|
97
97
|
onSave();
|
|
98
|
-
}, className: "w-full
|
|
98
|
+
}, className: "h-auto min-h-10 w-full whitespace-normal py-2 text-center sm:h-10 sm:w-auto sm:flex-none sm:whitespace-nowrap sm:py-0", children: isSaving ? (_jsxs(_Fragment, { children: [_jsxs("svg", { "aria-hidden": "true", className: "size-4 animate-spin", xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "0 0 24 24", children: [_jsx("circle", { className: "opacity-25", cx: "12", cy: "12", r: "10", stroke: "currentColor", strokeWidth: "4" }), _jsx("path", { className: "opacity-75", fill: "currentColor", d: "M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z" })] }), tr("productEditor.saveBar.saving", "Saving…")] })) : (tr("productEditor.saveBar.save", "Save product changes")) })] })] }) }))] }));
|
|
99
99
|
}
|
|
100
100
|
//# sourceMappingURL=product-editor-save-bar.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"product-editor-save-bar.js","sourceRoot":"","sources":["../../src/product-editor/product-editor-save-bar.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"product-editor-save-bar.js","sourceRoot":"","sources":["../../src/product-editor/product-editor-save-bar.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"product-editor-surface.d.ts","sourceRoot":"","sources":["../../src/product-editor/product-editor-surface.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,IAAI,eAAe,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACtE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAMrD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAOlD,OAAO,KAAK,EACV,sBAAsB,EACtB,kBAAkB,EAClB,gBAAgB,EAChB,sBAAsB,EACvB,MAAM,SAAS,CAAC;AAEjB,eAAO,MAAM,wBAAwB,EAAE,SAAS,gBAAgB,EAO/D,CAAC;AAoBF,UAAU,yBAAyB;IACjC,QAAQ,CAAC,WAAW,EAAE,kBAAkB,CAAC;IACzC,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC,iBAAiB,CAAC,CAAC;IAChD,QAAQ,CAAC,WAAW,EAAE,SAAS,gBAAgB,EAAE,CAAC;IAClD,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;IAC/B,QAAQ,CAAC,iBAAiB,EAAE,SAAS,MAAM,EAAE,CAAC;IAC9C,QAAQ,CAAC,mBAAmB,EAAE,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IAC/D,QAAQ,CAAC,aAAa,EAAE,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IACzD,QAAQ,CAAC,WAAW,EAAE,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IACvD,QAAQ,CAAC,YAAY,EAAE,SAAS,CAAC,sBAAsB,GAAG,IAAI,CAAC,CAAC;IAChE,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,eAAe,KAAK,IAAI,CAAC;IAC3D,QAAQ,CAAC,WAAW,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5C,QAAQ,CAAC,qBAAqB,EAAE,MAAM,IAAI,CAAC;IAC3C,QAAQ,CAAC,mBAAmB,EAAE,CAAC,KAAK,EAAE,sBAAsB,KAAK,IAAI,CAAC;IACtE,QAAQ,CAAC,MAAM,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACrC,QAAQ,CAAC,SAAS,EAAE,MAAM,IAAI,CAAC;CAChC;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,oBAAoB,CAAC,EACnC,WAAW,EACX,IAAI,EACJ,WAAW,EACX,WAAW,EACX,aAAa,EACb,OAAO,EACP,YAAY,EACZ,iBAAiB,EACjB,mBAAmB,EACnB,aAAa,EACb,WAAW,EACX,YAAY,EACZ,cAAc,EACd,WAAW,EACX,qBAAqB,EACrB,mBAAmB,EACnB,MAAM,EACN,SAAS,GACV,EAAE,yBAAyB,
|
|
1
|
+
{"version":3,"file":"product-editor-surface.d.ts","sourceRoot":"","sources":["../../src/product-editor/product-editor-surface.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,IAAI,eAAe,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACtE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAMrD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAOlD,OAAO,KAAK,EACV,sBAAsB,EACtB,kBAAkB,EAClB,gBAAgB,EAChB,sBAAsB,EACvB,MAAM,SAAS,CAAC;AAEjB,eAAO,MAAM,wBAAwB,EAAE,SAAS,gBAAgB,EAO/D,CAAC;AAoBF,UAAU,yBAAyB;IACjC,QAAQ,CAAC,WAAW,EAAE,kBAAkB,CAAC;IACzC,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC,iBAAiB,CAAC,CAAC;IAChD,QAAQ,CAAC,WAAW,EAAE,SAAS,gBAAgB,EAAE,CAAC;IAClD,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;IAC/B,QAAQ,CAAC,iBAAiB,EAAE,SAAS,MAAM,EAAE,CAAC;IAC9C,QAAQ,CAAC,mBAAmB,EAAE,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IAC/D,QAAQ,CAAC,aAAa,EAAE,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IACzD,QAAQ,CAAC,WAAW,EAAE,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IACvD,QAAQ,CAAC,YAAY,EAAE,SAAS,CAAC,sBAAsB,GAAG,IAAI,CAAC,CAAC;IAChE,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,eAAe,KAAK,IAAI,CAAC;IAC3D,QAAQ,CAAC,WAAW,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5C,QAAQ,CAAC,qBAAqB,EAAE,MAAM,IAAI,CAAC;IAC3C,QAAQ,CAAC,mBAAmB,EAAE,CAAC,KAAK,EAAE,sBAAsB,KAAK,IAAI,CAAC;IACtE,QAAQ,CAAC,MAAM,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACrC,QAAQ,CAAC,SAAS,EAAE,MAAM,IAAI,CAAC;CAChC;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,oBAAoB,CAAC,EACnC,WAAW,EACX,IAAI,EACJ,WAAW,EACX,WAAW,EACX,aAAa,EACb,OAAO,EACP,YAAY,EACZ,iBAAiB,EACjB,mBAAmB,EACnB,aAAa,EACb,WAAW,EACX,YAAY,EACZ,cAAc,EACd,WAAW,EACX,qBAAqB,EACrB,mBAAmB,EACnB,MAAM,EACN,SAAS,GACV,EAAE,yBAAyB,2CA4N3B"}
|
|
@@ -60,9 +60,10 @@ const TAB_I18N_KEYS = {
|
|
|
60
60
|
export function ProductEditorSurface({ editorProps, form, orderedTabs, renderedTab, fieldIdPrefix, isDirty, isEditorBusy, saveFailureErrors, saveFailureAlertRef, editorRootRef, tabsListRef, elabelTabRef, onFocusCapture, onTabChange, onNavigateToChemistry, onFocusInvalidField, onSave, onDiscard, }) {
|
|
61
61
|
const { mode, locale, variantId, beverageId, showBeverageFields, requireVintage = false, autoFocusVintage = false, referenceData, classifications, showComposition = false, showProductionVolume = false, imageController, attachments, certificates, awards, certificateRecords, chemistrySection, labelData, onLabelSaveStateChange, qrSection, sensorySchema, sensorySchemaLoading, status, serverError, features, t, className, } = editorProps;
|
|
62
62
|
const tr = t ?? ((_key, fallback) => fallback ?? _key);
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
63
|
+
const activeValidationSummary = (_jsx(ProductEditorValidationSummary, { form: form, sensorySchema: sensorySchema, fieldIdPrefix: fieldIdPrefix, onFocusInvalidField: onFocusInvalidField, t: t }));
|
|
64
|
+
return (_jsxs("div", { ref: editorRootRef, tabIndex: -1, onFocusCapture: onFocusCapture, "data-slot": "product-editor-surface", className: cn("flex min-h-0 min-w-0 flex-col gap-3 outline-hidden sm:gap-4 [@media(max-height:520px)]:gap-2", className), children: [_jsx("fieldset", { disabled: isEditorBusy, className: "contents", children: _jsx("div", { className: "flex min-h-0 min-w-0 flex-1 flex-col", children: _jsx("div", { className: "flex min-h-0 min-w-0 flex-1 flex-col overflow-clip rounded-2xl border border-border bg-card shadow-soft", children: _jsxs(Tabs, { value: renderedTab, onValueChange: onTabChange, className: "min-h-0 flex-1 gap-0", children: [_jsxs("div", { "data-slot": "product-editor-tab-rail", className: "flex shrink-0 flex-col gap-2 border-b border-border/70 bg-muted/30 px-3 py-2 sm:px-4 sm:py-3 [@media(max-height:520px)]:gap-1 [@media(max-height:520px)]:py-2", children: [_jsx(TabsList, { ref: tabsListRef, className: "w-full max-w-full snap-x justify-start overflow-x-auto overscroll-x-contain bg-muted/60 shadow-none", children: orderedTabs.map((tab) => (_jsx(TabsTrigger, { value: tab, className: "snap-start text-foreground", children: tr(TAB_I18N_KEYS[tab], TAB_LABELS[tab]) }, tab))) }), orderedTabs.length > 3 && (_jsxs("p", { className: "flex items-center gap-1.5 text-xs text-muted-foreground sm:hidden [@media(max-height:520px)]:hidden", children: [_jsx(MoveHorizontal, { "aria-hidden": "true", className: "size-4 shrink-0" }), tr("productEditor.tabs.scrollHint", "Swipe to view more sections")] }))] }), orderedTabs.includes("essentials") && (_jsxs(TabsContent, { value: "essentials", className: "mt-0 min-h-0 overflow-y-auto overscroll-contain px-4 py-5 sm:px-6 sm:py-6", children: [renderedTab === "essentials" && activeValidationSummary, _jsx("h2", { className: "sr-only", children: tr(TAB_I18N_KEYS.essentials, TAB_LABELS.essentials) }), _jsx(ProductEssentialsTab, { form: form, locale: locale, beverageId: beverageId, showBeverageFields: showBeverageFields, requireVintage: requireVintage, autoFocusVintage: autoFocusVintage && renderedTab === "essentials", referenceData: referenceData, classifications: classifications, compositionSchema: showComposition ? sensorySchema?.sections?.composition : undefined, showProductionVolume: showProductionVolume, fieldIdPrefix: fieldIdPrefix, t: t })] })), orderedTabs.includes("gallery") && (_jsxs(TabsContent, { value: "gallery", className: "mt-0 min-h-0 overflow-y-auto overscroll-contain px-4 py-5 sm:px-6 sm:py-6", children: [renderedTab === "gallery" && activeValidationSummary, _jsx("h2", { className: "sr-only", children: tr(TAB_I18N_KEYS.gallery, TAB_LABELS.gallery) }), _jsx(ProductGalleryTab, { variantId: variantId, mode: mode, imageController: imageController, t: t })] })), orderedTabs.includes("sensory") && (_jsxs(TabsContent, { value: "sensory", className: "mt-0 min-h-0 overflow-y-auto overscroll-contain px-4 py-5 sm:px-6 sm:py-6", children: [renderedTab === "sensory" && activeValidationSummary, _jsx("h2", { className: "sr-only", children: tr(TAB_I18N_KEYS.sensory, TAB_LABELS.sensory) }), _jsx(ProductSensoryTab, { form: form, sensorySchema: sensorySchema, sensorySchemaLoading: sensorySchemaLoading, fieldIdPrefix: fieldIdPrefix, t: t })] })), orderedTabs.includes("resources") && (_jsxs(TabsContent, { value: "resources", className: "mt-0 min-h-0 overflow-y-auto overscroll-contain px-4 py-5 sm:px-6 sm:py-6", children: [renderedTab === "resources" && activeValidationSummary, _jsx("h2", { className: "sr-only", children: tr(TAB_I18N_KEYS.resources, TAB_LABELS.resources) }), _jsx(ProductResourcesTab, { form: form, variantId: variantId, mode: mode, attachments: attachments, certificates: certificates, awards: awards, certificateRecords: certificateRecords, chemistrySection: chemistrySection, features: features, t: t })] })), orderedTabs.includes("e-label") && (_jsxs(TabsContent, { value: "e-label", forceMount: true, className: "mt-0 min-h-0 overflow-y-auto overscroll-contain px-4 py-5 data-[state=inactive]:hidden sm:px-6 sm:py-6", children: [renderedTab === "e-label" && activeValidationSummary, _jsx("h2", { className: "sr-only", children: tr(TAB_I18N_KEYS["e-label"], TAB_LABELS["e-label"]) }), _jsx(ProductElabelTab, { ref: elabelTabRef, variantId: variantId, mode: mode, labelData: labelData, onSaveStateChange: onLabelSaveStateChange, qrSection: qrSection, onNavigateToChemistry: orderedTabs.includes("resources") && chemistrySection !== undefined
|
|
65
|
+
? onNavigateToChemistry
|
|
66
|
+
: undefined, t: t })] })), orderedTabs.includes("status") && (_jsxs(TabsContent, { value: "status", className: "mt-0 min-h-0 overflow-y-auto overscroll-contain px-4 py-5 sm:px-6 sm:py-6", children: [renderedTab === "status" && activeValidationSummary, _jsx("h2", { className: "sr-only", children: tr(TAB_I18N_KEYS.status, TAB_LABELS.status) }), _jsx(ProductStatusTab, { status: status, features: features, isDirty: isDirty, t: t })] }))] }) }) }) }), _jsx(ProductEditorSaveBar, { isDirty: isDirty, isSaving: isEditorBusy, serverError: serverError && !saveFailureErrors.includes(serverError)
|
|
66
67
|
? [serverError, ...saveFailureErrors]
|
|
67
68
|
: saveFailureErrors, serverErrorRef: saveFailureAlertRef, dismissFocusRef: editorRootRef, onSave: onSave, onDiscard: onDiscard, t: t })] }));
|
|
68
69
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"product-editor-surface.js","sourceRoot":"","sources":["../../src/product-editor/product-editor-surface.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAI9C,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAC9E,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAClC,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,8BAA8B,EAAE,MAAM,qCAAqC,CAAC;AAErF,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAQ7D,MAAM,CAAC,MAAM,wBAAwB,GAAgC;IACnE,YAAY;IACZ,SAAS;IACT,SAAS;IACT,WAAW;IACX,SAAS;IACT,QAAQ;CACT,CAAC;AAEF,MAAM,UAAU,GAA+C;IAC7D,UAAU,EAAE,YAAY;IACxB,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;IAClB,SAAS,EAAE,WAAW;IACtB,SAAS,EAAE,SAAS;IACpB,MAAM,EAAE,QAAQ;CACjB,CAAC;AAEF,MAAM,aAAa,GAA+C;IAChE,UAAU,EAAE,+BAA+B;IAC3C,OAAO,EAAE,4BAA4B;IACrC,OAAO,EAAE,4BAA4B;IACrC,SAAS,EAAE,8BAA8B;IACzC,SAAS,EAAE,4BAA4B;IACvC,MAAM,EAAE,2BAA2B;CACpC,CAAC;AAuBF;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,UAAU,oBAAoB,CAAC,EACnC,WAAW,EACX,IAAI,EACJ,WAAW,EACX,WAAW,EACX,aAAa,EACb,OAAO,EACP,YAAY,EACZ,iBAAiB,EACjB,mBAAmB,EACnB,aAAa,EACb,WAAW,EACX,YAAY,EACZ,cAAc,EACd,WAAW,EACX,qBAAqB,EACrB,mBAAmB,EACnB,MAAM,EACN,SAAS,GACiB;IAC1B,MAAM,EACJ,IAAI,EACJ,MAAM,EACN,SAAS,EACT,UAAU,EACV,kBAAkB,EAClB,cAAc,GAAG,KAAK,EACtB,gBAAgB,GAAG,KAAK,EACxB,aAAa,EACb,eAAe,EACf,eAAe,GAAG,KAAK,EACvB,oBAAoB,GAAG,KAAK,EAC5B,eAAe,EACf,WAAW,EACX,YAAY,EACZ,MAAM,EACN,kBAAkB,EAClB,gBAAgB,EAChB,SAAS,EACT,sBAAsB,EACtB,SAAS,EACT,aAAa,EACb,oBAAoB,EACpB,MAAM,EACN,WAAW,EACX,QAAQ,EACR,CAAC,EACD,SAAS,GACV,GAAG,WAAW,CAAC;IAChB,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,IAAY,EAAE,QAAiB,EAAE,EAAE,CAAC,QAAQ,IAAI,IAAI,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"product-editor-surface.js","sourceRoot":"","sources":["../../src/product-editor/product-editor-surface.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAI9C,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAC9E,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAClC,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,8BAA8B,EAAE,MAAM,qCAAqC,CAAC;AAErF,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAQ7D,MAAM,CAAC,MAAM,wBAAwB,GAAgC;IACnE,YAAY;IACZ,SAAS;IACT,SAAS;IACT,WAAW;IACX,SAAS;IACT,QAAQ;CACT,CAAC;AAEF,MAAM,UAAU,GAA+C;IAC7D,UAAU,EAAE,YAAY;IACxB,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;IAClB,SAAS,EAAE,WAAW;IACtB,SAAS,EAAE,SAAS;IACpB,MAAM,EAAE,QAAQ;CACjB,CAAC;AAEF,MAAM,aAAa,GAA+C;IAChE,UAAU,EAAE,+BAA+B;IAC3C,OAAO,EAAE,4BAA4B;IACrC,OAAO,EAAE,4BAA4B;IACrC,SAAS,EAAE,8BAA8B;IACzC,SAAS,EAAE,4BAA4B;IACvC,MAAM,EAAE,2BAA2B;CACpC,CAAC;AAuBF;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,UAAU,oBAAoB,CAAC,EACnC,WAAW,EACX,IAAI,EACJ,WAAW,EACX,WAAW,EACX,aAAa,EACb,OAAO,EACP,YAAY,EACZ,iBAAiB,EACjB,mBAAmB,EACnB,aAAa,EACb,WAAW,EACX,YAAY,EACZ,cAAc,EACd,WAAW,EACX,qBAAqB,EACrB,mBAAmB,EACnB,MAAM,EACN,SAAS,GACiB;IAC1B,MAAM,EACJ,IAAI,EACJ,MAAM,EACN,SAAS,EACT,UAAU,EACV,kBAAkB,EAClB,cAAc,GAAG,KAAK,EACtB,gBAAgB,GAAG,KAAK,EACxB,aAAa,EACb,eAAe,EACf,eAAe,GAAG,KAAK,EACvB,oBAAoB,GAAG,KAAK,EAC5B,eAAe,EACf,WAAW,EACX,YAAY,EACZ,MAAM,EACN,kBAAkB,EAClB,gBAAgB,EAChB,SAAS,EACT,sBAAsB,EACtB,SAAS,EACT,aAAa,EACb,oBAAoB,EACpB,MAAM,EACN,WAAW,EACX,QAAQ,EACR,CAAC,EACD,SAAS,GACV,GAAG,WAAW,CAAC;IAChB,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,IAAY,EAAE,QAAiB,EAAE,EAAE,CAAC,QAAQ,IAAI,IAAI,CAAC,CAAC;IACxE,MAAM,uBAAuB,GAAG,CAC9B,KAAC,8BAA8B,IAC7B,IAAI,EAAE,IAAI,EACV,aAAa,EAAE,aAAa,EAC5B,aAAa,EAAE,aAAa,EAC5B,mBAAmB,EAAE,mBAAmB,EACxC,CAAC,EAAE,CAAC,GACJ,CACH,CAAC;IAEF,OAAO,CACL,eACE,GAAG,EAAE,aAAa,EAClB,QAAQ,EAAE,CAAC,CAAC,EACZ,cAAc,EAAE,cAAc,eACpB,wBAAwB,EAClC,SAAS,EAAE,EAAE,CACX,8FAA8F,EAC9F,SAAS,CACV,aAED,mBAAU,QAAQ,EAAE,YAAY,EAAE,SAAS,EAAC,UAAU,YAMpD,cAAK,SAAS,EAAC,sCAAsC,YACnD,cAAK,SAAS,EAAC,yGAAyG,YACtH,MAAC,IAAI,IAAC,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,WAAW,EAAE,SAAS,EAAC,sBAAsB,aACpF,4BACY,yBAAyB,EACnC,SAAS,EAAC,+JAA+J,aAEzK,KAAC,QAAQ,IACP,GAAG,EAAE,WAAW,EAChB,SAAS,EAAC,qGAAqG,YAE9G,WAAW,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CACxB,KAAC,WAAW,IAAW,KAAK,EAAE,GAAG,EAAE,SAAS,EAAC,4BAA4B,YACtE,EAAE,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,IADxB,GAAG,CAEP,CACf,CAAC,GACO,EACV,WAAW,CAAC,MAAM,GAAG,CAAC,IAAI,CACzB,aAAG,SAAS,EAAC,qGAAqG,aAChH,KAAC,cAAc,mBAAa,MAAM,EAAC,SAAS,EAAC,iBAAiB,GAAG,EAChE,EAAE,CAAC,+BAA+B,EAAE,6BAA6B,CAAC,IACjE,CACL,IACG,EACL,WAAW,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,CACrC,MAAC,WAAW,IACV,KAAK,EAAC,YAAY,EAClB,SAAS,EAAC,2EAA2E,aAEpF,WAAW,KAAK,YAAY,IAAI,uBAAuB,EACxD,aAAI,SAAS,EAAC,SAAS,YAAE,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,UAAU,CAAC,UAAU,CAAC,GAAM,EAClF,KAAC,oBAAoB,IACnB,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,UAAU,EACtB,kBAAkB,EAAE,kBAAkB,EACtC,cAAc,EAAE,cAAc,EAC9B,gBAAgB,EAAE,gBAAgB,IAAI,WAAW,KAAK,YAAY,EAClE,aAAa,EAAE,aAAa,EAC5B,eAAe,EAAE,eAAe,EAChC,iBAAiB,EACf,eAAe,CAAC,CAAC,CAAC,aAAa,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC,SAAS,EAEpE,oBAAoB,EAAE,oBAAoB,EAC1C,aAAa,EAAE,aAAa,EAC5B,CAAC,EAAE,CAAC,GACJ,IACU,CACf,EACA,WAAW,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAClC,MAAC,WAAW,IACV,KAAK,EAAC,SAAS,EACf,SAAS,EAAC,2EAA2E,aAEpF,WAAW,KAAK,SAAS,IAAI,uBAAuB,EACrD,aAAI,SAAS,EAAC,SAAS,YAAE,EAAE,CAAC,aAAa,CAAC,OAAO,EAAE,UAAU,CAAC,OAAO,CAAC,GAAM,EAC5E,KAAC,iBAAiB,IAChB,SAAS,EAAE,SAAS,EACpB,IAAI,EAAE,IAAI,EACV,eAAe,EAAE,eAAe,EAChC,CAAC,EAAE,CAAC,GACJ,IACU,CACf,EACA,WAAW,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAClC,MAAC,WAAW,IACV,KAAK,EAAC,SAAS,EACf,SAAS,EAAC,2EAA2E,aAEpF,WAAW,KAAK,SAAS,IAAI,uBAAuB,EACrD,aAAI,SAAS,EAAC,SAAS,YAAE,EAAE,CAAC,aAAa,CAAC,OAAO,EAAE,UAAU,CAAC,OAAO,CAAC,GAAM,EAC5E,KAAC,iBAAiB,IAChB,IAAI,EAAE,IAAI,EACV,aAAa,EAAE,aAAa,EAC5B,oBAAoB,EAAE,oBAAoB,EAC1C,aAAa,EAAE,aAAa,EAC5B,CAAC,EAAE,CAAC,GACJ,IACU,CACf,EACA,WAAW,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CACpC,MAAC,WAAW,IACV,KAAK,EAAC,WAAW,EACjB,SAAS,EAAC,2EAA2E,aAEpF,WAAW,KAAK,WAAW,IAAI,uBAAuB,EACvD,aAAI,SAAS,EAAC,SAAS,YAAE,EAAE,CAAC,aAAa,CAAC,SAAS,EAAE,UAAU,CAAC,SAAS,CAAC,GAAM,EAChF,KAAC,mBAAmB,IAClB,IAAI,EAAE,IAAI,EACV,SAAS,EAAE,SAAS,EACpB,IAAI,EAAE,IAAI,EACV,WAAW,EAAE,WAAW,EACxB,YAAY,EAAE,YAAY,EAC1B,MAAM,EAAE,MAAM,EACd,kBAAkB,EAAE,kBAAkB,EACtC,gBAAgB,EAAE,gBAAgB,EAClC,QAAQ,EAAE,QAAQ,EAClB,CAAC,EAAE,CAAC,GACJ,IACU,CACf,EAOA,WAAW,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAClC,MAAC,WAAW,IACV,KAAK,EAAC,SAAS,EACf,UAAU,QACV,SAAS,EAAC,wGAAwG,aAEjH,WAAW,KAAK,SAAS,IAAI,uBAAuB,EACrD,aAAI,SAAS,EAAC,SAAS,YAAE,EAAE,CAAC,aAAa,CAAC,SAAS,CAAC,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC,GAAM,EAClF,KAAC,gBAAgB,IACf,GAAG,EAAE,YAAY,EACjB,SAAS,EAAE,SAAS,EACpB,IAAI,EAAE,IAAI,EACV,SAAS,EAAE,SAAS,EACpB,iBAAiB,EAAE,sBAAsB,EACzC,SAAS,EAAE,SAAS,EACpB,qBAAqB,EACnB,WAAW,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,gBAAgB,KAAK,SAAS;gDACjE,CAAC,CAAC,qBAAqB;gDACvB,CAAC,CAAC,SAAS,EAEf,CAAC,EAAE,CAAC,GACJ,IACU,CACf,EACA,WAAW,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CACjC,MAAC,WAAW,IACV,KAAK,EAAC,QAAQ,EACd,SAAS,EAAC,2EAA2E,aAEpF,WAAW,KAAK,QAAQ,IAAI,uBAAuB,EACpD,aAAI,SAAS,EAAC,SAAS,YAAE,EAAE,CAAC,aAAa,CAAC,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC,GAAM,EAC1E,KAAC,gBAAgB,IAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,GAAI,IACpE,CACf,IACI,GACH,GACF,GACG,EAEX,KAAC,oBAAoB,IACnB,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,YAAY,EACtB,WAAW,EACT,WAAW,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,WAAW,CAAC;oBACrD,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,iBAAiB,CAAC;oBACrC,CAAC,CAAC,iBAAiB,EAEvB,cAAc,EAAE,mBAAmB,EACnC,eAAe,EAAE,aAAa,EAC9B,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,SAAS,EACpB,CAAC,EAAE,CAAC,GACJ,IACE,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"product-gallery-tab.d.ts","sourceRoot":"","sources":["../../../src/product-editor/tabs/product-gallery-tab.tsx"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAIlE,MAAM,WAAW,sBAAsB;IACrC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,QAAQ,GAAG,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IAC/C,sFAAsF;IACtF,OAAO,CAAC,EAAE,gBAAgB,CAAC;CAC5B;AAID;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC,EAAE,EAAE,sBAAsB,
|
|
1
|
+
{"version":3,"file":"product-gallery-tab.d.ts","sourceRoot":"","sources":["../../../src/product-editor/tabs/product-gallery-tab.tsx"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAIlE,MAAM,WAAW,sBAAsB;IACrC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,QAAQ,GAAG,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IAC/C,sFAAsF;IACtF,OAAO,CAAC,EAAE,gBAAgB,CAAC;CAC5B;AAID;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC,EAAE,EAAE,sBAAsB,2CAuKhG"}
|
|
@@ -19,6 +19,7 @@ import { cn } from "../../lib/utils.js";
|
|
|
19
19
|
*/
|
|
20
20
|
export function ProductGalleryTab({ variantId, mode, imageController, t }) {
|
|
21
21
|
const tr = React.useMemo(() => t ?? ((_k, fb) => fb ?? _k), [t]);
|
|
22
|
+
const titleId = React.useId();
|
|
22
23
|
const { images = [], isLoading = false } = imageController ?? {};
|
|
23
24
|
const [activeId, setActiveId] = React.useState(null);
|
|
24
25
|
// Keep the active id valid as the images array changes (e.g. after upload /
|
|
@@ -79,32 +80,32 @@ export function ProductGalleryTab({ variantId, mode, imageController, t }) {
|
|
|
79
80
|
const canUpload = Boolean(variantId && imageController && mode === "edit");
|
|
80
81
|
const showDropzone = !imageController || isLoading || images.length === 0;
|
|
81
82
|
if (showDropzone) {
|
|
82
|
-
return (
|
|
83
|
-
|
|
84
|
-
|
|
83
|
+
return (_jsxs("section", { "aria-labelledby": titleId, className: "w-full overflow-hidden rounded-xl border border-border bg-card shadow-soft", children: [_jsxs("div", { className: "border-b border-border px-4 py-3 sm:px-5", children: [_jsx("h3", { id: titleId, className: "font-display text-base font-semibold", children: tr("variantEdit.gallery.title", "Product images") }), _jsx("p", { className: "mt-1 text-sm text-muted-foreground", children: tr("variantEdit.gallery.description", "Photos attached to this product.") })] }), _jsx("div", { className: "p-4 sm:p-5", children: _jsx(FileDropzone, { onFiles: (files) => void handleUploadFiles(files), accept: "image/jpeg,image/png,image/webp", maxSize: 20 * 1024 * 1024, disabled: !canUpload, label: _jsxs("div", { className: "flex items-center gap-2", children: [_jsx(Image, { className: "size-5", "aria-hidden": true }), _jsx("span", { children: !variantId || mode === "create"
|
|
84
|
+
? tr("variantEdit.dropzoneSaveFirst", "Complete the essentials and save the product first to enable image uploads.")
|
|
85
|
+
: tr("variantEdit.dropzoneLabel", "Drag images here or click to browse") })] }), className: "min-h-40 rounded-lg border-dashed bg-muted/30" }) })] }));
|
|
85
86
|
}
|
|
86
|
-
return (
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
87
|
+
return (_jsxs("section", { "aria-labelledby": titleId, className: "w-full overflow-hidden rounded-xl border border-border bg-card shadow-soft", children: [_jsxs("div", { className: "flex items-start justify-between gap-3 border-b border-border px-4 py-3 sm:px-5", children: [_jsxs("div", { className: "min-w-0", children: [_jsx("h3", { id: titleId, className: "font-display text-base font-semibold", children: tr("variantEdit.gallery.title", "Product images") }), _jsx("p", { className: "mt-1 text-sm text-muted-foreground", children: tr("variantEdit.gallery.description", "Photos attached to this product.") })] }), _jsx("span", { className: "shrink-0 rounded-full bg-muted px-2.5 py-1 text-xs text-muted-foreground", children: images.length })] }), _jsxs("div", { className: "flex flex-col gap-3 p-4 sm:p-5", children: [_jsx(ImageCarousel, { images: images, activeId: activeId ?? undefined, onActiveChange: (id) => setActiveId(id), onReorder: (ids) => {
|
|
88
|
+
imageController?.onReorder(ids);
|
|
89
|
+
}, onAddClick: () => {
|
|
90
|
+
// Prompt the user via the native file picker (v1 simplicity).
|
|
91
|
+
const input = document.createElement("input");
|
|
92
|
+
input.type = "file";
|
|
93
|
+
input.accept = "image/jpeg,image/png,image/webp";
|
|
94
|
+
input.multiple = true;
|
|
95
|
+
input.onchange = () => {
|
|
96
|
+
if (input.files && input.files.length > 0) {
|
|
97
|
+
void handleUploadFiles(Array.from(input.files));
|
|
98
|
+
}
|
|
99
|
+
};
|
|
100
|
+
input.click();
|
|
101
|
+
} }), _jsx(ImageControlsBar, { activeImageId: activeId, isActivePrimary: activeImage?.isPrimary ?? false, onSetPrimary: handleSetPrimary, onDownload: handleDownload, onDelete: handleDelete, onEditAltText: handleEditAltText, t: tr })] })] }));
|
|
101
102
|
}
|
|
102
103
|
function ImageControlsBar({ activeImageId, isActivePrimary, onSetPrimary, onDownload, onDelete, onEditAltText, t, className, }) {
|
|
103
104
|
const disabled = !activeImageId;
|
|
104
105
|
const downloadRef = React.useRef(null);
|
|
105
106
|
const trashRef = React.useRef(null);
|
|
106
107
|
const penRef = React.useRef(null);
|
|
107
|
-
return (_jsx(TooltipProvider, { delayDuration: 150, children: _jsxs("div", { className: cn("
|
|
108
|
+
return (_jsx(TooltipProvider, { delayDuration: 150, children: _jsxs("div", { className: cn("flex items-center gap-1 rounded-lg border border-border bg-muted/40 px-2 py-1", disabled && "pointer-events-none opacity-40", className), children: [_jsx(ControlButton, { label: t("variantEdit.controls.setPrimary", "Set as primary"), onClick: onSetPrimary, disabled: isActivePrimary, children: _jsx(Star, { className: cn("size-4", isActivePrimary && "text-primary"), "aria-hidden": true }) }), _jsx(ControlButton, { label: t("variantEdit.controls.download", "Download"), onClick: onDownload, onFocus: () => downloadRef.current?.startAnimation(), onBlur: () => downloadRef.current?.stopAnimation(), onMouseEnter: () => downloadRef.current?.startAnimation(), onMouseLeave: () => downloadRef.current?.stopAnimation(), children: _jsx(DownloadIcon, { ref: downloadRef, size: 16, "aria-hidden": true }) }), _jsx(ControlButton, { label: t("variantEdit.controls.editAltText", "Edit alt text"), onClick: onEditAltText, onFocus: () => penRef.current?.startAnimation(), onBlur: () => penRef.current?.stopAnimation(), onMouseEnter: () => penRef.current?.startAnimation(), onMouseLeave: () => penRef.current?.stopAnimation(), children: _jsx(PenIcon, { ref: penRef, size: 16, "aria-hidden": true }) }), _jsx(ControlButton, { label: t("variantEdit.controls.delete", "Delete image"), onClick: onDelete, onFocus: () => trashRef.current?.startAnimation(), onBlur: () => trashRef.current?.stopAnimation(), onMouseEnter: () => trashRef.current?.startAnimation(), onMouseLeave: () => trashRef.current?.stopAnimation(), variant: "destructive", children: _jsx(TrashIcon, { ref: trashRef, size: 16, "aria-hidden": true }) })] }) }));
|
|
108
109
|
}
|
|
109
110
|
function ControlButton({ label, onClick, onFocus, onBlur, onMouseEnter, onMouseLeave, disabled, variant = "default", children, }) {
|
|
110
111
|
return (_jsxs(Tooltip, { children: [_jsx(TooltipTrigger, { asChild: true, children: _jsx("button", { type: "button", "aria-label": label, onClick: onClick, onFocus: onFocus, onBlur: onBlur, onMouseEnter: onMouseEnter, onMouseLeave: onMouseLeave, disabled: disabled, className: cn("flex size-8 items-center justify-center rounded-full transition-colors", "hover:bg-muted focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-1", "disabled:pointer-events-none disabled:opacity-40", variant === "destructive" && "hover:bg-destructive/10 hover:text-destructive"), children: children }) }), _jsx(TooltipContent, { children: label })] }));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"product-gallery-tab.js","sourceRoot":"","sources":["../../../src/product-editor/tabs/product-gallery-tab.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAC9D,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AACpG,OAAO,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAClE,OAAO,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAC5D,OAAO,EAAE,OAAO,EAAE,MAAM,+BAA+B,CAAC;AAExD,OAAO,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAC;AAcrC,gFAAgF;AAEhF;;;;;;;GAOG;AACH,MAAM,UAAU,iBAAiB,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC,EAA0B;IAC/F,MAAM,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,EAAU,EAAE,EAAW,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"product-gallery-tab.js","sourceRoot":"","sources":["../../../src/product-editor/tabs/product-gallery-tab.tsx"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cellarnode/ui",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.216.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"private": false,
|
|
6
|
+
"packageManager": "pnpm@10.28.2+sha512.41872f037ad22f7348e3b1debbaf7e867cfd448f2726d9cf74c08f19507c31d2c8e7a11525b983febc2df640b5438dee6023ebb1f84ed43cc2d654d2bc326264",
|
|
6
7
|
"description": "Shared UI components, theme tokens, and chat/offer primitives for CellarNode dashboards.",
|
|
7
8
|
"license": "UNLICENSED",
|
|
8
9
|
"repository": {
|
|
@@ -247,6 +248,21 @@
|
|
|
247
248
|
"src/theme/tokens.css",
|
|
248
249
|
"src/theme/fonts/**"
|
|
249
250
|
],
|
|
251
|
+
"scripts": {
|
|
252
|
+
"build": "tsc && tsc-alias && node scripts/copy-runtime-css.mjs && node scripts/verify-dist.mjs",
|
|
253
|
+
"dev": "tsc --watch",
|
|
254
|
+
"clean": "rm -rf dist",
|
|
255
|
+
"lint": "oxlint && eslint src/",
|
|
256
|
+
"format": "oxfmt --write .",
|
|
257
|
+
"format:check": "oxfmt --check .",
|
|
258
|
+
"prepublishOnly": "npm run build",
|
|
259
|
+
"storybook": "storybook dev -p 6006",
|
|
260
|
+
"build-storybook": "storybook build",
|
|
261
|
+
"test": "vitest run",
|
|
262
|
+
"test:a11y": "vitest run --project storybook",
|
|
263
|
+
"check-export-overlap": "node scripts/check-export-overlap.mjs",
|
|
264
|
+
"test:offer-print-runtime": "node scripts/offer-print-runtime.test.mjs"
|
|
265
|
+
},
|
|
250
266
|
"peerDependencies": {
|
|
251
267
|
"@ably/chat": "^1.3.1",
|
|
252
268
|
"@ably/spaces": "^0.5.0",
|
|
@@ -449,18 +465,9 @@
|
|
|
449
465
|
"vitest": "^4.1.2",
|
|
450
466
|
"vitest-axe": "^0.1.0"
|
|
451
467
|
},
|
|
452
|
-
"
|
|
453
|
-
"
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
"lint": "oxlint && eslint src/",
|
|
457
|
-
"format": "oxfmt --write .",
|
|
458
|
-
"format:check": "oxfmt --check .",
|
|
459
|
-
"storybook": "storybook dev -p 6006",
|
|
460
|
-
"build-storybook": "storybook build",
|
|
461
|
-
"test": "vitest run",
|
|
462
|
-
"test:a11y": "vitest run --project storybook",
|
|
463
|
-
"check-export-overlap": "node scripts/check-export-overlap.mjs",
|
|
464
|
-
"test:offer-print-runtime": "node scripts/offer-print-runtime.test.mjs"
|
|
468
|
+
"pnpm": {
|
|
469
|
+
"overrides": {
|
|
470
|
+
"axe-core": "4.14.0"
|
|
471
|
+
}
|
|
465
472
|
}
|
|
466
|
-
}
|
|
473
|
+
}
|