From 27cbd6fcf69ea4190902229bba8ada35d3c8324a Mon Sep 17 00:00:00 2001 From: David Nguyen Date: Fri, 1 May 2026 15:46:23 +1000 Subject: [PATCH] feat: allow add myself feature --- packages/angular/src/create-envelope.ts | 6 ++ packages/angular/src/update-envelope.ts | 6 ++ packages/mitosis/src/create-envelope.lite.tsx | 5 ++ packages/mitosis/src/update-envelope.lite.tsx | 5 ++ packages/preact/src/create-envelope.tsx | 5 ++ packages/preact/src/update-envelope.tsx | 5 ++ packages/react/src/create-envelope.tsx | 5 ++ packages/react/src/update-envelope.tsx | 5 ++ packages/solid/src/create-envelope.tsx | 5 ++ packages/solid/src/update-envelope.tsx | 5 ++ packages/svelte/src/create-envelope.svelte | 6 ++ packages/svelte/src/update-envelope.svelte | 6 ++ packages/vue/src/create-envelope.vue | 5 ++ packages/vue/src/update-envelope.vue | 5 ++ .../components/embeddings/create-envelope.tsx | 54 ++++++++++++++++++ .../components/embeddings/update-envelope.tsx | 55 +++++++++++++++++++ 16 files changed, 183 insertions(+) diff --git a/packages/angular/src/create-envelope.ts b/packages/angular/src/create-envelope.ts index 2c63cf2..627d906 100644 --- a/packages/angular/src/create-envelope.ts +++ b/packages/angular/src/create-envelope.ts @@ -8,6 +8,10 @@ export type EmbedCreateEnvelopeProps = { host?: string; presignToken: string; externalId?: string; + user?: { + name?: string; + email?: string; + }; type: "DOCUMENT" | "TEMPLATE"; folderId?: string; css?: string | undefined; @@ -43,6 +47,7 @@ import type { DeepPartial, EnvelopeEditorSettings } from "./features-type"; export default class EmbedCreateEnvelope { @Input() host!: EmbedCreateEnvelopeProps["host"]; @Input() externalId!: EmbedCreateEnvelopeProps["externalId"]; + @Input() user!: EmbedCreateEnvelopeProps["user"]; @Input() type!: EmbedCreateEnvelopeProps["type"]; @Input() folderId!: EmbedCreateEnvelopeProps["folderId"]; @Input() features!: EmbedCreateEnvelopeProps["features"]; @@ -62,6 +67,7 @@ export default class EmbedCreateEnvelope { encodeURIComponent( JSON.stringify({ externalId: this.externalId, + user: this.user, type: this.type, folderId: this.folderId, features: this.features, diff --git a/packages/angular/src/update-envelope.ts b/packages/angular/src/update-envelope.ts index 78ce0a6..591e580 100644 --- a/packages/angular/src/update-envelope.ts +++ b/packages/angular/src/update-envelope.ts @@ -8,6 +8,10 @@ export type EmbedUpdateEnvelopeProps = { host?: string; presignToken: string; externalId?: string; + user?: { + name?: string; + email?: string; + }; envelopeId: string; css?: string | undefined; cssVars?: (CssVars & Record) | undefined; @@ -42,6 +46,7 @@ import type { DeepPartial, EnvelopeEditorSettings } from "./features-type"; export default class EmbedUpdateEnvelope { @Input() host!: EmbedUpdateEnvelopeProps["host"]; @Input() externalId!: EmbedUpdateEnvelopeProps["externalId"]; + @Input() user!: EmbedUpdateEnvelopeProps["user"]; @Input() features!: EmbedUpdateEnvelopeProps["features"]; @Input() css!: EmbedUpdateEnvelopeProps["css"]; @Input() cssVars!: EmbedUpdateEnvelopeProps["cssVars"]; @@ -60,6 +65,7 @@ export default class EmbedUpdateEnvelope { encodeURIComponent( JSON.stringify({ externalId: this.externalId, + user: this.user, features: this.features, css: this.css, cssVars: this.cssVars, diff --git a/packages/mitosis/src/create-envelope.lite.tsx b/packages/mitosis/src/create-envelope.lite.tsx index ac22bc9..1217b87 100644 --- a/packages/mitosis/src/create-envelope.lite.tsx +++ b/packages/mitosis/src/create-envelope.lite.tsx @@ -8,6 +8,10 @@ export type EmbedCreateEnvelopeProps = { host?: string; presignToken: string; externalId?: string; + user?: { + name?: string; + email?: string; + }; type: 'DOCUMENT' | 'TEMPLATE'; folderId?: string; @@ -35,6 +39,7 @@ export default function EmbedCreateEnvelope(props: EmbedCreateEnvelopeProps) { encodeURIComponent( JSON.stringify({ externalId: props.externalId, + user: props.user, type: props.type, folderId: props.folderId, features: props.features, diff --git a/packages/mitosis/src/update-envelope.lite.tsx b/packages/mitosis/src/update-envelope.lite.tsx index b12ddc9..35bbdf0 100644 --- a/packages/mitosis/src/update-envelope.lite.tsx +++ b/packages/mitosis/src/update-envelope.lite.tsx @@ -8,6 +8,10 @@ export type EmbedUpdateEnvelopeProps = { host?: string; presignToken: string; externalId?: string; + user?: { + name?: string; + email?: string; + }; envelopeId: string; @@ -34,6 +38,7 @@ export default function EmbedUpdateEnvelope(props: EmbedUpdateEnvelopeProps) { encodeURIComponent( JSON.stringify({ externalId: props.externalId, + user: props.user, features: props.features, css: props.css, cssVars: props.cssVars, diff --git a/packages/preact/src/create-envelope.tsx b/packages/preact/src/create-envelope.tsx index 54a657e..17fb230 100644 --- a/packages/preact/src/create-envelope.tsx +++ b/packages/preact/src/create-envelope.tsx @@ -7,6 +7,10 @@ export type EmbedCreateEnvelopeProps = { host?: string; presignToken: string; externalId?: string; + user?: { + name?: string; + email?: string; + }; type: "DOCUMENT" | "TEMPLATE"; folderId?: string; css?: string | undefined; @@ -31,6 +35,7 @@ function EmbedCreateEnvelope(props: EmbedCreateEnvelopeProps) { encodeURIComponent( JSON.stringify({ externalId: props.externalId, + user: props.user, type: props.type, folderId: props.folderId, features: props.features, diff --git a/packages/preact/src/update-envelope.tsx b/packages/preact/src/update-envelope.tsx index 4889842..54fd6e5 100644 --- a/packages/preact/src/update-envelope.tsx +++ b/packages/preact/src/update-envelope.tsx @@ -7,6 +7,10 @@ export type EmbedUpdateEnvelopeProps = { host?: string; presignToken: string; externalId?: string; + user?: { + name?: string; + email?: string; + }; envelopeId: string; css?: string | undefined; cssVars?: (CssVars & Record) | undefined; @@ -30,6 +34,7 @@ function EmbedUpdateEnvelope(props: EmbedUpdateEnvelopeProps) { encodeURIComponent( JSON.stringify({ externalId: props.externalId, + user: props.user, features: props.features, css: props.css, cssVars: props.cssVars, diff --git a/packages/react/src/create-envelope.tsx b/packages/react/src/create-envelope.tsx index 7282768..25aadda 100644 --- a/packages/react/src/create-envelope.tsx +++ b/packages/react/src/create-envelope.tsx @@ -7,6 +7,10 @@ export type EmbedCreateEnvelopeProps = { host?: string; presignToken: string; externalId?: string; + user?: { + name?: string; + email?: string; + }; type: "DOCUMENT" | "TEMPLATE"; folderId?: string; css?: string | undefined; @@ -31,6 +35,7 @@ function EmbedCreateEnvelope(props: EmbedCreateEnvelopeProps) { encodeURIComponent( JSON.stringify({ externalId: props.externalId, + user: props.user, type: props.type, folderId: props.folderId, features: props.features, diff --git a/packages/react/src/update-envelope.tsx b/packages/react/src/update-envelope.tsx index efc4c27..3138278 100644 --- a/packages/react/src/update-envelope.tsx +++ b/packages/react/src/update-envelope.tsx @@ -7,6 +7,10 @@ export type EmbedUpdateEnvelopeProps = { host?: string; presignToken: string; externalId?: string; + user?: { + name?: string; + email?: string; + }; envelopeId: string; css?: string | undefined; cssVars?: (CssVars & Record) | undefined; @@ -30,6 +34,7 @@ function EmbedUpdateEnvelope(props: EmbedUpdateEnvelopeProps) { encodeURIComponent( JSON.stringify({ externalId: props.externalId, + user: props.user, features: props.features, css: props.css, cssVars: props.cssVars, diff --git a/packages/solid/src/create-envelope.tsx b/packages/solid/src/create-envelope.tsx index f6b32b6..8cb8782 100644 --- a/packages/solid/src/create-envelope.tsx +++ b/packages/solid/src/create-envelope.tsx @@ -5,6 +5,10 @@ export type EmbedCreateEnvelopeProps = { host?: string; presignToken: string; externalId?: string; + user?: { + name?: string; + email?: string; + }; type: "DOCUMENT" | "TEMPLATE"; folderId?: string; css?: string | undefined; @@ -29,6 +33,7 @@ function EmbedCreateEnvelope(props: EmbedCreateEnvelopeProps) { encodeURIComponent( JSON.stringify({ externalId: props.externalId, + user: props.user, type: props.type, folderId: props.folderId, features: props.features, diff --git a/packages/solid/src/update-envelope.tsx b/packages/solid/src/update-envelope.tsx index 47d885a..bf47c8b 100644 --- a/packages/solid/src/update-envelope.tsx +++ b/packages/solid/src/update-envelope.tsx @@ -5,6 +5,10 @@ export type EmbedUpdateEnvelopeProps = { host?: string; presignToken: string; externalId?: string; + user?: { + name?: string; + email?: string; + }; envelopeId: string; css?: string | undefined; cssVars?: (CssVars & Record) | undefined; @@ -28,6 +32,7 @@ function EmbedUpdateEnvelope(props: EmbedUpdateEnvelopeProps) { encodeURIComponent( JSON.stringify({ externalId: props.externalId, + user: props.user, features: props.features, css: props.css, cssVars: props.cssVars, diff --git a/packages/svelte/src/create-envelope.svelte b/packages/svelte/src/create-envelope.svelte index 3296384..0154be0 100644 --- a/packages/svelte/src/create-envelope.svelte +++ b/packages/svelte/src/create-envelope.svelte @@ -4,6 +4,10 @@ host?: string; presignToken: string; externalId?: string; + user?: { + name?: string; + email?: string; + }; type: "DOCUMENT" | "TEMPLATE"; folderId?: string; css?: string | undefined; @@ -27,6 +31,7 @@ export let host: EmbedCreateEnvelopeProps["host"] = undefined; export let externalId: EmbedCreateEnvelopeProps["externalId"] = undefined; + export let user: EmbedCreateEnvelopeProps["user"] = undefined; export let type: EmbedCreateEnvelopeProps["type"]; export let folderId: EmbedCreateEnvelopeProps["folderId"] = undefined; export let features: EmbedCreateEnvelopeProps["features"] = undefined; @@ -58,6 +63,7 @@ encodeURIComponent( JSON.stringify({ externalId: externalId, + user: user, type: type, folderId: folderId, features: features, diff --git a/packages/svelte/src/update-envelope.svelte b/packages/svelte/src/update-envelope.svelte index e7a8919..dbb6727 100644 --- a/packages/svelte/src/update-envelope.svelte +++ b/packages/svelte/src/update-envelope.svelte @@ -4,6 +4,10 @@ host?: string; presignToken: string; externalId?: string; + user?: { + name?: string; + email?: string; + }; envelopeId: string; css?: string | undefined; cssVars?: (CssVars & Record) | undefined; @@ -26,6 +30,7 @@ export let host: EmbedUpdateEnvelopeProps["host"] = undefined; export let externalId: EmbedUpdateEnvelopeProps["externalId"] = undefined; + export let user: EmbedUpdateEnvelopeProps["user"] = undefined; export let features: EmbedUpdateEnvelopeProps["features"] = undefined; export let css: EmbedUpdateEnvelopeProps["css"] = undefined; export let cssVars: EmbedUpdateEnvelopeProps["cssVars"] = undefined; @@ -56,6 +61,7 @@ encodeURIComponent( JSON.stringify({ externalId: externalId, + user: user, features: features, css: css, cssVars: cssVars, diff --git a/packages/vue/src/create-envelope.vue b/packages/vue/src/create-envelope.vue index 9a3ec78..7ffb499 100644 --- a/packages/vue/src/create-envelope.vue +++ b/packages/vue/src/create-envelope.vue @@ -13,6 +13,10 @@ export type EmbedCreateEnvelopeProps = { host?: string; presignToken: string; externalId?: string; + user?: { + name?: string; + email?: string; + }; type: "DOCUMENT" | "TEMPLATE"; folderId?: string; css?: string | undefined; @@ -43,6 +47,7 @@ const src = computed(() => { encodeURIComponent( JSON.stringify({ externalId: props.externalId, + user: props.user, type: props.type, folderId: props.folderId, features: props.features, diff --git a/packages/vue/src/update-envelope.vue b/packages/vue/src/update-envelope.vue index 0415524..66c6f46 100644 --- a/packages/vue/src/update-envelope.vue +++ b/packages/vue/src/update-envelope.vue @@ -13,6 +13,10 @@ export type EmbedUpdateEnvelopeProps = { host?: string; presignToken: string; externalId?: string; + user?: { + name?: string; + email?: string; + }; envelopeId: string; css?: string | undefined; cssVars?: (CssVars & Record) | undefined; @@ -42,6 +46,7 @@ const src = computed(() => { encodeURIComponent( JSON.stringify({ externalId: props.externalId, + user: props.user, features: props.features, css: props.css, cssVars: props.cssVars, diff --git a/playground/src/components/embeddings/create-envelope.tsx b/playground/src/components/embeddings/create-envelope.tsx index adc4ea8..afdc977 100644 --- a/playground/src/components/embeddings/create-envelope.tsx +++ b/playground/src/components/embeddings/create-envelope.tsx @@ -37,6 +37,12 @@ const formSchema = z apiKey: z.string().optional(), presignToken: z.string().optional(), externalId: z.string().optional(), + user: z + .object({ + name: z.string().optional(), + email: z.string().email().optional(), + }) + .optional(), type: z.enum(['DOCUMENT', 'TEMPLATE']), folderId: z.string().optional(), features: EnvelopeFeaturesSchema, @@ -72,6 +78,10 @@ export default function CreateEnvelopeEmbedding() { apiKey: '', presignToken: '', externalId: '', + user: { + name: '', + email: undefined, + }, folderId: '', type: 'DOCUMENT', features: DEFAULT_ENVELOPE_FEATURES, @@ -337,6 +347,42 @@ export default function CreateEnvelopeEmbedding() { )} /> +
+ ( + + User Email (Optional) + + + + Email address to prefill for the user + + + )} + /> + + ( + + User Name (Optional) + + + + Name to prefill for the user + + + )} + /> +
{error && ( @@ -375,6 +421,14 @@ export default function CreateEnvelopeEmbedding() { host={host} presignToken={embedConfig.presignToken} externalId={embedConfig.externalId} + user={ + embedConfig.user?.email || embedConfig.user?.name + ? { + email: embedConfig.user.email || undefined, + name: embedConfig.user.name || undefined, + } + : undefined + } folderId={embedConfig.folderId || undefined} type={embedConfig.type} features={embedConfig.features} diff --git a/playground/src/components/embeddings/update-envelope.tsx b/playground/src/components/embeddings/update-envelope.tsx index 303b9a1..31d0fdf 100644 --- a/playground/src/components/embeddings/update-envelope.tsx +++ b/playground/src/components/embeddings/update-envelope.tsx @@ -31,6 +31,12 @@ const formSchema = z presignToken: z.string().optional(), envelopeId: z.string(), externalId: z.string().optional(), + user: z + .object({ + name: z.string().optional(), + email: z.string().email().optional(), + }) + .optional(), features: EnvelopeFeaturesSchema, darkModeDisabled: z.boolean().optional(), language: z.string().optional(), @@ -65,6 +71,10 @@ export default function UpdateEnvelopeEmbedding() { presignToken: '', envelopeId: '', externalId: '', + user: { + name: '', + email: undefined, + }, features: DEFAULT_ENVELOPE_FEATURES, darkModeDisabled: false, language: '', @@ -300,6 +310,43 @@ export default function UpdateEnvelopeEmbedding() { )} /> +
+ ( + + User Email (Optional) + + + + Email address to prefill for the user + + + )} + /> + + ( + + User Name (Optional) + + + + Name to prefill for the user + + + )} + /> +
+ {error && ( @@ -339,6 +386,14 @@ export default function UpdateEnvelopeEmbedding() { envelopeId={embedConfig.envelopeId} presignToken={embedConfig.presignToken} externalId={embedConfig.externalId} + user={ + embedConfig.user?.email || embedConfig.user?.name + ? { + email: embedConfig.user.email || undefined, + name: embedConfig.user.name || undefined, + } + : undefined + } features={embedConfig.features} darkModeDisabled={embedConfig.darkModeDisabled} language={embedConfig.language || undefined}