@planetaexo/design-system 0.92.2 → 0.92.4

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
@@ -7107,6 +7107,7 @@ var DEFAULT_LABELS10 = {
7107
7107
  expectationsHeading: "Travellers Expectations",
7108
7108
  expectationsEmptyNote: "No expectations were collected for this adventure.",
7109
7109
  expectationsEmptyAnswer: "\u2014",
7110
+ partnerNotesHeading: "Notes from the team",
7110
7111
  pdfNote: "The consolidated registration PDF is attached. Please review it carefully, as it contains important traveller information, including dietary restrictions, medical conditions, preferences, and other details that may help improve the guest experience and ensure proper preparation.",
7111
7112
  closingAgent: (agentName, contact) => /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
7112
7113
  "If you have any questions, your contact ",
@@ -7135,6 +7136,7 @@ function PartnerRegistrationCompleteEmail({
7135
7136
  bookingPersonPassport,
7136
7137
  travellersCount,
7137
7138
  expectations,
7139
+ partnerNotes,
7138
7140
  pdfAttached,
7139
7141
  agent,
7140
7142
  logoUrl,
@@ -7259,6 +7261,51 @@ function PartnerRegistrationCompleteEmail({
7259
7261
  }) })
7260
7262
  }
7261
7263
  ) : /* @__PURE__ */ jsxRuntime.jsx("p", { style: { marginTop: 0, marginBottom: "24px", color: emailTokens.bodyText }, children: l.expectationsEmptyNote }),
7264
+ Array.isArray(partnerNotes) && partnerNotes.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
7265
+ /* @__PURE__ */ jsxRuntime.jsx(
7266
+ "p",
7267
+ {
7268
+ style: {
7269
+ marginTop: 0,
7270
+ marginBottom: "16px",
7271
+ paddingBottom: "8px",
7272
+ borderBottom: `2px solid ${emailTokens.primary}`,
7273
+ fontWeight: 700,
7274
+ fontSize: "18px",
7275
+ color: emailTokens.foreground,
7276
+ fontFamily: emailTokens.fontFamily
7277
+ },
7278
+ children: l.partnerNotesHeading
7279
+ }
7280
+ ),
7281
+ /* @__PURE__ */ jsxRuntime.jsx(
7282
+ "table",
7283
+ {
7284
+ role: "presentation",
7285
+ style: {
7286
+ width: "100%",
7287
+ borderCollapse: "collapse",
7288
+ fontSize: "14px",
7289
+ marginBottom: "24px"
7290
+ },
7291
+ children: /* @__PURE__ */ jsxRuntime.jsx("tbody", { children: partnerNotes.map((note, i) => /* @__PURE__ */ jsxRuntime.jsx("tr", { style: { borderBottom: `1px solid ${emailTokens.border}` }, children: /* @__PURE__ */ jsxRuntime.jsxs("td", { style: { padding: "10px 0", color: emailTokens.bodyText, verticalAlign: "top" }, children: [
7292
+ hasText6(note.meta) && /* @__PURE__ */ jsxRuntime.jsx(
7293
+ "div",
7294
+ {
7295
+ style: {
7296
+ fontSize: "12px",
7297
+ fontWeight: 600,
7298
+ color: emailTokens.foreground,
7299
+ marginBottom: "4px"
7300
+ },
7301
+ children: note.meta
7302
+ }
7303
+ ),
7304
+ /* @__PURE__ */ jsxRuntime.jsx("div", { style: { whiteSpace: "pre-wrap" }, children: note.body })
7305
+ ] }) }, i)) })
7306
+ }
7307
+ )
7308
+ ] }),
7262
7309
  pdfAttached && hasText6(l.pdfNote) && /* @__PURE__ */ jsxRuntime.jsx(
7263
7310
  "div",
7264
7311
  {
@@ -13796,6 +13843,8 @@ function SiteHeader({
13796
13843
  const [mobileOpen, setMobileOpen] = React20__namespace.useState(false);
13797
13844
  const [openMobileSection, setOpenMobileSection] = React20__namespace.useState(null);
13798
13845
  const [activeLang, setActiveLang] = React20__namespace.useState(currentLanguage);
13846
+ const [mounted, setMounted] = React20__namespace.useState(false);
13847
+ React20__namespace.useEffect(() => setMounted(true), []);
13799
13848
  const toggleMobileSection = (label) => setOpenMobileSection((prev) => prev === label ? null : label);
13800
13849
  const menuCloseTimer = React20__namespace.useRef(void 0);
13801
13850
  const langCloseTimer = React20__namespace.useRef(void 0);
@@ -14000,157 +14049,160 @@ function SiteHeader({
14000
14049
  )
14001
14050
  ] })
14002
14051
  ] }),
