@hook-sdk/template 0.28.6 → 0.28.7

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
@@ -4009,14 +4009,14 @@ function CheckoutPageDefault() {
4009
4009
  navigate(result.redirect.replace(/^.*\/app\/[^/]+/, "") || "/");
4010
4010
  }
4011
4011
  return /* @__PURE__ */ (0, import_jsx_runtime48.jsx)("div", { className: "flex-1 flex flex-col bg-background min-h-0", children: /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)("form", { onSubmit, className: "flex-1 flex flex-col min-h-0", children: [
4012
- /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)("div", { className: "flex-1 overflow-y-auto pb-4", children: [
4013
- form.emailTaken ? /* @__PURE__ */ (0, import_jsx_runtime48.jsx)("div", { className: "px-5 pt-4", children: /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)("div", { role: "alert", className: "rounded-2xl bg-destructive/10 p-4 text-sm text-destructive border border-destructive/20", children: [
4012
+ /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)("div", { className: "flex-1 overflow-y-auto px-5 pt-5 pb-6 space-y-6", children: [
4013
+ form.emailTaken ? /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)("div", { role: "alert", className: "rounded-2xl bg-destructive/10 p-4 text-sm text-destructive border border-destructive/20", children: [
4014
4014
  "Esse e-mail j\xE1 tem conta nesse app.",
4015
4015
  " ",
4016
4016
  /* @__PURE__ */ (0, import_jsx_runtime48.jsx)("a", { href: form.loginUrl ?? "/signin", className: "underline font-semibold", children: "Entrar agora" })
4017
- ] }) }) : null,
4018
- form.error ? /* @__PURE__ */ (0, import_jsx_runtime48.jsx)("div", { className: "px-5 pt-4", children: /* @__PURE__ */ (0, import_jsx_runtime48.jsx)("div", { role: "alert", className: "rounded-2xl bg-destructive/10 p-4 text-sm text-destructive border border-destructive/20", children: form.error.message || "N\xE3o foi poss\xEDvel concluir o pagamento. Tente novamente." }) }) : null,
4019
- /* @__PURE__ */ (0, import_jsx_runtime48.jsx)("div", { className: "px-5 pt-4", children: form.method === "card" ? /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)("div", { className: "rounded-2xl bg-card border-[1.5px] border-foreground p-3.5", children: [
4017
+ ] }) : null,
4018
+ form.error ? /* @__PURE__ */ (0, import_jsx_runtime48.jsx)("div", { role: "alert", className: "rounded-2xl bg-destructive/10 p-4 text-sm text-destructive border border-destructive/20", children: form.error.message || "N\xE3o foi poss\xEDvel concluir o pagamento. Tente novamente." }) : null,
4019
+ form.method === "card" ? /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)("div", { className: "rounded-2xl bg-card border-[1.5px] border-foreground p-4", children: [
4020
4020
  /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)("div", { className: "flex items-center gap-2 mb-2", children: [
4021
4021
  /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(ShieldIcon, { className: "w-4 h-4" }),
4022
4022
  /* @__PURE__ */ (0, import_jsx_runtime48.jsx)("div", { className: "text-sm font-bold", children: "Voc\xEA N\xC3O ser\xE1 cobrada hoje" })
@@ -4035,7 +4035,7 @@ function CheckoutPageDefault() {
4035
4035
  /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(BellIcon, { className: "w-2.5 h-2.5" }),
4036
4036
  "Avisamos por email 2 dias antes da primeira cobran\xE7a"
4037
4037
  ] })
4038
- ] }) : /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)("div", { className: "rounded-2xl p-3.5 bg-emerald-50 border-[1.5px] border-emerald-600/60", children: [
4038
+ ] }) : /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)("div", { className: "rounded-2xl p-4 bg-emerald-50 border-[1.5px] border-emerald-600/60", children: [
4039
4039
  /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)("div", { className: "flex items-center gap-2 mb-2 text-emerald-900", children: [
4040
4040
  /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(ShieldIcon, { className: "w-4 h-4" }),
4041
4041
  /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)("div", { className: "text-sm font-bold", children: [
@@ -4053,180 +4053,189 @@ function CheckoutPageDefault() {
4053
4053
  /* @__PURE__ */ (0, import_jsx_runtime48.jsx)("b", { children: "100%" }),
4054
4054
  " sem perguntas \u2014 direto pelo app."
4055
4055
  ] })
4056
- ] }) }),
4057
- /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)("section", { className: "px-5 pt-5", children: [
4058
- /* @__PURE__ */ (0, import_jsx_runtime48.jsx)("h2", { className: "font-display text-2xl mb-3.5 leading-tight text-foreground", children: "Quase l\xE1." }),
4059
- /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(FieldLabel, { children: "Email" }),
4060
- /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
4061
- FieldInput,
4062
- {
4063
- type: "email",
4064
- inputMode: "email",
4065
- autoComplete: "email",
4066
- autoCapitalize: "none",
4067
- autoCorrect: "off",
4068
- spellCheck: false,
4069
- placeholder: "seu@email.com",
4070
- value: form.email,
4071
- onChange: form.setEmail,
4072
- onBlur: form.markEmailTouched,
4073
- error: form.emailError,
4074
- valid: form.emailStatus === "available"
4075
- }
4076
- ),
4077
- !form.emailError && /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(FieldHint, { children: form.emailStatus === "checking" ? "Verificando\u2026" : form.emailStatus === "available" ? "\u2713 Dispon\xEDvel" : "Voc\xEA vai usar este email para entrar no app" }),
4078
- /* @__PURE__ */ (0, import_jsx_runtime48.jsx)("div", { className: "h-3" }),
4079
- /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(FieldLabel, { children: "Nome completo" }),
4080
- /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
4081
- FieldInput,
4082
- {
4083
- type: "text",
4084
- autoComplete: "name",
4085
- placeholder: "como est\xE1 no documento",
4086
- value: form.name,
4087
- onChange: form.setName,
4088
- onBlur: form.markNameTouched,
4089
- error: form.nameError,
4090
- valid: !!form.name && !form.nameError
4091
- }
4092
- ),
4093
- /* @__PURE__ */ (0, import_jsx_runtime48.jsx)("div", { className: "h-3" }),
4094
- /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(FieldLabel, { children: "CPF" }),
4095
- /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
4096
- FieldInput,
4097
- {
4098
- type: "text",
4099
- inputMode: "numeric",
4100
- placeholder: "000.000.000-00",
4101
- value: form.cpf,
4102
- onChange: (v) => form.setCpf(formatCpf(v)),
4103
- onBlur: form.markCpfTouched,
4104
- error: form.cpfError,
4105
- valid: !!form.cpf && !form.cpfError
4106
- }
4107
- ),
4108
- form.method === "card" ? /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)(import_jsx_runtime48.Fragment, { children: [
4109
- /* @__PURE__ */ (0, import_jsx_runtime48.jsx)("div", { className: "h-3" }),
4110
- /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(FieldLabel, { children: "Telefone" }),
4111
- /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
4112
- FieldInput,
4113
- {
4114
- type: "tel",
4115
- inputMode: "tel",
4116
- autoComplete: "tel",
4117
- placeholder: "(11) 99999-9999",
4118
- value: form.phone,
4119
- onChange: form.setPhone,
4120
- onBlur: form.markPhoneTouched,
4121
- error: form.phoneError,
4122
- valid: !!form.phone && !form.phoneError
4123
- }
4124
- ),
4125
- !form.phoneError && /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(FieldHint, { children: "Usado pra confirmar pagamento e tratar disputas." })
4126
- ] }) : null
4127
4056
  ] }),
4128
- /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)("section", { className: "px-5 pt-5", children: [
4129
- /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(FieldLabel, { children: "Forma de pagamento" }),
4130
- /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)("div", { role: "tablist", className: "flex gap-1.5 bg-muted p-1 rounded-xl", children: [
4131
- /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
4132
- TabButton,
4133
- {
4134
- active: form.method === "card",
4135
- onClick: () => form.setMethod("card"),
4136
- icon: /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(CardIcon, { className: "w-3.5 h-3.5" }),
4137
- label: "Cart\xE3o",
4138
- subtitle: trialDays > 0 ? `${trialDays} dias gr\xE1tis` : "pague hoje",
4139
- subtitleActiveClass: "text-emerald-700"
4140
- }
4141
- ),
4142
- /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
4143
- TabButton,
4144
- {
4145
- active: form.method === "pix-auto",
4146
- onClick: () => form.setMethod("pix-auto"),
4147
- icon: /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(PixIcon, { className: "w-3.5 h-3.5" }),
4148
- label: "Pix",
4149
- subtitle: `pague hoje \xB7 garantia ${trialDays}d`,
4150
- subtitleActiveClass: "text-foreground/70"
4151
- }
4152
- )
4153
- ] })
4154
- ] }),
4155
- form.method === "card" ? /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)("section", { className: "px-5 pt-3.5", children: [
4156
- /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(FieldLabel, { children: "N\xFAmero do cart\xE3o" }),
4157
- /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)("div", { className: "relative", children: [
4158
- /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
4159
- FieldInput,
4160
- {
4161
- type: "text",
4162
- inputMode: "numeric",
4163
- autoComplete: "cc-number",
4164
- placeholder: "0000 0000 0000 0000",
4165
- value: form.card.number,
4166
- onChange: (v) => form.setCard({ number: formatCardNumber(v) }),
4167
- style: cardBrand ? { paddingRight: "4.5rem" } : void 0
4168
- }
4169
- ),
4170
- cardBrand && /* @__PURE__ */ (0, import_jsx_runtime48.jsx)("span", { className: "absolute right-3 top-1/2 -translate-y-1/2 text-[10px] font-bold tracking-wide px-1.5 py-0.5 rounded bg-muted text-muted-foreground", children: cardBrand })
4171
- ] }),
4172
- /* @__PURE__ */ (0, import_jsx_runtime48.jsx)("div", { className: "h-3" }),
4173
- /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)("div", { className: "flex gap-2.5", children: [
4174
- /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)("div", { className: "flex-1", children: [
4175
- /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(FieldLabel, { children: "Validade" }),
4057
+ /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)("section", { children: [
4058
+ /* @__PURE__ */ (0, import_jsx_runtime48.jsx)("h2", { className: "font-display text-2xl mb-4 leading-tight text-foreground", children: "Quase l\xE1." }),
4059
+ /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)("div", { className: "space-y-4", children: [
4060
+ /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)("div", { children: [
4061
+ /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(FieldLabel, { children: "Email" }),
4062
+ /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
4063
+ FieldInput,
4064
+ {
4065
+ type: "email",
4066
+ inputMode: "email",
4067
+ autoComplete: "email",
4068
+ autoCapitalize: "none",
4069
+ autoCorrect: "off",
4070
+ spellCheck: false,
4071
+ placeholder: "seu@email.com",
4072
+ value: form.email,
4073
+ onChange: form.setEmail,
4074
+ onBlur: form.markEmailTouched,
4075
+ error: form.emailError,
4076
+ valid: form.emailStatus === "available"
4077
+ }
4078
+ ),
4079
+ !form.emailError && /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(FieldHint, { children: form.emailStatus === "checking" ? "Verificando\u2026" : form.emailStatus === "available" ? "\u2713 Dispon\xEDvel" : "Voc\xEA vai usar este email para entrar no app" })
4080
+ ] }),
4081
+ /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)("div", { children: [
4082
+ /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(FieldLabel, { children: "Nome completo" }),
4176
4083
  /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
4177
4084
  FieldInput,
4178
4085
  {
4179
4086
  type: "text",
4180
- inputMode: "numeric",
4181
- autoComplete: "cc-exp",
4182
- placeholder: "MM/AA",
4183
- value: expiryMmAa,
4184
- onChange: (v) => setExpiryMmAa(formatExpiryMmAa(v))
4087
+ autoComplete: "name",
4088
+ placeholder: "como est\xE1 no documento",
4089
+ value: form.name,
4090
+ onChange: form.setName,
4091
+ onBlur: form.markNameTouched,
4092
+ error: form.nameError,
4093
+ valid: !!form.name && !form.nameError
4185
4094
  }
4186
4095
  )
4187
4096
  ] }),
4188
- /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)("div", { className: "flex-1", children: [
4189
- /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(FieldLabel, { children: "CVV" }),
4097
+ /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)("div", { children: [
4098
+ /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(FieldLabel, { children: "CPF" }),
4190
4099
  /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
4191
4100
  FieldInput,
4192
4101
  {
4193
4102
  type: "text",
4194
4103
  inputMode: "numeric",
4195
- autoComplete: "cc-csc",
4196
- placeholder: "3 d\xEDgitos",
4197
- value: form.card.ccv,
4198
- onChange: (v) => form.setCard({ ccv: v.replace(/\D/g, "").slice(0, 4) })
4104
+ placeholder: "000.000.000-00",
4105
+ value: form.cpf,
4106
+ onChange: (v) => form.setCpf(formatCpf(v)),
4107
+ onBlur: form.markCpfTouched,
4108
+ error: form.cpfError,
4109
+ valid: !!form.cpf && !form.cpfError
4110
+ }
4111
+ )
4112
+ ] }),
4113
+ form.method === "card" ? /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)("div", { children: [
4114
+ /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(FieldLabel, { children: "Telefone" }),
4115
+ /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
4116
+ FieldInput,
4117
+ {
4118
+ type: "tel",
4119
+ inputMode: "tel",
4120
+ autoComplete: "tel",
4121
+ placeholder: "(11) 99999-9999",
4122
+ value: form.phone,
4123
+ onChange: form.setPhone,
4124
+ onBlur: form.markPhoneTouched,
4125
+ error: form.phoneError,
4126
+ valid: !!form.phone && !form.phoneError
4127
+ }
4128
+ ),
4129
+ !form.phoneError && /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(FieldHint, { children: "Usado pra confirmar pagamento e tratar disputas." })
4130
+ ] }) : null
4131
+ ] })
4132
+ ] }),
4133
+ /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)("section", { className: "space-y-4", children: [
4134
+ /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)("div", { children: [
4135
+ /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(FieldLabel, { children: "Forma de pagamento" }),
4136
+ /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)("div", { role: "tablist", className: "flex gap-1.5 bg-muted p-1 rounded-xl", children: [
4137
+ /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
4138
+ TabButton,
4139
+ {
4140
+ active: form.method === "card",
4141
+ onClick: () => form.setMethod("card"),
4142
+ icon: /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(CardIcon, { className: "w-3.5 h-3.5" }),
4143
+ label: "Cart\xE3o",
4144
+ subtitle: trialDays > 0 ? `${trialDays} dias gr\xE1tis` : "pague hoje",
4145
+ subtitleActiveClass: "text-emerald-700"
4146
+ }
4147
+ ),
4148
+ /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
4149
+ TabButton,
4150
+ {
4151
+ active: form.method === "pix-auto",
4152
+ onClick: () => form.setMethod("pix-auto"),
4153
+ icon: /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(PixIcon, { className: "w-3.5 h-3.5" }),
4154
+ label: "Pix",
4155
+ subtitle: `pague hoje \xB7 garantia ${trialDays}d`,
4156
+ subtitleActiveClass: "text-foreground/70"
4199
4157
  }
4200
4158
  )
4201
4159
  ] })
4202
4160
  ] }),
