@voyantjs/extras-ui 0.84.0 → 0.84.2

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.
@@ -0,0 +1,6 @@
1
+ export interface SlotExtrasManifestPanelProps {
2
+ slotId: string;
3
+ className?: string;
4
+ }
5
+ export declare function SlotExtrasManifestPanel({ slotId, className }: SlotExtrasManifestPanelProps): import("react/jsx-runtime").JSX.Element;
6
+ //# sourceMappingURL=slot-extras-manifest-panel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slot-extras-manifest-panel.d.ts","sourceRoot":"","sources":["../../src/components/slot-extras-manifest-panel.tsx"],"names":[],"mappings":"AAuBA,MAAM,WAAW,4BAA4B;IAC3C,MAAM,EAAE,MAAM,CAAA;IACd,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,wBAAgB,uBAAuB,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,4BAA4B,2CA6M1F"}
@@ -0,0 +1,108 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { useSlotExtraManifest, useSlotExtraManifestMutation, } from "@voyantjs/extras-react";
4
+ import { Badge, Button } from "@voyantjs/ui/components";
5
+ import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow, } from "@voyantjs/ui/components/table";
6
+ import { cn } from "@voyantjs/ui/lib/utils";
7
+ import { Check, CircleDollarSign, Loader2, X } from "lucide-react";
8
+ import { useExtrasUiMessagesOrDefault } from "../i18n/index.js";
9
+ export function SlotExtrasManifestPanel({ slotId, className }) {
10
+ const messages = useExtrasUiMessagesOrDefault().slotManifest;
11
+ const manifestQuery = useSlotExtraManifest(slotId);
12
+ const mutation = useSlotExtraManifestMutation(slotId);
13
+ const manifest = manifestQuery.data;
14
+ if (manifestQuery.isPending) {
15
+ return (_jsxs("div", { className: cn("flex items-center gap-2 text-sm text-muted-foreground", className), children: [_jsx(Loader2, { className: "size-4 animate-spin", "aria-hidden": "true" }), messages.loading] }));
16
+ }
17
+ if (!manifest || manifest.extras.length === 0) {
18
+ return (_jsx("div", { className: cn("rounded-md border border-dashed p-6 text-sm text-muted-foreground", className), children: messages.emptyExtras }));
19
+ }
20
+ if (manifest.travelers.length === 0) {
21
+ return (_jsx("div", { className: cn("rounded-md border border-dashed p-6 text-sm text-muted-foreground", className), children: messages.emptyTravelers }));
22
+ }
23
+ const selectionByKey = new Map(manifest.selections.map((selection) => [
24
+ selectionKey(selection.travelerId, selection.productExtraId),
25
+ selection,
26
+ ]));
27
+ const pending = mutation.setSelection.isPending ||
28
+ mutation.bulkSetSelections.isPending ||
29
+ mutation.bulkUpdateCollections.isPending;
30
+ const setCell = (traveler, extra, selection, selected) => {
31
+ mutation.setSelection.mutate({
32
+ bookingId: traveler.bookingId,
33
+ travelerId: traveler.id,
34
+ productExtraId: extra.id,
35
+ optionExtraConfigId: selection?.optionExtraConfigId ?? null,
36
+ status: selected ? "selected" : "cancelled",
37
+ collectionStatus: selected ? selection?.collectionStatus : "not_required",
38
+ collectionCurrency: selection?.collectionCurrency ?? null,
39
+ collectionAmountCents: selection?.collectionAmountCents ?? null,
40
+ notes: selection?.notes ?? null,
41
+ });
42
+ };
43
+ const bulkSetExtra = (extra, selected) => {
44
+ mutation.bulkSetSelections.mutate({
45
+ selections: manifest.travelers.map((traveler) => {
46
+ const selection = selectionByKey.get(selectionKey(traveler.id, extra.id));
47
+ return {
48
+ bookingId: traveler.bookingId,
49
+ travelerId: traveler.id,
50
+ productExtraId: extra.id,
51
+ optionExtraConfigId: selection?.optionExtraConfigId ?? null,
52
+ status: selected ? "selected" : "cancelled",
53
+ collectionStatus: selected ? selection?.collectionStatus : "not_required",
54
+ collectionCurrency: selection?.collectionCurrency ?? null,
55
+ collectionAmountCents: selection?.collectionAmountCents ?? null,
56
+ notes: selection?.notes ?? null,
57
+ };
58
+ }),
59
+ });
60
+ };
61
+ const bulkCollection = (extra, collectionStatus) => {
62
+ const travelerIds = manifest.travelers
63
+ .filter((traveler) => selectionByKey.get(selectionKey(traveler.id, extra.id))?.selected)
64
+ .map((traveler) => traveler.id);
65
+ if (travelerIds.length === 0)
66
+ return;
67
+ mutation.bulkUpdateCollections.mutate({
68
+ productExtraId: extra.id,
69
+ travelerIds,
70
+ collectionStatus,
71
+ });
72
+ };
73
+ return (_jsxs("div", { className: cn("flex flex-col gap-3", className), children: [_jsxs("div", { className: "flex items-center justify-between gap-3", children: [_jsx("h2", { className: "text-sm font-semibold", children: messages.title }), _jsx(Badge, { variant: "outline", children: manifest.extras.length })] }), _jsx("div", { className: "overflow-x-auto rounded-md border", children: _jsxs(Table, { children: [_jsx(TableHeader, { children: _jsxs(TableRow, { children: [_jsx(TableHead, { className: "sticky left-0 z-10 min-w-56 bg-background", children: messages.travelerColumn }), _jsx(TableHead, { className: "min-w-32", children: messages.bookingColumn }), manifest.extras.map((extra) => (_jsx(TableHead, { className: "min-w-56 align-top", children: _jsxs("div", { className: "flex flex-col gap-2 py-1", children: [_jsxs("div", { children: [_jsx("div", { className: "font-medium", children: extra.name }), _jsx("div", { className: "text-xs font-normal text-muted-foreground", children: collectionModeLabel(extra.collectionMode) })] }), _jsxs("div", { className: "flex flex-wrap gap-1", children: [_jsxs(Button, { type: "button", variant: "outline", size: "sm", disabled: pending, onClick: () => bulkSetExtra(extra, true), children: [_jsx(Check, { "data-icon": "inline-start", "aria-hidden": "true" }), messages.selectAll] }), _jsxs(Button, { type: "button", variant: "outline", size: "sm", disabled: pending, onClick: () => bulkSetExtra(extra, false), children: [_jsx(X, { "data-icon": "inline-start", "aria-hidden": "true" }), messages.clearAll] }), extra.collectionMode === "cash_on_trip" ? (_jsxs(Button, { type: "button", variant: "outline", size: "sm", disabled: pending, onClick: () => bulkCollection(extra, "collected"), children: [_jsx(CircleDollarSign, { "data-icon": "inline-start", "aria-hidden": "true" }), messages.markCollected] })) : null] })] }) }, extra.id)))] }) }), _jsx(TableBody, { children: manifest.travelers.map((traveler) => (_jsxs(TableRow, { children: [_jsx(TableCell, { className: "sticky left-0 z-10 bg-background font-medium", children: traveler.fullName }), _jsx(TableCell, { className: "font-mono text-xs", children: traveler.bookingNumber }), manifest.extras.map((extra) => {
74
+ const selection = selectionByKey.get(selectionKey(traveler.id, extra.id));
75
+ const selected = selection?.selected ?? false;
76
+ return (_jsx(TableCell, { children: _jsxs("div", { className: "flex flex-wrap items-center gap-2", children: [_jsxs(Button, { type: "button", variant: selected ? "default" : "outline", size: "sm", disabled: pending, onClick: () => setCell(traveler, extra, selection, !selected), children: [selected ? (_jsx(Check, { "data-icon": "inline-start", "aria-hidden": "true" })) : (_jsx(X, { "data-icon": "inline-start", "aria-hidden": "true" })), selected ? messages.selectedLabel : messages.selectLabel] }), selection ? _jsx(CollectionBadge, { selection: selection }) : null] }) }, extra.id));
77
+ })] }, traveler.id))) })] }) })] }));
78
+ }
79
+ function CollectionBadge({ selection }) {
80
+ const messages = useExtrasUiMessagesOrDefault().slotManifest;
81
+ if (selection.collectionStatus === "collected") {
82
+ return _jsx(Badge, { className: "bg-emerald-600 text-white", children: messages.collectedLabel });
83
+ }
84
+ if (selection.collectionStatus === "pending") {
85
+ return _jsx(Badge, { variant: "secondary", children: messages.pendingLabel });
86
+ }
87
+ if (selection.collectionStatus === "waived") {
88
+ return _jsx(Badge, { variant: "outline", children: messages.waivedLabel });
89
+ }
90
+ return _jsx(Badge, { variant: "outline", children: messages.notRequiredLabel });
91
+ }
92
+ function collectionModeLabel(mode) {
93
+ switch (mode) {
94
+ case "cash_on_trip":
95
+ return "Cash on trip";
96
+ case "external":
97
+ return "External";
98
+ case "included":
99
+ return "Included";
100
+ case "none":
101
+ return "No collection";
102
+ default:
103
+ return "Booking total";
104
+ }
105
+ }
106
+ function selectionKey(travelerId, productExtraId) {
107
+ return `${travelerId}:${productExtraId}`;
108
+ }
package/dist/i18n/en.d.ts CHANGED
@@ -22,5 +22,24 @@ export declare const extrasUiEn: {
22
22
  other: string;
23
23
  };