14003
- mobileOpen && /* @__PURE__ */ jsxRuntime.jsxs(
14004
- "div",
14005
- {
14006
- className: cn(
14007
- "fixed inset-0 z-50 lg:hidden flex flex-col",
14008
- variant === "white" ? "bg-white" : "bg-primary-900"
14009
- ),
14010
- children: [
14011
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between px-6 h-[72px] shrink-0 border-b border-white/8", children: [
14012
- /* @__PURE__ */ jsxRuntime.jsx("a", { href: logoHref, className: "shrink-0 flex items-center", onClick: () => setMobileOpen(false), children: /* @__PURE__ */ jsxRuntime.jsx(
14013
- "img",
14014
- {
14015
- src: resolvedLogo,
14016
- alt: logoAlt,
14017
- className: "h-14 w-auto select-none",
14018
- draggable: false
14019
- }
14020
- ) }),
14021
- /* @__PURE__ */ jsxRuntime.jsx(
14022
- "button",
14023
- {
14024
- type: "button",
14025
- onClick: () => setMobileOpen(false),
14026
- "aria-label": (_e = labels == null ? void 0 : labels.closeMenu) != null ? _e : "Close menu",
14027
- className: cn(
14028
- "flex h-9 w-9 items-center justify-center rounded-full transition-colors",
14029
- t.mobileTrigger
14030
- ),
14031
- children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.XIcon, { className: "h-5 w-5" })
14032
- }
14033
- )
14034
- ] }),
14035
- /* @__PURE__ */ jsxRuntime.jsx("nav", { className: "flex-1 overflow-y-auto px-6 py-6 flex flex-col gap-1", children: links.map((link) => {
14036
- var _a2, _b2;
14037
- const hasDropdown = !!((_a2 = link.items) == null ? void 0 : _a2.length);
14038
- const isExpanded = openMobileSection === link.label;
14039
- return /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
14040
- hasDropdown ? /* @__PURE__ */ jsxRuntime.jsxs(
14041
- "button",
14052
+ mounted && mobileOpen && reactDom.createPortal(
14053
+ /* @__PURE__ */ jsxRuntime.jsxs(
14054
+ "div",
14055
+ {
14056
+ className: cn(
14057
+ "fixed inset-0 z-[1000] lg:hidden flex flex-col",
14058
+ variant === "white" ? "bg-white" : "bg-primary-900"
14059
+ ),
14060
+ children: [
14061
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between px-6 h-[72px] shrink-0 border-b border-white/8", children: [
14062
+ /* @__PURE__ */ jsxRuntime.jsx("a", { href: logoHref, className: "shrink-0 flex items-center", onClick: () => setMobileOpen(false), children: /* @__PURE__ */ jsxRuntime.jsx(
14063
+ "img",
14042
14064
  {
14043
- type: "button",
14044
- onClick: () => toggleMobileSection(link.label),
14045
- className: cn(
14046
- "flex items-center justify-between w-full py-4 text-xl font-ui font-black transition-colors border-b border-white/8",
14047
- t.mobileLink
14048
- ),
14049
- children: [
14050
- link.label,
14051
- /* @__PURE__ */ jsxRuntime.jsx(
14052
- lucideReact.ChevronDownIcon,
14053
- {
14054
- className: cn(
14055
- "h-5 w-5 transition-transform duration-200 opacity-40",
14056
- isExpanded && "rotate-180"
14057
- )
14058
- }
14059
- )
14060
- ]
14065
+ src: resolvedLogo,
14066
+ alt: logoAlt,
14067
+ className: "h-14 w-auto select-none",
14068
+ draggable: false
14061
14069
  }
14062
- ) : /* @__PURE__ */ jsxRuntime.jsx(
14063
- "a",
14070
+ ) }),
14071
+ /* @__PURE__ */ jsxRuntime.jsx(
14072
+ "button",
14064
14073
  {
14065
- href: (_b2 = link.href) != null ? _b2 : "#",
14074
+ type: "button",
14066
14075
  onClick: () => setMobileOpen(false),
14076
+ "aria-label": (_e = labels == null ? void 0 : labels.closeMenu) != null ? _e : "Close menu",
14067
14077
  className: cn(
14068
- "flex items-center py-4 text-xl font-ui font-black transition-colors border-b border-white/8",
14069
- t.mobileLink
14078
+ "flex h-9 w-9 items-center justify-center rounded-full transition-colors",
14079
+ t.mobileTrigger
14070
14080
  ),
14071
- children: link.label
14081
+ children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.XIcon, { className: "h-5 w-5" })
14072
14082
  }
14073
- ),
14074
- hasDropdown && isExpanded && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-col gap-0 pl-4 pb-2", children: link.items.map((item) => {
14075
- var _a3;
14076
- return /* @__PURE__ */ jsxRuntime.jsx(
14083
+ )
14084
+ ] }),
14085
+ /* @__PURE__ */ jsxRuntime.jsx("nav", { className: "flex-1 overflow-y-auto px-6 py-6 flex flex-col gap-1", children: links.map((link) => {
14086
+ var _a2, _b2;
14087
+ const hasDropdown = !!((_a2 = link.items) == null ? void 0 : _a2.length);
14088
+ const isExpanded = openMobileSection === link.label;
14089
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
14090
+ hasDropdown ? /* @__PURE__ */ jsxRuntime.jsxs(
14091
+ "button",
14092
+ {
14093
+ type: "button",
14094
+ onClick: () => toggleMobileSection(link.label),
14095
+ className: cn(
14096
+ "flex items-center justify-between w-full py-4 text-xl font-ui font-black transition-colors border-b border-white/8",
14097
+ t.mobileLink
14098
+ ),
14099
+ children: [
14100
+ link.label,
14101
+ /* @__PURE__ */ jsxRuntime.jsx(
14102
+ lucideReact.ChevronDownIcon,
14103
+ {
14104
+ className: cn(
14105
+ "h-5 w-5 transition-transform duration-200 opacity-40",
14106
+ isExpanded && "rotate-180"
14107
+ )
14108
+ }
14109
+ )
14110
+ ]
14111
+ }
14112
+ ) : /* @__PURE__ */ jsxRuntime.jsx(
14077
14113
  "a",
14078
14114
  {
14079
- href: (_a3 = item.href) != null ? _a3 : "#",
14115
+ href: (_b2 = link.href) != null ? _b2 : "#",
14080
14116
  onClick: () => setMobileOpen(false),
14081
14117
  className: cn(
14082
- "py-3 text-base font-ui font-bold transition-colors border-b",
14083
- t.mobileSub
14118
+ "flex items-center py-4 text-xl font-ui font-black transition-colors border-b border-white/8",
14119
+ t.mobileLink
14084
14120
  ),
14085
- children: item.label
14086
- },
14087
- item.label
14088
- );
14089
- }) })
14090
- ] }, link.label);
14091
- }) }),
14092
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn(
14093
- "shrink-0 px-6 py-5 flex items-center justify-between border-t",
14094
- variant === "white" ? "border-border" : "border-white/10"
14095
- ), children: [
14096
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex items-center gap-1.5 flex-wrap", children: languages.map((lang, i) => {
14097
- const isActive = lang.code === activeLang;
14098
- return /* @__PURE__ */ jsxRuntime.jsxs(React20__namespace.Fragment, { children: [
14099
- i > 0 && /* @__PURE__ */ jsxRuntime.jsx("span", { className: cn(
14100
- "text-xs select-none",
14101
- variant === "white" ? "text-border" : "text-white/15"
14102
- ), children: "\xB7" }),
14121
+ children: link.label
14122
+ }
14123
+ ),
14124
+ hasDropdown && isExpanded && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-col gap-0 pl-4 pb-2", children: link.items.map((item) => {
14125
+ var _a3;
14126
+ return /* @__PURE__ */ jsxRuntime.jsx(
14127
+ "a",
14128
+ {
14129
+ href: (_a3 = item.href) != null ? _a3 : "#",
14130
+ onClick: () => setMobileOpen(false),
14131
+ className: cn(
14132
+ "py-3 text-base font-ui font-bold transition-colors border-b",
14133
+ t.mobileSub
14134
+ ),
14135
+ children: item.label
14136
+ },
14137
+ item.label
14138
+ );
14139
+ }) })
14140
+ ] }, link.label);
14141
+ }) }),
14142
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn(
14143
+ "shrink-0 px-6 py-5 flex items-center justify-between border-t",
14144
+ variant === "white" ? "border-border" : "border-white/10"
14145
+ ), children: [
14146
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex items-center gap-1.5 flex-wrap", children: languages.map((lang, i) => {
14147
+ const isActive = lang.code === activeLang;
14148
+ return /* @__PURE__ */ jsxRuntime.jsxs(React20__namespace.Fragment, { children: [
14149
+ i > 0 && /* @__PURE__ */ jsxRuntime.jsx("span", { className: cn(
14150
+ "text-xs select-none",
14151
+ variant === "white" ? "text-border" : "text-white/15"
14152
+ ), children: "\xB7" }),
14153
+ /* @__PURE__ */ jsxRuntime.jsx(
14154
+ "button",
14155
+ {
14156
+ type: "button",
14157
+ onClick: () => handleLangSelect(lang.code),
14158
+ className: cn(
14159
+ "font-ui font-black transition-all duration-150 rounded-full",
14160
+ isActive ? cn(
14161
+ "text-sm px-3 py-1 border",
14162
+ variant === "white" ? "text-primary border-primary bg-primary/8" : "text-primary-400 border-primary-400/50 bg-primary-400/10"
14163
+ ) : cn(
14164
+ "text-xs px-2 py-1",
14165
+ variant === "white" ? "text-muted-foreground hover:text-foreground" : "text-white/35 hover:text-white/70"
14166
+ )
14167
+ ),
14168
+ children: lang.code
14169
+ }
14170
+ )
14171
+ ] }, lang.code);
14172
+ }) }),
14173
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-1", children: [
14103
14174
  /* @__PURE__ */ jsxRuntime.jsx(
14104
14175
  "button",
14105
14176
  {
14106
14177
  type: "button",
14107
- onClick: () => handleLangSelect(lang.code),
14108
- className: cn(
14109
- "font-ui font-black transition-all duration-150 rounded-full",
14110
- isActive ? cn(
14111
- "text-sm px-3 py-1 border",
14112
- variant === "white" ? "text-primary border-primary bg-primary/8" : "text-primary-400 border-primary-400/50 bg-primary-400/10"
14113
- ) : cn(
14114
- "text-xs px-2 py-1",
14115
- variant === "white" ? "text-muted-foreground hover:text-foreground" : "text-white/35 hover:text-white/70"
14116
- )
14117
- ),
14118
- children: lang.code
14178
+ onClick: () => {
14179
+ onSearch == null ? void 0 : onSearch();
14180
+ setMobileOpen(false);
14181
+ },
14182
+ "aria-label": (_f = labels == null ? void 0 : labels.search) != null ? _f : "Search",
14183
+ className: cn("flex h-9 w-9 items-center justify-center rounded-full transition-colors", t.icon),
14184
+ children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.SearchIcon, { className: "h-[18px] w-[18px]" })
14185
+ }
14186
+ ),
14187
+ /* @__PURE__ */ jsxRuntime.jsx(
14188
+ "button",
14189
+ {
14190
+ type: "button",
14191
+ onClick: () => {
14192
+ onAccount == null ? void 0 : onAccount();
14193
+ setMobileOpen(false);
14194
+ },
14195
+ "aria-label": (_g = labels == null ? void 0 : labels.account) != null ? _g : "Account",
14196
+ className: cn("flex h-9 w-9 items-center justify-center rounded-full transition-colors", t.icon),
14197
+ children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.UserIcon, { className: "h-[18px] w-[18px]" })
14119
14198
  }
