@planetaexo/design-system 0.59.0 → 0.59.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.cts CHANGED
@@ -628,6 +628,15 @@ interface BookingDetailsLabels {
628
628
  adventuresSection?: (count: number) => string;
629
629
  /** "Travellers" — header de cada AdventureSection. */
630
630
  travellersSection?: string;
631
+ /** "Accommodations" — header do bloco de quartos da aventura. Default "ACCOMMODATIONS". */
632
+ accommodationsHeading?: string;
633
+ /** Labels localizados para o chip de bedArrangement (DOUBLE/TWIN/SINGLE/TRIPLE). */
634
+ bedArrangementLabels?: {
635
+ DOUBLE?: string;
636
+ TWIN?: string;
637
+ SINGLE?: string;
638
+ TRIPLE?: string;
639
+ };
631
640
  /** Botão "Add contact as traveller" / "Add contact". */
632
641
  addContactAsTraveller?: string;
633
642
  addContactAsTravellerShort?: string;
@@ -736,6 +745,10 @@ interface BookingAdventure {
736
745
  seniors?: number;
737
746
  };
738
747
  tags?: string[];
748
+ /** Quartos selecionados para esta aventura (catalogo Accommodation->Room).
749
+ * Quando presente e nao-vazio, renderiza bloco "ACCOMMODATIONS" abaixo do
750
+ * accordion de details (paridade visual com BookingAdventureCard). */
751
+ rooms?: AccommodationRoomItem[];
739
752
  travellers: BookingTraveller[];
740
753
  description?: string;
741
754
  /** Conteúdo rico de itinerário (HTML / ReactNode). Quando presente, substitui `description`
@@ -1037,6 +1050,10 @@ interface ConfirmationAdventure {
1037
1050
  lineItems?: ConfirmationLineItem[];
1038
1051
  subtotal?: string;
1039
1052
  travellers?: ConfirmationTraveller[];
1053
+ /** Quartos selecionados para esta aventura (catalogo Accommodation->Room).
1054
+ * Quando presente e nao-vazio, BookingAdventureCard renderiza o bloco
1055
+ * "ACCOMMODATIONS" entre details e prices. */
1056
+ rooms?: AccommodationRoomItem[];
1040
1057
  }
1041
1058
  interface ConfirmationDepositInfo {
1042
1059
  depositPercent: number;
package/dist/index.d.ts CHANGED
@@ -628,6 +628,15 @@ interface BookingDetailsLabels {
628
628
  adventuresSection?: (count: number) => string;
629
629
  /** "Travellers" — header de cada AdventureSection. */
630
630
  travellersSection?: string;
631
+ /** "Accommodations" — header do bloco de quartos da aventura. Default "ACCOMMODATIONS". */
632
+ accommodationsHeading?: string;
633
+ /** Labels localizados para o chip de bedArrangement (DOUBLE/TWIN/SINGLE/TRIPLE). */
634
+ bedArrangementLabels?: {
635
+ DOUBLE?: string;
636
+ TWIN?: string;
637
+ SINGLE?: string;
638
+ TRIPLE?: string;
639
+ };
631
640
  /** Botão "Add contact as traveller" / "Add contact". */
632
641
  addContactAsTraveller?: string;
633
642
  addContactAsTravellerShort?: string;
@@ -736,6 +745,10 @@ interface BookingAdventure {
736
745
  seniors?: number;
737
746
  };
738
747
  tags?: string[];
748
+ /** Quartos selecionados para esta aventura (catalogo Accommodation->Room).
749
+ * Quando presente e nao-vazio, renderiza bloco "ACCOMMODATIONS" abaixo do
750
+ * accordion de details (paridade visual com BookingAdventureCard). */
751
+ rooms?: AccommodationRoomItem[];
739
752
  travellers: BookingTraveller[];
740
753
  description?: string;
741
754
  /** Conteúdo rico de itinerário (HTML / ReactNode). Quando presente, substitui `description`
@@ -1037,6 +1050,10 @@ interface ConfirmationAdventure {
1037
1050
  lineItems?: ConfirmationLineItem[];
1038
1051
  subtotal?: string;
1039
1052
  travellers?: ConfirmationTraveller[];
1053
+ /** Quartos selecionados para esta aventura (catalogo Accommodation->Room).
1054
+ * Quando presente e nao-vazio, BookingAdventureCard renderiza o bloco
1055
+ * "ACCOMMODATIONS" entre details e prices. */
1056
+ rooms?: AccommodationRoomItem[];
1040
1057
  }
1041
1058
  interface ConfirmationDepositInfo {
1042
1059
  depositPercent: number;
package/dist/index.js CHANGED
@@ -2728,7 +2728,7 @@ function AdventureSection({
2728
2728
  cannotRemoveLastTravellerLabel,
2729
2729
  labels
2730
2730
  }) {
2731
- var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r;
2731
+ var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s;
2732
2732
  const [detailsOpen, setDetailsOpen] = React31.useState(false);
2733
2733
  const handleCopyUrl = (url) => {
2734
2734
  if (onCopyFormLink) {
@@ -2863,10 +2863,36 @@ function AdventureSection({
2863
2863
  )) })
2864
2864
  ] })
