@tesouro/embedded-components-react 0.3.51 → 0.3.53

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.
Files changed (39) hide show
  1. package/README.md +47 -44
  2. package/dist/index.css +0 -6
  3. package/dist/index.d.ts +79 -5
  4. package/dist/index.js +1 -1
  5. package/dist/lib/CardDetailsWidget.d.ts +61 -1
  6. package/dist/lib/CardDetailsWidget.js +1 -1
  7. package/dist/lib/CreditCardsWidget.d.ts +78 -4
  8. package/dist/lib/DebitCardsWidget.d.ts +78 -4
  9. package/dist/lib/WidgetSuite.d.ts +78 -4
  10. package/dist/libs/tesouro-embedded-components-react/card-details-widget/data-access/dist/index.js +7 -4
  11. package/dist/libs/tesouro-embedded-components-react/card-details-widget/data-access/dist/index2.js +20 -0
  12. package/dist/libs/tesouro-embedded-components-react/card-details-widget/data-access/dist/index3.js +43 -6
  13. package/dist/libs/tesouro-embedded-components-react/card-details-widget/data-access/dist/index4.js +40 -14
  14. package/dist/libs/tesouro-embedded-components-react/card-details-widget/data-access/dist/index5.js +5 -26
  15. package/dist/libs/tesouro-embedded-components-react/card-details-widget/data-access/dist/index6.js +4 -4
  16. package/dist/libs/tesouro-embedded-components-react/card-details-widget/data-access/dist/index7.js +32 -0
  17. package/dist/libs/tesouro-embedded-components-react/card-details-widget/data-access/dist/index8.js +25 -0
  18. package/dist/libs/tesouro-embedded-components-react/card-details-widget/data-access/dist/index9.js +27 -0
  19. package/dist/libs/tesouro-embedded-components-react/card-details-widget/feature/dist/index.js +2 -1
  20. package/dist/libs/tesouro-embedded-components-react/card-details-widget/feature/dist/index5.js +1 -0
  21. package/dist/libs/tesouro-embedded-components-react/card-details-widget/feature/dist/index6.js +17 -160
  22. package/dist/libs/tesouro-embedded-components-react/card-details-widget/feature/dist/index7.js +107 -0
  23. package/dist/libs/tesouro-embedded-components-react/card-details-widget/feature/dist/index8.js +188 -0
  24. package/dist/libs/tesouro-embedded-components-react/card-details-widget/ui/dist/index.js +4 -2
  25. package/dist/libs/tesouro-embedded-components-react/card-details-widget/ui/dist/lib/ActivateCardPanel/ActivateCardPanel.js +137 -8
  26. package/dist/libs/tesouro-embedded-components-react/card-details-widget/ui/dist/lib/ActivateCardPanel/ActivateCardSuccessView.js +27 -2
  27. package/dist/libs/tesouro-embedded-components-react/card-details-widget/ui/dist/lib/ActivateCardPanel/FieldError.js +12 -1
  28. package/dist/libs/tesouro-embedded-components-react/card-details-widget/ui/dist/lib/ActivateCardPanel/labels.js +55 -0
  29. package/dist/libs/tesouro-embedded-components-react/card-details-widget/ui/dist/lib/ActivateCardPanel/validation.js +47 -0
  30. package/dist/libs/tesouro-embedded-components-react/cards-widget/feature/dist/index9.js +37 -36
  31. package/dist/libs/tesouro-embedded-components-react/shared/data-access/dist/index.js +22 -20
  32. package/dist/libs/tesouro-embedded-components-react/shared/data-access/dist/lib/isApiConflictError.js +7 -0
  33. package/dist/libs/tesouro-embedded-components-react/shared/data-access/dist/lib/isApiUnprocessableError.js +7 -0
  34. package/dist/libs/tesouro-embedded-components-react/shared/data-access/dist/lib/rest/@tanstack/react-query.gen.js +246 -225
  35. package/dist/libs/tesouro-embedded-components-react/shared/data-access/dist/lib/rest/sdk.gen.js +170 -134
  36. package/dist/libs/tesouro-embedded-components-react/shared/data-access/dist/lib/rest/zod.gen.js +1378 -1361
  37. package/dist/libs/tesouro-embedded-components-react/shared/feature/dist/lib/analytics/build-info.js +1 -1
  38. package/package.json +27 -2
  39. package/dist/libs/tesouro-embedded-components-react/card-details-widget/ui/dist/lib/ActivateCardPanel/PinField.js +0 -5
package/README.md CHANGED
@@ -265,22 +265,23 @@ One page of an organization's **credit** cards, with a scope-gated "Show my card
265
265
 
266
266
  #### Props
267
267
 