24
24
  };
25
+ slotManifest: {
26
+ title: string;
27
+ emptyExtras: string;
28
+ emptyTravelers: string;
29
+ travelerColumn: string;
30
+ bookingColumn: string;
31
+ selectedLabel: string;
32
+ selectLabel: string;
33
+ cancelLabel: string;
34
+ collectedLabel: string;
35
+ pendingLabel: string;
36
+ waivedLabel: string;
37
+ notRequiredLabel: string;
38
+ markCollected: string;
39
+ markWaived: string;
40
+ selectAll: string;
41
+ clearAll: string;
42
+ loading: string;
43
+ };
25
44
  };
26
45
  //# sourceMappingURL=en.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"en.d.ts","sourceRoot":"","sources":["../../src/i18n/en.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;CAwBK,CAAA"}
1
+ {"version":3,"file":"en.d.ts","sourceRoot":"","sources":["../../src/i18n/en.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2CK,CAAA"}
package/dist/i18n/en.js CHANGED
@@ -22,4 +22,23 @@ export const extrasUiEn = {
22
22
  other: "Other",
23
23
  },
24
24
  },
25
+ slotManifest: {
26
+ title: "Extras manifest",
27
+ emptyExtras: "No slot-manifest extras are configured for this product.",
28
+ emptyTravelers: "No active travelers are assigned to this slot.",
29
+ travelerColumn: "Traveler",
30
+ bookingColumn: "Booking",
31
+ selectedLabel: "Selected",
32
+ selectLabel: "Select",
33
+ cancelLabel: "Cancel",
34
+ collectedLabel: "Collected",
35
+ pendingLabel: "Pending",
36
+ waivedLabel: "Waived",
37
+ notRequiredLabel: "No collection",
38
+ markCollected: "Mark collected",
39
+ markWaived: "Waive",
40
+ selectAll: "Select all",
41
+ clearAll: "Clear all",
42
+ loading: "Loading extras...",
43
+ },
25
44
  };
