@planetaexo/design-system 0.45.0 → 0.46.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
@@ -769,7 +769,17 @@ interface BookingPaymentConfirmationEmailLabels {
769
769
  adventuresLabel?: string;
770
770
  totalTravellersLabel?: string;
771
771
  agentLabel?: string;
772
- /** Label da linha opcional de endereço da pessoa responsável. Default EN: "Address". */
772
+ /** Heading do card "Booking person" (espelha o bloco do /o e /b). Default EN: "Booking person". */
773
+ bookingPersonHeading?: string;
774
+ /** Rótulo do campo nome no card "Booking person". Default EN: "Name". */
775
+ nameLabel?: string;
776
+ /** Rótulo do campo e-mail no card "Booking person". Default EN: "Email". */
777
+ emailLabel?: string;
778
+ /** Rótulo do campo telefone no card "Booking person". Default EN: "Phone". */
779
+ phoneLabel?: string;
780
+ /** Rótulo do campo país no card "Booking person". Default EN: "Country". */
781
+ countryLabel?: string;
782
+ /** Rótulo do campo de endereço de cobrança no card "Booking person". Default EN: "Billing address". */
773
783
  addressLabel?: string;
774
784
  adultsUnit?: string;
775
785
  childrenUnit?: string;
@@ -867,10 +877,16 @@ interface BookingPaymentConfirmationEmailProps {
867
877
  agent: string;
868
878
  /**
869
879
  * Endereço de cobrança da pessoa responsável, já montado como string multi-linha
870
- * pelo backend (`formatPostalAddress`). Quando ausente/vazio, a row "Address"
871
- * não é adicionada ao BookingSummary.
880
+ * pelo backend (`formatPostalAddress`). Quando ausente/vazio, o bloco dedicado
881
+ * "Billing address" não é renderizado.
872
882
  */
873
883
  responsiblePersonAddress?: string;
884
+ /** E-mail da pessoa responsável (campo do card "Booking person"). */
885
+ responsiblePersonEmail?: string;
886
+ /** Telefone da pessoa responsável (campo do card "Booking person"). */
887
+ responsiblePersonPhone?: string;
888
+ /** País da pessoa responsável — JÁ SANITIZADO pelo backend (só ISO-2 válido / nome; vazio = campo oculto). */
889
+ responsiblePersonCountry?: string;
874
890
  /** URL para ver os detalhes completos do booking */
875
891
  viewBookingUrl?: string;
876
892
  /** Optional label overrides for i18n */
@@ -886,7 +902,7 @@ interface BookingPaymentConfirmationEmailProps {
886
902
  */
887
903
  flow?: "auto" | "manual";
888
904
  }
889
- declare function BookingPaymentConfirmationEmail({ recipientName, logoUrl, bookingReference, adventures, summaryLineItems, subtotal, total, depositInfo, agent, responsiblePersonAddress, viewBookingUrl, labels, className, flow, }: BookingPaymentConfirmationEmailProps): react_jsx_runtime.JSX.Element;
905
+ declare function BookingPaymentConfirmationEmail({ recipientName, logoUrl, bookingReference, adventures, summaryLineItems, subtotal, total, depositInfo, agent, responsiblePersonAddress, responsiblePersonEmail, responsiblePersonPhone, responsiblePersonCountry, viewBookingUrl, labels, className, flow, }: BookingPaymentConfirmationEmailProps): react_jsx_runtime.JSX.Element;
890
906
 
891
907
  interface BookingAdventureCardLineItem {
892
908
  /** Valor unitário formatado, ex.: "R$ 1.500,00". Opcional quando o caller usa `label` livre. */
@@ -1049,8 +1065,6 @@ interface BookingCreatedEmailLabels {
1049
1065
  startingDateLabel?: string;
1050
1066
  numberOfPeopleLabel?: string;
1051
1067
  hostLabel?: string;
1052
- /** Label da linha opcional de endereço da pessoa responsável. Default EN: "Address". */
1053
- addressLabel?: string;
1054
1068
  postCtaMessage?: string;
1055
1069
  closingMessage?: string;
1056
1070
  /** Cabeçalho da seção opcional de próximos passos (ex.: "What you need to do:"). */
@@ -1090,12 +1104,6 @@ interface BookingCreatedEmailProps {
1090
1104
  * Apenas renderizado quando `nextSteps` está presente.
1091
1105
  */
1092
1106
  nextStepsImportant?: string;
1093
- /**
1094
- * Endereço de cobrança da pessoa responsável, já montado como string multi-linha
1095
- * pelo backend (`formatPostalAddress`). Quando ausente/vazio, a row "Address"
1096
- * não é adicionada ao BookingSummary.
1097
- */
1098
- responsiblePersonAddress?: string;
1099
1107
  /**
1100
1108
  * Label que precede o link puro da reserva renderizado antes do `closingMessage`
1101
1109
  * (ex.: "Direct link to your booking:"). Quando informada e `addTravellersUrl` existe,
@@ -1105,7 +1113,7 @@ interface BookingCreatedEmailProps {
1105
1113
  */
1106
1114
  directBookingLinkLabel?: string;
1107
1115
  }
1108
- declare function BookingCreatedEmail({ recipientName, addTravellersUrl, logoUrl, bookingNumber, activity, adventure, startingDate, numberOfPeople, host, labels, className, nextSteps, nextStepsImportant, responsiblePersonAddress, directBookingLinkLabel, }: BookingCreatedEmailProps): react_jsx_runtime.JSX.Element;
1116
+ declare function BookingCreatedEmail({ recipientName, addTravellersUrl, logoUrl, bookingNumber, activity, adventure, startingDate, numberOfPeople, host, labels, className, nextSteps, nextStepsImportant, directBookingLinkLabel, }: BookingCreatedEmailProps): react_jsx_runtime.JSX.Element;
1109
1117
 
1110
1118
  interface BookingSummaryRow {
1111
1119
  /** Label da linha (coluna esquerda, mutedForeground). */
package/dist/index.d.ts CHANGED
@@ -769,7 +769,17 @@ interface BookingPaymentConfirmationEmailLabels {
769
769
  adventuresLabel?: string;
770
770
  totalTravellersLabel?: string;
771
771
  agentLabel?: string;
772
- /** Label da linha opcional de endereço da pessoa responsável. Default EN: "Address". */
772
+ /** Heading do card "Booking person" (espelha o bloco do /o e /b). Default EN: "Booking person". */
773
+ bookingPersonHeading?: string;
774
+ /** Rótulo do campo nome no card "Booking person". Default EN: "Name". */
775
+ nameLabel?: string;
776
+ /** Rótulo do campo e-mail no card "Booking person". Default EN: "Email". */
777
+ emailLabel?: string;
778
+ /** Rótulo do campo telefone no card "Booking person". Default EN: "Phone". */
779
+ phoneLabel?: string;
780
+ /** Rótulo do campo país no card "Booking person". Default EN: "Country". */
781
+ countryLabel?: string;
782
+ /** Rótulo do campo de endereço de cobrança no card "Booking person". Default EN: "Billing address". */
773
783
  addressLabel?: string;
774
784
  adultsUnit?: string;
775
785
  childrenUnit?: string;
@@ -867,10 +877,16 @@ interface BookingPaymentConfirmationEmailProps {
867
877
  agent: string;
868
878
  /**
869
879
  * Endereço de cobrança da pessoa responsável, já montado como string multi-linha
870
- * pelo backend (`formatPostalAddress`). Quando ausente/vazio, a row "Address"
871
- * não é adicionada ao BookingSummary.
880
+ * pelo backend (`formatPostalAddress`). Quando ausente/vazio, o bloco dedicado
881
+ * "Billing address" não é renderizado.
872
882
  */
873
883
  responsiblePersonAddress?: string;
884
+ /** E-mail da pessoa responsável (campo do card "Booking person"). */
885
+ responsiblePersonEmail?: string;
886
+ /** Telefone da pessoa responsável (campo do card "Booking person"). */
887
+ responsiblePersonPhone?: string;
888
+ /** País da pessoa responsável — JÁ SANITIZADO pelo backend (só ISO-2 válido / nome; vazio = campo oculto). */
889
+ responsiblePersonCountry?: string;
874
890
  /** URL para ver os detalhes completos do booking */
875
891
  viewBookingUrl?: string;
876
892
  /** Optional label overrides for i18n */
@@ -886,7 +902,7 @@ interface BookingPaymentConfirmationEmailProps {
886
902
  */
887
903
  flow?: "auto" | "manual";
888
904
  }
889
- declare function BookingPaymentConfirmationEmail({ recipientName, logoUrl, bookingReference, adventures, summaryLineItems, subtotal, total, depositInfo, agent, responsiblePersonAddress, viewBookingUrl, labels, className, flow, }: BookingPaymentConfirmationEmailProps): react_jsx_runtime.JSX.Element;
905
+ declare function BookingPaymentConfirmationEmail({ recipientName, logoUrl, bookingReference, adventures, summaryLineItems, subtotal, total, depositInfo, agent, responsiblePersonAddress, responsiblePersonEmail, responsiblePersonPhone, responsiblePersonCountry, viewBookingUrl, labels, className, flow, }: BookingPaymentConfirmationEmailProps): react_jsx_runtime.JSX.Element;
890
906
 
891
907
  interface BookingAdventureCardLineItem {
892
908
  /** Valor unitário formatado, ex.: "R$ 1.500,00". Opcional quando o caller usa `label` livre. */
@@ -1049,8 +1065,6 @@ interface BookingCreatedEmailLabels {
1049
1065
  startingDateLabel?: string;
1050
1066
  numberOfPeopleLabel?: string;
1051
1067
  hostLabel?: string;
1052
- /** Label da linha opcional de endereço da pessoa responsável. Default EN: "Address". */
1053
- addressLabel?: string;
1054
1068
  postCtaMessage?: string;
1055
1069
  closingMessage?: string;
1056
1070
  /** Cabeçalho da seção opcional de próximos passos (ex.: "What you need to do:"). */
@@ -1090,12 +1104,6 @@ interface BookingCreatedEmailProps {
1090
1104
  * Apenas renderizado quando `nextSteps` está presente.
1091
1105
  */
1092
1106
  nextStepsImportant?: string;
1093
- /**
1094
- * Endereço de cobrança da pessoa responsável, já montado como string multi-linha
1095
- * pelo backend (`formatPostalAddress`). Quando ausente/vazio, a row "Address"
1096
- * não é adicionada ao BookingSummary.
1097
- */
1098
- responsiblePersonAddress?: string;
1099
1107
  /**
1100
1108
  * Label que precede o link puro da reserva renderizado antes do `closingMessage`
1101
1109
  * (ex.: "Direct link to your booking:"). Quando informada e `addTravellersUrl` existe,
@@ -1105,7 +1113,7 @@ interface BookingCreatedEmailProps {
1105
1113
  */
1106
1114
  directBookingLinkLabel?: string;
1107
1115
  }
1108
- declare function BookingCreatedEmail({ recipientName, addTravellersUrl, logoUrl, bookingNumber, activity, adventure, startingDate, numberOfPeople, host, labels, className, nextSteps, nextStepsImportant, responsiblePersonAddress, directBookingLinkLabel, }: BookingCreatedEmailProps): react_jsx_runtime.JSX.Element;
1116
+ declare function BookingCreatedEmail({ recipientName, addTravellersUrl, logoUrl, bookingNumber, activity, adventure, startingDate, numberOfPeople, host, labels, className, nextSteps, nextStepsImportant, directBookingLinkLabel, }: BookingCreatedEmailProps): react_jsx_runtime.JSX.Element;
1109
1117
 
1110
1118
  interface BookingSummaryRow {
1111
1119
  /** Label da linha (coluna esquerda, mutedForeground). */
package/dist/index.js CHANGED
@@ -4788,7 +4788,12 @@ var DEFAULT_LABELS3 = {
4788
4788
  adventuresLabel: "Adventures",
4789
4789
  totalTravellersLabel: "Total Travellers",
4790
4790
  agentLabel: "Agent",
4791
- addressLabel: "Address",
4791
+ bookingPersonHeading: "Booking person",
4792
+ nameLabel: "Name",
4793
+ emailLabel: "Email",
4794
+ phoneLabel: "Phone",
4795
+ countryLabel: "Country",
4796
+ addressLabel: "Billing address",
4792
4797
  adultsUnit: "adult(s)",
4793
4798
  childrenUnit: "child(ren)",
4794
4799
  travellersLabel: "Travellers",
@@ -4820,6 +4825,9 @@ function BookingPaymentConfirmationEmail({
4820
4825
  depositInfo,
4821
4826
  agent,
4822
4827
  responsiblePersonAddress,
4828
+ responsiblePersonEmail,
4829
+ responsiblePersonPhone,
4830
+ responsiblePersonCountry,
4823
4831
  viewBookingUrl,
4824
4832
  labels,
4825
4833
  className,
@@ -4831,6 +4839,26 @@ function BookingPaymentConfirmationEmail({
4831
4839
  return (_a = a.travellers) != null ? _a : [];
4832
4840
  });
4833
4841
  const isManualFlow = flow === "manual";
4842
+ const personFieldLabel = {
4843
+ margin: "0 0 2px 0",
4844
+ fontSize: "11px",
4845
+ fontWeight: 700,
4846
+ color: emailTokens.mutedForeground,
4847
+ textTransform: "uppercase",
4848
+ letterSpacing: "0.08em",
4849
+ fontFamily: emailTokens.fontFamily
4850
+ };
4851
+ const personFieldValue = {
4852
+ margin: 0,
4853
+ fontSize: "14px",
4854
+ color: emailTokens.foreground,
4855
+ lineHeight: "1.5"
4856
+ };
4857
+ const personFieldCell = {
4858
+ verticalAlign: "top",
4859
+ padding: "0 12px 14px 0",
4860
+ width: "50%"
4861
+ };
4834
4862
  const ctaStyle = {
4835
4863
  display: "inline-block",
4836
4864
  backgroundColor: emailTokens.primary,
@@ -4898,8 +4926,7 @@ function BookingPaymentConfirmationEmail({
4898
4926
  { label: l.bookingNumberLabel, value: bookingReference, valueColor: emailTokens.primary },
4899
4927
  { label: l.adventuresLabel, value: adventures.length },
4900
4928
  { label: l.totalTravellersLabel, value: allTravellers.length },
4901
- { label: l.agentLabel, value: agent },
4902
- ...responsiblePersonAddress && responsiblePersonAddress.trim().length > 0 ? [{ label: l.addressLabel, value: responsiblePersonAddress }] : []
4929
+ { label: l.agentLabel, value: agent }
4903
4930
  ]
4904
4931
  }
4905
4932
  ) }),
@@ -5008,6 +5035,50 @@ function BookingPaymentConfirmationEmail({
5008
5035
  ) })
5009
5036
  ] }),
5010
5037
  /* @__PURE__ */ jsx("hr", { style: { border: "none", borderTop: `1px solid ${emailTokens.border}`, margin: "0 32px" } }),
5038
+ /* @__PURE__ */ jsx("div", { style: { paddingLeft: "32px", paddingRight: "32px", paddingTop: "32px", paddingBottom: "32px" }, children: /* @__PURE__ */ jsxs("div", { style: { borderRadius: "16px", border: `1px solid ${emailTokens.border}`, padding: "20px" }, children: [
5039
+ /* @__PURE__ */ jsx(
5040
+ "p",
5041
+ {
5042
+ style: {
5043
+ margin: "0 0 16px 0",
5044
+ fontSize: "12px",
5045
+ fontWeight: 700,
5046
+ color: emailTokens.mutedForeground,
5047
+ textTransform: "uppercase",
5048
+ letterSpacing: "0.1em",
5049
+ fontFamily: emailTokens.fontFamily
5050
+ },
5051
+ children: l.bookingPersonHeading
5052
+ }
5053
+ ),
5054
+ /* @__PURE__ */ jsx("table", { cellPadding: 0, cellSpacing: 0, style: { width: "100%", borderCollapse: "collapse" }, children: /* @__PURE__ */ jsxs("tbody", { children: [
5055
+ /* @__PURE__ */ jsxs("tr", { children: [
5056
+ /* @__PURE__ */ jsxs("td", { style: personFieldCell, children: [
5057
+ /* @__PURE__ */ jsx("p", { style: personFieldLabel, children: l.nameLabel }),
5058
+ /* @__PURE__ */ jsx("p", { style: __spreadProps(__spreadValues({}, personFieldValue), { fontWeight: 600 }), children: recipientName })
5059
+ ] }),
5060
+ /* @__PURE__ */ jsxs("td", { style: personFieldCell, children: [
5061
+ /* @__PURE__ */ jsx("p", { style: personFieldLabel, children: l.emailLabel }),
5062
+ /* @__PURE__ */ jsx("p", { style: personFieldValue, children: responsiblePersonEmail || "\u2014" })
5063
+ ] })
5064
+ ] }),
5065
+ /* @__PURE__ */ jsxs("tr", { children: [
5066
+ /* @__PURE__ */ jsxs("td", { style: personFieldCell, children: [
5067
+ /* @__PURE__ */ jsx("p", { style: personFieldLabel, children: l.phoneLabel }),
5068
+ /* @__PURE__ */ jsx("p", { style: personFieldValue, children: responsiblePersonPhone || "\u2014" })
5069
+ ] }),
5070
+ /* @__PURE__ */ jsx("td", { style: personFieldCell, children: responsiblePersonCountry && responsiblePersonCountry.trim().length > 0 ? /* @__PURE__ */ jsxs(Fragment, { children: [
5071
+ /* @__PURE__ */ jsx("p", { style: personFieldLabel, children: l.countryLabel }),
5072
+ /* @__PURE__ */ jsx("p", { style: personFieldValue, children: responsiblePersonCountry })
5073
+ ] }) : null })
5074
+ ] }),
5075
+ responsiblePersonAddress && responsiblePersonAddress.trim().length > 0 && /* @__PURE__ */ jsx("tr", { children: /* @__PURE__ */ jsxs("td", { colSpan: 2, style: __spreadProps(__spreadValues({}, personFieldCell), { width: "auto", paddingRight: 0, paddingBottom: 0 }), children: [
5076
+ /* @__PURE__ */ jsx("p", { style: personFieldLabel, children: l.addressLabel }),
5077
+ /* @__PURE__ */ jsx("p", { style: __spreadProps(__spreadValues({}, personFieldValue), { whiteSpace: "pre-line" }), children: responsiblePersonAddress })
5078
+ ] }) })
5079
+ ] }) })
5080
+ ] }) }),
5081
+ /* @__PURE__ */ jsx("hr", { style: { border: "none", borderTop: `1px solid ${emailTokens.border}`, margin: "0 32px" } }),
5011
5082
  /* @__PURE__ */ jsx("div", { style: { paddingLeft: "32px", paddingRight: "32px", paddingTop: "32px", paddingBottom: "40px" }, children: isManualFlow ? (
5012
5083
  // Manual flow: closing message + CTA no rodapé (substitui footerMessage/footerContact).
5013
5084
  /* @__PURE__ */ jsxs(Fragment, { children: [
@@ -5035,7 +5106,6 @@ var DEFAULT_LABELS4 = {
5035
5106
  startingDateLabel: "Starting Date:",
5036
5107
  numberOfPeopleLabel: "Number of People:",
5037
5108
  hostLabel: "Host:",
5038
- addressLabel: "Address:",
5039
5109
  postCtaMessage: "After adding everyone, you will also receive your own registration email, just like the other travellers. Please make sure everyone completes this step so we can organise everything properly.",
5040
5110
  closingMessage: "If you have any questions, just reply to this email \u2014 happy to help.",
5041
5111
  nextStepsHeading: "Next steps:"
@@ -5054,7 +5124,6 @@ function BookingCreatedEmail({
5054
5124
  className,
5055
5125
  nextSteps,
5056
5126
  nextStepsImportant,
5057
- responsiblePersonAddress,
5058
5127
  directBookingLinkLabel
5059
5128
  }) {
5060
5129
  const l = __spreadValues(__spreadValues({}, DEFAULT_LABELS4), labels);
@@ -5076,8 +5145,7 @@ function BookingCreatedEmail({
5076
5145
  { label: l.adventureLabel, value: adventure },
5077
5146
  { label: l.startingDateLabel, value: startingDate },
5078
5147
  { label: l.numberOfPeopleLabel, value: String(numberOfPeople) },
5079
- { label: l.hostLabel, value: host },
5080
- ...responsiblePersonAddress && responsiblePersonAddress.trim().length > 0 ? [{ label: l.addressLabel, value: responsiblePersonAddress }] : []
5148
+ { label: l.hostLabel, value: host }
5081
5149
  ];
5082
5150
  const showNextSteps = Array.isArray(nextSteps) && nextSteps.length > 0;
5083
5151
  return /* @__PURE__ */ jsxs(