veo-sdk 0.3.0 → 0.3.2
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/dist/builder-AGIBF67L.mjs +5 -0
- package/dist/{builder-UEGKG2UR.mjs.map → builder-AGIBF67L.mjs.map} +1 -1
- package/dist/builder.cjs +121 -34
- package/dist/builder.cjs.map +1 -1
- package/dist/builder.d.cts +23 -5
- package/dist/builder.d.ts +23 -5
- package/dist/builder.mjs +5 -5
- package/dist/{chunk-66UQ474G.mjs → chunk-7FVIFPGF.mjs} +108 -16
- package/dist/chunk-7FVIFPGF.mjs.map +1 -0
- package/dist/{chunk-CI7NWEH2.mjs → chunk-GHP7ZJCW.mjs} +21 -26
- package/dist/chunk-GHP7ZJCW.mjs.map +1 -0
- package/dist/chunk-PTG3BTJE.mjs +10 -0
- package/dist/chunk-PTG3BTJE.mjs.map +1 -0
- package/dist/{chunk-G5CKTGEG.mjs → chunk-R4E3LIDB.mjs} +3 -3
- package/dist/{chunk-G5CKTGEG.mjs.map → chunk-R4E3LIDB.mjs.map} +1 -1
- package/dist/index.cjs +133 -36
- package/dist/index.cjs.map +1 -1
- package/dist/index.mjs +6 -6
- package/dist/next.cjs.map +1 -1
- package/dist/next.mjs +1 -1
- package/dist/veo-builder.js +31 -6
- package/dist/veo-builder.js.map +1 -1
- package/dist/veo.js +2 -2
- package/dist/veo.js.map +1 -1
- package/package.json +1 -1
- package/dist/builder-UEGKG2UR.mjs +0 -5
- package/dist/chunk-66UQ474G.mjs.map +0 -1
- package/dist/chunk-CI7NWEH2.mjs.map +0 -1
- package/dist/chunk-JIU5JLI3.mjs +0 -7
- package/dist/chunk-JIU5JLI3.mjs.map +0 -1
package/dist/index.cjs
CHANGED
|
@@ -39,11 +39,14 @@ var init_safe_env = __esm({
|
|
|
39
39
|
});
|
|
40
40
|
|
|
41
41
|
// src/core/builder-constants.ts
|
|
42
|
-
var BUILDER_TOKEN_PARAM, BUILDER_ORIGIN_PARAM;
|
|
42
|
+
var BUILDER_TOKEN_PARAM, BUILDER_ORIGIN_PARAM, BUILDER_PANEL_PARAM, BUILDER_PANEL_PATH_PARAM, BUILDER_GUIDE_PARAM;
|
|
43
43
|
var init_builder_constants = __esm({
|
|
44
44
|
"src/core/builder-constants.ts"() {
|
|
45
45
|
BUILDER_TOKEN_PARAM = "veoBuilder";
|
|
46
46
|
BUILDER_ORIGIN_PARAM = "veoBuilderOrigin";
|
|
47
|
+
BUILDER_PANEL_PARAM = "veoBuilderPanel";
|
|
48
|
+
BUILDER_PANEL_PATH_PARAM = "veoBuilderPanelPath";
|
|
49
|
+
BUILDER_GUIDE_PARAM = "veoGuide";
|
|
47
50
|
}
|
|
48
51
|
});
|
|
49
52
|
|
|
@@ -62,56 +65,51 @@ function urlParams() {
|
|
|
62
65
|
return null;
|
|
63
66
|
}
|
|
64
67
|
}
|
|
65
|
-
function
|
|
68
|
+
function resolveBuilderContext() {
|
|
66
69
|
if (!hasWindow()) return null;
|
|
67
70
|
const params = urlParams();
|
|
68
71
|
const fromUrl = params?.get(BUILDER_TOKEN_PARAM);
|
|
69
72
|
if (fromUrl) {
|
|
70
|
-
const
|
|
73
|
+
const ctx = {
|
|
74
|
+
token: fromUrl,
|
|
75
|
+
origin: params?.get(BUILDER_ORIGIN_PARAM) ?? null,
|
|
76
|
+
panel: params?.get(BUILDER_PANEL_PARAM) === "1",
|
|
77
|
+
guide: params?.get(BUILDER_GUIDE_PARAM) ?? null,
|
|
78
|
+
panelPath: params?.get(BUILDER_PANEL_PATH_PARAM) ?? null
|
|
79
|
+
};
|
|
71
80
|
try {
|
|
72
|
-
|
|
73
|
-
const origin = params?.get(BUILDER_ORIGIN_PARAM);
|
|
74
|
-
if (origin) store?.setItem(ORIGIN_KEY, origin);
|
|
81
|
+
session()?.setItem(CTX_KEY, JSON.stringify(ctx));
|
|
75
82
|
} catch {
|
|
76
83
|
}
|
|
77
|
-
return
|
|
84
|
+
return ctx;
|
|
78
85
|
}
|
|
79
86
|
try {
|
|
80
|
-
|
|
87
|
+
const raw = session()?.getItem(CTX_KEY);
|
|
88
|
+
return raw ? JSON.parse(raw) : null;
|
|
81
89
|
} catch {
|
|
82
90
|
return null;
|
|
83
91
|
}
|
|
84
92
|
}
|
|
85
|
-
function
|
|
86
|
-
|
|
87
|
-
const fromUrl = urlParams()?.get(BUILDER_ORIGIN_PARAM);
|
|
88
|
-
if (fromUrl) return fromUrl;
|
|
89
|
-
try {
|
|
90
|
-
return session()?.getItem(ORIGIN_KEY) ?? null;
|
|
91
|
-
} catch {
|
|
92
|
-
return null;
|
|
93
|
-
}
|
|
93
|
+
function resolveBuilderToken() {
|
|
94
|
+
return resolveBuilderContext()?.token ?? null;
|
|
94
95
|
}
|
|
95
96
|
function isBuilderMode() {
|
|
96
|
-
return
|
|
97
|
+
return resolveBuilderContext() !== null;
|
|
97
98
|
}
|
|
98
99
|
function clearBuilderToken() {
|
|
99
100
|
if (!hasWindow()) return;
|
|
100
101
|
try {
|
|
101
|
-
|
|
102
|
-
store?.removeItem(TOKEN_KEY);
|
|
103
|
-
store?.removeItem(ORIGIN_KEY);
|
|
102
|
+
session()?.removeItem(CTX_KEY);
|
|
104
103
|
} catch {
|
|
105
104
|
}
|
|
106
105
|
}
|
|
107
|
-
var
|
|
106
|
+
var CTX_KEY;
|
|
108
107
|
var init_builder_token = __esm({
|
|
109
108
|
"src/core/builder-token.ts"() {
|
|
110
109
|
init_safe_env();
|
|
111
110
|
init_builder_constants();
|
|
112
111
|
init_builder_constants();
|
|
113
|
-
|
|
114
|
-
ORIGIN_KEY = "veo:builder_origin";
|
|
112
|
+
CTX_KEY = "veo:builder_ctx";
|
|
115
113
|
}
|
|
116
114
|
});
|
|
117
115
|
|
|
@@ -1940,6 +1938,85 @@ var init_bridge_protocol = __esm({
|
|
|
1940
1938
|
}
|
|
1941
1939
|
});
|
|
1942
1940
|
|
|
1941
|
+
// src/plugins/builder/builder-panel.ts
|
|
1942
|
+
function injectBuilderPanel(opts) {
|
|
1943
|
+
if (!hasWindow() || !hasDocument()) {
|
|
1944
|
+
return { target: () => null, teardown: () => {
|
|
1945
|
+
} };
|
|
1946
|
+
}
|
|
1947
|
+
const host = document.createElement("div");
|
|
1948
|
+
host.setAttribute("data-veo-builder-panel", "");
|
|
1949
|
+
const shadow = host.attachShadow({ mode: "open" });
|
|
1950
|
+
const style = document.createElement("style");
|
|
1951
|
+
style.textContent = PANEL_CSS;
|
|
1952
|
+
const container = document.createElement("div");
|
|
1953
|
+
container.className = "veo-panel";
|
|
1954
|
+
const header = document.createElement("div");
|
|
1955
|
+
header.className = "veo-panel-header";
|
|
1956
|
+
const title = document.createElement("span");
|
|
1957
|
+
title.className = "veo-panel-title";
|
|
1958
|
+
title.textContent = "Veo \xB7 Editor";
|
|
1959
|
+
const close = document.createElement("button");
|
|
1960
|
+
close.className = "veo-panel-close";
|
|
1961
|
+
close.type = "button";
|
|
1962
|
+
close.setAttribute("aria-label", "Cerrar");
|
|
1963
|
+
close.textContent = "\u2715";
|
|
1964
|
+
close.addEventListener("click", () => opts.onClose());
|
|
1965
|
+
header.append(title, close);
|
|
1966
|
+
const iframe = document.createElement("iframe");
|
|
1967
|
+
iframe.className = "veo-panel-frame";
|
|
1968
|
+
iframe.title = "Editor de Veo";
|
|
1969
|
+
iframe.src = buildPanelUrl(opts);
|
|
1970
|
+
container.append(header, iframe);
|
|
1971
|
+
shadow.append(style, container);
|
|
1972
|
+
document.body.appendChild(host);
|
|
1973
|
+
return {
|
|
1974
|
+
target: () => iframe.contentWindow,
|
|
1975
|
+
teardown: () => host.remove()
|
|
1976
|
+
};
|
|
1977
|
+
}
|
|
1978
|
+
function buildPanelUrl(opts) {
|
|
1979
|
+
const path = opts.panelPath ?? DEFAULT_PANEL_PATH;
|
|
1980
|
+
const url = new URL(path, opts.dashboardOrigin);
|
|
1981
|
+
url.searchParams.set("veoToken", opts.token);
|
|
1982
|
+
url.searchParams.set("veoApp", opts.appOrigin);
|
|
1983
|
+
if (opts.guide) url.searchParams.set("veoGuide", opts.guide);
|
|
1984
|
+
return url.toString();
|
|
1985
|
+
}
|
|
1986
|
+
var DEFAULT_PANEL_PATH, PANEL_CSS;
|
|
1987
|
+
var init_builder_panel = __esm({
|
|
1988
|
+
"src/plugins/builder/builder-panel.ts"() {
|
|
1989
|
+
init_safe_env();
|
|
1990
|
+
DEFAULT_PANEL_PATH = "/guides/design";
|
|
1991
|
+
PANEL_CSS = `
|
|
1992
|
+
:host { all: initial; }
|
|
1993
|
+
.veo-panel {
|
|
1994
|
+
position: fixed; top: 0; right: 0; bottom: 0;
|
|
1995
|
+
width: 420px; max-width: 100vw;
|
|
1996
|
+
display: flex; flex-direction: column;
|
|
1997
|
+
background: #fff;
|
|
1998
|
+
box-shadow: -8px 0 30px rgba(0,0,0,0.18);
|
|
1999
|
+
z-index: 2147483647;
|
|
2000
|
+
font-family: system-ui, -apple-system, sans-serif;
|
|
2001
|
+
}
|
|
2002
|
+
.veo-panel-header {
|
|
2003
|
+
flex: 0 0 auto;
|
|
2004
|
+
display: flex; align-items: center; justify-content: space-between;
|
|
2005
|
+
padding: 8px 12px;
|
|
2006
|
+
background: #0f172a; color: #fff;
|
|
2007
|
+
font-size: 13px; font-weight: 600;
|
|
2008
|
+
}
|
|
2009
|
+
.veo-panel-close {
|
|
2010
|
+
border: 0; background: transparent; color: #fff;
|
|
2011
|
+
font-size: 15px; cursor: pointer; line-height: 1;
|
|
2012
|
+
padding: 4px 6px; border-radius: 6px;
|
|
2013
|
+
}
|
|
2014
|
+
.veo-panel-close:hover { background: rgba(255,255,255,0.15); }
|
|
2015
|
+
.veo-panel-frame { flex: 1 1 auto; width: 100%; border: 0; background: #fff; }
|
|
2016
|
+
`;
|
|
2017
|
+
}
|
|
2018
|
+
});
|
|
2019
|
+
|
|
1943
2020
|
// src/plugins/builder/element-picker.ts
|
|
1944
2021
|
function startElementPicker(options) {
|
|
1945
2022
|
if (!hasDocument()) {
|
|
@@ -2145,18 +2222,23 @@ var init_element_picker = __esm({
|
|
|
2145
2222
|
// src/plugins/builder/builder-mode.ts
|
|
2146
2223
|
function initBuilderMode() {
|
|
2147
2224
|
if (!hasWindow() || !hasDocument()) return null;
|
|
2148
|
-
const
|
|
2149
|
-
if (!
|
|
2150
|
-
const
|
|
2225
|
+
const ctx = resolveBuilderContext();
|
|
2226
|
+
if (!ctx) return null;
|
|
2227
|
+
const token = ctx.token;
|
|
2228
|
+
const dashboardOrigin = resolveDashboardOrigin(ctx.origin);
|
|
2151
2229
|
if (!dashboardOrigin) return null;
|
|
2152
|
-
const target = resolveTarget();
|
|
2153
|
-
if (!target) return null;
|
|
2154
2230
|
let picker = null;
|
|
2231
|
+
let panel = null;
|
|
2232
|
+
let staticTarget = null;
|
|
2233
|
+
const getTarget = () => panel ? panel.target() : staticTarget;
|
|
2155
2234
|
const post = (event) => {
|
|
2156
|
-
|
|
2235
|
+
getTarget()?.postMessage({ source: VEO_BUILDER_SOURCE, token, ...event }, dashboardOrigin);
|
|
2157
2236
|
};
|
|
2158
2237
|
const handleCommand = (cmd) => {
|
|
2159
2238
|
switch (cmd.type) {
|
|
2239
|
+
case "panel-ready":
|
|
2240
|
+
post({ type: "ready" });
|
|
2241
|
+
break;
|
|
2160
2242
|
case "start-picker":
|
|
2161
2243
|
picker?.stop();
|
|
2162
2244
|
picker = startElementPicker({
|
|
@@ -2200,13 +2282,28 @@ function initBuilderMode() {
|
|
|
2200
2282
|
picker?.stop();
|
|
2201
2283
|
picker = null;
|
|
2202
2284
|
closeGuidePreview();
|
|
2203
|
-
clearBuilderToken();
|
|
2204
2285
|
post({ type: "closed" });
|
|
2286
|
+
panel?.teardown();
|
|
2287
|
+
panel = null;
|
|
2288
|
+
clearBuilderToken();
|
|
2205
2289
|
};
|
|
2290
|
+
if (ctx.panel) {
|
|
2291
|
+
panel = injectBuilderPanel({
|
|
2292
|
+
dashboardOrigin,
|
|
2293
|
+
token,
|
|
2294
|
+
appOrigin: window.location.origin,
|
|
2295
|
+
guide: ctx.guide,
|
|
2296
|
+
panelPath: ctx.panelPath,
|
|
2297
|
+
onClose: () => teardown()
|
|
2298
|
+
});
|
|
2299
|
+
} else {
|
|
2300
|
+
staticTarget = resolveTarget();
|
|
2301
|
+
if (!staticTarget) return null;
|
|
2302
|
+
}
|
|
2206
2303
|
const activate = () => {
|
|
2207
2304
|
window.addEventListener("message", onMessage);
|
|
2208
2305
|
window.addEventListener("pagehide", onPageHide);
|
|
2209
|
-
post({ type: "ready" });
|
|
2306
|
+
if (!ctx.panel) post({ type: "ready" });
|
|
2210
2307
|
};
|
|
2211
2308
|
const cfg = window.__veoBuilder;
|
|
2212
2309
|
if (cfg?.apiKey && cfg?.apiUrl) {
|
|
@@ -2239,11 +2336,10 @@ function resolveTarget() {
|
|
|
2239
2336
|
if (window.parent && window.parent !== window) return window.parent;
|
|
2240
2337
|
return null;
|
|
2241
2338
|
}
|
|
2242
|
-
function resolveDashboardOrigin() {
|
|
2243
|
-
|
|
2244
|
-
if (stored) {
|
|
2339
|
+
function resolveDashboardOrigin(originHint) {
|
|
2340
|
+
if (originHint) {
|
|
2245
2341
|
try {
|
|
2246
|
-
return new URL(
|
|
2342
|
+
return new URL(originHint).origin;
|
|
2247
2343
|
} catch {
|
|
2248
2344
|
return null;
|
|
2249
2345
|
}
|
|
@@ -2263,6 +2359,7 @@ var init_builder_mode = __esm({
|
|
|
2263
2359
|
init_safe_env();
|
|
2264
2360
|
init_guide_preview();
|
|
2265
2361
|
init_bridge_protocol();
|
|
2362
|
+
init_builder_panel();
|
|
2266
2363
|
init_element_picker();
|
|
2267
2364
|
}
|
|
2268
2365
|
});
|