268
- | Prop | Type | Default | Description |
269
- | -------------------------- | --------------------------------------- | -------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
270
- | `pagination` | `{ paginationToken?, pageSize? }` | `undefined` | Controlled cursor and page size. Supply with `onPaginationChange` when your app owns the list position. |
271
- | `defaultPagination` | `{ paginationToken?, pageSize? }` | First page, 10 | Initial cursor and page size when uncontrolled. Ignored when `pagination` is supplied. |
272
- | `onPaginationChange` | `(pagination: CardsPagination) => void` | `undefined` | Called whenever the widget moves page or changes page size. Persist the whole object, not the token alone. |
273
- | `labels` | `PartialDeep<CardsLabels>` | English labels | Overrides the copy of the list screen, including the details sheet's screen-reader name under `detailsSheet`. Nested groups merge per group. |
274
- | `featureLabels` | `PartialDeep<CardsFeatureLabels>` | English labels | Overrides the copy this widget resolves rather than passes through — status and form-factor vocabulary, the empty-cell placeholder, and name fallbacks. |
275
- | `selectedCardId` | `string \| null` | `undefined` | Controlled selection of the card whose details panel is open. `null` closes it; omit for uncontrolled. See **Selection** below. |
276
- | `defaultSelectedCardId` | `string \| null` | `undefined` | Initial selection when uncontrolled. Ignored when `selectedCardId` is supplied. |
277
- | `onSelectedCardIdChange` | `(cardId: string \| null) => void` | `undefined` | Fires whenever the open card changes, including on close (`null`). Supplying it does **not** change what renders. |
278
- | `cardDetailsLabels` | `PartialDeep<CardDetailsWidgetLabels>` | English labels | Label overrides forwarded into the details panel. |
279
- | `cardDetailsFeatureLabels` | `PartialDeep<CardDetailsFeatureLabels>` | English labels | Overrides for the copy the panel's feature layer resolves — status vocabulary, form-factor copy, program label, copy-success toast. Distinct from `featureLabels`. |
280
- | `bankLogoSrc` | `string` | `undefined` | Bank logo for the details panel's card face. Omit and the face renders without a logo rather than with a placeholder. |
281
- | `bankLogoAlt` | `string` | `undefined` | Alt text for `bankLogoSrc`. |
282
- | `onCreateCard` | `() => void` | `undefined` | Host-owned Create card handler. Required for the button to render at all. See **Create card** below. |
283
- | `onActivateCard` | `(cardId: string) => void` | `undefined` | Called when a row's Activate button is clicked. Omit it and the button is not rendered. |
268
+ | Prop | Type | Default | Description |
269
+ | --------------------------- | --------------------------------------- | -------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
270
+ | `pagination` | `{ paginationToken?, pageSize? }` | `undefined` | Controlled cursor and page size. Supply with `onPaginationChange` when your app owns the list position. |
271
+ | `defaultPagination` | `{ paginationToken?, pageSize? }` | First page, 10 | Initial cursor and page size when uncontrolled. Ignored when `pagination` is supplied. |
272
+ | `onPaginationChange` | `(pagination: CardsPagination) => void` | `undefined` | Called whenever the widget moves page or changes page size. Persist the whole object, not the token alone. |
273
+ | `labels` | `PartialDeep<CardsLabels>` | English labels | Overrides the copy of the list screen, including the details sheet's screen-reader name under `detailsSheet`. Nested groups merge per group. |
274
+ | `featureLabels` | `PartialDeep<CardsFeatureLabels>` | English labels | Overrides the copy this widget resolves rather than passes through — status and form-factor vocabulary, the empty-cell placeholder, and name fallbacks. |
275
+ | `selectedCardId` | `string \| null` | `undefined` | Controlled selection of the card whose details panel is open. `null` closes it; omit for uncontrolled. See **Selection** below. |
276
+ | `defaultSelectedCardId` | `string \| null` | `undefined` | Initial selection when uncontrolled. Ignored when `selectedCardId` is supplied. |
277
+ | `onSelectedCardIdChange` | `(cardId: string \| null) => void` | `undefined` | Fires whenever the open card changes, including on close (`null`). Supplying it does **not** change what renders. |
278
+ | `cardDetailsLabels` | `PartialDeep<CardDetailsWidgetLabels>` | English labels | Label overrides forwarded into the details panel. |
279
+ | `cardDetailsFeatureLabels` | `PartialDeep<CardDetailsFeatureLabels>` | English labels | Overrides for the copy the panel's feature layer resolves — status vocabulary, form-factor copy, program label, copy-success toast. Distinct from `featureLabels`. |
280
+ | `cardDetailsActivateLabels` | `PartialDeep<ActivateCardPanelLabels>` | English labels | Overrides for the Activate Card form the details panel opens its heading, the two field labels, and its validation and status copy. |
281
+ | `bankLogoSrc` | `string` | `undefined` | Bank logo for the details panel's card face. Omit and the face renders without a logo rather than with a placeholder. |
282
+ | `bankLogoAlt` | `string` | `undefined` | Alt text for `bankLogoSrc`. |
283
+ | `onCreateCard` | `() => void` | `undefined` | Host-owned Create card handler. Required for the button to render at all. See **Create card** below. |
284
+ | `onActivateCard` | `(cardId: string) => void` | `undefined` | Called when a row's Activate button is clicked. Omit it and the button is not rendered. |
284
285
 
285
286
  ### DebitCardsWidget
286
287
 
@@ -288,25 +289,26 @@ One page of an organization's **debit** cards, with a scope-gated "Show my cards
288
289
 
289
290
  #### Props
290
291
 
