@cellarnode/ui 0.19.2 → 0.20.1
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/chat-ws.d.ts +56 -0
- package/dist/chat/chat-ws.d.ts.map +1 -1
- package/dist/chat/chat-ws.js +103 -0
- package/dist/chat/chat-ws.js.map +1 -1
- package/dist/chat/index.d.ts +1 -1
- package/dist/chat/index.d.ts.map +1 -1
- package/dist/offer/attachments-card.d.ts +7 -1
- package/dist/offer/attachments-card.d.ts.map +1 -1
- package/dist/offer/attachments-card.js +3 -3
- package/dist/offer/attachments-card.js.map +1 -1
- package/dist/offer/index.d.ts +1 -1
- package/dist/offer/index.d.ts.map +1 -1
- package/dist/offer/negotiation-section.d.ts +9 -1
- package/dist/offer/negotiation-section.d.ts.map +1 -1
- package/dist/offer/negotiation-section.js +2 -2
- package/dist/offer/negotiation-section.js.map +1 -1
- package/dist/offer/offer-document.d.ts +24 -24
- package/dist/offer/offer-document.d.ts.map +1 -1
- package/dist/offer/offer-document.js +269 -49
- package/dist/offer/offer-document.js.map +1 -1
- package/dist/offer/offer-document.stories.d.ts +11 -0
- package/dist/offer/offer-document.stories.d.ts.map +1 -1
- package/dist/offer/offer-document.stories.js +136 -84
- package/dist/offer/offer-document.stories.js.map +1 -1
- package/dist/offer/types.d.ts +81 -0
- package/dist/offer/types.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { useMemo } from "react";
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useEffect, useMemo, useRef, useState } from "react";
|
|
3
3
|
import { cn } from "../lib/utils";
|
|
4
4
|
import { ShadcnButton as Button } from "../components/shadcn-button";
|
|
5
5
|
import { AttachmentsCard } from "./attachments-card";
|
|
6
6
|
import { BuyerNotesCard } from "./buyer-notes-card";
|
|
7
|
+
import { CounterSlideOver } from "./counter-slide-over";
|
|
7
8
|
import { FactsCard } from "./facts-card";
|
|
8
9
|
import { MatchCompatibilityCard } from "./match-compatibility-card";
|
|
9
10
|
import { NegotiationSection } from "./negotiation-section";
|
|
@@ -22,7 +23,31 @@ const DEFAULT_ORDER = [
|
|
|
22
23
|
"attachments",
|
|
23
24
|
"negotiation",
|
|
24
25
|
];
|
|
25
|
-
|
|
26
|
+
/**
|
|
27
|
+
* Map the backend offer status enum onto the narrower FactsCardStatus
|
|
28
|
+
* surface the rail + facts strip render against. Unknown strings fall
|
|
29
|
+
* through to "proposed" so a partial payload still renders.
|
|
30
|
+
*/
|
|
31
|
+
function mapOfferStatus(raw) {
|
|
32
|
+
switch (raw) {
|
|
33
|
+
case "counter_pending":
|
|
34
|
+
return "counter_pending";
|
|
35
|
+
case "accepted":
|
|
36
|
+
return "accepted";
|
|
37
|
+
case "declined":
|
|
38
|
+
case "rejected":
|
|
39
|
+
return "declined";
|
|
40
|
+
case "expired":
|
|
41
|
+
return "expired";
|
|
42
|
+
case "withdrawn":
|
|
43
|
+
return "withdrawn";
|
|
44
|
+
// Negotiation "working" states — draft / submitted / sent /
|
|
45
|
+
// in_negotiation / proposed — all render as "proposed" to the rail.
|
|
46
|
+
default:
|
|
47
|
+
return "proposed";
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
function deriveRailActions(status, viewerInitiator) {
|
|
26
51
|
switch (status) {
|
|
27
52
|
case "proposed":
|
|
28
53
|
return viewerInitiator ? ["withdraw"] : ["counter", "accept", "decline"];
|
|
@@ -39,11 +64,6 @@ function producerCtas(status, viewerInitiator) {
|
|
|
39
64
|
return [];
|
|
40
65
|
}
|
|
41
66
|
}
|
|
42
|
-
// Blocker B9 — CTA aria-label composition. Screen-reader users should
|
|
43
|
-
// hear the full context ("Accept offer for Barolo DOCG 2020 from Fattoria
|
|
44
|
-
// San Marco") rather than a raw UUID ("Accept offer offer-1"). When the
|
|
45
|
-
// beverage or producer name is missing (defensive — this should not
|
|
46
|
-
// happen in practice), we fall back to the offer id segment.
|
|
47
67
|
const ACTION_VERB = {
|
|
48
68
|
counter: "Counter",
|
|
49
69
|
accept: "Accept",
|
|
@@ -54,23 +74,12 @@ const ACTION_VERB = {
|
|
|
54
74
|
};
|
|
55
75
|
function ctaAriaLabel(action, beverageName, producerName, offerId) {
|
|
56
76
|
const verb = ACTION_VERB[action];
|
|
57
|
-
if (beverageName && producerName)
|
|
77
|
+
if (beverageName && producerName)
|
|
58
78
|
return `${verb} offer for ${beverageName} from ${producerName}`;
|
|
59
|
-
}
|
|
60
79
|
if (beverageName)
|
|
61
80
|
return `${verb} offer for ${beverageName}`;
|
|
62
|
-
// Defensive fallback — should never fire because OfferDocumentProps
|
|
63
|
-
// requires `beverage.name` and `producer.name`, but keeps the aria-label
|
|
64
|
-
// non-empty even if a consumer passes an empty string.
|
|
65
81
|
return `${verb} offer ${offerId}`;
|
|
66
82
|
}
|
|
67
|
-
// Blocker B9 / spec §19 — Screen-reader announcement on offer state
|
|
68
|
-
// transitions. The OfferDocument rail exposes a dedicated
|
|
69
|
-
// `role="status"` live region separate from FactsCard's price-focused
|
|
70
|
-
// live region. It emits a composed sentence like
|
|
71
|
-
// "Offer accepted — no further counters possible"
|
|
72
|
-
// whenever the `status` prop changes. This is the region that the
|
|
73
|
-
// `StateTransitionAnnouncement` story asserts against.
|
|
74
83
|
const STATE_TRANSITION_SENTENCE = {
|
|
75
84
|
proposed: "Offer proposed — awaiting counterparty response",
|
|
76
85
|
counter_pending: "Counter pending — awaiting review",
|
|
@@ -79,7 +88,149 @@ const STATE_TRANSITION_SENTENCE = {
|
|
|
79
88
|
expired: "Offer expired — validity window closed",
|
|
80
89
|
withdrawn: "Offer withdrawn by initiator",
|
|
81
90
|
};
|
|
82
|
-
|
|
91
|
+
function numberOrNull(v) {
|
|
92
|
+
if (v == null)
|
|
93
|
+
return null;
|
|
94
|
+
const n = typeof v === "string" ? Number(v) : v;
|
|
95
|
+
return Number.isFinite(n) ? n : null;
|
|
96
|
+
}
|
|
97
|
+
function deriveTerms(offer) {
|
|
98
|
+
const price = numberOrNull(offer.price) ?? 0;
|
|
99
|
+
const volume = numberOrNull(offer.availableVolume ?? offer.volume) ?? 0;
|
|
100
|
+
const validUntil = typeof offer.validThrough === "string"
|
|
101
|
+
? offer.validThrough
|
|
102
|
+
: offer.validThrough instanceof Date
|
|
103
|
+
? offer.validThrough.toISOString()
|
|
104
|
+
: undefined;
|
|
105
|
+
return {
|
|
106
|
+
price,
|
|
107
|
+
currency: offer.currency ?? "EUR",
|
|
108
|
+
volume,
|
|
109
|
+
paymentTerms: offer.paymentTerms ?? undefined,
|
|
110
|
+
incoterms: offer.deliveryTerms ?? undefined,
|
|
111
|
+
validUntil,
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
function derivePreviousTerms(offer) {
|
|
115
|
+
const prev = offer.previousRoundTerms;
|
|
116
|
+
if (!prev || typeof prev !== "object")
|
|
117
|
+
return undefined;
|
|
118
|
+
const price = numberOrNull(prev.price);
|
|
119
|
+
const volume = numberOrNull(prev.volume);
|
|
120
|
+
if (price == null && volume == null)
|
|
121
|
+
return undefined;
|
|
122
|
+
return {
|
|
123
|
+
price: price ?? 0,
|
|
124
|
+
currency: prev.currency ?? offer.currency ?? "EUR",
|
|
125
|
+
volume: volume ?? 0,
|
|
126
|
+
paymentTerms: prev.paymentTerms,
|
|
127
|
+
incoterms: prev.incoterms,
|
|
128
|
+
};
|
|
129
|
+
}
|
|
130
|
+
function deriveProducer(offer, parties) {
|
|
131
|
+
const snap = (offer.orgSnapshot ?? {});
|
|
132
|
+
const region = typeof snap.region === "string" ? snap.region : undefined;
|
|
133
|
+
const city = typeof snap.city === "string" ? snap.city : undefined;
|
|
134
|
+
const country = parties.producer.country ?? (typeof snap.country === "string" ? snap.country : undefined);
|
|
135
|
+
const location = [city, region, country].filter(Boolean).join(", ") || undefined;
|
|
136
|
+
return {
|
|
137
|
+
orgId: parties.producer.orgId,
|
|
138
|
+
name: parties.producer.name ?? (typeof snap.name === "string" ? snap.name : "Producer"),
|
|
139
|
+
location,
|
|
140
|
+
logoUrl: parties.producer.logoUrl ?? (typeof snap.logoUrl === "string" ? snap.logoUrl : undefined),
|
|
141
|
+
primaryContactName: typeof snap.primaryContactName === "string" ? snap.primaryContactName : undefined,
|
|
142
|
+
primaryContactEmail: typeof snap.primaryContactEmail === "string" ? snap.primaryContactEmail : undefined,
|
|
143
|
+
};
|
|
144
|
+
}
|
|
145
|
+
function deriveImporter(parties) {
|
|
146
|
+
if (!parties.importer) {
|
|
147
|
+
// A declarable placeholder — PartiesCard tolerates "TBD" / empty name and
|
|
148
|
+
// rendering stays stable for draft / unsent offers that have no recipient yet.
|
|
149
|
+
return { orgId: "", name: "Pending recipient", location: undefined };
|
|
150
|
+
}
|
|
151
|
+
return {
|
|
152
|
+
orgId: parties.importer.orgId,
|
|
153
|
+
name: parties.importer.name ?? "Importer",
|
|
154
|
+
location: parties.importer.country ?? undefined,
|
|
155
|
+
logoUrl: parties.importer.logoUrl ?? undefined,
|
|
156
|
+
};
|
|
157
|
+
}
|
|
158
|
+
function deriveOpportunity(offer) {
|
|
159
|
+
const snap = (offer.opportunitySnapshot ?? {});
|
|
160
|
+
const title = typeof snap.name === "string" ? snap.name : "Opportunity";
|
|
161
|
+
const deadlineIso = typeof snap.deadline === "string" ? snap.deadline : snap.deadline instanceof Date ? snap.deadline.toISOString() : null;
|
|
162
|
+
const closingDays = deadlineIso
|
|
163
|
+
? Math.max(0, Math.ceil((new Date(deadlineIso).getTime() - Date.now()) / (1000 * 60 * 60 * 24)))
|
|
164
|
+
: 0;
|
|
165
|
+
const priceMax = numberOrNull(snap.priceMax);
|
|
166
|
+
const volumeLiters = numberOrNull(snap.volumeLiters);
|
|
167
|
+
const requirements = [];
|
|
168
|
+
if (typeof snap.description === "string" && snap.description.trim())
|
|
169
|
+
requirements.push(snap.description);
|
|
170
|
+
if (Array.isArray(snap.certificateRequirements)) {
|
|
171
|
+
for (const c of snap.certificateRequirements) {
|
|
172
|
+
if (typeof c === "string")
|
|
173
|
+
requirements.push(`Certification: ${c}`);
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
return {
|
|
177
|
+
id: offer.opportunityId ?? "",
|
|
178
|
+
title,
|
|
179
|
+
closingDays,
|
|
180
|
+
priceCeilingEuro: priceMax ?? undefined,
|
|
181
|
+
volumeOptions: volumeLiters != null ? [volumeLiters] : undefined,
|
|
182
|
+
requirements: requirements.length ? requirements : undefined,
|
|
183
|
+
};
|
|
184
|
+
}
|
|
185
|
+
function deriveProduct(offer) {
|
|
186
|
+
const snap = (offer.variantSnapshot ?? {});
|
|
187
|
+
const bevType = (snap.beverageType ?? {});
|
|
188
|
+
const beverage = {
|
|
189
|
+
id: typeof snap.beverageId === "string" ? snap.beverageId : "",
|
|
190
|
+
name: typeof snap.beverageName === "string" ? snap.beverageName : "Product",
|
|
191
|
+
producer: typeof snap.producer === "string" ? snap.producer : undefined,
|
|
192
|
+
countryOfOrigin: typeof snap.countryOfOrigin === "string" ? snap.countryOfOrigin : undefined,
|
|
193
|
+
beverageType: {
|
|
194
|
+
category: typeof bevType.category === "string" ? bevType.category : undefined,
|
|
195
|
+
subtype: typeof bevType.subtype === "string" ? bevType.subtype : undefined,
|
|
196
|
+
},
|
|
197
|
+
};
|
|
198
|
+
const variant = {
|
|
199
|
+
id: typeof snap.variantId === "string"
|
|
200
|
+
? snap.variantId
|
|
201
|
+
: (offer.variantId ?? ""),
|
|
202
|
+
vintage: typeof snap.vintage === "number" ? snap.vintage : null,
|
|
203
|
+
packaging: typeof snap.packaging === "string" ? snap.packaging : undefined,
|
|
204
|
+
closure: typeof snap.closure === "string" ? snap.closure : undefined,
|
|
205
|
+
abv: numberOrNull(snap.abv),
|
|
206
|
+
residualSugar: numberOrNull(snap.residualSugar),
|
|
207
|
+
organic: Boolean(snap.organic),
|
|
208
|
+
fairtrade: Boolean(snap.fairtrade),
|
|
209
|
+
sustainable: Boolean(snap.sustainable),
|
|
210
|
+
imageUrl: typeof snap.imageUrl === "string" ? snap.imageUrl : null,
|
|
211
|
+
};
|
|
212
|
+
return { beverage, variant };
|
|
213
|
+
}
|
|
214
|
+
const NEUTRAL_EVALUATION = {
|
|
215
|
+
headline: "partial",
|
|
216
|
+
headlineSummary: "Match evaluation unavailable",
|
|
217
|
+
criteria: [],
|
|
218
|
+
freeTextFields: [],
|
|
219
|
+
hiddenReasons: [],
|
|
220
|
+
};
|
|
221
|
+
export function OfferDocument({ offer, matchEvaluation, counts, fx, presence, parties, timelineEvents, hasMoreTimeline: _hasMoreTimeline, onLoadOlderTimeline, perspective, viewerOrgId, tenderCurrency, onCounter, onAccept, onDecline, onWithdraw, onUploadAttachment, onReopen, onRenew, isReconnecting, sections, onOpenAttachment, className, }) {
|
|
222
|
+
const offerId = offer.offerId ?? offer.id ?? "";
|
|
223
|
+
const status = mapOfferStatus(offer.status);
|
|
224
|
+
const round = offer.currentRound ?? 1;
|
|
225
|
+
const terms = useMemo(() => deriveTerms(offer), [offer]);
|
|
226
|
+
const previousTerms = useMemo(() => derivePreviousTerms(offer), [offer]);
|
|
227
|
+
const producer = useMemo(() => deriveProducer(offer, parties), [offer, parties]);
|
|
228
|
+
const importer = useMemo(() => deriveImporter(parties), [parties]);
|
|
229
|
+
const opportunity = useMemo(() => deriveOpportunity(offer), [offer]);
|
|
230
|
+
const { beverage, variant } = useMemo(() => deriveProduct(offer), [offer]);
|
|
231
|
+
const evaluation = matchEvaluation ?? NEUTRAL_EVALUATION;
|
|
232
|
+
const attachments = offer.attachments ?? [];
|
|
233
|
+
const presenceList = presence ?? [];
|
|
83
234
|
const orderedIds = useMemo(() => {
|
|
84
235
|
const overrides = sections ?? {};
|
|
85
236
|
const active = DEFAULT_ORDER.filter((id) => !overrides[id]?.hidden);
|
|
@@ -90,36 +241,105 @@ export function OfferDocument({ offerId, status, round, perspective, viewerOrgId
|
|
|
90
241
|
});
|
|
91
242
|
}, [sections]);
|
|
92
243
|
const viewerInitiator = (status === "proposed" && viewerOrgId === producer.orgId) ||
|
|
93
|
-
(status === "counter_pending" &&
|
|
94
|
-
const
|
|
95
|
-
// Blocker B3 — viewerAdvantage is per-criterion and per-round. It must
|
|
96
|
-
// come from the backend evaluator (Plan 2) where each `MatchCriterion`
|
|
97
|
-
// carries its own `viewerAdvantage` scoped to the viewer. A flat
|
|
98
|
-
// page-level constant is wrong per spec §11: "Delta polarity: Producer:
|
|
99
|
-
// emerald · Importer: rose" describes a per-field rule, not a page-wide
|
|
100
|
-
// tone. We do NOT compute one here. Downstream cards that need the top-
|
|
101
|
-
// line viewer advantage (e.g. FactsCard price delta) derive it from the
|
|
102
|
-
// `price` criterion's own `viewerAdvantage`, with "neutral" as a safe
|
|
103
|
-
// fallback when the criterion is missing / FX-unavailable (§6.6).
|
|
244
|
+
(status === "counter_pending" && timelineEvents[timelineEvents.length - 1]?.actorOrgId === viewerOrgId);
|
|
245
|
+
const railActions = deriveRailActions(status, viewerInitiator);
|
|
104
246
|
const priceCriterion = evaluation.criteria.find((c) => c.id === "price");
|
|
105
247
|
const topLineAdvantage = priceCriterion?.viewerAdvantage ?? "neutral";
|
|
106
|
-
// Stable document-generation timestamp: captured once per mount, not on every re-render.
|
|
107
248
|
const printedAt = useMemo(() => new Date().toISOString(), []);
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
249
|
+
/* ── Composer (CounterSlideOver) — owned internally ── */
|
|
250
|
+
const [composerOpen, setComposerOpen] = useState(false);
|
|
251
|
+
/**
|
|
252
|
+
* Mid-compose race banner: when the counterparty lands a new round while
|
|
253
|
+
* the composer is open, we surface a diff banner inside the composer and
|
|
254
|
+
* let the user re-pre-fill from the new round. The banner is driven by a
|
|
255
|
+
* latched `bannerRound` — if the prop `round` changes while the composer
|
|
256
|
+
* is open AND differs from the round we opened at, the banner fires.
|
|
257
|
+
*/
|
|
258
|
+
const openedAtRound = useRef(null);
|
|
259
|
+
const [composerBanner, setComposerBanner] = useState(undefined);
|
|
260
|
+
useEffect(() => {
|
|
261
|
+
if (!composerOpen)
|
|
262
|
+
return;
|
|
263
|
+
if (openedAtRound.current == null) {
|
|
264
|
+
openedAtRound.current = round;
|
|
265
|
+
return;
|
|
266
|
+
}
|
|
267
|
+
if (round !== openedAtRound.current) {
|
|
268
|
+
setComposerBanner({
|
|
269
|
+
kind: "incoming_counter",
|
|
270
|
+
roundN: round,
|
|
271
|
+
headline: "The counterparty sent a new counter while you were composing.",
|
|
272
|
+
onDismiss: () => setComposerBanner(undefined),
|
|
273
|
+
onReset: () => setComposerBanner(undefined),
|
|
274
|
+
});
|
|
275
|
+
}
|
|
276
|
+
}, [composerOpen, round]);
|
|
277
|
+
useEffect(() => {
|
|
278
|
+
if (!composerOpen) {
|
|
279
|
+
openedAtRound.current = null;
|
|
280
|
+
setComposerBanner(undefined);
|
|
281
|
+
}
|
|
282
|
+
}, [composerOpen]);
|
|
283
|
+
const handleRailClick = async (a) => {
|
|
284
|
+
try {
|
|
285
|
+
switch (a) {
|
|
286
|
+
case "counter":
|
|
287
|
+
setComposerOpen(true);
|
|
288
|
+
return;
|
|
289
|
+
case "accept":
|
|
290
|
+
await onAccept();
|
|
291
|
+
return;
|
|
292
|
+
case "decline":
|
|
293
|
+
await onDecline();
|
|
294
|
+
return;
|
|
295
|
+
case "withdraw":
|
|
296
|
+
await onWithdraw();
|
|
297
|
+
return;
|
|
298
|
+
case "reopen":
|
|
299
|
+
await onReopen?.();
|
|
300
|
+
return;
|
|
301
|
+
case "renew":
|
|
302
|
+
await onRenew?.();
|
|
303
|
+
return;
|
|
304
|
+
}
|
|
305
|
+
}
|
|
306
|
+
catch {
|
|
307
|
+
/* Dashboard owns toast / retry — we stay silent here. */
|
|
308
|
+
}
|
|
309
|
+
};
|
|
310
|
+
const attachmentInputRef = useRef(null);
|
|
311
|
+
const handleAttachmentUpload = () => {
|
|
312
|
+
attachmentInputRef.current?.click();
|
|
313
|
+
};
|
|
314
|
+
const handleAttachmentFileChange = async (event) => {
|
|
315
|
+
const file = event.target.files?.[0];
|
|
316
|
+
event.target.value = ""; // reset so the same file can be re-selected
|
|
317
|
+
if (!file || !onUploadAttachment)
|
|
318
|
+
return;
|
|
319
|
+
try {
|
|
320
|
+
await onUploadAttachment(file);
|
|
321
|
+
}
|
|
322
|
+
catch {
|
|
323
|
+
/* Dashboard owns toast. */
|
|
324
|
+
}
|
|
325
|
+
};
|
|
326
|
+
return (_jsxs("div", { "data-offer-document": true, "data-offer-id": offerId, "data-printed-at": printedAt, className: cn("mx-auto w-full max-w-6xl space-y-4 p-4", className), children: [isReconnecting && (_jsx("div", { role: "status", "aria-live": "polite", className: "rounded-lg border border-amber-200 bg-amber-50 px-3 py-2 text-xs text-amber-900 dark:border-amber-900 dark:bg-amber-950 dark:text-amber-50", children: "Reconnecting\u2026" })), _jsxs("div", { className: "flex items-center justify-between", children: [_jsxs("nav", { "data-offer-nav-chrome": true, "aria-label": "breadcrumb", className: "text-xs text-muted-foreground", children: [perspective === "producer" ? "Sprint board" : "Offers", " / Offer ", offerId.slice(0, 8)] }), _jsx(OfferExportButton, { offerId: offerId })] }), _jsx("div", { role: "status", "aria-live": "polite", className: "sr-only", children: STATE_TRANSITION_SENTENCE[status] }), _jsx("div", { "data-offer-facts-card": true, children: _jsx(FactsCard, { status: status, round: round, terms: terms, previousPrice: previousTerms?.price, viewerAdvantage: topLineAdvantage, perspective: perspective, presence: presenceList, fx: fx ?? undefined, tenderCurrency: tenderCurrency, onExport: () => window.print() }) }), _jsxs("div", { className: "grid grid-cols-1 gap-4 lg:grid-cols-[minmax(0,1fr)_220px]", children: [_jsx("main", { className: "space-y-4", children: orderedIds.map((id) => (_jsxs("div", { "data-offer-section": true, "data-section-id": id, children: [id === "parties" && (_jsx(PartiesCard, { producer: producer, importer: importer, viewerOrgId: viewerOrgId, variant: sections?.parties?.defaultOpen ? "expanded" : "collapsed" })), id === "opportunity" && (_jsx(OpportunityCard, { opportunity: opportunity, variant: sections?.opportunity?.defaultOpen ? "expanded" : "collapsed" })), id === "product" && (_jsx(OfferProductCard, { variant: variant, beverage: beverage, variantDisplay: sections?.product?.defaultOpen === false ? "collapsed" : "expanded" })), id === "terms" && (_jsx(TermsCard, { terms: terms, previousTerms: previousTerms, variant: sections?.terms?.defaultOpen ? "expanded" : "collapsed", perspective: perspective })), id === "match" && _jsx(MatchCompatibilityCard, { evaluation: evaluation, perspective: perspective }), id === "notes" && _jsx(BuyerNotesCard, { notes: evaluation.freeTextFields }), id === "attachments" && (_jsx(AttachmentsCard, { attachments: attachments, onOpen: (a) => onOpenAttachment?.(a), onUpload: onUploadAttachment ? handleAttachmentUpload : undefined })), id === "negotiation" && (_jsx(NegotiationSection, { events: timelineEvents, viewerOrgId: viewerOrgId, viewerRole: perspective, onOpenComposer: () => setComposerOpen(true), onLoadOlder: onLoadOlderTimeline }))] }, id))) }), _jsx("aside", { "data-offer-rail": true, "aria-label": "Actions and meta", className: "hidden lg:block", children: _jsxs("div", { className: "sticky top-24 space-y-3", children: [_jsxs("div", { className: "rounded-xl border border-border/60 bg-card p-3", children: [_jsx("div", { className: "text-xs uppercase tracking-wide text-muted-foreground", children: "Actions" }), _jsxs("div", { className: "mt-2 flex flex-wrap gap-2", children: [railActions.length === 0 && _jsx("span", { className: "text-xs text-muted-foreground", children: "No actions available." }), railActions.map((a) => (_jsx(Button, { size: "sm", "aria-label": ctaAriaLabel(a, beverage.name, producer.name, offerId), onClick: () => void handleRailClick(a), children: ACTION_VERB[a] }, a)))] })] }), _jsxs("div", { className: "rounded-xl border border-border/60 bg-card p-3 text-xs", children: [_jsx("div", { className: "uppercase tracking-wide text-muted-foreground", children: "Status" }), _jsx("div", { className: "mt-1 font-medium capitalize", children: status.replace("_", " ") }), _jsxs("div", { className: "mt-1 text-muted-foreground", children: ["R", round, " of 4 max"] })] }), _jsxs("div", { className: "rounded-xl border border-border/60 bg-card p-3 text-xs", children: [_jsx("div", { className: "uppercase tracking-wide text-muted-foreground", children: "Offer" }), _jsx("div", { className: "mt-1 font-mono", children: offerId }), _jsxs("div", { className: "mt-1 text-muted-foreground", children: [(counts?.messages ?? timelineEvents.length), " events \u00B7 ", counts?.attachments ?? attachments.length, " files"] })] }), _jsxs("div", { className: "rounded-xl border border-border/60 bg-card p-3", children: [_jsx("div", { className: "text-xs uppercase tracking-wide text-muted-foreground", children: "Export" }), _jsx("div", { className: "mt-2", children: _jsx(OfferExportButton, { offerId: offerId }) })] })] }) })] }), _jsx("input", { ref: attachmentInputRef, type: "file", className: "sr-only", "aria-hidden": true, onChange: handleAttachmentFileChange }), _jsx(CounterSlideOver, { open: composerOpen, onClose: () => setComposerOpen(false), offerId: offerId, round: round, allowedIncoterms: ["EXW", "FCA", "CIF", "CIP", "DAP", "DDP"], baselineTerms: previousTerms ?? terms, initialMatchEvaluation: evaluation, onSubmit: async (draft) => {
|
|
327
|
+
const body = {
|
|
328
|
+
clientEventId: typeof crypto !== "undefined" && typeof crypto.randomUUID === "function"
|
|
329
|
+
? crypto.randomUUID()
|
|
330
|
+
: `${Date.now()}-${Math.random().toString(16).slice(2)}`,
|
|
331
|
+
expectedRound: round,
|
|
332
|
+
price: draft.price ?? null,
|
|
333
|
+
volume: draft.volume ?? null,
|
|
334
|
+
incoterms: draft.incoterms ?? null,
|
|
335
|
+
payment: draft.paymentTerms ?? null,
|
|
336
|
+
delivery: draft.deliveryDate ?? null,
|
|
337
|
+
validUntil: draft.validUntil ?? null,
|
|
338
|
+
message: draft.message ?? null,
|
|
339
|
+
attachmentIds: draft.attachmentIds,
|
|
340
|
+
};
|
|
341
|
+
await onCounter(body);
|
|
342
|
+
setComposerOpen(false);
|
|
343
|
+
}, onEvaluateDraft: () => evaluation, banner: composerBanner })] }));
|
|
124
344
|
}
|
|
125
345
|
//# sourceMappingURL=offer-document.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"offer-document.js","sourceRoot":"","sources":["../../src/offer/offer-document.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"offer-document.js","sourceRoot":"","sources":["../../src/offer/offer-document.tsx"],"names":[],"mappings":"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"}
|
|
@@ -18,8 +18,19 @@ export declare const Accepted: Story;
|
|
|
18
18
|
export declare const Declined: Story;
|
|
19
19
|
export declare const Expired: Story;
|
|
20
20
|
export declare const Withdrawn: Story;
|
|
21
|
+
export declare const Reconnecting: Story;
|
|
21
22
|
export declare const SectionHidden: Story;
|
|
22
23
|
export declare const SectionReordered: Story;
|
|
24
|
+
/**
|
|
25
|
+
* Spec §19 — "Screen-reader announcement on offer state transitions". The
|
|
26
|
+
* rail should expose a <div role="status" aria-live="polite"> that emits
|
|
27
|
+
* composed strings like "Offer accepted — no further counters possible"
|
|
28
|
+
* when the status prop changes.
|
|
29
|
+
*/
|
|
23
30
|
export declare const StateTransitionAnnouncement: Story;
|
|
31
|
+
/**
|
|
32
|
+
* Responsive coverage per spec §5.5 — OfferDocument collapses its right
|
|
33
|
+
* rail below the `lg:` breakpoint.
|
|
34
|
+
*/
|
|
24
35
|
export declare const ResponsiveMobile: Story;
|
|
25
36
|
//# sourceMappingURL=offer-document.stories.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"offer-document.stories.d.ts","sourceRoot":"","sources":["../../src/offer/offer-document.stories.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAQ,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AASjD,QAAA,MAAM,IAAI;;;;;;;CAK4B,CAAC;AAEvC,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"offer-document.stories.d.ts","sourceRoot":"","sources":["../../src/offer/offer-document.stories.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAQ,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AASjD,QAAA,MAAM,IAAI;;;;;;;CAK4B,CAAC;AAEvC,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAyInC,eAAO,MAAM,gBAAgB,EAAE,KAA0B,CAAC;AAC1D,eAAO,MAAM,gBAAgB,EAAE,KAE9B,CAAC;AACF,eAAO,MAAM,sBAAsB,EAAE,KAAkD,CAAC;AACxF,eAAO,MAAM,sBAAsB,EAAE,KAEpC,CAAC;AACF,eAAO,MAAM,QAAQ,EAAE,KAAwC,CAAC;AAChE,eAAO,MAAM,QAAQ,EAAE,KAAwC,CAAC;AAChE,eAAO,MAAM,OAAO,EAAE,KAAuC,CAAC;AAC9D,eAAO,MAAM,SAAS,EAAE,KAAyC,CAAC;AAElE,eAAO,MAAM,YAAY,EAAE,KAAuD,CAAC;AAEnF,eAAO,MAAM,aAAa,EAAE,KAe3B,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,KAmB9B,CAAC;AAsBF;;;;;GAKG;AACH,eAAO,MAAM,2BAA2B,EAAE,KAczC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,gBAAgB,EAAE,KAG9B,CAAC"}
|