@cellarnode/ui 0.191.0 → 0.192.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.
@@ -2,12 +2,52 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import * as React from "react";
3
3
  import { CommercialTerms } from "../commercial-price/index.js";
4
4
  import { DescriptionDetails, DescriptionList, DescriptionTerm, } from "../components/description-list.js";
5
+ import { Button } from "../components/button.js";
5
6
  import { EmptyState } from "../components/empty-state.js";
6
7
  import { Eyebrow } from "../components/eyebrow.js";
7
8
  import { cn } from "../lib/utils.js";
8
9
  import { OpportunityDetailPanel } from "../opportunities/opportunity-detail-panel.js";
9
10
  import { useOpportunityHeadingLevel, } from "../opportunities/heading-level-context.js";
11
+ import { defaultOpportunityFactEditLabels, } from "./edit-labels.js";
12
+ import { EditableSection, LockedTermsPanel, useEditSession, } from "./editable-section.js";
10
13
  import { defaultOpportunityFactLabels } from "./labels.js";
14
+ /** Tab that hosts each editable section. */
15
+ const SECTION_TAB = {
16
+ "product-requirements": "overview",
17
+ "delivery-terms": "commercial",
18
+ };
19
+ /** Tab that renders each fact section. */
20
+ const SECTION_HOST_TAB = {
21
+ identity: "overview",
22
+ product: "overview",
23
+ commercial: "commercial",
24
+ timeline: "timeline",
25
+ compliance: "compliance",
26
+ buyer: "buyer",
27
+ };
28
+ /** The tab whose rows carry `key` (the first section that lists it), or `undefined`. */
29
+ function tabForFact(sections, key) {
30
+ const section = sections.find((s) => s.facts.some((f) => f.key === key));
31
+ return section ? SECTION_HOST_TAB[section.id] : undefined;
32
+ }
33
+ /** Tabs that host controls of `section` (the ones where its footer shows). */
34
+ function hostTabs(section, config, sections) {
35
+ const tabs = new Set([SECTION_TAB[section]]);
36
+ if (section === "product-requirements") {
37
+ for (const key of Object.keys(config?.fields ?? {})) {
38
+ const tab = tabForFact(sections, key);
39
+ if (tab)
40
+ tabs.add(tab);
41
+ }
42
+ }
43
+ return tabs;
44
+ }
45
+ function fieldIds(api, key) {
46
+ return {
47
+ labelId: `${api.uid}-${key}-label`,
48
+ errorId: `${api.uid}-${key}-error`,
49
+ };
50
+ }
11
51
  function missingStateCopy(fact, perspective, labels) {
12
52
  // `deliveryTerms` is `not_specified` only when no term was chosen at all
13
53
  // (spec §1's missing-state rule doesn't cover it directly — see
@@ -21,20 +61,65 @@ function missingStateCopy(fact, perspective, labels) {
21
61
  return labels.state.ownerMissing;
22
62
  return fact.state === "not_stated" ? labels.state.notStated : labels.state.notSpecified;
23
63
  }
24
- function FactRow({ fact, perspective, labels, action, }) {
64
+ function FactRow({ fact, perspective, labels, action, addAction, control, labelId, error, errorId, }) {
25
65
  const known = fact.state === "known";
26
- return (_jsxs(React.Fragment, { children: [_jsx(DescriptionTerm, { children: fact.label }), _jsx(DescriptionDetails, { children: _jsxs("div", { className: "flex items-start justify-between gap-2", children: [_jsxs("div", { className: "min-w-0", children: [_jsx("span", { className: cn(!known && "text-muted-foreground italic"), children: known ? fact.value : missingStateCopy(fact, perspective, labels) }), known && fact.detail ? (_jsx("span", { className: "block text-muted-foreground text-xs/5", children: fact.detail })) : null] }), known && action ? _jsx("div", { className: "shrink-0", children: action }) : null] }) })] }));
66
+ return (_jsxs(React.Fragment, { children: [_jsx(DescriptionTerm, { id: labelId, children: fact.label }), _jsx(DescriptionDetails, { "data-fact-key": control ? fact.key : undefined, children: control ? (_jsxs("div", { className: "flex min-w-0 flex-col gap-1", children: [control, error ? (_jsx("p", { id: errorId, className: "text-xs/5 text-[var(--tone-danger-fg)]", children: error })) : null] })) : (_jsxs("div", { className: "flex items-start justify-between gap-2", children: [_jsxs("div", { className: "min-w-0", children: [_jsx("span", { className: cn(!known && "text-muted-foreground italic"), children: known ? fact.value : missingStateCopy(fact, perspective, labels) }), known && fact.detail ? (_jsx("span", { className: "block text-muted-foreground text-xs/5", children: fact.detail })) : null] }), known && action ? _jsx("div", { className: "shrink-0", children: action }) : null, !known && addAction ? (_jsx("div", { className: "shrink-0", children: _jsx(Button, { type: "button", plain: true, onClick: addAction.onClick, children: addAction.label }) })) : null] })) })] }));
27
67
  }
28
- function FactGrid({ facts, perspective, labels, factActions, }) {
68
+ function resolveField(node, api, key, error) {
69
+ if (typeof node !== "function")
70
+ return node;
71
+ const { labelId, errorId } = fieldIds(api, key);
72
+ return node({
73
+ labelId,
74
+ errorId: error ? errorId : undefined,
75
+ invalid: Boolean(error),
76
+ });
77
+ }
78
+ function FactGrid({ facts, perspective, labels, factActions, edit, }) {
29
79
  if (facts.length === 0) {
30
80
  return _jsx(EmptyState, { headline: labels.state.notStated, tone: "neutral", entranceMotion: false });
31
81
  }
32
- return (_jsx(DescriptionList, { children: facts.map((fact) => (_jsx(FactRow, { fact: fact, perspective: perspective, labels: labels, action: factActions?.[fact.key] }, fact.key))) }));
82
+ const sectionConfig = edit?.section ? edit.api.config[edit.section] : undefined;
83
+ const editingHere = Boolean(edit?.section && edit.api.editingSection === edit.section);
84
+ return (_jsx(DescriptionList, { children: facts.map((fact) => {
85
+ const node = editingHere ? sectionConfig?.fields?.[fact.key] : undefined;
86
+ const error = sectionConfig?.fieldErrors?.[fact.key];
87
+ const ids = edit ? fieldIds(edit.api, fact.key) : undefined;
88
+ return (_jsx(FactRow, { fact: fact, perspective: perspective, labels: labels, action: factActions?.[fact.key], addAction: edit && !editingHere ? edit.api.addAction(fact) : undefined, control: node != null && edit ? resolveField(node, edit.api, fact.key, error) : undefined, labelId: ids?.labelId, error: error, errorId: ids?.errorId }, fact.key));
89
+ }) }));
33
90
  }
34
- function OverviewTabContent({ sections, perspective, labels, factActions, sectionHeading, sectionSlots, }) {
91
+ function OverviewTabContent({ sections, perspective, labels, factActions, sectionHeading, sectionSlots, edit, }) {
35
92
  const identity = sections.find((s) => s.id === "identity");
36
93
  const product = sections.find((s) => s.id === "product");
37
- return (_jsxs("div", { className: "flex flex-col gap-6", children: [identity ? (_jsxs("div", { className: "flex flex-col gap-2", children: [_jsx(Eyebrow, { as: sectionHeading, size: "xs", children: identity.label }), _jsx(FactGrid, { facts: identity.facts, perspective: perspective, labels: labels, factActions: factActions }), sectionSlots?.identity ?? null] })) : null, product ? (_jsxs("div", { className: "flex flex-col gap-2", children: [_jsx(Eyebrow, { as: sectionHeading, size: "xs", children: product.label }), _jsx(FactGrid, { facts: product.facts, perspective: perspective, labels: labels, factActions: factActions }), sectionSlots?.product ?? null] })) : null] }));
94
+ const productConfig = edit?.config["product-requirements"];
95
+ const editingProduct = edit?.editingSection === "product-requirements";
96
+ return (_jsxs("div", { className: "flex flex-col gap-6", children: [identity ? (_jsxs("div", { className: "flex flex-col gap-2", children: [_jsx(Eyebrow, { as: sectionHeading, size: "xs", children: identity.label }), _jsx(FactGrid, { facts: identity.facts, perspective: perspective, labels: labels, factActions: factActions, edit: edit ? { api: edit } : undefined }), sectionSlots?.identity ?? null] })) : null, product && edit && productConfig ? (_jsxs("div", { className: "flex flex-col gap-2", children: [_jsxs(EditableSection, { id: "product-requirements", heading: product.label, headingAs: sectionHeading, session: edit.sessions["product-requirements"], labels: edit.labels, isEditing: editingProduct, active: edit.activeTab === "overview", tabId: "overview", tabLabels: edit.tabLabels, canEdit: true, editBlocked: edit.editingSection !== null && !editingProduct, focusKey: edit.focusKey, onEdit: () => edit.open("product-requirements"), children: [_jsx(FactGrid, { facts: product.facts, perspective: perspective, labels: labels, factActions: factActions, edit: { api: edit, section: "product-requirements" } }), editingProduct ? (productConfig.editor ?? null) : null] }), sectionSlots?.product ?? null] })) : product ? (_jsxs("div", { className: "flex flex-col gap-2", children: [_jsx(Eyebrow, { as: sectionHeading, size: "xs", children: product.label }), _jsx(FactGrid, { facts: product.facts, perspective: perspective, labels: labels, factActions: factActions, edit: edit ? { api: edit } : undefined }), sectionSlots?.product ?? null] })) : null] }));
97
+ }
98
+ /**
99
+ * One tab's facts for a section whose edit mode spans tabs (the requirements
100
+ * reach Compliance and Commercial). View mode: the plain grid. Edit mode, when
101
+ * a control of the requirements lives on this tab: the same grid with the
102
+ * controls in their own rows, wrapped in a continuation of the requirements
103
+ * section so Save and Cancel sit next to them.
104
+ */
105
+ function RequirementsContinuation({ tabId, facts, heading, perspective, labels, factActions, sectionHeading, edit, }) {
106
+ const config = edit?.config["product-requirements"];
107
+ const editing = edit?.editingSection === "product-requirements";
108
+ const hosted = editing && facts.some((f) => config?.fields?.[f.key] != null);
109
+ const grid = (_jsx(FactGrid, { facts: facts, perspective: perspective, labels: labels, factActions: factActions, edit: edit ? { api: edit, section: "product-requirements" } : undefined }));
110
+ if (!edit || !hosted)
111
+ return grid;
112
+ return (_jsx(EditableSection, { id: "product-requirements", session: edit.sessions["product-requirements"], secondary: true, heading: heading, headingAs: sectionHeading, labels: edit.labels, isEditing: true, active: edit.activeTab === tabId, tabId: tabId, tabLabels: edit.tabLabels, focusKey: edit.focusKey, children: grid }));
113
+ }
114
+ /** The delivery-terms card on the Commercial tab: read-only fact, Edit, or the CEL-2167 lock panel. */
115
+ function DeliveryTermsSection({ facts, perspective, labels, factActions, sectionHeading, edit, }) {
116
+ const config = edit.config["delivery-terms"];
117
+ const editing = edit.editingSection === "delivery-terms";
118
+ // The required term is already the first row of `CommercialTerms` above, the
119
+ // same read-only layout producers see. This card repeats it only where it adds
120
+ // something: while editing, or as the "Add delivery terms" prompt for a gap.
121
+ const shownFacts = facts.filter((f) => editing || edit.addAction(f) !== undefined);
122
+ return (_jsxs(EditableSection, { id: "delivery-terms", heading: edit.labels.deliveryTermsHeading, headingAs: sectionHeading, session: edit.sessions["delivery-terms"], labels: edit.labels, isEditing: editing, active: edit.activeTab === "commercial", tabId: "commercial", tabLabels: edit.tabLabels, canEdit: Boolean(config) && !edit.termsLocked, editBlocked: edit.editingSection !== null && !editing, focusKey: edit.focusKey, onEdit: () => edit.open("delivery-terms"), focusLockedPanel: edit.focusLockedPanel, lockedPanel: edit.termsLocked ? (_jsx(LockedTermsPanel, { onMount: edit.setLockedPanel, labels: edit.labels, reason: edit.termsLockedReason, onReviewOffers: edit.onReviewOffers })) : undefined, children: [shownFacts.length > 0 ? (_jsx(FactGrid, { facts: shownFacts, perspective: perspective, labels: labels, factActions: factActions, edit: { api: edit, section: "delivery-terms" } })) : null, editing ? (config?.editor ?? null) : null] }));
38
123
  }
39
124
  /** Distinct fact keys across the strip and every section — several keys (e.g. `priceBands`) appear in both. */
40
125
  function distinctFactKeys(facts) {
@@ -46,52 +131,271 @@ function distinctFactKeys(facts) {
46
131
  keys.add(fact.key);
47
132
  return keys;
48
133
  }
134
+ /** "Vintage" becomes "vintage" for "Add vintage"; leaves acronyms ("EU product category") alone. */
135
+ function lowerFirstWord(label) {
136
+ const [first = "", second = ""] = label;
137
+ if (!first || (second && second === second.toUpperCase() && second !== second.toLowerCase())) {
138
+ return label;
139
+ }
140
+ return first.toLowerCase() + label.slice(1);
141
+ }
49
142
  /**
50
143
  * Renders a `FactSheet`'s five-slot fact strip above `OpportunityDetailPanel`
51
144
  * tabs (Overview, Commercial, Timeline, Compliance, Buyer). Consumers slot
52
145
  * extra tabs (Fit, Offers), header actions, and per-fact actions through
53
146
  * props — they never re-render facts themselves (spec §1/§5).
147
+ *
148
+ * CEL-2129: for `perspective="importer-owner"` the product-requirements and
149
+ * delivery-terms sections can switch to an in-place edit mode (`editing`),
150
+ * driven by the sheet or, for deep links, by the consumer
151
+ * (`editingSection` / `onEditingSectionChange`).
54
152
  */
55
- export function OpportunityFactSheet({ facts, perspective, locale, priceTypeLabel, deliveryTermLabel, tabs = [], actions, defaultTabId, labels: labelsProp, headingLevel: headingLevelProp, commercialTermsLabels: commercialTermsLabelsProp, factActions, sectionSlots, ownerMissingAction, className, }) {
153
+ export function OpportunityFactSheet({ facts, perspective, locale, priceTypeLabel, deliveryTermLabel, tabs = [], actions, defaultTabId, labels: labelsProp, headingLevel: headingLevelProp, commercialTermsLabels: commercialTermsLabelsProp, factActions, sectionSlots, ownerMissingAction, editing, editingSection: editingSectionProp, onEditingSectionChange, initialFocusField, termsLocked: termsLockedProp = false, termsLockedReason, onReviewOffers, editLabels: editLabelsProp, className, }) {
56
154
  const labels = React.useMemo(() => labelsProp ?? defaultOpportunityFactLabels(), [labelsProp]);
57
155
  const providedHeadingLevel = useOpportunityHeadingLevel();
58
156
  const sectionHeading = `h${headingLevelProp ?? providedHeadingLevel ?? 3}`;
59
157
  const commercialTermsLabels = commercialTermsLabelsProp ?? labels.commercial;
158
+ // -- CEL-2129 edit mode -------------------------------------------------
159
+ const sheetId = React.useId();
160
+ const isOwner = perspective === "importer-owner";
161
+ const ownerEditing = isOwner ? editing : undefined;
162
+ const termsLocked = isOwner && termsLockedProp;
163
+ const editEnabled = ownerEditing !== undefined || termsLocked;
164
+ const editLabels = React.useMemo(() => ({ ...defaultOpportunityFactEditLabels(), ...editLabelsProp }), [editLabelsProp]);
60
165
  const sectionById = React.useMemo(() => {
61
166
  const map = new Map();
62
167
  for (const section of facts.sections)
63
168
  map.set(section.id, section);
64
169
  return map;
65
170
  }, [facts.sections]);
171
+ const isControlled = editingSectionProp !== undefined;
172
+ const [internalEditing, setInternalEditing] = React.useState(null);
173
+ const requested = isControlled ? editingSectionProp : internalEditing;
174
+ const editingSection = requested && ownerEditing?.[requested] && !(requested === "delivery-terms" && termsLocked)
175
+ ? requested
176
+ : null;
177
+ const [focusKey, setFocusKey] = React.useState(initialFocusField);
178
+ const [seenInitialFocus, setSeenInitialFocus] = React.useState(initialFocusField);
179
+ if (seenInitialFocus !== initialFocusField) {
180
+ // Adjusting state during render on a prop change (React's documented
181
+ // pattern); the rule misreads it as a synchronous effect call.
182
+ /* eslint-disable @eslint-react/set-state-in-effect */
183
+ setSeenInitialFocus(initialFocusField);
184
+ setFocusKey(initialFocusField);
185
+ /* eslint-enable @eslint-react/set-state-in-effect */
186
+ }
187
+ /** The tab to show when `section` opens: the one hosting the requested field, else the section's own. */
188
+ const entryTab = (section, key) => (key ? tabForFact(facts.sections, key) : undefined) ?? SECTION_TAB[section];
189
+ // A deep link to delivery terms while they are locked cannot open an editor;
190
+ // it lands on the Commercial tab, where the lock panel explains why.
191
+ const lockedDeepLink = requested === "delivery-terms" && termsLocked;
192
+ const [tab, setTab] = React.useState(() => defaultTabId ??
193
+ (editingSection
194
+ ? entryTab(editingSection, focusKey)
195
+ : lockedDeepLink
196
+ ? SECTION_TAB["delivery-terms"]
197
+ : "overview"));
198
+ const [seenLockedDeepLink, setSeenLockedDeepLink] = React.useState(lockedDeepLink);
199
+ if (seenLockedDeepLink !== lockedDeepLink) {
200
+ // Same render-phase prop-change adjustment as below.
201
+ /* eslint-disable @eslint-react/set-state-in-effect */
202
+ setSeenLockedDeepLink(lockedDeepLink);
203
+ if (lockedDeepLink)
204
+ setTab(SECTION_TAB["delivery-terms"]);
205
+ /* eslint-enable @eslint-react/set-state-in-effect */
206
+ }
207
+ const [seenSection, setSeenSection] = React.useState(editingSection);
208
+ if (seenSection !== editingSection) {
209
+ // Same render-phase prop-change adjustment as above: the tab that hosts
210
+ // the field becomes active in the same commit that opens the section.
211
+ /* eslint-disable @eslint-react/set-state-in-effect */
212
+ setSeenSection(editingSection);
213
+ if (editingSection)
214
+ setTab(entryTab(editingSection, focusKey));
215
+ /* eslint-enable @eslint-react/set-state-in-effect */
216
+ }
217
+ const setEditingSection = React.useCallback((next) => {
218
+ if (!isControlled)
219
+ setInternalEditing(next);
220
+ onEditingSectionChange?.(next);
221
+ }, [isControlled, onEditingSectionChange]);
222
+ const closeEditing = React.useCallback(() => {
223
+ setFocusKey(initialFocusField);
224
+ setEditingSection(null);
225
+ }, [initialFocusField, setEditingSection]);
226
+ const productSession = useEditSession({
227
+ config: ownerEditing?.["product-requirements"],
228
+ labels: editLabels,
229
+ isEditing: editingSection === "product-requirements",
230
+ onClose: closeEditing,
231
+ });
232
+ const deliverySession = useEditSession({
233
+ config: ownerEditing?.["delivery-terms"],
234
+ labels: editLabels,
235
+ isEditing: editingSection === "delivery-terms",
236
+ onClose: closeEditing,
237
+ });
238
+ const sessions = React.useMemo(() => ({
239
+ "product-requirements": productSession,
240
+ "delivery-terms": deliverySession,
241
+ }), [productSession, deliverySession]);
242
+ const lockedPanelNodeRef = React.useRef(null);
243
+ const setLockedPanel = React.useCallback((node) => {
244
+ lockedPanelNodeRef.current = node;
245
+ }, []);
246
+ const focusLockedPanel = React.useCallback(() => {
247
+ lockedPanelNodeRef.current?.focus();
248
+ return lockedPanelNodeRef.current !== null;
249
+ }, []);
250
+ // The lock can arrive while a delivery-terms edit is open (a 409, a refetch):
251
+ // the section drops to read-only, the draft is discarded and the owner of the
252
+ // controlled state hears about it. Focus moves to the locked panel.
253
+ const lockedConfig = ownerEditing?.["delivery-terms"];
254
+ const lockedWhileOpen = requested === "delivery-terms" && termsLocked;
255
+ React.useEffect(() => {
256
+ if (!lockedWhileOpen)
257
+ return;
258
+ // A deep link lands here with no edit open: focus the (status) panel so
259
+ // the lock explanation is announced. Mid-edit arrivals focus it too.
260
+ focusLockedPanel();
261
+ lockedConfig?.onCancel?.();
262
+ // eslint-disable-next-line @eslint-react/set-state-in-effect -- the lock is an external change; the draft must be dropped when it lands
263
+ if (!isControlled)
264
+ setInternalEditing(null);
265
+ onEditingSectionChange?.(null);
266
+ // Fires once per lock transition; the handlers are intentionally not deps.
267
+ // eslint-disable-next-line react-hooks/exhaustive-deps, @eslint-react/exhaustive-deps
268
+ }, [lockedWhileOpen]);
269
+ const editTabLabels = React.useMemo(() => ({ ...labels.tabs }), [labels.tabs]);
270
+ const editApi = React.useMemo(() => {
271
+ if (!editEnabled)
272
+ return null;
273
+ const config = ownerEditing ?? {};
274
+ const open = (section, key) => {
275
+ setFocusKey(key);
276
+ setEditingSection(section);
277
+ };
278
+ return {
279
+ config,
280
+ labels: editLabels,
281
+ uid: sheetId,
282
+ editingSection,
283
+ focusKey,
284
+ activeTab: tab,
285
+ tabLabels: editTabLabels,
286
+ sessions,
287
+ setLockedPanel,
288
+ focusLockedPanel,
289
+ sections: facts.sections,
290
+ termsLocked,
291
+ termsLockedReason,
292
+ onReviewOffers,
293
+ open,
294
+ close: closeEditing,
295
+ addAction: (fact) => {
296
+ if (editingSection !== null || fact.state === "known")
297
+ return undefined;
298
+ const label = editLabels.add(fact.key === "deliveryTerms"
299
+ ? editLabels.section["delivery-terms"]
300
+ : lowerFirstWord(fact.label));
301
+ if (fact.key === "deliveryTerms" && config["delivery-terms"] && !termsLocked) {
302
+ return { label, onClick: () => open("delivery-terms", fact.key) };
303
+ }
304
+ if (config["product-requirements"]?.fields?.[fact.key] != null) {
305
+ return {
306
+ label,
307
+ onClick: () => open("product-requirements", fact.key),
308
+ };
309
+ }
310
+ return undefined;
311
+ },
312
+ };
313
+ }, [
314
+ editEnabled,
315
+ ownerEditing,
316
+ editLabels,
317
+ sheetId,
318
+ editingSection,
319
+ focusKey,
320
+ tab,
321
+ editTabLabels,
322
+ sessions,
323
+ setLockedPanel,
324
+ focusLockedPanel,
325
+ facts.sections,
326
+ termsLocked,
327
+ termsLockedReason,
328
+ onReviewOffers,
329
+ setEditingSection,
330
+ closeEditing,
331
+ ]);
332
+ /**
333
+ * Tab switches. Moving between the tabs that host the open section's
334
+ * controls is free (the draft is the consumer's and survives). Leaving them
335
+ * ends the edit: a dirty draft asks first, a clean one is dropped.
336
+ */
337
+ const requestTab = (next) => {
338
+ if (next === tab)
339
+ return;
340
+ if (!editingSection || !ownerEditing) {
341
+ setTab(next);
342
+ return;
343
+ }
344
+ const config = ownerEditing[editingSection];
345
+ if (hostTabs(editingSection, config, facts.sections).has(next)) {
346
+ setTab(next);
347
+ return;
348
+ }
349
+ const session = sessions[editingSection];
350
+ if (session.dirty) {
351
+ session.requestLeave(() => setTab(next));
352
+ return;
353
+ }
354
+ config?.onCancel?.();
355
+ closeEditing();
356
+ setTab(next);
357
+ };
358
+ const deliveryFacts = React.useMemo(() => sectionById.get("commercial")?.facts.filter((f) => f.key === "deliveryTerms") ?? [], [sectionById]);
359
+ // Requirements whose fact lives on the Commercial tab (the minimum volume)
360
+ // have no grid there in view mode; edit mode gives them their own row.
361
+ const commercialRequirementFacts = React.useMemo(() => sectionById
362
+ .get("commercial")
363
+ ?.facts.filter((f) => f.key !== "deliveryTerms" &&
364
+ ownerEditing?.["product-requirements"]?.fields?.[f.key] != null) ?? [], [sectionById, ownerEditing]);
365
+ const showDeliverySection = Boolean(ownerEditing?.["delivery-terms"]) || termsLocked;
66
366
  const builtInTabs = React.useMemo(() => [
67
367
  {
68
368
  id: "overview",
69
369
  label: labels.tabs.overview,
70
- content: (_jsx(OverviewTabContent, { sectionHeading: sectionHeading, sections: facts.sections, perspective: perspective, labels: labels, factActions: factActions, sectionSlots: sectionSlots })),
370
+ content: (_jsx(OverviewTabContent, { sectionHeading: sectionHeading, sections: facts.sections, perspective: perspective, labels: labels, factActions: factActions, sectionSlots: sectionSlots, edit: editApi })),
71
371
  },
72
372
  {
73
373
  id: "commercial",
74
374
  label: labels.tabs.commercial,
75
- content: (_jsxs("div", { className: "flex flex-col gap-4", children: [_jsx(CommercialTerms, { ...facts.commercialTerms, locale: locale, labels: commercialTermsLabels, priceTypeLabel: priceTypeLabel, deliveryTermLabel: deliveryTermLabel, perspective: perspective }), sectionSlots?.commercial ?? null] })),
375
+ content: (_jsxs("div", { className: "flex flex-col gap-4", children: [_jsx(CommercialTerms, { ...facts.commercialTerms, locale: locale, labels: commercialTermsLabels, priceTypeLabel: priceTypeLabel, deliveryTermLabel: deliveryTermLabel, perspective: perspective }), editApi?.editingSection === "product-requirements" &&
376
+ commercialRequirementFacts.length > 0 ? (_jsx(RequirementsContinuation, { tabId: "commercial", facts: commercialRequirementFacts, heading: sectionById.get("commercial")?.label ?? "", perspective: perspective, labels: labels, factActions: factActions, sectionHeading: sectionHeading, edit: editApi })) : null, editApi && showDeliverySection ? (_jsx(DeliveryTermsSection, { facts: deliveryFacts, perspective: perspective, labels: labels, factActions: factActions, sectionHeading: sectionHeading, edit: editApi })) : null, sectionSlots?.commercial ?? null] })),
76
377
  },
77
378
  {
78
379
  id: "timeline",
79
380
  label: labels.tabs.timeline,
80
- content: (_jsxs("div", { className: "flex flex-col gap-4", children: [_jsx(FactGrid, { facts: sectionById.get("timeline")?.facts ?? [], perspective: perspective, labels: labels, factActions: factActions }), sectionSlots?.timeline ?? null] })),
381
+ content: (_jsxs("div", { className: "flex flex-col gap-4", children: [_jsx(RequirementsContinuation, { tabId: "timeline", facts: sectionById.get("timeline")?.facts ?? [], heading: sectionById.get("timeline")?.label ?? "", perspective: perspective, labels: labels, factActions: factActions, sectionHeading: sectionHeading, edit: editApi }), sectionSlots?.timeline ?? null] })),
81
382
  },
82
383
  {
83
384
  id: "compliance",
84
385
  label: labels.tabs.compliance,
85
- content: (_jsxs("div", { className: "flex flex-col gap-4", children: [_jsx(FactGrid, { facts: sectionById.get("compliance")?.facts ?? [], perspective: perspective, labels: labels, factActions: factActions }), sectionSlots?.compliance ?? null] })),
386
+ content: (_jsxs("div", { className: "flex flex-col gap-4", children: [_jsx(RequirementsContinuation, { tabId: "compliance", facts: sectionById.get("compliance")?.facts ?? [], heading: sectionById.get("compliance")?.label ?? "", perspective: perspective, labels: labels, factActions: factActions, sectionHeading: sectionHeading, edit: editApi }), sectionSlots?.compliance ?? null] })),
86
387
  },
87
388
  {
88
389
  id: "buyer",
89
390
  label: labels.tabs.buyer,
90
- content: (_jsxs("div", { className: "flex flex-col gap-4", children: [_jsx(FactGrid, { facts: sectionById.get("buyer")?.facts ?? [], perspective: perspective, labels: labels, factActions: factActions }), sectionSlots?.buyer ?? null] })),
391
+ content: (_jsxs("div", { className: "flex flex-col gap-4", children: [_jsx(RequirementsContinuation, { tabId: "buyer", facts: sectionById.get("buyer")?.facts ?? [], heading: sectionById.get("buyer")?.label ?? "", perspective: perspective, labels: labels, factActions: factActions, sectionHeading: sectionHeading, edit: editApi }), sectionSlots?.buyer ?? null] })),
91
392
  },
92
393
  ], [
93
394
  commercialTermsLabels,
395
+ commercialRequirementFacts,
396
+ deliveryFacts,
94
397
  deliveryTermLabel,
398
+ editApi,
95
399
  factActions,
96
400
  facts.commercialTerms,
97
401
  facts.sections,
@@ -102,11 +406,16 @@ export function OpportunityFactSheet({ facts, perspective, locale, priceTypeLabe
102
406
  sectionById,
103
407
  sectionHeading,
104
408
  sectionSlots,
409
+ showDeliverySection,
105
410
  ]);
106
411
  const allTabs = React.useMemo(() => [...builtInTabs, ...tabs], [builtInTabs, tabs]);
412
+ // Controlled tab only when edit mode is on, so a deep link can switch to the
413
+ // section's tab; otherwise the panel is uncontrolled exactly as before.
414
+ const visibleTabIds = allTabs.filter((t) => !t.hidden).map((t) => t.id);
415
+ const panelTab = editEnabled ? (visibleTabIds.includes(tab) ? tab : visibleTabIds[0]) : undefined;
107
416
  const missingCount = facts.missing.length;
108
417
  const totalCount = React.useMemo(() => distinctFactKeys(facts).size, [facts]);
109
418
  const knownCount = totalCount - missingCount;
110
- return (_jsxs("div", { "data-slot": "opportunity-fact-sheet", className: cn("flex flex-col gap-6", className), children: [_jsxs("div", { className: "flex flex-col gap-4 @container sm:flex-row sm:items-start sm:justify-between", children: [_jsx(DescriptionList, { "aria-label": labels.strip.ariaLabel, className: "flex-1", children: facts.strip.map((fact) => (_jsx(FactRow, { fact: fact, perspective: perspective, labels: labels, action: factActions?.[fact.key] }, fact.key))) }), actions ? (_jsx("div", { className: "flex shrink-0 flex-wrap items-center gap-2", children: actions })) : null] }), perspective === "importer-owner" && missingCount > 0 ? (_jsxs("div", { "data-slot": "opportunity-fact-completeness", className: "flex flex-col gap-1 rounded-lg border border-border bg-card px-4 py-3", children: [_jsx(Eyebrow, { as: sectionHeading, size: "xs", children: labels.owner.essentials }), _jsx("p", { className: "text-sm/6 text-foreground", children: labels.owner.essentialsCount(knownCount, totalCount) }), _jsx("p", { className: "text-xs/5 text-muted-foreground", children: labels.owner.missingHint(facts.missing.map((key) => labels.fact[key]).join(", ")) }), ownerMissingAction ? _jsx("div", { className: "pt-1", children: ownerMissingAction }) : null] })) : null, _jsx(OpportunityDetailPanel, { tabs: allTabs, defaultTabId: defaultTabId })] }));
419
+ return (_jsxs("div", { "data-slot": "opportunity-fact-sheet", className: cn("flex flex-col gap-6", className), children: [_jsxs("div", { className: "flex flex-col gap-4 @container sm:flex-row sm:items-start sm:justify-between", children: [_jsx(DescriptionList, { "aria-label": labels.strip.ariaLabel, className: "flex-1", children: facts.strip.map((fact) => (_jsx(FactRow, { fact: fact, perspective: perspective, labels: labels, action: factActions?.[fact.key], addAction: editApi?.addAction(fact) }, fact.key))) }), actions ? (_jsx("div", { className: "flex shrink-0 flex-wrap items-center gap-2", children: actions })) : null] }), perspective === "importer-owner" && missingCount > 0 ? (_jsxs("div", { "data-slot": "opportunity-fact-completeness", className: "flex flex-col gap-1 rounded-lg border border-border bg-card px-4 py-3", children: [_jsx(Eyebrow, { as: sectionHeading, size: "xs", children: labels.owner.essentials }), _jsx("p", { className: "text-sm/6 text-foreground", children: labels.owner.essentialsCount(knownCount, totalCount) }), _jsx("p", { className: "text-xs/5 text-muted-foreground", children: labels.owner.missingHint(facts.missing.map((key) => labels.fact[key]).join(", ")) }), ownerMissingAction ? _jsx("div", { className: "pt-1", children: ownerMissingAction }) : null] })) : null, _jsx(OpportunityDetailPanel, { tabs: allTabs, defaultTabId: defaultTabId, tabId: panelTab, onTabChange: editEnabled ? requestTab : undefined })] }));
111
420
  }
112
421
  //# sourceMappingURL=opportunity-fact-sheet.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"opportunity-fact-sheet.js","sourceRoot":"","sources":["../../src/opportunity-facts/opportunity-fact-sheet.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"opportunity-fact-sheet.js","sourceRoot":"","sources":["../../src/opportunity-facts/opportunity-fact-sheet.tsx"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cellarnode/ui",
3
- "version": "0.191.0",
3
+ "version": "0.192.1",
4
4
  "type": "module",
5
5
  "private": false,
6
6
  "packageManager": "pnpm@10.28.2+sha512.41872f037ad22f7348e3b1debbaf7e867cfd448f2726d9cf74c08f19507c31d2c8e7a11525b983febc2df640b5438dee6023ebb1f84ed43cc2d654d2bc326264",
@@ -345,6 +345,7 @@
345
345
  "class-variance-authority": "^0.7.1",
346
346
  "clsx": "^2.1.1",
347
347
  "cmdk": "^1.1.1",
348
+ "country-flag-icons": "^1.6.20",
348
349
  "country-state-city": "^3.2.1",
349
350
  "date-fns": "^4.1.0",
350
351
  "lucide-react": "^1.7.0",