@planetaexo/design-system 0.3.12 → 0.3.14

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
@@ -499,8 +499,8 @@ var FloatingInput = React19__namespace.forwardRef(
499
499
  ref,
500
500
  placeholder: " ",
501
501
  className: cn(
502
- "peer block w-full rounded-lg border border-border bg-background",
503
- "px-3 pt-5 pb-2 text-base text-foreground font-ui",
502
+ "peer block w-full h-14 rounded-lg border border-border bg-background",
503
+ "px-3 pt-6 pb-2 text-base text-foreground font-ui",
504
504
  "transition-colors placeholder-transparent",
505
505
  "focus:outline-none focus:border-primary focus:ring-1 focus:ring-primary",
506
506
  error && "border-destructive focus:border-destructive focus:ring-destructive"
@@ -516,8 +516,8 @@ var FloatingInput = React19__namespace.forwardRef(
516
516
  "pointer-events-none absolute left-3 top-1/2 -translate-y-1/2",
517
517
  "text-base text-muted-foreground font-ui transition-all duration-150",
518
518
  /* When peer has content or is focused, float up */
519
- "peer-focus:top-3 peer-focus:translate-y-0 peer-focus:text-xs peer-focus:text-primary",
520
- "peer-not-placeholder-shown:top-3 peer-not-placeholder-shown:translate-y-0 peer-not-placeholder-shown:text-xs peer-not-placeholder-shown:text-muted-foreground"
519
+ "peer-focus:top-2 peer-focus:translate-y-0 peer-focus:text-xs peer-focus:text-primary",
520
+ "peer-not-placeholder-shown:top-2 peer-not-placeholder-shown:translate-y-0 peer-not-placeholder-shown:text-xs peer-not-placeholder-shown:text-muted-foreground"
521
521
  ),
522
522
  children: [
523
523
  label,
@@ -541,8 +541,8 @@ var FloatingSelect = React19__namespace.forwardRef(
541
541
  id: inputId,
542
542
  ref,
543
543
  className: cn(
544
- "peer block w-full appearance-none rounded-lg border border-border bg-background",
545
- "px-3 pt-5 pb-2 text-base text-foreground font-ui",
544
+ "peer block w-full h-14 appearance-none rounded-lg border border-border bg-background",
545
+ "px-3 pt-6 pb-2 text-base text-foreground font-ui",
546
546
  "transition-colors",
547
547
  "focus:outline-none focus:border-primary focus:ring-1 focus:ring-primary",
548
548
  error && "border-destructive"
@@ -572,8 +572,8 @@ var FloatingSelect = React19__namespace.forwardRef(
572
572
  className: cn(
573
573
  "pointer-events-none absolute left-3 top-1/2 -translate-y-1/2",
574
574
  "text-base text-muted-foreground font-ui transition-all duration-150",
575
- "peer-focus:top-3 peer-focus:translate-y-0 peer-focus:text-xs peer-focus:text-primary",
576
- "peer-not-placeholder-shown:top-3 peer-not-placeholder-shown:translate-y-0 peer-not-placeholder-shown:text-xs"
575
+ "peer-focus:top-2 peer-focus:translate-y-0 peer-focus:text-xs peer-focus:text-primary",
576
+ "peer-not-placeholder-shown:top-2 peer-not-placeholder-shown:translate-y-0 peer-not-placeholder-shown:text-xs"
577
577
  ),
578
578
  children: [
579
579
  label,
@@ -1110,8 +1110,27 @@ function CountrySearchField({
1110
1110
  ] })
1111
1111
  ] });
1112
1112
  }
1113
+ var VARIANT_STYLES = {
1114
+ error: "text-destructive border-destructive/30 bg-destructive/5",
1115
+ warning: "text-amber-400 border-amber-500/30 bg-amber-500/10",
1116
+ success: "text-primary border-primary/30 bg-primary/10",
1117
+ info: "text-muted-foreground border-primary/25 bg-primary/5"
1118
+ };
1119
+ function Alert({ variant = "info", children, className }) {
1120
+ return /* @__PURE__ */ jsxRuntime.jsx(
1121
+ "div",
1122
+ {
1123
+ className: cn(
1124
+ "rounded-lg border px-3 py-2 text-sm font-sans leading-snug",
1125
+ VARIANT_STYLES[variant],
1126
+ className
1127
+ ),
1128
+ children
1129
+ }
1130
+ );
1131
+ }
1113
1132
  function AdventureCard({ adventure }) {
1114
- var _a, _b, _c, _d, _e;
1133
+ var _a, _b, _c, _d, _e, _f;
1115
1134
  const isControlled = (_b = (_a = adventure.optionals) == null ? void 0 : _a.some((o) => o.onCheckedChange !== void 0)) != null ? _b : false;
1116
1135
  const [checkedInternal, setCheckedInternal] = React19__namespace.useState(
1117
1136
  new Set((_d = (_c = adventure.optionals) == null ? void 0 : _c.filter((o) => o.defaultChecked).map((o) => o.id)) != null ? _d : [])
@@ -1198,11 +1217,32 @@ function AdventureCard({ adventure }) {
1198
1217
  opt.id
1199
1218
  )) })
1200
1219
  ] }),