4203
- /* @__PURE__ */ (0, import_jsx_runtime48.jsx)("div", { className: "h-3" }),
4204
- /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(FieldLabel, { children: "Nome no cart\xE3o" }),
4205
- /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
4206
- FieldInput,
4207
- {
4208
- type: "text",
4209
- autoComplete: "cc-name",
4210
- placeholder: "como est\xE1 no cart\xE3o",
4211
- value: form.card.holderName,
4212
- onChange: (v) => form.setCard({ holderName: v })
4213
- }
4214
- )
4215
- ] }) : /* @__PURE__ */ (0, import_jsx_runtime48.jsx)("section", { className: "px-5 pt-3.5", children: /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)("div", { className: "rounded-2xl bg-card border border-border p-3.5 flex gap-3.5 items-center", children: [
4216
- /* @__PURE__ */ (0, import_jsx_runtime48.jsx)("div", { className: "w-[72px] h-[72px] rounded-xl shrink-0 border-2 border-foreground relative overflow-hidden bg-muted", children: /* @__PURE__ */ (0, import_jsx_runtime48.jsx)("div", { className: "absolute left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2 w-[22px] h-[22px] bg-background flex items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(PixIcon, { className: "w-3.5 h-3.5 text-foreground" }) }) }),
4217
- /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)("div", { className: "flex-1", children: [
4218
- /* @__PURE__ */ (0, import_jsx_runtime48.jsx)("div", { className: "text-xs font-bold uppercase tracking-wider text-muted-foreground", children: "pagamento em segundos" }),
4219
- /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)("div", { className: "text-sm text-foreground mt-1 leading-snug", children: [
4220
- "Geramos seu ",
4221
- /* @__PURE__ */ (0, import_jsx_runtime48.jsx)("b", { children: "QR Pix" }),
4222
- " no pr\xF3ximo passo. Pague pelo app do banco e seu acesso libera ",
4223
- /* @__PURE__ */ (0, import_jsx_runtime48.jsx)("b", { children: "imediatamente" }),
4224
- "."
4161
+ form.method === "card" ? /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)("div", { className: "space-y-4", children: [
4162
+ /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)("div", { children: [
4163
+ /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(FieldLabel, { children: "N\xFAmero do cart\xE3o" }),
4164
+ /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)("div", { className: "relative", children: [
4165
+ /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
4166
+ FieldInput,
4167
+ {
4168
+ type: "text",
4169
+ inputMode: "numeric",
4170
+ autoComplete: "cc-number",
4171
+ placeholder: "0000 0000 0000 0000",
4172
+ value: form.card.number,
4173
+ onChange: (v) => form.setCard({ number: formatCardNumber(v) }),
4174
+ style: cardBrand ? { paddingRight: "4.5rem" } : void 0
4175
+ }
4176
+ ),
4177
+ cardBrand && /* @__PURE__ */ (0, import_jsx_runtime48.jsx)("span", { className: "absolute right-3 top-1/2 -translate-y-1/2 text-[10px] font-bold tracking-wide px-1.5 py-0.5 rounded bg-muted text-muted-foreground", children: cardBrand })
4178
+ ] })
4179
+ ] }),
4180
+ /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)("div", { className: "flex gap-3", children: [
4181
+ /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)("div", { className: "flex-1", children: [
4182
+ /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(FieldLabel, { children: "Validade" }),
4183
+ /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
4184
+ FieldInput,
4185
+ {
4186
+ type: "text",
4187
+ inputMode: "numeric",
4188
+ autoComplete: "cc-exp",
4189
+ placeholder: "MM/AA",
4190
+ value: expiryMmAa,
4191
+ onChange: (v) => setExpiryMmAa(formatExpiryMmAa(v))
4192
+ }
4193
+ )
4194
+ ] }),
4195
+ /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)("div", { className: "flex-1", children: [
4196
+ /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(FieldLabel, { children: "CVV" }),
4197
+ /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
4198
+ FieldInput,
4199
+ {
4200
+ type: "text",
4201
+ inputMode: "numeric",
4202
+ autoComplete: "cc-csc",
4203
+ placeholder: "3 d\xEDgitos",
4204
+ value: form.card.ccv,
4205
+ onChange: (v) => form.setCard({ ccv: v.replace(/\D/g, "").slice(0, 4) })
4206
+ }
4207
+ )
4208
+ ] })
4209
+ ] }),
4210
+ /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)("div", { children: [
4211
+ /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(FieldLabel, { children: "Nome no cart\xE3o" }),
4212
+ /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
4213
+ FieldInput,
4214
+ {
4215
+ type: "text",
4216
+ autoComplete: "cc-name",
4217
+ placeholder: "como est\xE1 no cart\xE3o",
4218
+ value: form.card.holderName,
4219
+ onChange: (v) => form.setCard({ holderName: v })
4220
+ }
4221
+ )
4222
+ ] })
4223
+ ] }) : /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)("div", { className: "rounded-2xl bg-card border border-border p-4 flex gap-3.5 items-center", children: [
4224
+ /* @__PURE__ */ (0, import_jsx_runtime48.jsx)("div", { className: "w-[72px] h-[72px] rounded-xl shrink-0 border-2 border-foreground relative overflow-hidden bg-muted", children: /* @__PURE__ */ (0, import_jsx_runtime48.jsx)("div", { className: "absolute left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2 w-[22px] h-[22px] bg-background flex items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(PixIcon, { className: "w-3.5 h-3.5 text-foreground" }) }) }),
4225
+ /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)("div", { className: "flex-1", children: [
4226
+ /* @__PURE__ */ (0, import_jsx_runtime48.jsx)("div", { className: "text-xs font-bold uppercase tracking-wider text-muted-foreground", children: "pagamento em segundos" }),
4227
+ /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)("div", { className: "text-sm text-foreground mt-1 leading-snug", children: [
4228
+ "Geramos seu ",
4229
+ /* @__PURE__ */ (0, import_jsx_runtime48.jsx)("b", { children: "QR Pix" }),
4230
+ " no pr\xF3ximo passo. Pague pelo app do banco e seu acesso libera ",
4231
+ /* @__PURE__ */ (0, import_jsx_runtime48.jsx)("b", { children: "imediatamente" }),
4232
+ "."
4233
+ ] })
4225
4234
  ] })
4226
4235
  ] })
4227
- ] }) }),
4228
- /* @__PURE__ */ (0, import_jsx_runtime48.jsx)("section", { className: "px-5 pt-5", children: /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)("div", { className: "bg-muted rounded-2xl p-4", children: [
4229
- /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)("div", { className: "flex justify-between mb-2.5", children: [
4236
+ ] }),
4237
+ /* @__PURE__ */ (0, import_jsx_runtime48.jsx)("section", { children: /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)("div", { className: "bg-muted rounded-2xl p-4", children: [
4238
+ /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)("div", { className: "flex justify-between gap-3", children: [
4230
4239
  /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)("div", { children: [
4231
4240
  /* @__PURE__ */ (0, import_jsx_runtime48.jsx)("div", { className: "text-sm font-semibold text-foreground", children: annual ? "Plano Anual" : "Plano Mensal" }),
4232
4241
  /* @__PURE__ */ (0, import_jsx_runtime48.jsx)("div", { className: "text-[11px] text-muted-foreground", children: "Coach" })
@@ -4244,23 +4253,21 @@ function CheckoutPageDefault() {
4244
4253
  ] })
4245
4254
  ] }),
4246
4255
  /* @__PURE__ */ (0, import_jsx_runtime48.jsx)("div", { className: "h-px bg-border my-3" }),
4247
- /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)("div", { className: "flex justify-between items-baseline", children: [
4248
- /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)("div", { children: [
4249
- /* @__PURE__ */ (0, import_jsx_runtime48.jsx)("div", { className: "text-sm font-bold text-foreground", children: "Voc\xEA paga hoje" }),
4250
- form.method === "card" && trialDays > 0 && /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)("div", { className: "text-[11px] text-muted-foreground mt-0.5", children: [
4251
- "cobran\xE7a inicia no dia ",
4252
- trialDays
4253
- ] }),
4254
- form.method === "pix-auto" && /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)("div", { className: "text-[11px] text-emerald-700 mt-0.5 font-semibold", children: [
4255
- "reembolso garantido at\xE9 o dia ",
4256
- trialDays
4257
- ] })
4258
- ] }),
4256
+ /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)("div", { className: "flex justify-between items-baseline gap-3", children: [
4257
+ /* @__PURE__ */ (0, import_jsx_runtime48.jsx)("div", { className: "text-sm font-bold text-foreground", children: "Voc\xEA paga hoje" }),
4259
4258
  /* @__PURE__ */ (0, import_jsx_runtime48.jsx)("div", { className: "text-2xl font-bold font-display tracking-tight text-foreground", children: todayAmount })
4259
+ ] }),
4260
+ form.method === "card" && trialDays > 0 && /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)("div", { className: "mt-1.5 text-[11px] text-muted-foreground", children: [
4261
+ "cobran\xE7a inicia no dia ",
4262
+ trialDays
4263
+ ] }),
4264
+ form.method === "pix-auto" && /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)("div", { className: "mt-1.5 text-[11px] text-emerald-700 font-semibold", children: [
4265
+ "reembolso garantido at\xE9 o dia ",
4266
+ trialDays
4260
4267
  ] })
4261
4268
  ] }) })