2865
2865
  ] }),
2866
+ adventure.rooms && adventure.rooms.length > 0 && /* @__PURE__ */ jsxs("div", { className: "border-t border-border px-5 lg:px-6 py-5 flex flex-col gap-3", children: [
2867
+ /* @__PURE__ */ jsx("h4", { className: "text-xs font-bold text-muted-foreground font-heading uppercase tracking-widest", children: (_l = labels == null ? void 0 : labels.accommodationsHeading) != null ? _l : "ACCOMMODATIONS" }),
2868
+ /* @__PURE__ */ jsx("div", { className: "flex flex-col gap-3", children: adventure.rooms.map((room, i) => {
2869
+ var _a2, _b2;
2870
+ return /* @__PURE__ */ jsxs("div", { className: "flex items-start gap-3", children: [
2871
+ room.imageUrl && // eslint-disable-next-line @next/next/no-img-element
2872
+ /* @__PURE__ */ jsx(
2873
+ "img",
2874
+ {
2875
+ src: room.imageUrl,
2876
+ alt: room.roomName,
2877
+ className: "w-20 h-15 object-cover rounded-md shrink-0",
2878
+ style: { width: "80px", height: "60px" }
2879
+ }
2880
+ ),
2881
+ /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-0.5 min-w-0", children: [
2882
+ /* @__PURE__ */ jsx("p", { className: "text-sm font-semibold text-foreground font-sans", children: `${room.qty}\xD7 ${room.roomName}` }),
2883
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 flex-wrap text-xs text-muted-foreground font-sans", children: [
2884
+ /* @__PURE__ */ jsx("span", { children: room.accommodationName }),
2885
+ /* @__PURE__ */ jsx("span", { className: "inline-block px-1.5 py-0.5 text-[10px] font-semibold text-primary bg-primary/10 rounded uppercase tracking-wider", children: (_b2 = (_a2 = labels == null ? void 0 : labels.bedArrangementLabels) == null ? void 0 : _a2[room.bedArrangement]) != null ? _b2 : room.bedArrangement })
2886
+ ] }),
2887
+ room.description && /* @__PURE__ */ jsx("p", { className: "text-xs text-foreground/80 font-sans mt-1 leading-snug", children: room.description })
2888
+ ] })
2889
+ ] }, i);
2890
+ }) })
2891
+ ] }),
2866
2892
  /* @__PURE__ */ jsxs("div", { className: "border-t border-border px-5 lg:px-6 py-5 flex flex-col gap-4", children: [
2867
2893
  /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between gap-3 flex-wrap", children: [
2868
2894
  /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
2869
- /* @__PURE__ */ jsx("h4", { className: "text-xs font-bold text-muted-foreground font-heading uppercase tracking-widest", children: (_l = labels == null ? void 0 : labels.travellersSection) != null ? _l : "Travellers" }),
2895
+ /* @__PURE__ */ jsx("h4", { className: "text-xs font-bold text-muted-foreground font-heading uppercase tracking-widest", children: (_m = labels == null ? void 0 : labels.travellersSection) != null ? _m : "Travellers" }),
2870
2896
  adventure.formName && /* @__PURE__ */ jsxs("span", { className: "text-xs font-semibold text-muted-foreground/50 font-heading tracking-wide", children: [
2871
2897
  "\xB7 ",
2872
2898
  adventure.formName
@@ -2887,8 +2913,8 @@ function AdventureSection({
2887
2913
  ),
2888
2914
  children: [
2889
2915
  /* @__PURE__ */ jsx(UserPlusIcon, { className: "w-3 h-3" }),
2890
- /* @__PURE__ */ jsx("span", { className: "hidden sm:inline", children: (_m = labels == null ? void 0 : labels.addContactAsTraveller) != null ? _m : "Add contact as traveller" }),
2891
- /* @__PURE__ */ jsx("span", { className: "sm:hidden", children: (_n = labels == null ? void 0 : labels.addContactAsTravellerShort) != null ? _n : "Add contact" })
2916
+ /* @__PURE__ */ jsx("span", { className: "hidden sm:inline", children: (_n = labels == null ? void 0 : labels.addContactAsTraveller) != null ? _n : "Add contact as traveller" }),
2917
+ /* @__PURE__ */ jsx("span", { className: "sm:hidden", children: (_o = labels == null ? void 0 : labels.addContactAsTravellerShort) != null ? _o : "Add contact" })
2892
2918
  ]
2893
2919
  }
2894
2920
  ),
@@ -2906,8 +2932,8 @@ function AdventureSection({
2906
2932
  className: "flex items-center gap-1.5 rounded-full border border-border px-3 py-1.5 text-xs font-ui text-primary hover:border-primary hover:bg-primary/5 transition-colors",
2907
2933
  children: [
2908
2934
  /* @__PURE__ */ jsx(PlusIcon, { className: "w-3 h-3" }),
2909
- /* @__PURE__ */ jsx("span", { className: "hidden sm:inline", children: (_o = adventure.addTravellerLabel) != null ? _o : "More travellers" }),
2910
- /* @__PURE__ */ jsx("span", { className: "sm:hidden", children: (_q = (_p = adventure.addTravellerShortLabel) != null ? _p : adventure.addTravellerLabel) != null ? _q : "Add" })
2935
+ /* @__PURE__ */ jsx("span", { className: "hidden sm:inline", children: (_p = adventure.addTravellerLabel) != null ? _p : "More travellers" }),
2936
+ /* @__PURE__ */ jsx("span", { className: "sm:hidden", children: (_r = (_q = adventure.addTravellerShortLabel) != null ? _q : adventure.addTravellerLabel) != null ? _r : "Add" })
2911
2937
  ]
2912
2938
  }
2913
2939
  )
@@ -3099,7 +3125,7 @@ function AdventureSection({
3099
3125
  )) })
3100
3126
  ] });