1201
- adventure.description && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
1220
+ (adventure.description || adventure.detailsSlot) && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
1202
1221
  /* @__PURE__ */ jsxRuntime.jsx(Separator, { className: "my-1" }),
1203
1222
  /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
1204
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-[10px] font-bold text-muted-foreground font-heading uppercase tracking-widest mb-2", children: "Itinerary" }),
1205
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-base text-foreground/80 leading-relaxed font-sans", children: adventure.description })
1223
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-[10px] font-bold text-muted-foreground font-heading uppercase tracking-widest mb-3", children: (_f = adventure.itineraryLabel) != null ? _f : "Itinerary" }),
1224
+ adventure.description && !adventure.detailsSlot && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-base text-foreground/80 leading-relaxed font-sans", children: adventure.description }),
1225
+ adventure.detailsSlot && /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn(
1226
+ "text-foreground",
1227
+ // Base paragraph and heading styles
1228
+ "[&_p]:text-base [&_p]:text-foreground/80 [&_p]:leading-relaxed [&_p]:mb-2",
1229
+ "[&_h2]:text-xl [&_h2]:font-bold [&_h2]:text-foreground [&_h2]:mb-2 [&_h2]:mt-4",
1230
+ "[&_h3]:text-lg [&_h3]:font-semibold [&_h3]:text-foreground [&_h3]:mb-1 [&_h3]:mt-3",
1231
+ "[&_strong]:font-bold [&_strong]:text-foreground",
1232
+ "[&_em]:italic",
1233
+ "[&_a]:text-primary [&_a]:underline [&_a]:underline-offset-2",
1234
+ "[&_blockquote]:border-l-2 [&_blockquote]:border-primary [&_blockquote]:pl-3 [&_blockquote]:italic [&_blockquote]:text-muted-foreground [&_blockquote]:my-2",
1235
+ // Standard lists
1236
+ "[&_ul:not(.list-check):not(.list-cross)]:list-disc [&_ul:not(.list-check):not(.list-cross)]:pl-5 [&_ul:not(.list-check):not(.list-cross)]:space-y-1",
1237
+ "[&_ol]:list-decimal [&_ol]:pl-5 [&_ol]:space-y-1",
1238
+ "[&_li]:text-base [&_li]:text-foreground/80 [&_li]:leading-relaxed",
1239
+ // Check list (✓)
1240
+ "[&_.list-check]:list-none [&_.list-check]:pl-5 [&_.list-check]:space-y-1",
1241
+ "[&_.list-check_li]:relative [&_.list-check_li]:before:absolute [&_.list-check_li]:before:-left-5 [&_.list-check_li]:before:content-['\u2713'] [&_.list-check_li]:before:text-primary [&_.list-check_li]:before:font-bold",
1242
+ // Cross list (✗)
1243
+ "[&_.list-cross]:list-none [&_.list-cross]:pl-5 [&_.list-cross]:space-y-1",
1244
+ "[&_.list-cross_li]:relative [&_.list-cross_li]:before:absolute [&_.list-cross_li]:before:-left-5 [&_.list-cross_li]:before:content-['\u2717'] [&_.list-cross_li]:before:text-destructive [&_.list-cross_li]:before:font-bold"
1245
+ ), children: adventure.detailsSlot })
1206
1246
  ] })
1207
1247
  ] }),
1208
1248
  adventure.included && adventure.included.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col gap-2.5 mt-1", children: [
@@ -1225,10 +1265,6 @@ function AdventureCard({ adventure }) {
1225
1265
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "w-1.5 h-1.5 rounded-full bg-primary shrink-0 mt-2.5" }),
1226
1266
  item
1227
1267
  ] }, i)) })
1228
- ] }),
1229
- adventure.detailsSlot && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
1230
- /* @__PURE__ */ jsxRuntime.jsx(Separator, { className: "my-1" }),
1231
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-col gap-3 text-foreground", children: adventure.detailsSlot })
1232
1268
  ] })
