@planetaexo/design-system 0.3.14 → 0.3.15

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.cjs CHANGED
@@ -1707,73 +1707,71 @@ function PaymentMethodSelector({
1707
1707
  )) })
1708
1708
  ] });
1709
1709
  }
1710
- var TERMS_CONTENT = [
1711
- {
1712
- heading: "1. Introdu\xE7\xE3o",
1713
- body: "Bem-vindo \xE0 PlanetaEXO. Ao acessar nosso site ou realizar uma reserva, voc\xEA concorda com estes Termos e Condi\xE7\xF5es. Por favor, leia-os atentamente antes de efetuar qualquer compra ou reserva."
1714
- },
1715
- {
1716
- heading: "2. Defini\xE7\xF5es",
1717
- body: '"PlanetaEXO" refere-se \xE0 empresa organizadora de viagens e experi\xEAncias. "Cliente" refere-se \xE0 pessoa que realiza a reserva. "Servi\xE7o" refere-se a qualquer pacote de viagem, aventura, passeio ou experi\xEAncia oferecida pela PlanetaEXO.'
1718
- },
1719
- {
1720
- heading: "3. Reservas e Confirma\xE7\xE3o",
1721
- body: "Uma reserva \xE9 considerada confirmada somente ap\xF3s o recebimento do pagamento (total ou dep\xF3sito conforme aplic\xE1vel) e o envio de confirma\xE7\xE3o por escrito pela PlanetaEXO. A PlanetaEXO reserva-se o direito de recusar ou cancelar reservas a seu crit\xE9rio."
1722
- },
1723
- {
1724
- heading: "4. Pre\xE7os e Pagamento",
1725
- body: "Todos os pre\xE7os s\xE3o expressos na moeda indicada na proposta e podem estar sujeitos a varia\xE7\xE3o cambial. O pagamento do dep\xF3sito ou valor total deve ser realizado nos prazos estipulados na proposta. A PlanetaEXO n\xE3o se responsabiliza por flutua\xE7\xF5es cambiais ap\xF3s a confirma\xE7\xE3o da reserva."
1726
- },
1727
- {
1728
- heading: "5. Pol\xEDtica de Cancelamento",
1729
- body: "Cancelamentos devem ser comunicados por escrito \xE0 PlanetaEXO. As penalidades de cancelamento variam conforme o prazo de anteced\xEAncia: cancelamentos com mais de 30 dias de anteced\xEAncia incorrem em perda do dep\xF3sito; cancelamentos com menos de 30 dias incorrem em perda de 50% do valor total; cancelamentos com menos de 15 dias incorrem em perda de 100% do valor total. Casos especiais (for\xE7a maior, emerg\xEAncias m\xE9dicas comprovadas) ser\xE3o avaliados individualmente."
1710
+ var TERMS_I18N = {
1711
+ en: {
1712
+ before: "I have read and accept the ",
1713
+ link: "terms and conditions",
1714
+ after: " of the reservation.",
1715
+ modalTitle: "Terms and Conditions",
1716
+ closeLabel: "Close"
1730
1717
  },
1731
- {
1732
- heading: "6. Altera\xE7\xF5es de Itiner\xE1rio",
1733
- body: "A PlanetaEXO reserva-se o direito de modificar itiner\xE1rios, acomoda\xE7\xF5es ou atividades por raz\xF5es de seguran\xE7a, condi\xE7\xF5es clim\xE1ticas, for\xE7a maior ou outras circunst\xE2ncias fora de seu controle, sem que isso implique em responsabilidade por perdas ou danos. Em caso de altera\xE7\xF5es significativas, o cliente ser\xE1 notificado o mais brevemente poss\xEDvel."
1718
+ pt: {
1719
+ before: "Li e aceito os ",
1720
+ link: "termos e condi\xE7\xF5es",
1721
+ after: " da reserva.",
1722
+ modalTitle: "Termos e Condi\xE7\xF5es",
1723
+ closeLabel: "Fechar"
1734
1724
  },
1735
- {
1736
- heading: "7. Responsabilidades do Cliente",
1737
- body: "O cliente \xE9 respons\xE1vel por: (a) garantir que possui documenta\xE7\xE3o v\xE1lida (passaporte, vistos, vacinas) para os destinos da viagem; (b) contratar seguro de viagem adequado; (c) informar eventuais condi\xE7\xF5es m\xE9dicas ou restri\xE7\xF5es alimentares relevantes; (d) cumprir as leis e regulamentos locais dos destinos visitados."
1738
- },
1739
- {
1740
- heading: "8. Seguro de Viagem",
1741
- body: "Recomendamos fortemente a contrata\xE7\xE3o de seguro de viagem abrangente que cubra cancelamento, emerg\xEAncias m\xE9dicas, evacua\xE7\xE3o e bagagem. A PlanetaEXO n\xE3o se responsabiliza por despesas resultantes de situa\xE7\xF5es cobertas por seguro que o cliente tenha optado por n\xE3o contratar."
1725
+ fr: {
1726
+ before: "J'ai lu et j'accepte les ",
1727
+ link: "conditions g\xE9n\xE9rales",
1728
+ after: " de la r\xE9servation.",
1729
+ modalTitle: "Conditions G\xE9n\xE9rales",
1730
+ closeLabel: "Fermer"
1742
1731
  },
1732
+ de: {
1733
+ before: "Ich habe die ",
1734
+ link: "Allgemeinen Gesch\xE4ftsbedingungen",
1735
+ after: " gelesen und akzeptiere sie.",
1736
+ modalTitle: "Allgemeine Gesch\xE4ftsbedingungen",
1737
+ closeLabel: "Schlie\xDFen"
1738
+ }
1739
+ };
1740
+ var TERMS_CONTENT = [
1743
1741
  {
1744
- heading: "9. Limita\xE7\xE3o de Responsabilidade",
1745
- body: "A responsabilidade da PlanetaEXO limita-se ao valor total pago pelo cliente. A PlanetaEXO n\xE3o se responsabiliza por danos indiretos, perdas de receita, danos morais ou outras consequ\xEAncias decorrentes de falhas em servi\xE7os de terceiros (companhias a\xE9reas, hot\xE9is, operadores locais) ou eventos de for\xE7a maior."
1742
+ body: "These Terms and Conditions govern your booking with PlanetaEXO. By making a reservation, you agree to the following terms. Please read them carefully before confirming your booking."
1746
1743
  },
1747
1744
  {
1748
- heading: "10. Sa\xFAde e Seguran\xE7a",
1749
- body: "Algumas atividades oferecidas pela PlanetaEXO podem envolver riscos f\xEDsicos. O cliente deve avaliar sua condi\xE7\xE3o de sa\xFAde e aptid\xE3o f\xEDsica antes de confirmar a reserva. A PlanetaEXO pode recusar a participa\xE7\xE3o de clientes que n\xE3o atendam aos requisitos m\xEDnimos de sa\xFAde e seguran\xE7a de uma atividade."
1745
+ heading: "1. Bookings and payments",
1746
+ body: "A booking is confirmed only upon receipt of the required deposit or full payment as specified in your proposal. Prices are quoted in the currency indicated in your proposal. Full payment is due prior to departure on the date stipulated in your booking confirmation. PlanetaEXO reserves the right to cancel unconfirmed reservations and is not responsible for exchange rate fluctuations after payment is received."
1750
1747
  },
1751
1748
  {
1752
- heading: "11. Privacidade e Dados Pessoais",
1753
- body: "As informa\xE7\xF5es fornecidas pelo cliente ser\xE3o utilizadas exclusivamente para a presta\xE7\xE3o dos servi\xE7os contratados e para fins operacionais relacionados. A PlanetaEXO compromete-se a proteger os dados pessoais dos clientes conforme a legisla\xE7\xE3o aplic\xE1vel (LGPD no Brasil). Os dados n\xE3o ser\xE3o vendidos ou compartilhados com terceiros, exceto fornecedores necess\xE1rios para a execu\xE7\xE3o dos servi\xE7os."
1749
+ heading: "2. Cancellation policy",
1750
+ body: "All cancellations must be submitted in writing. The following fees apply: more than 30 days before departure \u2014 loss of deposit; 15\u201330 days before departure \u2014 50% of the total cost; fewer than 15 days before departure \u2014 100% of the total cost. Cases involving force majeure or documented medical emergencies will be evaluated individually."
1754
1751
  },
1755
1752
  {
1756
- heading: "12. Propriedade Intelectual",
1757
- body: "Todo o conte\xFAdo do site e dos materiais da PlanetaEXO (textos, imagens, logotipos, itiner\xE1rios) \xE9 protegido por direitos autorais. \xC9 proibida a reprodu\xE7\xE3o, distribui\xE7\xE3o ou uso comercial sem autoriza\xE7\xE3o pr\xE9via e expressa da PlanetaEXO."
1753
+ heading: "3. Changes and modifications",
1754
+ body: "PlanetaEXO reserves the right to modify itineraries, accommodations, or activities for reasons of safety, weather conditions, force majeure, or other circumstances beyond our control. You will be notified of any significant changes as promptly as possible. Minor adjustments do not entitle the traveller to a refund or compensation."
1758
1755
  },
1759
1756
  {
1760
- heading: "13. Resolu\xE7\xE3o de Disputas",
1761
- body: "Eventuais disputas ser\xE3o resolvidas preferencialmente por media\xE7\xE3o. Caso n\xE3o haja acordo, as partes elegem o foro da Comarca de S\xE3o Paulo, Brasil, para dirimir quaisquer controv\xE9rsias decorrentes destes Termos, com ren\xFAncia de qualquer outro, por mais privilegiado que seja."
1757
+ heading: "4. Travel insurance",
1758
+ body: "We strongly recommend that all travellers obtain comprehensive travel insurance covering trip cancellation, medical emergencies, evacuation, and baggage loss prior to departure. PlanetaEXO is not liable for costs or losses that would have been covered by adequate travel insurance."
1762
1759
  },
1763
1760
  {
1764
- heading: "14. Aceita\xE7\xE3o dos Termos",
1765
- body: "Ao realizar uma reserva com a PlanetaEXO, o cliente declara ter lido, compreendido e concordado com todos estes Termos e Condi\xE7\xF5es. Estes termos podem ser atualizados periodicamente; a vers\xE3o vigente estar\xE1 sempre dispon\xEDvel no site oficial da PlanetaEXO."
1761
+ heading: "5. Liability",
1762
+ body: "PlanetaEXO's liability is limited to the total amount paid by the client for the services in question. We are not responsible for indirect losses, consequential damages, or service failures caused by third-party providers (airlines, hotels, local operators) or force majeure events. Participation in adventure activities carries inherent risks; travellers acknowledge and accept these risks by confirming their booking."
1766
1763
  }
1767
1764
  ];
1768
1765
  function TermsSection({
1769
1766
  title = "Terms and conditions",
1770
1767
  checked,
1771
1768
  onChange,
1772
- label,
1773
1769
  warningMessage,
1774
- viewTermsLabel = "Ver termos e condi\xE7\xF5es completos"
1770
+ locale = "en"
1775
1771
  }) {
1772
+ var _a;
1776
1773
  const [modalOpen, setModalOpen] = React19__namespace.useState(false);
1774
+ const i18n = (_a = TERMS_I18N[locale]) != null ? _a : TERMS_I18N.en;
1777
1775
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "rounded-xl border border-border p-4 flex flex-col gap-3", children: [
1778
1776
  /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs font-bold text-muted-foreground font-heading uppercase tracking-widest", children: title }),
1779
1777
  /* @__PURE__ */ jsxRuntime.jsxs("label", { className: "flex items-start gap-2.5 cursor-pointer", children: [
@@ -1786,34 +1784,69 @@ function TermsSection({
1786
1784
  className: "h-4 w-4 shrink-0 mt-0.5 rounded border-border accent-primary cursor-pointer"
1787
1785
  }
1788
1786
  ),
1789
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-sm font-sans text-foreground/80 leading-snug", children: label })
1787
+ /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "text-sm font-sans text-foreground/80 leading-snug", children: [
1788
+ i18n.before,
1789
+ /* @__PURE__ */ jsxRuntime.jsx(
1790
+ "button",
1791
+ {
1792
+ type: "button",
1793
+ onClick: () => setModalOpen(true),
1794
+ className: "text-primary underline underline-offset-2 hover:text-primary/80 transition-colors",
1795
+ children: i18n.link
1796
+ }
1797
+ ),
1798
+ i18n.after
1799
+ ] })
1790
1800
  ] }),
1791
- /* @__PURE__ */ jsxRuntime.jsx(
1792
- "button",
1793
- {
1794
- type: "button",
1795
- onClick: () => setModalOpen(true),
1796
- className: "self-start text-xs text-primary underline underline-offset-2 font-sans hover:text-primary/80 transition-colors",
1797
- children: viewTermsLabel
1798
- }
1799
- ),
1800
1801
  !checked && warningMessage && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs text-amber-400 flex items-center gap-1", children: warningMessage }),
1801
1802
  /* @__PURE__ */ jsxRuntime.jsx(Dialog, { open: modalOpen, onOpenChange: setModalOpen, children: /* @__PURE__ */ jsxRuntime.jsxs(DialogContent, { className: "max-w-2xl w-full max-h-[80vh] overflow-y-auto", children: [
1802
- /* @__PURE__ */ jsxRuntime.jsx(DialogHeader, { children: /* @__PURE__ */ jsxRuntime.jsx(DialogTitle, { className: "font-heading text-xl", children: "Termos e Condi\xE7\xF5es \u2014 PlanetaEXO" }) }),
1803
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-4 space-y-5 text-sm font-sans text-foreground/80 leading-relaxed", children: TERMS_CONTENT.map((section) => /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
1804
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "font-bold text-foreground font-heading mb-1", children: section.heading }),
1803
+ /* @__PURE__ */ jsxRuntime.jsx(DialogHeader, { children: /* @__PURE__ */ jsxRuntime.jsxs(DialogTitle, { className: "font-heading text-xl", children: [
1804
+ i18n.modalTitle,
1805
+ " \u2014 PlanetaEXO"
1806
+ ] }) }),
1807
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-4 space-y-5 text-sm font-sans text-foreground/80 leading-relaxed", children: TERMS_CONTENT.map((section, i) => /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
1808
+ section.heading && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "font-bold text-foreground font-heading mb-1", children: section.heading }),
1805
1809
  /* @__PURE__ */ jsxRuntime.jsx("p", { children: section.body })
1806
- ] }, section.heading)) }),
1810
+ ] }, i)) }),
1807
1811
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-6 flex justify-end", children: /* @__PURE__ */ jsxRuntime.jsx(
1808
1812
  DialogClose,
