@planetaexo/design-system 0.10.1 → 0.12.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.cjs CHANGED
@@ -4265,6 +4265,176 @@ function TravellerFormInviteEmail({
4265
4265
  }
4266
4266
  );
4267
4267
  }
4268
+ function BookingWelcomeNewSystemEmail({
4269
+ greeting,
4270
+ introParagraph,
4271
+ bookingsHeading,
4272
+ bookings,
4273
+ bookingFormsCompleteLabel,
4274
+ bookingFormsPendingLabel,
4275
+ bookingFormsNoneLabel,
4276
+ ctaLabel,
4277
+ bookingCodeLabel,
4278
+ signatureLine,
4279
+ footerText,
4280
+ logoUrl,
4281
+ className
4282
+ }) {
4283
+ const ctaStyle = {
4284
+ display: "inline-block",
4285
+ backgroundColor: emailTokens.primary,
4286
+ color: emailTokens.primaryForeground,
4287
+ padding: "10px 20px",
4288
+ borderRadius: "6px",
4289
+ fontSize: "14px",
4290
+ fontWeight: 600,
4291
+ textDecoration: "none",
4292
+ fontFamily: emailTokens.fontFamily
4293
+ };
4294
+ return /* @__PURE__ */ jsxRuntime.jsxs(
4295
+ "div",
4296
+ {
4297
+ style: {
4298
+ fontFamily: emailTokens.fontFamily,
4299
+ color: emailTokens.foreground,
4300
+ maxWidth: "600px",
4301
+ margin: "0 auto",
4302
+ padding: "32px",
4303
+ border: `1px solid ${emailTokens.border}`,
4304
+ borderRadius: "12px",
4305
+ backgroundColor: emailTokens.white
4306
+ },
4307
+ className,
4308
+ children: [
4309
+ /* @__PURE__ */ jsxRuntime.jsx(EmailLogo, { src: logoUrl }),
4310
+ /* @__PURE__ */ jsxRuntime.jsx("p", { style: { fontSize: "16px", lineHeight: "1.5", margin: "0 0 12px" }, children: greeting }),
4311
+ /* @__PURE__ */ jsxRuntime.jsx("p", { style: { fontSize: "15px", lineHeight: "1.5", margin: "0 0 24px" }, children: introParagraph }),
4312
+ /* @__PURE__ */ jsxRuntime.jsx(
4313
+ "hr",
4314
+ {
4315
+ style: {
4316
+ border: "none",
4317
+ borderTop: `1px solid ${emailTokens.border}`,
4318
+ margin: "0 0 24px"
4319
+ }
4320
+ }
4321
+ ),
4322
+ /* @__PURE__ */ jsxRuntime.jsx(
4323
+ "p",
4324
+ {
4325
+ style: {
4326
+ fontSize: "15px",
4327
+ fontWeight: 700,
4328
+ margin: "0 0 16px",
4329
+ color: emailTokens.foreground
4330
+ },
4331
+ children: bookingsHeading
4332
+ }
4333
+ ),
4334
+ /* @__PURE__ */ jsxRuntime.jsx("ul", { style: { listStyle: "none", padding: 0, margin: "0 0 24px" }, children: bookings.map((b) => {
4335
+ const statusLine = b.formsStatus === "COMPLETO" ? bookingFormsCompleteLabel : b.formsStatus === "SEM_FORM" ? bookingFormsNoneLabel != null ? bookingFormsNoneLabel : "" : bookingFormsPendingLabel(b.formsCompleted, b.formsRequired);
4336
+ const statusIcon = b.formsStatus === "COMPLETO" ? "\u2713" : b.formsStatus === "SEM_FORM" ? "" : "\u26A0";
4337
+ const statusColor = b.formsStatus === "COMPLETO" ? emailTokens.green : b.formsStatus === "SEM_FORM" ? emailTokens.mutedForeground : emailTokens.destructive;
4338
+ return /* @__PURE__ */ jsxRuntime.jsxs(
4339
+ "li",
4340
+ {
4341
+ style: {
4342
+ marginBottom: "16px",
4343
+ padding: "16px",
4344
+ backgroundColor: emailTokens.muted,
4345
+ border: `1px solid ${emailTokens.border}`,
4346
+ borderRadius: "8px"
4347
+ },
4348
+ children: [
4349
+ /* @__PURE__ */ jsxRuntime.jsx(
4350
+ "p",
4351
+ {
4352
+ style: {
4353
+ fontSize: "15px",
4354
+ fontWeight: 600,
4355
+ margin: "0 0 6px",
4356
+ color: emailTokens.foreground
4357
+ },
4358
+ children: b.adventureName
4359
+ }
4360
+ ),
4361
+ /* @__PURE__ */ jsxRuntime.jsx(
4362
+ "p",
4363
+ {
4364
+ style: {
4365
+ fontSize: "13px",
4366
+ color: emailTokens.mutedForeground,
4367
+ margin: "0 0 4px"
4368
+ },
4369
+ children: b.startDate
4370
+ }
4371
+ ),
4372
+ /* @__PURE__ */ jsxRuntime.jsxs(
4373
+ "p",
4374
+ {
4375
+ style: {
4376
+ fontSize: "13px",
4377
+ color: emailTokens.mutedForeground,
4378
+ margin: "0 0 8px"
4379
+ },
4380
+ children: [
4381
+ /* @__PURE__ */ jsxRuntime.jsx("span", { style: { fontWeight: 600 }, children: bookingCodeLabel }),
4382
+ " ",
4383
+ /* @__PURE__ */ jsxRuntime.jsxs(
4384
+ "span",
4385
+ {
4386
+ style: {
4387
+ fontFamily: emailTokens.fontFamily,
4388
+ color: emailTokens.foreground,
4389
+ fontWeight: 600
4390
+ },
4391
+ children: [
4392
+ "#",
4393
+ b.bookingId
4394
+ ]
4395
+ }
4396
+ )
4397
+ ]
4398
+ }
4399
+ ),
4400
+ statusLine && /* @__PURE__ */ jsxRuntime.jsxs(
4401
+ "p",
4402
+ {
4403
+ style: {
4404
+ fontSize: "13px",
4405
+ color: statusColor,
4406
+ margin: "0 0 12px",
4407
+ fontWeight: 500
4408
+ },
4409
+ children: [
4410
+ statusIcon ? `${statusIcon} ` : "",
4411
+ statusLine
4412
+ ]
4413
+ }
4414
+ ),
4415
+ /* @__PURE__ */ jsxRuntime.jsx("a", { href: b.bookingPublicUrl, style: ctaStyle, children: ctaLabel })
4416
+ ]
4417
+ },
4418
+ b.bookingId
4419
+ );
4420
+ }) }),
4421
+ footerText && /* @__PURE__ */ jsxRuntime.jsx(
4422
+ "p",
4423
+ {
4424
+ style: {
4425
+ color: emailTokens.mutedForeground,
4426
+ fontSize: "13px",
4427
+ lineHeight: "1.5",
4428
+ margin: "0 0 16px"
4429
+ },
4430
+ children: footerText
4431
+ }
4432
+ ),
4433
+ /* @__PURE__ */ jsxRuntime.jsx("p", { style: { fontSize: "14px", lineHeight: "1.5", margin: "0" }, children: signatureLine })
4434
+ ]
4435
+ }
4436
+ );
4437
+ }
4268
4438
  function CounterField({
4269
4439
  label,
4270
4440
  sublabel,
@@ -4875,13 +5045,27 @@ function FormSection2({
4875
5045
  children,
4876
5046
  className
4877
5047
  }) {
4878
- return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("flex flex-col gap-5", className), children: [
4879
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-4", children: [
4880
- /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "text-base font-bold text-foreground whitespace-nowrap font-heading", children: title }),
4881
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "h-px flex-1 bg-border" })
4882
- ] }),
4883
- children
4884
- ] });
5048
+ return /* @__PURE__ */ jsxRuntime.jsxs(
5049
+ "div",
5050
+ {
5051
+ className: cn("flex flex-col gap-5", className),
5052
+ style: { breakInside: "avoid" },
5053
+ children: [
5054
+ /* @__PURE__ */ jsxRuntime.jsxs(
5055
+ "div",
5056
+ {
5057
+ className: "flex items-center gap-4",
5058
+ style: { breakAfter: "avoid-page" },
5059
+ children: [
5060
+ /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "text-base font-bold text-foreground whitespace-nowrap font-heading", children: title }),
5061
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "h-px flex-1 bg-border" })
5062
+ ]
5063
+ }
5064
+ ),
5065
+ children
5066
+ ]
5067
+ }
5068
+ );
4885
5069
  }
