@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 +209 -42
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +37 -3
- package/dist/index.d.ts +37 -3
- package/dist/index.js +209 -42
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
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-
|
|
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-
|
|
520
|
-
"peer-not-placeholder-shown:top-
|
|
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-
|
|
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-
|
|
576
|
-
"peer-not-placeholder-shown:top-
|
|
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-
|
|
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(
|
|
1556
|
-
successMessage && /* @__PURE__ */ jsxRuntime.jsx(
|
|
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(
|
|
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
|
-
|
|
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
|
-
|
|
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) {
|