@@ -13,5 +13,24 @@ export type ExtrasUiMessages = {
13
13
  statusLabels: Record<ProductStatus, string>;
14
14
  bookingModeLabels: Record<ProductBookingMode, string>;
15
15
  };
16
+ slotManifest: {
17
+ title: string;
18
+ emptyExtras: string;
19
+ emptyTravelers: string;
20
+ travelerColumn: string;
21
+ bookingColumn: string;
22
+ selectedLabel: string;
23
+ selectLabel: string;
24
+ cancelLabel: string;
25
+ collectedLabel: string;
26
+ pendingLabel: string;
27
+ waivedLabel: string;
28
+ notRequiredLabel: string;
29
+ markCollected: string;
30
+ markWaived: string;
31
+ selectAll: string;
32
+ clearAll: string;
33
+ loading: string;
34
+ };
16
35
  };
17
36
  //# sourceMappingURL=messages.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../src/i18n/messages.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAA;AAE7D,MAAM,MAAM,aAAa,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAA;AACnD,MAAM,MAAM,kBAAkB,GAAG,aAAa,CAAC,aAAa,CAAC,CAAA;AAE7D,MAAM,MAAM,gBAAgB,GAAG;IAC7B,WAAW,EAAE;QACX,QAAQ,EAAE,MAAM,CAAA;QAChB,UAAU,EAAE,MAAM,CAAA;KACnB,CAAA;IACD,eAAe,EAAE;QACf,WAAW,EAAE,MAAM,CAAA;QACnB,OAAO,EAAE,MAAM,CAAA;QACf,KAAK,EAAE,MAAM,CAAA;QACb,YAAY,EAAE,MAAM,CAAC,aAAa,EAAE,MAAM,CAAC,CAAA;QAC3C,iBAAiB,EAAE,MAAM,CAAC,kBAAkB,EAAE,MAAM,CAAC,CAAA;KACtD,CAAA;CACF,CAAA"}
