@cellarnode/ui 0.178.0 → 0.178.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.
@@ -81,4 +81,9 @@ export type { SensoryFieldDef } from "./sensory-profile.js";
81
81
  export { ImporterPickerModal, type ImporterPickerModalProps, type ImporterPickerImporter, type ImporterPickerMode, } from "../components/importer-picker-modal.js";
82
82
  export { OffersSentPanel, type OffersSentPanelProps, type OfferBranch, } from "../components/branch-overview-panel.js";
83
83
  export { FinalizeDealModal, type FinalizeDealModalProps, type FinalizeDealTerms, type FinalizeDealClosedBranch, } from "../components/branch-resolution-modal.js";
84
+ export { OfferBranchList } from "./offer-branch-list.js";
85
+ export type { OfferBranchListProps, OfferBranchListLabels } from "./offer-branch-list.js";
86
+ export { OfferBranchSwitcher } from "./offer-branch-switcher.js";
87
+ export type { OfferBranchSwitcherProps, OfferBranchSwitcherLabels } from "./offer-branch-switcher.js";
88
+ export type { BranchSort, OfferBranchLinkProps, OfferBranchRenderLink, OfferBranchSummary, } from "./offer-branch-shared.js";
84
89
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/offer/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/offer/index.ts"],"names":[],"mappings":"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"}
@@ -49,4 +49,6 @@ export { OfferProductRecord, OfferSourceProductView, createOfferProductRecordLab
49
49
  export { ImporterPickerModal, } from "../components/importer-picker-modal.js";
50
50
  export { OffersSentPanel, } from "../components/branch-overview-panel.js";
51
51
  export { FinalizeDealModal, } from "../components/branch-resolution-modal.js";
52
+ export { OfferBranchList } from "./offer-branch-list.js";
53
+ export { OfferBranchSwitcher } from "./offer-branch-switcher.js";
52
54
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/offer/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAExD,kFAAkF;AAClF,6EAA6E;AAC7E,2EAA2E;AAC3E,gDAAgD;AAChD,OAAO,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AACtE;;;GAGG;AACH,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAE9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAkBzD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD,OAAO,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AAGrE,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAGxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAG1D,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAGtD,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAG3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAGxD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAGzC,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAG7C,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAGrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAOxD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAGzC,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AAGpE,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAG/C,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAGpD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAGrD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAGjD,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAQtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAOxD,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AAGtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAG3D,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAG1E,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAG1D,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAGjD,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AAkBtE,OAAO,EAAE,6BAA6B,EAAE,4BAA4B,EAAE,MAAM,sBAAsB,CAAC;AAOnG,OAAO,EAAE,SAAS,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AAUlE,OAAO,EACL,kBAAkB,EAClB,sBAAsB,EACtB,8BAA8B,EAC9B,+BAA+B,EAC/B,2BAA2B,EAC3B,6BAA6B,GAC9B,MAAM,wBAAwB,CAAC;AAyBhC,2EAA2E;AAC3E,wEAAwE;AACxE,mEAAmE;AACnE,wBAAwB;AAExB,OAAO,EACL,mBAAmB,GAIpB,MAAM,qCAAqC,CAAC;AAE7C,OAAO,EACL,eAAe,GAGhB,MAAM,qCAAqC,CAAC;AAE7C,OAAO,EACL,iBAAiB,GAIlB,MAAM,uCAAuC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/offer/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAExD,kFAAkF;AAClF,6EAA6E;AAC7E,2EAA2E;AAC3E,gDAAgD;AAChD,OAAO,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AACtE;;;GAGG;AACH,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAE9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAkBzD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD,OAAO,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AAGrE,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAGxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAG1D,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAGtD,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAG3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAGxD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAGzC,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAG7C,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAGrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAOxD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAGzC,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AAGpE,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAG/C,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAGpD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAGrD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAGjD,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAQtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAOxD,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AAGtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAG3D,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAG1E,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAG1D,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAGjD,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AAkBtE,OAAO,EAAE,6BAA6B,EAAE,4BAA4B,EAAE,MAAM,sBAAsB,CAAC;AAOnG,OAAO,EAAE,SAAS,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AAUlE,OAAO,EACL,kBAAkB,EAClB,sBAAsB,EACtB,8BAA8B,EAC9B,+BAA+B,EAC/B,2BAA2B,EAC3B,6BAA6B,GAC9B,MAAM,wBAAwB,CAAC;AAyBhC,2EAA2E;AAC3E,wEAAwE;AACxE,mEAAmE;AACnE,wBAAwB;AAExB,OAAO,EACL,mBAAmB,GAIpB,MAAM,qCAAqC,CAAC;AAE7C,OAAO,EACL,eAAe,GAGhB,MAAM,qCAAqC,CAAC;AAE7C,OAAO,EACL,iBAAiB,GAIlB,MAAM,uCAAuC,CAAC;AAE/C,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC"}
@@ -0,0 +1,16 @@
1
+ import type { OfferBranchListLabels } from "./offer-branch-list.js";
2
+ import type { OfferBranchLinkProps, OfferBranchSummary } from "./offer-branch-shared.js";
3
+ import type { OfferBranchSwitcherLabels } from "./offer-branch-switcher.js";
4
+ export declare const BRANCH_NOW: Date;
5
+ type StatusSet = Array<Pick<OfferBranchSummary, "status" | "statusLabel" | "statusTone">>;
6
+ export declare const GERMAN_STATUSES: StatusSet;
7
+ export declare function makeBranches(count: number, names?: readonly string[], statuses?: StatusSet): OfferBranchSummary[];
8
+ export declare const listLabels: OfferBranchListLabels;
9
+ export declare const switcherLabels: OfferBranchSwitcherLabels;
10
+ export declare const germanListLabels: OfferBranchListLabels;
11
+ export declare const germanSwitcherLabels: OfferBranchSwitcherLabels;
12
+ export declare const LONG_GERMAN_NAMES: string[];
13
+ /** Stand-in for a router link: spreads the link props like a consumer's router Link would. */
14
+ export declare function anchorLink(branch: OfferBranchSummary, props: OfferBranchLinkProps): import("react/jsx-runtime").JSX.Element;
15
+ export {};
16
+ //# sourceMappingURL=offer-branch-fixtures.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"offer-branch-fixtures.d.ts","sourceRoot":"","sources":["../../src/offer/offer-branch-fixtures.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AACjE,OAAO,KAAK,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AACtF,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AAEzE,eAAO,MAAM,UAAU,MAAmC,CAAC;AAE3D,KAAK,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,kBAAkB,EAAE,QAAQ,GAAG,aAAa,GAAG,YAAY,CAAC,CAAC,CAAC;AAU1F,eAAO,MAAM,eAAe,EAAE,SAM7B,CAAC;AAUF,wBAAgB,YAAY,CAC1B,KAAK,EAAE,MAAM,EACb,KAAK,GAAE,SAAS,MAAM,EAAU,EAChC,QAAQ,GAAE,SAAoB,GAC7B,kBAAkB,EAAE,CAUtB;AAED,eAAO,MAAM,UAAU,EAAE,qBASxB,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,yBAQ5B,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,qBAS9B,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,yBAQlC,CAAC;AAEF,eAAO,MAAM,iBAAiB,UAI7B,CAAC;AAEF,8FAA8F;AAC9F,wBAAgB,UAAU,CAAC,MAAM,EAAE,kBAAkB,EAAE,KAAK,EAAE,oBAAoB,2CAEjF"}
@@ -0,0 +1,81 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ export const BRANCH_NOW = new Date("2026-09-30T12:00:00Z");
3
+ const STATUSES = [
4
+ { status: "sent", statusLabel: "Sent", statusTone: "brand" },
5
+ { status: "in_negotiation", statusLabel: "In negotiation", statusTone: "negotiation" },
6
+ { status: "accepted", statusLabel: "Accepted", statusTone: "success" },
7
+ { status: "rejected", statusLabel: "Declined", statusTone: "danger" },
8
+ { status: "expired", statusLabel: "Expired", statusTone: "neutral" },
9
+ ];
10
+ export const GERMAN_STATUSES = [
11
+ { status: "sent", statusLabel: "Gesendet", statusTone: "brand" },
12
+ { status: "in_negotiation", statusLabel: "In Verhandlung", statusTone: "negotiation" },
13
+ { status: "accepted", statusLabel: "Angenommen", statusTone: "success" },
14
+ { status: "rejected", statusLabel: "Abgelehnt", statusTone: "danger" },
15
+ { status: "expired", statusLabel: "Abgelaufen", statusTone: "neutral" },
16
+ ];
17
+ const NAMES = [
18
+ "Nordic Wine Imports",
19
+ "Kowloon Fine Beverages",
20
+ "Hanseatic Weinhandel",
21
+ "Vinos del Sur",
22
+ "Maison Lefèvre",
23
+ ];
24
+ export function makeBranches(count, names = NAMES, statuses = STATUSES) {
25
+ return Array.from({ length: count }, (_, i) => ({
26
+ id: `branch-${i + 1}`,
27
+ importerName: names[i % names.length] + (i >= names.length ? ` ${Math.floor(i / names.length) + 1}` : ""),
28
+ ...statuses[i % statuses.length],
29
+ currentRound: (i % 4) + 1,
30
+ unreadCount: i % 3 === 1 ? i + 1 : 0,
31
+ lastActivityAt: new Date(BRANCH_NOW.getTime() - (i + 1) * 3_600_000 * (i + 1)).toISOString(),
32
+ }));
33
+ }
34
+ export const listLabels = {
35
+ title: (n) => `${n} importer offers`,
36
+ unknownImporter: "Unknown importer",
37
+ round: (n) => `Round ${n}`,
38
+ unread: (n) => `${n} unread messages`,
39
+ lastActivity: "Last activity",
40
+ lastViewed: "last viewed",
41
+ stale: "no recent activity",
42
+ empty: "No importer offers yet.",
43
+ };
44
+ export const switcherLabels = {
45
+ allOffers: (n, product) => `All ${n} offers for ${product}`,
46
+ previous: "Previous offer",
47
+ next: "Next offer",
48
+ choose: "Choose importer offer",
49
+ current: "Current offer",
50
+ unknownImporter: "Unknown importer",
51
+ unread: (n) => `${n} unread messages`,
52
+ };
53
+ export const germanListLabels = {
54
+ title: (n) => `${n} Angebote an Importeure`,
55
+ unknownImporter: "Unbekannter Importeur",
56
+ round: (n) => `Verhandlungsrunde ${n}`,
57
+ unread: (n) => `${n} ungelesene Nachrichten`,
58
+ lastActivity: "Letzte Aktivität",
59
+ lastViewed: "zuletzt angesehen",
60
+ stale: "keine aktuelle Aktivität",
61
+ empty: "Noch keine Angebote an Importeure.",
62
+ };
63
+ export const germanSwitcherLabels = {
64
+ allOffers: (n, product) => `Alle ${n} Angebote für ${product}`,
65
+ previous: "Vorheriges Angebot",
66
+ next: "Nächstes Angebot",
67
+ choose: "Importeurangebot auswählen",
68
+ current: "Aktuelles Angebot",
69
+ unknownImporter: "Unbekannter Importeur",
70
+ unread: (n) => `${n} ungelesene Nachrichten`,
71
+ };
72
+ export const LONG_GERMAN_NAMES = [
73
+ "Norddeutsche Weinimport- und Vertriebsgesellschaft mit beschränkter Haftung",
74
+ "Süddeutsche Getränkegroßhandelsgesellschaft Bodensee-Oberschwaben",
75
+ "Hanseatische Spirituosen- und Weinhandelskontor Hamburg-Altona",
76
+ ];
77
+ /** Stand-in for a router link: spreads the link props like a consumer's router Link would. */
78
+ export function anchorLink(branch, props) {
79
+ return _jsx("a", { href: `#/offers/${branch.id}`, ...props });
80
+ }
81
+ //# sourceMappingURL=offer-branch-fixtures.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"offer-branch-fixtures.js","sourceRoot":"","sources":["../../src/offer/offer-branch-fixtures.tsx"],"names":[],"mappings":";AAIA,MAAM,CAAC,MAAM,UAAU,GAAG,IAAI,IAAI,CAAC,sBAAsB,CAAC,CAAC;AAI3D,MAAM,QAAQ,GAAc;IAC1B,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE;IAC5D,EAAE,MAAM,EAAE,gBAAgB,EAAE,WAAW,EAAE,gBAAgB,EAAE,UAAU,EAAE,aAAa,EAAE;IACtF,EAAE,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE;IACtE,EAAE,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE;IACrE,EAAE,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE;CACrE,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAc;IACxC,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE;IAChE,EAAE,MAAM,EAAE,gBAAgB,EAAE,WAAW,EAAE,gBAAgB,EAAE,UAAU,EAAE,aAAa,EAAE;IACtF,EAAE,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE;IACxE,EAAE,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,QAAQ,EAAE;IACtE,EAAE,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE;CACxE,CAAC;AAEF,MAAM,KAAK,GAAG;IACZ,qBAAqB;IACrB,wBAAwB;IACxB,sBAAsB;IACtB,eAAe;IACf,gBAAgB;CACjB,CAAC;AAEF,MAAM,UAAU,YAAY,CAC1B,KAAa,EACb,QAA2B,KAAK,EAChC,WAAsB,QAAQ;IAE9B,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;QAC9C,EAAE,EAAE,UAAU,CAAC,GAAG,CAAC,EAAE;QACrB,YAAY,EACV,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7F,GAAG,QAAQ,CAAC,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC;QAChC,YAAY,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC;QACzB,WAAW,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACpC,cAAc,EAAE,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,SAAS,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE;KAC7F,CAAC,CAAC,CAAC;AACN,CAAC;AAED,MAAM,CAAC,MAAM,UAAU,GAA0B;IAC/C,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,kBAAkB;IACpC,eAAe,EAAE,kBAAkB;IACnC,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE;IAC1B,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,kBAAkB;IACrC,YAAY,EAAE,eAAe;IAC7B,UAAU,EAAE,aAAa;IACzB,KAAK,EAAE,oBAAoB;IAC3B,KAAK,EAAE,yBAAyB;CACjC,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAA8B;IACvD,SAAS,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,eAAe,OAAO,EAAE;IAC3D,QAAQ,EAAE,gBAAgB;IAC1B,IAAI,EAAE,YAAY;IAClB,MAAM,EAAE,uBAAuB;IAC/B,OAAO,EAAE,eAAe;IACxB,eAAe,EAAE,kBAAkB;IACnC,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,kBAAkB;CACtC,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAA0B;IACrD,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,yBAAyB;IAC3C,eAAe,EAAE,uBAAuB;IACxC,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,qBAAqB,CAAC,EAAE;IACtC,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,yBAAyB;IAC5C,YAAY,EAAE,kBAAkB;IAChC,UAAU,EAAE,mBAAmB;IAC/B,KAAK,EAAE,0BAA0B;IACjC,KAAK,EAAE,oCAAoC;CAC5C,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAA8B;IAC7D,SAAS,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,CAAC,QAAQ,CAAC,iBAAiB,OAAO,EAAE;IAC9D,QAAQ,EAAE,oBAAoB;IAC9B,IAAI,EAAE,kBAAkB;IACxB,MAAM,EAAE,4BAA4B;IACpC,OAAO,EAAE,mBAAmB;IAC5B,eAAe,EAAE,uBAAuB;IACxC,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,yBAAyB;CAC7C,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,6EAA6E;IAC7E,mEAAmE;IACnE,gEAAgE;CACjE,CAAC;AAEF,8FAA8F;AAC9F,MAAM,UAAU,UAAU,CAAC,MAA0B,EAAE,KAA2B;IAChF,OAAO,YAAG,IAAI,EAAE,YAAY,MAAM,CAAC,EAAE,EAAE,KAAM,KAAK,GAAI,CAAC;AACzD,CAAC"}
@@ -0,0 +1,34 @@
1
+ import { type BranchSort, type OfferBranchRenderLink, type OfferBranchSummary } from "./offer-branch-shared.js";
2
+ export interface OfferBranchListLabels {
3
+ title: (count: number) => string;
4
+ unknownImporter: string;
5
+ round: (n: number) => string;
6
+ unread: (n: number) => string;
7
+ /** Screen-reader prefix for the last-activity time, e.g. "Last activity". */
8
+ lastActivity: string;
9
+ /** Screen-reader text on the returned-from row, e.g. "last viewed". */
10
+ lastViewed: string;
11
+ /** Screen-reader text on stale rows, e.g. "no recent activity". */
12
+ stale: string;
13
+ empty: string;
14
+ }
15
+ export interface OfferBranchListProps {
16
+ branches: readonly OfferBranchSummary[];
17
+ /** The previously opened child: highlighted (not aria-current) and scrolled into view. */
18
+ highlightedId?: string;
19
+ /** Spread `linkProps` onto the consumer's router link; the whole row is the link. */
20
+ renderLink: OfferBranchRenderLink;
21
+ locale: string;
22
+ labels: OfferBranchListLabels;
23
+ /** "activity" (default): newest first. "attention": unread first, then newest. */
24
+ sort?: BranchSort;
25
+ /** Rows idle for more than this many days show their time in the warning tone. Off by default. */
26
+ staleAfterDays?: number;
27
+ /** Level of the list title. Defaults to 2. */
28
+ headingLevel?: 2 | 3 | 4 | 5 | 6;
29
+ /** Reference time for relative timestamps (defaults to mount time). */
30
+ now?: Date;
31
+ className?: string;
32
+ }
33
+ export declare function OfferBranchList({ branches, highlightedId, renderLink, locale, labels, sort, staleAfterDays, headingLevel, now, className, }: OfferBranchListProps): import("react/jsx-runtime").JSX.Element;
34
+ //# sourceMappingURL=offer-branch-list.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"offer-branch-list.d.ts","sourceRoot":"","sources":["../../src/offer/offer-branch-list.tsx"],"names":[],"mappings":"AAIA,OAAO,EAQL,KAAK,UAAU,EACf,KAAK,qBAAqB,EAC1B,KAAK,kBAAkB,EACxB,MAAM,uBAAuB,CAAC;AAE/B,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IACjC,eAAe,EAAE,MAAM,CAAC;IACxB,KAAK,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IAC7B,MAAM,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IAC9B,6EAA6E;IAC7E,YAAY,EAAE,MAAM,CAAC;IACrB,uEAAuE;IACvE,UAAU,EAAE,MAAM,CAAC;IACnB,mEAAmE;IACnE,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,SAAS,kBAAkB,EAAE,CAAC;IACxC,0FAA0F;IAC1F,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,qFAAqF;IACrF,UAAU,EAAE,qBAAqB,CAAC;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,qBAAqB,CAAC;IAC9B,kFAAkF;IAClF,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,kGAAkG;IAClG,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,8CAA8C;IAC9C,YAAY,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACjC,uEAAuE;IACvE,GAAG,CAAC,EAAE,IAAI,CAAC;IACX,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAKD,wBAAgB,eAAe,CAAC,EAC9B,QAAQ,EACR,aAAa,EACb,UAAU,EACV,MAAM,EACN,MAAM,EACN,IAAiB,EACjB,cAAc,EACd,YAAgB,EAChB,GAAG,EACH,SAAS,GACV,EAAE,oBAAoB,2CAwHtB"}
@@ -0,0 +1,43 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import { ChevronRight, Clock } from "lucide-react";
3
+ import { useEffect, useId, useMemo, useRef, useState } from "react";
4
+ import { toneClass } from "../lib/semantic-tones.js";
5
+ import { cn } from "../lib/utils.js";
6
+ import { BranchStatus, FOCUS_RING, UnreadBadge, formatAbsolute, formatRelative, makeFormatters, sortBranches, } from "./offer-branch-shared.js";
7
+ const DAY_MS = 86_400_000;
8
+ const SR_SEP = _jsx("span", { className: "sr-only", children: ", " });
9
+ export function OfferBranchList({ branches, highlightedId, renderLink, locale, labels, sort = "activity", staleAfterDays, headingLevel = 2, now, className, }) {
10
+ const sorted = useMemo(() => sortBranches(branches, sort), [branches, sort]);
11
+ const formatters = useMemo(() => makeFormatters(locale), [locale]);
12
+ const [mountedAt] = useState(() => new Date());
13
+ const reference = now ?? mountedAt;
14
+ const highlightedRef = useRef(null);
15
+ const titleId = useId();
16
+ const Heading = `h${headingLevel}`;
17
+ // Only when the highlighted row changes (or on mount), never on list growth.
18
+ useEffect(() => {
19
+ highlightedRef.current?.scrollIntoView?.({ block: "nearest" });
20
+ }, [highlightedId]);
21
+ return (_jsxs("section", { "aria-labelledby": titleId, className: cn("min-w-0 max-w-5xl", className), children: [_jsx(Heading, { id: titleId, className: "text-base/6 font-semibold text-foreground", children: labels.title(sorted.length) }), sorted.length === 0 ? (_jsx("p", { className: "mt-3 text-sm/6 text-muted-foreground", children: labels.empty })) : (_jsx("ul", { className: "mt-3 divide-y divide-border rounded-lg border border-border bg-card sm:grid sm:grid-cols-[0_minmax(0,1fr)_auto_auto_auto_2rem_1rem_0] sm:gap-x-4", children: sorted.map((branch) => {
22
+ const highlighted = branch.id === highlightedId;
23
+ const unread = branch.unreadCount > 0;
24
+ const name = branch.importerName ?? labels.unknownImporter;
25
+ const absolute = formatAbsolute(branch.lastActivityAt, formatters);
26
+ const relative = formatRelative(branch.lastActivityAt, formatters, reference);
27
+ const last = Date.parse(branch.lastActivityAt);
28
+ const stale = staleAfterDays !== undefined &&
29
+ !Number.isNaN(last) &&
30
+ reference.getTime() - last > staleAfterDays * DAY_MS;
31
+ return (_jsx("li", { ref: highlighted ? highlightedRef : undefined, "data-highlighted": highlighted ? "true" : undefined, className: "first:rounded-t-lg last:rounded-b-lg sm:col-span-full sm:grid sm:grid-cols-subgrid", children: renderLink(branch, {
32
+ className: cn("grid min-h-11 grid-cols-[minmax(0,1fr)_auto_auto] items-center gap-x-2 px-3 py-2.5 sm:px-0 sm:col-span-full sm:grid-cols-subgrid", "rounded-[inherit]", FOCUS_RING, highlighted
33
+ ? [toneClass("brand"), "bg-(--tone-surface-strong)"]
34
+ : "hover:bg-muted/50"),
35
+ children: (_jsxs(_Fragment, { children: [_jsxs("span", { title: name, className: cn("line-clamp-2 min-w-0 sm:col-start-2 text-sm/6 break-words text-foreground", highlighted || unread ? "font-semibold" : "font-medium"), children: [name, highlighted ? (_jsxs("span", { className: "sr-only", children: [" (", labels.lastViewed, ")"] })) : null] }), _jsxs("span", { className: "col-span-3 row-start-2 flex flex-wrap items-center gap-x-2 gap-y-1 sm:contents", children: [SR_SEP, _jsx(BranchStatus, { branch: branch }), SR_SEP, _jsxs("span", { className: "inline-flex items-center gap-x-2 whitespace-nowrap max-sm:col-auto sm:contents", children: [_jsx("span", { className: "text-xs/5 whitespace-nowrap text-muted-foreground tabular-nums", children: labels.round(branch.currentRound) }), SR_SEP, _jsx("span", { "aria-hidden": true, className: "text-xs/5 text-muted-foreground sm:hidden", children: "\u00B7" }), relative ? (_jsxs("time", { dateTime: branch.lastActivityAt, title: absolute, className: cn("inline-flex items-center gap-1 text-xs/5 whitespace-nowrap sm:justify-end", stale
36
+ ? "font-medium text-warning"
37
+ : unread
38
+ ? "text-foreground"
39
+ : "text-muted-foreground"), children: [stale ? _jsx(Clock, { "aria-hidden": true, className: "size-3" }) : null, _jsxs("span", { className: "sr-only", children: [labels.lastActivity, ": "] }), relative, stale ? _jsxs("span", { className: "sr-only", children: [" (", labels.stale, ")"] }) : null] })) : (_jsx("span", { "aria-hidden": true }))] })] }), _jsxs("span", { className: "row-start-1 col-start-2 flex justify-end sm:row-auto sm:col-auto", children: [unread ? SR_SEP : null, _jsx(UnreadBadge, { count: branch.unreadCount, label: labels.unread(branch.unreadCount) })] }), _jsx(ChevronRight, { "aria-hidden": true, className: "row-start-1 col-start-3 size-4 shrink-0 text-muted-foreground sm:row-auto sm:col-auto rtl:rotate-180" })] })),
40
+ }) }, branch.id));
41
+ }) }))] }));
42
+ }
43
+ //# sourceMappingURL=offer-branch-list.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"offer-branch-list.js","sourceRoot":"","sources":["../../src/offer/offer-branch-list.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,55 @@
1
+ import type { MouseEvent, ReactNode } from "react";
2
+ import { type SemanticTone } from "../lib/semantic-tones.js";
3
+ /** One child offer of a root offer that was sent to several importers. */
4
+ export type OfferBranchSummary = {
5
+ id: string;
6
+ /** Importer organisation name; null renders the consumer-provided fallback label. */
7
+ importerName: string | null;
8
+ status: string;
9
+ /** Already-translated status label (i18n lives in consumers). */
10
+ statusLabel: string;
11
+ statusTone?: SemanticTone;
12
+ currentRound: number;
13
+ unreadCount: number;
14
+ /** ISO 8601 timestamp. */
15
+ lastActivityAt: string;
16
+ };
17
+ /**
18
+ * Props the consumer spreads onto its router link. Focus ring, hit area,
19
+ * `aria-current` and `onClick` (selection callback) all live on the link.
20
+ */
21
+ export type OfferBranchLinkProps = {
22
+ children: ReactNode;
23
+ className: string;
24
+ "aria-current"?: "page";
25
+ onClick?: (event: MouseEvent<HTMLElement>) => void;
26
+ };
27
+ /** Render the consumer's router link for `branch`, spreading `linkProps` onto it. */
28
+ export type OfferBranchRenderLink = (branch: OfferBranchSummary, linkProps: OfferBranchLinkProps) => ReactNode;
29
+ /** Focus ring on the focused element itself (ui focus token). */
30
+ export declare const FOCUS_RING = "outline-hidden focus-visible:relative focus-visible:z-10 focus-visible:ring-3 focus-visible:ring-ring/50";
31
+ /** True for clicks that open a new tab/window and must not count as selection. */
32
+ export declare function isModifiedClick(event: MouseEvent<HTMLElement>): boolean;
33
+ export type BranchSort = "activity" | "attention";
34
+ /** Sorted copy. "attention" puts rows with unread messages first. Ties keep input order. */
35
+ export declare function sortBranches(branches: readonly OfferBranchSummary[], sort: BranchSort): OfferBranchSummary[];
36
+ export type BranchFormatters = {
37
+ relative: Intl.RelativeTimeFormat;
38
+ absolute: Intl.DateTimeFormat;
39
+ };
40
+ /** Build once per render. An unsupported or malformed locale falls back to the runtime default. */
41
+ export declare function makeFormatters(locale: string): BranchFormatters;
42
+ /** "" for an unparseable timestamp. Future timestamps read "in 2 hours". */
43
+ export declare function formatRelative(iso: string, formatters: BranchFormatters, now: Date): string;
44
+ export declare function formatAbsolute(iso: string, formatters: BranchFormatters): string;
45
+ /** Status is always icon + text, never colour alone. Tone variables re-theme in dark mode. */
46
+ export declare function BranchStatus({ branch, className, }: {
47
+ branch: OfferBranchSummary;
48
+ className?: string;
49
+ }): import("react/jsx-runtime").JSX.Element;
50
+ /** Visible count (capped at 99+) with the full announcement for assistive tech. */
51
+ export declare function UnreadBadge({ count, label }: {
52
+ count: number;
53
+ label: string;
54
+ }): import("react/jsx-runtime").JSX.Element | null;
55
+ //# sourceMappingURL=offer-branch-shared.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"offer-branch-shared.d.ts","sourceRoot":"","sources":["../../src/offer/offer-branch-shared.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACnD,OAAO,EAAa,KAAK,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAGrE,0EAA0E;AAC1E,MAAM,MAAM,kBAAkB,GAAG;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,qFAAqF;IACrF,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,iEAAiE;IACjE,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,YAAY,CAAC;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,0BAA0B;IAC1B,cAAc,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,oBAAoB,GAAG;IACjC,QAAQ,EAAE,SAAS,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,CAAC,WAAW,CAAC,KAAK,IAAI,CAAC;CACpD,CAAC;AAEF,qFAAqF;AACrF,MAAM,MAAM,qBAAqB,GAAG,CAClC,MAAM,EAAE,kBAAkB,EAC1B,SAAS,EAAE,oBAAoB,KAC5B,SAAS,CAAC;AAEf,iEAAiE;AACjE,eAAO,MAAM,UAAU,6GACqF,CAAC;AAE7G,kFAAkF;AAClF,wBAAgB,eAAe,CAAC,KAAK,EAAE,UAAU,CAAC,WAAW,CAAC,GAAG,OAAO,CAEvE;AAWD,MAAM,MAAM,UAAU,GAAG,UAAU,GAAG,WAAW,CAAC;AAOlD,4FAA4F;AAC5F,wBAAgB,YAAY,CAAC,QAAQ,EAAE,SAAS,kBAAkB,EAAE,EAAE,IAAI,EAAE,UAAU,wBAWrF;AAWD,MAAM,MAAM,gBAAgB,GAAG;IAC7B,QAAQ,EAAE,IAAI,CAAC,kBAAkB,CAAC;IAClC,QAAQ,EAAE,IAAI,CAAC,cAAc,CAAC;CAC/B,CAAC;AAEF,mGAAmG;AACnG,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,gBAAgB,CAY/D;AAED,4EAA4E;AAC5E,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,gBAAgB,EAAE,GAAG,EAAE,IAAI,GAAG,MAAM,CAS3F;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,gBAAgB,GAAG,MAAM,CAGhF;AAED,8FAA8F;AAC9F,wBAAgB,YAAY,CAAC,EAC3B,MAAM,EACN,SAAS,GACV,EAAE;IACD,MAAM,EAAE,kBAAkB,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,2CAeA;AAED,mFAAmF;AACnF,wBAAgB,WAAW,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,kDAQ7E"}
@@ -0,0 +1,88 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { CheckCircle2, Circle, CircleAlert, Clock, MessagesSquare, Send } from "lucide-react";
3
+ import { toneClass } from "../lib/semantic-tones.js";
4
+ import { cn } from "../lib/utils.js";
5
+ /** Focus ring on the focused element itself (ui focus token). */
6
+ export const FOCUS_RING = "outline-hidden focus-visible:relative focus-visible:z-10 focus-visible:ring-3 focus-visible:ring-ring/50";
7
+ /** True for clicks that open a new tab/window and must not count as selection. */
8
+ export function isModifiedClick(event) {
9
+ return event.metaKey || event.ctrlKey || event.shiftKey || event.altKey || event.button !== 0;
10
+ }
11
+ const TONE_ICON = {
12
+ brand: Send,
13
+ warning: Clock,
14
+ negotiation: MessagesSquare,
15
+ success: CheckCircle2,
16
+ danger: CircleAlert,
17
+ neutral: Circle,
18
+ };
19
+ function activityTime(branch) {
20
+ const time = Date.parse(branch.lastActivityAt);
21
+ return Number.isNaN(time) ? 0 : time;
22
+ }
23
+ /** Sorted copy. "attention" puts rows with unread messages first. Ties keep input order. */
24
+ export function sortBranches(branches, sort) {
25
+ return branches
26
+ .map((branch, index) => ({ branch, index }))
27
+ .sort((a, b) => {
28
+ if (sort === "attention") {
29
+ const unread = Number(b.branch.unreadCount > 0) - Number(a.branch.unreadCount > 0);
30
+ if (unread !== 0)
31
+ return unread;
32
+ }
33
+ return activityTime(b.branch) - activityTime(a.branch) || a.index - b.index;
34
+ })
35
+ .map((entry) => entry.branch);
36
+ }
37
+ const UNITS = [
38
+ ["year", 31_536_000],
39
+ ["month", 2_592_000],
40
+ ["week", 604_800],
41
+ ["day", 86_400],
42
+ ["hour", 3_600],
43
+ ["minute", 60],
44
+ ];
45
+ /** Build once per render. An unsupported or malformed locale falls back to the runtime default. */
46
+ export function makeFormatters(locale) {
47
+ const build = (create) => {
48
+ try {
49
+ return create(locale);
50
+ }
51
+ catch {
52
+ return create(undefined);
53
+ }
54
+ };
55
+ return {
56
+ relative: build((l) => new Intl.RelativeTimeFormat(l, { numeric: "auto" })),
57
+ absolute: build((l) => new Intl.DateTimeFormat(l, { dateStyle: "medium", timeStyle: "short" })),
58
+ };
59
+ }
60
+ /** "" for an unparseable timestamp. Future timestamps read "in 2 hours". */
61
+ export function formatRelative(iso, formatters, now) {
62
+ const time = Date.parse(iso);
63
+ if (Number.isNaN(time))
64
+ return "";
65
+ const seconds = Math.round((time - now.getTime()) / 1000);
66
+ for (const [unit, size] of UNITS) {
67
+ if (Math.abs(seconds) >= size)
68
+ return formatters.relative.format(Math.round(seconds / size), unit);
69
+ }
70
+ return formatters.relative.format(Math.round(seconds / 60) || 0, "minute");
71
+ }
72
+ export function formatAbsolute(iso, formatters) {
73
+ const time = Date.parse(iso);
74
+ return Number.isNaN(time) ? "" : formatters.absolute.format(time);
75
+ }
76
+ /** Status is always icon + text, never colour alone. Tone variables re-theme in dark mode. */
77
+ export function BranchStatus({ branch, className, }) {
78
+ const tone = branch.statusTone ?? "neutral";
79
+ const Icon = TONE_ICON[tone];
80
+ return (_jsxs("span", { className: cn("inline-flex w-fit max-w-full items-center gap-1 rounded-full bg-(--tone-soft) px-2 py-0.5 text-xs/4 font-medium text-(--tone-fg) ring-1 ring-(--tone-border) ring-inset", toneClass(tone), className), children: [_jsx(Icon, { "aria-hidden": true, className: "size-3 shrink-0" }), _jsx("span", { className: "truncate", children: branch.statusLabel })] }));
81
+ }
82
+ /** Visible count (capped at 99+) with the full announcement for assistive tech. */
83
+ export function UnreadBadge({ count, label }) {
84
+ if (count <= 0)
85
+ return null;
86
+ return (_jsxs("span", { className: "inline-flex min-w-5 items-center justify-center rounded-full bg-primary px-1.5 text-xs/5 font-medium text-primary-foreground tabular-nums", children: [_jsx("span", { "aria-hidden": true, children: count > 99 ? "99+" : count }), _jsx("span", { className: "sr-only", children: label })] }));
87
+ }
88
+ //# sourceMappingURL=offer-branch-shared.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"offer-branch-shared.js","sourceRoot":"","sources":["../../src/offer/offer-branch-shared.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,43 @@
1
+ import { type ReactNode } from "react";
2
+ import { type OfferBranchRenderLink, type OfferBranchSummary } from "./offer-branch-shared.js";
3
+ export interface OfferBranchSwitcherLabels {
4
+ allOffers: (count: number, product: string) => string;
5
+ previous: string;
6
+ next: string;
7
+ choose: string;
8
+ /** Kept for API stability; the current link is announced via aria-current only. */
9
+ current?: string;
10
+ unknownImporter: string;
11
+ unread: (n: number) => string;
12
+ }
13
+ export interface OfferBranchSwitcherProps {
14
+ /**
15
+ * Siblings in the backend's stable (creation) order. Previous/next and the
16
+ * dropdown use exactly this order. They deliberately do NOT follow the
17
+ * list's activity sort, so navigation does not shift under the user when
18
+ * new activity arrives.
19
+ *
20
+ * Consumer note (TanStack Router): `<Link>` sets `aria-current` itself on an
21
+ * active route, which would clash with the back link. Give the back link
22
+ * `activeOptions={{ exact: true }}` (or use flat routes) so it is never
23
+ * marked current on a child page.
24
+ */
25
+ branches: readonly OfferBranchSummary[];
26
+ currentId: string;
27
+ productName: string;
28
+ /** Spread `linkProps` onto the consumer's router link to that branch. */
29
+ renderLink: OfferBranchRenderLink;
30
+ /** Called on a plain click of a sibling link (not on modifier or middle clicks). */
31
+ onSelect?: (id: string) => void;
32
+ /** Back link to the list. Spread `{ className, children }` onto the router link. */
33
+ renderBackLink?: (linkProps: {
34
+ children: ReactNode;
35
+ className: string;
36
+ }) => ReactNode;
37
+ labels: OfferBranchSwitcherLabels;
38
+ /** Narrower dropdown trigger for tight headers. Prev/next are always icon-only. */
39
+ compact?: boolean;
40
+ className?: string;
41
+ }
42
+ export declare function OfferBranchSwitcher({ branches, currentId, productName, renderLink, onSelect, renderBackLink, labels, compact, className, }: OfferBranchSwitcherProps): import("react/jsx-runtime").JSX.Element;
43
+ //# sourceMappingURL=offer-branch-switcher.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"offer-branch-switcher.d.ts","sourceRoot":"","sources":["../../src/offer/offer-branch-switcher.tsx"],"names":[],"mappings":"AACA,OAAO,EAAqC,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAG1E,OAAO,EAKL,KAAK,qBAAqB,EAC1B,KAAK,kBAAkB,EACxB,MAAM,uBAAuB,CAAC;AAE/B,MAAM,WAAW,yBAAyB;IACxC,SAAS,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,MAAM,CAAC;IACtD,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,mFAAmF;IACnF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,eAAe,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;CAC/B;AAED,MAAM,WAAW,wBAAwB;IACvC;;;;;;;;;;OAUG;IACH,QAAQ,EAAE,SAAS,kBAAkB,EAAE,CAAC;IACxC,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,yEAAyE;IACzE,UAAU,EAAE,qBAAqB,CAAC;IAClC,oFAAoF;IACpF,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,oFAAoF;IACpF,cAAc,CAAC,EAAE,CAAC,SAAS,EAAE;QAAE,QAAQ,EAAE,SAAS,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,KAAK,SAAS,CAAC;IACtF,MAAM,EAAE,yBAAyB,CAAC;IAClC,mFAAmF;IACnF,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAKD,wBAAgB,mBAAmB,CAAC,EAClC,QAAQ,EACR,SAAS,EACT,WAAW,EACX,UAAU,EACV,QAAQ,EACR,cAAc,EACd,MAAM,EACN,OAAe,EACf,SAAS,GACV,EAAE,wBAAwB,2CAsJ1B"}
@@ -0,0 +1,48 @@
1
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { ArrowLeft, Check, ChevronDown, ChevronLeft, ChevronRight } from "lucide-react";
3
+ import { useRef, useState } from "react";
4
+ import { Popover, PopoverContent, PopoverTrigger } from "../components/popover.js";
5
+ import { cn } from "../lib/utils.js";
6
+ import { BranchStatus, FOCUS_RING, UnreadBadge, isModifiedClick, } from "./offer-branch-shared.js";
7
+ const NAV_BOX = "inline-flex size-11 shrink-0 items-center justify-center rounded-md border border-border bg-background text-foreground sm:size-9";
8
+ export function OfferBranchSwitcher({ branches, currentId, productName, renderLink, onSelect, renderBackLink, labels, compact = false, className, }) {
9
+ const [open, setOpen] = useState(false);
10
+ const contentRef = useRef(null);
11
+ const index = branches.findIndex((b) => b.id === currentId);
12
+ const current = index >= 0 ? branches[index] : undefined;
13
+ const previous = index > 0 ? branches[index - 1] : undefined;
14
+ const next = index >= 0 && index < branches.length - 1 ? branches[index + 1] : undefined;
15
+ const name = (b) => b.importerName ?? labels.unknownImporter;
16
+ const backText = labels.allOffers(branches.length, productName);
17
+ const select = (branch) => (event) => {
18
+ if (isModifiedClick(event))
19
+ return;
20
+ setOpen(false);
21
+ onSelect?.(branch.id);
22
+ };
23
+ const navButton = (target, label, icon) => target ? (renderLink(target, {
24
+ className: cn(NAV_BOX, "hover:bg-muted", FOCUS_RING),
25
+ onClick: select(target),
26
+ children: (_jsxs(_Fragment, { children: [icon, _jsx("span", { className: "sr-only", children: `${label}: ${name(target)}` })] })),
27
+ })) : (_jsxs("button", { type: "button", disabled: true, className: cn(NAV_BOX, "text-muted-foreground opacity-50"), children: [icon, _jsx("span", { className: "sr-only", children: label })] }));
28
+ const backContent = (_jsxs(_Fragment, { children: [_jsx(ArrowLeft, { "aria-hidden": true, className: "size-4 shrink-0 rtl:rotate-180" }), _jsx("span", { title: backText, className: "line-clamp-2 min-w-0 break-words", children: backText })] }));
29
+ return (_jsxs("nav", { "aria-label": backText, className: cn("flex max-w-full min-w-0 flex-wrap items-center gap-x-3 gap-y-2", className), children: [_jsx("span", { className: "min-w-0 text-sm/5", children: renderBackLink ? (renderBackLink({
30
+ className: cn("inline-flex min-h-11 items-center gap-1.5 rounded-md text-muted-foreground hover:text-foreground sm:min-h-0", FOCUS_RING),
31
+ children: backContent,
32
+ })) : (_jsx("span", { className: "inline-flex items-center gap-1.5 text-muted-foreground", children: backContent })) }), _jsxs("div", { className: "ms-auto flex min-w-0 items-center gap-1.5", children: [navButton(previous, labels.previous, _jsx(ChevronLeft, { "aria-hidden": true, className: "size-4 rtl:rotate-180" })), _jsxs(Popover, { open: open, onOpenChange: setOpen, children: [_jsxs(PopoverTrigger, { "aria-label": current ? `${labels.choose}: ${name(current)}` : labels.choose, className: cn("inline-flex h-11 min-w-0 items-center gap-2 rounded-md border border-border bg-background px-3 text-sm/6 text-foreground hover:bg-muted sm:h-9", compact ? "max-w-32 sm:max-w-40" : "max-w-48 sm:max-w-64", FOCUS_RING), children: [_jsx("span", { className: "truncate", children: current ? name(current) : labels.choose }), _jsx(ChevronDown, { "aria-hidden": true, className: "size-4 shrink-0" })] }), _jsx(PopoverContent, { ref: contentRef, align: "end", collisionPadding: 16, "aria-label": labels.choose, className: "w-[min(22rem,calc(100vw-2rem))] p-1", onOpenAutoFocus: (event) => {
33
+ event.preventDefault();
34
+ const target = contentRef.current?.querySelector('[aria-current="page"]') ??
35
+ contentRef.current?.querySelector("a, button");
36
+ target?.focus();
37
+ target?.scrollIntoView?.({ block: "nearest" });
38
+ }, children: _jsx("ul", { className: "max-h-80 overflow-y-auto", children: branches.map((branch) => {
39
+ const isCurrent = branch.id === currentId;
40
+ return (_jsx("li", { className: "rounded-sm", children: renderLink(branch, {
41
+ "aria-current": isCurrent ? "page" : undefined,
42
+ onClick: select(branch),
43
+ className: cn("flex min-h-11 flex-wrap items-center gap-x-2 gap-y-1 rounded-sm px-2 py-2 sm:min-h-9 sm:flex-nowrap", isCurrent ? "bg-muted" : "hover:bg-muted/50", FOCUS_RING),
44
+ children: (_jsxs(_Fragment, { children: [_jsx(Check, { "aria-hidden": true, className: cn("size-4 shrink-0", !isCurrent && "invisible") }), _jsx("span", { title: name(branch), className: cn("min-w-0 flex-1 truncate text-sm/6 text-foreground", isCurrent && "font-semibold"), children: name(branch) }), _jsx(UnreadBadge, { count: branch.unreadCount, label: labels.unread(branch.unreadCount) }), _jsx("span", { className: "sr-only", children: ", " }), _jsx("span", { className: "max-sm:order-last max-sm:ms-6 max-sm:basis-full", children: _jsx(BranchStatus, { branch: branch }) })] })),
45
+ }) }, branch.id));
46
+ }) }) })] }), navButton(next, labels.next, _jsx(ChevronRight, { "aria-hidden": true, className: "size-4 rtl:rotate-180" }))] })] }));
47
+ }
48
+ //# sourceMappingURL=offer-branch-switcher.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"offer-branch-switcher.js","sourceRoot":"","sources":["../../src/offer/offer-branch-switcher.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.178.0",
3
+ "version": "0.178.1",
4
4
  "type": "module",
5
5
  "private": false,
6
6
  "packageManager": "pnpm@10.28.2+sha512.41872f037ad22f7348e3b1debbaf7e867cfd448f2726d9cf74c08f19507c31d2c8e7a11525b983febc2df640b5438dee6023ebb1f84ed43cc2d654d2bc326264",