1809
1813
  {
1810
1814
  className: "px-4 py-2 rounded-lg bg-primary text-white text-sm font-heading font-semibold hover:bg-primary/90 transition-colors",
1811
- children: "Fechar"
1815
+ children: i18n.closeLabel
1812
1816
  }
1813
1817
  ) })
1814
1818
  ] }) })
1815
1819
  ] });
1816
1820
  }
1821
+ function BookingConfirmedCard({
1822
+ title = "Booking confirmed!",
1823
+ email,
1824
+ message,
1825
+ onBack,
1826
+ backLabel = "Back to offer"
1827
+ }) {
1828
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "rounded-2xl border border-border bg-card p-8 flex flex-col items-center gap-6 text-center", children: [
1829
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex h-20 w-20 items-center justify-center rounded-full bg-primary/10", children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.CheckCircle2Icon, { className: "w-10 h-10 text-primary" }) }),
1830
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
1831
+ /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "text-2xl font-black text-foreground font-heading", children: title }),
1832
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-2 text-sm text-muted-foreground font-sans max-w-sm mx-auto leading-relaxed", children: message != null ? message : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
1833
+ "A confirmation email has been sent to",
1834
+ " ",
1835
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "font-semibold text-foreground", children: email || "your email" }),
1836
+ ". Our team will be in touch shortly."
1837
+ ] }) })
1838
+ ] }),
1839
+ onBack && /* @__PURE__ */ jsxRuntime.jsx(
1840
+ "button",
1841
+ {
1842
+ type: "button",
1843
+ onClick: onBack,
1844
+ className: "rounded-full border border-primary px-6 py-2.5 text-sm font-bold text-primary font-heading hover:bg-primary/10 transition-colors",
1845
+ children: backLabel
1846
+ }
1847
+ )
1848
+ ] });
1849
+ }
1817
1850
  var WIZARD_STEPS = [
1818
1851
  { id: "responsible", label: "Responsible party details" },
1819
1852
  { id: "travellers", label: "Travellers" },
@@ -1857,7 +1890,6 @@ function BookingWizard({
1857
1890
  const [payAmount, setPayAmount] = React19__namespace.useState("full");
1858
1891
  const [payMethod, setPayMethod] = React19__namespace.useState("stripe");
1859
1892
  const [termsAccepted, setTermsAccepted] = React19__namespace.useState(false);
1860
- const [termsModalOpen, setTermsModalOpen] = React19__namespace.useState(false);
1861
1893
  const setR = (k, v) => setResponsible((p) => __spreadProps(__spreadValues({}, p), { [k]: v }));
1862
1894
  const setT = (i, k, v) => setTravellers((prev) => prev.map((t, idx) => idx === i ? __spreadProps(__spreadValues({}, t), { [k]: v }) : t));
1863
1895
  const setTDob = (i, v) => setTravellers((prev) => prev.map((t, idx) => idx === i ? __spreadProps(__spreadValues({}, t), { dateOfBirth: v }) : t));
@@ -1897,34 +1929,7 @@ function BookingWizard({
1897
1929
  const depositLabel = depositInfo ? `Pay deposit (${depositInfo.depositPercent}%) \u2014 ${depositInfo.depositAmount}` : "Pay deposit";
1898
1930
  const fullLabel = `Pay full amount \u2014 ${total}`;
1899
1931
  if (step === "confirmed") {
1900
- return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "rounded-2xl border border-border bg-card p-8 flex flex-col items-center gap-6 text-center", children: [
1901
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex h-20 w-20 items-center justify-center rounded-full bg-primary/10", children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.CheckCircle2Icon, { className: "w-10 h-10 text-primary" }) }),
1902
- /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
1903
- /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "text-2xl font-black text-foreground font-heading", children: "Booking confirmed!" }),
1904
- /* @__PURE__ */ jsxRuntime.jsxs("p", { className: "mt-2 text-sm text-muted-foreground font-sans max-w-sm mx-auto leading-relaxed", children: [
1905
- "A confirmation email has been sent to",
1906
- " ",
1907
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "font-semibold text-foreground", children: responsible.email || "your email" }),
1908
- ". Our team will be in touch shortly."
1909
- ] })
1910
- ] }),
1911
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "rounded-xl border border-border bg-muted/30 px-6 py-4 w-full max-w-xs", children: [
1912
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs text-muted-foreground font-sans uppercase tracking-wider", children: "Booking reference" }),
1913
- /* @__PURE__ */ jsxRuntime.jsxs("p", { className: "text-lg font-black text-primary font-heading mt-1", children: [
1914
- "PEX-",
1915
- Math.random().toString(36).slice(2, 8).toUpperCase()
1916
- ] })
1917
- ] }),
1918
- /* @__PURE__ */ jsxRuntime.jsx(
1919
- "button",
1920
- {
1921
- type: "button",
1922
- onClick: onCancel,
1923
- className: "rounded-full border border-primary px-6 py-2.5 text-sm font-bold text-primary font-heading hover:bg-primary/10 transition-colors",
1924
- children: "Back to offer"
1925
- }
1926
- )
1927
- ] });
1932
+ return /* @__PURE__ */ jsxRuntime.jsx(BookingConfirmedCard, { email: responsible.email, onBack: onCancel });
1928
1933
  }
