@tesouro/embedded-components-react 0.5.224 → 0.5.226
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/README.md +335 -413
- package/dist/index.d.ts +23 -2
- package/dist/index.js +1 -1
- package/dist/lib/ReceivablesWidget.d.ts +23 -2
- package/dist/lib/ReceivablesWidget.js +1 -1
- package/dist/libs/tesouro-embedded-components-react/invoicing-widget/data-access/dist/index.js +4 -4
- package/dist/libs/tesouro-embedded-components-react/invoicing-widget/data-access/dist/index10.js +45 -31
- package/dist/libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index.js +1 -1
- package/dist/libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index12.js +51 -32
- package/dist/libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index13.js +20 -1
- package/dist/libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index15.js +17 -202
- package/dist/libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index16.js +220 -31
- package/dist/libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index17.js +32 -145
- package/dist/libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index18.js +126 -44
- package/dist/libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index19.js +145 -117
- package/dist/libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index20.js +46 -58
- package/dist/libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index21.js +113 -87
- package/dist/libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index22.js +58 -116
- package/dist/libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index23.js +98 -225
- package/dist/libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index24.js +111 -27
- package/dist/libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index25.js +225 -462
- package/dist/libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index26.js +34 -41
- package/dist/libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index27.js +627 -34
- package/dist/libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index28.js +39 -77
- package/dist/libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index29.js +34 -112
- package/dist/libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index30.js +75 -310
- package/dist/libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index31.js +124 -0
- package/dist/libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index32.js +324 -0
- package/dist/libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index6.js +20 -15
- package/dist/libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index8.js +56 -53
- package/dist/libs/tesouro-embedded-components-react/invoicing-widget/feature/dist/index9.js +33 -29
- package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index25.js +184 -162
- package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index4.js +1 -3
- package/dist/libs/tesouro-embedded-components-react/invoicing-widget/ui/dist/index6.js +78 -69
- package/dist/libs/tesouro-embedded-components-react/shared/counterpart-management/feature/dist/lib/CounterpartSelector.js +7 -6
- package/dist/libs/tesouro-embedded-components-react/shared/counterpart-management/ui/dist/index15.js +20 -19
- package/dist/libs/tesouro-embedded-components-react/shared/data-access/dist/index.js +39 -39
- package/dist/libs/tesouro-embedded-components-react/shared/data-access/dist/lib/rest/@tanstack/react-query.gen.js +210 -199
- package/dist/libs/tesouro-embedded-components-react/shared/data-access/dist/lib/rest/sdk.gen.js +60 -52
- package/dist/libs/tesouro-embedded-components-react/shared/feature/dist/lib/analytics/build-info.js +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -13,7 +13,7 @@ npm install @tesouro/embedded-components-react
|
|
|
13
13
|
# or: yarn add @tesouro/embedded-components-react
|
|
14
14
|
```
|
|
15
15
|
|
|
16
|
-
**Import the stylesheet once** at your app's entry point
|
|
16
|
+
**Import the stylesheet once** at your app's entry point. Widgets render
|
|
17
17
|
unstyled without it:
|
|
18
18
|
|
|
19
19
|
```ts
|
|
@@ -42,70 +42,42 @@ export function App() {
|
|
|
42
42
|
}
|
|
43
43
|
```
|
|
44
44
|
|
|
45
|
-
Every provider and widget prop is
|
|
46
|
-
|
|
47
|
-
`WidgetProvider`, config inheritance, token refresh, and the built-in error
|
|
48
|
-
boundary.
|
|
45
|
+
Every provider and widget prop is typed in the shipped declarations, so your
|
|
46
|
+
editor documents them inline.
|
|
49
47
|
|
|
50
48
|
### Entry points
|
|
51
49
|
|
|
52
|
-
| Import path | What you get
|
|
53
|
-
| ------------------------------------------------- |
|
|
54
|
-
| `@tesouro/embedded-components-react` | All widgets, `WidgetSuite`, plus `RootWidgetProvider` / `WidgetProvider`.
|
|
55
|
-
| `@tesouro/embedded-components-react/styles.css` | The widget stylesheet
|
|
56
|
-
| `@tesouro/embedded-components-react/core` | Framework-agnostic token utilities (`createWidgetTokenManager`).
|
|
57
|
-
| `@tesouro/embedded-components-react/monite-sdk` | Legacy
|
|
58
|
-
| `@tesouro/embedded-components-react/experimental` | Work in progress
|
|
50
|
+
| Import path | What you get |
|
|
51
|
+
| ------------------------------------------------- | -------------------------------------------------------------------------------------------------- |
|
|
52
|
+
| `@tesouro/embedded-components-react` | All widgets, `WidgetSuite`, plus `RootWidgetProvider` / `WidgetProvider`. |
|
|
53
|
+
| `@tesouro/embedded-components-react/styles.css` | The widget stylesheet. See [About the stylesheet](#about-the-stylesheet). |
|
|
54
|
+
| `@tesouro/embedded-components-react/core` | Framework-agnostic token utilities (`createWidgetTokenManager`). |
|
|
55
|
+
| `@tesouro/embedded-components-react/monite-sdk` | Legacy surface being removed, with no compatibility promise. See [below](#monite-sdk-entry-point). |
|
|
56
|
+
| `@tesouro/embedded-components-react/experimental` | Work in progress, with no compatibility promise. See [below](#experimental-entry-point). |
|
|
59
57
|
|
|
60
58
|
### Experimental entry point
|
|
61
59
|
|
|
62
|
-
`@tesouro/embedded-components-react/experimental` (and
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
- Anything exported there can change shape or be **removed outright in any
|
|
68
|
-
release, including a patch**. There is no deprecation window.
|
|
69
|
-
- Its exports are deliberately not documented here — no prop tables, no
|
|
70
|
-
reference entry. Read the shipped types.
|
|
71
|
-
- It is unsupported. If you hit a problem with it, use the released widget on
|
|
72
|
-
the main entry point instead.
|
|
73
|
-
|
|
74
|
-
Use it only when we have pointed you at a specific module, and pin the package
|
|
75
|
-
to an exact version if you do.
|
|
76
|
-
|
|
77
|
-
The supported surface — the main entry point, `./core`, `./lib/*` and the
|
|
78
|
-
stylesheet — carries the normal compatibility promise and is unaffected by churn
|
|
79
|
-
on this path. `./monite-sdk` does not; see below.
|
|
60
|
+
`@tesouro/embedded-components-react/experimental` (and `.../experimental/<Module>`)
|
|
61
|
+
holds work in progress. It is **outside semver**: exports
|
|
62
|
+
can change or disappear in any release, including a patch, and aren't documented
|
|
63
|
+
here. Use it only if we point you at a specific module, and pin an exact version.
|
|
80
64
|
|
|
81
65
|
### Monite SDK entry point
|
|
82
66
|
|
|
83
|
-
`@tesouro/embedded-components-react/monite-sdk` is a **legacy
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
- Its exports are **being removed**, surface by surface, as each Monite-backed
|
|
90
|
-
screen is replaced by a native Tesouro widget. Names disappear from it with no
|
|
91
|
-
deprecation window.
|
|
92
|
-
- It is deliberately undocumented here — no prop tables, no reference entries.
|
|
93
|
-
- The subpath itself goes away once nothing needs it.
|
|
94
|
-
|
|
95
|
-
Every Monite-backed widget on the main entry point already wraps Monite for you
|
|
96
|
-
and exposes Tesouro props. That is the surface to build on. Reach for
|
|
97
|
-
`./monite-sdk` only if we have pointed you at it, and pin an exact version if
|
|
98
|
-
you do.
|
|
67
|
+
`@tesouro/embedded-components-react/monite-sdk` is a **legacy export being
|
|
68
|
+
removed** and is **outside the compatibility promise**, like `./experimental`.
|
|
69
|
+
Its exports disappear with no deprecation window as native widgets replace them.
|
|
70
|
+
Widgets on the main entry point that use it already wrap it for you, so build on
|
|
71
|
+
those. Use `./monite-sdk` only if we point you at it, and pin an exact
|
|
72
|
+
version.
|
|
99
73
|
|
|
100
74
|
### About the stylesheet
|
|
101
75
|
|
|
102
|
-
The stylesheet
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
`:root`/`.dark`; dark mode follows an ancestor `.dark` class, and the widget
|
|
108
|
-
font can be white-labeled via `--ttw-font-family`.
|
|
76
|
+
The stylesheet won't restyle your host page. It ships no global CSS reset (the
|
|
77
|
+
reset is scoped under the `.tesouro-embedded` wrapper every widget renders), and
|
|
78
|
+
all utilities are `ttw`-prefixed, so it won't collide with your own Tailwind.
|
|
79
|
+
Design tokens (`--ttw-*`) are declared on `:root` / `.dark`. Dark mode follows an
|
|
80
|
+
ancestor `.dark` class, and you can set the widget font with `--ttw-font-family`.
|
|
109
81
|
|
|
110
82
|
<!-- BEGIN GENERATED REFERENCE -->
|
|
111
83
|
|
|
@@ -127,21 +99,21 @@ App-level provider. Resolves `baseUrl` / `widgetToken` / `organizationId` (falli
|
|
|
127
99
|
|
|
128
100
|
#### Props
|
|
129
101
|
|
|
130
|
-
| Prop | Type | Description
|
|
131
|
-
| ------------------------------- | -------------------------------------------- |
|
|
132
|
-
| `baseUrl` | `string` | Base URL of the Tesouro embedded API
|
|
133
|
-
| `widgetToken` | `string \| null` | Bearer token for widget auth. Falls back to `global.widgetToken
|
|
134
|
-
| `organizationId` | `string \| null` | Org ID
|
|
135
|
-
| `configClient` | `(client: EmbeddedClient) => EmbeddedClient` |
|
|
136
|
-
| `gatewayRouting` | `boolean` |
|
|
137
|
-
| `linkComponent` | `LinkComponent` | Host link component widgets use
|
|
138
|
-
| `uiFramework` | `'shadcn' \| 'tecton' \| null` | UI framework
|
|
139
|
-
| `implementation` | `'native' \| 'monite' \| null` |
|
|
140
|
-
| `analytics` | `boolean` | Enables anonymous analytics
|
|
141
|
-
| `unstable_initResponseOverride` | `WidgetInitResponse` | First-party hosts only
|
|
142
|
-
| `disclosuresAcceptance` | `ReactNode` | Accept surface shown when the
|
|
143
|
-
| `providerLabels` | `Partial<WidgetProviderLabels>` | Overrides the copy a provider renders in place of a widget
|
|
144
|
-
| `children` | `ReactNode` | The React subtree that consumes the widget context.
|
|
102
|
+
| Prop | Type | Description |
|
|
103
|
+
| ------------------------------- | -------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
104
|
+
| `baseUrl` | `string` | Base URL of the Tesouro embedded API, such as `"https://api.tesouro.com"`. Falls back to `global.baseUrl`. |
|
|
105
|
+
| `widgetToken` | `string \| null` | Bearer token for widget auth. Falls back to `global.widgetToken`; `null` suppresses auth. |
|
|
106
|
+
| `organizationId` | `string \| null` | Org ID sent with data requests. Falls back to `global.organizationId`, then to `initResponse.organizationId`; `null` clears org scoping. |
|
|
107
|
+
| `configClient` | `(client: EmbeddedClient) => EmbeddedClient` | Post-creation hook for the HTTP client, applied after the built-in auth and routing interceptors. Falls back to `global.configClient`. |
|
|
108
|
+
| `gatewayRouting` | `boolean` | Forces widget-gateway routing on (`true`) or off (`false`); unset, it applies automatically to known Tesouro API hosts. Falls back to `global.gatewayRouting`. |
|
|
109
|
+
| `linkComponent` | `LinkComponent` | Host link component widgets use for navigational links. Falls back to `global.linkComponent`. |
|
|
110
|
+
| `uiFramework` | `'shadcn' \| 'tecton' \| null` | UI framework for this tree; falls back to `global.uiFramework`, then `'shadcn'`. |
|
|
111
|
+
| `implementation` | `'native' \| 'monite' \| null` | Widget implementation for this tree; falls back to `global.implementation`, then `'native'`. |
|
|
112
|
+
| `analytics` | `boolean` | Enables anonymous analytics (default `true`); `false` disables capture and skips loading PostHog. |
|
|
113
|
+
| `unstable_initResponseOverride` | `WidgetInitResponse` | First-party hosts only: skips the init fetch and uses this object as `initResponse`. Embed integrations minting widget JWEs must leave this unset. |
|
|
114
|
+
| `disclosuresAcceptance` | `ReactNode` | Accept surface shown when the user owes disclosures; pass `<AcceptDisclosuresWidget />`. Cascades to nested providers. |
|
|
115
|
+
| `providerLabels` | `Partial<WidgetProviderLabels>` | Overrides the copy a provider renders in place of a widget (error fallback, disclosures gate). Cascades to nested providers. |
|
|
116
|
+
| `children` | `ReactNode` | The React subtree that consumes the widget context. |
|
|
145
117
|
|
|
146
118
|
### `WidgetProvider`
|
|
147
119
|
|
|
@@ -149,22 +121,22 @@ Mid-tree or standalone provider. With no props it is a transparent pass-through
|
|
|
149
121
|
|
|
150
122
|
#### Props
|
|
151
123
|
|
|
152
|
-
| Prop | Type | Description
|
|
153
|
-
| ----------------------- | -------------------------------------------------- |
|
|
154
|
-
| `baseUrl` | `string` |
|
|
155
|
-
| `widgetToken` | `string \| null` |
|
|
156
|
-
| `organizationId` | `string \| null` |
|
|
157
|
-
| `configClient` | `(client: EmbeddedClient) => EmbeddedClient` |
|
|
158
|
-
| `gatewayRouting` | `boolean` |
|
|
159
|
-
| `linkComponent` | `LinkComponent` |
|
|
160
|
-
| `uiFramework` | `'shadcn' \| 'tecton' \| null` |
|
|
161
|
-
| `implementation` | `'native' \| 'monite' \| null` |
|
|
162
|
-
| `errorFallback` | `ReactNode \| (props: FallbackProps) => ReactNode` | Custom
|
|
163
|
-
| `onError` | `(error: unknown, info: ErrorInfo) => void` |
|
|
164
|
-
| `analytics` | `boolean` | Enables anonymous analytics (default `true`)
|
|
165
|
-
| `disclosuresAcceptance` | `ReactNode` | Accept surface shown when the
|
|
166
|
-
| `providerLabels` | `Partial<WidgetProviderLabels>` | Overrides the copy this provider renders in place of the widget
|
|
167
|
-
| `children` | `ReactNode` | The React subtree that consumes the overridden context.
|
|
124
|
+
| Prop | Type | Description |
|
|
125
|
+
| ----------------------- | -------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------- |
|
|
126
|
+
| `baseUrl` | `string` | Overrides the base URL for this subtree and creates a new client. Inherits when omitted. |
|
|
127
|
+
| `widgetToken` | `string \| null` | Overrides the token for this subtree and reloads init; `null` suppresses auth here. Inherits when omitted. |
|
|
128
|
+
| `organizationId` | `string \| null` | Overrides the org ID for this subtree without reloading init; `null` clears org scoping. Inherits when omitted. |
|
|
129
|
+
| `configClient` | `(client: EmbeddedClient) => EmbeddedClient` | Post-creation hook for this provider's client; not called in pass-through mode. Inherits when omitted. |
|
|
130
|
+
| `gatewayRouting` | `boolean` | Forces widget-gateway routing on or off for this subtree's client; unset, it applies to known Tesouro API hosts. Inherits when omitted. |
|
|
131
|
+
| `linkComponent` | `LinkComponent` | Overrides the host link component for this subtree. Inherits when omitted. |
|
|
132
|
+
| `uiFramework` | `'shadcn' \| 'tecton' \| null` | Overrides the UI framework for this subtree; omitted or `null` inherits, defaulting to `'shadcn'`. |
|
|
133
|
+
| `implementation` | `'native' \| 'monite' \| null` | Overrides the implementation for this subtree; omitted or `null` inherits, defaulting to `'native'`. |
|
|
134
|
+
| `errorFallback` | `ReactNode \| (props: FallbackProps) => ReactNode` | Custom error-boundary fallback: a node, or a function receiving `{ error, resetErrorBoundary }`. |
|
|
135
|
+
| `onError` | `(error: unknown, info: ErrorInfo) => void` | Telemetry hook, called once per caught error before the fallback renders. |
|
|
136
|
+
| `analytics` | `boolean` | Enables anonymous analytics (default `true`); honored only in standalone mode, ignored on a nested provider. |
|
|
137
|
+
| `disclosuresAcceptance` | `ReactNode` | Accept surface shown when the user owes disclosures; pass `<AcceptDisclosuresWidget />`. Inherits when omitted. |
|
|
138
|
+
| `providerLabels` | `Partial<WidgetProviderLabels>` | Overrides the copy this provider renders in place of the widget. Inherits when omitted. |
|
|
139
|
+
| `children` | `ReactNode` | The React subtree that consumes the overridden context. |
|
|
168
140
|
|
|
169
141
|
### `WidgetTokenRefreshProvider`
|
|
170
142
|
|
|
@@ -172,12 +144,12 @@ Owns the token-refresh lifecycle: calls your `fetcher`, proactively refreshes be
|
|
|
172
144
|
|
|
173
145
|
#### Props
|
|
174
146
|
|
|
175
|
-
| Prop | Type | Default
|
|
176
|
-
| ------------- | ------------------------------------------------------ |
|
|
177
|
-
| `fetcher` | `() => Promise<{ widgetToken: string; exp?: number }>` |
|
|
178
|
-
| `leadSeconds` | `number` | `60`
|
|
179
|
-
| `onToken` | `(widgetToken: string) => void` |
|
|
180
|
-
| `children` | `ReactNode` |
|
|
147
|
+
| Prop | Type | Default | Description |
|
|
148
|
+
| ------------- | ------------------------------------------------------ | ------------ | ----------------------------------------------------------------------------------------------------------------------------- |
|
|
149
|
+
| `fetcher` | `() => Promise<{ widgetToken: string; exp?: number }>` | **Required** | Returns a token and its `exp` (unix seconds); see The fetcher. |
|
|
150
|
+
| `leadSeconds` | `number` | `60` | Refresh this many seconds before `exp`. Lower it for very short-lived tokens. |
|
|
151
|
+
| `onToken` | `(widgetToken: string) => void` | `undefined` | Called once per distinct token, for telemetry, persistence, or mirroring the token into the global store for non-React hosts. |
|
|
152
|
+
| `children` | `ReactNode` | `undefined` | The subtree that reads the token via `useWidgetToken()`. |
|
|
181
153
|
|
|
182
154
|
### `RefreshingRootWidgetProvider`
|
|
183
155
|
|
|
@@ -185,23 +157,23 @@ Bundles `WidgetTokenRefreshProvider` + `RootWidgetProvider` and wires the live t
|
|
|
185
157
|
|
|
186
158
|
#### Props
|
|
187
159
|
|
|
188
|
-
| Prop | Source | Notes
|
|
189
|
-
| ------------------------------- | ---------------------------- |
|
|
190
|
-
| `baseUrl` | `RootWidgetProvider` | Falls back to the global store when omitted.
|
|
191
|
-
| `organizationId` | `RootWidgetProvider` | Pass `null` to clear the org scope; falls back to the global store when omitted.
|
|
192
|
-
| `configClient` | `RootWidgetProvider` | Optional post-creation hook for the scoped HTTP client.
|
|
193
|
-
| `gatewayRouting` | `RootWidgetProvider` | Overrides widget-gateway routing; unset, it applies
|
|
194
|
-
| `linkComponent` | `RootWidgetProvider` | Component used in place of plain `<a>` tags inside widgets.
|
|
195
|
-
| `uiFramework` | `RootWidgetProvider` | `'shadcn'` (default) or `'tecton'`; inherits down the provider cascade.
|
|
196
|
-
| `implementation` | `RootWidgetProvider` | `'native'` (default) or `'monite'`; inherits down the provider cascade.
|
|
197
|
-
| `analytics` | `RootWidgetProvider` | Enables anonymous analytics (default `true`); set `false` to disable capture.
|
|
198
|
-
| `unstable_initResponseOverride` | `RootWidgetProvider` | First-party hosts only. Skips the
|
|
199
|
-
| `disclosuresAcceptance` | `RootWidgetProvider` | Accept surface shown when the
|
|
200
|
-
| `providerLabels` | `RootWidgetProvider` | Overrides the copy a provider renders in place of a widget (error
|
|
201
|
-
| `fetcher` | `WidgetTokenRefreshProvider` | Required.
|
|
202
|
-
| `leadSeconds` | `WidgetTokenRefreshProvider` | Default `60`.
|
|
203
|
-
| `onToken` | `WidgetTokenRefreshProvider` | Fires once per distinct token
|
|
204
|
-
| `children` |
|
|
160
|
+
| Prop | Source | Notes |
|
|
161
|
+
| ------------------------------- | ---------------------------- | -------------------------------------------------------------------------------------------------------- |
|
|
162
|
+
| `baseUrl` | `RootWidgetProvider` | Falls back to the global store when omitted. |
|
|
163
|
+
| `organizationId` | `RootWidgetProvider` | Pass `null` to clear the org scope; falls back to the global store when omitted. |
|
|
164
|
+
| `configClient` | `RootWidgetProvider` | Optional post-creation hook for the scoped HTTP client. |
|
|
165
|
+
| `gatewayRouting` | `RootWidgetProvider` | Overrides widget-gateway routing; unset, it applies automatically for known Tesouro API hosts. |
|
|
166
|
+
| `linkComponent` | `RootWidgetProvider` | Component used in place of plain `<a>` tags inside widgets. |
|
|
167
|
+
| `uiFramework` | `RootWidgetProvider` | `'shadcn'` (default) or `'tecton'`; inherits down the provider cascade. |
|
|
168
|
+
| `implementation` | `RootWidgetProvider` | `'native'` (default) or `'monite'`; inherits down the provider cascade. |
|
|
169
|
+
| `analytics` | `RootWidgetProvider` | Enables anonymous analytics (default `true`); set `false` to disable capture. |
|
|
170
|
+
| `unstable_initResponseOverride` | `RootWidgetProvider` | First-party hosts only. Skips the init fetch and supplies host-authored identity for the subtree. |
|
|
171
|
+
| `disclosuresAcceptance` | `RootWidgetProvider` | Accept surface shown when the user owes disclosures. Cascades to nested providers. |
|
|
172
|
+
| `providerLabels` | `RootWidgetProvider` | Overrides the copy a provider renders in place of a widget (error fallback, disclosures gate). Cascades. |
|
|
173
|
+
| `fetcher` | `WidgetTokenRefreshProvider` | Required. |
|
|
174
|
+
| `leadSeconds` | `WidgetTokenRefreshProvider` | Default `60`. |
|
|
175
|
+
| `onToken` | `WidgetTokenRefreshProvider` | Fires once per distinct token. |
|
|
176
|
+
| `children` | Both | Rendered inside both providers. |
|
|
205
177
|
|
|
206
178
|
## Components
|
|
207
179
|
|
|
@@ -212,43 +184,35 @@ listed here.
|
|
|
212
184
|
|
|
213
185
|
### WidgetSuite
|
|
214
186
|
|
|
215
|
-
A whole banking page in one component: a section menu over the widgets behind it, served by a single widget-init call. Unlike a widget
|
|
187
|
+
A whole banking page in one component: a section menu over the widgets behind it, served by a single widget-init call. Unlike a widget, a suite owns the page it is placed on, so mount one per page.
|
|
216
188
|
|
|
217
189
|
#### Props
|
|
218
190
|
|
|
219
|
-
| Prop | Type | Default | Description
|
|
220
|
-
| --------------------------- | --------------------------------- | ------------------------------- |
|
|
221
|
-
| `sections` | `readonly WidgetSuiteSectionId[]` | `WIDGET_SUITE_DEFAULT_SECTIONS` | Which sections the suite offers, in menu order. A listed section is still hidden when the token
|
|
222
|
-
| `section` | `WidgetSuiteSectionId` |
|
|
223
|
-
| `defaultSection` | `WidgetSuiteSectionId` | first of `sections` | Which section the suite opens on. Read once per mount, and ignored when `section` is supplied.
|
|
224
|
-
| `onSectionChange` | `(section) => void` | `undefined` | Called when
|
|
225
|
-
| `labels` | `WidgetSuiteLabelOverrides` | `WIDGET_SUITE_LABELS_EN` | Every string on the page
|
|
226
|
-
| `showSectionTitle` | `boolean` | `true` | Shows a heading above each section, named as its menu item is. Set `false` when your page already heads the suite.
|
|
227
|
-
| `onboardingDisclosureLinks` | `DisclosureLinks` | `undefined` | Legal disclosure URLs
|
|
228
|
-
| `cardArtSrc` | `string` | `undefined` | Card artwork URL for the debit
|
|
191
|
+
| Prop | Type | Default | Description |
|
|
192
|
+
| --------------------------- | --------------------------------- | ------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
193
|
+
| `sections` | `readonly WidgetSuiteSectionId[]` | `WIDGET_SUITE_DEFAULT_SECTIONS` | Which sections the suite offers, in menu order. A listed section is still hidden when the token doesn't earn it. |
|
|
194
|
+
| `section` | `WidgetSuiteSectionId` | `undefined` | Which section is showing. Supplying it makes the menu controlled for the lifetime of the mount, so pair it with `onSectionChange`. |
|
|
195
|
+
| `defaultSection` | `WidgetSuiteSectionId` | first of `sections` | Which section the suite opens on. Read once per mount, and ignored when `section` is supplied. |
|
|
196
|
+
| `onSectionChange` | `(section) => void` | `undefined` | Called when the user moves the suite. Never fired on mount or for the entitlement fallback. |
|
|
197
|
+
| `labels` | `WidgetSuiteLabelOverrides` | `WIDGET_SUITE_LABELS_EN` | Every string on the page in one tree, including the copy of each section's widget. Override any leaf and its siblings keep their defaults. |
|
|
198
|
+
| `showSectionTitle` | `boolean` | `true` | Shows a heading above each section, named as its menu item is. Set `false` when your page already heads the suite. |
|
|
199
|
+
| `onboardingDisclosureLinks` | `DisclosureLinks` | `undefined` | Legal disclosure URLs for the onboarding agreement step, shown when the organization has no application yet. Omitted fields render as non-clickable text. |
|
|
200
|
+
| `cardArtSrc` | `string` | `undefined` | Card artwork URL for the debit Create card sheet and card face; omitted, a neutral plastic and the bank logo are used. Credit Create card is always hidden. |
|
|
229
201
|
|
|
230
202
|
### AcceptDisclosuresWidget
|
|
231
203
|
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
The widget token identifies the caller on both the disclosures lookup and the accept. Mount this when widget init reports `status: 'INVITED'`, **or** `disclosuresRequired: 'REQUIRED'` with `disclosuresAccepted: false`. The first covers an invited teammate who is not yet active — including orgs whose requirement is `NOT_REQUIRED`, where Accept still posts a `null` version to activate them. The second covers an already-active user who owes a newly published version. Do not gate on `REQUIRED` alone: that would skip `INVITED` users in `NOT_REQUIRED` orgs and leave them stuck.
|
|
235
|
-
|
|
236
|
-
Accept posts `POST /api/widget-gateway/disclosure-acceptance` with the version that was on screen, after a second `GET /identity/v1/disclosures` confirms that version is still in force (hosts rewrite that onto `/api/widget-gateway/proxy/identity/v1/disclosures` the same way as other identity calls — do not call the generated catch-all proxy helper, which percent-encodes path slashes and surfaces as a browser CORS error). If a newer version was published while the caller was reading, accept is refused (no POST) and the widget refetches so they can review the documents that are now in force. `version` may be `null` when the org's requirement is `NOT_REQUIRED`; that value is posted through and ignored by the gateway so invitees in those orgs can still activate. The accept is one transaction: it activates the invitee (when they are still invited) and records disclosure acceptance together, so a failed second hop cannot leave an `ACTIVE` user with no acceptance on record. After accept succeeds, the widget awaits any async `onAccepted` continuation, then kicks a widget-init refresh so host gates keyed on `INVITED` — or on the disclosure flags — can clear. Accept and `onAccepted` failures are handled separately — a rejected host continuation does not look like (or re-run) a failed gateway accept. The refresh is fire-and-forget and runs only after `onAccepted` settles — hosts that unmount this widget when status leaves `INVITED` would otherwise hide a rejected continuation. Auth uses the normal `widgetToken` provider contract — **never** pass an application (APP) / M2M bearer as `widgetToken`. This widget does not take invite-link credentials and does not read URL search params.
|
|
237
|
-
|
|
238
|
-
A failed disclosures fetch renders an error surface with retry instead of a blank INVITED screen. The widget otherwise renders nothing until the disclosures fetch resolves **and** init resolves a `bankName` — it never substitutes another tenant's legal copy, and never falls back to a Tesouro-hosted document (a published embeddable library must not depend on infrastructure a consumer's content-security policy cannot see). An empty document list (`requirement: NOT_REQUIRED`, `version: null`) is a resolved payload, not missing data: the widget still renders Accept so those invitees can activate. Agreement copy names the returned document titles, in backend order, so the sentence cannot list instruments the links do not show. If init omits `vspName`, provider attribution falls back to the bank name so the sentence remains complete.
|
|
239
|
-
|
|
240
|
-
Once the atomic accept _and_ any async `onAccepted` continuation succeed, the checkbox and Accept control stay disabled, so a legal acceptance is never posted twice even if the host does not navigate away. A failed accept or rejected `onAccepted` shows an inline error and leaves the control usable for a retry; a successful accept is skipped on retry after a later failure. Init refresh is kicked only after `onAccepted` succeeds.
|
|
204
|
+
Shows the bank partner's required disclosure documents with an agreement checkbox and an Accept button. The document set, titles and order come from your program's backend configuration, so you pass no URLs.
|
|
241
205
|
|
|
242
206
|
#### Props
|
|
243
207
|
|
|
244
|
-
| Prop | Type | Default
|
|
245
|
-
| ------------ | ---------------------------------------- |
|
|
246
|
-
| `labels` | `Partial<AcceptDisclosuresWidgetLabels>` |
|
|
247
|
-
| `onAccepted` | `() => void \| Promise<void>` |
|
|
208
|
+
| Prop | Type | Default | Description |
|
|
209
|
+
| ------------ | ---------------------------------------- | -------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
210
|
+
| `labels` | `Partial<AcceptDisclosuresWidgetLabels>` | English labels | Override widget copy. `{documents}` in `agreementTextTemplate` is replaced with the document titles. The `noDocuments*` labels apply when there are no documents. Document titles aren't overridable. |
|
|
211
|
+
| `onAccepted` | `() => void \| Promise<void>` | `undefined` | Called after the atomic accept succeeds and before init refresh; awaited before the widget locks. Reject to surface an error and keep Accept retryable. |
|
|
248
212
|
|
|
249
213
|
### BankAccountsWidget
|
|
250
214
|
|
|
251
|
-
|
|
215
|
+
Lists the organization's Tesouro bank accounts, lets the user open an account with team access, and shows each account's details.
|
|
252
216
|
|
|
253
217
|
#### Props
|
|
254
218
|
|
|
@@ -257,7 +221,7 @@ A self-contained banking widget for listing Tesouro bank accounts, creating an a
|
|
|
257
221
|
| `isBankingTaglineVisible` | `boolean` | `true` | Shows the banking tagline at the top of the widget. The page heading above it belongs to your page. |
|
|
258
222
|
| `bankLogoSrc` | `string` | `undefined` | Bank logo for the tagline row. Omit and the row shows the bank name alone. |
|
|
259
223
|
| `bankLogoAlt` | `string` | `undefined` | Alt text when `bankLogoSrc` is set. |
|
|
260
|
-
| `depositAgreementUrl` | `string` | `undefined` | Deposit-agreement PDF linked from the create-account legal copy. Omit and the clause naming it
|
|
224
|
+
| `depositAgreementUrl` | `string` | `undefined` | Deposit-agreement PDF linked from the create-account legal copy. Omit and the clause naming it isn't rendered. |
|
|
261
225
|
| `bankAddress` | `string` | `undefined` | Bank postal address shown in the account-details domestic wire panel. |
|
|
262
226
|
| `supportTeamUrl` | `string` | `undefined` | Support URL linked from the account-details domestic wire copy. |
|
|
263
227
|
| `labels` | `Partial<BankAccountsWidgetLabels>` | English labels | Overrides list/create-account UI copy. |
|
|
@@ -270,371 +234,345 @@ A self-contained banking widget for listing Tesouro bank accounts, creating an a
|
|
|
270
234
|
|
|
271
235
|
### BillPayWidget
|
|
272
236
|
|
|
273
|
-
A
|
|
237
|
+
A bill pay widget with Tesouro widget auth and theming. It renders the `'monite'` implementation unless you set `implementation="native"`.
|
|
274
238
|
|
|
275
239
|
#### Props
|
|
276
240
|
|
|
277
|
-
| Prop | Type | Default | Description
|
|
278
|
-
| -------------------- | ------------------------------------ | ------------ |
|
|
279
|
-
| `pageTitleComponent` | `(children: ReactNode) => ReactNode` | Pass-through | Customizes
|
|
280
|
-
| `finopsThemeColors` | `FinopsThemeColors` | `undefined` | Optional
|
|
281
|
-
| `initialTab` | `'bills' \| 'vendors'` | `'bills'` | Tab to open on initial mount. Native implementation only (`implementation="native"`); has no effect under the default
|
|
282
|
-
| `poweredByBankName` | `string` | `undefined` | Bank shown as "Powered by {bank}" next to the source account when paying a bill. Native implementation only (`implementation="native"`); has no effect under the default
|
|
283
|
-
| `onSettingsClick` | `() => void` | `undefined` | Opens your bill pay settings surface from a cog beside the bill list's "Add bill" button. The cog renders only when this is supplied and the user's scopes reach that surface. Native implementation only; under
|
|
241
|
+
| Prop | Type | Default | Description |
|
|
242
|
+
| -------------------- | ------------------------------------ | ------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
243
|
+
| `pageTitleComponent` | `(children: ReactNode) => ReactNode` | Pass-through | Customizes the page title action region. |
|
|
244
|
+
| `finopsThemeColors` | `FinopsThemeColors` | `undefined` | Optional theme color overrides for the `'monite'` implementation. |
|
|
245
|
+
| `initialTab` | `'bills' \| 'vendors'` | `'bills'` | Tab to open on initial mount. Native implementation only (`implementation="native"`); has no effect under the default `'monite'` implementation. |
|
|
246
|
+
| `poweredByBankName` | `string` | `undefined` | Bank shown as "Powered by {bank}" next to the source account when paying a bill. Native implementation only (`implementation="native"`); has no effect under the default `'monite'` implementation. |
|
|
247
|
+
| `onSettingsClick` | `() => void` | `undefined` | Opens your bill pay settings surface from a cog beside the bill list's "Add bill" button. The cog renders only when this is supplied and the user's scopes reach that surface. Native implementation only; under `'monite'`, build a settings button into `pageTitleComponent` instead. |
|
|
284
248
|
|
|
285
249
|
### CreditCardsWidget
|
|
286
250
|
|
|
287
|
-
|
|
251
|
+
Lists an organization's **credit** cards one page at a time, with a "Show my cards" toggle and per-row Activate. Selecting a row opens the card's details in a side sheet. There is no built-in credit issuance flow, so Create card appears only when you supply `onCreateCard`.
|
|
288
252
|
|
|
289
253
|
#### Props
|
|
290
254
|
|
|
291
|
-
| Prop | Type | Default | Description
|
|
292
|
-
| --------------------------- | --------------------------------------- | -------------- |
|
|
293
|
-
| `pagination` | `{ paginationToken?, pageSize? }` | `undefined` | Controlled cursor and page size. Supply with `onPaginationChange
|
|
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
|
|
296
|
-
| `labels` | `PartialDeep<CardsLabels>` | English labels | Overrides the
|
|
297
|
-
| `featureLabels` | `PartialDeep<CardsFeatureLabels>` | English labels | Overrides
|
|
298
|
-
| `selectedCardId` | `string \| null` | `undefined` | Controlled selection of the card whose details panel is open. `null` closes it; omit for uncontrolled.
|
|
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
|
|
303
|
-
| `cardDetailsActivateLabels` | `PartialDeep<ActivateCardPanelLabels>` | English labels | Overrides
|
|
304
|
-
| `bankLogoSrc` | `string` | `undefined` | Bank logo for the details panel's card face. Omit and the face renders
|
|
305
|
-
| `bankLogoAlt` | `string` | `undefined` | Alt text for `bankLogoSrc`.
|
|
306
|
-
| `onCreateCard` | `() => void` | `undefined` |
|
|
307
|
-
| `headerStart` | `ReactNode` | `undefined` | Your
|
|
308
|
-
| `onActivateCard` | `(cardId: string) => void` | `undefined` | Called when a row's Activate button is clicked. Omit it and the button
|
|
255
|
+
| Prop | Type | Default | Description |
|
|
256
|
+
| --------------------------- | --------------------------------------- | -------------- | ------------------------------------------------------------------------------------------------------------------------- |
|
|
257
|
+
| `pagination` | `{ paginationToken?, pageSize? }` | `undefined` | Controlled cursor and page size. Supply with `onPaginationChange`. |
|
|
258
|
+
| `defaultPagination` | `{ paginationToken?, pageSize? }` | First page, 10 | Initial cursor and page size when uncontrolled. Ignored when `pagination` is supplied. |
|
|
259
|
+
| `onPaginationChange` | `(pagination: CardsPagination) => void` | `undefined` | Called on every page or page-size change. Persist the whole object, not the token alone. |
|
|
260
|
+
| `labels` | `PartialDeep<CardsLabels>` | English labels | Overrides the list screen's copy, including the details sheet's screen-reader name under `detailsSheet`. |
|
|
261
|
+
| `featureLabels` | `PartialDeep<CardsFeatureLabels>` | English labels | Overrides status and form-factor vocabulary, the empty-cell placeholder and name fallbacks. |
|
|
262
|
+
| `selectedCardId` | `string \| null` | `undefined` | Controlled selection of the card whose details panel is open. `null` closes it; omit for uncontrolled. |
|
|
263
|
+
| `defaultSelectedCardId` | `string \| null` | `undefined` | Initial selection when uncontrolled. Ignored when `selectedCardId` is supplied. |
|
|
264
|
+
| `onSelectedCardIdChange` | `(cardId: string \| null) => void` | `undefined` | Fires whenever the open card changes, including on close (`null`). Supplying it does **not** change what renders. |
|
|
265
|
+
| `cardDetailsLabels` | `PartialDeep<CardDetailsWidgetLabels>` | English labels | Label overrides forwarded into the details panel. |
|
|
266
|
+
| `cardDetailsFeatureLabels` | `PartialDeep<CardDetailsFeatureLabels>` | English labels | Overrides the details panel's status, form-factor and program copy and its copy-success toast. |
|
|
267
|
+
| `cardDetailsActivateLabels` | `PartialDeep<ActivateCardPanelLabels>` | English labels | Overrides the copy of the Activate Card form the details panel opens. |
|
|
268
|
+
| `bankLogoSrc` | `string` | `undefined` | Bank logo for the details panel's card face. Omit it and the face renders no logo. |
|
|
269
|
+
| `bankLogoAlt` | `string` | `undefined` | Alt text for `bankLogoSrc`. |
|
|
270
|
+
| `onCreateCard` | `() => void` | `undefined` | Your own Create card handler. Required for the button to render. |
|
|
271
|
+
| `headerStart` | `ReactNode` | `undefined` | Your markup for the start of the header row, beside Create card. Put your heading here; you choose the element and level. |
|
|
272
|
+
| `onActivateCard` | `(cardId: string) => void` | `undefined` | Called when a row's Activate button is clicked. Omit it and the button isn't rendered. |
|
|
309
273
|
|
|
310
274
|
### DebitCardsWidget
|
|
311
275
|
|
|
312
|
-
|
|
276
|
+
Lists an organization's **debit** cards one page at a time, with a "Show my cards" toggle, Create card and per-row Activate. Selecting a row opens the card's details in a side sheet, and Create card opens the built-in debit issuance flow in the same sheet.
|
|
313
277
|
|
|
314
278
|
#### Props
|
|
315
279
|
|
|
316
|
-
| Prop | Type | Default | Description
|
|
317
|
-
| --------------------------- | --------------------------------------- | -------------- |
|
|
318
|
-
| `pagination` | `{ paginationToken?, pageSize? }` | `undefined` | Controlled cursor and page size. Supply with `onPaginationChange
|
|
319
|
-
| `defaultPagination` | `{ paginationToken?, pageSize? }` | First page, 10 | Initial cursor and page size when uncontrolled. Ignored when `pagination` is supplied.
|
|
320
|
-
| `onPaginationChange` | `(pagination: CardsPagination) => void` | `undefined` | Called
|
|
321
|
-
| `labels` | `PartialDeep<CardsLabels>` | English labels | Overrides the
|
|
322
|
-
| `featureLabels` | `PartialDeep<CardsFeatureLabels>` | English labels | Overrides
|
|
323
|
-
| `selectedCardId` | `string \| null` | `undefined` | Controlled selection of the card whose details panel is open. `null` closes it; omit for uncontrolled.
|
|
324
|
-
| `defaultSelectedCardId` | `string \| null` | `undefined` | Initial selection when uncontrolled. Ignored when `selectedCardId` is supplied.
|
|
325
|
-
| `onSelectedCardIdChange` | `(cardId: string \| null) => void` | `undefined` | Fires whenever the open card changes, including on close (`null`). Supplying it does **not** change what renders.
|
|
326
|
-
| `cardDetailsLabels` | `PartialDeep<CardDetailsWidgetLabels>` | English labels | Label overrides forwarded into the details panel.
|
|
327
|
-
| `cardDetailsFeatureLabels` | `PartialDeep<CardDetailsFeatureLabels>` | English labels | Overrides
|
|
328
|
-
| `cardDetailsActivateLabels` | `PartialDeep<ActivateCardPanelLabels>` | English labels | Overrides
|
|
329
|
-
| `bankLogoSrc` | `string` | `undefined` | Bank logo for the details panel's card face
|
|
330
|
-
| `bankLogoAlt` | `string` | `undefined` | Alt text for `bankLogoSrc`.
|
|
331
|
-
| `cardArtSrc` | `string` | `undefined` |
|
|
332
|
-
| `createCardLabels` | `PartialDeep<CreateCardWidgetLabels>` | English labels | Label overrides forwarded into the
|
|
333
|
-
| `createCardFeatureLabels` | toast / untitled-funding overrides | English labels | Overrides
|
|
334
|
-
| `onCreateCard` | `() => void` | `undefined` |
|
|
335
|
-
| `headerStart` | `ReactNode` | `undefined` | Your
|
|
336
|
-
| `onActivateCard` | `(cardId: string) => void` | `undefined` | Called when a row's Activate button is clicked. Omit it and the button
|
|
280
|
+
| Prop | Type | Default | Description |
|
|
281
|
+
| --------------------------- | --------------------------------------- | -------------- | ------------------------------------------------------------------------------------------------------------------------- |
|
|
282
|
+
| `pagination` | `{ paginationToken?, pageSize? }` | `undefined` | Controlled cursor and page size. Supply with `onPaginationChange`. |
|
|
283
|
+
| `defaultPagination` | `{ paginationToken?, pageSize? }` | First page, 10 | Initial cursor and page size when uncontrolled. Ignored when `pagination` is supplied. |
|
|
284
|
+
| `onPaginationChange` | `(pagination: CardsPagination) => void` | `undefined` | Called on every page or page-size change. Persist the whole object, not the token alone. |
|
|
285
|
+
| `labels` | `PartialDeep<CardsLabels>` | English labels | Overrides the list screen's copy, including the sheets' screen-reader names under `detailsSheet` and `createSheet`. |
|
|
286
|
+
| `featureLabels` | `PartialDeep<CardsFeatureLabels>` | English labels | Overrides status and form-factor vocabulary, the empty-cell placeholder and name fallbacks. |
|
|
287
|
+
| `selectedCardId` | `string \| null` | `undefined` | Controlled selection of the card whose details panel is open. `null` closes it; omit for uncontrolled. |
|
|
288
|
+
| `defaultSelectedCardId` | `string \| null` | `undefined` | Initial selection when uncontrolled. Ignored when `selectedCardId` is supplied. |
|
|
289
|
+
| `onSelectedCardIdChange` | `(cardId: string \| null) => void` | `undefined` | Fires whenever the open card changes, including on close (`null`). Supplying it does **not** change what renders. |
|
|
290
|
+
| `cardDetailsLabels` | `PartialDeep<CardDetailsWidgetLabels>` | English labels | Label overrides forwarded into the details panel. |
|
|
291
|
+
| `cardDetailsFeatureLabels` | `PartialDeep<CardDetailsFeatureLabels>` | English labels | Overrides the details panel's status, form-factor and program copy and its copy-success toast. |
|
|
292
|
+
| `cardDetailsActivateLabels` | `PartialDeep<ActivateCardPanelLabels>` | English labels | Overrides the copy of the Activate Card form the details panel opens. |
|
|
293
|
+
| `bankLogoSrc` | `string` | `undefined` | Bank logo for the details panel's card face, ignored when `cardArtSrc` is set. Omit both and the face renders no logo. |
|
|
294
|
+
| `bankLogoAlt` | `string` | `undefined` | Alt text for `bankLogoSrc`. |
|
|
295
|
+
| `cardArtSrc` | `string` | `undefined` | Card art for the create sheet and the details card face. Omitted, the sheet uses a neutral plastic. |
|
|
296
|
+
| `createCardLabels` | `PartialDeep<CreateCardWidgetLabels>` | English labels | Label overrides forwarded into the built-in create sheet. |
|
|
297
|
+
| `createCardFeatureLabels` | toast / untitled-funding overrides | English labels | Overrides the create sheet's toasts, untitled funding-account fallback and pending-activation success copy. |
|
|
298
|
+
| `onCreateCard` | `() => void` | `undefined` | Your own Create card handler. When supplied, the built-in sheet doesn't open. |
|
|
299
|
+
| `headerStart` | `ReactNode` | `undefined` | Your markup for the start of the header row, beside Create card. Put your heading here; you choose the element and level. |
|
|
300
|
+
| `onActivateCard` | `(cardId: string) => void` | `undefined` | Called when a row's Activate button is clicked. Omit it and the button isn't rendered. |
|
|
337
301
|
|
|
338
302
|
### CardDetailsWidget
|
|
339
303
|
|
|
340
|
-
Details for one credit
|
|
304
|
+
Details for one credit or debit card: status, form factor, program, masked number, and copyable cardholder, nickname and billing-address rows. It renders panel content rather than its own drawer, so it fits on a page of your own or inside chrome you already have.
|
|
341
305
|
|
|
342
306
|
#### Props
|
|
343
307
|
|
|
344
|
-
| Prop | Type | Default | Description
|
|
345
|
-
| ---------------- | --------------------------------------- | -------------- |
|
|
346
|
-
| `cardId` | `string` | **Required** | Id of the card to show.
|
|
347
|
-
| `cardProgram` | `'credit' \| 'debit'` | **Required** | Which issuing program `cardId` belongs to.
|
|
348
|
-
| `onClose` | `() => void` | `undefined` | Called
|
|
349
|
-
| `labels` | `PartialDeep<CardDetailsWidgetLabels>` | English labels | Overrides the panel's
|
|
350
|
-
| `activateLabels` | `PartialDeep<ActivateCardPanelLabels>` | English labels | Overrides the Activate Card form's copy
|
|
351
|
-
| `featureLabels` | `PartialDeep<CardDetailsFeatureLabels>` | English labels | Overrides
|
|
352
|
-
| `cardArtSrc` | `string` | `undefined` | Full
|
|
353
|
-
| `bankLogoSrc` | `string` | `undefined` | Bank logo for the card face
|
|
354
|
-
| `bankLogoAlt` | `string` | `undefined` | Alt text for `bankLogoSrc`. Falls back to `labels.cardFace.bankLogoAlt`.
|
|
308
|
+
| Prop | Type | Default | Description |
|
|
309
|
+
| ---------------- | --------------------------------------- | -------------- | ------------------------------------------------------------------------------------------------------------------------------ |
|
|
310
|
+
| `cardId` | `string` | **Required** | Id of the card to show. |
|
|
311
|
+
| `cardProgram` | `'credit' \| 'debit'` | **Required** | Which issuing program `cardId` belongs to. |
|
|
312
|
+
| `onClose` | `() => void` | `undefined` | Called by the panel's close control and the activation **Done** button. Omit it and neither is rendered. |
|
|
313
|
+
| `labels` | `PartialDeep<CardDetailsWidgetLabels>` | English labels | Overrides the panel's copy. See the exported `CardDetailsWidgetLabels` type for every key. |
|
|
314
|
+
| `activateLabels` | `PartialDeep<ActivateCardPanelLabels>` | English labels | Overrides the Activate Card form's copy. See the exported `ActivateCardPanelLabels` type for every key. |
|
|
315
|
+
| `featureLabels` | `PartialDeep<CardDetailsFeatureLabels>` | English labels | Overrides status, form-factor and program wording, toasts, and the refused-reveal sentence. See `CardDetailsFeatureLabels`. |
|
|
316
|
+
| `cardArtSrc` | `string` | `undefined` | Full plastic art for the card face (the same asset you pass `CreateCardWidget`). Takes priority over `bankLogoSrc`. |
|
|
317
|
+
| `bankLogoSrc` | `string` | `undefined` | Bank logo for the card face; ignored when `cardArtSrc` is set. The widget ships no bank artwork, so omit it and no logo shows. |
|
|
318
|
+
| `bankLogoAlt` | `string` | `undefined` | Alt text for `bankLogoSrc`. Falls back to `labels.cardFace.bankLogoAlt`. |
|
|
355
319
|
|
|
356
320
|
### CounterpartsWidget
|
|
357
321
|
|
|
358
|
-
|
|
322
|
+
Manages an organization's customers or vendors: a searchable list with money columns, a details sheet, and create, edit and delete flows, including addresses and a vendor's ACH payment method.
|
|
359
323
|
|
|
360
324
|
#### Props
|
|
361
325
|
|
|
362
|
-
| Prop | Type | Default | Description
|
|
363
|
-
| -------------------- | ------------------------------------------------ | ------------------- |
|
|
364
|
-
| `counterpartType` | `'customer' \| 'vendor'` |
|
|
365
|
-
| `pageSizeOptions` | `number[]` | `[10, 25, 50, 100]` | Page-size choices shown by the table.
|
|
366
|
-
| `onViewAllDocuments` | `(counterpart: CounterpartActionTarget) => void` | `undefined` |
|
|
367
|
-
| `onCreateDocument` | `(counterpart: CounterpartActionTarget) => void` | `undefined` | Runs the details sheet's
|
|
368
|
-
|
|
369
|
-
|
|
|
370
|
-
|
|
|
371
|
-
| `
|
|
372
|
-
| `
|
|
373
|
-
| `
|
|
374
|
-
| `
|
|
375
|
-
| `addressLabels` | `PartialDeep<AddressFormSheetLabels>` | Address form copy. |
|
|
376
|
-
| `deleteLabels` | `Partial<ConfirmDeleteDialogLabels>` | Delete-dialog copy. |
|
|
377
|
-
| `messageLabels` | `Partial<CounterpartMessageLabels>` | Validation, API failure, and delete-prompt messages produced by feature logic. |
|
|
326
|
+
| Prop | Type | Default | Description |
|
|
327
|
+
| -------------------- | ------------------------------------------------ | ------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
328
|
+
| `counterpartType` | `'customer' \| 'vendor'` | **Required** | Selects the customer or vendor surface. |
|
|
329
|
+
| `pageSizeOptions` | `number[]` | `[10, 25, 50, 100]` | Page-size choices shown by the table. |
|
|
330
|
+
| `onViewAllDocuments` | `(counterpart: CounterpartActionTarget) => void` | `undefined` | Shows a "View all" action by the details sheet's recent bills/invoices and passes the counterpart's `id` and `name`. Hidden when omitted. |
|
|
331
|
+
| `onCreateDocument` | `(counterpart: CounterpartActionTarget) => void` | `undefined` | Runs the details sheet's "Send a payment" (vendor) or "Issue an invoice" (customer) button. Disabled when omitted; you check the scopes it needs. |
|
|
332
|
+
| `screenLabels` | `Partial<CounterpartsScreenLabels>` | English labels | Table, search/filter, empty, error and access-restricted copy. |
|
|
333
|
+
| `formLabels` | `PartialDeep<CounterpartFormSheetLabels>` | English labels | Create/edit form copy. |
|
|
334
|
+
| `detailsLabels` | `Partial<CounterpartDetailsSheetLabels>` | English labels | Details sheet copy. |
|
|
335
|
+
| `bankAccountLabels` | `PartialDeep<BankAccountFormSheetLabels>` | English labels | Vendor payment-method form copy. |
|
|
336
|
+
| `addressLabels` | `PartialDeep<AddressFormSheetLabels>` | English labels | Address form copy. |
|
|
337
|
+
| `deleteLabels` | `Partial<ConfirmDeleteDialogLabels>` | English labels | Delete-dialog copy. |
|
|
338
|
+
| `messageLabels` | `Partial<CounterpartMessageLabels>` | English labels | Validation, API failure and delete-prompt messages. |
|
|
378
339
|
|
|
379
340
|
### CustomersWidget
|
|
380
341
|
|
|
381
|
-
|
|
342
|
+
Manages an organization's customers: a searchable list with money columns, a details sheet, and create, edit and delete flows.
|
|
382
343
|
|
|
383
344
|
#### Props
|
|
384
345
|
|
|
385
|
-
| Prop | Type | Default | Description
|
|
386
|
-
| -------------------- | --------------------------------------------- | ------------------- |
|
|
387
|
-
| `pageSizeOptions` | `number[]` | `[10, 25, 50, 100]` | Page-size choices shown by the table.
|
|
388
|
-
| `onViewAllDocuments` | `(customer: CounterpartActionTarget) => void` | `undefined` |
|
|
389
|
-
| `onCreateDocument` | `(customer: CounterpartActionTarget) => void` | `undefined` |
|
|
390
|
-
|
|
391
|
-
|
|
|
392
|
-
|
|
|
393
|
-
| `
|
|
394
|
-
| `
|
|
395
|
-
| `
|
|
396
|
-
| `addressLabels` | `PartialDeep<AddressFormSheetLabels>` | Address form copy. |
|
|
397
|
-
| `deleteLabels` | `Partial<ConfirmDeleteDialogLabels>` | Delete-dialog copy. |
|
|
398
|
-
| `messageLabels` | `Partial<CounterpartMessageLabels>` | Validation, API failure, and delete-prompt messages produced by feature logic. |
|
|
346
|
+
| Prop | Type | Default | Description |
|
|
347
|
+
| -------------------- | --------------------------------------------- | ------------------- | ---------------------------------------------------------------------------------------------------------------------------- |
|
|
348
|
+
| `pageSizeOptions` | `number[]` | `[10, 25, 50, 100]` | Page-size choices shown by the table. |
|
|
349
|
+
| `onViewAllDocuments` | `(customer: CounterpartActionTarget) => void` | `undefined` | Shows a "View all" action on the details sheet's recent invoices and passes the customer's `id` and `name`; omit to hide it. |
|
|
350
|
+
| `onCreateDocument` | `(customer: CounterpartActionTarget) => void` | `undefined` | Handles "Issue an invoice" with the customer's `id` and `name`; omit and the button is disabled. You check invoice scopes. |
|
|
351
|
+
| `screenLabels` | `Partial<CounterpartsScreenLabels>` | English labels | Table, search, filter, empty and error copy. |
|
|
352
|
+
| `formLabels` | `Partial<CounterpartFormSheetLabels>` | English labels | Create/edit customer form copy. |
|
|
353
|
+
| `detailsLabels` | `Partial<CounterpartDetailsSheetLabels>` | English labels | Details sheet copy. |
|
|
354
|
+
| `addressLabels` | `PartialDeep<AddressFormSheetLabels>` | English labels | Address form copy. |
|
|
355
|
+
| `deleteLabels` | `Partial<ConfirmDeleteDialogLabels>` | English labels | Delete-dialog copy. |
|
|
356
|
+
| `messageLabels` | `Partial<CounterpartMessageLabels>` | English labels | Validation, API failure and delete-prompt copy. |
|
|
399
357
|
|
|
400
358
|
### ExpenseManagementWidget
|
|
401
359
|
|
|
402
|
-
A
|
|
360
|
+
A complete expenses surface: My and Team transactions tabs with Action Items, a searchable transactions table, receipt upload, and a full-screen transaction review dialog.
|
|
403
361
|
|
|
404
362
|
#### Props
|
|
405
363
|
|
|
406
|
-
| Prop | Type | Default
|
|
407
|
-
| --------------------------------- | ---------------------------------------------- |
|
|
408
|
-
| `bankDisplayName` | `string` |
|
|
409
|
-
| `bankLogoSrc` | `string` |
|
|
410
|
-
| `bankLogoAlt` | `string` |
|
|
411
|
-
| `isBankingTaglineVisible` | `boolean` |
|
|
412
|
-
| `onSettingsClick` | `() => void` |
|
|
413
|
-
| `receiptUpload` | `UploadReceiptWidgetProps` |
|
|
414
|
-
| `screenLabels` | `Partial<ExpensesScreenLabels>` | English
|
|
415
|
-
| `headerLabels` | `Partial<ExpensesHeaderLabels>` | English
|
|
416
|
-
| `transactionsTableLabels` | `Partial<ExpensesTransactionsTableLabels>` | English
|
|
417
|
-
| `filterBarLabels` | `Partial<ExpensesTransactionsFilterBarLabels>` | English
|
|
418
|
-
| `actionItemsLabels` | `Partial<ActionItemsListLabels>` | English
|
|
419
|
-
| `statusBadgeLabels` | `Partial<ExpenseStatusBadgeLabels>` | English
|
|
420
|
-
| `transactionDetailsLabels` | `Partial<TransactionDetailsLabels>` | English
|
|
421
|
-
| `transactionDetailsCardLabels` | `Partial<AccordionItemCardLabels>` | English
|
|
422
|
-
| `transactionDetailsActionsLabels` | `Partial<TransactionDetailsActionsLabels>` | English
|
|
423
|
-
| `fileViewerLabels` | `Partial<FileViewerLabels>` | English
|
|
364
|
+
| Prop | Type | Default | Description |
|
|
365
|
+
| --------------------------------- | ---------------------------------------------- | ----------- | ----------------------------------------------------------------------------------------- |
|
|
366
|
+
| `bankDisplayName` | `string` | `undefined` | Bank name shown in the attribution header. |
|
|
367
|
+
| `bankLogoSrc` | `string` | `undefined` | URL for the bank logo in the attribution header. |
|
|
368
|
+
| `bankLogoAlt` | `string` | `undefined` | Alt text for the bank logo. |
|
|
369
|
+
| `isBankingTaglineVisible` | `boolean` | `undefined` | Shows the "Business Banking provided by" tagline beside the header. |
|
|
370
|
+
| `onSettingsClick` | `() => void` | `undefined` | Renders a scope-gated settings entry point in the header; navigate from this callback. |
|
|
371
|
+
| `receiptUpload` | `UploadReceiptWidgetProps` | `undefined` | Overrides the receipt-upload control's props, such as `onFileUpload` / `onAwaitMatching`. |
|
|
372
|
+
| `screenLabels` | `Partial<ExpensesScreenLabels>` | English | Tab labels and other screen shell copy. |
|
|
373
|
+
| `headerLabels` | `Partial<ExpensesHeaderLabels>` | English | Bank-attribution header copy. |
|
|
374
|
+
| `transactionsTableLabels` | `Partial<ExpensesTransactionsTableLabels>` | English | Transactions table column headers and empty/loading copy. |
|
|
375
|
+
| `filterBarLabels` | `Partial<ExpensesTransactionsFilterBarLabels>` | English | Search/filter bar copy. |
|
|
376
|
+
| `actionItemsLabels` | `Partial<ActionItemsListLabels>` | English | Action Items list copy. |
|
|
377
|
+
| `statusBadgeLabels` | `Partial<ExpenseStatusBadgeLabels>` | English | Status pill copy, shared between the table and the review dialog. |
|
|
378
|
+
| `transactionDetailsLabels` | `Partial<TransactionDetailsLabels>` | English | Review dialog copy. |
|
|
379
|
+
| `transactionDetailsCardLabels` | `Partial<AccordionItemCardLabels>` | English | Copy for the accordion cards inside the review dialog. |
|
|
380
|
+
| `transactionDetailsActionsLabels` | `Partial<TransactionDetailsActionsLabels>` | English | Copy for the review dialog's action buttons. |
|
|
381
|
+
| `fileViewerLabels` | `Partial<FileViewerLabels>` | English | Copy for the receipt/attachment file viewer inside the review dialog. |
|
|
424
382
|
|
|
425
383
|
### UploadReceiptWidget
|
|
426
384
|
|
|
427
|
-
|
|
385
|
+
An "Upload receipts" button that opens a popover with a drag-and-drop file picker and a copyable forwarding email address. It makes no network calls: your `onFileUpload` does the upload, and the widget shows progress and result toasts.
|
|
428
386
|
|
|
429
387
|
_Standalone presentational widget — it does not take the shared auth/scope props._
|
|
430
388
|
|
|
431
389
|
#### Props
|
|
432
390
|
|
|
433
|
-
| Prop | Type | Default | Description
|
|
434
|
-
| ----------------- | --------------------------------------------------------- | ----------- |
|
|
435
|
-
| `emailAddress` | `string` | `undefined` | Forwarding email address shown
|
|
436
|
-
| `onFileUpload` | `(file: File) => unknown \| Promise<unknown>` | `undefined` | Called once per selected file
|
|
437
|
-
| `onAwaitMatching` | `(uploadedCount: number) => Promise<ReceiptMatchSummary>` | `undefined` | Awaited after every file in a batch
|
|
438
|
-
| `isUploading` | `boolean` | `false` | Host
|
|
391
|
+
| Prop | Type | Default | Description |
|
|
392
|
+
| ----------------- | --------------------------------------------------------- | ----------- | -------------------------------------------------------------------------------------------------------------------- |
|
|
393
|
+
| `emailAddress` | `string` | `undefined` | Forwarding email address shown with a copy button. Omit it to hide the email option. |
|
|
394
|
+
| `onFileUpload` | `(file: File) => unknown \| Promise<unknown>` | `undefined` | Called once per selected file and awaited; a rejection counts as a failed upload. Omit to disable uploading. |
|
|
395
|
+
| `onAwaitMatching` | `(uploadedCount: number) => Promise<ReceiptMatchSummary>` | `undefined` | Awaited after every file in a batch uploads. Resolve once matching finishes. Omit to stop at upload. |
|
|
396
|
+
| `isUploading` | `boolean` | `false` | Host loading flag. While `true` (or while a batch runs) the popover shows a processing state and blocks new uploads. |
|
|
439
397
|
|
|
440
398
|
### BalancesWidget
|
|
441
399
|
|
|
442
|
-
|
|
400
|
+
Shows the organization's embedded bank account balances, up to a configurable number of rows, with a total when there are several accounts and an optional **View all accounts** link.
|
|
443
401
|
|
|
444
402
|
#### Props
|
|
445
403
|
|
|
446
|
-
| Prop | Type | Default
|
|
447
|
-
| ------------------------ | ------------------------------- |
|
|
448
|
-
| `maxAccounts` | `number` | `5`
|
|
449
|
-
| `labels` | `Partial<BalancesWidgetLabels>` |
|
|
450
|
-
| `onBalanceRowClick` | `(accountId: string) => void` |
|
|
451
|
-
| `onViewAllAccountsClick` | `() => void` |
|
|
404
|
+
| Prop | Type | Default | Description |
|
|
405
|
+
| ------------------------ | ------------------------------- | -------------- | --------------------------------------------------------------------------- |
|
|
406
|
+
| `maxAccounts` | `number` | `5` | Maximum rows rendered in-card; additional accounts use the view-all CTA. |
|
|
407
|
+
| `labels` | `Partial<BalancesWidgetLabels>` | English labels | Override shell copy (title, errors, view-all label, total balance tooltip). |
|
|
408
|
+
| `onBalanceRowClick` | `(accountId: string) => void` | `undefined` | When set, balance rows are clickable and receive the account id. |
|
|
409
|
+
| `onViewAllAccountsClick` | `() => void` | `undefined` | When set and more than `maxAccounts` exist, shows **View all accounts**. |
|
|
452
410
|
|
|
453
411
|
### InsightsWidget
|
|
454
412
|
|
|
455
|
-
|
|
413
|
+
Shows onboarding-style insights derived from the organization's embedded and external bank accounts, in **Active** and **Dismissed** tabs. Users can dismiss insights, and the widget remembers dismissals per organization.
|
|
456
414
|
|
|
457
415
|
#### Props
|
|
458
416
|
|
|
459
|
-
| Prop | Type | Default
|
|
460
|
-
| ---------------------------- | -------------------------------- |
|
|
461
|
-
| `routingEnabled` | `boolean` | `false`
|
|
462
|
-
| `onRoutingToggleChange` | `(enabled: boolean) => void` |
|
|
463
|
-
| `onLinkExternalAccountClick` | `() => void` |
|
|
464
|
-
| `labels` | `Partial<InsightsWidgetLabels>` |
|
|
465
|
-
| `singleInsightLabels` | `Partial<SingleInsightLabels>` |
|
|
466
|
-
| `featureLabels` | `Partial<InsightsFeatureLabels>` |
|
|
417
|
+
| Prop | Type | Default | Description |
|
|
418
|
+
| ---------------------------- | -------------------------------- | -------------- | --------------------------------------------------------------------------------------------------- |
|
|
419
|
+
| `routingEnabled` | `boolean` | `false` | Controlled switch state for the routing onboarding insight. |
|
|
420
|
+
| `onRoutingToggleChange` | `(enabled: boolean) => void` | `undefined` | When set, controls the routing switch from the host; otherwise the widget keeps local toggle state. |
|
|
421
|
+
| `onLinkExternalAccountClick` | `() => void` | `undefined` | When set, the connect-external-account insight shows a **Link account** CTA. |
|
|
422
|
+
| `labels` | `Partial<InsightsWidgetLabels>` | English labels | Shell copy (tabs, empty, error). |
|
|
423
|
+
| `singleInsightLabels` | `Partial<SingleInsightLabels>` | English labels | Per-row UI strings, such as the dismiss button's `aria-label`. |
|
|
424
|
+
| `featureLabels` | `Partial<InsightsFeatureLabels>` | English labels | Generated insight body copy and action labels. |
|
|
467
425
|
|
|
468
426
|
### InvoicingWidget
|
|
469
427
|
|
|
470
|
-
A
|
|
428
|
+
A full invoicing experience: invoices, quotes and credit notes. You supply widget auth and, optionally, theme colors and a page-title wrapper.
|
|
471
429
|
|
|
472
430
|
#### Props
|
|
473
431
|
|
|
474
|
-
| Prop | Type | Default | Description
|
|
475
|
-
| -------------------- | ------------------------------------ | ----------- |
|
|
476
|
-
| `finopsThemeColors` | `FinopsThemeColors` | `undefined` |
|
|
477
|
-
| `embeddedBankName` | `string` | `undefined` |
|
|
478
|
-
| `pageTitleComponent` | `(children: ReactNode) => ReactNode` | Passthrough | Wraps the
|
|
432
|
+
| Prop | Type | Default | Description |
|
|
433
|
+
| -------------------- | ------------------------------------ | ----------- | ------------------------------------------------------------------------------------------------------------ |
|
|
434
|
+
| `finopsThemeColors` | `FinopsThemeColors` | `undefined` | `{ primary?: string; primaryForeground?: string }` overriding the theme's primary colors. |
|
|
435
|
+
| `embeddedBankName` | `string` | `undefined` | Sponsor bank name, shown as "Powered by {embeddedBankName}" next to embedded accounts in the payment picker. |
|
|
436
|
+
| `pageTitleComponent` | `(children: ReactNode) => ReactNode` | Passthrough | Wraps the header region (which holds the widget's action buttons) to add a title or toolbar. |
|
|
479
437
|
|
|
480
438
|
### LinkedAccountsWidget
|
|
481
439
|
|
|
482
|
-
|
|
440
|
+
Lists the organization's external bank accounts and lets the user connect, edit, verify with micro-deposits, and unlink them.
|
|
483
441
|
|
|
484
442
|
#### Props
|
|
485
443
|
|
|
486
|
-
| Prop | Type | Default | Description
|
|
487
|
-
| --------------- | -------------------------------------------- | -------------- |
|
|
488
|
-
| `labels` | `Partial<LinkedAccountsWidgetLabels>` | English labels |
|
|
489
|
-
| `featureLabels` | `Partial<LinkedAccountsWidgetFeatureLabels>` | English labels |
|
|
444
|
+
| Prop | Type | Default | Description |
|
|
445
|
+
| --------------- | -------------------------------------------- | -------------- | --------------------------------------------------------------------------------------------------------------------------------------- |
|
|
446
|
+
| `labels` | `Partial<LinkedAccountsWidgetLabels>` | English labels | Override UI copy. `stepIndicator` takes `{current}` and `{total}`; `verifySuccessDescription` and `unlinkDescription` take `{account}`. |
|
|
447
|
+
| `featureLabels` | `Partial<LinkedAccountsWidgetFeatureLabels>` | English labels | Override row fallback text, the account-number prefix, and the edit/unlink success toasts. |
|
|
490
448
|
|
|
491
449
|
### BankAccountOnboardingWidget
|
|
492
450
|
|
|
493
|
-
|
|
451
|
+
Walks an applicant through bank-account onboarding: business details, personal details, optional additional owners, and a result screen. The widget handles saving, validation, submission and waiting for the account to open; you supply auth and two callbacks.
|
|
494
452
|
|
|
495
453
|
#### Props
|
|
496
454
|
|
|
497
|
-
| Prop | Type |
|
|
498
|
-
| ------------------------------------------- | ---------------------------------------------- |
|
|
499
|
-
| `onEmbeddedOnboardingCompletedSuccessfully` | `() => void` |
|
|
500
|
-
| `onNavigateToDashboard` | `() => void` |
|
|
501
|
-
| `initialBusinessDetails` | `Partial<HostSupplied<BusinessDetailsValues>>` |
|
|
502
|
-
| `initialPersonalDetails` | `Partial<HostSupplied<PersonalDetailsValues>>` |
|
|
503
|
-
| `initialAdditionalOwners` | `HostSuppliedOwner[]` |
|
|
504
|
-
| `open` | `boolean` |
|
|
505
|
-
| `defaultOpen` | `boolean` |
|
|
506
|
-
| `onOpenChange` | `(open: boolean) => void` |
|
|
507
|
-
| `labels` | `BankAccountOnboardingWidgetLabels` |
|
|
508
|
-
| `bankLogoSrc` | `string` |
|
|
509
|
-
| `disclosureLinks` | `DisclosureLinks` |
|
|
510
|
-
| `isFullScreenInline` | `boolean` |
|
|
455
|
+
| Prop | Type | Default | Description |
|
|
456
|
+
| ------------------------------------------- | ---------------------------------------------- | -------------- | ---------------------------------------------------------------------------------------------------------------------------------- |
|
|
457
|
+
| `onEmbeddedOnboardingCompletedSuccessfully` | `() => void` | **Required** | Called when the application is approved and the account is open. |
|
|
458
|
+
| `onNavigateToDashboard` | `() => void` | **Required** | Called when the user clicks the dashboard CTA on the result screen. |
|
|
459
|
+
| `initialBusinessDetails` | `Partial<HostSupplied<BusinessDetailsValues>>` | `undefined` | Prefills step 1 (business details); the user can still edit. |
|
|
460
|
+
| `initialPersonalDetails` | `Partial<HostSupplied<PersonalDetailsValues>>` | `undefined` | Prefills step 2 (personal details); the user can still edit. |
|
|
461
|
+
| `initialAdditionalOwners` | `HostSuppliedOwner[]` | `[]` | Prefills step 3 (additional owners). |
|
|
462
|
+
| `open` | `boolean` | `undefined` | Controlled open state for the modal; update it from `onOpenChange`. Omit for uncontrolled mode. |
|
|
463
|
+
| `defaultOpen` | `boolean` | `false` | Initial open state when uncontrolled. Ignored when `open` is set. |
|
|
464
|
+
| `onOpenChange` | `(open: boolean) => void` | `undefined` | Fires whenever the modal opens or closes (overlay click, Escape, close button, Cancel, save or delete). |
|
|
465
|
+
| `labels` | `BankAccountOnboardingWidgetLabels` | English labels | Per-step and shell copy overrides, merged with the English defaults. |
|
|
466
|
+
| `bankLogoSrc` | `string` | `undefined` | Bank logo URL for the result screen; falls back to the bank name as text. |
|
|
467
|
+
| `disclosureLinks` | `DisclosureLinks` | `undefined` | URLs for Terms of Use, Privacy Policy, Electronic Communication and Patriot Act on step 1. You resolve these; omit to leave unset. |
|
|
468
|
+
| `isFullScreenInline` | `boolean` | `false` | Renders inline, filling its container, instead of in a modal. `open` / `defaultOpen` are ignored. |
|
|
511
469
|
|
|
512
470
|
### MarketingWidget
|
|
513
471
|
|
|
514
|
-
A
|
|
515
|
-
|
|
516
|
-
The widget renders nothing until widget init and the organization's `application-status` read resolve. It hides itself when the caller is already onboarded (`ACTIVE` / `INACTIVE`), invited (`INVITED`), or their organization's bank-account application is `COMPLETE`.
|
|
517
|
-
|
|
518
|
-
Otherwise the card follows the organization's bank-account application:
|
|
519
|
-
|
|
520
|
-
| Application status | Started by the caller | Started by a colleague |
|
|
521
|
-
| ---------------------- | ------------------------------------------ | ------------------------------ |
|
|
522
|
-
| none | Normal offer | Normal offer |
|
|
523
|
-
| `DRAFT` | Normal offer, CTA reads Resume application | Status chip + message, no CTAs |
|
|
524
|
-
| `SUBMITTED` | Status chip + message, no CTAs | Status chip + message, no CTAs |
|
|
525
|
-
| `DENIED` | Status chip + message, no CTAs | Status chip + message, no CTAs |
|
|
526
|
-
| `DELETED` / `CANCELED` | Normal offer | Normal offer |
|
|
527
|
-
| `COMPLETE` | Hidden | Hidden |
|
|
528
|
-
|
|
529
|
-
Resume application calls the same `onPrimaryCtaClick`: `BankAccountOnboardingWidget` resumes the caller's own draft by itself. The bank's name in the messages comes from widget init (`bankName`). Tenant-specific assets and copy are always passed in as `content` — the published package does not look up white-label or bank maps.
|
|
472
|
+
A marketing card and modal that presents your banking product copy (logo, captions, "How it works" steps, benefits, colors). Its Apply now and modal CTAs call `onPrimaryCtaClick`, which you typically wire to open `BankAccountOnboardingWidget`.
|
|
530
473
|
|
|
531
474
|
#### Props
|
|
532
475
|
|
|
533
|
-
| Prop | Type |
|
|
534
|
-
| ------------------- | ------------------------------------------ |
|
|
535
|
-
| `content` | `MarketingWidgetContent` |
|
|
536
|
-
| `onPrimaryCtaClick` | `() => void` |
|
|
537
|
-
| `labels` | `PartialDeep<MarketingWidgetLabels>` |
|
|
538
|
-
| `statusLabels` | `PartialDeep<MarketingWidgetStatusLabels>` |
|
|
476
|
+
| Prop | Type | Default | Description |
|
|
477
|
+
| ------------------- | ------------------------------------------ | -------------- | ----------------------------------------------------------------------------------------------------------------------------------- |
|
|
478
|
+
| `content` | `MarketingWidgetContent` | **Required** | Host-resolved card and modal copy, images, "How it works" steps, benefits, and appearance. |
|
|
479
|
+
| `onPrimaryCtaClick` | `() => void` | **Required** | Called when the applicant clicks Apply now on the card or the modal CTA (default label: Start application). Closes the modal first. |
|
|
480
|
+
| `labels` | `PartialDeep<MarketingWidgetLabels>` | English labels | Override the card and modal copy. See the exported `MarketingWidgetLabels` type for every key. |
|
|
481
|
+
| `statusLabels` | `PartialDeep<MarketingWidgetStatusLabels>` | English labels | Override the Resume application label and each status message. Heading and body are functions of `{ bankName }`. |
|
|
539
482
|
|
|
540
483
|
### ProductsWidget
|
|
541
484
|
|
|
542
|
-
|
|
485
|
+
Manages an organization's products and services: a filterable, sortable table with create, edit, view and delete flows, plus measure-unit management.
|
|
543
486
|
|
|
544
487
|
#### Props
|
|
545
488
|
|
|
546
|
-
| Prop | Type | Description
|
|
547
|
-
| ------------------------- | ---------------------------------------- |
|
|
548
|
-
| `pageSizeOptions` | `number[]` |
|
|
549
|
-
| `screenLabels` | `Partial<ProductsScreenLabels>` | Table/header/filter/empty/error copy.
|
|
550
|
-
| `formLabels` | `Partial<ProductFormSheetLabels>` | Create/edit form copy.
|
|
551
|
-
| `detailsLabels` | `Partial<ProductDetailsSheetLabels>` | Details sheet copy.
|
|
552
|
-
| `deleteLabels` | `Partial<ProductDeleteDialogLabels>` | Product delete confirmation copy.
|
|
553
|
-
| `measureUnitsLabels` | `Partial<MeasureUnitsManagerLabels>` | Measure-units manager copy.
|
|
554
|
-
| `measureUnitDeleteLabels` | `Partial<MeasureUnitDeleteDialogLabels>` | Measure-unit delete confirmation copy.
|
|
555
|
-
| `messageLabels` | `Partial<ProductMessageLabels>` | Validation / error messages produced by the widget.
|
|
489
|
+
| Prop | Type | Default | Description |
|
|
490
|
+
| ------------------------- | ---------------------------------------- | ------------------- | --------------------------------------------------- |
|
|
491
|
+
| `pageSizeOptions` | `number[]` | `[10, 25, 50, 100]` | Rows-per-page choices. |
|
|
492
|
+
| `screenLabels` | `Partial<ProductsScreenLabels>` | English labels | Table/header/filter/empty/error copy. |
|
|
493
|
+
| `formLabels` | `Partial<ProductFormSheetLabels>` | English labels | Create/edit form copy. |
|
|
494
|
+
| `detailsLabels` | `Partial<ProductDetailsSheetLabels>` | English labels | Details sheet copy. |
|
|
495
|
+
| `deleteLabels` | `Partial<ProductDeleteDialogLabels>` | English labels | Product delete confirmation copy. |
|
|
496
|
+
| `measureUnitsLabels` | `Partial<MeasureUnitsManagerLabels>` | English labels | Measure-units manager copy. |
|
|
497
|
+
| `measureUnitDeleteLabels` | `Partial<MeasureUnitDeleteDialogLabels>` | English labels | Measure-unit delete confirmation copy. |
|
|
498
|
+
| `messageLabels` | `Partial<ProductMessageLabels>` | English labels | Validation / error messages produced by the widget. |
|
|
556
499
|
|
|
557
500
|
### ReceivablesWidget
|
|
558
501
|
|
|
559
|
-
|
|
502
|
+
Lists, creates, edits and acts on an organization's invoices, quotes and credit notes, including sending by email and recording payments. It's the in-progress native replacement for `InvoicingWidget`.
|
|
560
503
|
|
|
561
504
|
#### Props
|
|
562
505
|
|
|
563
|
-
| Prop
|
|
564
|
-
|
|
|
565
|
-
| `defaultTab`
|
|
566
|
-
| `enabledTabs`
|
|
567
|
-
| `pageSizeOptions`
|
|
568
|
-
| `onReceivableCreated`
|
|
569
|
-
| `onReceivableOpened`
|
|
570
|
-
| `onTemplateSettingsClick`
|
|
571
|
-
|
|
572
|
-
|
|
|
573
|
-
|
|
|
574
|
-
| `
|
|
575
|
-
| `
|
|
576
|
-
| `
|
|
577
|
-
| `
|
|
578
|
-
| `
|
|
579
|
-
| `
|
|
580
|
-
| `
|
|
581
|
-
| `
|
|
582
|
-
| `
|
|
583
|
-
| `
|
|
584
|
-
| `messageLabels` | `Partial<ReceivableMessageLabels>` | English defaults | Overrides validation, fallback, summary, activity, reminder, and action-confirmation messages generated by the feature layer, including the subject and body saved on a reminder created from the form. |
|
|
585
|
-
| `productMessageLabels` | `Partial<ProductMessageLabels>` | English defaults | Overrides product flow validation and error messages. |
|
|
586
|
-
| `counterpartMessageLabels` | `Partial<CounterpartMessageLabels>` | English defaults | Overrides customer flow validation and error messages. |
|
|
506
|
+
| Prop | Type | Default | Description |
|
|
507
|
+
| -------------------------- | ---------------------------------------------------- | ---------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
508
|
+
| `defaultTab` | `ReceivablesWidgetTab` | `'invoices'` | Initial tab; if omitted or disabled, the widget starts on the first enabled tab. |
|
|
509
|
+
| `enabledTabs` | `ReceivablesWidgetTab[]` | `['invoices', 'quotes', 'credit_notes']` | Tabs visible to the user. Duplicate or unknown values are ignored. |
|
|
510
|
+
| `pageSizeOptions` | `number[]` | `[10, 25, 50, 100]` | Rows-per-page choices. The first page loads with a page size of `10`. |
|
|
511
|
+
| `onReceivableCreated` | `(id: string, type: ReceivableDocumentType) => void` | `undefined` | Called after a create or clone succeeds. |
|
|
512
|
+
| `onReceivableOpened` | `(id: string, type: ReceivableDocumentType) => void` | `undefined` | Called when the user opens a row's detail sheet. |
|
|
513
|
+
| `onTemplateSettingsClick` | `() => void` | `undefined` | Shows a template settings action in the header and calls this handler when clicked. |
|
|
514
|
+
| `embeddedBankName` | `string` | `undefined` | Sponsor bank name shown as "Powered by {embeddedBankName}" next to embedded accounts in the invoice payment-account picker. Omitted when unset. |
|
|
515
|
+
| `screenLabels` | `ReceivablesScreenLabelOverrides` | English labels | Table, tab, filter, empty, error, action and status badge copy. |
|
|
516
|
+
| `formLabels` | `Partial<ReceivableFormSheetLabels>` | English labels | Create/edit form copy; the save and issue buttons are in `messageLabels`. |
|
|
517
|
+
| `detailsLabels` | `ReceivableDetailsSheetLabelOverrides` | English labels | Detail sheet copy, including status badges. |
|
|
518
|
+
| `sendLabels` | `Partial<ReceivableSendDialogLabels>` | English labels | Send-email dialog copy. |
|
|
519
|
+
| `paymentLabels` | `Partial<ReceivablePaymentDialogLabels>` | English labels | Manual payment dialog copy. |
|
|
520
|
+
| `actionLabels` | `Partial<ReceivableActionDialogLabels>` | English labels | Confirmation dialog buttons; per-action titles come from `messageLabels`. |
|
|
521
|
+
| `counterpartFormLabels` | `PartialDeep<CounterpartFormSheetLabels>` | English labels | Inline customer creation copy. |
|
|
522
|
+
| `measureUnitsLabels` | `Partial<MeasureUnitsManagerLabels>` | English labels | Measure-unit manager copy. |
|
|
523
|
+
| `measureUnitDeleteLabels` | `Partial<MeasureUnitDeleteDialogLabels>` | English labels | Measure-unit delete confirmation copy. |
|
|
524
|
+
| `messageLabels` | `Partial<ReceivableMessageLabels>` | English labels | Validation, fallback, summary, activity, reminder and confirmation messages, including the form's save and issue buttons and a new reminder's subject and body. |
|
|
525
|
+
| `productMessageLabels` | `Partial<ProductMessageLabels>` | English labels | Product validation and error messages. |
|
|
526
|
+
| `counterpartMessageLabels` | `Partial<CounterpartMessageLabels>` | English labels | Customer validation and error messages. |
|
|
587
527
|
|
|
588
528
|
### SettingsWidget
|
|
589
529
|
|
|
590
|
-
A
|
|
530
|
+
A single navigable settings surface combining profile, team, invoice, bill-pay, expense, accounting, legal and help sections.
|
|
591
531
|
|
|
592
532
|
#### Props
|
|
593
533
|
|
|
594
|
-
| Prop | Type | Default | Description
|
|
595
|
-
| ------------------------- | -------------------------------------------- | --------------------------------- |
|
|
596
|
-
| `acceptInviteRedirectUri` | `string` | Same-origin `/accept-invite` |
|
|
597
|
-
| `labels` | `Partial<Labels>` | English labels | Overrides the settings heading copy.
|
|
598
|
-
| `featureLabels` | `Partial<FeatureLabels>` | English labels | Overrides section labels.
|
|
599
|
-
| `profileContent` | `ReactNode` | Profile widget | Replaces the profile section content.
|
|
600
|
-
| `teamContent` | `ReactNode` |
|
|
601
|
-
| `invoiceContent` | `ReactNode` | Invoice settings widget | Replaces invoice settings content.
|
|
602
|
-
| `billPayContent` | `ReactNode` | Approval policies settings | Replaces bill-pay settings content.
|
|
603
|
-
| `accountingContent` | `ReactNode` | Chart of accounts widget | Replaces accounting content.
|
|
604
|
-
| `expenseContent` | `ReactNode` | Expense policies and requirements | Replaces expense content.
|
|
605
|
-
| `legalContent` | `ReactNode` | Bank disclosures widget | Replaces the Legal section content.
|
|
606
|
-
| `profileContactUrl` | `string` | `undefined` |
|
|
607
|
-
| `selectedSection` | `SettingsWidgetSectionId` | `undefined` | The section to show.
|
|
608
|
-
| `defaultSelectedSection` | `SettingsWidgetSectionId` | First visible section | The section to open on
|
|
609
|
-
| `onSelectedSectionChange` | `(section: SettingsWidgetSectionId) => void` | `undefined` | Called with the
|
|
610
|
-
| `additionalSections` | `SettingsWidgetAdditionalSection[]` | `undefined` | Host-owned
|
|
611
|
-
| `helpContactUrl` | `string` | `undefined` |
|
|
612
|
-
| `helpFaq` | `HelpFaqSection[]` | `HELP_FAQ_EN` |
|
|
613
|
-
| `helpContent` | `ReactNode` | Help widget | Replaces the help section content.
|
|
614
|
-
| `finopsThemeColors` | `FinopsThemeColors` | `undefined` |
|
|
534
|
+
| Prop | Type | Default | Description |
|
|
535
|
+
| ------------------------- | -------------------------------------------- | --------------------------------- | ------------------------------------------------------------------------------------------------------------ |
|
|
536
|
+
| `acceptInviteRedirectUri` | `string` | Same-origin `/accept-invite` | Where Team invite emails link to; set it when your landing route differs or the origin isn't allowlisted. |
|
|
537
|
+
| `labels` | `Partial<Labels>` | English labels | Overrides the settings heading copy. |
|
|
538
|
+
| `featureLabels` | `Partial<FeatureLabels>` | English labels | Overrides section labels. |
|
|
539
|
+
| `profileContent` | `ReactNode` | Profile widget | Replaces the profile section content. |
|
|
540
|
+
| `teamContent` | `ReactNode` | Team widget | Replaces the team section content. |
|
|
541
|
+
| `invoiceContent` | `ReactNode` | Invoice settings widget | Replaces invoice settings content. |
|
|
542
|
+
| `billPayContent` | `ReactNode` | Approval policies settings | Replaces bill-pay settings content. |
|
|
543
|
+
| `accountingContent` | `ReactNode` | Chart of accounts widget | Replaces accounting content. |
|
|
544
|
+
| `expenseContent` | `ReactNode` | Expense policies and requirements | Replaces expense content. |
|
|
545
|
+
| `legalContent` | `ReactNode` | Bank disclosures widget | Replaces the Legal section content. |
|
|
546
|
+
| `profileContactUrl` | `string` | `undefined` | Link for the Profile section's "contact your bank" line; unlinked when unset. |
|
|
547
|
+
| `selectedSection` | `SettingsWidgetSectionId` | `undefined` | The section to show (controlled). Pair with `onSelectedSectionChange`; leave unset to let the widget own it. |
|
|
548
|
+
| `defaultSelectedSection` | `SettingsWidgetSectionId` | First visible section | The section to open on; read once per mount and ignored when `selectedSection` is set. |
|
|
549
|
+
| `onSelectedSectionChange` | `(section: SettingsWidgetSectionId) => void` | `undefined` | Called with the section the user selected, whether or not `selectedSection` is supplied. |
|
|
550
|
+
| `additionalSections` | `SettingsWidgetAdditionalSection[]` | `undefined` | Host-owned `{ id, label, content, after? }` sections; `after` names the built-in section to place it behind. |
|
|
551
|
+
| `helpContactUrl` | `string` | `undefined` | Link (URL or `mailto:`) for the Help section's "Contact Us" line; hidden when unset. |
|
|
552
|
+
| `helpFaq` | `HelpFaqSection[]` | `HELP_FAQ_EN` | FAQ shown in the Help section. Extend the exported `HELP_FAQ_EN` to add your own questions. |
|
|
553
|
+
| `helpContent` | `ReactNode` | Help widget | Replaces the help section content. |
|
|
554
|
+
| `finopsThemeColors` | `FinopsThemeColors` | `undefined` | Legacy theme overrides; currently has no effect. |
|
|
615
555
|
|
|
616
556
|
### TransfersWidget
|
|
617
557
|
|
|
618
|
-
|
|
558
|
+
Lists recent transfers across the organization's embedded bank accounts and lets the user send a book or ACH transfer.
|
|
619
559
|
|
|
620
560
|
#### Props
|
|
621
561
|
|
|
622
|
-
| Prop | Type | Default | Description
|
|
623
|
-
| ---------------------------- | --------------------------------------- | ---------------- |
|
|
624
|
-
| `labels` | `Partial<TransfersWidgetLabels>` | English labels | Override
|
|
625
|
-
| `featureLabels` | `Partial<TransfersWidgetFeatureLabels>` | English defaults | Override
|
|
626
|
-
| `isTransferMoneyOpen` | `boolean` | Uncontrolled |
|
|
627
|
-
| `defaultIsTransferMoneyOpen` | `boolean` | `false` |
|
|
628
|
-
| `onTransferMoneyOpenChange` | `(open: boolean) => void` | `undefined` | Called on every open and close
|
|
562
|
+
| Prop | Type | Default | Description |
|
|
563
|
+
| ---------------------------- | --------------------------------------- | ---------------- | ------------------------------------------------------------------------------------------------------- |
|
|
564
|
+
| `labels` | `Partial<TransfersWidgetLabels>` | English labels | Override list and modal copy. |
|
|
565
|
+
| `featureLabels` | `Partial<TransfersWidgetFeatureLabels>` | English defaults | Override route separator, fallback text, default currency and ACH SEC code. |
|
|
566
|
+
| `isTransferMoneyOpen` | `boolean` | Uncontrolled | Controls the transfer modal. When set, the widget only reports open/close requests and waits for you. |
|
|
567
|
+
| `defaultIsTransferMoneyOpen` | `boolean` | `false` | Initial modal state when uncontrolled. Ignored when `isTransferMoneyOpen` is set. |
|
|
568
|
+
| `onTransferMoneyOpenChange` | `(open: boolean) => void` | `undefined` | Called on every open and close: the button, the modal's own dismissals, and the close after a transfer. |
|
|
629
569
|
|
|
630
570
|
<!-- END GENERATED REFERENCE -->
|
|
631
571
|
|
|
632
572
|
## UI frameworks (shadcn default, Tecton optional)
|
|
633
573
|
|
|
634
|
-
Widgets render with the default shadcn
|
|
635
|
-
|
|
636
|
-
Stencil design system) is shipped as a **separate, opt-in package** so the core
|
|
637
|
-
package never carries Stencil or its build-time/runtime weight:
|
|
574
|
+
Widgets render with the default shadcn surface and need no configuration. Tecton
|
|
575
|
+
(the Q2 / Stencil design system) ships as a separate, opt-in package:
|
|
638
576
|
|
|
639
577
|
```bash
|
|
640
578
|
npm i @tesouro/embedded-components-react-tecton-ui
|
|
@@ -642,38 +580,22 @@ npm i @tesouro/embedded-components-react-tecton-ui
|
|
|
642
580
|
|
|
643
581
|
```ts
|
|
644
582
|
import { registerTectonUI } from '@tesouro/embedded-components-react-tecton-ui';
|
|
645
|
-
registerTectonUI();
|
|
583
|
+
registerTectonUI();
|
|
646
584
|
```
|
|
647
585
|
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
the extension's README for setup, the migration guide, and the Turbopack /
|
|
651
|
-
`@stencil/core` note that applies only when the Tecton extension is installed.
|
|
586
|
+
Call `registerTectonUI()` once at app startup, then set `uiFramework="tecton"` on a provider. Without the extension installed it
|
|
587
|
+
falls back to shadcn. See the extension's README for setup.
|
|
652
588
|
|
|
653
589
|
### TypeScript module resolution
|
|
654
590
|
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
`./experimental/*`) resolves cleanly.
|
|
661
|
-
|
|
662
|
-
The published declarations are **self-contained**: the build bundles each
|
|
663
|
-
entrypoint's `.d.ts` (`scripts/bundle-dts.mjs`) so it inlines the internal
|
|
664
|
-
workspace types instead of re-exporting them from unpublished `@tesouro-fe/*`
|
|
665
|
-
packages, and only genuine dependencies (react, MUI, …) remain as bare imports.
|
|
666
|
-
An ESM consumer therefore type-checks cleanly under `"bundler"` **and**
|
|
667
|
-
`"node16"` / `"nodenext"`, even with `skipLibCheck: false`.
|
|
668
|
-
|
|
669
|
-
Legacy `"moduleResolution": "node"` (a.k.a. `node10` / classic) is **not
|
|
670
|
-
supported**: it ignores the `exports` map, and this package carries no top-level
|
|
671
|
-
`types` field, so the type checker reports `TS2307` for the package and its
|
|
672
|
-
subpaths. Use `"bundler"` instead — every bundler-based toolchain supports it.
|
|
673
|
-
As an ESM-only package it is not `require()`-able from CommonJS.
|
|
591
|
+
Set `"moduleResolution"` to **`"bundler"`** (or `"node16"` / `"nodenext"`); every
|
|
592
|
+
entry point then resolves, and the declarations type-check with
|
|
593
|
+
`skipLibCheck: false`. Legacy `"node"` / `node10` resolution is **not supported**
|
|
594
|
+
(it ignores the `exports` map and reports `TS2307`). The package is ESM-only and
|
|
595
|
+
can't be `require()`d from CommonJS.
|
|
674
596
|
|
|
675
597
|
## Contributing
|
|
676
598
|
|
|
677
|
-
Maintainer notes
|
|
678
|
-
|
|
679
|
-
|
|
599
|
+
Maintainer notes live in `CONTRIBUTING.md` in the source repository: the
|
|
600
|
+
monorepo build and publishing model, the publish-verification gate, and how to
|
|
601
|
+
run the unit tests.
|