@12-apps/payments-frontend 3.21.0 → 3.21.1

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@12-apps/payments-frontend",
3
- "version": "3.21.0",
3
+ "version": "3.21.1",
4
4
  "type": "module",
5
5
  "sideEffects": false,
6
6
  "description": "Browser half of the vendor-agnostic payments platform: plug-and-play MUI components for the per-provider settings page (credential form from each provider's schema, masked hints, verify/enable) and the checkout page (PIX QR + polling, card tokenization, hosted-checkout redirect), plus the headless hooks and fetch clients they build on. Talks only to the host's payments HTTP surface — never to a provider directly. Microfrontend-ready: no app coupling, host injects theme and auth.",
@@ -106,7 +106,22 @@ export const PT_BR_ACTIVATION_STEP_COPY: ActivationStepCopy = {
106
106
  },
107
107
  taxId: {
108
108
  label: 'CPF do titular',
109
- hint: (displayName) => `A ${displayName} exige o CPF em qualquer cobrança no cartão.`,
109
+ // No article, deliberately (FUT-675). This field renders from the CARD
110
+ // flow only — pagbank, stone, stripe — and no single article fits all
111
+ // three: "a Stone" and "a Stripe" are natural where PagBank is
112
+ // conventionally "o PagBank", so the previous round's "A ${displayName}
113
+ // exige" bought Stone's grammar with PagBank's. `por` takes no
114
+ // contraction, so one string is correct for every name.
115
+ //
116
+ // The refusal sentences above still take an article ("A ${displayName}
117
+ // recusou") and are NOT covered by that argument — they belong to the
118
+ // redirect flow, which today renders for InfinitePay alone because
119
+ // `card/tokenize.ts` has a tokenizer for exactly the three names above and
120
+ // everything else FALLS BACK to redirect. That is a default, not a rule, so
121
+ // the second redirect provider ever added inherits this same bug — along
122
+ // with `settledBody`, which takes no `displayName` at all and so tells any
123
+ // such provider's owner that refunds happen in InfinitePay's app.
124
+ hint: (displayName) => `Exigido por ${displayName} em qualquer cobrança no cartão.`,
110
125
  placeholder: '000.000.000-00',
111
126
  },
112
127
  charge: {