1929
1934
  return /* @__PURE__ */ jsxRuntime.jsx(
1930
1935
  BookingShell,
@@ -2055,53 +2060,9 @@ function BookingWizard({
2055
2060
  TermsSection,
2056
2061
  {
2057
2062
  checked: termsAccepted,
2058
- onChange: setTermsAccepted,
2059
- label: /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
2060
- "I have read and accept the",
2061
- " ",
2062
- /* @__PURE__ */ jsxRuntime.jsx(
2063
- "button",
2064
- {
2065
- type: "button",
2066
- onClick: () => setTermsModalOpen(true),
2067
- className: "underline underline-offset-2 text-primary hover:text-primary/80 transition-colors font-semibold",
2068
- children: "terms and conditions"
2069
- }
2070
- ),
2071
- " ",
2072
- "of the reservation."
2073
- ] })
2063
+ onChange: setTermsAccepted
2074
2064
  }
2075
- ),
2076
- /* @__PURE__ */ jsxRuntime.jsx(Dialog, { open: termsModalOpen, onOpenChange: setTermsModalOpen, children: /* @__PURE__ */ jsxRuntime.jsxs(DialogContent, { className: "!max-w-[80vw] w-[80vw] max-h-[85vh] overflow-y-auto", children: [
2077
- /* @__PURE__ */ jsxRuntime.jsx(DialogHeader, { children: /* @__PURE__ */ jsxRuntime.jsx(DialogTitle, { className: "font-heading text-xl", children: "Terms and Conditions" }) }),
2078
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col gap-4 text-sm font-sans text-foreground/80 leading-relaxed", children: [
2079
- /* @__PURE__ */ jsxRuntime.jsx("p", { children: 'These terms and conditions ("Terms") govern the booking of travel experiences offered through Planeta EXO ("Company"). By confirming a booking, you agree to these Terms in full.' }),
2080
- /* @__PURE__ */ jsxRuntime.jsx("h4", { className: "font-bold text-foreground font-heading text-base", children: "1. Bookings and payments" }),
2081
- /* @__PURE__ */ jsxRuntime.jsx("p", { children: "A booking is confirmed upon receipt of the required deposit or full payment. The deposit amount is specified in your offer. The remaining balance must be paid by the balance due date stated in your offer." }),
2082
- /* @__PURE__ */ jsxRuntime.jsx("h4", { className: "font-bold text-foreground font-heading text-base", children: "2. Cancellation policy" }),
2083
- /* @__PURE__ */ jsxRuntime.jsx("p", { children: "Cancellations made more than 60 days before departure are eligible for a full refund of the deposit. Cancellations between 30 and 60 days forfeit 50% of the deposit. Cancellations within 30 days of departure are non-refundable." }),
2084
- /* @__PURE__ */ jsxRuntime.jsx("h4", { className: "font-bold text-foreground font-heading text-base", children: "3. Changes and modifications" }),
2085
- /* @__PURE__ */ jsxRuntime.jsx("p", { children: "The Company reserves the right to modify itineraries due to weather, safety, or operational reasons. Equivalent alternatives will be offered wherever possible." }),
2086
- /* @__PURE__ */ jsxRuntime.jsx("h4", { className: "font-bold text-foreground font-heading text-base", children: "4. Travel insurance" }),
2087
- /* @__PURE__ */ jsxRuntime.jsx("p", { children: "Comprehensive travel insurance is strongly recommended. The Company is not liable for costs arising from trip interruption, medical emergencies, or personal loss." }),
2088
- /* @__PURE__ */ jsxRuntime.jsx("h4", { className: "font-bold text-foreground font-heading text-base", children: "5. Liability" }),
2089
- /* @__PURE__ */ jsxRuntime.jsx("p", { children: "Participation in adventure activities carries inherent risk. By booking, you acknowledge and accept these risks. The Company's liability is limited to the total booking amount." }),
2090
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "pt-2", children: /* @__PURE__ */ jsxRuntime.jsx(
2091
- DialogClose,
2092
- {
2093
- render: /* @__PURE__ */ jsxRuntime.jsx(
2094
- "button",
2095
- {
2096
- type: "button",
2097
- className: "rounded-full bg-primary px-6 py-2.5 text-sm font-bold text-primary-foreground font-heading hover:bg-primary/90 transition-colors"
2098
- }
2099
- ),
2100
- children: "Close"
2101
- }
2102
- ) })
2103
- ] })
2104
- ] }) })
2065
+ )
2105
2066
  ] })
2106
2067
  ] })
2107
2068
  }
@@ -7250,6 +7211,7 @@ exports.ActivityCard = ActivityCard;
7250
7211
  exports.Alert = Alert;
7251
7212
  exports.BookingConfirmation = BookingConfirmation;
7252
7213
  exports.BookingConfirmationEmail = BookingConfirmationEmail;
7214
+ exports.BookingConfirmedCard = BookingConfirmedCard;
7253
7215
  exports.BookingDetails = BookingDetails;
7254
7216
  exports.BookingForm = BookingForm;
7255
7217
  exports.BookingShell = BookingShell;