4886
5070
  function isFieldEmpty(field, value) {
4887
5071
  var _a, _b, _c, _d, _e, _f, _g, _h, _i;
@@ -5795,10 +5979,14 @@ function RegistrationSuccessCard({
5795
5979
  adventure,
5796
5980
  booking,
5797
5981
  traveller,
5798
- tripInfoLabels
5982
+ tripInfoLabels,
5983
+ density = "comfortable",
5984
+ submissionTimestamps,
5985
+ submissionTimestampsLabels
5799
5986
  }) {
5800
- var _a, _b, _c, _d, _e, _f, _g, _h;
5987
+ var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j;
5801
5988
  const isMinimal = variant === "minimal";
5989
+ const isCompact = density === "compact";
5802
5990
  const sorted = isMinimal ? [] : [...fields].sort((a, b) => {
5803
5991
  var _a2, _b2;
5804
5992
  return ((_a2 = a.order) != null ? _a2 : 0) - ((_b2 = b.order) != null ? _b2 : 0);
@@ -5812,62 +6000,114 @@ function RegistrationSuccessCard({
5812
6000
  partnerLabel: (_d = tripInfoLabels == null ? void 0 : tripInfoLabels.partnerLabel) != null ? _d : "Partner",
5813
6001
  travellerLabel: (_e = tripInfoLabels == null ? void 0 : tripInfoLabels.travellerLabel) != null ? _e : "Traveller"
5814
6002
  };
5815
- return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("rounded-xl border border-border bg-card p-6 sm:p-8 flex flex-col gap-10", className), children: [
5816
- actions && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex gap-3 justify-end", children: actions }),
5817
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col items-center gap-3 text-center", children: [
5818
- logo !== null && /* eslint-disable-next-line @next/next/no-img-element */
5819
- /* @__PURE__ */ jsxRuntime.jsx(
5820
- "img",
5821
- {
5822
- src: logo != null ? logo : "/logo-planetaexo.png",
5823
- alt: logoAlt,
5824
- className: "h-10 w-auto object-contain"
5825
- }
6003
+ const STL = {
6004
+ submittedAt: (_f = submissionTimestampsLabels == null ? void 0 : submissionTimestampsLabels.submittedAt) != null ? _f : "Submitted",
6005
+ lastUpdatedAt: (_g = submissionTimestampsLabels == null ? void 0 : submissionTimestampsLabels.lastUpdatedAt) != null ? _g : "Last updated"
6006
+ };
6007
+ const hasTimestamps = !isMinimal && !!submissionTimestamps && (!!submissionTimestamps.submittedAt || !!submissionTimestamps.lastUpdatedAt);
6008
+ return /* @__PURE__ */ jsxRuntime.jsxs(
6009
+ "div",
6010
+ {
6011
+ className: cn(
6012
+ "rounded-xl border border-border bg-card p-6 sm:p-8 flex flex-col",
6013
+ isCompact ? "gap-6" : "gap-10",
6014
+ className
5826
6015
  ),
5827
- logo === void 0 && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "inline-flex h-14 w-14 items-center justify-center rounded-full bg-primary/10 text-primary", children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.CircleCheckIcon, { size: 28 }) }),
5828
- /* @__PURE__ */ jsxRuntime.jsx("h2", { className: "text-2xl font-black uppercase tracking-wide text-foreground font-heading leading-tight", children: title }),
5829
- message && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm text-muted-foreground font-ui", children: message })
5830
- ] }),
5831
- hasTripInfo && /* @__PURE__ */ jsxRuntime.jsx(FormSection2, { title: TL.sectionTitle, children: /* @__PURE__ */ jsxRuntime.jsxs("dl", { className: "flex flex-col gap-y-3 text-sm font-ui", children: [
5832
- adventure && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-start gap-x-4", children: [
5833
- /* @__PURE__ */ jsxRuntime.jsx("dt", { className: "w-1/2 text-muted-foreground break-words", children: TL.adventureLabel }),
5834
- /* @__PURE__ */ jsxRuntime.jsx("dd", { className: "w-1/2 text-foreground font-medium text-right min-w-0 break-words", children: adventure.name })
5835
- ] }),
5836
- dateRange && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-start gap-x-4", children: [
5837
- /* @__PURE__ */ jsxRuntime.jsx("dt", { className: "w-1/2 text-muted-foreground break-words", children: (adventure == null ? void 0 : adventure.startDate) && (adventure == null ? void 0 : adventure.endDate) ? "Dates" : "Date" }),
5838
- /* @__PURE__ */ jsxRuntime.jsx("dd", { className: "w-1/2 text-foreground text-right min-w-0 break-words", children: dateRange })
5839
- ] }),
5840
- (adventure == null ? void 0 : adventure.partnerName) && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-start gap-x-4", children: [
5841
- /* @__PURE__ */ jsxRuntime.jsx("dt", { className: "w-1/2 text-muted-foreground break-words", children: TL.partnerLabel }),
5842
- /* @__PURE__ */ jsxRuntime.jsx("dd", { className: "w-1/2 text-foreground text-right min-w-0 break-words", children: adventure.partnerName })
5843
- ] }),
5844
- booking && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-start gap-x-4", children: [
5845
- /* @__PURE__ */ jsxRuntime.jsx("dt", { className: "w-1/2 text-muted-foreground break-words", children: TL.bookingLabel }),
5846
- /* @__PURE__ */ jsxRuntime.jsx("dd", { className: "w-1/2 text-foreground font-mono tabular-nums text-right min-w-0 break-words", children: booking.id })
5847
- ] }),
5848
- traveller && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-start gap-x-4", children: [
5849
- /* @__PURE__ */ jsxRuntime.jsx("dt", { className: "w-1/2 text-muted-foreground break-words", children: TL.travellerLabel }),
5850
- /* @__PURE__ */ jsxRuntime.jsx("dd", { className: "w-1/2 text-foreground font-medium text-right min-w-0 break-words", children: traveller.fullName })
5851
- ] })
5852
- ] }) }),
5853
- sorted.length > 0 && /* @__PURE__ */ jsxRuntime.jsx(FormSection2, { title: answersTitle, children: /* @__PURE__ */ jsxRuntime.jsx("dl", { className: "flex flex-col gap-y-3 text-sm font-ui", children: sorted.map((f) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-start gap-x-4", children: [
5854
- /* @__PURE__ */ jsxRuntime.jsx("dt", { className: "w-1/2 text-muted-foreground break-words", children: f.label }),
5855
- /* @__PURE__ */ jsxRuntime.jsx("dd", { className: "w-1/2 text-foreground text-right min-w-0 break-words", children: (formatAnswer != null ? formatAnswer : ((field, v) => defaultFormatAnswer(field, v, dateFormatter)))(
5856
- f,
5857
- answers[f.id]
5858
- ) })
5859
- ] }, f.id)) }) }),
5860
- !isMinimal && terms && /* @__PURE__ */ jsxRuntime.jsx(FormSection2, { title: (_f = termsLabels == null ? void 0 : termsLabels.title) != null ? _f : "Terms & Conditions", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col gap-3 text-sm font-ui", children: [
5861
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
5862
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn(
5863
- "inline-flex h-5 w-5 items-center justify-center rounded-full text-white text-xs font-bold",
5864
- terms.accepted ? "bg-primary" : "bg-destructive"
5865
- ), children: terms.accepted ? "\u2713" : "\u2717" }),
5866
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: terms.accepted ? "text-primary font-medium" : "text-destructive font-medium", children: terms.accepted ? (_g = termsLabels == null ? void 0 : termsLabels.accepted) != null ? _g : "Accepted" : (_h = termsLabels == null ? void 0 : termsLabels.notAccepted) != null ? _h : "Not accepted" })
5867
- ] }),
5868
- termsLayout === "full" && terms.markdown.trim().length > 0 && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "rounded-lg border border-border bg-muted/30 p-4", children: /* @__PURE__ */ jsxRuntime.jsx("p", { className: "whitespace-pre-wrap break-words text-sm leading-relaxed text-foreground font-ui", children: terms.markdown }) })
5869
- ] }) })
5870
- ] });
6016
+ children: [
6017
+ actions && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex gap-3 justify-end", children: actions }),
6018
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col items-center gap-3 text-center", children: [
6019
+ logo !== null && /* eslint-disable-next-line @next/next/no-img-element */
6020
+ /* @__PURE__ */ jsxRuntime.jsx(
6021
+ "img",
6022
+ {
6023
+ src: logo != null ? logo : "/logo-planetaexo.png",
6024
+ alt: logoAlt,
6025
+ className: "h-10 w-auto object-contain"
6026
+ }
6027
+ ),
6028
+ logo === void 0 && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "inline-flex h-14 w-14 items-center justify-center rounded-full bg-primary/10 text-primary", children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.CircleCheckIcon, { size: 28 }) }),
6029
+ /* @__PURE__ */ jsxRuntime.jsx("h2", { className: "text-2xl font-black uppercase tracking-wide text-foreground font-heading leading-tight", children: title }),
6030
+ message && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm text-muted-foreground font-ui", children: message })
6031
+ ] }),
6032
+ hasTimestamps && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col items-end gap-0.5 text-xs text-muted-foreground font-ui", children: [
6033
+ (submissionTimestamps == null ? void 0 : submissionTimestamps.submittedAt) && /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
6034
+ /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "font-medium", children: [
6035
+ STL.submittedAt,
6036
+ ":"
6037
+ ] }),
6038
+ " ",
6039
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "tabular-nums", children: submissionTimestamps.submittedAt })
6040
+ ] }),
6041
+ (submissionTimestamps == null ? void 0 : submissionTimestamps.lastUpdatedAt) && /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
6042
+ /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "font-medium", children: [
6043
+ STL.lastUpdatedAt,
6044
+ ":"
6045
+ ] }),
6046
+ " ",
6047
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "tabular-nums", children: submissionTimestamps.lastUpdatedAt })
6048
+ ] })
6049
+ ] }),
6050
+ hasTripInfo && /* @__PURE__ */ jsxRuntime.jsx(FormSection2, { title: TL.sectionTitle, children: /* @__PURE__ */ jsxRuntime.jsxs("dl", { className: "flex flex-col gap-y-3 text-sm font-ui", children: [
6051
+ adventure && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-start gap-x-4", children: [
6052
+ /* @__PURE__ */ jsxRuntime.jsx("dt", { className: "w-1/2 text-muted-foreground break-words", children: TL.adventureLabel }),
6053
+ /* @__PURE__ */ jsxRuntime.jsx("dd", { className: "w-1/2 text-foreground font-medium text-right min-w-0 break-words", children: adventure.name })
6054
+ ] }),
6055
+ dateRange && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-start gap-x-4", children: [
6056
+ /* @__PURE__ */ jsxRuntime.jsx("dt", { className: "w-1/2 text-muted-foreground break-words", children: (adventure == null ? void 0 : adventure.startDate) && (adventure == null ? void 0 : adventure.endDate) ? "Dates" : "Date" }),
6057
+ /* @__PURE__ */ jsxRuntime.jsx("dd", { className: "w-1/2 text-foreground text-right min-w-0 break-words", children: dateRange })
6058
+ ] }),
6059
+ (adventure == null ? void 0 : adventure.partnerName) && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-start gap-x-4", children: [
6060
+ /* @__PURE__ */ jsxRuntime.jsx("dt", { className: "w-1/2 text-muted-foreground break-words", children: TL.partnerLabel }),
6061
+ /* @__PURE__ */ jsxRuntime.jsx("dd", { className: "w-1/2 text-foreground text-right min-w-0 break-words", children: adventure.partnerName })
6062
+ ] }),
6063
+ booking && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-start gap-x-4", children: [
6064
+ /* @__PURE__ */ jsxRuntime.jsx("dt", { className: "w-1/2 text-muted-foreground break-words", children: TL.bookingLabel }),
6065
+ /* @__PURE__ */ jsxRuntime.jsx("dd", { className: "w-1/2 text-foreground font-mono tabular-nums text-right min-w-0 break-words", children: booking.id })
6066
+ ] }),
6067
+ traveller && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-start gap-x-4", children: [
6068
+ /* @__PURE__ */ jsxRuntime.jsx("dt", { className: "w-1/2 text-muted-foreground break-words", children: TL.travellerLabel }),
6069
+ /* @__PURE__ */ jsxRuntime.jsx("dd", { className: "w-1/2 text-foreground font-medium text-right min-w-0 break-words", children: traveller.fullName })
6070
+ ] })
6071
+ ] }) }),
6072
+ sorted.length > 0 && /* @__PURE__ */ jsxRuntime.jsx(FormSection2, { title: answersTitle, children: /* @__PURE__ */ jsxRuntime.jsx("dl", { className: "flex flex-col gap-y-3 text-sm font-ui", children: sorted.map((f) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-start gap-x-4", children: [
6073
+ /* @__PURE__ */ jsxRuntime.jsx("dt", { className: "w-1/2 text-muted-foreground break-words", children: f.label }),
6074
+ /* @__PURE__ */ jsxRuntime.jsx("dd", { className: "w-1/2 text-foreground text-right min-w-0 break-words", children: (formatAnswer != null ? formatAnswer : ((field, v) => defaultFormatAnswer(field, v, dateFormatter)))(
6075
+ f,
6076
+ answers[f.id]
6077
+ ) })
6078
+ ] }, f.id)) }) }),
6079
+ !isMinimal && terms && /* @__PURE__ */ jsxRuntime.jsx(FormSection2, { title: (_h = termsLabels == null ? void 0 : termsLabels.title) != null ? _h : "Terms & Conditions", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col gap-3 text-sm font-ui", children: [
6080
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
6081
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn(
6082
+ "inline-flex h-5 w-5 items-center justify-center rounded-full text-white text-xs font-bold",
6083
+ terms.accepted ? "bg-primary" : "bg-destructive"
6084
+ ), children: terms.accepted ? "\u2713" : "\u2717" }),
6085
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: terms.accepted ? "text-primary font-medium" : "text-destructive font-medium", children: terms.accepted ? (_i = termsLabels == null ? void 0 : termsLabels.accepted) != null ? _i : "Accepted" : (_j = termsLabels == null ? void 0 : termsLabels.notAccepted) != null ? _j : "Not accepted" })
6086
+ ] }),
6087
+ termsLayout === "full" && terms.markdown.trim().length > 0 && /* @__PURE__ */ jsxRuntime.jsx(
6088
+ "div",
6089
+ {
6090
+ className: cn(
6091
+ "rounded-lg border border-border bg-muted/30",
6092
+ isCompact ? "p-3" : "p-4"
6093
+ ),
6094
+ style: { breakInside: "auto" },
6095
+ children: /* @__PURE__ */ jsxRuntime.jsx(
6096
+ "p",
6097
+ {
6098
+ className: cn(
6099
+ "whitespace-pre-wrap break-words text-foreground font-ui",
6100
+ isCompact ? "text-xs leading-snug" : "text-sm leading-relaxed"
6101
+ ),
6102
+ children: terms.markdown
6103
+ }
6104
+ )
6105
+ }
6106
+ )
6107
+ ] }) })
6108
+ ]
6109
+ }
6110
+ );
5871
6111
  }
5872
6112
  var OTPCodeInput = ({
5873
6113
  value,
@@ -9417,6 +9657,7 @@ exports.BookingDetails = BookingDetails;
9417
9657
  exports.BookingForm = BookingForm;
9418
9658
  exports.BookingOtpEmail = BookingOtpEmail;
9419
9659
  exports.BookingShell = BookingShell;
9660
+ exports.BookingWelcomeNewSystemEmail = BookingWelcomeNewSystemEmail;
9420
9661
  exports.Button = Button;
9421
9662
  exports.COUNTRIES = COUNTRIES;
9422
9663
  exports.CounterField = CounterField;