4262
4269
  ] }),
4263
- /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)(PaywallStickyFooter, { className: "px-5 pt-3.5 pb-5 border-t border-border", children: [
4270
+ /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)(PaywallStickyFooter, { className: "px-5 pt-5 pb-6 border-t border-border", children: [
4264
4271
  /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
4265
4272
  "button",
4266
4273
  {
@@ -4280,12 +4287,12 @@ function CheckoutPageDefault() {
4280
4287
  ] })
4281
4288
  }
4282
4289
  ),
4283
- /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)("div", { className: "text-center mt-2.5 text-xs text-muted-foreground", children: [
4290
+ /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)("div", { className: "text-center mt-3 text-xs text-muted-foreground", children: [
4284
4291
  "Ao continuar, voc\xEA concorda com nossos ",
4285
4292
  /* @__PURE__ */ (0, import_jsx_runtime48.jsx)("u", { children: "Termos" }),
4286
4293
  ". Pagamento seguro Asaas."
4287
4294
  ] }),
4288
- /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)("div", { className: "mt-3 flex items-center justify-center gap-3.5 text-[11px] text-muted-foreground", children: [
4295
+ /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)("div", { className: "mt-3 flex items-center justify-center gap-4 text-[11px] text-muted-foreground", children: [
4289
4296
  /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)("span", { className: "inline-flex items-center gap-1", children: [
4290
4297
  /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(LockIcon, { className: "w-2.5 h-2.5 opacity-60" }),
4291
4298
  " SSL 256-bit"
@@ -4303,7 +4310,7 @@ function CheckoutPageDefault() {
4303
4310
  ] }) });
4304
4311
  }
4305
4312
  function FieldLabel({ children }) {
4306
- return /* @__PURE__ */ (0, import_jsx_runtime48.jsx)("div", { className: "text-xs font-semibold uppercase tracking-wide text-muted-foreground mb-1.5", children });
4313
+ return /* @__PURE__ */ (0, import_jsx_runtime48.jsx)("div", { className: "text-xs font-semibold uppercase tracking-wide text-muted-foreground mb-2", children });
4307
4314
  }
4308
4315
  function FieldInput(props) {
4309
4316
  const baseClass = "w-full px-4 rounded-xl bg-card text-base text-foreground outline-none border-[1.5px] transition-colors";