@whop/elements 1.0.0-beta.1 → 1.0.0-beta.3

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/websites.d.cts CHANGED
@@ -16,12 +16,12 @@ export interface WebsitesOptions {
16
16
  */
17
17
  windowDays?: number;
18
18
  /**
19
- * List websites built on whop.app from the moment they exist, with zeros until traffic arrives. Turn off to show only domains the pixel reports. @default true
19
+ * List websites built on whop.site from the moment they exist, with zeros until traffic arrives. Turn off to show only domains the pixel reports. @default true
20
20
  * @default true
21
21
  */
22
22
  includeApps?: boolean;
23
23
  /**
24
- * Websites you have just added that are not live yet — `{ domain, kind }`, where `kind` is `deploy` for a whop.app site waiting on its first deploy or `events` for a site waiting on its first pixel events. They render as waiting rows so a site never looks lost right after setup, and the table polls while any is outstanding. Sites the mounted `pixel-setup` wizard proves live are added for you, kept across a reload, and are NOT your job — this is for the waits the handle cannot see for itself, above all a whop.app site you just created, which no element here reports. Entries you add are yours to remove: a row stops being drawn once its domain reaches the table, but the list itself only changes when you change it, so drop an entry when `websitesLoaded` names its domain and give the rest a timeout of your own.
24
+ * Websites you have just added that are not live yet — `{ domain, kind }`, where `kind` is `deploy` for a site on whop.site waiting on its first deploy or `events` for a site waiting on its first pixel events. They render as waiting rows so a site never looks lost right after setup, and the table polls while any is outstanding. Sites the mounted `pixel-setup` wizard proves live are added for you, kept across a reload, and are NOT your job — this is for the waits the handle cannot see for itself, above all a site on whop.site you just created, which no element here reports. Entries you add are yours to remove: a row stops being drawn once its domain reaches the table, but the list itself only changes when you change it, so drop an entry when `websitesLoaded` names its domain and give the rest a timeout of your own.
25
25
  * @default []
26
26
  */
27
27
  pendingWebsites?: PendingWebsite[];
@@ -31,12 +31,12 @@ export interface WebsitesOptions {
31
31
  */
32
32
  showVerify?: boolean;
33
33
  /**
34
- * Add a settings button to whop.app rows. The element only reports the press through `onSettingsRequested` — the editing surface is yours.
34
+ * Add a settings button to whop.site rows. The element only reports the press through `onSettingsRequested` — the editing surface is yours.
35
35
  * @default false
36
36
  */
37
37
  showSettings?: boolean;
38
38
  /**
39
- * Add an edit button to whop.app rows, styled as the row’s primary action. The element only reports the press through `onEditRequested` — the editing surface is yours.
39
+ * Add an edit button to whop.site rows, styled as the row’s primary action. The element only reports the press through `onEditRequested` — the editing surface is yours.
40
40
  * @default false
41
41
  */
42
42
  showEdit?: boolean;
@@ -51,7 +51,7 @@ export interface WebsitesOptions {
51
51
  */
52
52
  verifyStatus?: "idle" | "waiting" | "connected" | "not-detected" | "blocked";
53
53
  /**
54
- * A scoped token for the reads — stats need `stats:read`, and the whop.app website list reads apps (rows degrade to traffic-only if the token can’t). Mint it on your server with `POST /api/v1/access_tokens` and set a fresh one before it expires. `pixel-setup` is the one child this is not projected into — it authenticates its own scans from its own `accessToken` — so mint a single token carrying both sets of scopes and pass that same string to both, rather than one token per element. Omitted, the reads carry the viewer’s own session, which only answers same-origin.
54
+ * A scoped token for the reads — stats need `stats:read`, and the whop.site website list reads apps (rows degrade to traffic-only if the token can’t). Mint it on your server with `POST /api/v1/access_tokens` and set a fresh one before it expires. `pixel-setup` is the one child this is not projected into — it authenticates its own scans from its own `accessToken` — so mint a single token carrying both sets of scopes and pass that same string to both, rather than one token per element. Omitted, the reads carry the viewer’s own session, which only answers same-origin.
55
55
  */
56
56
  accessToken?: string;
57
57
  /**
@@ -124,11 +124,11 @@ export interface WebsitesElementCreateOptions {
124
124
  */
125
125
  onVerifyRequested?: ((payload: { target: string; url: string; }) => void);
126
126
  /**
127
- * The settings button on a whop.app row was pressed. The element only reports the click — open your own editing surface for the app.
127
+ * The settings button on a whop.site row was pressed. The element only reports the click — open your own editing surface for the app.
128
128
  */
129
129
  onSettingsRequested?: ((payload: { appId: string; route: string; domain: string; }) => void);
130
130
  /**
131
- * The edit button on a whop.app row was pressed. The element only reports the click — open your own editing surface for the app.
131
+ * The edit button on a whop.site row was pressed. The element only reports the click — open your own editing surface for the app.
132
132
  */
133
133
  onEditRequested?: ((payload: { appId: string; route: string; domain: string; }) => void);
134
134
  /**
@@ -156,7 +156,7 @@ export interface PixelSetupElementProps {
156
156
  */
157
157
  accountId?: string;
158
158
  /**
159
- * A scoped token for the scans and the developer invite. The scans need `company:basic:read`; “Invite a developer” additionally needs `authorized_user:create`, and the event presets read the account with `company:balance:read` (without it the wizard still works, on a generic preset list). Mint it on your server with `POST /api/v1/access_tokens` and set a fresh one before it expires. Another element that opens this wizard inside itself — the ads `campaign-creator` does — runs these calls on its own token, so add these scopes to that one token rather than minting a second: this element has no way to read a credential you set elsewhere. Omitted, the calls carry the viewer’s own session, which only answers same-origin.
159
+ * A scoped token for the scans and the developer invite. The scans need `company:basic:read`; “Invite a developer” additionally needs `authorized_user:create`, and the event presets read the account with `company:balance:read` (without it the wizard still works, on a generic preset list). When no `destinationUrl` is passed, the empty URL field also suggests pages from the account’s ads and pixel traffic — those reads need `ad_campaign:basic:read` and `stats:read`, and without them the field is simply bare. Mint it on your server with `POST /api/v1/access_tokens` and set a fresh one before it expires. Another element that opens this wizard inside itself — the ads `campaign-creator` does — runs these calls on its own token, so add these scopes to that one token rather than minting a second: this element has no way to read a credential you set elsewhere. Omitted, the calls carry the viewer’s own session, which only answers same-origin.
160
160
  */
161
161
  accessToken?: string;
162
162
  /**
@@ -194,6 +194,11 @@ export interface PixelSetupElementProps {
194
194
  * @default true
195
195
  */
196
196
  showOptimizePrompt?: boolean;
197
+ /**
198
+ * Lead with the page check instead of the install instructions: the URL field (and its suggestions) sits at the top, the install paths fold under a "Pixel not installed yet?" toggle, and the header reads "Verify your pixel". For an account owner who already has a pixel and is here to find out why nothing is being attributed. Pair it with `showIntro: false`.
199
+ * @default false
200
+ */
201
+ verifyFirst?: boolean;
197
202
  }
198
203
 
199
204
  /**
@@ -231,7 +236,7 @@ export interface PixelSetupElementCreateOptions {
231
236
  */
232
237
  accountId?: string;
233
238
  /**
234
- * A scoped token for the scans and the developer invite. The scans need `company:basic:read`; “Invite a developer” additionally needs `authorized_user:create`, and the event presets read the account with `company:balance:read` (without it the wizard still works, on a generic preset list). Mint it on your server with `POST /api/v1/access_tokens` and set a fresh one before it expires. Another element that opens this wizard inside itself — the ads `campaign-creator` does — runs these calls on its own token, so add these scopes to that one token rather than minting a second: this element has no way to read a credential you set elsewhere. Omitted, the calls carry the viewer’s own session, which only answers same-origin.
239
+ * A scoped token for the scans and the developer invite. The scans need `company:basic:read`; “Invite a developer” additionally needs `authorized_user:create`, and the event presets read the account with `company:balance:read` (without it the wizard still works, on a generic preset list). When no `destinationUrl` is passed, the empty URL field also suggests pages from the account’s ads and pixel traffic — those reads need `ad_campaign:basic:read` and `stats:read`, and without them the field is simply bare. Mint it on your server with `POST /api/v1/access_tokens` and set a fresh one before it expires. Another element that opens this wizard inside itself — the ads `campaign-creator` does — runs these calls on its own token, so add these scopes to that one token rather than minting a second: this element has no way to read a credential you set elsewhere. Omitted, the calls carry the viewer’s own session, which only answers same-origin.
235
240
  */
236
241
  accessToken?: string;
237
242
  /**
@@ -269,6 +274,11 @@ export interface PixelSetupElementCreateOptions {
269
274
  * @default true
270
275
  */
271
276
  showOptimizePrompt?: boolean;
277
+ /**
278
+ * Lead with the page check instead of the install instructions: the URL field (and its suggestions) sits at the top, the install paths fold under a "Pixel not installed yet?" toggle, and the header reads "Verify your pixel". For an account owner who already has a pixel and is here to find out why nothing is being attributed. Pair it with `showIntro: false`.
279
+ * @default false
280
+ */
281
+ verifyFirst?: boolean;
272
282
  /**
273
283
  * The account owner set or cleared a redirect URL in the wizard. Persist it and pass it back as `redirectUrl` next time.
274
284
  */
@@ -281,6 +291,22 @@ export interface PixelSetupElementCreateOptions {
281
291
  * Done was pressed. Re-check the page yourself — this says the wizard finished, not that your requirements are met.
282
292
  */
283
293
  onFinished?: ((payload: Record<string, never>) => void);
294
+ /**
295
+ * The account owner named the page to check from inside the wizard — typed by hand, or picked from the suggested pages. Only reachable when no destination was supplied at mount.
296
+ */
297
+ onUrlSubmitted?: ((payload: { url: string; source: "typed" | "suggested"; }) => void);
298
+ /**
299
+ * "Verify live" was pressed. `popupBlocked` means the browser refused the funnel window, so the walk never started.
300
+ */
301
+ onVerifyLaunched?: ((payload: { url: string; popupBlocked: boolean; }) => void);
302
+ /**
303
+ * The funnel page pinged the wizard back — the pixel is loaded there and the walk is live.
304
+ */
305
+ onVerifyConnected?: ((payload: { url: string; }) => void);
306
+ /**
307
+ * The verify-live walk finished. `ok` means no tracking gaps; otherwise `gaps` carries the gap codes the walk found.
308
+ */
309
+ onVerdict?: ((payload: { url: string; ok: boolean; gaps: string[]; eventsCaptured: number; }) => void);
284
310
  /**
285
311
  * The account owner walked their funnel with "Verify live" and this event fired — proof it is wired where a server-side scan cannot reach.
286
312
  */
@@ -328,7 +354,7 @@ export interface PixelSetupElementOverlayHandle {
328
354
  */
329
355
  export interface WebsitesHandle {
330
356
  /**
331
- * An account's websites in one table: every site built on whop.app — listed from the moment it exists, zeros until traffic arrives — merged by hostname with every domain the Whop Pixel reports. Rows for the whop.app sites carry a Whop mark, so the two sources stay apart even when both have traffic. Each row shows a page-view trend, unique visitors, page views, attributed sales, USD revenue, and the last day an event arrived. Expanding a domain loads its most-viewed pages, and each page-view figure opens the breakdown of which events made it up. Set `showVerify` to add a per-row button that asks the page hosting this element to open the site and confirm the pixel is firing; set `showSettings` to add a settings button on whop.app rows that reports the click through `onSettingsRequested`, and `showEdit` to add a primary edit button reporting through `onEditRequested` — your page owns the actual editing.
357
+ * An account's websites in one table: every site built on whop.site — listed from the moment it exists, zeros until traffic arrives — merged by hostname with every domain the Whop Pixel reports. Rows for the whop.site ones carry a Whop mark, so the two sources stay apart even when both have traffic. Each row shows a page-view trend, unique visitors, page views, attributed sales, USD revenue, and the last day an event arrived. Expanding a domain loads its most-viewed pages, and each page-view figure opens the breakdown of which events made it up. Set `showVerify` to add a per-row button that asks the page hosting this element to open the site and confirm the pixel is firing; set `showSettings` to add a settings button on whop.site rows that reports the click through `onSettingsRequested`, and `showEdit` to add a primary edit button reporting through `onEditRequested` — your page owns the actual editing.
332
358
  */
333
359
  create(name: "websites", options?: WebsitesElementCreateOptions): WebsitesElementHandle;
334
360
  /**
package/websites.d.ts CHANGED
@@ -16,12 +16,12 @@ export interface WebsitesOptions {
16
16
  */
17
17
  windowDays?: number;
18
18
  /**
19
- * List websites built on whop.app from the moment they exist, with zeros until traffic arrives. Turn off to show only domains the pixel reports. @default true
19
+ * List websites built on whop.site from the moment they exist, with zeros until traffic arrives. Turn off to show only domains the pixel reports. @default true
20
20
  * @default true
21
21
  */
22
22
  includeApps?: boolean;
23
23
  /**
24
- * Websites you have just added that are not live yet — `{ domain, kind }`, where `kind` is `deploy` for a whop.app site waiting on its first deploy or `events` for a site waiting on its first pixel events. They render as waiting rows so a site never looks lost right after setup, and the table polls while any is outstanding. Sites the mounted `pixel-setup` wizard proves live are added for you, kept across a reload, and are NOT your job — this is for the waits the handle cannot see for itself, above all a whop.app site you just created, which no element here reports. Entries you add are yours to remove: a row stops being drawn once its domain reaches the table, but the list itself only changes when you change it, so drop an entry when `websitesLoaded` names its domain and give the rest a timeout of your own.
24
+ * Websites you have just added that are not live yet — `{ domain, kind }`, where `kind` is `deploy` for a site on whop.site waiting on its first deploy or `events` for a site waiting on its first pixel events. They render as waiting rows so a site never looks lost right after setup, and the table polls while any is outstanding. Sites the mounted `pixel-setup` wizard proves live are added for you, kept across a reload, and are NOT your job — this is for the waits the handle cannot see for itself, above all a site on whop.site you just created, which no element here reports. Entries you add are yours to remove: a row stops being drawn once its domain reaches the table, but the list itself only changes when you change it, so drop an entry when `websitesLoaded` names its domain and give the rest a timeout of your own.
25
25
  * @default []
26
26
  */
27
27
  pendingWebsites?: PendingWebsite[];
@@ -31,12 +31,12 @@ export interface WebsitesOptions {
31
31
  */
32
32
  showVerify?: boolean;
33
33
  /**
34
- * Add a settings button to whop.app rows. The element only reports the press through `onSettingsRequested` — the editing surface is yours.
34
+ * Add a settings button to whop.site rows. The element only reports the press through `onSettingsRequested` — the editing surface is yours.
35
35
  * @default false
36
36
  */
37
37
  showSettings?: boolean;
38
38
  /**
39
- * Add an edit button to whop.app rows, styled as the row’s primary action. The element only reports the press through `onEditRequested` — the editing surface is yours.
39
+ * Add an edit button to whop.site rows, styled as the row’s primary action. The element only reports the press through `onEditRequested` — the editing surface is yours.
40
40
  * @default false
41
41
  */
42
42
  showEdit?: boolean;
@@ -51,7 +51,7 @@ export interface WebsitesOptions {
51
51
  */
52
52
  verifyStatus?: "idle" | "waiting" | "connected" | "not-detected" | "blocked";
53
53
  /**
54
- * A scoped token for the reads — stats need `stats:read`, and the whop.app website list reads apps (rows degrade to traffic-only if the token can’t). Mint it on your server with `POST /api/v1/access_tokens` and set a fresh one before it expires. `pixel-setup` is the one child this is not projected into — it authenticates its own scans from its own `accessToken` — so mint a single token carrying both sets of scopes and pass that same string to both, rather than one token per element. Omitted, the reads carry the viewer’s own session, which only answers same-origin.
54
+ * A scoped token for the reads — stats need `stats:read`, and the whop.site website list reads apps (rows degrade to traffic-only if the token can’t). Mint it on your server with `POST /api/v1/access_tokens` and set a fresh one before it expires. `pixel-setup` is the one child this is not projected into — it authenticates its own scans from its own `accessToken` — so mint a single token carrying both sets of scopes and pass that same string to both, rather than one token per element. Omitted, the reads carry the viewer’s own session, which only answers same-origin.
55
55
  */
56
56
  accessToken?: string;
57
57
  /**
@@ -124,11 +124,11 @@ export interface WebsitesElementCreateOptions {
124
124
  */
125
125
  onVerifyRequested?: ((payload: { target: string; url: string; }) => void);
126
126
  /**
127
- * The settings button on a whop.app row was pressed. The element only reports the click — open your own editing surface for the app.
127
+ * The settings button on a whop.site row was pressed. The element only reports the click — open your own editing surface for the app.
128
128
  */
129
129
  onSettingsRequested?: ((payload: { appId: string; route: string; domain: string; }) => void);
130
130
  /**
131
- * The edit button on a whop.app row was pressed. The element only reports the click — open your own editing surface for the app.
131
+ * The edit button on a whop.site row was pressed. The element only reports the click — open your own editing surface for the app.
132
132
  */
133
133
  onEditRequested?: ((payload: { appId: string; route: string; domain: string; }) => void);
134
134
  /**
@@ -156,7 +156,7 @@ export interface PixelSetupElementProps {
156
156
  */
157
157
  accountId?: string;
158
158
  /**
159
- * A scoped token for the scans and the developer invite. The scans need `company:basic:read`; “Invite a developer” additionally needs `authorized_user:create`, and the event presets read the account with `company:balance:read` (without it the wizard still works, on a generic preset list). Mint it on your server with `POST /api/v1/access_tokens` and set a fresh one before it expires. Another element that opens this wizard inside itself — the ads `campaign-creator` does — runs these calls on its own token, so add these scopes to that one token rather than minting a second: this element has no way to read a credential you set elsewhere. Omitted, the calls carry the viewer’s own session, which only answers same-origin.
159
+ * A scoped token for the scans and the developer invite. The scans need `company:basic:read`; “Invite a developer” additionally needs `authorized_user:create`, and the event presets read the account with `company:balance:read` (without it the wizard still works, on a generic preset list). When no `destinationUrl` is passed, the empty URL field also suggests pages from the account’s ads and pixel traffic — those reads need `ad_campaign:basic:read` and `stats:read`, and without them the field is simply bare. Mint it on your server with `POST /api/v1/access_tokens` and set a fresh one before it expires. Another element that opens this wizard inside itself — the ads `campaign-creator` does — runs these calls on its own token, so add these scopes to that one token rather than minting a second: this element has no way to read a credential you set elsewhere. Omitted, the calls carry the viewer’s own session, which only answers same-origin.
160
160
  */
161
161
  accessToken?: string;
162
162
  /**
@@ -194,6 +194,11 @@ export interface PixelSetupElementProps {
194
194
  * @default true
195
195
  */
196
196
  showOptimizePrompt?: boolean;
197
+ /**
198
+ * Lead with the page check instead of the install instructions: the URL field (and its suggestions) sits at the top, the install paths fold under a "Pixel not installed yet?" toggle, and the header reads "Verify your pixel". For an account owner who already has a pixel and is here to find out why nothing is being attributed. Pair it with `showIntro: false`.
199
+ * @default false
200
+ */
201
+ verifyFirst?: boolean;
197
202
  }
198
203
 
199
204
  /**
@@ -231,7 +236,7 @@ export interface PixelSetupElementCreateOptions {
231
236
  */
232
237
  accountId?: string;
233
238
  /**
234
- * A scoped token for the scans and the developer invite. The scans need `company:basic:read`; “Invite a developer” additionally needs `authorized_user:create`, and the event presets read the account with `company:balance:read` (without it the wizard still works, on a generic preset list). Mint it on your server with `POST /api/v1/access_tokens` and set a fresh one before it expires. Another element that opens this wizard inside itself — the ads `campaign-creator` does — runs these calls on its own token, so add these scopes to that one token rather than minting a second: this element has no way to read a credential you set elsewhere. Omitted, the calls carry the viewer’s own session, which only answers same-origin.
239
+ * A scoped token for the scans and the developer invite. The scans need `company:basic:read`; “Invite a developer” additionally needs `authorized_user:create`, and the event presets read the account with `company:balance:read` (without it the wizard still works, on a generic preset list). When no `destinationUrl` is passed, the empty URL field also suggests pages from the account’s ads and pixel traffic — those reads need `ad_campaign:basic:read` and `stats:read`, and without them the field is simply bare. Mint it on your server with `POST /api/v1/access_tokens` and set a fresh one before it expires. Another element that opens this wizard inside itself — the ads `campaign-creator` does — runs these calls on its own token, so add these scopes to that one token rather than minting a second: this element has no way to read a credential you set elsewhere. Omitted, the calls carry the viewer’s own session, which only answers same-origin.
235
240
  */
236
241
  accessToken?: string;
237
242
  /**
@@ -269,6 +274,11 @@ export interface PixelSetupElementCreateOptions {
269
274
  * @default true
270
275
  */
271
276
  showOptimizePrompt?: boolean;
277
+ /**
278
+ * Lead with the page check instead of the install instructions: the URL field (and its suggestions) sits at the top, the install paths fold under a "Pixel not installed yet?" toggle, and the header reads "Verify your pixel". For an account owner who already has a pixel and is here to find out why nothing is being attributed. Pair it with `showIntro: false`.
279
+ * @default false
280
+ */
281
+ verifyFirst?: boolean;
272
282
  /**
273
283
  * The account owner set or cleared a redirect URL in the wizard. Persist it and pass it back as `redirectUrl` next time.
274
284
  */
@@ -281,6 +291,22 @@ export interface PixelSetupElementCreateOptions {
281
291
  * Done was pressed. Re-check the page yourself — this says the wizard finished, not that your requirements are met.
282
292
  */
283
293
  onFinished?: ((payload: Record<string, never>) => void);
294
+ /**
295
+ * The account owner named the page to check from inside the wizard — typed by hand, or picked from the suggested pages. Only reachable when no destination was supplied at mount.
296
+ */
297
+ onUrlSubmitted?: ((payload: { url: string; source: "typed" | "suggested"; }) => void);
298
+ /**
299
+ * "Verify live" was pressed. `popupBlocked` means the browser refused the funnel window, so the walk never started.
300
+ */
301
+ onVerifyLaunched?: ((payload: { url: string; popupBlocked: boolean; }) => void);
302
+ /**
303
+ * The funnel page pinged the wizard back — the pixel is loaded there and the walk is live.
304
+ */
305
+ onVerifyConnected?: ((payload: { url: string; }) => void);
306
+ /**
307
+ * The verify-live walk finished. `ok` means no tracking gaps; otherwise `gaps` carries the gap codes the walk found.
308
+ */
309
+ onVerdict?: ((payload: { url: string; ok: boolean; gaps: string[]; eventsCaptured: number; }) => void);
284
310
  /**
285
311
  * The account owner walked their funnel with "Verify live" and this event fired — proof it is wired where a server-side scan cannot reach.
286
312
  */
@@ -328,7 +354,7 @@ export interface PixelSetupElementOverlayHandle {
328
354
  */
329
355
  export interface WebsitesHandle {
330
356
  /**
331
- * An account's websites in one table: every site built on whop.app — listed from the moment it exists, zeros until traffic arrives — merged by hostname with every domain the Whop Pixel reports. Rows for the whop.app sites carry a Whop mark, so the two sources stay apart even when both have traffic. Each row shows a page-view trend, unique visitors, page views, attributed sales, USD revenue, and the last day an event arrived. Expanding a domain loads its most-viewed pages, and each page-view figure opens the breakdown of which events made it up. Set `showVerify` to add a per-row button that asks the page hosting this element to open the site and confirm the pixel is firing; set `showSettings` to add a settings button on whop.app rows that reports the click through `onSettingsRequested`, and `showEdit` to add a primary edit button reporting through `onEditRequested` — your page owns the actual editing.
357
+ * An account's websites in one table: every site built on whop.site — listed from the moment it exists, zeros until traffic arrives — merged by hostname with every domain the Whop Pixel reports. Rows for the whop.site ones carry a Whop mark, so the two sources stay apart even when both have traffic. Each row shows a page-view trend, unique visitors, page views, attributed sales, USD revenue, and the last day an event arrived. Expanding a domain loads its most-viewed pages, and each page-view figure opens the breakdown of which events made it up. Set `showVerify` to add a per-row button that asks the page hosting this element to open the site and confirm the pixel is firing; set `showSettings` to add a settings button on whop.site rows that reports the click through `onSettingsRequested`, and `showEdit` to add a primary edit button reporting through `onEditRequested` — your page owns the actual editing.
332
358
  */
333
359
  create(name: "websites", options?: WebsitesElementCreateOptions): WebsitesElementHandle;
334
360
  /**