Skip to content

Commit ec328cc

Browse files
committed
Merge branch 'main' into core-3
2 parents 7bc100d + 345af98 commit ec328cc

35 files changed

+1387
-204
lines changed

clerk-typedoc/backend/external-account.mdx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ External account must be verified, so that you can make sure they can be assigne
88
| ------------------------------------------------ | --------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------- |
99
| <a id="approvedscopes"></a> `approvedScopes` | `string` | The scopes that the user has granted access to. |
1010
| <a id="emailaddress"></a> `emailAddress` | `string` | The user's email address. |
11-
| <a id="externalid"></a> `externalId` | `string` | The unique ID of the user in the provider. |
11+
| <a id="externalid"></a> ~~`externalId`~~ | `string` | **Deprecated.** Use `providerUserId` instead. |
1212
| <a id="firstname"></a> `firstName` | `string` | The user's first name. |
1313
| <a id="id"></a> `id` | `string` | The unique identifier for this external account. |
1414
| <a id="identificationid"></a> `identificationId` | `string` | The identification with which this external account is associated. |
@@ -17,6 +17,7 @@ External account must be verified, so that you can make sure they can be assigne
1717
| <a id="lastname"></a> `lastName` | `string` | The user's last name. |
1818
| <a id="phonenumber"></a> `phoneNumber` | <code>null \| string</code> | The phone number related to this specific external account. |
1919
| <a id="provider"></a> `provider` | `string` | The provider name (e.g., `google`). |
20+
| <a id="provideruserid"></a> `providerUserId` | `string` | The unique ID of the user in the provider. |
2021
| <a id="publicmetadata"></a> `publicMetadata` | <code>null \| Record\<string, unknown\></code> | Metadata that can be read from the Frontend API and Backend API and can be set only from the Backend API. |
2122
| <a id="username"></a> `username` | <code>null \| string</code> | The user's username. |
2223
| <a id="verification"></a> `verification` | <code>null \| [Verification](/docs/reference/backend/types/backend-verification)</code> | An object holding information on the verification of this external account. |
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
The Backend `WaitlistEntry` object holds information about a waitlist entry for a given email address.
2+
3+
## Properties
4+
5+
| Property | Type | Description |
6+
| ---------------------------------------- | ----------------------------------------------------------------------------------- | --------------------------------------------------- |
7+
| <a id="createdat"></a> `createdAt` | `number` | The date when the waitlist entry was first created. |
8+
| <a id="emailaddress"></a> `emailAddress` | `string` | The email address to add to the waitlist. |
9+
| <a id="id"></a> `id` | `string` | The unique identifier for this waitlist entry. |
10+
| <a id="invitation"></a> `invitation` | <code>null \| [Invitation](/docs/reference/backend/types/backend-invitation)</code> | The invitation associated with this waitlist entry. |
11+
| <a id="islocked"></a> `isLocked?` | `boolean` | Whether the waitlist entry is locked or not. |
12+
| <a id="status"></a> `status` | <code>"pending" \| "invited" \| "completed" \| "rejected"</code> | The status of the waitlist entry. |
13+
| <a id="updatedat"></a> `updatedAt` | `number` | The date when the waitlist entry was last updated. |