291
- | Prop | Type | Default | Description |
292
- | -------------------------- | --------------------------------------- | -------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
293
- | `pagination` | `{ paginationToken?, pageSize? }` | `undefined` | Controlled cursor and page size. Supply with `onPaginationChange` when your app owns the list position. |
294
- | `defaultPagination` | `{ paginationToken?, pageSize? }` | First page, 10 | Initial cursor and page size when uncontrolled. Ignored when `pagination` is supplied. |
295
- | `onPaginationChange` | `(pagination: CardsPagination) => void` | `undefined` | Called whenever the widget moves page or changes page size. Persist the whole object, not the token alone. |
296
- | `labels` | `PartialDeep<CardsLabels>` | English labels | Overrides the copy of the list screen, including the details sheet's screen-reader name under `detailsSheet` and the create sheet's under `createSheet`. Nested groups merge per group. |
297
- | `featureLabels` | `PartialDeep<CardsFeatureLabels>` | English labels | Overrides the copy this widget resolves rather than passes through — status and form-factor vocabulary, the empty-cell placeholder, and name fallbacks. |
298
- | `selectedCardId` | `string \| null` | `undefined` | Controlled selection of the card whose details panel is open. `null` closes it; omit for uncontrolled. See **Selection** below. |
299
- | `defaultSelectedCardId` | `string \| null` | `undefined` | Initial selection when uncontrolled. Ignored when `selectedCardId` is supplied. |
300
- | `onSelectedCardIdChange` | `(cardId: string \| null) => void` | `undefined` | Fires whenever the open card changes, including on close (`null`). Supplying it does **not** change what renders. |
301
- | `cardDetailsLabels` | `PartialDeep<CardDetailsWidgetLabels>` | English labels | Label overrides forwarded into the details panel. |
302
- | `cardDetailsFeatureLabels` | `PartialDeep<CardDetailsFeatureLabels>` | English labels | Overrides for the copy the panel's feature layer resolves — status vocabulary, form-factor copy, program label, copy-success toast. Distinct from `featureLabels`. |
303
- | `bankLogoSrc` | `string` | `undefined` | Bank logo for the details panel's card face. Omit and the face renders without a logo rather than with a placeholder. |
304
- | `bankLogoAlt` | `string` | `undefined` | Alt text for `bankLogoSrc`. |
305
- | `cardArtSrc` | `string` | `undefined` | Plastic art for the built-in create sheet. Required for that sheet: omit it (with no `onCreateCard`) and Create card is hidden. See **Create card** below. |
306
- | `createCardLabels` | `PartialDeep<CreateCardWidgetLabels>` | English labels | Label overrides forwarded into the nested create-card panel. |
307
- | `createCardFeatureLabels` | toast / untitled-funding overrides | English labels | Overrides for the copy the create panel's feature layer resolves — mutation toasts, untitled funding-account fallback, pending-activation success copy. |
308
- | `onCreateCard` | `() => void` | `undefined` | Host-owned Create card handler. When supplied, the built-in sheet does not openuse it for a custom issuance flow. |
309
- | `onActivateCard` | `(cardId: string) => void` | `undefined` | Called when a row's Activate button is clicked. Omit it and the button is not rendered. |
292
+ | Prop | Type | Default | Description |
293
+ | --------------------------- | --------------------------------------- | -------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
294
+ | `pagination` | `{ paginationToken?, pageSize? }` | `undefined` | Controlled cursor and page size. Supply with `onPaginationChange` when your app owns the list position. |
295
+ | `defaultPagination` | `{ paginationToken?, pageSize? }` | First page, 10 | Initial cursor and page size when uncontrolled. Ignored when `pagination` is supplied. |
296
+ | `onPaginationChange` | `(pagination: CardsPagination) => void` | `undefined` | Called whenever the widget moves page or changes page size. Persist the whole object, not the token alone. |
297
+ | `labels` | `PartialDeep<CardsLabels>` | English labels | Overrides the copy of the list screen, including the details sheet's screen-reader name under `detailsSheet` and the create sheet's under `createSheet`. Nested groups merge per group. |
298
+ | `featureLabels` | `PartialDeep<CardsFeatureLabels>` | English labels | Overrides the copy this widget resolves rather than passes through — status and form-factor vocabulary, the empty-cell placeholder, and name fallbacks. |
299
+ | `selectedCardId` | `string \| null` | `undefined` | Controlled selection of the card whose details panel is open. `null` closes it; omit for uncontrolled. See **Selection** below. |
300
+ | `defaultSelectedCardId` | `string \| null` | `undefined` | Initial selection when uncontrolled. Ignored when `selectedCardId` is supplied. |
301
+ | `onSelectedCardIdChange` | `(cardId: string \| null) => void` | `undefined` | Fires whenever the open card changes, including on close (`null`). Supplying it does **not** change what renders. |
302
+ | `cardDetailsLabels` | `PartialDeep<CardDetailsWidgetLabels>` | English labels | Label overrides forwarded into the details panel. |
303
+ | `cardDetailsFeatureLabels` | `PartialDeep<CardDetailsFeatureLabels>` | English labels | Overrides for the copy the panel's feature layer resolves — status vocabulary, form-factor copy, program label, copy-success toast. Distinct from `featureLabels`. |
304
+ | `cardDetailsActivateLabels` | `PartialDeep<ActivateCardPanelLabels>` | English labels | Overrides for the Activate Card form the details panel opens its heading, the two field labels, and its validation and status copy. |
305
+ | `bankLogoSrc` | `string` | `undefined` | Bank logo for the details panel's card face. Omit and the face renders without a logo rather than with a placeholder. |
306
+ | `bankLogoAlt` | `string` | `undefined` | Alt text for `bankLogoSrc`. |
307
+ | `cardArtSrc` | `string` | `undefined` | Plastic art for the built-in create sheet. Required for that sheet: omit it (with no `onCreateCard`) and Create card is hidden. See **Create card** below. |
308
+ | `createCardLabels` | `PartialDeep<CreateCardWidgetLabels>` | English labels | Label overrides forwarded into the nested create-card panel. |
309
+ | `createCardFeatureLabels` | toast / untitled-funding overrides | English labels | Overrides for the copy the create panel's feature layer resolvesmutation toasts, untitled funding-account fallback, pending-activation success copy. |
310
+ | `onCreateCard` | `() => void` | `undefined` | Host-owned Create card handler. When supplied, the built-in sheet does not open — use it for a custom issuance flow. |
311
+ | `onActivateCard` | `(cardId: string) => void` | `undefined` | Called when a row's Activate button is clicked. Omit it and the button is not rendered. |
310
312
 
311
313
  ### CardDetailsWidget
312
314
 
@@ -314,15 +316,16 @@ Read-only details for one credit **or** debit card — status, form factor, prog
314
316
 
315
317
  #### Props
316
318
 
317
- | Prop | Type | Default | Description |
318
- | ---------------- | --------------------------------------- | -------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
319
- | `cardId` | `string` | **Required** | Id of the card to show. |
320
- | `cardProgram` | `'credit' \| 'debit'` | **Required** | Which issuing program `cardId` belongs to. Selects the endpoint the card is fetched from. |
321
- | `onClose` | `() => void` | `undefined` | Called when the header's close control is pressed. Omit it and no close control is rendered at all. |
322
- | `labels` | `PartialDeep<CardDetailsWidgetLabels>` | English labels | Overrides the panel's own copy — header, card face alt text, row headings, copy-button accessible names, and the loading/error/not-found screens. |
323
- | `featureLabels` | `PartialDeep<CardDetailsFeatureLabels>` | English labels | Overrides the copy this widget resolves rather than passes through — status, form-factor and program vocabulary, the copy-success toast, and the refused-reveal sentence. |
324
- | `bankLogoSrc` | `string` | `undefined` | Bank logo for the card face. Omit and the face renders without a logo rather than with a placeholder. |
325
- | `bankLogoAlt` | `string` | `undefined` | Alt text for `bankLogoSrc`. Falls back to `labels.cardFace.bankLogoAlt`. |
319
+ | Prop | Type | Default | Description |
320
+ | ---------------- | --------------------------------------- | -------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
321
+ | `cardId` | `string` | **Required** | Id of the card to show. |
322
+ | `cardProgram` | `'credit' \| 'debit'` | **Required** | Which issuing program `cardId` belongs to. Selects the endpoint the card is fetched from. |
323
+ | `onClose` | `() => void` | `undefined` | Called when the header's close control is pressed. Omit it and no close control is rendered at all. |
324
+ | `labels` | `PartialDeep<CardDetailsWidgetLabels>` | English labels | Overrides the panel's own copy — header, card face alt text, row headings, copy-button accessible names, and the loading/error/not-found screens. |
325
+ | `activateLabels` | `PartialDeep<ActivateCardPanelLabels>` | English labels | Overrides the Activate Card form's copy its heading, the two field labels, the security-code explanation, and the validation and status text. |
326
+ | `featureLabels` | `PartialDeep<CardDetailsFeatureLabels>` | English labels | Overrides the copy this widget resolves rather than passes through — status, form-factor and program vocabulary, the copy-success toast, the activation-conflict toast, and the refused-reveal sentence. |
327
+ | `bankLogoSrc` | `string` | `undefined` | Bank logo for the card face. Omit and the face renders without a logo rather than with a placeholder. |
328
+ | `bankLogoAlt` | `string` | `undefined` | Alt text for `bankLogoSrc`. Falls back to `labels.cardFace.bankLogoAlt`. |
326
329
 
