@voyant-travel/commerce-react 0.20.0 → 0.21.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.
@@ -1 +1 @@
1
- {"version":3,"file":"en.d.ts","sourceRoot":"","sources":["../../../src/promotions/i18n/en.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAA;AAEzD,eAAO,MAAM,cAAc,EAAE,oBAuJ5B,CAAA"}
1
+ {"version":3,"file":"en.d.ts","sourceRoot":"","sources":["../../../src/promotions/i18n/en.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAA;AAEzD,eAAO,MAAM,cAAc,EAAE,oBA0L5B,CAAA"}
@@ -5,6 +5,10 @@ export const promotionsUiEn = {
5
5
  saveChanges: "Save changes",
6
6
  saving: "Saving...",
7
7
  active: "Active",
8
+ edit: "Edit",
9
+ archive: "Archive",
10
+ activate: "Activate",
11
+ delete: "Delete",
8
12
  discountTypeLabels: {
9
13
  percentage: "Percentage",
10
14
  fixed_amount: "Fixed amount",
@@ -62,6 +66,19 @@ export const promotionsUiEn = {
62
66
  validity: "Validity",
63
67
  code: "Code",
64
68
  status: "Status",
69
+ actions: "Actions",
70
+ },
71
+ actions: {
72
+ edit: "Edit",
73
+ archive: "Archive",
74
+ activate: "Activate",
75
+ delete: "Delete",
76
+ archiveConfirm: "Archive this promotion? It will stop applying to new bookings.",
77
+ activateConfirm: "Activate this promotion? It can apply again when its validity window matches.",
78
+ deleteConfirm: "Delete this promotion permanently? Use archive if it should only be retired.",
79
+ deleteConflict: "This promotion has redemptions and cannot be deleted. Archive it instead.",
80
+ actionFailedPrefix: "{action} failed: {message}",
81
+ dismissError: "Dismiss promotion action error",
65
82
  },
66
83
  badges: {
67
84
  auto: "Auto",
@@ -110,6 +127,8 @@ export const promotionsUiEn = {
110
127
  currency: "Currency",
111
128
  scope: "Scope",
112
129
  scopeIds: "{scope}",
130
+ products: "Products",
131
+ categories: "Categories",
113
132
  audiences: "Audiences",
114
133
  validFrom: "Valid from",
115
134
  validUntil: "Valid until",
@@ -128,7 +147,9 @@ export const promotionsUiEn = {
128
147
  code: "EARLYBIRD2026",
129
148
  minPax: "4",
130
149
  productIds: "Add product references",
150
+ productPicker: "Search products to add",
131
151
  categoryIds: "Add category references",
152
+ categoryPicker: "Search categories to add",
132
153
  destinationIds: "Add destination references",
133
154
  marketIds: "Add market references",
134
155
  fareCodes: "Add fare codes",
@@ -137,15 +158,28 @@ export const promotionsUiEn = {
137
158
  hints: {
138
159
  globalScope: "Applies to every product.",
139
160
  commaSeparatedIds: "comma-separated references",
161
+ noProductsSelected: "No products selected.",
162
+ noCategoriesSelected: "No categories selected.",
163
+ },
164
+ actions: {
165
+ removeScopeId: "Remove {id}",
140
166
  },
141
167
  validation: {
142
168
  nameRequired: "Name is required",
143
169
  slugRequired: "Slug is required",
170
+ slugInvalid: "Slug: use lowercase letters, numbers, and hyphens.",
171
+ codeInvalid: "Code: use letters, numbers, hyphens, or underscores.",
144
172
  discountPercentRequired: "Discount percent is required for percentage offers",
173
+ discountPercentInvalid: "Discount percent must be greater than 0 and no more than 100.",
145
174
  discountAmountRequired: "Discount amount is required for fixed-amount offers",
146
175
  currencyRequired: "Currency is required for fixed-amount offers",
176
+ minPaxInvalid: "Min pax must be a whole number greater than 0.",
177
+ validFromInvalid: "Valid from is not a valid date/time.",
178
+ validUntilInvalid: "Valid until is not a valid date/time.",
179
+ validRangeInvalid: "Valid until must be after valid from.",
147
180
  scopeInvalid: "invalid",
148
181
  scopeInvalidPrefix: "Scope: {message}",
182
+ scopeIdsRequired: "{scope}: add at least one value.",
149
183
  },
150
184
  },
151
185
  };
@@ -1 +1 @@
1
- {"version":3,"file":"en.js","sourceRoot":"","sources":["../../../src/promotions/i18n/en.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"en.js","sourceRoot":"","sources":["../../../src/promotions/i18n/en.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,10 @@ export type PromotionsUiMessages = {
6
6
  saveChanges: string;
7
7
  saving: string;
8
8
  active: string;
9
+ edit: string;
10
+ archive: string;
11
+ activate: string;
12
+ delete: string;
9
13
  discountTypeLabels: Record<"percentage" | "fixed_amount", string>;
10
14
  applicationModeLabels: Record<PromotionalOfferApplicationMode, string>;
11
15
  statusLabels: Record<PromotionalOfferListStatus, string>;
@@ -38,6 +42,19 @@ export type PromotionsUiMessages = {
38
42
  validity: string;
39
43
  code: string;
40
44
  status: string;
45
+ actions: string;
46
+ };
47
+ actions: {
48
+ edit: string;
49
+ archive: string;
50
+ activate: string;
51
+ delete: string;
52
+ archiveConfirm: string;
53
+ activateConfirm: string;
54
+ deleteConfirm: string;
55
+ deleteConflict: string;
56
+ actionFailedPrefix: string;
57
+ dismissError: string;
41
58
  };
42
59
  badges: {
43
60
  auto: string;
@@ -95,6 +112,8 @@ export type PromotionsUiMessages = {
95
112
  currency: string;
96
113
  scope: string;
97
114
  scopeIds: string;
115
+ products: string;
116
+ categories: string;
98
117
  audiences: string;
99
118
  validFrom: string;
100
119
  validUntil: string;
@@ -113,7 +132,9 @@ export type PromotionsUiMessages = {
113
132
  code: string;
114
133
  minPax: string;
115
134
  productIds: string;
135
+ productPicker: string;
116
136
  categoryIds: string;
137
+ categoryPicker: string;
117
138
  destinationIds: string;
118
139
  marketIds: string;
119
140
  fareCodes: string;
@@ -122,15 +143,28 @@ export type PromotionsUiMessages = {
122
143
  hints: {
123
144
  globalScope: string;
124
145
  commaSeparatedIds: string;
146
+ noProductsSelected: string;
147
+ noCategoriesSelected: string;
148
+ };
149
+ actions: {
150
+ removeScopeId: string;
125
151
  };
126
152
  validation: {
127
153
  nameRequired: string;
128
154
  slugRequired: string;
155
+ slugInvalid: string;
156
+ codeInvalid: string;
129
157
  discountPercentRequired: string;
158
+ discountPercentInvalid: string;
130
159
  discountAmountRequired: string;
131
160
  currencyRequired: string;
161
+ minPaxInvalid: string;
162
+ validFromInvalid: string;
163
+ validUntilInvalid: string;
164
+ validRangeInvalid: string;
132
165
  scopeInvalid: string;
133
166
  scopeInvalidPrefix: string;
167
+ scopeIdsRequired: string;
134
168
  };
135
169
  };
136
170
  };
@@ -1 +1 @@
1
- {"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../../src/promotions/i18n/messages.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../../src/promotions/i18n/messages.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,+BAA+B,EAC/B,0BAA0B,EAC1B,yBAAyB,EAC1B,MAAM,aAAa,CAAA;AAEpB,MAAM,MAAM,oBAAoB,GAAG;IACjC,MAAM,EAAE;QACN,MAAM,EAAE,MAAM,CAAA;QACd,MAAM,EAAE,MAAM,CAAA;QACd,WAAW,EAAE,MAAM,CAAA;QACnB,MAAM,EAAE,MAAM,CAAA;QACd,MAAM,EAAE,MAAM,CAAA;QACd,IAAI,EAAE,MAAM,CAAA;QACZ,OAAO,EAAE,MAAM,CAAA;QACf,QAAQ,EAAE,MAAM,CAAA;QAChB,MAAM,EAAE,MAAM,CAAA;QACd,kBAAkB,EAAE,MAAM,CAAC,YAAY,GAAG,cAAc,EAAE,MAAM,CAAC,CAAA;QACjE,qBAAqB,EAAE,MAAM,CAAC,+BAA+B,EAAE,MAAM,CAAC,CAAA;QACtE,YAAY,EAAE,MAAM,CAAC,0BAA0B,EAAE,MAAM,CAAC,CAAA;QACxD,eAAe,EAAE,MAAM,CAAC,yBAAyB,EAAE,MAAM,CAAC,CAAA;QAC1D,cAAc,EAAE,MAAM,CAAC,OAAO,GAAG,UAAU,GAAG,SAAS,GAAG,UAAU,EAAE,MAAM,CAAC,CAAA;KAC9E,CAAA;IACD,cAAc,EAAE;QACd,KAAK,EAAE,MAAM,CAAA;QACb,WAAW,EAAE,MAAM,CAAA;QACnB,YAAY,EAAE,MAAM,CAAA;QACpB,WAAW,EAAE,MAAM,CAAA;QACnB,iBAAiB,EAAE,MAAM,CAAA;QACzB,eAAe,EAAE,MAAM,CAAA;QACvB,QAAQ,EAAE,MAAM,CAAA;QAChB,iBAAiB,EAAE,MAAM,CAAA;QACzB,WAAW,EAAE,MAAM,CAAA;QACnB,gBAAgB,EAAE,MAAM,CAAA;QACxB,SAAS,EAAE,MAAM,CAAA;QACjB,wBAAwB,EAAE,MAAM,CAAA;QAChC,aAAa,EAAE,MAAM,CAAA;QACrB,YAAY,EAAE,MAAM,CAAA;QACpB,UAAU,EAAE,MAAM,CAAA;QAClB,gBAAgB,EAAE,MAAM,CAAA;QACxB,KAAK,EAAE,MAAM,CAAA;QACb,OAAO,EAAE;YACP,IAAI,EAAE,MAAM,CAAA;YACZ,IAAI,EAAE,MAAM,CAAA;YACZ,KAAK,EAAE,MAAM,CAAA;YACb,QAAQ,EAAE,MAAM,CAAA;YAChB,QAAQ,EAAE,MAAM,CAAA;YAChB,IAAI,EAAE,MAAM,CAAA;YACZ,MAAM,EAAE,MAAM,CAAA;YACd,OAAO,EAAE,MAAM,CAAA;SAChB,CAAA;QACD,OAAO,EAAE;YACP,IAAI,EAAE,MAAM,CAAA;YACZ,OAAO,EAAE,MAAM,CAAA;YACf,QAAQ,EAAE,MAAM,CAAA;YAChB,MAAM,EAAE,MAAM,CAAA;YACd,cAAc,EAAE,MAAM,CAAA;YACtB,eAAe,EAAE,MAAM,CAAA;YACvB,aAAa,EAAE,MAAM,CAAA;YACrB,cAAc,EAAE,MAAM,CAAA;YACtB,kBAAkB,EAAE,MAAM,CAAA;YAC1B,YAAY,EAAE,MAAM,CAAA;SACrB,CAAA;QACD,MAAM,EAAE;YACN,IAAI,EAAE,MAAM,CAAA;YACZ,IAAI,EAAE,MAAM,CAAA;YACZ,SAAS,EAAE,MAAM,CAAA;SAClB,CAAA;QACD,UAAU,EAAE;YACV,OAAO,EAAE,MAAM,CAAA;YACf,QAAQ,EAAE,MAAM,CAAA;YAChB,IAAI,EAAE,MAAM,CAAA;YACZ,IAAI,EAAE,MAAM,CAAA;SACb,CAAA;QACD,SAAS,EAAE;YACT,WAAW,EAAE,MAAM,CAAA;YACnB,aAAa,EAAE,MAAM,CAAA;YACrB,eAAe,EAAE,MAAM,CAAA;YACvB,iBAAiB,EAAE,MAAM,CAAA;YACzB,YAAY,EAAE,MAAM,CAAA;YACpB,cAAc,EAAE,MAAM,CAAA;YACtB,cAAc,EAAE,MAAM,CAAA;YACtB,gBAAgB,EAAE,MAAM,CAAA;YACxB,YAAY,EAAE;gBACZ,QAAQ,EAAE,MAAM,CAAA;gBAChB,MAAM,EAAE,MAAM,CAAA;aACf,CAAA;YACD,aAAa,EAAE;gBACb,QAAQ,EAAE,MAAM,CAAA;gBAChB,MAAM,EAAE,MAAM,CAAA;aACf,CAAA;YACD,gBAAgB,EAAE;gBAChB,QAAQ,EAAE,MAAM,CAAA;gBAChB,MAAM,EAAE,MAAM,CAAA;aACf,CAAA;YACD,iBAAiB,EAAE,MAAM,CAAA;YACzB,OAAO,EAAE,MAAM,CAAA;YACf,KAAK,EAAE,MAAM,CAAA;YACb,IAAI,EAAE,MAAM,CAAA;YACZ,KAAK,EAAE,MAAM,CAAA;YACb,MAAM,EAAE,MAAM,CAAA;SACf,CAAA;KACF,CAAA;IACD,eAAe,EAAE;QACf,MAAM,EAAE;YACN,MAAM,EAAE,MAAM,CAAA;YACd,IAAI,EAAE,MAAM,CAAA;SACb,CAAA;QACD,WAAW,EAAE,MAAM,CAAA;QACnB,MAAM,EAAE;YACN,IAAI,EAAE,MAAM,CAAA;YACZ,IAAI,EAAE,MAAM,CAAA;YACZ,WAAW,EAAE,MAAM,CAAA;YACnB,IAAI,EAAE,MAAM,CAAA;YACZ,OAAO,EAAE,MAAM,CAAA;YACf,MAAM,EAAE,MAAM,CAAA;YACd,QAAQ,EAAE,MAAM,CAAA;YAChB,KAAK,EAAE,MAAM,CAAA;YACb,QAAQ,EAAE,MAAM,CAAA;YAChB,QAAQ,EAAE,MAAM,CAAA;YAChB,UAAU,EAAE,MAAM,CAAA;YAClB,SAAS,EAAE,MAAM,CAAA;YACjB,SAAS,EAAE,MAAM,CAAA;YACjB,UAAU,EAAE,MAAM,CAAA;YAClB,IAAI,EAAE,MAAM,CAAA;YACZ,MAAM,EAAE,MAAM,CAAA;YACd,SAAS,EAAE,MAAM,CAAA;YACjB,MAAM,EAAE,MAAM,CAAA;SACf,CAAA;QACD,YAAY,EAAE;YACZ,IAAI,EAAE,MAAM,CAAA;YACZ,IAAI,EAAE,MAAM,CAAA;YACZ,WAAW,EAAE,MAAM,CAAA;YACnB,OAAO,EAAE,MAAM,CAAA;YACf,MAAM,EAAE,MAAM,CAAA;YACd,QAAQ,EAAE,MAAM,CAAA;YAChB,IAAI,EAAE,MAAM,CAAA;YACZ,MAAM,EAAE,MAAM,CAAA;YACd,UAAU,EAAE,MAAM,CAAA;YAClB,aAAa,EAAE,MAAM,CAAA;YACrB,WAAW,EAAE,MAAM,CAAA;YACnB,cAAc,EAAE,MAAM,CAAA;YACtB,cAAc,EAAE,MAAM,CAAA;YACtB,SAAS,EAAE,MAAM,CAAA;YACjB,SAAS,EAAE,MAAM,CAAA;YACjB,eAAe,EAAE,MAAM,CAAA;SACxB,CAAA;QACD,KAAK,EAAE;YACL,WAAW,EAAE,MAAM,CAAA;YACnB,iBAAiB,EAAE,MAAM,CAAA;YACzB,kBAAkB,EAAE,MAAM,CAAA;YAC1B,oBAAoB,EAAE,MAAM,CAAA;SAC7B,CAAA;QACD,OAAO,EAAE;YACP,aAAa,EAAE,MAAM,CAAA;SACtB,CAAA;QACD,UAAU,EAAE;YACV,YAAY,EAAE,MAAM,CAAA;YACpB,YAAY,EAAE,MAAM,CAAA;YACpB,WAAW,EAAE,MAAM,CAAA;YACnB,WAAW,EAAE,MAAM,CAAA;YACnB,uBAAuB,EAAE,MAAM,CAAA;YAC/B,sBAAsB,EAAE,MAAM,CAAA;YAC9B,sBAAsB,EAAE,MAAM,CAAA;YAC9B,gBAAgB,EAAE,MAAM,CAAA;YACxB,aAAa,EAAE,MAAM,CAAA;YACrB,gBAAgB,EAAE,MAAM,CAAA;YACxB,iBAAiB,EAAE,MAAM,CAAA;YACzB,iBAAiB,EAAE,MAAM,CAAA;YACzB,YAAY,EAAE,MAAM,CAAA;YACpB,kBAAkB,EAAE,MAAM,CAAA;YAC1B,gBAAgB,EAAE,MAAM,CAAA;SACzB,CAAA;KACF,CAAA;CACF,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"ro.d.ts","sourceRoot":"","sources":["../../../src/promotions/i18n/ro.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAA;AAEzD,eAAO,MAAM,cAAc,EAAE,oBAuJ5B,CAAA"}
1
+ {"version":3,"file":"ro.d.ts","sourceRoot":"","sources":["../../../src/promotions/i18n/ro.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAA;AAEzD,eAAO,MAAM,cAAc,EAAE,oBA4L5B,CAAA"}
@@ -5,6 +5,10 @@ export const promotionsUiRo = {
5
5
  saveChanges: "Salveaza modificarile",
6
6
  saving: "Se salveaza...",
7
7
  active: "Activa",
8
+ edit: "Editeaza",
9
+ archive: "Arhiveaza",
10
+ activate: "Activeaza",
11
+ delete: "Sterge",
8
12
  discountTypeLabels: {
9
13
  percentage: "Procent",
10
14
  fixed_amount: "Suma fixa",
@@ -62,6 +66,19 @@ export const promotionsUiRo = {
62
66
  validity: "Valabilitate",
63
67
  code: "Cod",
64
68
  status: "Status",
69
+ actions: "Actiuni",
70
+ },
71
+ actions: {
72
+ edit: "Editeaza",
73
+ archive: "Arhiveaza",
74
+ activate: "Activeaza",
75
+ delete: "Sterge",
76
+ archiveConfirm: "Arhivezi aceasta promotie? Nu se va mai aplica la rezervari noi.",
77
+ activateConfirm: "Activezi aceasta promotie? Se poate aplica din nou cand intervalul este valid.",
78
+ deleteConfirm: "Stergi definitiv aceasta promotie? Foloseste arhivarea daca trebuie doar retrasa.",
79
+ deleteConflict: "Aceasta promotie are valorificari si nu poate fi stearsa. Arhiveaz-o in schimb.",
80
+ actionFailedPrefix: "{action} a esuat: {message}",
81
+ dismissError: "Inchide eroarea actiunii pe promotie",
65
82
  },
66
83
  badges: {
67
84
  auto: "Automat",
@@ -110,6 +127,8 @@ export const promotionsUiRo = {
110
127
  currency: "Moneda",
111
128
  scope: "Domeniu",
112
129
  scopeIds: "{scope}",
130
+ products: "Produse",
131
+ categories: "Categorii",
113
132
  audiences: "Audiente",
114
133
  validFrom: "Valabila din",
115
134
  validUntil: "Valabila pana la",
@@ -128,7 +147,9 @@ export const promotionsUiRo = {
128
147
  code: "EARLYBIRD2026",
129
148
  minPax: "4",
130
149
  productIds: "Adauga referinte de produse",
150
+ productPicker: "Cauta produse de adaugat",
131
151
  categoryIds: "Adauga referinte de categorii",
152
+ categoryPicker: "Cauta categorii de adaugat",
132
153
  destinationIds: "Adauga referinte de destinatii",
133
154
  marketIds: "Adauga referinte de piete",
134
155
  fareCodes: "Adauga coduri tarifare",
@@ -137,15 +158,28 @@ export const promotionsUiRo = {
137
158
  hints: {
138
159
  globalScope: "Se aplica tuturor produselor.",
139
160
  commaSeparatedIds: "Referinte separate prin virgula",
161
+ noProductsSelected: "Niciun produs selectat.",
162
+ noCategoriesSelected: "Nicio categorie selectata.",
163
+ },
164
+ actions: {
165
+ removeScopeId: "Elimina {id}",
140
166
  },
141
167
  validation: {
142
168
  nameRequired: "Numele este obligatoriu",
143
169
  slugRequired: "Slug-ul este obligatoriu",
170
+ slugInvalid: "Slug: foloseste litere mici, cifre si cratime.",
171
+ codeInvalid: "Cod: foloseste litere, cifre, cratime sau underscore.",
144
172
  discountPercentRequired: "Procentul de discount este obligatoriu pentru ofertele procentuale",
173
+ discountPercentInvalid: "Procentul de discount trebuie sa fie peste 0 si cel mult 100.",
145
174
  discountAmountRequired: "Suma discountului este obligatorie pentru ofertele cu suma fixa",
146
175
  currencyRequired: "Moneda este obligatorie pentru ofertele cu suma fixa",
176
+ minPaxInvalid: "Pax minim trebuie sa fie un numar intreg mai mare decat 0.",
177
+ validFromInvalid: "Data de inceput nu este valida.",
178
+ validUntilInvalid: "Data de final nu este valida.",
179
+ validRangeInvalid: "Data de final trebuie sa fie dupa data de inceput.",
147
180
  scopeInvalid: "invalid",
148
181
  scopeInvalidPrefix: "Domeniu: {message}",
182
+ scopeIdsRequired: "{scope}: adauga cel putin o valoare.",
149
183
  },
150
184
  },
151
185
  };
@@ -1 +1 @@
1
- {"version":3,"file":"ro.js","sourceRoot":"","sources":["../../../src/promotions/i18n/ro.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ro.js","sourceRoot":"","sources":["../../../src/promotions/i18n/ro.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ import type { PromotionsUiMessages } from "./i18n/messages.js";
2
+ import type { PromotionalOfferRecord, PromotionalOfferScope, PromotionInsertInput } from "./index.js";
3
+ export type ScopeKind = PromotionalOfferScope["kind"];
4
+ export declare const SCOPE_KINDS: ScopeKind[];
5
+ export declare const AUDIENCE_OPTIONS: Array<"staff" | "customer" | "partner" | "supplier">;
6
+ export interface PromotionFormState {
7
+ name: string;
8
+ slug: string;
9
+ description: string;
10
+ discountType: "percentage" | "fixed_amount";
11
+ discountPercent: string;
12
+ discountAmountCents: number | null;
13
+ currency: string;
14
+ scopeKind: ScopeKind;
15
+ scopeIds: string;
16
+ scopeAudiences: Array<"staff" | "customer" | "partner" | "supplier">;
17
+ minPax: string;
18
+ validFrom: string;
19
+ validUntil: string;
20
+ code: string;
21
+ stackable: boolean;
22
+ active: boolean;
23
+ }
24
+ export declare function emptyPromotionForm(): PromotionFormState;
25
+ export declare function offerToPromotionForm(offer: PromotionalOfferRecord): PromotionFormState;
26
+ export declare function scopeIdsToString(scope: PromotionalOfferScope): string;
27
+ export declare function toDateTimePickerValue(iso: string): string;
28
+ export declare function parseScopeIds(raw: string): string[];
29
+ export declare function scopeIdsToFormValue(ids: string[]): string;
30
+ export declare function buildPromotionScope(state: PromotionFormState): PromotionalOfferScope;
31
+ export declare function buildPromotionPayload(state: PromotionFormState, messages: PromotionsUiMessages["promotionDialog"], scopeLabel: string): PromotionInsertInput | {
32
+ error: string;
33
+ };
34
+ //# sourceMappingURL=promotion-dialog-model.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"promotion-dialog-model.d.ts","sourceRoot":"","sources":["../../src/promotions/promotion-dialog-model.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAA;AAC9D,OAAO,KAAK,EACV,sBAAsB,EACtB,qBAAqB,EACrB,oBAAoB,EACrB,MAAM,YAAY,CAAA;AAGnB,MAAM,MAAM,SAAS,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAA;AAErD,eAAO,MAAM,WAAW,EAAE,SAAS,EASlC,CAAA;AAED,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,OAAO,GAAG,UAAU,GAAG,SAAS,GAAG,UAAU,CAKjF,CAAA;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,YAAY,EAAE,YAAY,GAAG,cAAc,CAAA;IAC3C,eAAe,EAAE,MAAM,CAAA;IACvB,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAA;IAClC,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,SAAS,CAAA;IACpB,QAAQ,EAAE,MAAM,CAAA;IAChB,cAAc,EAAE,KAAK,CAAC,OAAO,GAAG,UAAU,GAAG,SAAS,GAAG,UAAU,CAAC,CAAA;IACpE,MAAM,EAAE,MAAM,CAAA;IACd,SAAS,EAAE,MAAM,CAAA;IACjB,UAAU,EAAE,MAAM,CAAA;IAClB,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,EAAE,OAAO,CAAA;IAClB,MAAM,EAAE,OAAO,CAAA;CAChB;AAED,wBAAgB,kBAAkB,IAAI,kBAAkB,CAmBvD;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,sBAAsB,GAAG,kBAAkB,CAmBtF;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,qBAAqB,GAAG,MAAM,CAiBrE;AAED,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEzD;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAKnD;AAED,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,MAAM,CAEzD;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,kBAAkB,GAAG,qBAAqB,CAmBpF;AAED,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,kBAAkB,EACzB,QAAQ,EAAE,oBAAoB,CAAC,iBAAiB,CAAC,EACjD,UAAU,EAAE,MAAM,GACjB,oBAAoB,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CAkE1C"}
@@ -0,0 +1,184 @@
1
+ import { formatMessage } from "@voyant-travel/i18n";
2
+ import { promotionalOfferScopeSchema } from "./index.js";
3
+ export const SCOPE_KINDS = [
4
+ "global",
5
+ "products",
6
+ "categories",
7
+ "destinations",
8
+ "markets",
9
+ "audiences",
10
+ "fare_codes",
11
+ "cabin_grades",
12
+ ];
13
+ export const AUDIENCE_OPTIONS = [
14
+ "staff",
15
+ "customer",
16
+ "partner",
17
+ "supplier",
18
+ ];
19
+ export function emptyPromotionForm() {
20
+ return {
21
+ name: "",
22
+ slug: "",
23
+ description: "",
24
+ discountType: "percentage",
25
+ discountPercent: "",
26
+ discountAmountCents: null,
27
+ currency: "USD",
28
+ scopeKind: "global",
29
+ scopeIds: "",
30
+ scopeAudiences: ["customer"],
31
+ minPax: "",
32
+ validFrom: "",
33
+ validUntil: "",
34
+ code: "",
35
+ stackable: false,
36
+ active: true,
37
+ };
38
+ }
39
+ export function offerToPromotionForm(offer) {
40
+ const base = emptyPromotionForm();
41
+ base.name = offer.name;
42
+ base.slug = offer.slug;
43
+ base.description = offer.description ?? "";
44
+ base.discountType = offer.discountType;
45
+ base.discountPercent = offer.discountPercent ?? "";
46
+ base.discountAmountCents = offer.discountAmountCents ?? null;
47
+ base.currency = offer.currency ?? "USD";
48
+ base.scopeKind = offer.scope.kind;
49
+ base.scopeIds = scopeIdsToString(offer.scope);
50
+ base.scopeAudiences = offer.scope.kind === "audiences" ? [...offer.scope.audiences] : ["customer"];
51
+ base.minPax = offer.conditions.minPax != null ? String(offer.conditions.minPax) : "";
52
+ base.validFrom = offer.validFrom ? toDateTimePickerValue(offer.validFrom) : "";
53
+ base.validUntil = offer.validUntil ? toDateTimePickerValue(offer.validUntil) : "";
54
+ base.code = offer.code ?? "";
55
+ base.stackable = offer.stackable;
56
+ base.active = offer.active;
57
+ return base;
58
+ }
59
+ export function scopeIdsToString(scope) {
60
+ switch (scope.kind) {
61
+ case "products":
62
+ return scope.productIds.join(", ");
63
+ case "categories":
64
+ return scope.categoryIds.join(", ");
65
+ case "destinations":
66
+ return scope.destinationIds.join(", ");
67
+ case "markets":
68
+ return scope.marketIds.join(", ");
69
+ case "fare_codes":
70
+ return scope.fareCodes.join(", ");
71
+ case "cabin_grades":
72
+ return scope.cabinGradeCodes.join(", ");
73
+ default:
74
+ return "";
75
+ }
76
+ }
77
+ export function toDateTimePickerValue(iso) {
78
+ return iso.slice(0, 16);
79
+ }
80
+ export function parseScopeIds(raw) {
81
+ return raw
82
+ .split(/[,\s]+/)
83
+ .map((s) => s.trim())
84
+ .filter((s) => s.length > 0);
85
+ }
86
+ export function scopeIdsToFormValue(ids) {
87
+ return Array.from(new Set(ids.map((id) => id.trim()).filter(Boolean))).join(", ");
88
+ }
89
+ export function buildPromotionScope(state) {
90
+ switch (state.scopeKind) {
91
+ case "global":
92
+ return { kind: "global" };
93
+ case "products":
94
+ return { kind: "products", productIds: parseScopeIds(state.scopeIds) };
95
+ case "categories":
96
+ return { kind: "categories", categoryIds: parseScopeIds(state.scopeIds) };
97
+ case "destinations":
98
+ return { kind: "destinations", destinationIds: parseScopeIds(state.scopeIds) };
99
+ case "markets":
100
+ return { kind: "markets", marketIds: parseScopeIds(state.scopeIds) };
101
+ case "audiences":
102
+ return { kind: "audiences", audiences: state.scopeAudiences };
103
+ case "fare_codes":
104
+ return { kind: "fare_codes", fareCodes: parseScopeIds(state.scopeIds) };
105
+ case "cabin_grades":
106
+ return { kind: "cabin_grades", cabinGradeCodes: parseScopeIds(state.scopeIds) };
107
+ }
108
+ }
109
+ export function buildPromotionPayload(state, messages, scopeLabel) {
110
+ const name = state.name.trim();
111
+ const slug = state.slug.trim();
112
+ const code = state.code.trim();
113
+ const minPax = state.minPax.trim();
114
+ if (!name)
115
+ return { error: messages.validation.nameRequired };
116
+ if (!slug)
117
+ return { error: messages.validation.slugRequired };
118
+ if (!/^[a-z0-9-]+$/.test(slug))
119
+ return { error: messages.validation.slugInvalid };
120
+ if (code && !/^[A-Za-z0-9_-]+$/.test(code))
121
+ return { error: messages.validation.codeInvalid };
122
+ const discountPercent = state.discountType === "percentage" ? Number(state.discountPercent) : null;
123
+ if (state.discountType === "percentage") {
124
+ if (!state.discountPercent)
125
+ return { error: messages.validation.discountPercentRequired };
126
+ if (!Number.isFinite(discountPercent) || discountPercent == null || discountPercent <= 0) {
127
+ return { error: messages.validation.discountPercentInvalid };
128
+ }
129
+ if (discountPercent > 100)
130
+ return { error: messages.validation.discountPercentInvalid };
131
+ }
132
+ if (state.discountType === "fixed_amount") {
133
+ if (state.discountAmountCents == null || state.discountAmountCents <= 0) {
134
+ return { error: messages.validation.discountAmountRequired };
135
+ }
136
+ if (!state.currency.trim())
137
+ return { error: messages.validation.currencyRequired };
138
+ }
139
+ if (minPax && (!Number.isInteger(Number(minPax)) || Number(minPax) <= 0)) {
140
+ return { error: messages.validation.minPaxInvalid };
141
+ }
142
+ const validFrom = parseOptionalDate(state.validFrom);
143
+ const validUntil = parseOptionalDate(state.validUntil);
144
+ if (validFrom === "invalid")
145
+ return { error: messages.validation.validFromInvalid };
146
+ if (validUntil === "invalid")
147
+ return { error: messages.validation.validUntilInvalid };
148
+ if (validFrom != null && validUntil != null && validFrom.getTime() >= validUntil.getTime()) {
149
+ return { error: messages.validation.validRangeInvalid };
150
+ }
151
+ const scope = buildPromotionScope(state);
152
+ const scopeResult = promotionalOfferScopeSchema.safeParse(scope);
153
+ if (!scopeResult.success) {
154
+ return {
155
+ error: formatMessage(messages.validation.scopeIdsRequired, {
156
+ scope: scopeLabel,
157
+ }),
158
+ };
159
+ }
160
+ const payload = {
161
+ name,
162
+ slug,
163
+ description: state.description.trim() || null,
164
+ discountType: state.discountType,
165
+ discountPercent,
166
+ discountAmountCents: state.discountType === "fixed_amount" ? state.discountAmountCents : null,
167
+ currency: state.discountType === "fixed_amount" ? state.currency.trim().toUpperCase() : null,
168
+ scope,
169
+ conditions: minPax ? { minPax: Number(minPax) } : {},
170
+ validFrom: validFrom ? validFrom.toISOString() : null,
171
+ validUntil: validUntil ? validUntil.toISOString() : null,
172
+ code: code || null,
173
+ stackable: state.stackable,
174
+ active: state.active,
175
+ };
176
+ return payload;
177
+ }
178
+ function parseOptionalDate(value) {
179
+ if (!value)
180
+ return null;
181
+ const parsed = new Date(value);
182
+ return Number.isNaN(parsed.getTime()) ? "invalid" : parsed;
183
+ }
184
+ //# sourceMappingURL=promotion-dialog-model.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"promotion-dialog-model.js","sourceRoot":"","sources":["../../src/promotions/promotion-dialog-model.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"promotion-dialog.d.ts","sourceRoot":"","sources":["../../src/promotions/promotion-dialog.tsx"],"names":[],"mappings":"AAuCA,OAAO,EACL,KAAK,sBAAsB,EAO5B,MAAM,YAAY,CAAA;AAEnB,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,OAAO,CAAA;IACb,YAAY,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAA;IACrC,oDAAoD;IACpD,KAAK,CAAC,EAAE,sBAAsB,CAAA;CAC/B;AAsLD,wBAAgB,eAAe,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,EAAE,oBAAoB,+BA2SlF"}
1
+ {"version":3,"file":"promotion-dialog.d.ts","sourceRoot":"","sources":["../../src/promotions/promotion-dialog.tsx"],"names":[],"mappings":"AAyCA,OAAO,EACL,KAAK,sBAAsB,EAI5B,MAAM,YAAY,CAAA;AAanB,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,OAAO,CAAA;IACb,YAAY,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAA;IACrC,oDAAoD;IACpD,KAAK,CAAC,EAAE,sBAAsB,CAAA;CAC/B;AAED,wBAAgB,eAAe,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,EAAE,oBAAoB,+BA6TlF"}
@@ -4,172 +4,26 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
4
4
  /**
5
5
  * Create / edit dialog for a promotional offer.
6
6
  *
7
- * The discriminated-union scope picker is the trickiest piece here:
8
- * a `kind` dropdown plus per-kind sub-fields rendered conditionally.
9
- * Comma-separated text input for ID lists (productIds, marketIds, etc.)
10
- * keeps the v1 UX simple — a future PR can swap in proper combobox-with-
11
- * search components per scope kind.
7
+ * The discriminated-union scope picker renders first-class product/category
8
+ * pickers where the inventory package can resolve records, and falls back to
9
+ * validated reference entry for the remaining scope kinds.
12
10
  */
13
11
  import { formatMessage } from "@voyant-travel/i18n";
14
- import { Button, Dialog, DialogBody, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, Input, Label, Select, SelectContent, SelectItem, SelectTrigger, SelectValue, Switch, Textarea, } from "@voyant-travel/ui/components";
12
+ import { useProduct, useProductCategory } from "@voyant-travel/inventory-react";
13
+ import { ProductCategoryCombobox, ProductCombobox } from "@voyant-travel/inventory-react/ui";
14
+ import { Badge, Button, Dialog, DialogBody, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, Input, Label, Select, SelectContent, SelectItem, SelectTrigger, SelectValue, Switch, Textarea, } from "@voyant-travel/ui/components";
15
15
  import { CurrencyCombobox } from "@voyant-travel/ui/components/currency-combobox";
16
16
  import { CurrencyInput } from "@voyant-travel/ui/components/currency-input";
17
17
  import { DateTimePicker } from "@voyant-travel/ui/components/date-time-picker";
18
+ import { X } from "lucide-react";
18
19
  import { useEffect, useState } from "react";
19
20
  import { usePromotionsUiMessagesOrDefault } from "./i18n/provider.js";
20
- import { promotionalOfferScopeSchema, useCreatePromotion, useUpdatePromotion, } from "./index.js";
21
- const SCOPE_KINDS = [
22
- "global",
23
- "products",
24
- "categories",
25
- "destinations",
26
- "markets",
27
- "audiences",
28
- "fare_codes",
29
- "cabin_grades",
30
- ];
31
- const AUDIENCE_OPTIONS = [
32
- "staff",
33
- "customer",
34
- "partner",
35
- "supplier",
36
- ];
37
- function emptyForm() {
38
- return {
39
- name: "",
40
- slug: "",
41
- description: "",
42
- discountType: "percentage",
43
- discountPercent: "",
44
- discountAmountCents: null,
45
- currency: "USD",
46
- scopeKind: "global",
47
- scopeIds: "",
48
- scopeAudiences: ["customer"],
49
- minPax: "",
50
- validFrom: "",
51
- validUntil: "",
52
- code: "",
53
- stackable: false,
54
- active: true,
55
- };
56
- }
57
- function offerToForm(offer) {
58
- const base = emptyForm();
59
- base.name = offer.name;
60
- base.slug = offer.slug;
61
- base.description = offer.description ?? "";
62
- base.discountType = offer.discountType;
63
- base.discountPercent = offer.discountPercent ?? "";
64
- base.discountAmountCents = offer.discountAmountCents ?? null;
65
- base.currency = offer.currency ?? "USD";
66
- base.scopeKind = offer.scope.kind;
67
- base.scopeIds = scopeIdsToString(offer.scope);
68
- base.scopeAudiences = offer.scope.kind === "audiences" ? [...offer.scope.audiences] : ["customer"];
69
- base.minPax = offer.conditions.minPax != null ? String(offer.conditions.minPax) : "";
70
- base.validFrom = offer.validFrom ? toDateTimePickerValue(offer.validFrom) : "";
71
- base.validUntil = offer.validUntil ? toDateTimePickerValue(offer.validUntil) : "";
72
- base.code = offer.code ?? "";
73
- base.stackable = offer.stackable;
74
- base.active = offer.active;
75
- return base;
76
- }
77
- function scopeIdsToString(scope) {
78
- switch (scope.kind) {
79
- case "products":
80
- return scope.productIds.join(", ");
81
- case "categories":
82
- return scope.categoryIds.join(", ");
83
- case "destinations":
84
- return scope.destinationIds.join(", ");
85
- case "markets":
86
- return scope.marketIds.join(", ");
87
- case "fare_codes":
88
- return scope.fareCodes.join(", ");
89
- case "cabin_grades":
90
- return scope.cabinGradeCodes.join(", ");
91
- default:
92
- return "";
93
- }
94
- }
95
- function toDateTimePickerValue(iso) {
96
- // DateTimePicker values use `YYYY-MM-DDTHH:mm` with no timezone.
97
- return iso.slice(0, 16);
98
- }
99
- function buildScope(state) {
100
- switch (state.scopeKind) {
101
- case "global":
102
- return { kind: "global" };
103
- case "products":
104
- return { kind: "products", productIds: parseIds(state.scopeIds) };
105
- case "categories":
106
- return { kind: "categories", categoryIds: parseIds(state.scopeIds) };
107
- case "destinations":
108
- return { kind: "destinations", destinationIds: parseIds(state.scopeIds) };
109
- case "markets":
110
- return { kind: "markets", marketIds: parseIds(state.scopeIds) };
111
- case "audiences":
112
- return { kind: "audiences", audiences: state.scopeAudiences };
113
- case "fare_codes":
114
- return { kind: "fare_codes", fareCodes: parseIds(state.scopeIds) };
115
- case "cabin_grades":
116
- return { kind: "cabin_grades", cabinGradeCodes: parseIds(state.scopeIds) };
117
- }
118
- }
119
- function parseIds(raw) {
120
- return raw
121
- .split(/[,\s]+/)
122
- .map((s) => s.trim())
123
- .filter((s) => s.length > 0);
124
- }
125
- function buildPayload(state, messages) {
126
- if (!state.name.trim())
127
- return { error: messages.validation.nameRequired };
128
- if (!state.slug.trim())
129
- return { error: messages.validation.slugRequired };
130
- if (state.discountType === "percentage" && !state.discountPercent) {
131
- return { error: messages.validation.discountPercentRequired };
132
- }
133
- if (state.discountType === "fixed_amount") {
134
- if (state.discountAmountCents == null || state.discountAmountCents <= 0) {
135
- return { error: messages.validation.discountAmountRequired };
136
- }
137
- if (!state.currency.trim())
138
- return { error: messages.validation.currencyRequired };
139
- }
140
- // Validate scope shape via Zod so the user gets clear errors when (e.g.)
141
- // a products scope has an empty ID list.
142
- const scope = buildScope(state);
143
- const scopeResult = promotionalOfferScopeSchema.safeParse(scope);
144
- if (!scopeResult.success) {
145
- return {
146
- error: formatMessage(messages.validation.scopeInvalidPrefix, {
147
- message: scopeResult.error.issues[0]?.message ?? messages.validation.scopeInvalid,
148
- }),
149
- };
150
- }
151
- const payload = {
152
- name: state.name.trim(),
153
- slug: state.slug.trim(),
154
- description: state.description.trim() || null,
155
- discountType: state.discountType,
156
- discountPercent: state.discountType === "percentage" ? Number(state.discountPercent) : null,
157
- discountAmountCents: state.discountType === "fixed_amount" ? state.discountAmountCents : null,
158
- currency: state.discountType === "fixed_amount" ? state.currency.trim().toUpperCase() : null,
159
- scope,
160
- conditions: state.minPax ? { minPax: Number(state.minPax) } : {},
161
- validFrom: state.validFrom ? new Date(state.validFrom).toISOString() : null,
162
- validUntil: state.validUntil ? new Date(state.validUntil).toISOString() : null,
163
- code: state.code.trim() || null,
164
- stackable: state.stackable,
165
- active: state.active,
166
- };
167
- return payload;
168
- }
21
+ import { useCreatePromotion, useUpdatePromotion, } from "./index.js";
22
+ import { AUDIENCE_OPTIONS, buildPromotionPayload, emptyPromotionForm, offerToPromotionForm, parseScopeIds, SCOPE_KINDS, scopeIdsToFormValue, } from "./promotion-dialog-model.js";
169
23
  export function PromotionDialog({ open, onOpenChange, offer }) {
170
24
  const messages = usePromotionsUiMessagesOrDefault();
171
25
  const dialogMessages = messages.promotionDialog;
172
- const [state, setState] = useState(emptyForm());
26
+ const [state, setState] = useState(emptyPromotionForm());
173
27
  const [error, setError] = useState(null);
174
28
  const createMutation = useCreatePromotion();
175
29
  const updateMutation = useUpdatePromotion();
@@ -180,14 +34,14 @@ export function PromotionDialog({ open, onOpenChange, offer }) {
180
34
  if (!open)
181
35
  return;
182
36
  setError(null);
183
- setState(offer ? offerToForm(offer) : emptyForm());
37
+ setState(offer ? offerToPromotionForm(offer) : emptyPromotionForm());
184
38
  }, [open, offer]);
185
39
  function setField(key, value) {
186
40
  setState((prev) => ({ ...prev, [key]: value }));
187
41
  }
188
42
  async function handleSave() {
189
43
  setError(null);
190
- const result = buildPayload(state, dialogMessages);
44
+ const result = buildPromotionPayload(state, dialogMessages, scopeIdsLabel(state.scopeKind, messages.common.scopeKindLabels));
191
45
  if ("error" in result) {
192
46
  setError(result.error);
193
47
  return;
@@ -212,9 +66,7 @@ export function PromotionDialog({ open, onOpenChange, offer }) {
212
66
  if (v != null && SCOPE_KINDS.includes(v)) {
213
67
  setField("scopeKind", v);
214
68
  }
215
- }, children: [_jsx(SelectTrigger, { children: _jsx(SelectValue, {}) }), _jsx(SelectContent, { children: SCOPE_KINDS.map((kind) => (_jsx(SelectItem, { value: kind, children: messages.common.scopeKindLabels[kind] }, kind))) })] }), state.scopeKind === "global" ? (_jsx("p", { className: "text-sm text-muted-foreground", children: dialogMessages.hints.globalScope })) : null, (state.scopeKind === "products" ||
216
- state.scopeKind === "categories" ||
217
- state.scopeKind === "destinations" ||
69
+ }, children: [_jsx(SelectTrigger, { children: _jsx(SelectValue, {}) }), _jsx(SelectContent, { children: SCOPE_KINDS.map((kind) => (_jsx(SelectItem, { value: kind, children: messages.common.scopeKindLabels[kind] }, kind))) })] }), state.scopeKind === "global" ? (_jsx("p", { className: "text-sm text-muted-foreground", children: dialogMessages.hints.globalScope })) : null, state.scopeKind === "products" ? (_jsx(ProductScopePicker, { ids: parseScopeIds(state.scopeIds), onIdsChange: (ids) => setField("scopeIds", scopeIdsToFormValue(ids)), messages: dialogMessages })) : null, state.scopeKind === "categories" ? (_jsx(CategoryScopePicker, { ids: parseScopeIds(state.scopeIds), onIdsChange: (ids) => setField("scopeIds", scopeIdsToFormValue(ids)), messages: dialogMessages })) : null, (state.scopeKind === "destinations" ||
218
70
  state.scopeKind === "markets" ||
219
71
  state.scopeKind === "fare_codes" ||
220
72
  state.scopeKind === "cabin_grades") && (_jsxs("div", { className: "grid gap-1.5", children: [_jsx(Label, { htmlFor: "promotion-scope-ids", children: formatMessage(dialogMessages.fields.scopeIds, {
@@ -252,4 +104,30 @@ function scopeIdsPlaceholder(kind, placeholders) {
252
104
  return placeholders.cabinGradeCodes;
253
105
  }
254
106
  }
107
+ function ProductScopePicker({ ids, onIdsChange, messages, }) {
108
+ return (_jsxs("div", { className: "grid gap-2", children: [_jsx(Label, { children: messages.fields.products }), _jsx(ProductCombobox, { value: null, onChange: (id) => {
109
+ if (id && !ids.includes(id))
110
+ onIdsChange([...ids, id]);
111
+ }, placeholder: messages.placeholders.productPicker }), _jsx(SelectedScopeBadges, { ids: ids, renderLabel: (id) => _jsx(SelectedProductLabel, { id: id }), onRemove: (id) => onIdsChange(ids.filter((candidate) => candidate !== id)), emptyText: messages.hints.noProductsSelected, removeLabel: messages.actions.removeScopeId })] }));
112
+ }
113
+ function CategoryScopePicker({ ids, onIdsChange, messages, }) {
114
+ return (_jsxs("div", { className: "grid gap-2", children: [_jsx(Label, { children: messages.fields.categories }), _jsx(ProductCategoryCombobox, { value: null, onChange: (id) => {
115
+ if (id && !ids.includes(id))
116
+ onIdsChange([...ids, id]);
117
+ }, placeholder: messages.placeholders.categoryPicker }), _jsx(SelectedScopeBadges, { ids: ids, renderLabel: (id) => _jsx(SelectedCategoryLabel, { id: id }), onRemove: (id) => onIdsChange(ids.filter((candidate) => candidate !== id)), emptyText: messages.hints.noCategoriesSelected, removeLabel: messages.actions.removeScopeId })] }));
118
+ }
119
+ function SelectedScopeBadges({ ids, renderLabel, onRemove, emptyText, removeLabel, }) {
120
+ if (ids.length === 0) {
121
+ return _jsx("p", { className: "text-sm text-muted-foreground", children: emptyText });
122
+ }
123
+ return (_jsx("div", { className: "flex flex-wrap gap-2", children: ids.map((id) => (_jsxs(Badge, { variant: "secondary", className: "gap-1 pr-1", children: [_jsx("span", { className: "max-w-56 truncate", children: renderLabel(id) }), _jsx(Button, { type: "button", variant: "ghost", size: "icon", className: "size-5 rounded-full", onClick: () => onRemove(id), "aria-label": formatMessage(removeLabel, { id }), children: _jsx(X, { className: "size-3", "aria-hidden": "true" }) })] }, id))) }));
124
+ }
125
+ function SelectedProductLabel({ id }) {
126
+ const query = useProduct(id, { enabled: Boolean(id) });
127
+ return _jsx(_Fragment, { children: query.data?.name ?? id });
128
+ }
129
+ function SelectedCategoryLabel({ id }) {
130
+ const query = useProductCategory(id, { enabled: Boolean(id) });
131
+ return _jsx(_Fragment, { children: query.data?.name ?? id });
132
+ }
255
133
  //# sourceMappingURL=promotion-dialog.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"promotion-dialog.js","sourceRoot":"","sources":["../../src/promotions/promotion-dialog.tsx"],"names":[],"mappings":"AAAA,4JAA4J;AAC5J,YAAY,CAAA;;AAEZ;;;;;;;;GAQG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACnD,OAAO,EACL,MAAM,EACN,MAAM,EACN,UAAU,EACV,aAAa,EACb,iBAAiB,EACjB,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,KAAK,EACL,KAAK,EACL,MAAM,EACN,aAAa,EACb,UAAU,EACV,aAAa,EACb,WAAW,EACX,MAAM,EACN,QAAQ,GACT,MAAM,8BAA8B,CAAA;AACrC,OAAO,EAAE,gBAAgB,EAAE,MAAM,gDAAgD,CAAA;AACjF,OAAO,EAAE,aAAa,EAAE,MAAM,6CAA6C,CAAA;AAC3E,OAAO,EAAE,cAAc,EAAE,MAAM,+CAA+C,CAAA;AAC9E,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAE3C,OAAO,EAAE,gCAAgC,EAAE,MAAM,oBAAoB,CAAA;AACrE,OAAO,EAKL,2BAA2B,EAC3B,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,YAAY,CAAA;AAWnB,MAAM,WAAW,GAAgB;IAC/B,QAAQ;IACR,UAAU;IACV,YAAY;IACZ,cAAc;IACd,SAAS;IACT,WAAW;IACX,YAAY;IACZ,cAAc;CACf,CAAA;AAED,MAAM,gBAAgB,GAAyD;IAC7E,OAAO;IACP,UAAU;IACV,SAAS;IACT,UAAU;CACX,CAAA;AAqBD,SAAS,SAAS;IAChB,OAAO;QACL,IAAI,EAAE,EAAE;QACR,IAAI,EAAE,EAAE;QACR,WAAW,EAAE,EAAE;QACf,YAAY,EAAE,YAAY;QAC1B,eAAe,EAAE,EAAE;QACnB,mBAAmB,EAAE,IAAI;QACzB,QAAQ,EAAE,KAAK;QACf,SAAS,EAAE,QAAQ;QACnB,QAAQ,EAAE,EAAE;QACZ,cAAc,EAAE,CAAC,UAAU,CAAC;QAC5B,MAAM,EAAE,EAAE;QACV,SAAS,EAAE,EAAE;QACb,UAAU,EAAE,EAAE;QACd,IAAI,EAAE,EAAE;QACR,SAAS,EAAE,KAAK;QAChB,MAAM,EAAE,IAAI;KACb,CAAA;AACH,CAAC;AAED,SAAS,WAAW,CAAC,KAA6B;IAChD,MAAM,IAAI,GAAG,SAAS,EAAE,CAAA;IACxB,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAA;IACtB,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAA;IACtB,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW,IAAI,EAAE,CAAA;IAC1C,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,YAAY,CAAA;IACtC,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC,eAAe,IAAI,EAAE,CAAA;IAClD,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC,mBAAmB,IAAI,IAAI,CAAA;IAC5D,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAA;IACvC,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAA;IACjC,IAAI,CAAC,QAAQ,GAAG,gBAAgB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;IAC7C,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAA;IAClG,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,UAAU,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;IACpF,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,qBAAqB,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;IAC9E,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,qBAAqB,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;IACjF,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,IAAI,EAAE,CAAA;IAC5B,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,CAAA;IAChC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAA;IAC1B,OAAO,IAAI,CAAA;AACb,CAAC;AAED,SAAS,gBAAgB,CAAC,KAA4B;IACpD,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;QACnB,KAAK,UAAU;YACb,OAAO,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACpC,KAAK,YAAY;YACf,OAAO,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACrC,KAAK,cAAc;YACjB,OAAO,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACxC,KAAK,SAAS;YACZ,OAAO,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACnC,KAAK,YAAY;YACf,OAAO,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACnC,KAAK,cAAc;YACjB,OAAO,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACzC;YACE,OAAO,EAAE,CAAA;IACb,CAAC;AACH,CAAC;AAED,SAAS,qBAAqB,CAAC,GAAW;IACxC,iEAAiE;IACjE,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;AACzB,CAAC;AAED,SAAS,UAAU,CAAC,KAAgB;IAClC,QAAQ,KAAK,CAAC,SAAS,EAAE,CAAC;QACxB,KAAK,QAAQ;YACX,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAA;QAC3B,KAAK,UAAU;YACb,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAA;QACnE,KAAK,YAAY;YACf,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,WAAW,EAAE,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAA;QACtE,KAAK,cAAc;YACjB,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,cAAc,EAAE,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAA;QAC3E,KAAK,SAAS;YACZ,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAA;QACjE,KAAK,WAAW;YACd,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,KAAK,CAAC,cAAc,EAAE,CAAA;QAC/D,KAAK,YAAY;YACf,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS,EAAE,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAA;QACpE,KAAK,cAAc;YACjB,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,eAAe,EAAE,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAA;IAC9E,CAAC;AACH,CAAC;AAED,SAAS,QAAQ,CAAC,GAAW;IAC3B,OAAO,GAAG;SACP,KAAK,CAAC,QAAQ,CAAC;SACf,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;SACpB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;AAChC,CAAC;AAED,SAAS,YAAY,CACnB,KAAgB,EAChB,QAAiD;IAEjD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE;QAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC,UAAU,CAAC,YAAY,EAAE,CAAA;IAC1E,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE;QAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC,UAAU,CAAC,YAAY,EAAE,CAAA;IAC1E,IAAI,KAAK,CAAC,YAAY,KAAK,YAAY,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE,CAAC;QAClE,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC,UAAU,CAAC,uBAAuB,EAAE,CAAA;IAC/D,CAAC;IACD,IAAI,KAAK,CAAC,YAAY,KAAK,cAAc,EAAE,CAAC;QAC1C,IAAI,KAAK,CAAC,mBAAmB,IAAI,IAAI,IAAI,KAAK,CAAC,mBAAmB,IAAI,CAAC,EAAE,CAAC;YACxE,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC,UAAU,CAAC,sBAAsB,EAAE,CAAA;QAC9D,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE;YAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC,UAAU,CAAC,gBAAgB,EAAE,CAAA;IACpF,CAAC;IAED,yEAAyE;IACzE,yCAAyC;IACzC,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,CAAA;IAC/B,MAAM,WAAW,GAAG,2BAA2B,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;IAChE,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;QACzB,OAAO;YACL,KAAK,EAAE,aAAa,CAAC,QAAQ,CAAC,UAAU,CAAC,kBAAkB,EAAE;gBAC3D,OAAO,EAAE,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,OAAO,IAAI,QAAQ,CAAC,UAAU,CAAC,YAAY;aAClF,CAAC;SACH,CAAA;IACH,CAAC;IAED,MAAM,OAAO,GAAyB;QACpC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE;QACvB,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE;QACvB,WAAW,EAAE,KAAK,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,IAAI;QAC7C,YAAY,EAAE,KAAK,CAAC,YAAY;QAChC,eAAe,EAAE,KAAK,CAAC,YAAY,KAAK,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,IAAI;QAC3F,mBAAmB,EAAE,KAAK,CAAC,YAAY,KAAK,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC,IAAI;QAC7F,QAAQ,EAAE,KAAK,CAAC,YAAY,KAAK,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,IAAI;QAC5F,KAAK;QACL,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;QAChE,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,IAAI;QAC3E,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,IAAI;QAC9E,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,IAAI;QAC/B,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,MAAM,EAAE,KAAK,CAAC,MAAM;KACrB,CAAA;IACD,OAAO,OAAO,CAAA;AAChB,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAwB;IACjF,MAAM,QAAQ,GAAG,gCAAgC,EAAE,CAAA;IACnD,MAAM,cAAc,GAAG,QAAQ,CAAC,eAAe,CAAA;IAC/C,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAY,SAAS,EAAE,CAAC,CAAA;IAC1D,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAA;IACvD,MAAM,cAAc,GAAG,kBAAkB,EAAE,CAAA;IAC3C,MAAM,cAAc,GAAG,kBAAkB,EAAE,CAAA;IAC3C,MAAM,MAAM,GAAG,KAAK,IAAI,IAAI,CAAA;IAC5B,MAAM,SAAS,GAAG,cAAc,CAAC,SAAS,IAAI,cAAc,CAAC,SAAS,CAAA;IAEtE,iEAAiE;IACjE,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,IAAI;YAAE,OAAM;QACjB,QAAQ,CAAC,IAAI,CAAC,CAAA;QACd,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAA;IACpD,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAA;IAEjB,SAAS,QAAQ,CAA4B,GAAM,EAAE,KAAmB;QACtE,QAAQ,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAA;IACjD,CAAC;IAED,KAAK,UAAU,UAAU;QACvB,QAAQ,CAAC,IAAI,CAAC,CAAA;QACd,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,EAAE,cAAc,CAAC,CAAA;QAClD,IAAI,OAAO,IAAI,MAAM,EAAE,CAAC;YACtB,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;YACtB,OAAM;QACR,CAAC;QACD,IAAI,CAAC;YACH,IAAI,MAAM,IAAI,KAAK,EAAE,CAAC;gBACpB,MAAM,cAAc,CAAC,WAAW,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAA;YACnE,CAAC;iBAAM,CAAC;gBACN,MAAM,cAAc,CAAC,WAAW,CAAC,MAAM,CAAC,CAAA;YAC1C,CAAC;YACD,YAAY,CAAC,KAAK,CAAC,CAAA;QACrB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,QAAQ,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAA;QAC5D,CAAC;IACH,CAAC;IAED,OAAO,CACL,KAAC,MAAM,IAAC,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE,YAAY,YAC5C,MAAC,aAAa,IAAC,SAAS,EAAC,WAAW,aAClC,MAAC,YAAY,eACX,KAAC,WAAW,cACT,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,GACvD,EACd,KAAC,iBAAiB,cAAE,cAAc,CAAC,WAAW,GAAqB,IACtD,EAEf,MAAC,UAAU,IAAC,SAAS,EAAC,iBAAiB,aACrC,eAAK,SAAS,EAAC,wBAAwB,aACrC,eAAK,SAAS,EAAC,cAAc,aAC3B,KAAC,KAAK,IAAC,OAAO,EAAC,gBAAgB,YAAE,cAAc,CAAC,MAAM,CAAC,IAAI,GAAS,EACpE,KAAC,KAAK,IACJ,EAAE,EAAC,gBAAgB,EACnB,KAAK,EAAE,KAAK,CAAC,IAAI,EACjB,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EACjD,WAAW,EAAE,cAAc,CAAC,YAAY,CAAC,IAAI,GAC7C,IACE,EACN,eAAK,SAAS,EAAC,cAAc,aAC3B,KAAC,KAAK,IAAC,OAAO,EAAC,gBAAgB,YAAE,cAAc,CAAC,MAAM,CAAC,IAAI,GAAS,EACpE,KAAC,KAAK,IACJ,EAAE,EAAC,gBAAgB,EACnB,KAAK,EAAE,KAAK,CAAC,IAAI,EACjB,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EACjD,WAAW,EAAE,cAAc,CAAC,YAAY,CAAC,IAAI,GAC7C,IACE,IACF,EAEN,eAAK,SAAS,EAAC,cAAc,aAC3B,KAAC,KAAK,IAAC,OAAO,EAAC,uBAAuB,YAAE,cAAc,CAAC,MAAM,CAAC,WAAW,GAAS,EAClF,KAAC,QAAQ,IACP,EAAE,EAAC,uBAAuB,EAC1B,KAAK,EAAE,KAAK,CAAC,WAAW,EACxB,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EACxD,IAAI,EAAE,CAAC,EACP,WAAW,EAAE,cAAc,CAAC,YAAY,CAAC,WAAW,GACpD,IACE,EAGN,eAAK,SAAS,EAAC,wBAAwB,aACrC,eAAK,SAAS,EAAC,cAAc,aAC3B,KAAC,KAAK,cAAE,cAAc,CAAC,MAAM,CAAC,IAAI,GAAS,EAC3C,MAAC,MAAM,IACL,KAAK,EAAE,KAAK,CAAC,YAAY,EACzB,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE;gDACnB,IAAI,CAAC,KAAK,YAAY,IAAI,CAAC,KAAK,cAAc;oDAAE,QAAQ,CAAC,cAAc,EAAE,CAAC,CAAC,CAAA;4CAC7E,CAAC,aAED,KAAC,aAAa,cACZ,KAAC,WAAW,KAAG,GACD,EAChB,MAAC,aAAa,eACZ,KAAC,UAAU,IAAC,KAAK,EAAC,YAAY,YAC3B,QAAQ,CAAC,MAAM,CAAC,kBAAkB,CAAC,UAAU,GACnC,EACb,KAAC,UAAU,IAAC,KAAK,EAAC,cAAc,YAC7B,QAAQ,CAAC,MAAM,CAAC,kBAAkB,CAAC,YAAY,GACrC,IACC,IACT,IACL,EACL,KAAK,CAAC,YAAY,KAAK,YAAY,CAAC,CAAC,CAAC,CACrC,eAAK,SAAS,EAAC,cAAc,aAC3B,KAAC,KAAK,IAAC,OAAO,EAAC,mBAAmB,YAAE,cAAc,CAAC,MAAM,CAAC,OAAO,GAAS,EAC1E,KAAC,KAAK,IACJ,EAAE,EAAC,mBAAmB,EACtB,IAAI,EAAC,QAAQ,EACb,IAAI,EAAC,MAAM,EACX,GAAG,EAAC,GAAG,EACP,GAAG,EAAC,KAAK,EACT,KAAK,EAAE,KAAK,CAAC,eAAe,EAC5B,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,iBAAiB,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAC5D,WAAW,EAAE,cAAc,CAAC,YAAY,CAAC,OAAO,GAChD,IACE,CACP,CAAC,CAAC,CAAC,CACF,8BACE,eAAK,SAAS,EAAC,cAAc,aAC3B,KAAC,KAAK,IAAC,OAAO,EAAC,kBAAkB,YAAE,cAAc,CAAC,MAAM,CAAC,MAAM,GAAS,EACxE,KAAC,aAAa,IACZ,EAAE,EAAC,kBAAkB,EACrB,KAAK,EAAE,KAAK,CAAC,mBAAmB,EAChC,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,QAAQ,CAAC,qBAAqB,EAAE,KAAK,CAAC,EAC3D,QAAQ,EAAE,KAAK,CAAC,QAAQ,EACxB,WAAW,EAAE,cAAc,CAAC,YAAY,CAAC,MAAM,GAC/C,IACE,EACN,eAAK,SAAS,EAAC,cAAc,aAC3B,KAAC,KAAK,IAAC,OAAO,EAAC,oBAAoB,YAAE,cAAc,CAAC,MAAM,CAAC,QAAQ,GAAS,EAC5E,KAAC,gBAAgB,IACf,KAAK,EAAE,KAAK,CAAC,QAAQ,IAAI,IAAI,EAC7B,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,EACpD,WAAW,EAAE,cAAc,CAAC,YAAY,CAAC,QAAQ,GACjD,IACE,IACL,CACJ,IACG,EAGN,eAAK,SAAS,EAAC,cAAc,aAC3B,KAAC,KAAK,cAAE,cAAc,CAAC,MAAM,CAAC,KAAK,GAAS,EAC5C,MAAC,MAAM,IACL,KAAK,EAAE,KAAK,CAAC,SAAS,EACtB,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE;wCACnB,IAAI,CAAC,IAAI,IAAI,IAAI,WAAW,CAAC,QAAQ,CAAC,CAAc,CAAC,EAAE,CAAC;4CACtD,QAAQ,CAAC,WAAW,EAAE,CAAc,CAAC,CAAA;wCACvC,CAAC;oCACH,CAAC,aAED,KAAC,aAAa,cACZ,KAAC,WAAW,KAAG,GACD,EAChB,KAAC,aAAa,cACX,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CACzB,KAAC,UAAU,IAAY,KAAK,EAAE,IAAI,YAC/B,QAAQ,CAAC,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,IADvB,IAAI,CAER,CACd,CAAC,GACY,IACT,EAER,KAAK,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,CAC9B,YAAG,SAAS,EAAC,+BAA+B,YAAE,cAAc,CAAC,KAAK,CAAC,WAAW,GAAK,CACpF,CAAC,CAAC,CAAC,IAAI,EAEP,CAAC,KAAK,CAAC,SAAS,KAAK,UAAU;oCAC9B,KAAK,CAAC,SAAS,KAAK,YAAY;oCAChC,KAAK,CAAC,SAAS,KAAK,cAAc;oCAClC,KAAK,CAAC,SAAS,KAAK,SAAS;oCAC7B,KAAK,CAAC,SAAS,KAAK,YAAY;oCAChC,KAAK,CAAC,SAAS,KAAK,cAAc,CAAC,IAAI,CACvC,eAAK,SAAS,EAAC,cAAc,aAC3B,KAAC,KAAK,IAAC,OAAO,EAAC,qBAAqB,YACjC,aAAa,CAAC,cAAc,CAAC,MAAM,CAAC,QAAQ,EAAE;gDAC7C,KAAK,EAAE,aAAa,CAAC,KAAK,CAAC,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,eAAe,CAAC;6CACvE,CAAC,GACI,EACR,KAAC,KAAK,IACJ,EAAE,EAAC,qBAAqB,EACxB,KAAK,EAAE,KAAK,CAAC,QAAQ,EACrB,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EACrD,WAAW,EAAE,mBAAmB,CAAC,KAAK,CAAC,SAAS,EAAE,cAAc,CAAC,YAAY,CAAC,GAC9E,IACE,CACP,EAEA,KAAK,CAAC,SAAS,KAAK,WAAW,IAAI,CAClC,eAAK,SAAS,EAAC,YAAY,aACzB,KAAC,KAAK,cAAE,cAAc,CAAC,MAAM,CAAC,SAAS,GAAS,EAChD,cAAK,SAAS,EAAC,sBAAsB,YAClC,gBAAgB,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE;gDACjC,MAAM,QAAQ,GAAG,KAAK,CAAC,cAAc,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;gDACxD,OAAO,CACL,iBAAsB,SAAS,EAAC,iCAAiC,aAC/D,gBACE,IAAI,EAAC,UAAU,EACf,OAAO,EAAE,QAAQ,EACjB,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE;gEACd,MAAM,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO;oEAC3B,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,cAAc,EAAE,QAAQ,CAAC;oEACrC,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAA;gEACtD,QAAQ,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAA;4DAClC,CAAC,GACD,EACD,QAAQ,CAAC,MAAM,CAAC,cAAc,CAAC,QAAQ,CAAC,KAX/B,QAAQ,CAYZ,CACT,CAAA;4CACH,CAAC,CAAC,GACE,IACF,CACP,IACG,EAGN,eAAK,SAAS,EAAC,wBAAwB,aACrC,eAAK,SAAS,EAAC,cAAc,aAC3B,KAAC,KAAK,IAAC,OAAO,EAAC,sBAAsB,YAAE,cAAc,CAAC,MAAM,CAAC,SAAS,GAAS,EAC/E,KAAC,cAAc,IACb,KAAK,EAAE,KAAK,CAAC,SAAS,EACtB,QAAQ,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,QAAQ,CAAC,WAAW,EAAE,SAAS,IAAI,EAAE,CAAC,GAC/D,IACE,EACN,eAAK,SAAS,EAAC,cAAc,aAC3B,KAAC,KAAK,IAAC,OAAO,EAAC,uBAAuB,YAAE,cAAc,CAAC,MAAM,CAAC,UAAU,GAAS,EACjF,KAAC,cAAc,IACb,KAAK,EAAE,KAAK,CAAC,UAAU,EACvB,QAAQ,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,QAAQ,CAAC,YAAY,EAAE,SAAS,IAAI,EAAE,CAAC,GAChE,IACE,IACF,EAGN,eAAK,SAAS,EAAC,wBAAwB,aACrC,eAAK,SAAS,EAAC,cAAc,aAC3B,KAAC,KAAK,IAAC,OAAO,EAAC,gBAAgB,YAAE,cAAc,CAAC,MAAM,CAAC,IAAI,GAAS,EACpE,KAAC,KAAK,IACJ,EAAE,EAAC,gBAAgB,EACnB,KAAK,EAAE,KAAK,CAAC,IAAI,EACjB,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EACjD,WAAW,EAAE,cAAc,CAAC,YAAY,CAAC,IAAI,GAC7C,IACE,EACN,eAAK,SAAS,EAAC,cAAc,aAC3B,KAAC,KAAK,IAAC,OAAO,EAAC,mBAAmB,YAAE,cAAc,CAAC,MAAM,CAAC,MAAM,GAAS,EACzE,KAAC,KAAK,IACJ,EAAE,EAAC,mBAAmB,EACtB,IAAI,EAAC,QAAQ,EACb,GAAG,EAAC,GAAG,EACP,IAAI,EAAC,GAAG,EACR,KAAK,EAAE,KAAK,CAAC,MAAM,EACnB,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EACnD,WAAW,EAAE,cAAc,CAAC,YAAY,CAAC,MAAM,GAC/C,IACE,IACF,EAEN,eAAK,SAAS,EAAC,mCAAmC,aAChD,eAAK,SAAS,EAAC,yBAAyB,aACtC,KAAC,MAAM,IACL,EAAE,EAAC,qBAAqB,EACxB,OAAO,EAAE,KAAK,CAAC,SAAS,EACxB,eAAe,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,GACzD,EACF,KAAC,KAAK,IAAC,OAAO,EAAC,qBAAqB,YAAE,cAAc,CAAC,MAAM,CAAC,SAAS,GAAS,IAC1E,EACN,eAAK,SAAS,EAAC,yBAAyB,aACtC,KAAC,MAAM,IACL,EAAE,EAAC,kBAAkB,EACrB,OAAO,EAAE,KAAK,CAAC,MAAM,EACrB,eAAe,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,GACtD,EACF,KAAC,KAAK,IAAC,OAAO,EAAC,kBAAkB,YAAE,cAAc,CAAC,MAAM,CAAC,MAAM,GAAS,IACpE,IACF,EAEL,KAAK,CAAC,CAAC,CAAC,YAAG,SAAS,EAAC,0BAA0B,YAAE,KAAK,GAAK,CAAC,CAAC,CAAC,IAAI,IACxD,EAEb,MAAC,YAAY,eACX,KAAC,MAAM,IAAC,OAAO,EAAC,SAAS,EAAC,OAAO,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,QAAQ,EAAE,SAAS,YAC9E,QAAQ,CAAC,MAAM,CAAC,MAAM,GAChB,EACT,KAAC,MAAM,IAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,YAC7C,SAAS;gCACR,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM;gCACxB,CAAC,CAAC,MAAM;oCACN,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW;oCAC7B,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,GACrB,IACI,IACD,GACT,CACV,CAAA;AACH,CAAC;AAED,SAAS,aAAa,CACpB,IAA4F,EAC5F,MAAiD;IAEjD,OAAO,MAAM,CAAC,IAAI,CAAC,CAAA;AACrB,CAAC;AAED,SAAS,mBAAmB,CAC1B,IAA4F,EAC5F,YAAqE;IAErE,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,UAAU;YACb,OAAO,YAAY,CAAC,UAAU,CAAA;QAChC,KAAK,YAAY;YACf,OAAO,YAAY,CAAC,WAAW,CAAA;QACjC,KAAK,cAAc;YACjB,OAAO,YAAY,CAAC,cAAc,CAAA;QACpC,KAAK,SAAS;YACZ,OAAO,YAAY,CAAC,SAAS,CAAA;QAC/B,KAAK,YAAY;YACf,OAAO,YAAY,CAAC,SAAS,CAAA;QAC/B,KAAK,cAAc;YACjB,OAAO,YAAY,CAAC,eAAe,CAAA;IACvC,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"promotion-dialog.js","sourceRoot":"","sources":["../../src/promotions/promotion-dialog.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import type { PromotionsUiMessages } from "./i18n/messages.js";
2
+ import { type PromotionalOfferRecord } from "./index.js";
3
+ export declare function PromotionRowActions({ offer, disabled, onEdit, onArchive, onActivate, onDelete, messages, }: {
4
+ offer: PromotionalOfferRecord;
5
+ disabled: boolean;
6
+ onEdit: (offer: PromotionalOfferRecord) => void;
7
+ onArchive: (offer: PromotionalOfferRecord) => void | Promise<void>;
8
+ onActivate: (offer: PromotionalOfferRecord) => void | Promise<void>;
9
+ onDelete: (offer: PromotionalOfferRecord) => void | Promise<void>;
10
+ messages: PromotionsUiMessages["promotionsPage"]["actions"];
11
+ }): import("react").JSX.Element;
12
+ export declare function formatPromotionActionError(error: unknown, action: string, messages: PromotionsUiMessages["promotionsPage"]): string;
13
+ //# sourceMappingURL=promotions-page-actions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"promotions-page-actions.d.ts","sourceRoot":"","sources":["../../src/promotions/promotions-page-actions.tsx"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAA;AAC9D,OAAO,EAAE,KAAK,sBAAsB,EAAsB,MAAM,YAAY,CAAA;AAG5E,wBAAgB,mBAAmB,CAAC,EAClC,KAAK,EACL,QAAQ,EACR,MAAM,EACN,SAAS,EACT,UAAU,EACV,QAAQ,EACR,QAAQ,GACT,EAAE;IACD,KAAK,EAAE,sBAAsB,CAAA;IAC7B,QAAQ,EAAE,OAAO,CAAA;IACjB,MAAM,EAAE,CAAC,KAAK,EAAE,sBAAsB,KAAK,IAAI,CAAA;IAC/C,SAAS,EAAE,CAAC,KAAK,EAAE,sBAAsB,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAClE,UAAU,EAAE,CAAC,KAAK,EAAE,sBAAsB,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACnE,QAAQ,EAAE,CAAC,KAAK,EAAE,sBAAsB,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACjE,QAAQ,EAAE,oBAAoB,CAAC,gBAAgB,CAAC,CAAC,SAAS,CAAC,CAAA;CAC5D,+BAwCA;AAED,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,OAAO,EACd,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,oBAAoB,CAAC,gBAAgB,CAAC,UAajD"}
@@ -0,0 +1,24 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { formatMessage } from "@voyant-travel/i18n";
4
+ import { Button, DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuSeparator, DropdownMenuTrigger, } from "@voyant-travel/ui/components";
5
+ import { Archive, MoreHorizontal, Pencil, RotateCcw, Trash2 } from "lucide-react";
6
+ import { PromotionsApiError } from "./index.js";
7
+ import { getOfferStatus } from "./promotions-page-utils.js";
8
+ export function PromotionRowActions({ offer, disabled, onEdit, onArchive, onActivate, onDelete, messages, }) {
9
+ const status = getOfferStatus(offer);
10
+ const isArchived = status === "archived";
11
+ return (_jsxs(DropdownMenu, { children: [_jsx(DropdownMenuTrigger, { asChild: true, children: _jsx(Button, { variant: "ghost", size: "icon", className: "size-8 text-muted-foreground", disabled: disabled, children: _jsx(MoreHorizontal, { className: "size-4", "aria-hidden": "true" }) }) }), _jsxs(DropdownMenuContent, { align: "end", children: [_jsxs(DropdownMenuItem, { onClick: () => onEdit(offer), children: [_jsx(Pencil, { className: "size-4", "aria-hidden": "true" }), messages.edit] }), isArchived ? (_jsxs(DropdownMenuItem, { onClick: () => void onActivate(offer), children: [_jsx(RotateCcw, { className: "size-4", "aria-hidden": "true" }), messages.activate] })) : (_jsxs(DropdownMenuItem, { onClick: () => void onArchive(offer), children: [_jsx(Archive, { className: "size-4", "aria-hidden": "true" }), messages.archive] })), _jsx(DropdownMenuSeparator, {}), _jsxs(DropdownMenuItem, { variant: "destructive", onClick: () => void onDelete(offer), children: [_jsx(Trash2, { className: "size-4", "aria-hidden": "true" }), messages.delete] })] })] }));
12
+ }
13
+ export function formatPromotionActionError(error, action, messages) {
14
+ if (action === messages.actions.delete &&
15
+ error instanceof PromotionsApiError &&
16
+ error.status === 409) {
17
+ return messages.actions.deleteConflict;
18
+ }
19
+ return formatMessage(messages.actions.actionFailedPrefix, {
20
+ action,
21
+ message: error instanceof Error ? error.message : String(error),
22
+ });
23
+ }
24
+ //# sourceMappingURL=promotions-page-actions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"promotions-page-actions.js","sourceRoot":"","sources":["../../src/promotions/promotions-page-actions.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACnD,OAAO,EACL,MAAM,EACN,YAAY,EACZ,mBAAmB,EACnB,gBAAgB,EAChB,qBAAqB,EACrB,mBAAmB,GACpB,MAAM,8BAA8B,CAAA;AACrC,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AAEjF,OAAO,EAA+B,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAC5E,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAA;AAE3D,MAAM,UAAU,mBAAmB,CAAC,EAClC,KAAK,EACL,QAAQ,EACR,MAAM,EACN,SAAS,EACT,UAAU,EACV,QAAQ,EACR,QAAQ,GAST;IACC,MAAM,MAAM,GAAG,cAAc,CAAC,KAAK,CAAC,CAAA;IACpC,MAAM,UAAU,GAAG,MAAM,KAAK,UAAU,CAAA;IAExC,OAAO,CACL,MAAC,YAAY,eACX,KAAC,mBAAmB,IAAC,OAAO,kBAC1B,KAAC,MAAM,IACL,OAAO,EAAC,OAAO,EACf,IAAI,EAAC,MAAM,EACX,SAAS,EAAC,8BAA8B,EACxC,QAAQ,EAAE,QAAQ,YAElB,KAAC,cAAc,IAAC,SAAS,EAAC,QAAQ,iBAAa,MAAM,GAAG,GACjD,GACW,EACtB,MAAC,mBAAmB,IAAC,KAAK,EAAC,KAAK,aAC9B,MAAC,gBAAgB,IAAC,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,aAC5C,KAAC,MAAM,IAAC,SAAS,EAAC,QAAQ,iBAAa,MAAM,GAAG,EAC/C,QAAQ,CAAC,IAAI,IACG,EAClB,UAAU,CAAC,CAAC,CAAC,CACZ,MAAC,gBAAgB,IAAC,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,UAAU,CAAC,KAAK,CAAC,aACrD,KAAC,SAAS,IAAC,SAAS,EAAC,QAAQ,iBAAa,MAAM,GAAG,EAClD,QAAQ,CAAC,QAAQ,IACD,CACpB,CAAC,CAAC,CAAC,CACF,MAAC,gBAAgB,IAAC,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,SAAS,CAAC,KAAK,CAAC,aACpD,KAAC,OAAO,IAAC,SAAS,EAAC,QAAQ,iBAAa,MAAM,GAAG,EAChD,QAAQ,CAAC,OAAO,IACA,CACpB,EACD,KAAC,qBAAqB,KAAG,EACzB,MAAC,gBAAgB,IAAC,OAAO,EAAC,aAAa,EAAC,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,QAAQ,CAAC,KAAK,CAAC,aACzE,KAAC,MAAM,IAAC,SAAS,EAAC,QAAQ,iBAAa,MAAM,GAAG,EAC/C,QAAQ,CAAC,MAAM,IACC,IACC,IACT,CAChB,CAAA;AACH,CAAC;AAED,MAAM,UAAU,0BAA0B,CACxC,KAAc,EACd,MAAc,EACd,QAAgD;IAEhD,IACE,MAAM,KAAK,QAAQ,CAAC,OAAO,CAAC,MAAM;QAClC,KAAK,YAAY,kBAAkB;QACnC,KAAK,CAAC,MAAM,KAAK,GAAG,EACpB,CAAC;QACD,OAAO,QAAQ,CAAC,OAAO,CAAC,cAAc,CAAA;IACxC,CAAC;IACD,OAAO,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC,kBAAkB,EAAE;QACxD,MAAM;QACN,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;KAChE,CAAC,CAAA;AACJ,CAAC"}
@@ -2,7 +2,7 @@ import type { PromotionsUiMessages } from "./i18n/messages.js";
2
2
  import type { PromotionalOfferApplicationMode, PromotionalOfferListStatus, PromotionalOfferRecord, PromotionalOfferScope, PromotionalOfferScopeKind } from "./index.js";
3
3
  export declare const DEFAULT_PAGE_SIZE = 25;
4
4
  export declare const ALL = "__all__";
5
- export declare const TABLE_COLUMN_COUNT = 7;
5
+ export declare const TABLE_COLUMN_COUNT = 8;
6
6
  export declare const scopeKinds: PromotionalOfferScopeKind[];
7
7
  export declare const applicationModes: PromotionalOfferApplicationMode[];
8
8
  export declare const statusFilters: PromotionalOfferListStatus[];
@@ -1,7 +1,7 @@
1
1
  import { formatMessage } from "@voyant-travel/i18n";
2
2
  export const DEFAULT_PAGE_SIZE = 25;
3
3
  export const ALL = "__all__";
4
- export const TABLE_COLUMN_COUNT = 7;
4
+ export const TABLE_COLUMN_COUNT = 8;
5
5
  export const scopeKinds = [
6
6
  "global",
7
7
  "products",
@@ -1 +1 @@
1
- {"version":3,"file":"promotions-page.d.ts","sourceRoot":"","sources":["../../src/promotions/promotions-page.tsx"],"names":[],"mappings":"AAEA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AA0BxD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAItC,OAAO,EAKL,KAAK,sBAAsB,EAE3B,KAAK,uBAAuB,EAC5B,KAAK,mBAAmB,EAEzB,MAAM,YAAY,CAAA;AAqBnB,MAAM,WAAW,0BAA0B;IACzC,IAAI,EAAE,OAAO,CAAA;IACb,YAAY,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAA;IACrC,KAAK,CAAC,EAAE,sBAAsB,CAAA;IAC9B,SAAS,EAAE,MAAM,IAAI,CAAA;CACtB;AAED,MAAM,WAAW,mBAAmB;IAClC,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,eAAe,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,sBAAsB,KAAK,IAAI,CAAA;IAClF,qBAAqB,CAAC,EAAE,CAAC,KAAK,EAAE,0BAA0B,KAAK,SAAS,CAAA;CACzE;AAED,wBAAgB,kBAAkB,CAChC,WAAW,EAAE,WAAW,EACxB,MAAM,CAAC,EAAE,OAAO,CAAC,uBAAuB,CAAC,EACzC,KAAK,GAAE,mBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAQhC;AAED,wBAAgB,cAAc,CAAC,EAC7B,SAAS,EACT,QAA4B,EAC5B,eAAe,EACf,qBAAqB,GACtB,GAAE,mBAAwB,+BAwV1B"}
1
+ {"version":3,"file":"promotions-page.d.ts","sourceRoot":"","sources":["../../src/promotions/promotions-page.tsx"],"names":[],"mappings":"AAEA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AA0BxD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAItC,OAAO,EAKL,KAAK,sBAAsB,EAE3B,KAAK,uBAAuB,EAC5B,KAAK,mBAAmB,EAKzB,MAAM,YAAY,CAAA;AAsBnB,MAAM,WAAW,0BAA0B;IACzC,IAAI,EAAE,OAAO,CAAA;IACb,YAAY,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAA;IACrC,KAAK,CAAC,EAAE,sBAAsB,CAAA;IAC9B,SAAS,EAAE,MAAM,IAAI,CAAA;CACtB;AAED,MAAM,WAAW,mBAAmB;IAClC,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,eAAe,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,sBAAsB,KAAK,IAAI,CAAA;IAClF,qBAAqB,CAAC,EAAE,CAAC,KAAK,EAAE,0BAA0B,KAAK,SAAS,CAAA;CACzE;AAED,wBAAgB,kBAAkB,CAChC,WAAW,EAAE,WAAW,EACxB,MAAM,CAAC,EAAE,OAAO,CAAC,uBAAuB,CAAC,EACzC,KAAK,GAAE,mBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAQhC;AAED,wBAAgB,cAAc,CAAC,EAC7B,SAAS,EACT,QAA4B,EAC5B,eAAe,EACf,qBAAqB,GACtB,GAAE,mBAAwB,+BA0Z1B"}
@@ -6,8 +6,9 @@ import { cn } from "@voyant-travel/ui/lib/utils";
6
6
  import { ListFilter, Plus, Search, X } from "lucide-react";
7
7
  import { useState } from "react";
8
8
  import { usePromotionsUiMessagesOrDefault } from "./i18n/provider.js";
9
- import { createPromotionsClientOptions, getPromotionsListQueryOptions, usePromotionsList, } from "./index.js";
9
+ import { createPromotionsClientOptions, getPromotionsListQueryOptions, useArchivePromotion, useDeletePromotion, usePromotionsList, useUpdatePromotion, } from "./index.js";
10
10
  import { PromotionDialog } from "./promotion-dialog.js";
11
+ import { formatPromotionActionError, PromotionRowActions } from "./promotions-page-actions.js";
11
12
  import { ALL, applicationModes, DEFAULT_PAGE_SIZE, getOfferStatus, scopeKinds, statusBadgeVariant, statusFilters, summarizeDiscount, summarizeScope, summarizeValidity, TABLE_COLUMN_COUNT, } from "./promotions-page-utils.js";
12
13
  export function loadPromotionsPage(queryClient, client, query = {}) {
13
14
  return queryClient.ensureQueryData(getPromotionsListQueryOptions({ limit: DEFAULT_PAGE_SIZE, offset: 0, ...query }, createPromotionsClientOptions(client)));
@@ -24,6 +25,10 @@ export function PromotionsPage({ className, pageSize = DEFAULT_PAGE_SIZE, onOpen
24
25
  const [dialogOpen, setDialogOpen] = useState(false);
25
26
  const [editingOffer, setEditingOffer] = useState();
26
27
  const [filtersOpen, setFiltersOpen] = useState(false);
28
+ const [actionError, setActionError] = useState(null);
29
+ const archiveMutation = useArchivePromotion();
30
+ const updateMutation = useUpdatePromotion();
31
+ const deleteMutation = useDeletePromotion();
27
32
  const query = {
28
33
  search: search || undefined,
29
34
  applicationMode: applicationMode === ALL ? undefined : applicationMode,
@@ -40,6 +45,7 @@ export function PromotionsPage({ className, pageSize = DEFAULT_PAGE_SIZE, onOpen
40
45
  const page = pageIndex + 1;
41
46
  const pageCount = Math.max(1, Math.ceil(total / pageSize));
42
47
  const showSkeleton = isPending || (isFetching && offers.length === 0);
48
+ const actionPending = archiveMutation.isPending || updateMutation.isPending || deleteMutation.isPending;
43
49
  const activeFilterCount = (applicationMode !== ALL ? 1 : 0) +
44
50
  (status !== ALL ? 1 : 0) +
45
51
  (scopeKind !== ALL ? 1 : 0) +
@@ -47,10 +53,12 @@ export function PromotionsPage({ className, pageSize = DEFAULT_PAGE_SIZE, onOpen
47
53
  const hasActiveFilters = activeFilterCount > 0 || search !== "";
48
54
  const resetPage = () => setPageIndex(0);
49
55
  function openCreate() {
56
+ setActionError(null);
50
57
  setEditingOffer(undefined);
51
58
  setDialogOpen(true);
52
59
  }
53
60
  function openEdit(offer) {
61
+ setActionError(null);
54
62
  setEditingOffer(offer);
55
63
  setDialogOpen(true);
56
64
  }
@@ -69,6 +77,31 @@ export function PromotionsPage({ className, pageSize = DEFAULT_PAGE_SIZE, onOpen
69
77
  setValidityRange(null);
70
78
  resetPage();
71
79
  }
80
+ async function runPromotionAction(action, callback) {
81
+ setActionError(null);
82
+ try {
83
+ await callback();
84
+ resetPage();
85
+ }
86
+ catch (err) {
87
+ setActionError(formatPromotionActionError(err, action, pageMessages));
88
+ }
89
+ }
90
+ async function archiveOffer(offer) {
91
+ if (!confirm(pageMessages.actions.archiveConfirm))
92
+ return;
93
+ await runPromotionAction(pageMessages.actions.archive, () => archiveMutation.mutateAsync(offer.id));
94
+ }
95
+ async function activateOffer(offer) {
96
+ if (!confirm(pageMessages.actions.activateConfirm))
97
+ return;
98
+ await runPromotionAction(pageMessages.actions.activate, () => updateMutation.mutateAsync({ id: offer.id, patch: { active: true } }));
99
+ }
100
+ async function deleteOffer(offer) {
101
+ if (!confirm(pageMessages.actions.deleteConfirm))
102
+ return;
103
+ await runPromotionAction(pageMessages.actions.delete, () => deleteMutation.mutateAsync(offer.id));
104
+ }
72
105
  const dialog = renderPromotionDialog ? (renderPromotionDialog({
73
106
  open: dialogOpen,
74
107
  onOpenChange: setDialogOpen,
@@ -102,9 +135,9 @@ export function PromotionsPage({ className, pageSize = DEFAULT_PAGE_SIZE, onOpen
102
135
  value) }) }), _jsxs(SelectContent, { children: [_jsx(SelectItem, { value: ALL, children: pageMessages.allScopes }), scopeKinds.map((value) => (_jsx(SelectItem, { value: value, children: messages.common.scopeKindLabels[value] }, value)))] })] })] }), _jsxs("div", { className: "flex flex-col gap-1.5", children: [_jsx(Label, { htmlFor: "promotions-filter-validity", children: pageMessages.validityRangePlaceholder }), _jsx(DateRangePicker, { value: validityRange, onChange: (value) => {
103
136
  setValidityRange(value);
104
137
  resetPage();
105
- }, placeholder: pageMessages.validityRangePlaceholder, className: "w-full" })] })] }) })] }), hasActiveFilters ? (_jsxs(Button, { variant: "ghost", size: "sm", onClick: clearFilters, children: [_jsx(X, { className: "mr-1 size-4", "aria-hidden": "true" }), pageMessages.clearFilters] })) : null, _jsx("div", { className: "ml-auto", children: _jsxs(Button, { onClick: openCreate, children: [_jsx(Plus, { className: "mr-1 size-4", "aria-hidden": "true" }), pageMessages.newPromotion] }) })] }), _jsx("div", { className: "rounded-md border", children: _jsxs(Table, { children: [_jsx(TableHeader, { children: _jsxs(TableRow, { children: [_jsx(TableHead, { children: pageMessages.columns.name }), _jsx(TableHead, { children: pageMessages.columns.mode }), _jsx(TableHead, { children: pageMessages.columns.scope }), _jsx(TableHead, { children: pageMessages.columns.discount }), _jsx(TableHead, { children: pageMessages.columns.validity }), _jsx(TableHead, { children: pageMessages.columns.code }), _jsx(TableHead, { children: pageMessages.columns.status })] }) }), _jsx(TableBody, { children: showSkeleton ? (_jsx(PromotionRowSkeleton, { rows: 6 })) : isError ? (_jsx(TableRow, { children: _jsx(TableCell, { colSpan: TABLE_COLUMN_COUNT, className: "h-24 text-center text-sm text-destructive", children: formatMessage(pageMessages.loadFailedPrefix, {
138
+ }, placeholder: pageMessages.validityRangePlaceholder, className: "w-full" })] })] }) })] }), hasActiveFilters ? (_jsxs(Button, { variant: "ghost", size: "sm", onClick: clearFilters, children: [_jsx(X, { className: "mr-1 size-4", "aria-hidden": "true" }), pageMessages.clearFilters] })) : null, _jsx("div", { className: "ml-auto", children: _jsxs(Button, { onClick: openCreate, children: [_jsx(Plus, { className: "mr-1 size-4", "aria-hidden": "true" }), pageMessages.newPromotion] }) })] }), actionError ? (_jsxs("div", { className: "flex items-start justify-between gap-3 rounded-md border border-destructive/30 bg-destructive/10 p-3 text-sm text-destructive", children: [_jsx("p", { children: actionError }), _jsx(Button, { variant: "ghost", size: "icon", className: "size-6 shrink-0 text-destructive", onClick: () => setActionError(null), "aria-label": pageMessages.actions.dismissError, children: _jsx(X, { className: "size-4", "aria-hidden": "true" }) })] })) : null, _jsx("div", { className: "rounded-md border", children: _jsxs(Table, { children: [_jsx(TableHeader, { children: _jsxs(TableRow, { children: [_jsx(TableHead, { children: pageMessages.columns.name }), _jsx(TableHead, { children: pageMessages.columns.mode }), _jsx(TableHead, { children: pageMessages.columns.scope }), _jsx(TableHead, { children: pageMessages.columns.discount }), _jsx(TableHead, { children: pageMessages.columns.validity }), _jsx(TableHead, { children: pageMessages.columns.code }), _jsx(TableHead, { children: pageMessages.columns.status }), _jsx(TableHead, { className: "w-12 text-right", children: pageMessages.columns.actions })] }) }), _jsx(TableBody, { children: showSkeleton ? (_jsx(PromotionRowSkeleton, { rows: 6 })) : isError ? (_jsx(TableRow, { children: _jsx(TableCell, { colSpan: TABLE_COLUMN_COUNT, className: "h-24 text-center text-sm text-destructive", children: formatMessage(pageMessages.loadFailedPrefix, {
106
139
  message: error instanceof Error ? error.message : String(error),
107
- }) }) })) : offers.length === 0 ? (_jsx(TableRow, { children: _jsx(TableCell, { colSpan: TABLE_COLUMN_COUNT, className: "h-24 text-center text-sm text-muted-foreground", children: pageMessages.empty }) })) : (offers.map((offer) => (_jsxs(TableRow, { className: "cursor-pointer", onClick: () => openOffer(offer), children: [_jsxs(TableCell, { children: [_jsx("div", { className: "font-medium", children: offer.name }), _jsx("div", { className: "font-mono text-xs text-muted-foreground", children: offer.slug })] }), _jsx(TableCell, { children: _jsx(Badge, { variant: offer.code == null ? "secondary" : "outline", children: offer.code == null ? pageMessages.badges.auto : pageMessages.badges.code }) }), _jsx(TableCell, { className: "text-muted-foreground", children: summarizeScope(offer.scope, messages) }), _jsx(TableCell, { children: summarizeDiscount(offer, pageMessages) }), _jsx(TableCell, { className: "text-muted-foreground", children: summarizeValidity(offer.validFrom, offer.validUntil, pageMessages) }), _jsx(TableCell, { className: "font-mono text-xs", children: offer.code ?? pageMessages.summaries.noCode }), _jsx(TableCell, { children: _jsxs("div", { className: "flex flex-wrap gap-2", children: [_jsx(Badge, { variant: statusBadgeVariant(getOfferStatus(offer)), children: messages.common.statusLabels[getOfferStatus(offer)] }), offer.stackable ? (_jsx(Badge, { variant: "secondary", children: pageMessages.badges.stackable })) : null] }) })] }, offer.id)))) })] }) }), _jsx(PaginationBar, { shown: offers.length, total: total, page: page, pageCount: pageCount, onPrevious: () => setPageIndex((prev) => Math.max(0, prev - 1)), onNext: () => setPageIndex((prev) => prev + 1), canGoBack: pageIndex > 0, canGoForward: (pageIndex + 1) * pageSize < total, messages: pageMessages.pagination }), dialog] }));
140
+ }) }) })) : offers.length === 0 ? (_jsx(TableRow, { children: _jsx(TableCell, { colSpan: TABLE_COLUMN_COUNT, className: "h-24 text-center text-sm text-muted-foreground", children: pageMessages.empty }) })) : (offers.map((offer) => (_jsxs(TableRow, { className: "cursor-pointer", onClick: () => openOffer(offer), children: [_jsxs(TableCell, { children: [_jsx("div", { className: "font-medium", children: offer.name }), _jsx("div", { className: "font-mono text-xs text-muted-foreground", children: offer.slug })] }), _jsx(TableCell, { children: _jsx(Badge, { variant: offer.code == null ? "secondary" : "outline", children: offer.code == null ? pageMessages.badges.auto : pageMessages.badges.code }) }), _jsx(TableCell, { className: "text-muted-foreground", children: summarizeScope(offer.scope, messages) }), _jsx(TableCell, { children: summarizeDiscount(offer, pageMessages) }), _jsx(TableCell, { className: "text-muted-foreground", children: summarizeValidity(offer.validFrom, offer.validUntil, pageMessages) }), _jsx(TableCell, { className: "font-mono text-xs", children: offer.code ?? pageMessages.summaries.noCode }), _jsx(TableCell, { children: _jsxs("div", { className: "flex flex-wrap gap-2", children: [_jsx(Badge, { variant: statusBadgeVariant(getOfferStatus(offer)), children: messages.common.statusLabels[getOfferStatus(offer)] }), offer.stackable ? (_jsx(Badge, { variant: "secondary", children: pageMessages.badges.stackable })) : null] }) }), _jsx(TableCell, { className: "text-right", onClick: (event) => event.stopPropagation(), children: _jsx(PromotionRowActions, { offer: offer, disabled: actionPending, onEdit: openEdit, onArchive: archiveOffer, onActivate: activateOffer, onDelete: deleteOffer, messages: pageMessages.actions }) })] }, offer.id)))) })] }) }), _jsx(PaginationBar, { shown: offers.length, total: total, page: page, pageCount: pageCount, onPrevious: () => setPageIndex((prev) => Math.max(0, prev - 1)), onNext: () => setPageIndex((prev) => prev + 1), canGoBack: pageIndex > 0, canGoForward: (pageIndex + 1) * pageSize < total, messages: pageMessages.pagination }), dialog] }));
108
141
  }