1233
1269
  ] })
1234
1270
  ] });
@@ -1552,8 +1588,8 @@ function BookingShell({
1552
1588
  ] }),
1553
1589
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "p-5 flex flex-col gap-5", children: [
1554
1590
  /* @__PURE__ */ jsxRuntime.jsx("div", { children }),
1555
- error && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm text-destructive font-sans", children: error }),
1556
- successMessage && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-sm font-sans rounded-lg px-3 py-2 bg-primary/10 border border-primary/30 text-primary", children: successMessage }),
1591
+ error && /* @__PURE__ */ jsxRuntime.jsx(Alert, { variant: "error", children: error }),
1592
+ successMessage && /* @__PURE__ */ jsxRuntime.jsx(Alert, { variant: "success", children: successMessage }),
1557
1593
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col gap-2", children: [
1558
1594
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-3", children: [
1559
1595
  currentStep > 0 && /* @__PURE__ */ jsxRuntime.jsxs(
@@ -1584,7 +1620,7 @@ function BookingShell({
1584
1620
  }
1585
1621
  )
1586
1622
  ] }),
1587
- nextDisabled && nextBlockedMessage && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-xs text-amber-400 bg-amber-500/10 border border-amber-500/30 rounded-lg px-3 py-2", children: nextBlockedMessage }),
1623
+ nextDisabled && nextBlockedMessage && /* @__PURE__ */ jsxRuntime.jsx(Alert, { variant: "warning", children: nextBlockedMessage }),
1588
1624
  currentStep === 0 && onCancel && /* @__PURE__ */ jsxRuntime.jsx(
1589
1625
  "button",
1590
1626
  {
@@ -1671,13 +1707,73 @@ function PaymentMethodSelector({
1671
1707
  )) })
1672
1708
  ] });
1673
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."
1730
+ },
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."
1734
+ },
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."
1742
+ },
1743
+ {
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."
1746
+ },
1747
+ {
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."
1750
+ },
1751
+ {
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."
1754
+ },
1755
+ {
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."
1758
+ },
1759
+ {
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."
1762
+ },
1763
+ {
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."
1766
+ }
1767
+ ];
1674
1768
  function TermsSection({
1675
1769
  title = "Terms and conditions",
1676
1770
  checked,
1677
1771
  onChange,
1678
1772
  label,
1679
- warningMessage
1773
+ warningMessage,
1774
+ viewTermsLabel = "Ver termos e condi\xE7\xF5es completos"
1680
1775
  }) {
1776
+ const [modalOpen, setModalOpen] = React19__namespace.useState(false);
1681
1777
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "rounded-xl border border-border p-4 flex flex-col gap-3", children: [
1682
1778
  /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs font-bold text-muted-foreground font-heading uppercase tracking-widest", children: title }),
1683
1779
  /* @__PURE__ */ jsxRuntime.jsxs("label", { className: "flex items-start gap-2.5 cursor-pointer", children: [
@@ -1692,7 +1788,30 @@ function TermsSection({
1692
1788
  ),
1693
1789
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-sm font-sans text-foreground/80 leading-snug", children: label })
1694
1790
  ] }),
1695
- !checked && warningMessage && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs text-amber-400 flex items-center gap-1", children: warningMessage })
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
+ !checked && warningMessage && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs text-amber-400 flex items-center gap-1", children: warningMessage }),
1801
+ /* @__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 }),
1805
+ /* @__PURE__ */ jsxRuntime.jsx("p", { children: section.body })
1806
+ ] }, section.heading)) }),
1807
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-6 flex justify-end", children: /* @__PURE__ */ jsxRuntime.jsx(
1808
+ DialogClose,
1809
+ {
1810
+ 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"
1812
+ }
1813
+ ) })
1814
+ ] }) })
1696
1815
  ] });
1697
1816
  }
1698
1817
  var WIZARD_STEPS = [
@@ -6465,25 +6584,6 @@ function ActivityCard({
6465
6584
  }
6466
6585
  );
6467
6586
  }