1
+ {"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../src/i18n/messages.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAA;AAE7D,MAAM,MAAM,aAAa,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAA;AACnD,MAAM,MAAM,kBAAkB,GAAG,aAAa,CAAC,aAAa,CAAC,CAAA;AAE7D,MAAM,MAAM,gBAAgB,GAAG;IAC7B,WAAW,EAAE;QACX,QAAQ,EAAE,MAAM,CAAA;QAChB,UAAU,EAAE,MAAM,CAAA;KACnB,CAAA;IACD,eAAe,EAAE;QACf,WAAW,EAAE,MAAM,CAAA;QACnB,OAAO,EAAE,MAAM,CAAA;QACf,KAAK,EAAE,MAAM,CAAA;QACb,YAAY,EAAE,MAAM,CAAC,aAAa,EAAE,MAAM,CAAC,CAAA;QAC3C,iBAAiB,EAAE,MAAM,CAAC,kBAAkB,EAAE,MAAM,CAAC,CAAA;KACtD,CAAA;IACD,YAAY,EAAE;QACZ,KAAK,EAAE,MAAM,CAAA;QACb,WAAW,EAAE,MAAM,CAAA;QACnB,cAAc,EAAE,MAAM,CAAA;QACtB,cAAc,EAAE,MAAM,CAAA;QACtB,aAAa,EAAE,MAAM,CAAA;QACrB,aAAa,EAAE,MAAM,CAAA;QACrB,WAAW,EAAE,MAAM,CAAA;QACnB,WAAW,EAAE,MAAM,CAAA;QACnB,cAAc,EAAE,MAAM,CAAA;QACtB,YAAY,EAAE,MAAM,CAAA;QACpB,WAAW,EAAE,MAAM,CAAA;QACnB,gBAAgB,EAAE,MAAM,CAAA;QACxB,aAAa,EAAE,MAAM,CAAA;QACrB,UAAU,EAAE,MAAM,CAAA;QAClB,SAAS,EAAE,MAAM,CAAA;QACjB,QAAQ,EAAE,MAAM,CAAA;QAChB,OAAO,EAAE,MAAM,CAAA;KAChB,CAAA;CACF,CAAA"}
@@ -26,6 +26,25 @@ export declare const extrasUiMessageDefinitions: {
26
26
  other: string;
27
27
  };
28
28
  };
29
+ slotManifest: {
30
+ title: string;
31
+ emptyExtras: string;
32
+ emptyTravelers: string;
33
+ travelerColumn: string;
34
+ bookingColumn: string;
35
+ selectedLabel: string;
36
+ selectLabel: string;
37
+ cancelLabel: string;
38
+ collectedLabel: string;
39
+ pendingLabel: string;
40
+ waivedLabel: string;
41
+ notRequiredLabel: string;
42
+ markCollected: string;
43
+ markWaived: string;
44
+ selectAll: string;
45
+ clearAll: string;
46
+ loading: string;
47
+ };
29
48
  };
30
49
  ro: {
31
50
  catalogCard: {
@@ -51,6 +70,25 @@ export declare const extrasUiMessageDefinitions: {
51
70
  other: string;
52
71
  };
53
72
  };
73
+ slotManifest: {
74
+ title: string;
75
+ emptyExtras: string;
76
+ emptyTravelers: string;
77
+ travelerColumn: string;
78
+ bookingColumn: string;
79
+ selectedLabel: string;
80
+ selectLabel: string;
81
+ cancelLabel: string;
82
+ collectedLabel: string;
83
+ pendingLabel: string;
84
+ waivedLabel: string;
85
+ notRequiredLabel: string;
86
+ markCollected: string;
87
+ markWaived: string;
88
+ selectAll: string;
89
+ clearAll: string;
90
+ loading: string;
91
+ };
54
92
  };
55
93
  };
56
94
  export type ExtrasUiMessageOverrides = LocaleMessageOverrides<ExtrasUiMessages>;