contributing/CONTRIBUTING.md

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ If you're contributing specifically to our hooks and components documentation, p
4343
- [`<TutorialHero />`](#tutorialhero-)
4444
- [`<Cards>`](#cards)
4545
- [`<Properties>`](#properties-1)
46+
- [`<ComparisonTable>`](#comparisontable)
4647
- [`<Include />`](#include-)
4748
- [`<Typedoc />`](#typedoc-)
4849
- [`<If />`](#if-)
@@ -1256,6 +1257,73 @@ Fallback markup to render while Clerk is loading. Default: `null`
12561257
12571258
</details>
12581259
1260+
### `<ComparisonTable>`
1261+
1262+
The `<ComparisonTable>` component is used to create feature comparison tables with styled checkmarks, X marks, and section headers. The table header stays sticky when scrolling the page.
1263+
1264+
#### Related Components
1265+
1266+
| Component | Description |
1267+
| ------------------------ | -------------------------------------------------------------------- |
1268+
| `<ComparisonTable>` | Wrapper component for the comparison table with sticky header |
1269+
| `<CompareSection>` | Creates a section header row that spans all columns |
1270+
| `<CompareYes />` | Displays a green checkmark (✓). Use `inline` prop for inline display |
1271+
| `<CompareNo />` | Displays a red X (✗). Use `inline` prop for inline display |
1272+
| `<ComparePartial>` | Displays orange text. Defaults to "◐", accepts custom children |
1273+
| `<CompareNotApplicable>` | Displays gray text. Defaults to "—", accepts custom children |
1274+
1275+
#### Example
1276+
1277+
```mdx
1278+
<ComparisonTable>
1279+
<thead>
1280+
<tr>
1281+
<th>Feature</th>
1282+
<th>Basic</th>
1283+
<th>Pro</th>
1284+
</tr>
1285+
</thead>
1286+
<tbody>
1287+
<CompareSection>Authentication</CompareSection>
1288+
<tr>
1289+
<td>Email/Password</td>
1290+
<td>
1291+
<CompareYes />
1292+
</td>
1293+
<td>
1294+
<CompareYes />
1295+
</td>
1296+
</tr>
1297+
<tr>
1298+
<td>Social Login</td>
1299+
<td>
1300+
<CompareNo />
1301+
</td>
1302+
<td>
1303+
<CompareYes />
1304+
</td>
1305+
</tr>
1306+
<tr>
1307+
<td>MFA</td>
1308+
<td>
1309+
<ComparePartial>Limited</ComparePartial>
1310+
</td>
1311+
<td>
1312+
<CompareYes />
1313+
</td>
1314+
</tr>
1315+
</tbody>
1316+
</ComparisonTable>
1317+
```
1318+
1319+
#### Inline Usage
1320+
1321+
Use the `inline` prop on `<CompareYes />` and `<CompareNo />` when you need them inline with text:
1322+
1323+
```mdx
1324+
The feature was removed (was <CompareYes inline />, now <CompareNo inline />).
1325+
```
1326+
12591327
### `<Include />`
12601328
12611329
The `<Include />` component can be used to inject the contents of another MDX file. We like to use this component to include partial files that are used in multiple pages. This way, you write the content once and only have to maintain it in one place.
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
> [!IMPORTANT]
2+
> You can perform up to **5 user impersonations per month for free**. To increase this limit, refer to the [pricing page](/pricing){{ target: _blank }}.

docs/_tooltips/global.mdx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
A generic feature that controls the top-level permissions of a user

docs/_tooltips/mru.mdx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
A **Monthly Retained User (MRU)** is a user who visits your app in a given month at least **one day after signing up**. This free day avoids unwelcome fees from users who don't activate.

docs/guides/billing/default-plans.mdx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,15 +9,15 @@ When Billing is enabled, Clerk automatically assigns the free Plan to every new
99

1010
Users are moved to the free Plan when they:
1111

12-
- Downgrade from a paid subscription
13-
- Stop paying for a paid subscription
14-
- Cancel a paid subscription
12+
- Downgrade from a paid Subscription
13+
- Stop paying for a paid Subscription
14+
- Cancel a paid Subscription
1515

1616
## Can I update it?
1717

1818
You can update the name, slug, and public visibility.
1919

20-
Changing public visibility doesn't change the free subscription functionality; it just hides it from the pricing table.
20+
Changing public visibility doesn't change the free Subscription functionality; it just hides it from the pricing table.
2121

2222
## Is it possible to change the default Plan?
2323

docs/guides/billing/free-trials.mdx

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ To enable free trials for your Plans:
1919

2020
### Starting a trial
2121

22-
Only users who have never paid for a subscription and have never used a free trial can start a free trial.
22+
Only users who have never paid for a Subscription and have never used a free trial can start a free trial.
2323

2424
A credit card is required to start a free trial. This helps prevent abuse and ensures a smooth transition to paid service when the trial ends.
2525

@@ -29,9 +29,9 @@ Users get access to the Plan's paid Features for the configured number of days.
2929

3030
### When the trial ends
3131

32-
If the user didn't cancel their subscription during the trial, they are charged using their default payment method on file. This may be a different payment method than the one used during checkout when the trial started.
32+
If the user didn't cancel their Subscription during the trial, they are charged using their default payment method on file. This may be a different payment method than the one used during checkout when the trial started.
3333

34-
If the user cancels their subscription during the trial, they lose access at the end of the trial and are moved back to the free plan. They are not charged.
34+
If the user cancels their Subscription during the trial, they lose access at the end of the trial and are moved back to the free Plan. They are not charged.
3535

3636
Both you and your users will receive notifications when a trial is about to expire:
3737

@@ -50,8 +50,8 @@ You can manually change the duration of a user's trial:
5050

5151
You can only manage the trial of a user while the trial is active. Once a trial ends, you can no longer extend or cancel it.
5252

53-
To manage a trial for a subscription:
53+
To manage a trial for a Subscription:
5454

55-
1. Navigate to the [**Subscriptions**](https://dashboard.clerk.com/~/billing/subscriptions) page in the Clerk Dashboard.
56-
1. Select the subscription with the trial you want to manage.
55+
1. Navigate to the [**Billing**](https://dashboard.clerk.com/~/billing) page in the Clerk Dashboard.
56+
1. Select the user whose trial you want to manage.
5757
1. Under **Subscriptions**, select the **...** menu to see the available actions for managing the trial.

docs/guides/billing/overview.mdx

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ description: Clerk Billing is a feature that allows you to create and manage Pla
55

66
<Include src="_partials/billing/billing-experimental" />
77

8-
Clerk Billing allows your customers to purchase recurring subscriptions to your application. To get started, **choose one or combine both of the following** business models depending on your application's needs.
8+
Clerk Billing allows your customers to purchase recurring Subscriptions to your application. To get started, **choose one or combine both of the following** business models depending on your application's needs.
99

1010
<Cards>
1111
- [Billing for B2C SaaS](/docs/guides/billing/for-b2c)
@@ -19,7 +19,7 @@ Clerk Billing allows your customers to purchase recurring subscriptions to your
1919
---
2020

2121
- [Webhooks](/docs/guides/development/webhooks/billing)
22-
- To track subscription lifecycles and monitor payment attempts
22+
- To track Subscription lifecycles and monitor payment attempts
2323

2424
---
2525

@@ -33,9 +33,9 @@ Clerk Billing allows your customers to purchase recurring subscriptions to your
3333

3434
Yes, you can. However, it must not already be linked to another platform.
3535

36-
### Can I see subscriptions in my Stripe account?
36+
### Can I see Subscriptions in my Stripe account?
3737

38-
Clerk Billing only uses Stripe for payment processing. You can see payment and customer information in Stripe. However, Clerk Billing is a separate product from Stripe Billing; plans and subscriptions made in Clerk are not synced to Stripe.
38+
Clerk Billing only uses Stripe for payment processing. You can see payment and customer information in Stripe. However, Clerk Billing is a separate product from Stripe Billing; Plans and Subscriptions made in Clerk are not synced to Stripe.
3939

4040
### Can I use the same Stripe account for both dev and prod environments?
4141

@@ -61,15 +61,15 @@ Clerk Billing does not currently support custom pricing plans, though we plan to
6161

6262
Yes. Plan upgrades will take effect immediately, while downgrades take effect at the end of the current billing cycle.
6363

64-
### Does Clerk Billing support annual subscriptions?
64+
### Does Clerk Billing support annual Subscriptions?
6565

6666
Yes, you can offer subscribers the option to pay annually, at a discounted monthly price. Annual pricing for your plans can be configured from the [**Subscription plans**](https://dashboard.clerk.com/~/billing/plans) page in the Clerk Dashboard. Customers can choose between monthly or annual billing when subscribing.
6767

6868
### How does Clerk handle taxes and VAT for international billing?
6969

7070
Clerk Billing does not currently support tax or VAT, but these are planned for future releases.
7171

72-
### How can I test failure scenarios like expired cards or canceled subscriptions?
72+
### How can I test failure scenarios like expired cards or canceled Subscriptions?
7373

7474
You can simulate failures in Stripe test mode using test cards that trigger specific behaviors. See [Stripe Testing](https://docs.stripe.com/testing){{ rel: 'noopener noreferrer' }} for a list of test cards and behaviors.
7575

0 commit comments

Comments
 (0)