3101
3127
  })(),
3102
- adventure.registrationNotRequired ? /* @__PURE__ */ jsx("div", { className: "flex items-center gap-2 mt-1", children: /* @__PURE__ */ jsx("span", { className: "text-xs font-ui text-muted-foreground", children: (_r = adventure.noRegistrationRequiredLabel) != null ? _r : "No registration required" }) }) : adventure.travellers.length > 0 && totalSlots > 0 && (() => {
3128
+ adventure.registrationNotRequired ? /* @__PURE__ */ jsx("div", { className: "flex items-center gap-2 mt-1", children: /* @__PURE__ */ jsx("span", { className: "text-xs font-ui text-muted-foreground", children: (_s = adventure.noRegistrationRequiredLabel) != null ? _s : "No registration required" }) }) : adventure.travellers.length > 0 && totalSlots > 0 && (() => {
3103
3129
  var _a2, _b2;
3104
3130
  const completed = adventure.travellers.filter((t) => t.status === "completed").length;
3105
3131
  const percent = Math.round(completed / totalSlots * 100);
@@ -5258,6 +5284,7 @@ function BookingPaymentConfirmationEmail({
5258
5284
  notIncluded: adventure.notIncluded,
5259
5285
  lineItems: lineItemsToPass,
5260
5286
  subtotal: adventure.subtotal,
5287
+ rooms: adventure.rooms,
5261
5288
  labels: {
5262
5289
  travellersHeading: l.travellersLabel,
5263
5290
  detailsHeading: l.itineraryLabel,