327
330
  ### CreateCardWidget
328
331
 
package/dist/index.css CHANGED
@@ -220,9 +220,6 @@
220
220
  .ttw\:end-0 {
221
221
  inset-inline-end: calc(var(--ttw-spacing) * 0);
222
222
  }
223
- .ttw\:end-1 {
224
- inset-inline-end: calc(var(--ttw-spacing) * 1);
225
- }
226
223
  .ttw\:\!top-2 {
227
224
  top: calc(var(--ttw-spacing) * 2) !important;
228
225
  }
@@ -2940,9 +2937,6 @@
2940
2937
  .ttw\:py-\[7px\] {
2941
2938
  padding-block: 7px;
2942
2939
  }
2943
- .ttw\:pe-10 {
2944
- padding-inline-end: calc(var(--ttw-spacing) * 10);
2945
- }
2946
2940
  .ttw\:pt-0 {
2947
2941
  padding-top: 0px;
2948
2942
  }
package/dist/index.d.ts CHANGED
@@ -1700,6 +1700,58 @@ interface CardDetailsPanelLabels {
1700
1700
  status: CardDetailsStatusScreenLabels;
1701
1701
  }
1702
1702
 
1703
+ /** Chrome around the form. */
1704
+ interface ActivateCardHeaderLabels {
1705
+ title: string;
1706
+ /** Accessible name for the close (X) control. */
1707
+ closeAriaLabel: string;
1708
+ }
1709
+ /** Accessible copy for the card face this panel reuses. */
1710
+ interface ActivateCardCardFaceLabels {
1711
+ /** Alt text for the bank logo when the caller supplies no `bankLogoAlt`. */
1712
+ bankLogoAlt: string;
1713
+ }
1714
+ /** Field headings, placeholders and the copy behind each affordance. */
1715
+ interface ActivateCardFieldLabels {
1716
+ expirationDate: string;
1717
+ expirationDatePlaceholder: string;
1718
+ securityCode: string;
1719
+ securityCodePlaceholder: string;
1720
+ /** Accessible name for the (?) control that reveals the explanation. */
1721
+ securityCodeInfoAriaLabel: string;
1722
+ /** The explanation itself, shown in the tooltip. */
1723
+ securityCodeInfo: string;
1724
+ }
1725
+ /** One message per failure the panel can mark. */
1726
+ interface ActivateCardValidationLabels {
1727
+ impossibleMonth: string;
1728
+ pastExpiration: string;
1729
+ /**
1730
+ * Shown when the server rejects the pair. Names both values because the
1731
+ * verify endpoint withholds which one missed — see `ActivateCardFormErrors`.
1732
+ */
1733
+ verificationRejected: string;
1734
+ }
1735
+ /** The CTA and the two screens that replace or accompany the form. */
1736
+ interface ActivateCardStatusLabels {
1737
+ submit: string;
1738
+ /** Accessible name announced while the activation is in flight. */
1739
+ submittingAriaLabel: string;
1740
+ successTitle: string;
1741
+ successDescription: string;
1742
+ /** Label for the optional post-success control. */
1743
+ done: string;
1744
+ /** Fallback failure copy when the owner supplies no `errorMessage`. */
1745
+ errorDescription: string;
1746
+ }
1747
+ interface ActivateCardPanelLabels {
1748
+ header: ActivateCardHeaderLabels;
1749
+ cardFace: ActivateCardCardFaceLabels;
1750
+ fields: ActivateCardFieldLabels;
1751
+ validation: ActivateCardValidationLabels;
1752
+ status: ActivateCardStatusLabels;
1753
+ }
1754
+
1703
1755
  /**
1704
1756
  * Deep partial for label overrides.
1705
1757
  *
@@ -1726,6 +1778,12 @@ type PartialDeep$6<T> = {
1726
1778
  interface CardDetailsFeatureLabels {
1727
1779
  /** Confirmation toast after a copy affordance writes to the clipboard. */
1728
1780
  copySuccessToast: string;
1781
+ /**
1782
+ * Toast shown when activation is refused because the card is no longer
1783
+ * awaiting it. Resolved here rather than in the panel because it is an
1784
+ * API outcome, and because the panel closes as it fires.
1785
+ */
1786
+ activationConflictToast: string;
1729
1787
  /**
1730
1788
  * Replaces the panel's generic reveal error when the credentials call was
1731
1789
  * refused (HTTP 403).
@@ -1787,6 +1845,8 @@ interface CardDetailsWidgetProps extends WidgetProviderProps {
1787
1845
  onClose?: () => void;
1788
1846
  /** Overrides for the panel's own copy. */
1789
1847
  labels?: PartialDeep$6<CardDetailsPanelLabels>;
1848
+ /** Overrides for the Activate Card form's copy. */
1849
+ activateLabels?: PartialDeep$6<ActivateCardPanelLabels>;
1790
1850
  /** Overrides for the copy this layer resolves — see `CardDetailsFeatureLabels`. */
1791
1851
  featureLabels?: PartialDeep$6<CardDetailsFeatureLabels>;
1792
1852
  /**
@@ -2167,6 +2227,15 @@ interface CardsWidgetProps extends WidgetProviderProps {
2167
2227
  * renames a status in the list would still read the default inside the panel.
2168
2228
  */
2169
2229
  cardDetailsFeatureLabels?: CardDetailsWidgetProps['featureLabels'];
2230
+ /**
2231
+ * Overrides for the Activate Card form the details panel opens.
2232
+ *
2233
+ * Its own prop for the same reason `cardDetailsLabels` is: without it that
2234
+ * screen's copy is unreachable from this composition, so a host that translated
2235
+ * everything else would still meet English on the one form that asks the reader
2236
+ * to type something.
2237
+ */
2238
+ cardDetailsActivateLabels?: CardDetailsWidgetProps['activateLabels'];
2170
2239
  /**
2171
2240
  * Bank logo for the details panel's card face. Forwarded verbatim; the panel
2172
2241
  * renders no logo without it, so omitting these leaves the built-in sheet
@@ -2211,10 +2280,15 @@ interface CardsWidgetProps extends WidgetProviderProps {
2211
2280
  * renders only on cards in `PENDING_ACTIVATION`, and only when the widget token
2212
2281
  * also holds the program's activate scope.
2213
2282
  *
2214
- * Host-owned for the same reason as `onCreateCard`: EMBD-4398 designs no
2215
- * activation flow, and `POST /debit-cards/{id}/activate` does not exist even
2216
- * though `debit_card:activate:org` doesso a built-in flow could serve only
2217
- * one of the two programs.
2283
+ * Host-owned because EMBD-4398 designs no activation flow for the *list*.
2284
+ *
2285
+ * The original second reason that no activate endpoint existed no longer
2286
+ * holds: both programs have one, and the details panel this widget opens now
2287
+ * runs the whole flow itself (EMBD-5085). So a built-in row flow is now
2288
+ * buildable, and this callback stays host-owned by choice rather than by
2289
+ * necessity. Changing it would be a breaking change to a published prop and
2290
+ * belongs in its own ticket; until then a host that wants the built-in flow
2291
+ * can omit this and let the reader open the card.
2218
2292
  */