14120
14199
  )
14121
- ] }, lang.code);
14122
- }) }),
14123
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-1", children: [
14124
- /* @__PURE__ */ jsxRuntime.jsx(
14125
- "button",
14126
- {
14127
- type: "button",
14128
- onClick: () => {
14129
- onSearch == null ? void 0 : onSearch();
14130
- setMobileOpen(false);
14131
- },
14132
- "aria-label": (_f = labels == null ? void 0 : labels.search) != null ? _f : "Search",
14133
- className: cn("flex h-9 w-9 items-center justify-center rounded-full transition-colors", t.icon),
14134
- children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.SearchIcon, { className: "h-[18px] w-[18px]" })
14135
- }
14136
- ),
14137
- /* @__PURE__ */ jsxRuntime.jsx(
14138
- "button",
14139
- {
14140
- type: "button",
14141
- onClick: () => {
14142
- onAccount == null ? void 0 : onAccount();
14143
- setMobileOpen(false);
14144
- },
14145
- "aria-label": (_g = labels == null ? void 0 : labels.account) != null ? _g : "Account",
14146
- className: cn("flex h-9 w-9 items-center justify-center rounded-full transition-colors", t.icon),
14147
- children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.UserIcon, { className: "h-[18px] w-[18px]" })
14148
- }
14149
- )
14200
+ ] })
14150
14201
  ] })
