@planetaexo/design-system 0.65.0 → 0.66.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.
package/dist/index.d.cts CHANGED
@@ -89,6 +89,13 @@ interface BookingAdventureCardLabels {
89
89
  childrenUnit?: string;
90
90
  /** Heading da seção ACCOMMODATIONS. Default "ACCOMMODATIONS". */
91
91
  accommodationsHeading?: string;
92
+ /**
93
+ * Heading por quarto no layout `feature` (ex.: "Accommodation: Suíte Master").
94
+ * Interpolado pelo DS via `accommodationRoomHeading(room.roomName)`.
95
+ * Default EN `(n) => \`Accommodation: ${n}\``. Usado só quando
96
+ * `roomLayout==="feature"`.
97
+ */
98
+ accommodationRoomHeading?: (name: string) => string;
92
99
  /** Labels localizados para o chip de bedArrangement. */
93
100
  bedArrangementLabels?: {
94
101
  DOUBLE?: string;
@@ -159,12 +166,21 @@ interface BookingAdventureCardProps {
159
166
  * quartos selecionados (renderiza bloco "ACCOMMODATIONS"). Vazio = bloco oculto.
160
167
  */
161
168
  rooms?: AccommodationRoomItem[];
169
+ /**
170
+ * Layout do bloco ACCOMMODATIONS:
171
+ * - `"compact"` (default) — card compacto atual (img 80×60 + chip + qty +
172
+ * roomType). Usado por PaymentReminderEmail e qualquer caller sem a prop.
173
+ * - `"feature"` — padrão manual da equipe: heading "Accommodation: {nome}"
174
+ * por quarto + imagem larga (full-width) + chip/qty/roomType/description
175
+ * mantidos abaixo. Ativado só pelo BookingPaymentConfirmationEmail.
176
+ */
177
+ roomLayout?: "compact" | "feature";
162
178
  /** Labels para i18n / customização. */
163
179
  labels?: BookingAdventureCardLabels;
164
180
  /** className extra no container. */
165
181
  className?: string;
166
182
  }
167
- declare function BookingAdventureCard({ tag, name, startDate, endDate, travellerCount, slots, travellers, itinerary, description, image, imageAlt, location, destination, partner, included, notIncluded, lineItems, subtotal, rooms, labels, className, }: BookingAdventureCardProps): react_jsx_runtime.JSX.Element;
183
+ declare function BookingAdventureCard({ tag, name, startDate, endDate, travellerCount, slots, travellers, itinerary, description, image, imageAlt, location, destination, partner, included, notIncluded, lineItems, subtotal, rooms, roomLayout, labels, className, }: BookingAdventureCardProps): react_jsx_runtime.JSX.Element;
168
184
 
169
185
  interface OfferSummaryLineItem {
170
186
  label: string;
@@ -253,6 +269,12 @@ interface OfferAdventureItem {
253
269
  rooms?: AccommodationRoomItem[];
254
270
  /** Heading do bloco Accommodations. Default: "Accommodations". */
255
271
  accommodationsLabel?: string;
272
+ /**
273
+ * Heading por quarto no padrão manual ("Accommodation: {name}").
274
+ * Interpolado pelo componente via `accommodationRoomHeading(room.roomName)`.
275
+ * Default EN `(n) => \`Accommodation: ${n}\``.
276
+ */
277
+ accommodationRoomHeading?: (name: string) => string;
256
278
  /** Labels localizados para o chip de bedArrangement. */
257
279
  bedArrangementLabels?: {
258
280
  DOUBLE?: string;
@@ -996,6 +1018,20 @@ interface BookingPaymentConfirmationEmailLabels {
996
1018
  pricingLabel?: string;
997
1019
  subtotalLabel?: string;
998
1020
  totalLabel?: string;
1021
+ /** Heading da seção ACCOMMODATIONS no card. Default EN "ACCOMMODATIONS". */
1022
+ accommodationsLabel?: string;
1023
+ /**
1024
+ * Heading por quarto no layout feature ("Accommodation: {name}").
1025
+ * Default EN `(n) => \`Accommodation: ${n}\``.
1026
+ */
1027
+ accommodationRoomHeading?: (name: string) => string;
1028
+ /** Labels localizados para o chip de bedArrangement. */
1029
+ bedArrangementLabels?: {
1030
+ DOUBLE?: string;
1031
+ TWIN?: string;
1032
+ SINGLE?: string;
1033
+ TRIPLE?: string;
1034
+ };
999
1035
  paymentSummaryHeading?: string;
1000
1036
  paymentDetailsHeading?: string;
1001
1037
  depositLabel?: (percent: number) => string;
package/dist/index.d.ts CHANGED
@@ -89,6 +89,13 @@ interface BookingAdventureCardLabels {
89
89
  childrenUnit?: string;
90
90
  /** Heading da seção ACCOMMODATIONS. Default "ACCOMMODATIONS". */
91
91
  accommodationsHeading?: string;
92
+ /**
93
+ * Heading por quarto no layout `feature` (ex.: "Accommodation: Suíte Master").
94
+ * Interpolado pelo DS via `accommodationRoomHeading(room.roomName)`.
95
+ * Default EN `(n) => \`Accommodation: ${n}\``. Usado só quando
96
+ * `roomLayout==="feature"`.
97
+ */
98
+ accommodationRoomHeading?: (name: string) => string;
92
99
  /** Labels localizados para o chip de bedArrangement. */
93
100
  bedArrangementLabels?: {
94
101
  DOUBLE?: string;
@@ -159,12 +166,21 @@ interface BookingAdventureCardProps {
159
166
  * quartos selecionados (renderiza bloco "ACCOMMODATIONS"). Vazio = bloco oculto.
160
167
  */
161
168
  rooms?: AccommodationRoomItem[];
169
+ /**
170
+ * Layout do bloco ACCOMMODATIONS:
171
+ * - `"compact"` (default) — card compacto atual (img 80×60 + chip + qty +
172
+ * roomType). Usado por PaymentReminderEmail e qualquer caller sem a prop.
173
+ * - `"feature"` — padrão manual da equipe: heading "Accommodation: {nome}"
174
+ * por quarto + imagem larga (full-width) + chip/qty/roomType/description
175
+ * mantidos abaixo. Ativado só pelo BookingPaymentConfirmationEmail.
176
+ */
177
+ roomLayout?: "compact" | "feature";
162
178
  /** Labels para i18n / customização. */
163
179
  labels?: BookingAdventureCardLabels;
164
180
  /** className extra no container. */
165
181
  className?: string;
166
182
  }
167
- declare function BookingAdventureCard({ tag, name, startDate, endDate, travellerCount, slots, travellers, itinerary, description, image, imageAlt, location, destination, partner, included, notIncluded, lineItems, subtotal, rooms, labels, className, }: BookingAdventureCardProps): react_jsx_runtime.JSX.Element;
183
+ declare function BookingAdventureCard({ tag, name, startDate, endDate, travellerCount, slots, travellers, itinerary, description, image, imageAlt, location, destination, partner, included, notIncluded, lineItems, subtotal, rooms, roomLayout, labels, className, }: BookingAdventureCardProps): react_jsx_runtime.JSX.Element;
168
184
 
169
185
  interface OfferSummaryLineItem {
170
186
  label: string;
@@ -253,6 +269,12 @@ interface OfferAdventureItem {
253
269
  rooms?: AccommodationRoomItem[];
254
270
  /** Heading do bloco Accommodations. Default: "Accommodations". */
255
271
  accommodationsLabel?: string;
272
+ /**
273
+ * Heading por quarto no padrão manual ("Accommodation: {name}").
274
+ * Interpolado pelo componente via `accommodationRoomHeading(room.roomName)`.
275
+ * Default EN `(n) => \`Accommodation: ${n}\``.
276
+ */
277
+ accommodationRoomHeading?: (name: string) => string;
256
278
  /** Labels localizados para o chip de bedArrangement. */
257
279
  bedArrangementLabels?: {
258
280
  DOUBLE?: string;
@@ -996,6 +1018,20 @@ interface BookingPaymentConfirmationEmailLabels {
996
1018
  pricingLabel?: string;
997
1019
  subtotalLabel?: string;
998
1020
  totalLabel?: string;
1021
+ /** Heading da seção ACCOMMODATIONS no card. Default EN "ACCOMMODATIONS". */
1022
+ accommodationsLabel?: string;
1023
+ /**
1024
+ * Heading por quarto no layout feature ("Accommodation: {name}").
1025
+ * Default EN `(n) => \`Accommodation: ${n}\``.
1026
+ */
1027
+ accommodationRoomHeading?: (name: string) => string;
1028
+ /** Labels localizados para o chip de bedArrangement. */
1029
+ bedArrangementLabels?: {
1030
+ DOUBLE?: string;
1031
+ TWIN?: string;
1032
+ SINGLE?: string;
1033
+ TRIPLE?: string;
1034
+ };
999
1035
  paymentSummaryHeading?: string;
1000
1036
  paymentDetailsHeading?: string;
1001
1037
  depositLabel?: (percent: number) => string;
package/dist/index.js CHANGED
@@ -1306,7 +1306,7 @@ function AdventureCard({
1306
1306
  labels,
1307
1307
  interactionsDisabled
1308
1308
  }) {
1309
- var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s;
1309
+ var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r;
1310
1310
  const isControlled = (_b = (_a = adventure.optionals) == null ? void 0 : _a.some((o) => o.onCheckedChange !== void 0)) != null ? _b : false;
1311
1311
  const [checkedInternal, setCheckedInternal] = React32.useState(
1312
1312
  new Set((_d = (_c = adventure.optionals) == null ? void 0 : _c.filter((o) => o.defaultChecked).map((o) => o.id)) != null ? _d : [])
@@ -1480,6 +1480,29 @@ function AdventureCard({
1480
1480
  }
1481
1481
  )
1482
1482
  ] }),
1483
+ adventure.rooms && adventure.rooms.length > 0 && /* @__PURE__ */ jsx("div", { className: "flex flex-col gap-5 mt-1", children: adventure.rooms.map((room, i) => {
1484
+ var _a2, _b2;
1485
+ const bedLabel = (_b2 = (_a2 = adventure.bedArrangementLabels) == null ? void 0 : _a2[room.bedArrangement]) != null ? _b2 : room.bedArrangement === "DOUBLE" ? "Double" : room.bedArrangement === "TWIN" ? "Twin" : room.bedArrangement === "SINGLE" ? "Single" : "Triple";
1486
+ const heading = adventure.accommodationRoomHeading ? adventure.accommodationRoomHeading(room.roomName) : `Accommodation: ${room.roomName}`;
1487
+ return /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-2", children: [
1488
+ /* @__PURE__ */ jsx("h4", { className: "text-lg font-semibold text-foreground font-heading", children: heading }),
1489
+ room.imageUrl && // eslint-disable-next-line @next/next/no-img-element
1490
+ /* @__PURE__ */ jsx(
1491
+ "img",
1492
+ {
1493
+ src: room.imageUrl,
1494
+ alt: room.roomName,
1495
+ className: "w-full h-auto max-w-full rounded"
1496
+ }
1497
+ ),
1498
+ /* @__PURE__ */ jsx("div", { className: "text-base font-semibold text-foreground", children: `${room.qty}\xD7 ${room.roomName}` }),
1499
+ /* @__PURE__ */ jsxs("div", { className: "text-sm text-foreground/70 flex items-center gap-2 flex-wrap", children: [
1500
+ /* @__PURE__ */ jsx("span", { children: room.accommodationName }),
1501
+ /* @__PURE__ */ jsx("span", { className: "inline-block px-2 py-0.5 text-xs font-semibold bg-primary/10 text-primary rounded uppercase tracking-wide", children: bedLabel })
1502
+ ] }),
1503
+ room.description && /* @__PURE__ */ jsx("p", { className: "text-sm text-foreground/70 leading-snug", children: room.description })
1504
+ ] }, i);
1505
+ }) }),
1483
1506
  (adventure.description || adventure.detailsSlot) && /* @__PURE__ */ jsxs(Fragment, { children: [
1484
1507
  /* @__PURE__ */ jsx(Separator, { className: "my-1" }),
1485
1508
  /* @__PURE__ */ jsxs("div", { children: [
@@ -1508,48 +1531,22 @@ function AdventureCard({
1508
1531
  ), children: adventure.detailsSlot })
1509
1532
  ] })
1510
1533
  ] }),
1511
- adventure.rooms && adventure.rooms.length > 0 && /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-2.5 mt-1", children: [
1512
- /* @__PURE__ */ jsx("h4", { className: "text-base font-bold text-foreground font-heading", children: (_p = adventure.accommodationsLabel) != null ? _p : "Accommodations" }),
1513
- /* @__PURE__ */ jsx("ul", { className: "flex flex-col gap-3", children: adventure.rooms.map((room, i) => {
1514
- var _a2, _b2;
1515
- const bedLabel = (_b2 = (_a2 = adventure.bedArrangementLabels) == null ? void 0 : _a2[room.bedArrangement]) != null ? _b2 : room.bedArrangement === "DOUBLE" ? "Double" : room.bedArrangement === "TWIN" ? "Twin" : room.bedArrangement === "SINGLE" ? "Single" : "Triple";
1516
- return /* @__PURE__ */ jsxs("li", { className: "flex items-start gap-3", children: [
1517
- room.imageUrl && // eslint-disable-next-line @next/next/no-img-element
1518
- /* @__PURE__ */ jsx(
1519
- "img",
1520
- {
1521
- src: room.imageUrl,
1522
- alt: room.roomName,
1523
- className: "w-20 h-16 object-cover rounded shrink-0"
1524
- }
1525
- ),
1526
- /* @__PURE__ */ jsxs("div", { className: "flex-1", children: [
1527
- /* @__PURE__ */ jsx("div", { className: "text-base font-semibold text-foreground", children: `${room.qty}\xD7 ${room.roomName}` }),
1528
- /* @__PURE__ */ jsxs("div", { className: "text-sm text-foreground/70 flex items-center gap-2 flex-wrap", children: [
1529
- /* @__PURE__ */ jsx("span", { children: room.accommodationName }),
1530
- /* @__PURE__ */ jsx("span", { className: "inline-block px-2 py-0.5 text-xs font-semibold bg-primary/10 text-primary rounded uppercase tracking-wide", children: bedLabel })
1531
- ] }),
1532
- room.description && /* @__PURE__ */ jsx("p", { className: "text-sm text-foreground/70 mt-1 leading-snug", children: room.description })
1533
- ] })
1534
- ] }, i);
1535
- }) })
1536
- ] }),
1537
1534
  adventure.included && adventure.included.length > 0 && /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-2.5 mt-1", children: [
1538
- /* @__PURE__ */ jsx("h4", { className: "text-base font-bold text-foreground font-heading", children: (_q = adventure.includedLabel) != null ? _q : "What's included" }),
1535
+ /* @__PURE__ */ jsx("h4", { className: "text-base font-bold text-foreground font-heading", children: (_p = adventure.includedLabel) != null ? _p : "What's included" }),
1539
1536
  /* @__PURE__ */ jsx("ul", { className: "flex flex-col gap-1.5", children: adventure.included.map((item, i) => /* @__PURE__ */ jsxs("li", { className: "flex items-start gap-2 text-base text-foreground/80 font-sans", children: [
1540
1537
  /* @__PURE__ */ jsx(CheckIcon, { className: "w-4 h-4 text-primary shrink-0 mt-1" }),
1541
1538
  item
1542
1539
  ] }, i)) })
1543
1540
  ] }),
1544
1541
  adventure.notIncluded && adventure.notIncluded.length > 0 && /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-2.5 mt-1", children: [
1545
- /* @__PURE__ */ jsx("h4", { className: "text-base font-bold text-foreground font-heading", children: (_r = adventure.notIncludedLabel) != null ? _r : "What's not included" }),
1542
+ /* @__PURE__ */ jsx("h4", { className: "text-base font-bold text-foreground font-heading", children: (_q = adventure.notIncludedLabel) != null ? _q : "What's not included" }),
1546
1543
  /* @__PURE__ */ jsx("ul", { className: "flex flex-col gap-1.5", children: adventure.notIncluded.map((item, i) => /* @__PURE__ */ jsxs("li", { className: "flex items-start gap-2 text-base text-foreground/80 font-sans", children: [
1547
1544
  /* @__PURE__ */ jsx(XIcon, { className: "w-4 h-4 text-destructive shrink-0 mt-1" }),
1548
1545
  item
1549
1546
  ] }, i)) })
1550
1547
  ] }),