109
142
  function PaginationBar({ shown, total, page, pageCount, onPrevious, onNext, canGoBack, canGoForward, messages, }) {
110
143
  return (_jsxs("div", { className: "flex items-center justify-between text-sm text-muted-foreground", children: [_jsx("span", { children: formatMessage(messages.showing, {
@@ -1 +1 @@
1
- {"version":3,"file":"promotions-page.js","sourceRoot":"","sources":["../../src/promotions/promotions-page.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"promotions-page.js","sourceRoot":"","sources":["../../src/promotions/promotions-page.tsx"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@voyant-travel/commerce-react",
3
- "version": "0.20.0",
3
+ "version": "0.21.0",
4
4
  "license": "Apache-2.0",
5
5
  "repository": {
6
6
  "type": "git",
@@ -230,16 +230,16 @@
230
230
  },
231
231
  "peerDependencies": {
232
232
  "@tanstack/react-query": "^5.0.0",
233
- "lucide-react": "^0.475.0",
233
+ "lucide-react": "^1.23.0",
234
234
  "react": "^19.0.0",
235
235
  "react-dom": "^19.0.0",
236
236
  "react-hook-form": "^7.80.0",
237
237
  "zod": "^4.0.0",
238
- "@voyant-travel/admin": "^0.115.3",
239
- "@voyant-travel/commerce": "^0.20.0",
240
- "@voyant-travel/distribution-react": "^0.128.0",
241
- "@voyant-travel/inventory-react": "^0.20.0",
242
- "@voyant-travel/ui": "^0.108.9"
238
+ "@voyant-travel/admin": "^0.115.4",
239
+ "@voyant-travel/commerce": "^0.21.0",
240
+ "@voyant-travel/distribution-react": "^0.129.0",
241
+ "@voyant-travel/inventory-react": "^0.21.0",
242
+ "@voyant-travel/ui": "^0.108.10"
243
243
  },
244
244
  "peerDependenciesMeta": {
245
245
  "@voyant-travel/admin": {
@@ -259,30 +259,30 @@
259
259
  }
260
260
  },
261
261
  "dependencies": {
262
- "@voyant-travel/i18n": "^0.109.6",
262
+ "@voyant-travel/i18n": "^0.109.8",
263
263
  "@voyant-travel/react": "^0.104.1",
264
- "@voyant-travel/types": "^0.106.1",
265
- "@voyant-travel/utils": "^0.105.5"
264
+ "@voyant-travel/types": "^0.107.0",
265
+ "@voyant-travel/utils": "^0.105.6"
266
266
  },
267
267
  "devDependencies": {
268
268
  "@tanstack/react-query": "^5.101.2",
269
269
  "@types/react": "^19.2.17",
270
270
  "@types/react-dom": "^19.2.3",
271
- "lucide-react": "^0.475.0",
271
+ "lucide-react": "^1.23.0",
272
272
  "react": "^19.2.7",
273
273
  "react-dom": "^19.2.7",
274
274
  "react-hook-form": "^7.80.0",
275
275
  "typescript": "^6.0.3",
276
276
  "vitest": "^4.1.9",
277
277
  "zod": "^4.4.3",
278
- "@voyant-travel/admin": "^0.115.3",
279
- "@voyant-travel/commerce": "^0.20.0",
280
- "@voyant-travel/distribution-react": "^0.128.0",
281
- "@voyant-travel/i18n": "^0.109.6",
282
- "@voyant-travel/inventory-react": "^0.20.0",
278
+ "@voyant-travel/admin": "^0.115.4",
279
+ "@voyant-travel/commerce": "^0.21.0",
280
+ "@voyant-travel/distribution-react": "^0.129.0",
281
+ "@voyant-travel/i18n": "^0.109.8",
282
+ "@voyant-travel/inventory-react": "^0.21.0",
283
283
  "@voyant-travel/react": "^0.104.1",
284
- "@voyant-travel/ui": "^0.108.9",
285
- "@voyant-travel/utils": "^0.105.5",
284
+ "@voyant-travel/ui": "^0.108.10",
285
+ "@voyant-travel/utils": "^0.105.6",
286
286
  "@voyant-travel/voyant-typescript-config": "^0.1.0"
287
287
  },
288
288
  "files": [