@@ -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,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAKrD,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAGe,CAAA;AAEtD,MAAM,MAAM,wBAAwB,GAAG,sBAAsB,CAAC,gBAAgB,CAAC,CAAA;AAS/E,wBAAgB,uBAAuB,CAAC,EACtC,MAAM,EACN,SAAS,GACV,EAAE;IACD,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAA;IACjC,SAAS,CAAC,EAAE,wBAAwB,GAAG,IAAI,CAAA;CAC5C,oBAOA;AAED,wBAAgB,eAAe,CAAC,EAC9B,MAAM,EACN,SAAS,GACV,EAAE;IACD,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAA;IAClC,SAAS,CAAC,EAAE,wBAAwB,GAAG,IAAI,CAAA;CAC5C,GAAG,gBAAgB,CAAC,gBAAgB,CAAC,CASrC;AAED,wBAAgB,wBAAwB,CAAC,EACvC,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,wBAAwB,GAAG,IAAI,CAAA;CAC5C,2CAWA;AAED,eAAO,MAAM,eAAe,0CAA0B,CAAA;AACtD,eAAO,MAAM,mBAAmB,wBAA8B,CAAA;AAE9D,wBAAgB,wBAAwB,uCAEvC;AAED,wBAAgB,4BAA4B,qBAE3C"}
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,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAKrD,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAGe,CAAA;AAEtD,MAAM,MAAM,wBAAwB,GAAG,sBAAsB,CAAC,gBAAgB,CAAC,CAAA;AAS/E,wBAAgB,uBAAuB,CAAC,EACtC,MAAM,EACN,SAAS,GACV,EAAE;IACD,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAA;IACjC,SAAS,CAAC,EAAE,wBAAwB,GAAG,IAAI,CAAA;CAC5C,oBAOA;AAED,wBAAgB,eAAe,CAAC,EAC9B,MAAM,EACN,SAAS,GACV,EAAE;IACD,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAA;IAClC,SAAS,CAAC,EAAE,wBAAwB,GAAG,IAAI,CAAA;CAC5C,GAAG,gBAAgB,CAAC,gBAAgB,CAAC,CASrC;AAED,wBAAgB,wBAAwB,CAAC,EACvC,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,wBAAwB,GAAG,IAAI,CAAA;CAC5C,2CAWA;AAED,eAAO,MAAM,eAAe,0CAA0B,CAAA;AACtD,eAAO,MAAM,mBAAmB,wBAA8B,CAAA;AAE9D,wBAAgB,wBAAwB,uCAEvC;AAED,wBAAgB,4BAA4B,qBAE3C"}
package/dist/i18n/ro.d.ts CHANGED
@@ -22,5 +22,24 @@ export declare const extrasUiRo: {
22
22
  other: string;
23
23
  };
24
24
  };
25
+ slotManifest: {
26
+ title: string;
27
+ emptyExtras: string;
28
+ emptyTravelers: string;
29
+ travelerColumn: string;
30
+ bookingColumn: string;
31
+ selectedLabel: string;
32
+ selectLabel: string;
33
+ cancelLabel: string;
34
+ collectedLabel: string;
35
+ pendingLabel: string;
36
+ waivedLabel: string;
37
+ notRequiredLabel: string;
38
+ markCollected: string;
39
+ markWaived: string;
40
+ selectAll: string;
41
+ clearAll: string;
42
+ loading: string;
43
+ };
25
44
  };
26
45
  //# sourceMappingURL=ro.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ro.d.ts","sourceRoot":"","sources":["../../src/i18n/ro.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;CAwBK,CAAA"}
1
+ {"version":3,"file":"ro.d.ts","sourceRoot":"","sources":["../../src/i18n/ro.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2CK,CAAA"}
package/dist/i18n/ro.js CHANGED
@@ -22,4 +22,23 @@ export const extrasUiRo = {
22
22
  other: "Altul",
23
23
  },
24
24
  },
25
+ slotManifest: {
26
+ title: "Manifest extra",
27
+ emptyExtras: "Nu exista extra configurate pentru manifestul acestui produs.",
28
+ emptyTravelers: "Nu exista calatori activi alocati acestui slot.",
29
+ travelerColumn: "Calator",
30
+ bookingColumn: "Rezervare",
31
+ selectedLabel: "Selectat",
32
+ selectLabel: "Selecteaza",
33
+ cancelLabel: "Anuleaza",
34
+ collectedLabel: "Incasat",
35
+ pendingLabel: "In asteptare",
36
+ waivedLabel: "Renuntat",
37
+ notRequiredLabel: "Fara incasare",
38
+ markCollected: "Marcheaza incasat",
39
+ markWaived: "Renunta",
40
+ selectAll: "Selecteaza tot",
41
+ clearAll: "Sterge tot",
42
+ loading: "Se incarca extra...",
43
+ },
25
44
  };