2219
2293
  onActivateCard?: (cardId: string) => void;
2220
2294
  }
@@ -5330,4 +5404,4 @@ interface CheckAmountAndDetailScreenProps {
5330
5404
  type PendingFeatureStyleSources = CheckAmountAndDetailScreenProps | GapCoverageAlertProps | NoPolicyBannerProps;
5331
5405
 
5332
5406
  export { ACCEPT_DISCLOSURES_WIDGET_LABELS_EN, ACCOUNT_DELETE_DIALOG_LABELS_EN, ACCOUNT_FORM_SHEET_LABELS_EN, ADDITIONAL_OWNERS_LABELS_EN, AcceptDisclosuresWidget, AccountDeleteDialog, AccountFormSheet, BALANCES_WIDGET_LABELS_EN, BUSINESS_DETAILS_LABELS_EN, BalancesWidget, BankAccountOnboardingWidget, BankAccountsWidget, BillPayWidget, CHART_OF_ACCOUNTS_LABELS_EN, CHART_OF_ACCOUNTS_MESSAGE_LABELS_EN, CREATE_CARD_FEATURE_LABELS_EN, CardDetailsWidget, CardFormatValue, ChartOfAccountsTable, ChartOfAccountsWidget, CounterpartsWidget, CreateCardWidget, CreditCardsWidget, DebitCardsWidget, ERROR_STATE_ID, ExpenseApprovalPoliciesWidget, ExpenseManagementWidget, ExpenseRequirementsWidget, HELP_FAQ_EN, HELP_WIDGET_LABELS_EN, HelpWidget, INSIGHTS_FEATURE_LABELS_EN, INSIGHTS_WIDGET_LABELS_EN, Implementation, InsightsWidget, ReceivablesWidgetMonite as InvoicingWidget, LinkedAccountsWidget, PERSONAL_DETAILS_LABELS_EN, ProductsWidget, ProfileWidget, RESULT_LABELS_EN, ReceiptMatchWidget, ReceivablesWidget, RefreshingRootWidgetProvider, RootWidgetProvider, SINGLE_INSIGHT_LABELS_EN, SettingsSection, SettingsWidget, DEFAULT_FEATURE_LABELS as TRANSFERS_FEATURE_LABELS_EN, TRANSFERS_WIDGET_LABELS_EN, TagsWidget, TeamWidget, TransfersWidget, UIFramework, UploadReceiptWidget, WIDGET_SUITE_DEFAULT_SECTIONS, WIDGET_SUITE_LABELS_EN, WidgetProvider, WidgetSuite, WidgetSuiteSectionId, WidgetTokenRefreshProvider, cloneEmbeddedClient, getGlobalWidgetConfig, getGlobalWidgetInitState, registerDesignSystemEnsurer, registerUIRenderers, resolveCreateCardFeatureLabels, setGlobalWidgetConfig, subscribeToGlobalWidgetInitState, updateGlobalWidgetConfig, useDisclosuresAcceptanceSurface, useOwnWidgetConfig, useRefetchWidget, useWidgetConfig, useWidgetError, useWidgetLoading, useWidgetToken };
5333
- export type { AcceptDisclosuresWidgetLabels, AcceptDisclosuresWidgetProps, AccountDeleteDialogLabels, AccountDeleteDialogProps, Labels$5 as AccountDetailsWidgetLabels, AccountFormErrors, AccountFormMode, AccountFormSheetLabels, AccountFormSheetProps, AccountFormValues, AdditionalOwner, AdditionalOwnersLabels, AddressFormSheetLabels, BalancesWidgetLabels, BalancesWidgetProps, BankAccountFormSheetLabels, BankAccountOnboardingWidgetLabels, BankAccountOnboardingWidgetProps, FeatureLabels$5 as BankAccountsWidgetFeatureLabels, Labels$6 as BankAccountsWidgetLabels, BankAccountsWidgetProps, BillPayWidgetProps, BusinessDetailsLabels, BusinessDetailsValues, CardDetailsFeatureLabels, CardDetailsPanelLabels as CardDetailsWidgetLabels, CardDetailsWidgetProps, CardsFeatureLabels, CardsListLabels as CardsLabels, CardsPagination, ChartOfAccountsLabels, ChartOfAccountsMessageLabels, ChartOfAccountsTableProps, ChartOfAccountsWidgetLabelProps, ChartOfAccountsWidgetProps, CompanyStructureValue, ConfirmDeleteDialogLabels, CounterpartDetailsSheetLabels, CounterpartFormSheetLabels, CounterpartMessageLabels, CounterpartMode, CounterpartsScreenLabels, CounterpartsWidgetProps, CreateCardFeatureLabels, CreateCardWidgetLabels, CreateCardWidgetProps, CreditCardsWidgetProps, DebitCardsWidgetProps, DisclosureLinks, EmbeddedClient, ExpenseApprovalPoliciesWidgetProps, Labels$3 as ExpenseManagementWidgetLabels, ExpenseManagementWidgetProps, ExpenseRequirementsWidgetProps, HelpFaqAnswer, HelpFaqBullet, HelpFaqBulletType, HelpFaqItem, HelpFaqSection, HelpWidgetLabels, HelpWidgetProps, InsightsFeatureLabels, InsightsWidgetLabels, InsightsWidgetProps, ReceivablesWidgetMoniteProps as InvoicingWidgetProps, LedgerAccountRow, LinkComponent, LinkComponentProps, FeatureLabels$2 as LinkedAccountsWidgetFeatureLabels, Labels$2 as LinkedAccountsWidgetLabels, LinkedAccountsWidgetProps, MarketingWidgetContent, MeasureUnitDeleteDialogLabels, MeasureUnitsManagerLabels, PendingFeatureStyleSources, PersonalDetailsLabels, PersonalDetailsValues, ProductDeleteDialogLabels, ProductDetailsSheetLabels, ProductFormSheetLabels, ProductMessageLabels, ProductsScreenLabels, ProductsWidgetProps, FeatureLabels$1 as ProfileWidgetFeatureLabels, Labels$1 as ProfileWidgetLabels, ProfileWidgetProps, ReceiptMatchSummary, ReceiptMatchWidgetProps, ReceivableActionDialogLabels, ReceivableDetailsSheetLabelOverrides, ReceivableDetailsSheetLabels, ReceivableDocumentType, ReceivableFormSheetLabels, ReceivableMessageLabels, ReceivablePaymentDialogLabels, ReceivableSendDialogLabels, ReceivableStatusBadgeLabels, ReceivablesScreenLabelOverrides, ReceivablesScreenLabels, ReceivablesWidgetProps, ReceivablesWidgetTab, RefreshingRootWidgetProviderProps, ResultLabels, RootWidgetProviderProps, SettingsWidgetAdditionalSection, FeatureLabels$4 as SettingsWidgetFeatureLabels, Labels$4 as SettingsWidgetLabels, SettingsWidgetProps, SettingsWidgetSection, SettingsWidgetSectionId, SingleInsightLabels, TagDeleteDialogLabels, TagFormSheetLabels, TagMessageLabels, TagsScreenLabels, TagsWidgetProps, FeatureLabels as TeamWidgetFeatureLabels, Labels as TeamWidgetLabels, TeamWidgetProps, FeatureLabels$3 as TransfersWidgetFeatureLabels, TransfersWidgetLabels, TransfersWidgetProps, UploadReceiptWidgetProps, WidgetConfig, WidgetConfigInput, WidgetInitResponse, WidgetInitState, WidgetProviderLabels, WidgetProviderProps, WidgetSuiteCardsLabels, WidgetSuiteDashboardLabels, WidgetSuiteDisclosureLabels, WidgetSuiteExpensesLabels, WidgetSuiteLabelOverrides, WidgetSuiteLabels, WidgetSuiteMenuLabels, WidgetSuiteProps, WidgetSuiteSectionContentLabels, WidgetSuiteSectionTitleLabels, WidgetTokenFetcher, WidgetTokenManager, WidgetTokenRefreshProviderProps, WidgetTokenState };
5407
+ export type { AcceptDisclosuresWidgetLabels, AcceptDisclosuresWidgetProps, AccountDeleteDialogLabels, AccountDeleteDialogProps, Labels$5 as AccountDetailsWidgetLabels, AccountFormErrors, AccountFormMode, AccountFormSheetLabels, AccountFormSheetProps, AccountFormValues, ActivateCardPanelLabels, AdditionalOwner, AdditionalOwnersLabels, AddressFormSheetLabels, BalancesWidgetLabels, BalancesWidgetProps, BankAccountFormSheetLabels, BankAccountOnboardingWidgetLabels, BankAccountOnboardingWidgetProps, FeatureLabels$5 as BankAccountsWidgetFeatureLabels, Labels$6 as BankAccountsWidgetLabels, BankAccountsWidgetProps, BillPayWidgetProps, BusinessDetailsLabels, BusinessDetailsValues, CardDetailsFeatureLabels, CardDetailsPanelLabels as CardDetailsWidgetLabels, CardDetailsWidgetProps, CardsFeatureLabels, CardsListLabels as CardsLabels, CardsPagination, ChartOfAccountsLabels, ChartOfAccountsMessageLabels, ChartOfAccountsTableProps, ChartOfAccountsWidgetLabelProps, ChartOfAccountsWidgetProps, CompanyStructureValue, ConfirmDeleteDialogLabels, CounterpartDetailsSheetLabels, CounterpartFormSheetLabels, CounterpartMessageLabels, CounterpartMode, CounterpartsScreenLabels, CounterpartsWidgetProps, CreateCardFeatureLabels, CreateCardWidgetLabels, CreateCardWidgetProps, CreditCardsWidgetProps, DebitCardsWidgetProps, DisclosureLinks, EmbeddedClient, ExpenseApprovalPoliciesWidgetProps, Labels$3 as ExpenseManagementWidgetLabels, ExpenseManagementWidgetProps, ExpenseRequirementsWidgetProps, HelpFaqAnswer, HelpFaqBullet, HelpFaqBulletType, HelpFaqItem, HelpFaqSection, HelpWidgetLabels, HelpWidgetProps, InsightsFeatureLabels, InsightsWidgetLabels, InsightsWidgetProps, ReceivablesWidgetMoniteProps as InvoicingWidgetProps, LedgerAccountRow, LinkComponent, LinkComponentProps, FeatureLabels$2 as LinkedAccountsWidgetFeatureLabels, Labels$2 as LinkedAccountsWidgetLabels, LinkedAccountsWidgetProps, MarketingWidgetContent, MeasureUnitDeleteDialogLabels, MeasureUnitsManagerLabels, PendingFeatureStyleSources, PersonalDetailsLabels, PersonalDetailsValues, ProductDeleteDialogLabels, ProductDetailsSheetLabels, ProductFormSheetLabels, ProductMessageLabels, ProductsScreenLabels, ProductsWidgetProps, FeatureLabels$1 as ProfileWidgetFeatureLabels, Labels$1 as ProfileWidgetLabels, ProfileWidgetProps, ReceiptMatchSummary, ReceiptMatchWidgetProps, ReceivableActionDialogLabels, ReceivableDetailsSheetLabelOverrides, ReceivableDetailsSheetLabels, ReceivableDocumentType, ReceivableFormSheetLabels, ReceivableMessageLabels, ReceivablePaymentDialogLabels, ReceivableSendDialogLabels, ReceivableStatusBadgeLabels, ReceivablesScreenLabelOverrides, ReceivablesScreenLabels, ReceivablesWidgetProps, ReceivablesWidgetTab, RefreshingRootWidgetProviderProps, ResultLabels, RootWidgetProviderProps, SettingsWidgetAdditionalSection, FeatureLabels$4 as SettingsWidgetFeatureLabels, Labels$4 as SettingsWidgetLabels, SettingsWidgetProps, SettingsWidgetSection, SettingsWidgetSectionId, SingleInsightLabels, TagDeleteDialogLabels, TagFormSheetLabels, TagMessageLabels, TagsScreenLabels, TagsWidgetProps, FeatureLabels as TeamWidgetFeatureLabels, Labels as TeamWidgetLabels, TeamWidgetProps, FeatureLabels$3 as TransfersWidgetFeatureLabels, TransfersWidgetLabels, TransfersWidgetProps, UploadReceiptWidgetProps, WidgetConfig, WidgetConfigInput, WidgetInitResponse, WidgetInitState, WidgetProviderLabels, WidgetProviderProps, WidgetSuiteCardsLabels, WidgetSuiteDashboardLabels, WidgetSuiteDisclosureLabels, WidgetSuiteExpensesLabels, WidgetSuiteLabelOverrides, WidgetSuiteLabels, WidgetSuiteMenuLabels, WidgetSuiteProps, WidgetSuiteSectionContentLabels, WidgetSuiteSectionTitleLabels, WidgetTokenFetcher, WidgetTokenManager, WidgetTokenRefreshProviderProps, WidgetTokenState };
package/dist/index.js CHANGED
@@ -15,7 +15,7 @@ import { useDisclosuresAcceptanceSurface as v, useOwnWidgetConfig as y, useRefet
15
15
  import { BankAccountsWidget as w } from "./libs/tesouro-embedded-components-react/bank-accounts-widget/feature/dist/index8.js";
16
16
  import { CounterpartsWidget as T } from "./libs/tesouro-embedded-components-react/counterparts-widget/feature/dist/index8.js";
17
17
  import { BillPayWidget as E } from "./libs/tesouro-embedded-components-react/bill-pay-widget/feature/dist/index81.js";
18
- import { CardDetailsWidget as D } from "./libs/tesouro-embedded-components-react/card-details-widget/feature/dist/index6.js";
18
+ import { CardDetailsWidget as D } from "./libs/tesouro-embedded-components-react/card-details-widget/feature/dist/index8.js";
19
19
  import { CardFormatValue as O } from "./libs/tesouro-embedded-components-react/create-card-widget/feature/dist/index3.js";
20
20
  import { CREATE_CARD_FEATURE_LABELS_EN as k, resolveCreateCardFeatureLabels as A } from "./libs/tesouro-embedded-components-react/create-card-widget/feature/dist/index5.js";
21
21
  import { CreateCardWidget as j } from "./libs/tesouro-embedded-components-react/create-card-widget/feature/dist/index8.js";
@@ -74,6 +74,58 @@ interface CardDetailsPanelLabels {
74
74
  status: CardDetailsStatusScreenLabels;
75
75
  }
76
76
 
77
+ /** Chrome around the form. */
78
+ interface ActivateCardHeaderLabels {
79
+ title: string;
80
+ /** Accessible name for the close (X) control. */
81
+ closeAriaLabel: string;
82
+ }
83
+ /** Accessible copy for the card face this panel reuses. */
84
+ interface ActivateCardCardFaceLabels {
85
+ /** Alt text for the bank logo when the caller supplies no `bankLogoAlt`. */
86
+ bankLogoAlt: string;
87
+ }
88
+ /** Field headings, placeholders and the copy behind each affordance. */
89
+ interface ActivateCardFieldLabels {
90
+ expirationDate: string;
91
+ expirationDatePlaceholder: string;
92
+ securityCode: string;
93
+ securityCodePlaceholder: string;
94
+ /** Accessible name for the (?) control that reveals the explanation. */
95
+ securityCodeInfoAriaLabel: string;
96
+ /** The explanation itself, shown in the tooltip. */
97
+ securityCodeInfo: string;
98
+ }
99
+ /** One message per failure the panel can mark. */
100
+ interface ActivateCardValidationLabels {
101
+ impossibleMonth: string;
102
+ pastExpiration: string;
103
+ /**
104
+ * Shown when the server rejects the pair. Names both values because the
105
+ * verify endpoint withholds which one missed — see `ActivateCardFormErrors`.
106
+ */
107
+ verificationRejected: string;
108
+ }
109
+ /** The CTA and the two screens that replace or accompany the form. */
110
+ interface ActivateCardStatusLabels {
111
+ submit: string;
112
+ /** Accessible name announced while the activation is in flight. */
113
+ submittingAriaLabel: string;
114
+ successTitle: string;
115
+ successDescription: string;
116
+ /** Label for the optional post-success control. */
117
+ done: string;
118
+ /** Fallback failure copy when the owner supplies no `errorMessage`. */
119
+ errorDescription: string;
120
+ }
121
+ interface ActivateCardPanelLabels {
122
+ header: ActivateCardHeaderLabels;
123
+ cardFace: ActivateCardCardFaceLabels;
124
+ fields: ActivateCardFieldLabels;
125
+ validation: ActivateCardValidationLabels;
126
+ status: ActivateCardStatusLabels;
127
+ }
128
+
77
129
  type AuthToken = string | undefined;
78
130
  interface Auth {
79
131
  /**
@@ -773,6 +825,12 @@ type PartialDeep<T> = {
773
825
  interface CardDetailsFeatureLabels {
774
826
  /** Confirmation toast after a copy affordance writes to the clipboard. */
775
827
  copySuccessToast: string;
828
+ /**
829
+ * Toast shown when activation is refused because the card is no longer
830
+ * awaiting it. Resolved here rather than in the panel because it is an
831
+ * API outcome, and because the panel closes as it fires.
832
+ */
833
+ activationConflictToast: string;
776
834
  /**
777
835
  * Replaces the panel's generic reveal error when the credentials call was
778
836
  * refused (HTTP 403).
@@ -834,6 +892,8 @@ interface CardDetailsWidgetProps extends WidgetProviderProps {
834
892
  onClose?: () => void;
835
893
  /** Overrides for the panel's own copy. */
836
894
  labels?: PartialDeep<CardDetailsPanelLabels>;
895
+ /** Overrides for the Activate Card form's copy. */
896
+ activateLabels?: PartialDeep<ActivateCardPanelLabels>;
837
897
  /** Overrides for the copy this layer resolves — see `CardDetailsFeatureLabels`. */
838
898
  featureLabels?: PartialDeep<CardDetailsFeatureLabels>;
839
899
  /**
@@ -864,4 +924,4 @@ interface CardDetailsWidgetProps extends WidgetProviderProps {
864
924
  declare function CardDetailsWidget({ baseUrl, widgetToken, organizationId, configClient, gatewayRouting, linkComponent, implementation, uiFramework, errorFallback, onError, analytics, disclosuresAcceptance, providerLabels, ...innerProps }: CardDetailsWidgetProps): React.JSX.Element;
865
925
 
866
926
  export { CardDetailsWidget };
867
- export type { CardDetailsFeatureLabels, CardDetailsPanelLabels as CardDetailsWidgetLabels, CardDetailsWidgetProps };
927
+ export type { ActivateCardPanelLabels, CardDetailsFeatureLabels, CardDetailsPanelLabels as CardDetailsWidgetLabels, CardDetailsWidgetProps };
@@ -1,3 +1,3 @@
1
- import { CardDetailsWidget as e } from "../libs/tesouro-embedded-components-react/card-details-widget/feature/dist/index6.js";
1
+ import { CardDetailsWidget as e } from "../libs/tesouro-embedded-components-react/card-details-widget/feature/dist/index8.js";
2
2
  import "../libs/tesouro-embedded-components-react/card-details-widget/feature/dist/index.js";
3
3
  export { e as CardDetailsWidget };
@@ -834,6 +834,58 @@ interface CardDetailsPanelLabels {
834
834
  status: CardDetailsStatusScreenLabels;
835
835
  }
836
836
 
837
+ /** Chrome around the form. */
838
+ interface ActivateCardHeaderLabels {
839
+ title: string;
840
+ /** Accessible name for the close (X) control. */
841
+ closeAriaLabel: string;
842
+ }
843
+ /** Accessible copy for the card face this panel reuses. */
844
+ interface ActivateCardCardFaceLabels {
845
+ /** Alt text for the bank logo when the caller supplies no `bankLogoAlt`. */
846
+ bankLogoAlt: string;
847
+ }
848
+ /** Field headings, placeholders and the copy behind each affordance. */
849
+ interface ActivateCardFieldLabels {
850
+ expirationDate: string;
851
+ expirationDatePlaceholder: string;
852
+ securityCode: string;
853
+ securityCodePlaceholder: string;
854
+ /** Accessible name for the (?) control that reveals the explanation. */
855
+ securityCodeInfoAriaLabel: string;
856
+ /** The explanation itself, shown in the tooltip. */
857
+ securityCodeInfo: string;
858
+ }
859
+ /** One message per failure the panel can mark. */
860
+ interface ActivateCardValidationLabels {
861
+ impossibleMonth: string;
862
+ pastExpiration: string;
863
+ /**
864
+ * Shown when the server rejects the pair. Names both values because the
865
+ * verify endpoint withholds which one missed — see `ActivateCardFormErrors`.
866
+ */
867
+ verificationRejected: string;
868
+ }
869
+ /** The CTA and the two screens that replace or accompany the form. */
870
+ interface ActivateCardStatusLabels {
871
+ submit: string;
872
+ /** Accessible name announced while the activation is in flight. */
873
+ submittingAriaLabel: string;
874
+ successTitle: string;
875
+ successDescription: string;
876
+ /** Label for the optional post-success control. */
877
+ done: string;
878
+ /** Fallback failure copy when the owner supplies no `errorMessage`. */
879
+ errorDescription: string;
880
+ }
881
+ interface ActivateCardPanelLabels {
882
+ header: ActivateCardHeaderLabels;
883
+ cardFace: ActivateCardCardFaceLabels;
884
+ fields: ActivateCardFieldLabels;
885
+ validation: ActivateCardValidationLabels;
886
+ status: ActivateCardStatusLabels;
887
+ }
888
+
837
889
  /**
838
890
  * Deep partial for label overrides.
839
891
  *
@@ -860,6 +912,12 @@ type PartialDeep$2<T> = {
860
912
  interface CardDetailsFeatureLabels {
861
913
  /** Confirmation toast after a copy affordance writes to the clipboard. */
862
914
  copySuccessToast: string;
915
+ /**
916
+ * Toast shown when activation is refused because the card is no longer
917
+ * awaiting it. Resolved here rather than in the panel because it is an
918
+ * API outcome, and because the panel closes as it fires.
919
+ */
920
+ activationConflictToast: string;
863
921
  /**
864
922
  * Replaces the panel's generic reveal error when the credentials call was
865
923
  * refused (HTTP 403).
@@ -921,6 +979,8 @@ interface CardDetailsWidgetProps extends WidgetProviderProps {
921
979
  onClose?: () => void;
922
980
  /** Overrides for the panel's own copy. */
923
981
  labels?: PartialDeep$2<CardDetailsPanelLabels>;
982
+ /** Overrides for the Activate Card form's copy. */
983
+ activateLabels?: PartialDeep$2<ActivateCardPanelLabels>;
924
984
  /** Overrides for the copy this layer resolves — see `CardDetailsFeatureLabels`. */
925
985
  featureLabels?: PartialDeep$2<CardDetailsFeatureLabels>;
926
986
  /**
@@ -1266,6 +1326,15 @@ interface CardsWidgetProps extends WidgetProviderProps {
1266
1326
  * renames a status in the list would still read the default inside the panel.
1267
1327
  */
1268
1328
  cardDetailsFeatureLabels?: CardDetailsWidgetProps['featureLabels'];
1329
+ /**
1330
+ * Overrides for the Activate Card form the details panel opens.
1331
+ *
1332
+ * Its own prop for the same reason `cardDetailsLabels` is: without it that
1333
+ * screen's copy is unreachable from this composition, so a host that translated
1334
+ * everything else would still meet English on the one form that asks the reader
1335
+ * to type something.
1336
+ */
1337
+ cardDetailsActivateLabels?: CardDetailsWidgetProps['activateLabels'];
1269
1338
  /**
1270
1339
  * Bank logo for the details panel's card face. Forwarded verbatim; the panel
1271
1340
  * renders no logo without it, so omitting these leaves the built-in sheet
@@ -1310,10 +1379,15 @@ interface CardsWidgetProps extends WidgetProviderProps {
1310
1379
  * renders only on cards in `PENDING_ACTIVATION`, and only when the widget token
1311
1380
  * also holds the program's activate scope.
1312
1381
  *
1313
- * Host-owned for the same reason as `onCreateCard`: EMBD-4398 designs no
1314
- * activation flow, and `POST /debit-cards/{id}/activate` does not exist even
1315
- * though `debit_card:activate:org` doesso a built-in flow could serve only
1316
- * one of the two programs.
1382
+ * Host-owned because EMBD-4398 designs no activation flow for the *list*.
1383
+ *
1384
+ * The original second reason that no activate endpoint existed no longer
1385
+ * holds: both programs have one, and the details panel this widget opens now
1386
+ * runs the whole flow itself (EMBD-5085). So a built-in row flow is now
1387
+ * buildable, and this callback stays host-owned by choice rather than by
1388
+ * necessity. Changing it would be a breaking change to a published prop and
1389
+ * belongs in its own ticket; until then a host that wants the built-in flow
1390
+ * can omit this and let the reader open the card.
1317
1391
  */
1318
1392
  onActivateCard?: (cardId: string) => void;
1319
1393
  }