6468
- var VARIANT_STYLES = {
6469
- error: "text-destructive border-destructive/30 bg-destructive/5",
6470
- warning: "text-amber-400 border-amber-500/30 bg-amber-500/10",
6471
- success: "text-primary border-primary/30 bg-primary/10",
6472
- info: "text-muted-foreground border-primary/25 bg-primary/5"
6473
- };
6474
- function Alert({ variant = "info", children, className }) {
6475
- return /* @__PURE__ */ jsxRuntime.jsx(
6476
- "div",
6477
- {
6478
- className: cn(
6479
- "rounded-lg border px-3 py-2 text-sm font-sans leading-snug",
6480
- VARIANT_STYLES[variant],
6481
- className
6482
- ),
6483
- children
6484
- }
6485
- );
6486
- }
6487
6587
  function PaymentModalShell({
6488
6588
  open,
6489
6589
  title,
@@ -6712,8 +6812,75 @@ var DARK = {
6712
6812
  }
6713
6813
  }
6714
6814
  };
6715
- function getStripeAppearance(isDark = false) {
6716
- return isDark ? DARK : LIGHT;
6815
+ function getStripeAppearance(isDark = false, tokens) {
6816
+ var _a, _b, _c, _d, _e, _f, _g;
6817
+ const base = isDark ? DARK : LIGHT;
6818
+ if (!tokens) return base;
6819
+ const t = {
6820
+ primary: (_a = tokens.primary) != null ? _a : base.variables.colorPrimary,
6821
+ background: (_b = tokens.background) != null ? _b : base.variables.colorBackground,
6822
+ card: (_c = tokens.card) != null ? _c : base.variables.colorBackground,
6823
+ foreground: (_d = tokens.foreground) != null ? _d : base.variables.colorText,
6824
+ muted: (_e = tokens.muted) != null ? _e : base.variables.colorTextPlaceholder,
6825
+ border: (_f = tokens.border) != null ? _f : isDark ? "rgba(255,255,255,0.10)" : "#e3eeeb",
6826
+ destructive: (_g = tokens.destructive) != null ? _g : base.variables.colorDanger
6827
+ };
6828
+ return __spreadProps(__spreadValues({}, base), {
6829
+ variables: __spreadProps(__spreadValues({}, base.variables), {
6830
+ colorPrimary: t.primary,
6831
+ colorBackground: t.card,
6832
+ colorText: t.foreground,
6833
+ colorTextPlaceholder: t.muted,
6834
+ colorIcon: t.muted,
6835
+ colorIconTab: t.muted,
6836
+ colorIconTabSelected: t.primary,
6837
+ colorIconTabHover: t.foreground,
6838
+ colorDanger: t.destructive
6839
+ }),
6840
+ rules: __spreadProps(__spreadValues({}, base.rules), {
6841
+ ".Input": __spreadProps(__spreadValues({}, base.rules[".Input"]), {
6842
+ border: `1px solid ${t.border}`,
6843
+ backgroundColor: t.background,
6844
+ color: t.foreground
6845
+ }),
6846
+ ".Input:focus": {
6847
+ border: `1px solid ${t.primary}`,
6848
+ boxShadow: `0 0 0 2px color-mix(in srgb, ${t.primary} 20%, transparent)`,
6849
+ outline: "none"
6850
+ },
6851
+ ".Input--invalid": {
6852
+ border: `1px solid ${t.destructive}`,
6853
+ boxShadow: `0 0 0 2px color-mix(in srgb, ${t.destructive} 15%, transparent)`
6854
+ },
6855
+ ".Label": __spreadProps(__spreadValues({}, base.rules[".Label"]), {
6856
+ color: t.muted
6857
+ }),
6858
+ ".Error": {
6859
+ color: t.destructive,
6860
+ fontSize: "12px"
6861
+ },
6862
+ ".Tab": __spreadProps(__spreadValues({}, base.rules[".Tab"]), {
6863
+ border: `1px solid ${t.border}`,
6864
+ backgroundColor: t.background,
6865
+ color: t.muted
6866
+ }),
6867
+ ".Tab:hover": {
6868
+ color: t.foreground,
6869
+ border: `1px solid ${t.primary}`
6870
+ },
6871
+ ".Tab--selected": {
6872
+ border: `1px solid ${t.primary}`,
6873
+ backgroundColor: `color-mix(in srgb, ${t.primary} 8%, transparent)`,
6874
+ color: t.foreground,
6875
+ boxShadow: "none"
6876
+ },
6877
+ ".TabLabel--selected": { color: t.foreground },
6878
+ ".TabIcon--selected": { fill: t.primary },
6879
+ ".Block": __spreadProps(__spreadValues({}, base.rules[".Block"]), {
6880
+ border: `1px solid ${t.border}`
6881
+ })
6882
+ })
6883
+ });
6717
6884
  }
6718
6885
  var stripeAppearance = LIGHT;
6719
6886
  function Input(_a) {