1551
1548
  adventure.cancellationPolicy && adventure.cancellationPolicy.length > 0 && /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-2.5 mt-1", children: [
1552
- /* @__PURE__ */ jsx("h4", { className: "text-base font-bold text-foreground font-heading", children: (_s = adventure.cancellationPolicyLabel) != null ? _s : "Cancellation policy" }),
1549
+ /* @__PURE__ */ jsx("h4", { className: "text-base font-bold text-foreground font-heading", children: (_r = adventure.cancellationPolicyLabel) != null ? _r : "Cancellation policy" }),
1553
1550
  /* @__PURE__ */ jsx("ul", { className: "flex flex-col gap-1.5", children: adventure.cancellationPolicy.map((item, i) => /* @__PURE__ */ jsxs("li", { className: "flex items-start gap-2 text-base text-muted-foreground font-sans", children: [
1554
1551
  /* @__PURE__ */ jsx("span", { className: "w-1.5 h-1.5 rounded-full bg-primary shrink-0 mt-2.5" }),
1555
1552
  item
@@ -4126,6 +4123,7 @@ var DEFAULT_LABELS = {
4126
4123
  adultsUnit: "adult(s)",
4127
4124
  childrenUnit: "child(ren)",
4128
4125
  accommodationsHeading: "ACCOMMODATIONS",
4126
+ accommodationRoomHeading: (name) => `Accommodation: ${name}`,
4129
4127
  bedArrangementLabels: {
4130
4128
  DOUBLE: "Double",
4131
4129
  TWIN: "Twin",
@@ -4153,10 +4151,11 @@ function BookingAdventureCard({
4153
4151
  lineItems,
4154
4152
  subtotal,
4155
4153
  rooms,
4154
+ roomLayout = "compact",
4156
4155
  labels,
4157
4156
  className
4158
4157
  }) {
4159
- var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t, _u;
4158
+ var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t, _u, _v;
4160
4159
  const l = {
4161
4160
  travellersHeading: (_a = labels == null ? void 0 : labels.travellersHeading) != null ? _a : DEFAULT_LABELS.travellersHeading,
4162
4161
  detailsHeading: (_b = labels == null ? void 0 : labels.detailsHeading) != null ? _b : DEFAULT_LABELS.detailsHeading,
@@ -4171,11 +4170,12 @@ function BookingAdventureCard({
4171
4170
  adultsUnit: (_k = labels == null ? void 0 : labels.adultsUnit) != null ? _k : DEFAULT_LABELS.adultsUnit,
4172
4171
  childrenUnit: (_l = labels == null ? void 0 : labels.childrenUnit) != null ? _l : DEFAULT_LABELS.childrenUnit,
4173
4172
  accommodationsHeading: (_m = labels == null ? void 0 : labels.accommodationsHeading) != null ? _m : DEFAULT_LABELS.accommodationsHeading,
4173
+ accommodationRoomHeading: (_n = labels == null ? void 0 : labels.accommodationRoomHeading) != null ? _n : DEFAULT_LABELS.accommodationRoomHeading,
4174
4174
  bedArrangementLabels: {
4175
- DOUBLE: (_o = (_n = labels == null ? void 0 : labels.bedArrangementLabels) == null ? void 0 : _n.DOUBLE) != null ? _o : DEFAULT_LABELS.bedArrangementLabels.DOUBLE,
4176
- TWIN: (_q = (_p = labels == null ? void 0 : labels.bedArrangementLabels) == null ? void 0 : _p.TWIN) != null ? _q : DEFAULT_LABELS.bedArrangementLabels.TWIN,
4177
- SINGLE: (_s = (_r = labels == null ? void 0 : labels.bedArrangementLabels) == null ? void 0 : _r.SINGLE) != null ? _s : DEFAULT_LABELS.bedArrangementLabels.SINGLE,
4178
- TRIPLE: (_u = (_t = labels == null ? void 0 : labels.bedArrangementLabels) == null ? void 0 : _t.TRIPLE) != null ? _u : DEFAULT_LABELS.bedArrangementLabels.TRIPLE
4175
+ DOUBLE: (_p = (_o = labels == null ? void 0 : labels.bedArrangementLabels) == null ? void 0 : _o.DOUBLE) != null ? _p : DEFAULT_LABELS.bedArrangementLabels.DOUBLE,
4176
+ TWIN: (_r = (_q = labels == null ? void 0 : labels.bedArrangementLabels) == null ? void 0 : _q.TWIN) != null ? _r : DEFAULT_LABELS.bedArrangementLabels.TWIN,
4177
+ SINGLE: (_t = (_s = labels == null ? void 0 : labels.bedArrangementLabels) == null ? void 0 : _s.SINGLE) != null ? _t : DEFAULT_LABELS.bedArrangementLabels.SINGLE,
4178
+ TRIPLE: (_v = (_u = labels == null ? void 0 : labels.bedArrangementLabels) == null ? void 0 : _u.TRIPLE) != null ? _v : DEFAULT_LABELS.bedArrangementLabels.TRIPLE
4179
4179
  }
4180
4180
  };
4181
4181
  const hasTravellers = !!travellers && travellers.length > 0;
@@ -4514,7 +4514,116 @@ function BookingAdventureCard({
4514
4514
  );
4515
4515
  })
4516
4516
  ] }),
4517
- hasRooms && /* @__PURE__ */ jsxs("div", { style: { marginTop: "4px" }, children: [
4517
+ hasRooms && roomLayout === "feature" && /* @__PURE__ */ jsxs("div", { style: { marginTop: "4px" }, children: [
4518
+ /* @__PURE__ */ jsx(
4519
+ "hr",
4520
+ {
4521
+ style: {
4522
+ border: "none",
4523
+ borderTop: `1px solid ${emailTokens.border}`,
4524
+ marginBottom: "10px"
4525
+ }
4526
+ }
4527
+ ),
4528
+ /* @__PURE__ */ jsx(
4529
+ "p",
4530
+ {
4531
+ style: {
4532
+ fontSize: "10px",
4533
+ fontWeight: 700,
4534
+ color: emailTokens.mutedForeground,
4535
+ textTransform: "uppercase",
4536
+ letterSpacing: "0.1em",
4537
+ margin: "0 0 10px 0"
4538
+ },
4539
+ children: l.accommodationsHeading
4540
+ }
4541
+ ),
4542
+ rooms.map((room, i) => /* @__PURE__ */ jsxs(
4543
+ "div",
4544
+ {
4545
+ style: {
4546
+ marginBottom: i < rooms.length - 1 ? "16px" : "0"
4547
+ },
4548
+ children: [
4549
+ /* @__PURE__ */ jsx(
4550
+ "p",
4551
+ {
4552
+ style: {
4553
+ fontSize: "16px",
4554
+ fontWeight: 700,
4555
+ color: emailTokens.foreground,
4556
+ lineHeight: "1.3",
4557
+ margin: "0 0 8px 0"
4558
+ },
4559
+ children: l.accommodationRoomHeading(room.roomName)
4560
+ }
4561
+ ),
4562
+ room.imageUrl && /* @__PURE__ */ jsx("div", { style: { marginBottom: "8px" }, children: /* @__PURE__ */ jsx(
4563
+ "img",
4564
+ {
4565
+ src: room.imageUrl,
4566
+ alt: room.roomName,
4567
+ style: {
4568
+ width: "100%",
4569
+ height: "auto",
4570
+ maxWidth: "100%",
4571
+ display: "block",
4572
+ borderRadius: "8px"
4573
+ }
4574
+ }
4575
+ ) }),
4576
+ /* @__PURE__ */ jsx(
4577
+ "div",
4578
+ {
4579
+ style: {
4580
+ fontSize: "14px",
4581
+ fontWeight: 600,
4582
+ color: emailTokens.foreground,
4583
+ marginBottom: "2px"
4584
+ },
4585
+ children: `${room.qty}\xD7 ${room.roomName}`
4586
+ }
4587
+ ),
4588
+ /* @__PURE__ */ jsxs("div", { style: { fontSize: "12px", color: emailTokens.mutedForeground }, children: [
4589
+ room.accommodationName,
4590
+ /* @__PURE__ */ jsx(
4591
+ "span",
4592
+ {
4593
+ style: {
4594
+ display: "inline-block",
4595
+ marginLeft: "8px",
4596
+ padding: "1px 6px",
4597
+ fontSize: "10px",
4598
+ fontWeight: 600,
4599
+ color: emailTokens.primary,
4600
+ backgroundColor: emailTokens.primaryLight,
4601
+ borderRadius: "4px",
4602
+ textTransform: "uppercase",
4603
+ letterSpacing: "0.05em"
4604
+ },
4605
+ children: l.bedArrangementLabels[room.bedArrangement]
4606
+ }
4607
+ )
4608
+ ] }),
4609
+ room.description && /* @__PURE__ */ jsx(
4610
+ "div",
4611
+ {
4612
+ style: {
4613
+ fontSize: "12px",
4614
+ color: emailTokens.bodyText,
4615
+ marginTop: "4px",
4616
+ lineHeight: "1.4"
4617
+ },
4618
+ children: room.description
4619
+ }
4620
+ )
4621
+ ]
4622
+ },
4623
+ i
4624
+ ))
4625
+ ] }),
4626
+ hasRooms && roomLayout === "compact" && /* @__PURE__ */ jsxs("div", { style: { marginTop: "4px" }, children: [
4518
4627
  /* @__PURE__ */ jsx(
4519
4628
  "hr",
4520
4629
  {
@@ -5153,6 +5262,14 @@ var DEFAULT_LABELS3 = {
5153
5262
  pricingLabel: "Pricing",
5154
5263
  subtotalLabel: "Subtotal",
5155
5264
  totalLabel: "Total",
5265
+ accommodationsLabel: "ACCOMMODATIONS",
5266
+ accommodationRoomHeading: (name) => `Accommodation: ${name}`,
5267
+ bedArrangementLabels: {
5268
+ DOUBLE: "Double",
5269
+ TWIN: "Twin",
5270
+ SINGLE: "Single",
5271
+ TRIPLE: "Triple"
5272
+ },
5156
5273
  paymentSummaryHeading: "\u{1F4B0} Payment Summary",
5157
5274
  paymentDetailsHeading: "Payment Details",
5158
5275
  depositLabel: (percent) => `Deposit (${percent}%)`,
@@ -5321,6 +5438,7 @@ function BookingPaymentConfirmationEmail({
5321
5438
  lineItems: lineItemsToPass,
5322
5439
  subtotal: adventure.subtotal,
5323
5440
  rooms: adventure.rooms,
5441
+ roomLayout: "feature",
5324
5442
  labels: {
5325
5443
  travellersHeading: l.travellersLabel,
5326
5444
  detailsHeading: l.itineraryLabel,
@@ -5330,7 +5448,10 @@ function BookingPaymentConfirmationEmail({
5330
5448
  notIncludedHeading: l.notIncludedLabel,
5331
5449
  childBadge: l.childBadge,
5332
5450
  adultsUnit: l.adultsUnit,
5333
- childrenUnit: l.childrenUnit
5451
+ childrenUnit: l.childrenUnit,
5452
+ accommodationsHeading: l.accommodationsLabel,
5453
+ accommodationRoomHeading: l.accommodationRoomHeading,
5454
+ bedArrangementLabels: l.bedArrangementLabels
5334
5455
  }
5335
5456
  }
5336
5457
  )