package/dist/index.d.ts CHANGED
@@ -1,3 +1,4 @@
1
1
  export { ProductCombobox } from "./components/product-combobox.js";
2
+ export { SlotExtrasManifestPanel } from "./components/slot-extras-manifest-panel.js";
2
3
  export { type ExtrasUiMessageOverrides, type ExtrasUiMessages, ExtrasUiMessagesProvider, extrasUiEn, extrasUiMessageDefinitions, extrasUiRo, getExtrasUiI18n, resolveExtrasUiMessages, useExtrasUiI18n, useExtrasUiI18nOrDefault, useExtrasUiMessages, useExtrasUiMessagesOrDefault, } from "./i18n/index.js";
3
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAA;AAClE,OAAO,EACL,KAAK,wBAAwB,EAC7B,KAAK,gBAAgB,EACrB,wBAAwB,EACxB,UAAU,EACV,0BAA0B,EAC1B,UAAU,EACV,eAAe,EACf,uBAAuB,EACvB,eAAe,EACf,wBAAwB,EACxB,mBAAmB,EACnB,4BAA4B,GAC7B,MAAM,iBAAiB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAA;AAClE,OAAO,EAAE,uBAAuB,EAAE,MAAM,4CAA4C,CAAA;AACpF,OAAO,EACL,KAAK,wBAAwB,EAC7B,KAAK,gBAAgB,EACrB,wBAAwB,EACxB,UAAU,EACV,0BAA0B,EAC1B,UAAU,EACV,eAAe,EACf,uBAAuB,EACvB,eAAe,EACf,wBAAwB,EACxB,mBAAmB,EACnB,4BAA4B,GAC7B,MAAM,iBAAiB,CAAA"}
package/dist/index.js CHANGED
@@ -1,2 +1,3 @@
1
1
  export { ProductCombobox } from "./components/product-combobox.js";
2
+ export { SlotExtrasManifestPanel } from "./components/slot-extras-manifest-panel.js";
2
3
  export { ExtrasUiMessagesProvider, extrasUiEn, extrasUiMessageDefinitions, extrasUiRo, getExtrasUiI18n, resolveExtrasUiMessages, useExtrasUiI18n, useExtrasUiI18nOrDefault, useExtrasUiMessages, useExtrasUiMessagesOrDefault, } from "./i18n/index.js";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@voyantjs/extras-ui",
3
- "version": "0.84.0",
3
+ "version": "0.84.2",
4
4
  "license": "Apache-2.0",
5
5
  "repository": {
6
6
  "type": "git",
@@ -46,13 +46,13 @@
46
46
  "react-dom": "^19.0.0",
47
47
  "react-hook-form": "^7.60.0",
48
48
  "zod": "^4.3.6",
49
- "@voyantjs/catalog-react": "0.84.0",
50
- "@voyantjs/extras-react": "0.84.0",
51
- "@voyantjs/products-react": "0.84.0",
52
- "@voyantjs/ui": "0.84.0"
49
+ "@voyantjs/catalog-react": "0.84.2",
50
+ "@voyantjs/extras-react": "0.84.2",
51
+ "@voyantjs/products-react": "0.84.2",
52
+ "@voyantjs/ui": "0.84.2"
53
53
  },
54
54
  "dependencies": {
55
- "@voyantjs/i18n": "0.84.0"
55
+ "@voyantjs/i18n": "0.84.2"
56
56
  },
57
57
  "devDependencies": {
58
58
  "@tanstack/react-query": "^5.100.11",
@@ -66,11 +66,11 @@
66
66
  "typescript": "^6.0.2",
67
67
  "vitest": "^4.1.2",
68
68
  "zod": "^4.3.6",
69
- "@voyantjs/catalog-react": "0.84.0",
70
- "@voyantjs/extras-react": "0.84.0",
71
- "@voyantjs/i18n": "0.84.0",
72
- "@voyantjs/products-react": "0.84.0",
73
- "@voyantjs/ui": "0.84.0",
69
+ "@voyantjs/catalog-react": "0.84.2",
70
+ "@voyantjs/extras-react": "0.84.2",
71
+ "@voyantjs/i18n": "0.84.2",
72
+ "@voyantjs/products-react": "0.84.2",
73
+ "@voyantjs/ui": "0.84.2",
74
74
  "@voyantjs/voyant-typescript-config": "0.1.0"
75
75
  },
76
76
  "files": [