@cellarnode/ui 0.213.0 → 0.217.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/chat/types.d.ts +5 -5
- package/dist/chat/types.d.ts.map +1 -1
- 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/components/journey-card.d.ts +10 -8
- package/dist/components/journey-card.d.ts.map +1 -1
- package/dist/components/journey-card.js +23 -25
- package/dist/components/journey-card.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/offer/negotiation-flow-timeline.d.ts.map +1 -1
- package/dist/offer/negotiation-flow-timeline.js +8 -6
- package/dist/offer/negotiation-flow-timeline.js.map +1 -1
- package/dist/offer/negotiation-labels.d.ts +2 -0
- package/dist/offer/negotiation-labels.d.ts.map +1 -1
- package/dist/offer/negotiation-labels.js +1 -0
- package/dist/offer/negotiation-labels.js.map +1 -1
- package/dist/offer/types.d.ts +7 -0
- package/dist/offer/types.d.ts.map +1 -1
- package/dist/portfolio/edit-portfolio-dialog.d.ts.map +1 -1
- package/dist/portfolio/edit-portfolio-dialog.js +81 -12
- package/dist/portfolio/edit-portfolio-dialog.js.map +1 -1
- package/dist/portfolio/portfolio-folder-card.d.ts.map +1 -1
- package/dist/portfolio/portfolio-folder-card.js +13 -1
- 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-surface.d.ts.map +1 -1
- package/dist/product-editor/product-editor-surface.js +2 -2
- package/dist/product-editor/product-editor-surface.js.map +1 -1
- package/dist/product-editor/tabs/product-essentials-identity-section.d.ts +2 -1
- package/dist/product-editor/tabs/product-essentials-identity-section.d.ts.map +1 -1
- package/dist/product-editor/tabs/product-essentials-identity-section.js +14 -5
- package/dist/product-editor/tabs/product-essentials-identity-section.js.map +1 -1
- package/dist/product-editor/tabs/product-essentials-tab.d.ts +2 -1
- package/dist/product-editor/tabs/product-essentials-tab.d.ts.map +1 -1
- package/dist/product-editor/tabs/product-essentials-tab.js +2 -2
- package/dist/product-editor/tabs/product-essentials-tab.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/dist/product-editor/tabs/product-price-ranges-editor.js +1 -1
- package/dist/product-editor/tabs/product-price-ranges-editor.js.map +1 -1
- package/dist/product-editor/types.d.ts +6 -0
- package/dist/product-editor/types.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { useRef, useState } from "react";
|
|
2
|
+
import { useLayoutEffect, useRef, useState } from "react";
|
|
3
3
|
import { Upload, Trash } from "lucide-react";
|
|
4
4
|
import { ImageCropDialog } from "../image-upload/image-crop-dialog.js";
|
|
5
5
|
import { Dialog, DialogActions, DialogBody, DialogDescription, DialogTitle, } from "../components/dialog.js";
|
|
@@ -7,6 +7,7 @@ import { Button } from "../components/button.js";
|
|
|
7
7
|
import { Input } from "../components/input.js";
|
|
8
8
|
import { Textarea } from "../components/textarea.js";
|
|
9
9
|
import { Description, ErrorMessage, Field, Label } from "../components/fieldset.js";
|
|
10
|
+
import { loadImage } from "../image-upload/use-image-crop.js";
|
|
10
11
|
import { CROP_OUTPUT, PORTFOLIO_COVER_ASPECT, PORTFOLIO_COVER_PLACEMENTS, croppedBlobToFile, } from "../image-upload/portfolio-config.js";
|
|
11
12
|
const MAX_NAME_LENGTH = 255;
|
|
12
13
|
const MAX_DESCRIPTION_LENGTH = 2000;
|
|
@@ -19,13 +20,29 @@ export function EditPortfolioDialog({ open, onClose, portfolio, onSubmit, onSetC
|
|
|
19
20
|
const [fieldErrors, setFieldErrors] = useState({});
|
|
20
21
|
const [localFormError, setLocalFormError] = useState(null);
|
|
21
22
|
const [coverLoadFailed, setCoverLoadFailed] = useState(false);
|
|
22
|
-
const [
|
|
23
|
+
const [cropSession, setCropSession] = useState(null);
|
|
24
|
+
const [isPreparingCover, setIsPreparingCover] = useState(false);
|
|
25
|
+
const [resumeCoverFocus, setResumeCoverFocus] = useState(false);
|
|
23
26
|
const fileInputRef = useRef(null);
|
|
24
27
|
const nameInputRef = useRef(null);
|
|
28
|
+
const coverControlRef = useRef(null);
|
|
29
|
+
const portfolioId = portfolio?.id ?? null;
|
|
30
|
+
const operationGenerationRef = useRef(0);
|
|
31
|
+
const currentDialogRef = useRef({ open, portfolioId });
|
|
32
|
+
useLayoutEffect(() => {
|
|
33
|
+
currentDialogRef.current = { open, portfolioId };
|
|
34
|
+
operationGenerationRef.current += 1;
|
|
35
|
+
return () => {
|
|
36
|
+
operationGenerationRef.current += 1;
|
|
37
|
+
};
|
|
38
|
+
}, [open, portfolioId]);
|
|
25
39
|
const [lastSeedKey, setLastSeedKey] = useState(null);
|
|
26
40
|
const seedKey = open && portfolio ? portfolio.id : null;
|
|
27
41
|
if (seedKey !== lastSeedKey) {
|
|
28
42
|
setLastSeedKey(seedKey);
|
|
43
|
+
setCropSession(null);
|
|
44
|
+
setIsPreparingCover(false);
|
|
45
|
+
setResumeCoverFocus(false);
|
|
29
46
|
if (portfolio && seedKey) {
|
|
30
47
|
setName(portfolio.name);
|
|
31
48
|
setDescription(portfolio.description ?? "");
|
|
@@ -38,6 +55,20 @@ export function EditPortfolioDialog({ open, onClose, portfolio, onSubmit, onSetC
|
|
|
38
55
|
const coverImage = portfolio?.coverUrl
|
|
39
56
|
? { url: portfolio.coverUrl, altText: portfolio.coverAltText }
|
|
40
57
|
: null;
|
|
58
|
+
const invalidateCoverOperation = () => {
|
|
59
|
+
operationGenerationRef.current += 1;
|
|
60
|
+
setCropSession(null);
|
|
61
|
+
setIsPreparingCover(false);
|
|
62
|
+
};
|
|
63
|
+
const handleClose = () => {
|
|
64
|
+
if (isSubmitting || isCoverPending)
|
|
65
|
+
return;
|
|
66
|
+
invalidateCoverOperation();
|
|
67
|
+
onClose();
|
|
68
|
+
};
|
|
69
|
+
const isCurrentCoverOperation = (generation, portfolioId) => operationGenerationRef.current === generation &&
|
|
70
|
+
currentDialogRef.current.open &&
|
|
71
|
+
currentDialogRef.current.portfolioId === portfolioId;
|
|
41
72
|
const handleSave = async () => {
|
|
42
73
|
if (!portfolio)
|
|
43
74
|
return;
|
|
@@ -65,27 +96,65 @@ export function EditPortfolioDialog({ open, onClose, portfolio, onSubmit, onSetC
|
|
|
65
96
|
const nameChanged = trimmedName !== portfolio.name;
|
|
66
97
|
const descChanged = trimmedDesc !== (portfolio.description ?? "");
|
|
67
98
|
if (!nameChanged && !descChanged) {
|
|
68
|
-
|
|
99
|
+
handleClose();
|
|
69
100
|
return;
|
|
70
101
|
}
|
|
71
102
|
setFieldErrors({});
|
|
72
103
|
setLocalFormError(null);
|
|
73
104
|
await onSubmit({ name: trimmedName, description: trimmedDesc });
|
|
74
105
|
};
|
|
75
|
-
const handleFileSelect = (e) => {
|
|
106
|
+
const handleFileSelect = async (e) => {
|
|
76
107
|
const file = e.target.files?.[0];
|
|
77
108
|
if (fileInputRef.current)
|
|
78
109
|
fileInputRef.current.value = "";
|
|
79
110
|
if (!file || !portfolio)
|
|
80
111
|
return;
|
|
81
|
-
|
|
112
|
+
const portfolioId = portfolio.id;
|
|
113
|
+
const generation = operationGenerationRef.current + 1;
|
|
114
|
+
operationGenerationRef.current = generation;
|
|
115
|
+
setCropSession(null);
|
|
116
|
+
setIsPreparingCover(true);
|
|
117
|
+
setLocalFormError(null);
|
|
118
|
+
let loadedImage = null;
|
|
119
|
+
try {
|
|
120
|
+
loadedImage = await loadImage(file);
|
|
121
|
+
if (!isCurrentCoverOperation(generation, portfolioId))
|
|
122
|
+
return;
|
|
123
|
+
if (!Number.isFinite(loadedImage.width) ||
|
|
124
|
+
!Number.isFinite(loadedImage.height) ||
|
|
125
|
+
loadedImage.width <= 0 ||
|
|
126
|
+
loadedImage.height <= 0) {
|
|
127
|
+
setLocalFormError(t("portfolio.folders.edit.invalidCoverImage", "This file could not be opened as an image. Choose a valid image file and try again."));
|
|
128
|
+
setIsPreparingCover(false);
|
|
129
|
+
return;
|
|
130
|
+
}
|
|
131
|
+
coverControlRef.current?.focus();
|
|
132
|
+
setResumeCoverFocus(true);
|
|
133
|
+
setCropSession({ file, generation, portfolioId });
|
|
134
|
+
setIsPreparingCover(false);
|
|
135
|
+
}
|
|
136
|
+
catch {
|
|
137
|
+
if (!isCurrentCoverOperation(generation, portfolioId))
|
|
138
|
+
return;
|
|
139
|
+
setLocalFormError(t("portfolio.folders.edit.invalidCoverImage", "This file could not be opened as an image. Choose a valid image file and try again."));
|
|
140
|
+
setIsPreparingCover(false);
|
|
141
|
+
}
|
|
142
|
+
finally {
|
|
143
|
+
const source = loadedImage?.source;
|
|
144
|
+
source?.close?.();
|
|
145
|
+
}
|
|
82
146
|
};
|
|
83
|
-
const handleCropConfirm = ({ blob }) => {
|
|
84
|
-
|
|
147
|
+
const handleCropConfirm = ({ blob }, session) => {
|
|
148
|
+
if (!session || !isCurrentCoverOperation(session.generation, session.portfolioId))
|
|
149
|
+
return;
|
|
150
|
+
const file = croppedBlobToFile(blob, session.file.name);
|
|
85
151
|
const altText = coverAltText.trim();
|
|
86
152
|
void onSetCover({ file, ...(altText ? { altText } : {}) });
|
|
87
153
|
setCoverLoadFailed(false);
|
|
88
|
-
|
|
154
|
+
invalidateCoverOperation();
|
|
155
|
+
};
|
|
156
|
+
const handleCropCancel = () => {
|
|
157
|
+
invalidateCoverOperation();
|
|
89
158
|
};
|
|
90
159
|
const handleRemoveCover = () => {
|
|
91
160
|
if (window.confirm(t("portfolio.folders.edit.confirmRemoveCover", "Are you sure you want to remove the cover image?"))) {
|
|
@@ -94,7 +163,7 @@ export function EditPortfolioDialog({ open, onClose, portfolio, onSubmit, onSetC
|
|
|
94
163
|
};
|
|
95
164
|
const isBusy = isSubmitting || isCoverPending;
|
|
96
165
|
const displayError = localFormError || error;
|
|
97
|
-
return (_jsxs(Dialog, { open: open, onClose:
|
|
166
|
+
return (_jsxs(Dialog, { open: open, onClose: handleClose, initialFocus: resumeCoverFocus ? coverControlRef : nameInputRef, size: "lg", children: [_jsx(DialogTitle, { children: t("portfolio.folders.edit.title", "Edit Collection") }), _jsx(DialogDescription, { children: t("portfolio.folders.edit.description", "Update the collection name, description, or cover image.") }), _jsx(DialogBody, { children: _jsxs("div", { className: "flex flex-col gap-5", children: [displayError ? (_jsx("p", { role: "alert", className: "rounded-lg bg-[var(--tone-danger-soft)] px-3 py-2 text-sm text-[var(--tone-danger-fg)]", children: displayError })) : null, isPreparingCover ? (_jsx("p", { role: "status", className: "text-sm text-muted-foreground", "aria-live": "polite", children: t("portfolio.folders.edit.preparingCover", "Preparing image…") })) : null, _jsxs("div", { className: "flex flex-col gap-2", children: [_jsxs(Field, { className: "flex flex-col gap-2", children: [_jsx(Label, { htmlFor: "edit-portfolio-cover-alt-text", children: t("portfolio.folders.edit.nextCoverAltTextLabel", "Next cover image description") }), _jsx(Input, { id: "edit-portfolio-cover-alt-text", value: coverAltText, maxLength: MAX_COVER_ALT_LENGTH, "aria-describedby": "edit-portfolio-cover-alt-text-hint", onChange: (event) => setCoverAltText(event.target.value), disabled: isBusy }), _jsx(Description, { id: "edit-portfolio-cover-alt-text-hint", children: t("portfolio.folders.edit.nextCoverAltTextHint", "Enter this before choosing or replacing the cover. Save cover in the crop step to include it. Save changes updates only the collection name and description; it does not save this text. Leave empty if decorative.") })] }), _jsx("p", { className: "text-sm font-medium text-foreground", children: t("portfolio.folders.edit.coverLabel", "Cover image") }), _jsxs("div", { className: "flex items-start gap-4", children: [_jsxs("div", { className: "relative size-28 shrink-0 overflow-hidden rounded-xl border border-border/60 bg-muted", children: [coverImage && !coverLoadFailed ? (_jsx("img", { src: coverImage.url, alt: coverImage.altText ?? "", className: "size-full object-cover", onError: () => setCoverLoadFailed(true) })) : (_jsx("div", { className: "flex size-full items-center justify-center bg-muted text-xs text-muted-foreground", children: t("portfolio.folders.edit.coverNone", "No cover") })), isCoverPending && (_jsx("div", { className: "absolute inset-0 flex items-center justify-center bg-background/60 backdrop-blur-sm", children: _jsx("div", { className: "size-6 animate-spin rounded-full border-2 border-primary border-t-transparent motion-reduce:animate-none" }) }))] }), _jsxs("div", { className: "flex flex-col gap-2", children: [_jsx("input", { ref: fileInputRef, type: "file", accept: "image/*", className: "hidden", onChange: handleFileSelect, disabled: isBusy }), _jsxs(Button, { ref: coverControlRef, outline: true, type: "button", onClick: () => fileInputRef.current?.click(), disabled: isBusy, children: [_jsx(Upload, { className: "size-4 mr-2" }), coverImage
|
|
98
167
|
? t("portfolio.folders.edit.coverReplace", "Replace cover")
|
|
99
168
|
: t("portfolio.folders.edit.coverUpload", "Upload cover")] }), coverImage && (_jsxs(Button, { plain: true, type: "button", onClick: handleRemoveCover, disabled: isBusy, className: "text-destructive", children: [_jsx(Trash, { className: "size-4 mr-2" }), t("portfolio.folders.edit.coverRemove", "Remove cover")] }))] })] })] }), _jsxs(Field, { className: "flex flex-col gap-2", children: [_jsx(Label, { htmlFor: "edit-portfolio-name", children: t("portfolio.folders.edit.nameLabel", "Name") }), _jsx(Input, { id: "edit-portfolio-name", ref: nameInputRef, value: name, invalid: Boolean(fieldErrors.name), "aria-invalid": fieldErrors.name ? true : undefined, "aria-required": "true", "aria-describedby": fieldErrors.name ? "edit-portfolio-name-error" : undefined, onChange: (event) => {
|
|
100
169
|
setName(event.target.value);
|
|
@@ -104,9 +173,9 @@ export function EditPortfolioDialog({ open, onClose, portfolio, onSubmit, onSetC
|
|
|
104
173
|
setDescription(event.target.value);
|
|
105
174
|
setFieldErrors((current) => ({ ...current, description: undefined }));
|
|
106
175
|
setLocalFormError(null);
|
|
107
|
-
}, placeholder: t("portfolio.folders.edit.descriptionPlaceholder", "Brief description of this collection"), rows: 3, disabled: isBusy }), fieldErrors.description ? (_jsx(ErrorMessage, { id: "edit-portfolio-description-error", children: fieldErrors.description })) : null] })] }) }), _jsxs(DialogActions, { children: [_jsx(Button, { plain: true, onClick:
|
|
176
|
+
}, placeholder: t("portfolio.folders.edit.descriptionPlaceholder", "Brief description of this collection"), rows: 3, disabled: isBusy }), fieldErrors.description ? (_jsx(ErrorMessage, { id: "edit-portfolio-description-error", children: fieldErrors.description })) : null] })] }) }), _jsxs(DialogActions, { children: [_jsx(Button, { plain: true, onClick: handleClose, disabled: isBusy, children: t("portfolio.folders.edit.cancel", "Cancel") }), _jsx(Button, { color: "emerald", onClick: () => void handleSave(), disabled: isBusy, children: isSubmitting
|
|
108
177
|
? t("portfolio.folders.edit.saving", "Saving...")
|
|
109
|
-
: t("portfolio.folders.edit.save", "Save changes") })] }),
|
|
178
|
+
: t("portfolio.folders.edit.save", "Save changes") })] }), cropSession && (_jsx(ImageCropDialog, { open: true, file: cropSession.file, aspect: PORTFOLIO_COVER_ASPECT, placements: PORTFOLIO_COVER_PLACEMENTS, output: CROP_OUTPUT, labels: {
|
|
110
179
|
title: t("portfolio.folders.edit.coverCropTitle", "Crop cover image"),
|
|
111
180
|
description: t("portfolio.folders.edit.coverCropDescription", "Drag to reposition and zoom. You will see how the cover appears on the collection card and thumbnail."),
|
|
112
181
|
zoom: t("portfolio.folders.edit.coverCropZoom", "Zoom"),
|
|
@@ -114,6 +183,6 @@ export function EditPortfolioDialog({ open, onClose, portfolio, onSubmit, onSetC
|
|
|
114
183
|
cancel: t("portfolio.folders.edit.cancel", "Cancel"),
|
|
115
184
|
confirm: t("portfolio.folders.edit.coverCropConfirm", "Save cover"),
|
|
116
185
|
close: t("portfolio.folders.edit.close", "Close"),
|
|
117
|
-
}, onConfirm:
|
|
186
|
+
}, onConfirm: (payload) => handleCropConfirm(payload, cropSession), onCancel: handleCropCancel }))] }));
|
|
118
187
|
}
|
|
119
188
|
//# sourceMappingURL=edit-portfolio-dialog.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"edit-portfolio-dialog.js","sourceRoot":"","sources":["../../src/portfolio/edit-portfolio-dialog.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"edit-portfolio-dialog.js","sourceRoot":"","sources":["../../src/portfolio/edit-portfolio-dialog.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"portfolio-folder-card.d.ts","sourceRoot":"","sources":["../../src/portfolio/portfolio-folder-card.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAY/B,OAAO,KAAK,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAEpF,MAAM,WAAW,wBAAwB;IACvC,SAAS,EAAE,gBAAgB,CAAC;IAC5B;;;;OAIG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,uFAAuF;IACvF,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,qBAAqB,KAAK,IAAI,CAAC;IACnD,oDAAoD;IACpD,SAAS,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC5B,qEAAqE;IACrE,eAAe,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAClC;;;;OAIG;IACH,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,KAAK,MAAM,CAAC;IACnD,CAAC,CAAC,EAAE,WAAW,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAcD;;;;;;;;;;GAUG;AACH,wBAAgB,mBAAmB,CAAC,EAClC,SAAS,EACT,IAAI,EACJ,MAAM,EACN,QAAQ,EACR,SAAS,EACT,eAAe,EACf,eAAe,EACf,CAAC,EACD,SAAS,GACV,EAAE,wBAAwB,
|
|
1
|
+
{"version":3,"file":"portfolio-folder-card.d.ts","sourceRoot":"","sources":["../../src/portfolio/portfolio-folder-card.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAY/B,OAAO,KAAK,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAEpF,MAAM,WAAW,wBAAwB;IACvC,SAAS,EAAE,gBAAgB,CAAC;IAC5B;;;;OAIG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,uFAAuF;IACvF,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,qBAAqB,KAAK,IAAI,CAAC;IACnD,oDAAoD;IACpD,SAAS,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC5B,qEAAqE;IACrE,eAAe,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAClC;;;;OAIG;IACH,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,KAAK,MAAM,CAAC;IACnD,CAAC,CAAC,EAAE,WAAW,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAcD;;;;;;;;;;GAUG;AACH,wBAAgB,mBAAmB,CAAC,EAClC,SAAS,EACT,IAAI,EACJ,MAAM,EACN,QAAQ,EACR,SAAS,EACT,eAAe,EACf,eAAe,EACf,CAAC,EACD,SAAS,GACV,EAAE,wBAAwB,2CA8J1B"}
|
|
@@ -58,12 +58,24 @@ export function PortfolioFolderCard({ portfolio, href, onOpen, onAction, kebabSl
|
|
|
58
58
|
}
|
|
59
59
|
})();
|
|
60
60
|
const isLink = typeof href === "string" && href.length > 0;
|
|
61
|
+
const actionsTriggerRef = React.useRef(null);
|
|
62
|
+
const pendingEditPortfolioIdRef = React.useRef(null);
|
|
63
|
+
const handleMenuCloseAutoFocus = (event) => {
|
|
64
|
+
const pendingEditPortfolioId = pendingEditPortfolioIdRef.current;
|
|
65
|
+
pendingEditPortfolioIdRef.current = null;
|
|
66
|
+
const trigger = actionsTriggerRef.current;
|
|
67
|
+
if (pendingEditPortfolioId !== portfolio.id || !trigger?.isConnected)
|
|
68
|
+
return;
|
|
69
|
+
event.preventDefault();
|
|
70
|
+
trigger.focus();
|
|
71
|
+
onAction?.("edit");
|
|
72
|
+
};
|
|
61
73
|
// Stretched primary action: covers the whole card via after:inset-0 at z-10;
|
|
62
74
|
// the kebab layer sits at z-20 above it.
|
|
63
75
|
const primaryActionClassName = "block line-clamp-2 text-left break-words outline-hidden after:absolute after:inset-0 after:z-10 after:rounded-xl focus-visible:after:outline-2 focus-visible:after:outline-offset-2 focus-visible:after:outline-ring";
|
|
64
76
|
const title = isLink ? (_jsx("a", { href: href, className: primaryActionClassName, children: portfolio.name })) : typeof onOpen === "function" ? (_jsx("button", { type: "button", onClick: onOpen, className: primaryActionClassName, children: portfolio.name })) : (portfolio.name);
|
|
65
77
|
const kebab = kebabSlot ??
|
|
66
|
-
(onAction ? (_jsxs(DropdownMenu, { children: [_jsx(DropdownMenuTrigger, { asChild: true, children: _jsx(CardActionsTrigger, { size: 32, className: "border border-border bg-card/95 text-card-foreground shadow-sm hover:bg-card", "aria-label": tt("folderCard.actionsLabel", "Collection actions") }) }), _jsxs(DropdownMenuContent, { align: "end", children: [_jsx(DropdownMenuItem, { onSelect: () =>
|
|
78
|
+
(onAction ? (_jsxs(DropdownMenu, { children: [_jsx(DropdownMenuTrigger, { asChild: true, children: _jsx(CardActionsTrigger, { ref: actionsTriggerRef, size: 32, className: "border border-border bg-card/95 text-card-foreground shadow-sm hover:bg-card", "aria-label": tt("folderCard.actionsLabel", "Collection actions") }) }), _jsxs(DropdownMenuContent, { align: "end", onCloseAutoFocus: handleMenuCloseAutoFocus, children: [_jsx(DropdownMenuItem, { onSelect: () => (pendingEditPortfolioIdRef.current = portfolio.id), children: tt("folderCard.edit", "Edit details") }), _jsx(DropdownMenuItem, { onSelect: () => onAction(portfolio.isDefault ? "remove-default" : "set-default"), children: portfolio.isDefault
|
|
67
79
|
? tt("folderCard.removeDefault", "Remove default")
|
|
68
80
|
: tt("folderCard.setDefault", "Set as default") }), _jsx(DropdownMenuSeparator, {}), _jsx(DropdownMenuItem, { variant: "destructive", onSelect: () => onAction("delete"), children: tt("folderCard.delete", "Delete collection") })] })] })) : null);
|
|
69
81
|
return (_jsxs("div", { className: cn("group relative flex h-full flex-col overflow-hidden rounded-xl border border-border bg-card transition-transform duration-[var(--duration-standard)] ease-[var(--ease-emphasized)] hover:-translate-y-0.5 hover:border-primary/35 hover:shadow-soft", className), children: [_jsxs("div", { className: "relative overflow-hidden rounded-t-xl", children: [_jsx("div", { className: "relative aspect-[16/10] bg-muted", children: showCover && coverUrl ? (_jsx("img", { src: coverUrl, alt: portfolio.coverAltText ?? "", width: portfolio.coverWidth != null ? Number(portfolio.coverWidth) : undefined, height: portfolio.coverHeight != null ? Number(portfolio.coverHeight) : undefined, className: "size-full object-cover transition-transform duration-[var(--duration-standard)] ease-[var(--ease-emphasized)] group-hover:scale-[1.03]", loading: "lazy", onError: () => setCoverLoadFailed(true) })) : (_jsx("div", { className: "size-full transition-transform duration-[var(--duration-standard)] ease-[var(--ease-emphasized)] group-hover:scale-[1.02]", children: placeholderSlot ?? (_jsx(PortfolioCoverPlaceholder, { entityId: portfolio.id, name: portfolio.name })) })) }), countLabel && (_jsx("div", { className: "absolute bottom-3 left-3 rounded-full border border-border bg-card/95 px-3 py-1.5 text-xs font-semibold text-card-foreground shadow-sm", children: countLabel })), portfolio.isDefault && (_jsx("div", { className: "absolute left-3 top-3 rounded-full border border-border bg-card/95 px-2.5 py-1 text-xs font-semibold uppercase tracking-[0.1em] text-primary shadow-sm", children: tt("folderCard.defaultLabel", "Default") })), kebab && (_jsx("div", { className: "absolute right-3 top-3 z-20 translate-x-1 scale-90 opacity-0 transition-[transform,opacity] duration-[var(--duration-micro)] ease-[var(--ease-emphasized)] focus-within:translate-x-0 focus-within:scale-100 focus-within:opacity-100 group-hover:translate-x-0 group-hover:scale-100 group-hover:opacity-100 [@media(hover:none)]:translate-x-0 [@media(hover:none)]:scale-100 [@media(hover:none)]:opacity-100", children: kebab }))] }), _jsxs("div", { className: "flex flex-1 flex-col px-4 pb-4 pt-3", children: [_jsx("h3", { className: "font-display text-lg/6 font-semibold tracking-tight text-foreground", children: title }), portfolio.description && (_jsx("p", { className: "mt-1 line-clamp-2 text-sm/5 text-muted-foreground", children: portfolio.description })), updatedLabel && (_jsx("div", { className: "mt-auto pt-3 text-xs/4 text-muted-foreground", children: interpolate(tt("folderCard.updatedAt", "Updated {{when}}"), { when: updatedLabel }) }))] })] }));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"portfolio-folder-card.js","sourceRoot":"","sources":["../../src/portfolio/portfolio-folder-card.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAC/C,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AACxE,OAAO,EACL,YAAY,EACZ,mBAAmB,EACnB,gBAAgB,EAChB,qBAAqB,EACrB,mBAAmB,GACpB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,yBAAyB,EAAE,MAAM,2CAA2C,CAAC;AACtF,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAClC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAiC5C;;;;GAIG;AAEH,SAAS,sBAAsB,CAAC,KAAoB;IAClD,MAAM,IAAI,GAAG,KAAK,YAAY,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC;IAC7D,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;QAAE,OAAO,EAAE,CAAC;IAC5C,OAAO,mBAAmB,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;AACxD,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,mBAAmB,CAAC,EAClC,SAAS,EACT,IAAI,EACJ,MAAM,EACN,QAAQ,EACR,SAAS,EACT,eAAe,EACf,eAAe,EACf,CAAC,EACD,SAAS,GACgB;IACzB,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,EAAU,EAAE,EAAW,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;IAExD,qEAAqE;IACrE,sEAAsE;IACtE,iEAAiE;IACjE,MAAM,QAAQ,GAAG,SAAS,CAAC,QAAQ,IAAI,IAAI,CAAC;IAC5C,MAAM,CAAC,eAAe,EAAE,kBAAkB,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACpE,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACjE,IAAI,QAAQ,KAAK,YAAY,EAAE,CAAC;QAC9B,eAAe,CAAC,QAAQ,CAAC,CAAC;QAC1B,kBAAkB,CAAC,KAAK,CAAC,CAAC;IAC5B,CAAC;IACD,MAAM,SAAS,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC;IAExD,MAAM,KAAK,GAAG,SAAS,CAAC,SAAS,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;IAC/E,MAAM,UAAU,GACd,KAAK,IAAI,IAAI,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;QACrC,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC,uBAAuB,EAAE,oBAAoB,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC;QAC3E,CAAC,CAAC,IAAI,CAAC;IAEX,MAAM,YAAY,GAAG,CAAC,GAAG,EAAE;QACzB,MAAM,GAAG,GAAG,SAAS,CAAC,SAAS,CAAC;QAChC,IAAI,CAAC,GAAG;YAAE,OAAO,IAAI,CAAC;QACtB,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,CAAC,eAAe,IAAI,sBAAsB,CAAC,CAAC,GAAG,CAAC,CAAC;YACnE,OAAO,SAAS,IAAI,IAAI,CAAC;QAC3B,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC,CAAC,EAAE,CAAC;IAEL,MAAM,MAAM,GAAG,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"portfolio-folder-card.js","sourceRoot":"","sources":["../../src/portfolio/portfolio-folder-card.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"product-kebab-menu.d.ts","sourceRoot":"","sources":["../../src/portfolio/product-kebab-menu.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"product-kebab-menu.d.ts","sourceRoot":"","sources":["../../src/portfolio/product-kebab-menu.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AAUpC,OAAO,KAAK,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAEpE;;;;;;;;;;GAUG;AACH,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,CAAC,MAAM,EAAE,kBAAkB,KAAK,IAAI,CAAC;IAC/C;;;;;OAKG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,gBAAgB,CAAC;IACxB;;;OAGG;IACH,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC7B,0EAA0E;IAC1E,KAAK,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,KAAK,CAAC;IACnC,qDAAqD;IACrD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,gBAAgB,CAAC,EAC/B,QAAQ,EACR,MAAc,EACd,IAAI,EACJ,UAAU,EACV,KAAa,EACb,SAAS,GACV,EAAE,qBAAqB,2CAsEvB"}
|
|
@@ -1,15 +1,31 @@
|
|
|
1
1
|
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useRef } from "react";
|
|
2
3
|
import { CardActionsTrigger } from "../components/card-actions-trigger.js";
|
|
3
4
|
import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuSeparator, DropdownMenuTrigger, } from "../components/dropdown-menu.js";
|
|
4
5
|
export function ProductKebabMenu({ onAction, isWine = false, copy, extraItems, align = "end", className, }) {
|
|
6
|
+
const actionsTriggerRef = useRef(null);
|
|
7
|
+
const pendingMoveRef = useRef(false);
|
|
8
|
+
const handleMenuCloseAutoFocus = (event) => {
|
|
9
|
+
if (!pendingMoveRef.current)
|
|
10
|
+
return;
|
|
11
|
+
pendingMoveRef.current = false;
|
|
12
|
+
const trigger = actionsTriggerRef.current;
|
|
13
|
+
if (!trigger?.isConnected)
|
|
14
|
+
return;
|
|
15
|
+
event.preventDefault();
|
|
16
|
+
trigger.focus();
|
|
17
|
+
onAction("move");
|
|
18
|
+
};
|
|
5
19
|
const addVariantLabel = isWine
|
|
6
20
|
? (copy?.addVintage ?? "Add another vintage")
|
|
7
21
|
: (copy?.addVariant ?? "Add another option");
|
|
8
|
-
return (_jsxs(DropdownMenu, { children: [_jsx(DropdownMenuTrigger, { asChild: true, children: _jsx(CardActionsTrigger, { size: 28, className: className, onClick: (e) => {
|
|
22
|
+
return (_jsxs(DropdownMenu, { children: [_jsx(DropdownMenuTrigger, { asChild: true, children: _jsx(CardActionsTrigger, { ref: actionsTriggerRef, size: 28, className: className, onClick: (e) => {
|
|
9
23
|
// The kebab sits inside clickable/linked cards; keep the card
|
|
10
24
|
// navigation from firing when the menu is toggled.
|
|
11
25
|
e.preventDefault();
|
|
12
26
|
e.stopPropagation();
|
|
13
|
-
}, "aria-label": copy?.actionsLabel ?? "Product actions" }) }), _jsxs(DropdownMenuContent, { align: align, onClick: (e) => e.stopPropagation(), children: [_jsx(DropdownMenuItem, { onSelect: () => onAction("edit"), children: copy?.edit ?? "Edit product" }), _jsx(DropdownMenuItem, { onSelect: () => onAction("add-vintage"), children: addVariantLabel }), _jsx(DropdownMenuItem, { onSelect: () => onAction("add-size"), children: copy?.addSize ?? "Add another size" }), _jsx(DropdownMenuSeparator, {}), _jsx(DropdownMenuItem, { onSelect: () =>
|
|
27
|
+
}, "aria-label": copy?.actionsLabel ?? "Product actions" }) }), _jsxs(DropdownMenuContent, { align: align, onClick: (e) => e.stopPropagation(), onCloseAutoFocus: handleMenuCloseAutoFocus, children: [_jsx(DropdownMenuItem, { onSelect: () => onAction("edit"), children: copy?.edit ?? "Edit product" }), _jsx(DropdownMenuItem, { onSelect: () => onAction("add-vintage"), children: addVariantLabel }), _jsx(DropdownMenuItem, { onSelect: () => onAction("add-size"), children: copy?.addSize ?? "Add another size" }), _jsx(DropdownMenuSeparator, {}), _jsx(DropdownMenuItem, { onSelect: () => {
|
|
28
|
+
pendingMoveRef.current = true;
|
|
29
|
+
}, children: copy?.move ?? "Move to portfolio…" }), extraItems != null ? (_jsxs(_Fragment, { children: [_jsx(DropdownMenuSeparator, {}), extraItems] })) : null, _jsx(DropdownMenuSeparator, {}), _jsx(DropdownMenuItem, { variant: "destructive", onSelect: () => onAction("delete"), children: copy?.delete ?? "Delete" })] })] }));
|
|
14
30
|
}
|
|
15
31
|
//# sourceMappingURL=product-kebab-menu.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"product-kebab-menu.js","sourceRoot":"","sources":["../../src/portfolio/product-kebab-menu.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AACxE,OAAO,EACL,YAAY,EACZ,mBAAmB,EACnB,gBAAgB,EAChB,qBAAqB,EACrB,mBAAmB,GACpB,MAAM,6BAA6B,CAAC;AAmCrC,MAAM,UAAU,gBAAgB,CAAC,EAC/B,QAAQ,EACR,MAAM,GAAG,KAAK,EACd,IAAI,EACJ,UAAU,EACV,KAAK,GAAG,KAAK,EACb,SAAS,GACa;IACtB,MAAM,eAAe,GAAG,MAAM;QAC5B,CAAC,CAAC,CAAC,IAAI,EAAE,UAAU,IAAI,qBAAqB,CAAC;QAC7C,CAAC,CAAC,CAAC,IAAI,EAAE,UAAU,IAAI,oBAAoB,CAAC,CAAC;IAC/C,OAAO,CACL,MAAC,YAAY,eACX,KAAC,mBAAmB,IAAC,OAAO,kBAC1B,KAAC,kBAAkB,IACjB,IAAI,EAAE,EAAE,EACR,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE;wBACb,8DAA8D;wBAC9D,mDAAmD;wBACnD,CAAC,CAAC,cAAc,EAAE,CAAC;wBACnB,CAAC,CAAC,eAAe,EAAE,CAAC;oBACtB,CAAC,gBACW,IAAI,EAAE,YAAY,IAAI,iBAAiB,GACnD,GACkB,EACtB,MAAC,mBAAmB,
|
|
1
|
+
{"version":3,"file":"product-kebab-menu.js","sourceRoot":"","sources":["../../src/portfolio/product-kebab-menu.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bottle-photos-history.d.ts","sourceRoot":"","sources":["../../src/portfolio-import/bottle-photos-history.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"bottle-photos-history.d.ts","sourceRoot":"","sources":["../../src/portfolio-import/bottle-photos-history.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEtD;;;;GAIG;AACH,MAAM,WAAW,uBAAuB;IACtC,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,qEAAqE;IACrE,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,wBAAwB;IACvC,KAAK,EAAE,uBAAuB,EAAE,CAAC;IACjC,kEAAkE;IAClE,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,oEAAoE;IACpE,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,CAAC,CAAC,EAAE,WAAW,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,EAClC,KAAK,EACL,eAAe,EACf,SAAiB,EACjB,KAAK,EACL,CAAC,EACD,SAAS,GACV,EAAE,wBAAwB,2CAmF1B"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useId } from "react";
|
|
2
3
|
import { motion } from "motion/react";
|
|
3
4
|
import { cn } from "../lib/utils.js";
|
|
4
5
|
import { interpolate } from "../portfolio/interpolate.js";
|
|
@@ -11,15 +12,16 @@ import { interpolate } from "../portfolio/interpolate.js";
|
|
|
11
12
|
*/
|
|
12
13
|
export function BottlePhotosHistory({ items, monthlyJobCount, isLoading = false, error, t, className, }) {
|
|
13
14
|
const tt = t ?? ((k, fb) => fb ?? k);
|
|
15
|
+
const titleId = useId();
|
|
14
16
|
if (error) {
|
|
15
|
-
return (_jsx("div", { className: cn("rounded-sm border border-[var(--tone-danger-border)]/40 bg-[var(--tone-danger-soft)] p-3 text-sm text-[var(--tone-danger-fg)]", className), children: tt("history.error_load", "Couldn't load bottle extraction jobs. The extraction service may be down; please retry in a moment.") }));
|
|
17
|
+
return (_jsx("div", { role: "alert", className: cn("rounded-sm border border-[var(--tone-danger-border)]/40 bg-[var(--tone-danger-soft)] p-3 text-sm text-[var(--tone-danger-fg)]", className), children: tt("history.error_load", "Couldn't load bottle extraction jobs. The extraction service may be down; please retry in a moment.") }));
|
|
16
18
|
}
|
|
17
19
|
if (isLoading) {
|
|
18
20
|
return (_jsx("p", { className: cn("text-sm text-muted-foreground", className), children: tt("detail.loading", "Loading…") }));
|
|
19
21
|
}
|
|
20
|
-
return (_jsxs("section", { className: className, children: [
|
|
21
|
-
|
|
22
|
-
|
|
22
|
+
return (_jsxs("section", { "aria-labelledby": titleId, className: className, children: [_jsxs("header", { className: "mb-4 flex flex-col gap-2 sm:flex-row sm:items-center sm:justify-between", children: [_jsx("h2", { id: titleId, className: "text-base/6 font-semibold tracking-tight text-foreground", children: tt("history.title", "Bottle extraction history") }), _jsx("p", { className: "text-sm/5 text-muted-foreground", children: interpolate(tt("history.monthly_counter", "Bottle extractions this month: {{count}}"), {
|
|
23
|
+
count: monthlyJobCount,
|
|
24
|
+
}) })] }), items.length === 0 ? (_jsxs(motion.div
|
|
23
25
|
// Transform-only entrance (the producer used an app-local delayed
|
|
24
26
|
// fade; opacity tweens on first paint trip the strict axe
|
|
25
27
|
// color-contrast gate, so the lib rises instead of fading).
|
|
@@ -27,7 +29,7 @@ export function BottlePhotosHistory({ items, monthlyJobCount, isLoading = false,
|
|
|
27
29
|
// Transform-only entrance (the producer used an app-local delayed
|
|
28
30
|
// fade; opacity tweens on first paint trip the strict axe
|
|
29
31
|
// color-contrast gate, so the lib rises instead of fading).
|
|
30
|
-
initial: { y: 8 }, animate: { y: 0 }, transition: { duration: 0.35, delay: 0.1, ease: "easeOut" }, className: "rounded-sm border border-dashed border-border p-10 text-center", children: [_jsx("h3", { className: "text-lg font-semibold", children: tt("history.empty", "No bottle extractions yet") }), _jsx("p", { className: "mt-1 text-sm text-muted-foreground", children: tt("history.empty_body", "When you upload a product photo and enable AI extract, we'll cut out the bottle here. Start from any product's gallery.") })] })) : (_jsx("ul", { className: "flex flex-col gap-3", children: items.map((job) => (_jsxs("li", { className: "rounded-
|
|
32
|
+
initial: { y: 8 }, animate: { y: 0 }, transition: { duration: 0.35, delay: 0.1, ease: "easeOut" }, className: "rounded-sm border border-dashed border-border p-10 text-center", children: [_jsx("h3", { className: "text-lg font-semibold", children: tt("history.empty", "No bottle extractions yet") }), _jsx("p", { className: "mt-1 text-sm text-muted-foreground", children: tt("history.empty_body", "When you upload a product photo and enable AI extract, we'll cut out the bottle here. Start from any product's gallery.") })] })) : (_jsx("ul", { className: "flex flex-col gap-3", children: items.map((job) => (_jsxs("li", { className: "flex min-w-0 flex-col items-start gap-2.5 rounded-xl border border-border/60 bg-card/60 p-3 sm:flex-row sm:items-center sm:gap-3", children: [_jsx(StatusPill, { status: job.status, t: tt }), _jsxs("div", { className: "min-w-0 flex-1", children: [_jsx("p", { className: "truncate text-sm/5 font-medium text-foreground", children: interpolate(tt("history.jobLabel", "Job {{id}}"), { id: job.id.slice(0, 8) }) }), _jsx("p", { className: "text-xs text-muted-foreground", children: _jsx("time", { dateTime: job.createdAt, children: new Date(job.createdAt).toLocaleString() }) })] })] }, job.id))) }))] }));
|
|
31
33
|
}
|
|
32
34
|
// ─── StatusPill (folded in from the producer route's local component) ──────
|
|
33
35
|
/** Known wire statuses → English fallback copy (producer `bottle-photos` locale). */
|
|
@@ -49,6 +51,6 @@ function StatusPill({ status, t }) {
|
|
|
49
51
|
// CEL-1116: localize BottleJobStatus; unknown wire values fall back to raw.
|
|
50
52
|
const fallback = STATUS_FALLBACKS[status];
|
|
51
53
|
const label = fallback === undefined ? status : t(`history.status.${status}`, fallback);
|
|
52
|
-
return _jsx("span", { className: `
|
|
54
|
+
return (_jsx("span", { className: `max-w-full min-w-0 break-words rounded-full px-2 py-1 text-xs/4 ${color}`, children: label }));
|
|
53
55
|
}
|
|
54
56
|
//# sourceMappingURL=bottle-photos-history.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bottle-photos-history.js","sourceRoot":"","sources":["../../src/portfolio-import/bottle-photos-history.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAClC,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AA0BvD;;;;;;GAMG;AACH,MAAM,UAAU,mBAAmB,CAAC,EAClC,KAAK,EACL,eAAe,EACf,SAAS,GAAG,KAAK,EACjB,KAAK,EACL,CAAC,EACD,SAAS,GACgB;IACzB,MAAM,EAAE,GAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"bottle-photos-history.js","sourceRoot":"","sources":["../../src/portfolio-import/bottle-photos-history.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bottle-photos-status.d.ts","sourceRoot":"","sources":["../../src/portfolio-import/bottle-photos-status.tsx"],"names":[],"mappings":"AAmCA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAStD,OAAO,EAIL,KAAK,SAAS,EACd,KAAK,aAAa,EACnB,MAAM,SAAS,CAAC;AA2EjB,MAAM,WAAW,uBAAuB;IACtC,GAAG,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,GAAG,QAAQ,GAAG,OAAO,GAAG,QAAQ,CAAC,CAAC;IAC/D,4EAA4E;IAC5E,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,8EAA8E;IAC9E,CAAC,CAAC,EAAE,WAAW,CAAC;IAChB;;;;OAIG;IACH,MAAM,CAAC,EAAE,IAAI,CAAC,SAAS,EAAE,QAAQ,GAAG,UAAU,CAAC,GAAG,IAAI,CAAC;IACvD;;;;OAIG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,0EAA0E;IAC1E,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,iBAAiB,CAAC,KAAK,IAAI,CAAC;CACnE;AAED,wBAAgB,kBAAkB,CAAC,EACjC,GAAG,EACH,UAAU,EACV,CAAY,EACZ,MAAa,EACb,gBAAgB,EAChB,UAAU,GACX,EAAE,uBAAuB,
|
|
1
|
+
{"version":3,"file":"bottle-photos-status.d.ts","sourceRoot":"","sources":["../../src/portfolio-import/bottle-photos-status.tsx"],"names":[],"mappings":"AAmCA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAStD,OAAO,EAIL,KAAK,SAAS,EACd,KAAK,aAAa,EACnB,MAAM,SAAS,CAAC;AA2EjB,MAAM,WAAW,uBAAuB;IACtC,GAAG,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,GAAG,QAAQ,GAAG,OAAO,GAAG,QAAQ,CAAC,CAAC;IAC/D,4EAA4E;IAC5E,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,8EAA8E;IAC9E,CAAC,CAAC,EAAE,WAAW,CAAC;IAChB;;;;OAIG;IACH,MAAM,CAAC,EAAE,IAAI,CAAC,SAAS,EAAE,QAAQ,GAAG,UAAU,CAAC,GAAG,IAAI,CAAC;IACvD;;;;OAIG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,0EAA0E;IAC1E,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,iBAAiB,CAAC,KAAK,IAAI,CAAC;CACnE;AAED,wBAAgB,kBAAkB,CAAC,EACjC,GAAG,EACH,UAAU,EACV,CAAY,EACZ,MAAa,EACb,gBAAgB,EAChB,UAAU,GACX,EAAE,uBAAuB,kDAiDzB"}
|
|
@@ -32,7 +32,7 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
|
|
|
32
32
|
* never SP3 / beverage / variant / cutout.
|
|
33
33
|
*/
|
|
34
34
|
import { AlertTriangle, Camera, CheckCircle2, Clock, Info, RefreshCw } from "lucide-react";
|
|
35
|
-
import { useEffect, useState } from "react";
|
|
35
|
+
import { useEffect, useId, useState } from "react";
|
|
36
36
|
import { interpolate } from "../portfolio/interpolate.js";
|
|
37
37
|
import { BOTTLE_VERDICT_PROBE_ATTEMPTS, BOTTLE_VERDICT_PROBE_INTERVAL_MS, deriveBottlePhotosState, groupSkippedProducts, skippedReasonKey, } from "./bottle-photos.js";
|
|
38
38
|
import { readBottleExtractionVerdict, readImageExtractionEnabled, } from "./types.js";
|
|
@@ -79,12 +79,12 @@ const SKIP_BREAKDOWN_FALLBACKS = {
|
|
|
79
79
|
"Couldn't find the right pages for {{count}} products",
|
|
80
80
|
],
|
|
81
81
|
missing_beverage_id: [
|
|
82
|
-
"Couldn't match {{count}} product to your
|
|
83
|
-
"Couldn't match {{count}} products to your
|
|
82
|
+
"Couldn't match {{count}} product to your collection",
|
|
83
|
+
"Couldn't match {{count}} products to your collection",
|
|
84
84
|
],
|
|
85
85
|
missing_both: [
|
|
86
|
-
"Couldn't place {{count}} product in the document or your
|
|
87
|
-
"Couldn't place {{count}} products in the document or your
|
|
86
|
+
"Couldn't place {{count}} product in the document or your collection",
|
|
87
|
+
"Couldn't place {{count}} products in the document or your collection",
|
|
88
88
|
],
|
|
89
89
|
not_paginated: [
|
|
90
90
|
"{{count}} product came from a file without pages",
|
|
@@ -92,6 +92,7 @@ const SKIP_BREAKDOWN_FALLBACKS = {
|
|
|
92
92
|
],
|
|
93
93
|
};
|
|
94
94
|
export function BottlePhotosStatus({ job, refetchJob, t = defaultT, sp3Job = null, bottlePhotosHref, onNavigate, }) {
|
|
95
|
+
const titleId = useId();
|
|
95
96
|
const requested = readImageExtractionEnabled(job.input);
|
|
96
97
|
const verdict = readBottleExtractionVerdict(job.result);
|
|
97
98
|
const probeActive = requested && job.status === "completed" && !verdict;
|
|
@@ -110,7 +111,7 @@ export function BottlePhotosStatus({ job, refetchJob, t = defaultT, sp3Job = nul
|
|
|
110
111
|
: state.kind === "failed"
|
|
111
112
|
? "border-[var(--tone-warning-border)]/40"
|
|
112
113
|
: "border-border/60";
|
|
113
|
-
return (_jsxs("section", { "aria-
|
|
114
|
+
return (_jsxs("section", { "aria-labelledby": titleId, role: "status", "aria-live": "polite", "data-state": state.kind, className: `mb-6 rounded-2xl border bg-card/60 px-4 py-4 shadow-xs sm:px-5 ${toneBorder}`, children: [_jsx("h3", { id: titleId, className: "text-base/6 font-semibold tracking-tight text-foreground", children: t("bottlePhotos.aria_label", "Bottle photos") }), _jsxs("div", { className: "mt-2 flex items-start gap-3", children: [_jsx(StateIcon, { kind: state.kind }), _jsx("div", { className: "min-w-0 flex-1", children: _jsx(StateBody, { state: state, t: t, bottlePhotosHref: bottlePhotosHref, onNavigate: onNavigate }) })] })] }));
|
|
114
115
|
}
|
|
115
116
|
function StateIcon({ kind }) {
|
|
116
117
|
if (kind === "done") {
|
|
@@ -148,7 +149,7 @@ function StateBody({ state, t, bottlePhotosHref, onNavigate, }) {
|
|
|
148
149
|
case "done":
|
|
149
150
|
return (_jsxs(_Fragment, { children: [_jsx("p", { className: "text-sm/6 font-medium text-foreground", children: t("bottlePhotos.done_title", "Bottle photos are ready") }), _jsxs("p", { className: "mt-0.5 text-xs text-muted-foreground", children: [state.verdict.eligibleCount > 0
|
|
150
151
|
? plural(t, "bottlePhotos.done_note", state.verdict.eligibleCount, "We extracted photos for {{count}} product.", "We extracted photos for {{count}} products.")
|
|
151
|
-
: t("bottlePhotos.done_note_plain", "Find them in your product galleries."), state.verdict.skippedCount > 0 ? (_jsxs(_Fragment, { children: [" ", plural(t, "bottlePhotos.done_partial", state.verdict.skippedCount, "{{count}} product didn't get photos this time.", "{{count}} products didn't get photos this time.")] })) : null] }), bottlePhotosHref ? (_jsxs("a", { href: bottlePhotosHref, onClick: onNavigate, className: "mt-2 inline-flex items-center gap-1.5 rounded-full border border-border bg-card px-3 py-1 text-xs font-medium text-foreground/80 transition hover:bg-muted active:scale-[0.98] focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-ring", children: [_jsx(Camera, { className: "size-3.5", "aria-hidden": "true" }), t("bottlePhotos.done_cta", "View
|
|
152
|
+
: t("bottlePhotos.done_note_plain", "Find them in your product galleries."), state.verdict.skippedCount > 0 ? (_jsxs(_Fragment, { children: [" ", plural(t, "bottlePhotos.done_partial", state.verdict.skippedCount, "{{count}} product didn't get photos this time.", "{{count}} products didn't get photos this time.")] })) : null] }), bottlePhotosHref ? (_jsxs("a", { href: bottlePhotosHref, onClick: onNavigate, className: "mt-2 inline-flex items-center gap-1.5 rounded-full border border-border bg-card px-3 py-1 text-xs font-medium text-foreground/80 transition hover:bg-muted active:scale-[0.98] focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-ring", children: [_jsx(Camera, { className: "size-3.5", "aria-hidden": "true" }), t("bottlePhotos.done_cta", "View bottle photos")] })) : null] }));
|
|
152
153
|
case "skipped": {
|
|
153
154
|
const breakdown = groupSkippedProducts(state.verdict);
|
|
154
155
|
const reasonKey = skippedReasonKey(state.verdict.reason);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bottle-photos-status.js","sourceRoot":"","sources":["../../src/portfolio-import/bottle-photos-status.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC3F,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"bottle-photos-status.js","sourceRoot":"","sources":["../../src/portfolio-import/bottle-photos-status.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"confirmations-panel.d.ts","sourceRoot":"","sources":["../../src/portfolio-import/confirmations-panel.tsx"],"names":[],"mappings":"AAsCA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAEL,KAAK,WAAW,EAChB,KAAK,cAAc,EACnB,KAAK,qBAAqB,EAC3B,MAAM,SAAS,CAAC;AAEjB,MAAM,WAAW,uBAAuB;IACtC,uEAAuE;IACvE,CAAC,CAAC,EAAE,WAAW,CAAC;IAChB,wFAAwF;IACxF,KAAK,EAAE,qBAAqB,EAAE,CAAC;IAC/B,SAAS,EAAE,OAAO,CAAC;IACnB,oEAAoE;IACpE,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,iFAAiF;IACjF,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,KAAK,OAAO,CAAC,cAAc,CAAC,CAAC;IAC1E,2DAA2D;IAC3D,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7C;;;;OAIG;IACH,cAAc,EAAE,OAAO,CAAC;IACxB,sDAAsD;IACtD,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC;;;;;;;OAOG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;
|
|
1
|
+
{"version":3,"file":"confirmations-panel.d.ts","sourceRoot":"","sources":["../../src/portfolio-import/confirmations-panel.tsx"],"names":[],"mappings":"AAsCA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAEL,KAAK,WAAW,EAChB,KAAK,cAAc,EACnB,KAAK,qBAAqB,EAC3B,MAAM,SAAS,CAAC;AAEjB,MAAM,WAAW,uBAAuB;IACtC,uEAAuE;IACvE,CAAC,CAAC,EAAE,WAAW,CAAC;IAChB,wFAAwF;IACxF,KAAK,EAAE,qBAAqB,EAAE,CAAC;IAC/B,SAAS,EAAE,OAAO,CAAC;IACnB,oEAAoE;IACpE,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,iFAAiF;IACjF,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,KAAK,OAAO,CAAC,cAAc,CAAC,CAAC;IAC1E,2DAA2D;IAC3D,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7C;;;;OAIG;IACH,cAAc,EAAE,OAAO,CAAC;IACxB,sDAAsD;IACtD,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC;;;;;;;OAOG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AA6FD,wBAAgB,kBAAkB,CAAC,EACjC,CAAY,EACZ,KAAK,EACL,SAAS,EACT,KAAK,EACL,SAAS,EACT,SAAS,EACT,cAAc,EACd,eAAe,EACf,cAAqB,EACrB,WAAW,EACX,gBAAuB,EACvB,SAAS,GACV,EAAE,uBAAuB,kDAuQzB"}
|
|
@@ -46,6 +46,9 @@ const CARD_MODAL_FALLBACKS = {
|
|
|
46
46
|
"comparison.matching_toggle.show_other": "Show {{count}} matching fields",
|
|
47
47
|
"confirmation.card.headline_same_vintage": "We found a near-match: {{name_a}} and {{name_b}}.",
|
|
48
48
|
"confirmation.card.headline_vintages": "We found {{name_base}} in two vintages: {{vintage_a}} and {{vintage_b}}.",
|
|
49
|
+
"confirmation.card.entity": "Product",
|
|
50
|
+
"confirmation.card.candidate": "Possible match",
|
|
51
|
+
"confirmation.card.vintage": "Vintage",
|
|
49
52
|
"confirmation.card.eyebrow_potential_duplicate": "Potential duplicate · {{confidence}}% match",
|
|
50
53
|
"confirmation.card.eyebrow_analyzing": "Analyzing…",
|
|
51
54
|
"confirmation.card.confirm_merge": "Same product — merge",
|
|
@@ -197,12 +200,16 @@ export function ConfirmationsPanel({ t = defaultT, pairs, isLoading, error, onCo
|
|
|
197
200
|
.filter(Boolean)
|
|
198
201
|
.join(" ");
|
|
199
202
|
const importDate = formatImportDate(row.importedAt);
|
|
200
|
-
const
|
|
203
|
+
const importJobId = row.jobId?.trim() || null;
|
|
204
|
+
const showOrigin = showImportOrigin && Boolean(importDate || importJobId);
|
|
205
|
+
const matchExplanation = row.llmExplanation?.trim();
|
|
201
206
|
const needsReview = row.needsReview === true || row.status === "needs_review";
|
|
202
207
|
const rowLoading = pendingPairId === row.id || (confirmPending && pendingPairId === null);
|
|
203
|
-
return (_jsxs("li", { id: `pair-${row.id}`, className: classes || undefined, children: [showOrigin && (
|
|
204
|
-
|
|
205
|
-
|
|
208
|
+
return (_jsxs("li", { id: `pair-${row.id}`, className: classes || undefined, children: [showOrigin && (_jsxs("div", { className: "mb-2 flex flex-wrap items-center gap-x-2 gap-y-1 text-xs text-muted-foreground", children: [importDate && (_jsx("span", { children: interpolate(t("confirmations.from_import", "From the {{date}} import"), {
|
|
209
|
+
date: importDate,
|
|
210
|
+
}) })), importJobId && (_jsxs(_Fragment, { children: [importDate && _jsx("span", { "aria-hidden": "true", children: "\u00B7" }), _jsx("span", { title: importJobId, children: interpolate(t("confirmations.job_id", "Job #{{jobId}}"), {
|
|
211
|
+
jobId: importJobId.slice(0, 8),
|
|
212
|
+
}) })] }))] })), matchExplanation && (_jsxs("p", { className: "mb-3 rounded-xl bg-muted/40 px-3 py-2 text-sm/6 text-muted-foreground", children: [_jsxs("span", { className: "font-medium text-foreground", children: [t("confirmations.match_reason", "Why this was flagged"), ":"] }), " ", matchExplanation] })), _jsx(ConfirmationCard, { pair: pair, confidence: parseConfidence(row.llmConfidence), inlineDiffFields: toInlineDiff(row), onConfirm: ({ pairId, keepDetailsFromId }) => {
|
|
206
213
|
if (pairId === row.id)
|
|
207
214
|
void handleConfirm(row, keepDetailsFromId);
|
|
208
215
|
}, onDismiss: (pairId) => {
|
|
@@ -235,12 +242,16 @@ function toCardPair(row) {
|
|
|
235
242
|
name: row.entityName ?? "—",
|
|
236
243
|
vintage: row.entityVintage ?? null,
|
|
237
244
|
fieldCount: row.entityFieldCount ?? null,
|
|
245
|
+
producer: row.entityProducer ?? null,
|
|
246
|
+
region: row.entityRegion ?? null,
|
|
238
247
|
},
|
|
239
248
|
b: {
|
|
240
249
|
id: row.candidateId,
|
|
241
250
|
name: row.candidateName ?? "—",
|
|
242
251
|
vintage: row.candidateVintage ?? null,
|
|
243
252
|
fieldCount: row.candidateFieldCount ?? null,
|
|
253
|
+
producer: row.candidateProducer ?? null,
|
|
254
|
+
region: row.candidateRegion ?? null,
|
|
244
255
|
},
|
|
245
256
|
baseName: row.baseName ?? null,
|
|
246
257
|
llmMergeDirection: row.llmMergeDirection === "a_to_b" || row.llmMergeDirection === "b_to_a"
|