@voyantjs/distribution-ui 0.34.0 → 0.37.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -30,7 +30,7 @@ export function BookingLinkDetailPage({ id, className, onBack = noop, onDeleted
30
30
  });
31
31
  const remove = useMutation({
32
32
  mutationFn: () => fetchWithValidation(`/v1/distribution/booking-links/${id}`, successEnvelope, client, {
33
- method: "DELETE",
33
+ method: "DELETE", // i18n-literal-ok HTTP method
34
34
  }),
35
35
  onSuccess: () => {
36
36
  void queryClient.invalidateQueries({ queryKey: distributionQueryKeys.bookingLinks() });
@@ -1 +1 @@
1
- {"version":3,"file":"channel-sync-page.d.ts","sourceRoot":"","sources":["../../src/components/channel-sync-page.tsx"],"names":[],"mappings":"AAGA,OAAO,EAGL,KAAK,aAAa,EACnB,MAAM,8BAA8B,CAAA;AA8HrC,MAAM,WAAW,oBAAoB;IACnC,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,OAAO,CAAC,EAAE,aAAa,CAAA;IACvB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AA8DD,wBAAgB,eAAe,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,GAAE,oBAAyB,2CAiWzF"}
1
+ {"version":3,"file":"channel-sync-page.d.ts","sourceRoot":"","sources":["../../src/components/channel-sync-page.tsx"],"names":[],"mappings":"AAGA,OAAO,EAGL,KAAK,aAAa,EACnB,MAAM,8BAA8B,CAAA;AA+HrC,MAAM,WAAW,oBAAoB;IACnC,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,OAAO,CAAC,EAAE,aAAa,CAAA;IACvB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAgDD,wBAAgB,eAAe,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,GAAE,oBAAyB,2CA8WzF"}
@@ -8,6 +8,7 @@ import { Empty, EmptyDescription, EmptyHeader, EmptyTitle } from "@voyantjs/ui/c
8
8
  import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow, } from "@voyantjs/ui/components/table";
9
9
  import { AlertTriangle, ChevronDown, Loader2, RotateCw, X } from "lucide-react";
10
10
  import { useEffect, useRef, useState } from "react";
11
+ import { useDistributionUiMessagesOrDefault } from "../i18n/index.js";
11
12
  // Fetch helpers
12
13
  async function fetchJson(path, options, init) {
13
14
  const res = await options.fetcher(joinUrl(options.baseUrl, path), {
@@ -32,27 +33,18 @@ const STATUS_VARIANTS = {
32
33
  failed: "destructive",
33
34
  compensated: "outline",
34
35
  };
35
- const STATUS_LABELS = {
36
- pending: "Pending",
37
- ok: "OK",
38
- failed: "Failed",
39
- compensated: "Compensated",
40
- };
41
36
  const STATUS_TILES = [
42
- { key: "pending", label: "Pending", description: "In flight", tone: "secondary" },
43
- { key: "ok", label: "Delivered", description: "Channel acknowledged", tone: "default" },
44
- { key: "failed", label: "Failed", description: "Needs attention", tone: "destructive" },
45
- {
46
- key: "compensated",
47
- label: "Compensated",
48
- description: "Rolled back",
49
- tone: "outline",
50
- },
37
+ { key: "pending", tone: "secondary" },
38
+ { key: "ok", tone: "default" },
39
+ { key: "failed", tone: "destructive" },
40
+ { key: "compensated", tone: "outline" },
51
41
  ];
52
42
  const LINKS_REFETCH_MS = 15_000;
53
43
  const THROTTLING_REFETCH_MS = 60_000;
54
44
  // Page
55
45
  export function ChannelSyncPage({ baseUrl, fetcher, className } = {}) {
46
+ const distributionMessages = useDistributionUiMessagesOrDefault();
47
+ const messages = distributionMessages.channelSync;
56
48
  const context = useVoyantDistributionContext();
57
49
  const client = {
58
50
  baseUrl: baseUrl ?? context.baseUrl,
@@ -131,11 +123,16 @@ export function ChannelSyncPage({ baseUrl, fetcher, className } = {}) {
131
123
  };
132
124
  const bookingOptions = bookingsQuery.data?.data ?? [];
133
125
  const channelOptions = channelsQuery.data?.data ?? [];
134
- return (_jsxs("div", { "data-slot": "channel-sync-page", className: cn("flex flex-col gap-6 p-6", className), children: [_jsxs("div", { className: "flex flex-wrap items-start justify-between gap-4", children: [_jsxs("div", { children: [_jsx("h2", { className: "text-lg font-semibold tracking-tight", children: "Channel sync" }), _jsx("p", { className: "text-sm text-muted-foreground", children: "Outbound delivery to syndication channels. Bookings push first; availability and content ride along in the background." })] }), _jsxs("div", { className: "flex items-center gap-3", children: [_jsx(AutoRefreshIndicator, { isFetching: linksQuery.isFetching, dataUpdatedAt: linksQuery.dataUpdatedAt, intervalMs: LINKS_REFETCH_MS }), _jsx(ReconcileMenu, { onRun: (flow) => reconcileMutation.mutate(flow), isRunning: reconcileMutation.isPending, lastResult: reconcileMutation.data ?? null })] })] }), isThrottled ? (_jsxs("div", { className: "flex items-start gap-2 rounded-md border border-amber-300 bg-amber-50 px-3 py-2 text-sm text-amber-900 dark:border-amber-700 dark:bg-amber-950/40 dark:text-amber-200", children: [_jsx(AlertTriangle, { className: "mt-0.5 h-4 w-4 shrink-0" }), _jsxs("div", { children: [_jsx("span", { className: "font-medium", children: "Throttled." }), " ", _jsxs("span", { children: [throttledChannels.reduce((sum, c) => sum + c.count, 0), " rate-limited deliveries in the last hour across ", throttledChannels.length, " channel", throttledChannels.length === 1 ? "" : "s", ". Lower the per-channel RPS in settings if this persists."] })] })] })) : null, _jsx("div", { className: "grid grid-cols-2 gap-3 md:grid-cols-4", children: STATUS_TILES.map((tile) => {
126
+ return (_jsxs("div", { "data-slot": "channel-sync-page", className: cn("flex flex-col gap-6 p-6", className), children: [_jsxs("div", { className: "flex flex-wrap items-start justify-between gap-4", children: [_jsxs("div", { children: [_jsx("h2", { className: "text-lg font-semibold tracking-tight", children: messages.title }), _jsx("p", { className: "text-sm text-muted-foreground", children: messages.description })] }), _jsxs("div", { className: "flex items-center gap-3", children: [_jsx(AutoRefreshIndicator, { isFetching: linksQuery.isFetching, dataUpdatedAt: linksQuery.dataUpdatedAt, intervalMs: LINKS_REFETCH_MS, messages: messages }), _jsx(ReconcileMenu, { onRun: (flow) => reconcileMutation.mutate(flow), isRunning: reconcileMutation.isPending, lastResult: reconcileMutation.data ?? null, messages: messages })] })] }), isThrottled ? (_jsxs("div", { className: "flex items-start gap-2 rounded-md border border-amber-300 bg-amber-50 px-3 py-2 text-sm text-amber-900 dark:border-amber-700 dark:bg-amber-950/40 dark:text-amber-200", children: [_jsx(AlertTriangle, { className: "mt-0.5 h-4 w-4 shrink-0" }), _jsxs("div", { children: [_jsx("span", { className: "font-medium", children: messages.throttledTitle }), " ", _jsx("span", { children: formatTemplate(messages.throttledBody, {
127
+ count: throttledChannels.reduce((sum, c) => sum + c.count, 0),
128
+ channels: throttledChannels.length,
129
+ channelLabel: throttledChannels.length === 1 ? "channel" : "channels",
130
+ }) })] })] })) : null, _jsx("div", { className: "grid grid-cols-2 gap-3 md:grid-cols-4", children: STATUS_TILES.map((tile) => {
135
131
  const isActive = statusFilter === tile.key;
136
132
  const value = counts[tile.key] ?? 0;
137
- return (_jsxs("button", { type: "button", onClick: () => setStatusFilter(isActive ? "all" : tile.key), className: cn("group rounded-lg border bg-card p-4 text-left transition-all", "hover:border-foreground/30 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring", isActive && "border-primary ring-2 ring-primary/30"), "aria-pressed": isActive, children: [_jsxs("div", { className: "flex items-center justify-between", children: [_jsx("span", { className: "text-xs font-medium uppercase tracking-wide text-muted-foreground", children: tile.label }), tile.key === "failed" && value > 0 ? (_jsx(AlertTriangle, { className: "h-3.5 w-3.5 text-destructive" })) : null] }), _jsx("div", { className: "mt-1 text-3xl font-semibold tabular-nums", children: value }), _jsx("div", { className: "mt-1 text-xs text-muted-foreground", children: tile.description })] }, tile.key));
138
- }) }), _jsxs("div", { className: "flex flex-col gap-3 md:flex-row md:items-end", children: [_jsxs("div", { className: "flex flex-1 flex-col gap-1.5", children: [_jsx(Label, { htmlFor: "cs-booking", className: "text-xs", children: "Booking" }), _jsx(AsyncCombobox, { value: bookingId, onChange: (value) => {
133
+ const tileMessages = messages.statusTiles[tile.key];
134
+ return (_jsxs("button", { type: "button", onClick: () => setStatusFilter(isActive ? "all" : tile.key), className: cn("group rounded-lg border bg-card p-4 text-left transition-all", "hover:border-foreground/30 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring", isActive && "border-primary ring-2 ring-primary/30"), "aria-pressed": isActive, children: [_jsxs("div", { className: "flex items-center justify-between", children: [_jsx("span", { className: "text-xs font-medium uppercase tracking-wide text-muted-foreground", children: tileMessages.label }), tile.key === "failed" && value > 0 ? (_jsx(AlertTriangle, { className: "h-3.5 w-3.5 text-destructive" })) : null] }), _jsx("div", { className: "mt-1 text-3xl font-semibold tabular-nums", children: value }), _jsx("div", { className: "mt-1 text-xs text-muted-foreground", children: tileMessages.description })] }, tile.key));
135
+ }) }), _jsxs("div", { className: "flex flex-col gap-3 md:flex-row md:items-end", children: [_jsxs("div", { className: "flex flex-1 flex-col gap-1.5", children: [_jsx(Label, { htmlFor: "cs-booking", className: "text-xs", children: messages.filters.booking }), _jsx(AsyncCombobox, { value: bookingId, onChange: (value) => {
139
136
  setBookingId(value);
140
137
  if (!value)
141
138
  setSelectedBooking(null);
@@ -144,7 +141,9 @@ export function ChannelSyncPage({ baseUrl, fetcher, className } = {}) {
144
141
  if (match)
145
142
  setSelectedBooking(match);
146
143
  }
147
- }, items: bookingOptions, selectedItem: selectedBooking, getKey: (b) => b.id, getLabel: (b) => b.bookingNumber, getSecondary: (b) => b.status, onSearchChange: setBookingSearch, placeholder: "Search by booking number...", emptyText: bookingsQuery.isFetching ? "Searching..." : "No bookings match that search.", triggerClassName: "w-full" })] }), _jsxs("div", { className: "flex flex-1 flex-col gap-1.5", children: [_jsx(Label, { htmlFor: "cs-channel", className: "text-xs", children: "Channel" }), _jsx(AsyncCombobox, { value: channelId, onChange: (value) => {
144
+ }, items: bookingOptions, selectedItem: selectedBooking, getKey: (b) => b.id, getLabel: (b) => b.bookingNumber, getSecondary: (b) => b.status, onSearchChange: setBookingSearch, placeholder: messages.filters.bookingPlaceholder, emptyText: bookingsQuery.isFetching
145
+ ? messages.filters.bookingSearching
146
+ : messages.filters.bookingEmpty, triggerClassName: "w-full" })] }), _jsxs("div", { className: "flex flex-1 flex-col gap-1.5", children: [_jsx(Label, { htmlFor: "cs-channel", className: "text-xs", children: messages.filters.channel }), _jsx(AsyncCombobox, { value: channelId, onChange: (value) => {
148
147
  setChannelId(value);
149
148
  if (!value)
150
149
  setSelectedChannel(null);
@@ -153,21 +152,27 @@ export function ChannelSyncPage({ baseUrl, fetcher, className } = {}) {
153
152
  if (match)
154
153
  setSelectedChannel(match);
155
154
  }
156
- }, items: channelOptions, selectedItem: selectedChannel, getKey: (c) => c.id, getLabel: (c) => c.name, getSecondary: (c) => formatChannelKind(c.kind), placeholder: "Pick a channel...", emptyText: "No channels configured yet.", triggerClassName: "w-full" })] }), filtersActive ? (_jsxs(Button, { variant: "ghost", size: "sm", onClick: clearFilters, children: [_jsx(X, { className: "mr-1.5 h-3.5 w-3.5" }), "Clear filters"] })) : null] }), _jsxs(Card, { children: [_jsxs(CardHeader, { className: "pb-3", children: [_jsx(CardTitle, { className: "text-sm", children: "Booking links" }), _jsx(CardDescription, { children: filtersActive
157
- ? `Showing ${rows.length} of the most recent matching pushes.`
158
- : "The most recent per-channel push attempts." })] }), _jsx(CardContent, { className: "p-0", children: linksQuery.isPending ? (_jsx("div", { className: "flex items-center justify-center p-12", children: _jsx(Loader2, { className: "h-5 w-5 animate-spin text-muted-foreground" }) })) : rows.length === 0 ? (_jsx(Empty, { className: "border-0", children: _jsxs(EmptyHeader, { children: [_jsx(EmptyTitle, { children: filtersActive ? "No matches" : "No links yet" }), _jsx(EmptyDescription, { children: filtersActive
159
- ? "Try clearing the filters or picking a different booking or channel."
160
- : "Channel-push booking links show up here as bookings confirm. The page refreshes automatically." })] }) })) : (_jsxs(Table, { children: [_jsx(TableHeader, { children: _jsxs(TableRow, { children: [_jsx(TableHead, { children: "Booking" }), _jsx(TableHead, { children: "Channel" }), _jsx(TableHead, { children: "Status" }), _jsx(TableHead, { className: "text-right", children: "Attempts" }), _jsx(TableHead, { children: "Last push" }), _jsx(TableHead, { children: "External ref" }), _jsx(TableHead, { className: "text-right", children: "Actions" })] }) }), _jsx(TableBody, { children: rows.map((row) => {
155
+ }, items: channelOptions, selectedItem: selectedChannel, getKey: (c) => c.id, getLabel: (c) => c.name, getSecondary: (c) => formatChannelKind(c.kind), placeholder: messages.filters.channelPlaceholder, emptyText: messages.filters.channelEmpty, triggerClassName: "w-full" })] }), filtersActive ? (_jsxs(Button, { variant: "ghost", size: "sm", onClick: clearFilters, children: [_jsx(X, { className: "mr-1.5 h-3.5 w-3.5" }), distributionMessages.common.clearFilters] })) : null] }), _jsxs(Card, { children: [_jsxs(CardHeader, { className: "pb-3", children: [_jsx(CardTitle, { className: "text-sm", children: messages.table.title }), _jsx(CardDescription, { children: filtersActive
156
+ ? formatTemplate(messages.table.filteredDescription, { count: rows.length })
157
+ : messages.table.defaultDescription })] }), _jsx(CardContent, { className: "p-0", children: linksQuery.isPending ? (_jsx("div", { className: "flex items-center justify-center p-12", children: _jsx(Loader2, { className: "h-5 w-5 animate-spin text-muted-foreground" }) })) : rows.length === 0 ? (_jsx(Empty, { className: "border-0", children: _jsxs(EmptyHeader, { children: [_jsx(EmptyTitle, { children: filtersActive ? messages.table.noMatchesTitle : messages.table.noLinksTitle }), _jsx(EmptyDescription, { children: filtersActive
158
+ ? messages.table.noMatchesDescription
159
+ : messages.table.noLinksDescription })] }) })) : (_jsxs(Table, { children: [_jsx(TableHeader, { children: _jsxs(TableRow, { children: [_jsx(TableHead, { children: messages.table.booking }), _jsx(TableHead, { children: messages.table.channel }), _jsx(TableHead, { children: messages.table.status }), _jsx(TableHead, { className: "text-right", children: messages.table.attempts }), _jsx(TableHead, { children: messages.table.lastPush }), _jsx(TableHead, { children: messages.table.externalRef }), _jsx(TableHead, { className: "text-right", children: messages.table.actions })] }) }), _jsx(TableBody, { children: rows.map((row) => {
161
160
  const isFailed = row.link.pushStatus === "failed";
162
- return (_jsxs(TableRow, { className: cn(isFailed && "bg-destructive/5 hover:bg-destructive/10"), children: [_jsxs(TableCell, { className: "font-mono text-xs", children: [_jsx("div", { children: row.link.bookingId }), row.link.bookingItemId ? (_jsxs("div", { className: "text-muted-foreground", children: ["item: ", row.link.bookingItemId] })) : null] }), _jsxs(TableCell, { children: [_jsx("div", { className: "font-medium", children: row.channelName }), _jsx("div", { className: "text-xs text-muted-foreground", children: formatChannelKind(row.channelKind) })] }), _jsxs(TableCell, { children: [_jsx(Badge, { variant: STATUS_VARIANTS[row.link.pushStatus] ?? "outline", children: STATUS_LABELS[row.link.pushStatus] ?? row.link.pushStatus }), row.link.lastError ? (_jsx("div", { className: "mt-1 max-w-xs truncate text-xs text-destructive", title: row.link.lastError, children: row.link.lastError })) : null] }), _jsx(TableCell, { className: "text-right tabular-nums", children: row.link.pushAttempts }), _jsx(TableCell, { className: "text-xs text-muted-foreground", children: row.link.lastPushAt ? formatRelative(row.link.lastPushAt) : "-" }), _jsx(TableCell, { className: "font-mono text-xs", children: row.link.externalBookingId ?? row.link.externalReference ?? "-" }), _jsx(TableCell, { className: "text-right", children: _jsxs("div", { className: "flex justify-end gap-1", children: [_jsx(Button, { variant: "ghost", size: "sm", onClick: () => setDrilldownBookingId(row.link.bookingId), children: "Deliveries" }), _jsxs(Button, { variant: "outline", size: "sm", disabled: retryMutation.isPending &&
161
+ return (_jsxs(TableRow, { className: cn(isFailed && "bg-destructive/5 hover:bg-destructive/10"), children: [_jsxs(TableCell, { className: "font-mono text-xs", children: [_jsx("div", { children: row.link.bookingId }), row.link.bookingItemId ? (_jsx("div", { className: "text-muted-foreground", children: formatTemplate(messages.table.itemPrefix, {
162
+ id: row.link.bookingItemId,
163
+ }) })) : null] }), _jsxs(TableCell, { children: [_jsx("div", { className: "font-medium", children: row.channelName }), _jsx("div", { className: "text-xs text-muted-foreground", children: formatChannelKind(row.channelKind) })] }), _jsxs(TableCell, { children: [_jsx(Badge, { variant: STATUS_VARIANTS[row.link.pushStatus] ?? "outline", children: messages.statusLabels[row.link.pushStatus] ??
164
+ row.link.pushStatus }), row.link.lastError ? (_jsx("div", { className: "mt-1 max-w-xs truncate text-xs text-destructive", title: row.link.lastError, children: row.link.lastError })) : null] }), _jsx(TableCell, { className: "text-right tabular-nums", children: row.link.pushAttempts }), _jsx(TableCell, { className: "text-xs text-muted-foreground", children: row.link.lastPushAt ? formatRelative(row.link.lastPushAt) : "-" }), _jsx(TableCell, { className: "font-mono text-xs", children: row.link.externalBookingId ?? row.link.externalReference ?? "-" }), _jsx(TableCell, { className: "text-right", children: _jsxs("div", { className: "flex justify-end gap-1", children: [_jsx(Button, { variant: "ghost", size: "sm", onClick: () => setDrilldownBookingId(row.link.bookingId), children: messages.table.deliveries }), _jsxs(Button, { variant: "outline", size: "sm", disabled: retryMutation.isPending &&
163
165
  retryMutation.variables === row.link.bookingId, onClick: () => retryMutation.mutate(row.link.bookingId), children: [retryMutation.isPending &&
164
- retryMutation.variables === row.link.bookingId ? (_jsx(Loader2, { className: "mr-1 h-3 w-3 animate-spin" })) : null, "Retry"] })] }) })] }, row.link.id));
165
- }) })] })) })] }), _jsx(DeliveriesDrawer, { bookingId: drilldownBookingId, client: client, onClose: () => setDrilldownBookingId(null) })] }));
166
+ retryMutation.variables === row.link.bookingId ? (_jsx(Loader2, { className: "mr-1 h-3 w-3 animate-spin" })) : null, messages.table.retry] })] }) })] }, row.link.id));
167
+ }) })] })) })] }), _jsx(DeliveriesDrawer, { bookingId: drilldownBookingId, client: client, onClose: () => setDrilldownBookingId(null), messages: messages })] }));
166
168
  }
167
- function ReconcileMenu({ onRun, isRunning, lastResult, }) {
168
- return (_jsxs(DropdownMenu, { children: [_jsx(DropdownMenuTrigger, { render: _jsxs(Button, { variant: "outline", size: "sm", disabled: isRunning, children: [isRunning ? (_jsx(Loader2, { className: "mr-1.5 h-3.5 w-3.5 animate-spin" })) : (_jsx(RotateCw, { className: "mr-1.5 h-3.5 w-3.5" })), "Reconcile", _jsx(ChevronDown, { className: "ml-1.5 h-3.5 w-3.5" })] }) }), _jsxs(DropdownMenuContent, { align: "end", className: "w-56", children: [_jsxs(DropdownMenuGroup, { children: [_jsx(DropdownMenuLabel, { children: "Run reconciler" }), _jsxs(DropdownMenuItem, { onClick: () => onRun("bookings"), children: ["Bookings", _jsx("span", { className: "ml-auto text-xs text-muted-foreground", children: "priority" })] }), _jsx(DropdownMenuItem, { onClick: () => onRun("availability"), children: "Availability" }), _jsx(DropdownMenuItem, { onClick: () => onRun("content"), children: "Content" })] }), lastResult ? (_jsxs(_Fragment, { children: [_jsx(DropdownMenuSeparator, {}), _jsxs("div", { className: "px-2 py-1.5 text-xs text-muted-foreground", children: ["Last run: scanned ", lastResult.scanned, ", triggered ", lastResult.triggered, "."] })] })) : null] })] }));
169
+ function ReconcileMenu({ onRun, isRunning, lastResult, messages, }) {
170
+ return (_jsxs(DropdownMenu, { children: [_jsx(DropdownMenuTrigger, { render: _jsxs(Button, { variant: "outline", size: "sm", disabled: isRunning, children: [isRunning ? (_jsx(Loader2, { className: "mr-1.5 h-3.5 w-3.5 animate-spin" })) : (_jsx(RotateCw, { className: "mr-1.5 h-3.5 w-3.5" })), messages.reconcile.trigger, _jsx(ChevronDown, { className: "ml-1.5 h-3.5 w-3.5" })] }) }), _jsxs(DropdownMenuContent, { align: "end", className: "w-56", children: [_jsxs(DropdownMenuGroup, { children: [_jsx(DropdownMenuLabel, { children: messages.reconcile.menuLabel }), _jsxs(DropdownMenuItem, { onClick: () => onRun("bookings"), children: [messages.reconcile.bookings, _jsx("span", { className: "ml-auto text-xs text-muted-foreground", children: messages.reconcile.priority })] }), _jsx(DropdownMenuItem, { onClick: () => onRun("availability"), children: messages.reconcile.availability }), _jsx(DropdownMenuItem, { onClick: () => onRun("content"), children: messages.reconcile.content })] }), lastResult ? (_jsxs(_Fragment, { children: [_jsx(DropdownMenuSeparator, {}), _jsx("div", { className: "px-2 py-1.5 text-xs text-muted-foreground", children: formatTemplate(messages.reconcile.lastRun, {
171
+ scanned: lastResult.scanned,
172
+ triggered: lastResult.triggered,
173
+ }) })] })) : null] })] }));
169
174
  }
170
- function AutoRefreshIndicator({ isFetching, dataUpdatedAt, intervalMs, }) {
175
+ function AutoRefreshIndicator({ isFetching, dataUpdatedAt, intervalMs, messages, }) {
171
176
  // Tick every second so the "Updated Xs ago" stays current.
172
177
  const [, setNow] = useState(Date.now());
173
178
  useEffect(() => {
@@ -175,11 +180,15 @@ function AutoRefreshIndicator({ isFetching, dataUpdatedAt, intervalMs, }) {
175
180
  return () => window.clearInterval(id);
176
181
  }, []);
177
182
  if (!dataUpdatedAt) {
178
- return (_jsxs("span", { className: "hidden items-center gap-1.5 text-xs text-muted-foreground md:flex", children: [_jsx(Loader2, { className: "h-3 w-3 animate-spin" }), "Loading..."] }));
183
+ return (_jsxs("span", { className: "hidden items-center gap-1.5 text-xs text-muted-foreground md:flex", children: [_jsx(Loader2, { className: "h-3 w-3 animate-spin" }), messages.refresh.loading] }));
179
184
  }
180
185
  const seconds = Math.max(0, Math.round((Date.now() - dataUpdatedAt) / 1000));
181
186
  const intervalSec = Math.round(intervalMs / 1000);
182
- return (_jsxs("span", { className: "hidden items-center gap-1.5 text-xs text-muted-foreground md:flex", title: `Auto-refreshes every ${intervalSec}s`, children: [isFetching ? (_jsx(Loader2, { className: "h-3 w-3 animate-spin" })) : (_jsxs("span", { className: "relative flex h-2 w-2", children: [_jsx("span", { className: "absolute inline-flex h-full w-full animate-ping rounded-full bg-emerald-400 opacity-60" }), _jsx("span", { className: "relative inline-flex h-2 w-2 rounded-full bg-emerald-500" })] })), _jsx("span", { className: "tabular-nums", children: isFetching ? "Refreshing..." : `Updated ${formatShortDuration(seconds)} ago` })] }));
187
+ return (_jsxs("span", { className: "hidden items-center gap-1.5 text-xs text-muted-foreground md:flex", title: formatTemplate(messages.refresh.title, { seconds: intervalSec }), children: [isFetching ? (_jsx(Loader2, { className: "h-3 w-3 animate-spin" })) : (_jsxs("span", { className: "relative flex h-2 w-2", children: [_jsx("span", { className: "absolute inline-flex h-full w-full animate-ping rounded-full bg-emerald-400 opacity-60" }), _jsx("span", { className: "relative inline-flex h-2 w-2 rounded-full bg-emerald-500" })] })), _jsx("span", { className: "tabular-nums", children: isFetching
188
+ ? messages.refresh.refreshing
189
+ : formatTemplate(messages.refresh.updatedAgo, {
190
+ duration: formatShortDuration(seconds),
191
+ }) })] }));
183
192
  }
184
193
  function useDebouncedValue(value, delayMs) {
185
194
  const [debounced, setDebounced] = useState(value);
@@ -195,7 +204,7 @@ function useDebouncedValue(value, delayMs) {
195
204
  }, [value, delayMs]);
196
205
  return debounced;
197
206
  }
198
- function DeliveriesDrawer({ bookingId, client, onClose, }) {
207
+ function DeliveriesDrawer({ bookingId, client, onClose, messages, }) {
199
208
  const isOpen = bookingId !== null;
200
209
  const query = useQuery({
201
210
  enabled: isOpen,
@@ -206,7 +215,7 @@ function DeliveriesDrawer({ bookingId, client, onClose, }) {
206
215
  },
207
216
  });
208
217
  const rows = query.data?.data ?? [];
209
- return (_jsx(Sheet, { open: isOpen, onOpenChange: (open) => (open ? null : onClose()), children: _jsxs(SheetContent, { side: "right", size: "xl", children: [_jsx(SheetHeader, { children: _jsxs(SheetTitle, { children: ["Delivery log - ", bookingId ?? ""] }) }), _jsx(SheetBody, { className: "flex flex-col gap-3", children: query.isPending ? (_jsx("div", { className: "flex items-center justify-center p-12", children: _jsx(Loader2, { className: "h-5 w-5 animate-spin text-muted-foreground" }) })) : rows.length === 0 ? (_jsx(Empty, { children: _jsxs(EmptyHeader, { children: [_jsx(EmptyTitle, { children: "No deliveries yet" }), _jsx(EmptyDescription, { children: "Channel-push attempts log here once they dispatch." })] }) })) : (rows.map((row) => (_jsxs(Card, { className: "text-xs", children: [_jsxs(CardHeader, { className: "pb-2", children: [_jsxs("div", { className: "flex items-center justify-between gap-2", children: [_jsxs("div", { className: "flex items-center gap-2", children: [_jsx(Badge, { variant: row.status === "succeeded" ? "default" : "destructive", children: row.status }), _jsx("span", { className: "font-mono", children: row.sourceEvent }), _jsxs("span", { className: "text-muted-foreground", children: ["attempt #", row.attemptNumber] })] }), _jsx("span", { className: "text-muted-foreground", children: row.durationMs != null ? `${row.durationMs}ms` : "" })] }), _jsxs(CardDescription, { className: "font-mono", children: [row.requestMethod, " ", row.targetUrl] })] }), _jsxs(CardContent, { className: "space-y-2", children: [_jsxs("div", { className: "flex flex-wrap gap-2", children: [row.responseStatus != null ? (_jsxs(Badge, { variant: "outline", children: ["HTTP ", row.responseStatus] })) : null, row.errorClass ? _jsx(Badge, { variant: "destructive", children: row.errorClass }) : null, _jsx("span", { className: "text-muted-foreground", children: formatRelative(row.createdAt) })] }), row.errorMessage ? (_jsx("pre", { className: "overflow-x-auto whitespace-pre-wrap rounded bg-destructive/10 p-2 text-destructive", children: row.errorMessage })) : null, row.responseBodyExcerpt ? (_jsx("pre", { className: "overflow-x-auto rounded bg-muted p-2", children: row.responseBodyExcerpt })) : null] })] }, row.id)))) })] }) }));
218
+ return (_jsx(Sheet, { open: isOpen, onOpenChange: (open) => (open ? null : onClose()), children: _jsxs(SheetContent, { side: "right", size: "xl", children: [_jsx(SheetHeader, { children: _jsx(SheetTitle, { children: formatTemplate(messages.drawer.title, { bookingId: bookingId ?? "" }) }) }), _jsx(SheetBody, { className: "flex flex-col gap-3", children: query.isPending ? (_jsx("div", { className: "flex items-center justify-center p-12", children: _jsx(Loader2, { className: "h-5 w-5 animate-spin text-muted-foreground" }) })) : rows.length === 0 ? (_jsx(Empty, { children: _jsxs(EmptyHeader, { children: [_jsx(EmptyTitle, { children: messages.drawer.emptyTitle }), _jsx(EmptyDescription, { children: messages.drawer.emptyDescription })] }) })) : (rows.map((row) => (_jsxs(Card, { className: "text-xs", children: [_jsxs(CardHeader, { className: "pb-2", children: [_jsxs("div", { className: "flex items-center justify-between gap-2", children: [_jsxs("div", { className: "flex items-center gap-2", children: [_jsx(Badge, { variant: row.status === "succeeded" ? "default" : "destructive", children: row.status }), _jsx("span", { className: "font-mono", children: row.sourceEvent }), _jsx("span", { className: "text-muted-foreground", children: formatTemplate(messages.drawer.attempt, { number: row.attemptNumber }) })] }), _jsx("span", { className: "text-muted-foreground", children: row.durationMs != null ? `${row.durationMs}ms` : "" })] }), _jsxs(CardDescription, { className: "font-mono", children: [row.requestMethod, " ", row.targetUrl] })] }), _jsxs(CardContent, { className: "space-y-2", children: [_jsxs("div", { className: "flex flex-wrap gap-2", children: [row.responseStatus != null ? (_jsx(Badge, { variant: "outline", children: formatTemplate(messages.drawer.httpStatus, { status: row.responseStatus }) })) : null, row.errorClass ? _jsx(Badge, { variant: "destructive", children: row.errorClass }) : null, _jsx("span", { className: "text-muted-foreground", children: formatRelative(row.createdAt) })] }), row.errorMessage ? (_jsx("pre", { className: "overflow-x-auto whitespace-pre-wrap rounded bg-destructive/10 p-2 text-destructive", children: row.errorMessage })) : null, row.responseBodyExcerpt ? (_jsx("pre", { className: "overflow-x-auto rounded bg-muted p-2", children: row.responseBodyExcerpt })) : null] })] }, row.id)))) })] }) }));
210
219
  }
211
220
  function joinUrl(baseUrl, path) {
212
221
  const trimmedBase = baseUrl.endsWith("/") ? baseUrl.slice(0, -1) : baseUrl;
@@ -240,3 +249,9 @@ function formatRelative(iso) {
240
249
  const days = Math.round(hours / 24);
241
250
  return `${days}d ago`;
242
251
  }
252
+ function formatTemplate(template, values) {
253
+ return template.replace(/\{(\w+)\}/g, (_, key) => {
254
+ const value = values[key];
255
+ return value === undefined ? "" : String(value);
256
+ });
257
+ }
@@ -36,7 +36,7 @@ export function CommissionRuleDetailPage({ id, className, onBack = noop, onDelet
36
36
  });
37
37
  const remove = useMutation({
38
38
  mutationFn: () => fetchWithValidation(`/v1/distribution/commission-rules/${id}`, successEnvelope, client, {
39
- method: "DELETE",
39
+ method: "DELETE", // i18n-literal-ok HTTP method
40
40
  }),
41
41
  onSuccess: () => {
42
42
  void queryClient.invalidateQueries({ queryKey: distributionQueryKeys.commissionRules() });
@@ -35,7 +35,7 @@ export function ContractDetailPage({ id, className, onBack = noop, onDeleted = n
35
35
  const productsQuery = useQuery(getProductsQueryOptions(client, { limit: 50, offset: 0 }));
36
36
  const remove = useMutation({
37
37
  mutationFn: () => fetchWithValidation(`/v1/distribution/contracts/${id}`, successEnvelope, client, {
38
- method: "DELETE",
38
+ method: "DELETE", // i18n-literal-ok HTTP method
39
39
  }),
40
40
  onSuccess: () => {
41
41
  void queryClient.invalidateQueries({ queryKey: distributionQueryKeys.contracts() });
@@ -1 +1 @@
1
- {"version":3,"file":"distribution-shared.d.ts","sourceRoot":"","sources":["../../src/components/distribution-shared.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"distribution-shared.d.ts","sourceRoot":"","sources":["../../src/components/distribution-shared.tsx"],"names":[],"mappings":"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"}
@@ -3,9 +3,13 @@ import { cancellationOwnerOptions, channelKindOptions, channelStatusOptions, com
3
3
  import { Badge, Button } from "@voyantjs/ui/components";
4
4
  import { DataTableColumnHeader } from "@voyantjs/ui/components/data-table-column-header";
5
5
  import { ExternalLink } from "lucide-react";
6
- import { getDistributionUiI18n } from "../i18n/index.js";
6
+ import { getDistributionUiI18n, useDistributionUiMessagesOrDefault, } from "../i18n/index.js";
7
7
  export { cancellationOwnerOptions, channelKindOptions, channelStatusOptions, commissionScopeOptions, commissionTypeOptions, contractStatusOptions, formatSelectionLabel, labelById, NONE_VALUE, nullableNumber, nullableString, parseJsonRecord, paymentOwnerOptions, reactFormatDateTime as formatDateTime, toIsoDateTime, toLocalDateTimeInput, webhookStatusOptions, };
8
8
  const defaultDistributionUiI18n = getDistributionUiI18n({ locale: "en" });
9
+ function DistributionOpenButton({ label, onClick, }) {
10
+ useDistributionUiMessagesOrDefault();
11
+ return (_jsxs(Button, { variant: "ghost", size: "sm", "aria-label": label, title: label, onClick: onClick, children: [_jsx(ExternalLink, { className: "mr-2 h-4 w-4" }), label] }));
12
+ }
9
13
  export function formatDistributionDateTime(value, i18n = defaultDistributionUiI18n) {
10
14
  if (!value) {
11
15
  return i18n.messages.common.dateTimeFallback;
@@ -62,10 +66,10 @@ export const channelColumns = (onView, i18n = defaultDistributionUiI18n) => [
62
66
  {
63
67
  id: "view",
64
68
  header: i18n.messages.common.view,
65
- cell: ({ row }) => (_jsxs(Button, { variant: "ghost", size: "sm", "aria-label": i18n.messages.common.open, title: i18n.messages.common.open, onClick: (event) => {
69
+ cell: ({ row }) => (_jsx(DistributionOpenButton, { label: i18n.messages.common.open, onClick: (event) => {
66
70
  event.stopPropagation();
67
71
  onView(row.original.id);
68
- }, children: [_jsx(ExternalLink, { className: "mr-2 h-4 w-4" }), i18n.messages.common.open] })),
72
+ } })),
69
73
  },
70
74
  ];
71
75
  export const contractColumns = (channels, suppliers, onView, i18n = defaultDistributionUiI18n) => [
@@ -30,7 +30,7 @@ export function MappingDetailPage({ id, className, onBack = noop, onDeleted = no
30
30
  });
31
31
  const remove = useMutation({
32
32
  mutationFn: () => fetchWithValidation(`/v1/distribution/product-mappings/${id}`, successEnvelope, client, {
33
- method: "DELETE",
33
+ method: "DELETE", // i18n-literal-ok HTTP method
34
34
  }),
35
35
  onSuccess: () => {
36
36
  void queryClient.invalidateQueries({ queryKey: distributionQueryKeys.mappings() });
@@ -25,7 +25,7 @@ export function WebhookEventDetailPage({ id, className, onBack = noop, onDeleted
25
25
  });
26
26
  const remove = useMutation({
27
27
  mutationFn: () => fetchWithValidation(`/v1/distribution/webhook-events/${id}`, successEnvelope, client, {
28
- method: "DELETE",
28
+ method: "DELETE", // i18n-literal-ok HTTP method
29
29
  }),
30
30
  onSuccess: () => {
31
31
  void queryClient.invalidateQueries({ queryKey: distributionQueryKeys.webhookEvents() });
package/dist/i18n/en.d.ts CHANGED
@@ -159,6 +159,86 @@ export declare const distributionUiEn: {
159
159
  allChannelsPlaceholder: string;
160
160
  };
161
161
  };
162
+ channelSync: {
163
+ title: string;
164
+ description: string;
165
+ throttledTitle: string;
166
+ throttledBody: string;
167
+ statusLabels: {
168
+ pending: string;
169
+ ok: string;
170
+ failed: string;
171
+ compensated: string;
172
+ };
173
+ statusTiles: {
174
+ pending: {
175
+ label: string;
176
+ description: string;
177
+ };
178
+ ok: {
179
+ label: string;
180
+ description: string;
181
+ };
182
+ failed: {
183
+ label: string;
184
+ description: string;
185
+ };
186
+ compensated: {
187
+ label: string;
188
+ description: string;
189
+ };
190
+ };
191
+ filters: {
192
+ booking: string;
193
+ bookingPlaceholder: string;
194
+ bookingSearching: string;
195
+ bookingEmpty: string;
196
+ channel: string;
197
+ channelPlaceholder: string;
198
+ channelEmpty: string;
199
+ };
200
+ table: {
201
+ title: string;
202
+ filteredDescription: string;
203
+ defaultDescription: string;
204
+ noMatchesTitle: string;
205
+ noLinksTitle: string;
206
+ noMatchesDescription: string;
207
+ noLinksDescription: string;
208
+ booking: string;
209
+ channel: string;
210
+ status: string;
211
+ attempts: string;
212
+ lastPush: string;
213
+ externalRef: string;
214
+ actions: string;
215
+ itemPrefix: string;
216
+ deliveries: string;
217
+ retry: string;
218
+ };
219
+ reconcile: {
220
+ trigger: string;
221
+ menuLabel: string;
222
+ bookings: string;
223
+ priority: string;
224
+ availability: string;
225
+ content: string;
226
+ lastRun: string;
227
+ };
228
+ refresh: {
229
+ loading: string;
230
+ title: string;
231
+ refreshing: string;
232
+ updatedAgo: string;
233
+ };
234
+ drawer: {
235
+ title: string;
236
+ emptyTitle: string;
237
+ emptyDescription: string;
238
+ attempt: string;
239
+ httpStatus: string;
240
+ };
241
+ };
162
242
  tables: {
163
243
  channel: {
164
244
  channel: string;
@@ -1 +1 @@
1
- {"version":3,"file":"en.d.ts","sourceRoot":"","sources":["../../src/i18n/en.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0fK,CAAA"}
1
+ {"version":3,"file":"en.d.ts","sourceRoot":"","sources":["../../src/i18n/en.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAikBK,CAAA"}
package/dist/i18n/en.js CHANGED
@@ -141,6 +141,74 @@ export const distributionUiEn = {
141
141
  allChannelsPlaceholder: "All channels",
142
142
  },
143
143
  },
144
+ channelSync: {
145
+ title: "Channel sync",
146
+ description: "Outbound delivery to syndication channels. Bookings push first; availability and content ride along in the background.",
147
+ throttledTitle: "Throttled.",
148
+ throttledBody: "{count} rate-limited deliveries in the last hour across {channels} {channelLabel}. Lower the per-channel RPS in settings if this persists.",
149
+ statusLabels: {
150
+ pending: "Pending",
151
+ ok: "OK",
152
+ failed: "Failed",
153
+ compensated: "Compensated",
154
+ },
155
+ statusTiles: {
156
+ pending: { label: "Pending", description: "In flight" },
157
+ ok: { label: "Delivered", description: "Channel acknowledged" },
158
+ failed: { label: "Failed", description: "Needs attention" },
159
+ compensated: { label: "Compensated", description: "Rolled back" },
160
+ },
161
+ filters: {
162
+ booking: "Booking",
163
+ bookingPlaceholder: "Search by booking number...",
164
+ bookingSearching: "Searching...",
165
+ bookingEmpty: "No bookings match that search.",
166
+ channel: "Channel",
167
+ channelPlaceholder: "Pick a channel...",
168
+ channelEmpty: "No channels configured yet.",
169
+ },
170
+ table: {
171
+ title: "Booking links",
172
+ filteredDescription: "Showing {count} of the most recent matching pushes.",
173
+ defaultDescription: "The most recent per-channel push attempts.",
174
+ noMatchesTitle: "No matches",
175
+ noLinksTitle: "No links yet",
176
+ noMatchesDescription: "Try clearing the filters or picking a different booking or channel.",
177
+ noLinksDescription: "Channel-push booking links show up here as bookings confirm. The page refreshes automatically.",
178
+ booking: "Booking",
179
+ channel: "Channel",
180
+ status: "Status",
181
+ attempts: "Attempts",
182
+ lastPush: "Last push",
183
+ externalRef: "External ref",
184
+ actions: "Actions",
185
+ itemPrefix: "item: {id}",
186
+ deliveries: "Deliveries",
187
+ retry: "Retry",
188
+ },
189
+ reconcile: {
190
+ trigger: "Reconcile",
191
+ menuLabel: "Run reconciler",
192
+ bookings: "Bookings",
193
+ priority: "priority",
194
+ availability: "Availability",
195
+ content: "Content",
196
+ lastRun: "Last run: scanned {scanned}, triggered {triggered}.",
197
+ },
198
+ refresh: {
199
+ loading: "Loading...",
200
+ title: "Auto-refreshes every {seconds}s",
201
+ refreshing: "Refreshing...",
202
+ updatedAgo: "Updated {duration} ago",
203
+ },
204
+ drawer: {
205
+ title: "Delivery log - {bookingId}",
206
+ emptyTitle: "No deliveries yet",
207
+ emptyDescription: "Channel-push attempts log here once they dispatch.",
208
+ attempt: "attempt #{number}",
209
+ httpStatus: "HTTP {status}",
210
+ },
211
+ },
144
212
  tables: {
145
213
  channel: {
146
214
  channel: "Channel",
@@ -108,6 +108,67 @@ export type DistributionUiMessages = {
108
108
  allChannelsPlaceholder: string;
109
109
  };
110
110
  };
111
+ channelSync: {
112
+ title: string;
113
+ description: string;
114
+ throttledTitle: string;
115
+ throttledBody: string;
116
+ statusLabels: Record<"pending" | "ok" | "failed" | "compensated", string>;
117
+ statusTiles: Record<"pending" | "ok" | "failed" | "compensated", {
118
+ label: string;
119
+ description: string;
120
+ }>;
121
+ filters: {
122
+ booking: string;
123
+ bookingPlaceholder: string;
124
+ bookingSearching: string;
125
+ bookingEmpty: string;
126
+ channel: string;
127
+ channelPlaceholder: string;
128
+ channelEmpty: string;
129
+ };
130
+ table: {
131
+ title: string;
132
+ filteredDescription: string;
133
+ defaultDescription: string;
134
+ noMatchesTitle: string;
135
+ noLinksTitle: string;
136
+ noMatchesDescription: string;
137
+ noLinksDescription: string;
138
+ booking: string;
139
+ channel: string;
140
+ status: string;
141
+ attempts: string;
142
+ lastPush: string;
143
+ externalRef: string;
144
+ actions: string;
145
+ itemPrefix: string;
146
+ deliveries: string;
147
+ retry: string;
148
+ };
149
+ reconcile: {
150
+ trigger: string;
151
+ menuLabel: string;
152
+ bookings: string;
153
+ priority: string;
154
+ availability: string;
155
+ content: string;
156
+ lastRun: string;
157
+ };
158
+ refresh: {
159
+ loading: string;
160
+ title: string;
161
+ refreshing: string;
162
+ updatedAgo: string;
163
+ };
164
+ drawer: {
165
+ title: string;
166
+ emptyTitle: string;
167
+ emptyDescription: string;
168
+ attempt: string;
169
+ httpStatus: string;
170
+ };
171
+ };
111
172
  tables: {
112
173
  channel: {
113
174
  channel: string;
@@ -1 +1 @@
1
- {"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../src/i18n/messages.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../src/i18n/messages.ts"],"names":[],"mappings":"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"}
@@ -163,6 +163,86 @@ export declare const distributionUiMessageDefinitions: {
163
163
  allChannelsPlaceholder: string;
164
164
  };
165
165
  };
166
+ channelSync: {
167
+ title: string;
168
+ description: string;
169
+ throttledTitle: string;
170
+ throttledBody: string;
171
+ statusLabels: {
172
+ pending: string;
173
+ ok: string;
174
+ failed: string;
175
+ compensated: string;
176
+ };
177
+ statusTiles: {
178
+ pending: {
179
+ label: string;
180
+ description: string;
181
+ };
182
+ ok: {
183
+ label: string;
184
+ description: string;
185
+ };
186
+ failed: {
187
+ label: string;
188
+ description: string;
189
+ };
190
+ compensated: {
191
+ label: string;
192
+ description: string;
193
+ };
194
+ };
195
+ filters: {
196
+ booking: string;
197
+ bookingPlaceholder: string;
198
+ bookingSearching: string;
199
+ bookingEmpty: string;
200
+ channel: string;
201
+ channelPlaceholder: string;
202
+ channelEmpty: string;
203
+ };
204
+ table: {
205
+ title: string;
206
+ filteredDescription: string;
207
+ defaultDescription: string;
208
+ noMatchesTitle: string;
209
+ noLinksTitle: string;
210
+ noMatchesDescription: string;
211
+ noLinksDescription: string;
212
+ booking: string;
213
+ channel: string;
214
+ status: string;
215
+ attempts: string;
216
+ lastPush: string;
217
+ externalRef: string;
218
+ actions: string;
219
+ itemPrefix: string;
220
+ deliveries: string;
221
+ retry: string;
222
+ };
223
+ reconcile: {
224
+ trigger: string;
225
+ menuLabel: string;
226
+ bookings: string;
227
+ priority: string;
228
+ availability: string;
229
+ content: string;
230
+ lastRun: string;
231
+ };
232
+ refresh: {
233
+ loading: string;
234
+ title: string;
235
+ refreshing: string;
236
+ updatedAgo: string;
237
+ };
238
+ drawer: {
239
+ title: string;
240
+ emptyTitle: string;
241
+ emptyDescription: string;
242
+ attempt: string;
243
+ httpStatus: string;
244
+ };
245
+ };
166
246
  tables: {
167
247
  channel: {
168
248
  channel: string;
@@ -674,6 +754,86 @@ export declare const distributionUiMessageDefinitions: {
674
754
  allChannelsPlaceholder: string;
675
755
  };
676
756
  };
757
+ channelSync: {
758
+ title: string;
759
+ description: string;
760
+ throttledTitle: string;
761
+ throttledBody: string;
762
+ statusLabels: {
763
+ pending: string;
764
+ ok: string;
765
+ failed: string;
766
+ compensated: string;
767
+ };
768
+ statusTiles: {
769
+ pending: {
770
+ label: string;
771
+ description: string;
772
+ };
773
+ ok: {
774
+ label: string;
775
+ description: string;
776
+ };
777
+ failed: {
778
+ label: string;
779
+ description: string;
780
+ };
781
+ compensated: {
782
+ label: string;
783
+ description: string;
784
+ };
785
+ };
786
+ filters: {
787
+ booking: string;
788
+ bookingPlaceholder: string;
789
+ bookingSearching: string;
790
+ bookingEmpty: string;
791
+ channel: string;
792
+ channelPlaceholder: string;
793
+ channelEmpty: string;
794
+ };
795
+ table: {
796
+ title: string;
797
+ filteredDescription: string;
798
+ defaultDescription: string;
799
+ noMatchesTitle: string;
800
+ noLinksTitle: string;
801
+ noMatchesDescription: string;
802
+ noLinksDescription: string;
803
+ booking: string;
804
+ channel: string;
805
+ status: string;
806
+ attempts: string;
807
+ lastPush: string;
808
+ externalRef: string;
809
+ actions: string;
810
+ itemPrefix: string;
811
+ deliveries: string;
812
+ retry: string;
813
+ };
814
+ reconcile: {
815
+ trigger: string;
816
+ menuLabel: string;
817
+ bookings: string;
818
+ priority: string;
819
+ availability: string;
820
+ content: string;
821
+ lastRun: string;
822
+ };
823
+ refresh: {
824
+ loading: string;
825
+ title: string;
826
+ refreshing: string;
827
+ updatedAgo: string;
828
+ };
829
+ drawer: {
830
+ title: string;
831
+ emptyTitle: string;
832
+ emptyDescription: string;
833
+ attempt: string;
834
+ httpStatus: string;
835
+ };
836
+ };
677
837
  tables: {
678
838
  channel: {
679
839
  channel: string;
@@ -1 +1 @@
1
- {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../src/i18n/provider.tsx"],"names":[],"mappings":"AAEA,OAAO,EAIL,KAAK,sBAAsB,EAC3B,KAAK,gBAAgB,EAEtB,MAAM,gBAAgB,CAAA;AACvB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAGtC,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAA;AAK3D,eAAO,MAAM,gCAAgC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAGe,CAAA;AAE5D,MAAM,MAAM,8BAA8B,GAAG,sBAAsB,CAAC,sBAAsB,CAAC,CAAA;AAC3F,MAAM,MAAM,kBAAkB,GAAG,gBAAgB,CAAC,sBAAsB,CAAC,CAAA;AAUzE,wBAAgB,6BAA6B,CAAC,EAC5C,MAAM,EACN,SAAS,GACV,EAAE;IACD,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAA;IACjC,SAAS,CAAC,EAAE,8BAA8B,GAAG,IAAI,CAAA;CAClD,0BAOA;AAED,wBAAgB,qBAAqB,CAAC,EACpC,MAAM,EACN,SAAS,GACV,EAAE;IACD,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAA;IAClC,SAAS,CAAC,EAAE,8BAA8B,GAAG,IAAI,CAAA;CAClD,GAAG,kBAAkB,CASrB;AAED,wBAAgB,8BAA8B,CAAC,EAC7C,QAAQ,EACR,MAAM,EACN,SAAS,GACV,EAAE;IACD,QAAQ,EAAE,SAAS,CAAA;IACnB,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAA;IACjC,SAAS,CAAC,EAAE,8BAA8B,GAAG,IAAI,CAAA;CAClD,2CAWA;AAED,eAAO,MAAM,qBAAqB,gDAAgC,CAAA;AAClE,eAAO,MAAM,yBAAyB,8BAAoC,CAAA;AAE1E,wBAAgB,8BAA8B,uBAE7C;AAED,wBAAgB,kCAAkC,2BAEjD"}
1
+ {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../src/i18n/provider.tsx"],"names":[],"mappings":"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"}
package/dist/i18n/ro.d.ts CHANGED
@@ -159,6 +159,86 @@ export declare const distributionUiRo: {
159
159
  allChannelsPlaceholder: string;
160
160
  };
161
161
  };
162
+ channelSync: {
163
+ title: string;
164
+ description: string;
165
+ throttledTitle: string;
166
+ throttledBody: string;
167
+ statusLabels: {
168
+ pending: string;
169
+ ok: string;
170
+ failed: string;
171
+ compensated: string;
172
+ };
173
+ statusTiles: {
174
+ pending: {
175
+ label: string;
176
+ description: string;
177
+ };
178
+ ok: {
179
+ label: string;
180
+ description: string;
181
+ };
182
+ failed: {
183
+ label: string;
184
+ description: string;
185
+ };
186
+ compensated: {
187
+ label: string;
188
+ description: string;
189
+ };
190
+ };
191
+ filters: {
192
+ booking: string;
193
+ bookingPlaceholder: string;
194
+ bookingSearching: string;
195
+ bookingEmpty: string;
196
+ channel: string;
197
+ channelPlaceholder: string;
198
+ channelEmpty: string;
199
+ };
200
+ table: {
201
+ title: string;
202
+ filteredDescription: string;
203
+ defaultDescription: string;
204
+ noMatchesTitle: string;
205
+ noLinksTitle: string;
206
+ noMatchesDescription: string;
207
+ noLinksDescription: string;
208
+ booking: string;
209
+ channel: string;
210
+ status: string;
211
+ attempts: string;
212
+ lastPush: string;
213
+ externalRef: string;
214
+ actions: string;
215
+ itemPrefix: string;
216
+ deliveries: string;
217
+ retry: string;
218
+ };
219
+ reconcile: {
220
+ trigger: string;
221
+ menuLabel: string;
222
+ bookings: string;
223
+ priority: string;
224
+ availability: string;
225
+ content: string;
226
+ lastRun: string;
227
+ };
228
+ refresh: {
229
+ loading: string;
230
+ title: string;
231
+ refreshing: string;
232
+ updatedAgo: string;
233
+ };
234
+ drawer: {
235
+ title: string;
236
+ emptyTitle: string;
237
+ emptyDescription: string;
238
+ attempt: string;
239
+ httpStatus: string;
240
+ };
241
+ };
162
242
  tables: {
163
243
  channel: {
164
244
  channel: string;
@@ -1 +1 @@
1
- {"version":3,"file":"ro.d.ts","sourceRoot":"","sources":["../../src/i18n/ro.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkgBK,CAAA"}
1
+ {"version":3,"file":"ro.d.ts","sourceRoot":"","sources":["../../src/i18n/ro.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAykBK,CAAA"}
package/dist/i18n/ro.js CHANGED
@@ -141,6 +141,74 @@ export const distributionUiRo = {
141
141
  allChannelsPlaceholder: "Toate canalele",
142
142
  },
143
143
  },
144
+ channelSync: {
145
+ title: "Sincronizare canale",
146
+ description: "Livrare outbound catre canalele de distributie. Rezervarile se trimit primele; disponibilitatea si continutul ruleaza in fundal.",
147
+ throttledTitle: "Limitat.",
148
+ throttledBody: "{count} livrari limitate in ultima ora pe {channels} {channelLabel}. Redu RPS per canal in setari daca persista.",
149
+ statusLabels: {
150
+ pending: "In asteptare",
151
+ ok: "OK",
152
+ failed: "Esuat",
153
+ compensated: "Compensat",
154
+ },
155
+ statusTiles: {
156
+ pending: { label: "In asteptare", description: "In curs" },
157
+ ok: { label: "Livrat", description: "Canalul a confirmat" },
158
+ failed: { label: "Esuat", description: "Necesita atentie" },
159
+ compensated: { label: "Compensat", description: "Revenit" },
160
+ },
161
+ filters: {
162
+ booking: "Rezervare",
163
+ bookingPlaceholder: "Cauta dupa numarul rezervarii...",
164
+ bookingSearching: "Se cauta...",
165
+ bookingEmpty: "Nicio rezervare nu corespunde cautarii.",
166
+ channel: "Canal",
167
+ channelPlaceholder: "Alege un canal...",
168
+ channelEmpty: "Nu exista canale configurate.",
169
+ },
170
+ table: {
171
+ title: "Legaturi rezervari",
172
+ filteredDescription: "Se afiseaza {count} dintre cele mai recente trimiteri potrivite.",
173
+ defaultDescription: "Cele mai recente incercari de trimitere per canal.",
174
+ noMatchesTitle: "Nicio potrivire",
175
+ noLinksTitle: "Nu exista legaturi",
176
+ noMatchesDescription: "Sterge filtrele sau alege alta rezervare ori alt canal.",
177
+ noLinksDescription: "Legaturile channel-push apar aici dupa confirmarea rezervarilor. Pagina se actualizeaza automat.",
178
+ booking: "Rezervare",
179
+ channel: "Canal",
180
+ status: "Status",
181
+ attempts: "Incercari",
182
+ lastPush: "Ultima trimitere",
183
+ externalRef: "Ref externa",
184
+ actions: "Actiuni",
185
+ itemPrefix: "element: {id}",
186
+ deliveries: "Livrari",
187
+ retry: "Reincearca",
188
+ },
189
+ reconcile: {
190
+ trigger: "Reconciliaza",
191
+ menuLabel: "Ruleaza reconciliatorul",
192
+ bookings: "Rezervari",
193
+ priority: "prioritar",
194
+ availability: "Disponibilitate",
195
+ content: "Continut",
196
+ lastRun: "Ultima rulare: scanate {scanned}, declansate {triggered}.",
197
+ },
198
+ refresh: {
199
+ loading: "Se incarca...",
200
+ title: "Se actualizeaza automat la fiecare {seconds}s",
201
+ refreshing: "Se actualizeaza...",
202
+ updatedAgo: "Actualizat acum {duration}",
203
+ },
204
+ drawer: {
205
+ title: "Jurnal livrari - {bookingId}",
206
+ emptyTitle: "Nu exista livrari",
207
+ emptyDescription: "Incercarile channel-push apar aici dupa expediere.",
208
+ attempt: "incercarea #{number}",
209
+ httpStatus: "HTTP {status}",
210
+ },
211
+ },
144
212
  tables: {
145
213
  channel: {
146
214
  channel: "Canal",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@voyantjs/distribution-ui",
3
- "version": "0.34.0",
3
+ "version": "0.37.0",
4
4
  "license": "Apache-2.0",
5
5
  "repository": {
6
6
  "type": "git",
@@ -44,11 +44,11 @@
44
44
  "@tanstack/react-table": "^8.0.0",
45
45
  "react": "^19.0.0",
46
46
  "react-dom": "^19.0.0",
47
- "@voyantjs/distribution-react": "0.34.0",
48
- "@voyantjs/ui": "0.34.0"
47
+ "@voyantjs/distribution-react": "0.37.0",
48
+ "@voyantjs/ui": "0.37.0"
49
49
  },
50
50
  "dependencies": {
51
- "@voyantjs/i18n": "0.34.0"
51
+ "@voyantjs/i18n": "0.37.0"
52
52
  },
53
53
  "devDependencies": {
54
54
  "@tanstack/react-query": "^5.96.2",
@@ -60,10 +60,10 @@
60
60
  "react-dom": "^19.2.4",
61
61
  "typescript": "^6.0.2",
62
62
  "vitest": "^4.1.2",
63
- "@voyantjs/distribution-react": "0.34.0",
64
- "@voyantjs/i18n": "0.34.0",
63
+ "@voyantjs/distribution-react": "0.37.0",
64
+ "@voyantjs/i18n": "0.37.0",
65
65
  "@voyantjs/voyant-typescript-config": "0.1.0",
66
- "@voyantjs/ui": "0.34.0"
66
+ "@voyantjs/ui": "0.37.0"
67
67
  },
68
68
  "files": [
69
69
  "dist",