14151
- ] })
14152
- ]
14153
- }
14202
+ ]
14203
+ }
14204
+ ),
14205
+ document.body
14154
14206
  )
14155
14207
  ]
14156
14208
  }
@@ -19939,7 +19991,7 @@ function ExpeditionsRail({ eyebrow, title, subtitle, link, trips }) {
19939
19991
  type: "button",
19940
19992
  onClick: () => scrollByCard(-1),
19941
19993
  "aria-label": "Previous expeditions",
19942
- className: "flex h-11 w-11 items-center justify-center rounded-full border border-border bg-background text-foreground transition-colors hover:border-primary hover:bg-primary hover:text-primary-foreground",
19994
+ className: "hidden h-11 w-11 items-center justify-center rounded-full border border-border bg-background text-foreground transition-colors hover:border-primary hover:bg-primary hover:text-primary-foreground lg:flex",
19943
19995
  children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronLeftIcon, { className: "h-5 w-5" })
19944
19996
  }
19945
19997
  ),
@@ -19949,7 +20001,7 @@ function ExpeditionsRail({ eyebrow, title, subtitle, link, trips }) {
19949
20001
  type: "button",
19950
20002
  onClick: () => scrollByCard(1),
19951
20003
  "aria-label": "Next expeditions",
19952
- className: "flex h-11 w-11 items-center justify-center rounded-full border border-border bg-background text-foreground transition-colors hover:border-primary hover:bg-primary hover:text-primary-foreground",
20004
+ className: "hidden h-11 w-11 items-center justify-center rounded-full border border-border bg-background text-foreground transition-colors hover:border-primary hover:bg-primary hover:text-primary-foreground lg:flex",
19953
20005
  children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronRightIcon, { className: "h-5 w-5" })
19954
20006
  }
19955
20007
  )