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
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export { createBuilderSession, initBuilderMode, startElementPicker, stopElementPicker } from './chunk-7FVIFPGF.mjs';
|
|
2
|
+
import './chunk-GHP7ZJCW.mjs';
|
|
3
|
+
import './chunk-PTG3BTJE.mjs';
|
|
4
|
+
//# sourceMappingURL=builder-AGIBF67L.mjs.map
|
|
5
|
+
//# sourceMappingURL=builder-AGIBF67L.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":[],"names":[],"mappings":"","file":"builder-
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"builder-AGIBF67L.mjs"}
|
package/dist/builder.cjs
CHANGED
|
@@ -13,10 +13,12 @@ function hasDocument() {
|
|
|
13
13
|
// src/core/builder-constants.ts
|
|
14
14
|
var BUILDER_TOKEN_PARAM = "veoBuilder";
|
|
15
15
|
var BUILDER_ORIGIN_PARAM = "veoBuilderOrigin";
|
|
16
|
+
var BUILDER_PANEL_PARAM = "veoBuilderPanel";
|
|
17
|
+
var BUILDER_PANEL_PATH_PARAM = "veoBuilderPanelPath";
|
|
18
|
+
var BUILDER_GUIDE_PARAM = "veoGuide";
|
|
16
19
|
|
|
17
20
|
// src/core/builder-token.ts
|
|
18
|
-
var
|
|
19
|
-
var ORIGIN_KEY = "veo:builder_origin";
|
|
21
|
+
var CTX_KEY = "veo:builder_ctx";
|
|
20
22
|
function session() {
|
|
21
23
|
try {
|
|
22
24
|
return window.sessionStorage;
|
|
@@ -31,32 +33,27 @@ function urlParams() {
|
|
|
31
33
|
return null;
|
|
32
34
|
}
|
|
33
35
|
}
|
|
34
|
-
function
|
|
36
|
+
function resolveBuilderContext() {
|
|
35
37
|
if (!hasWindow()) return null;
|
|
36
38
|
const params = urlParams();
|
|
37
39
|
const fromUrl = params?.get(BUILDER_TOKEN_PARAM);
|
|
38
40
|
if (fromUrl) {
|
|
39
|
-
const
|
|
41
|
+
const ctx = {
|
|
42
|
+
token: fromUrl,
|
|
43
|
+
origin: params?.get(BUILDER_ORIGIN_PARAM) ?? null,
|
|
44
|
+
panel: params?.get(BUILDER_PANEL_PARAM) === "1",
|
|
45
|
+
guide: params?.get(BUILDER_GUIDE_PARAM) ?? null,
|
|
46
|
+
panelPath: params?.get(BUILDER_PANEL_PATH_PARAM) ?? null
|
|
47
|
+
};
|
|
40
48
|
try {
|
|
41
|
-
|
|
42
|
-
const origin = params?.get(BUILDER_ORIGIN_PARAM);
|
|
43
|
-
if (origin) store?.setItem(ORIGIN_KEY, origin);
|
|
49
|
+
session()?.setItem(CTX_KEY, JSON.stringify(ctx));
|
|
44
50
|
} catch {
|
|
45
51
|
}
|
|
46
|
-
return
|
|
47
|
-
}
|
|
48
|
-
try {
|
|
49
|
-
return session()?.getItem(TOKEN_KEY) ?? null;
|
|
50
|
-
} catch {
|
|
51
|
-
return null;
|
|
52
|
+
return ctx;
|
|
52
53
|
}
|
|
53
|
-
}
|
|
54
|
-
function resolveBuilderOrigin() {
|
|
55
|
-
if (!hasWindow()) return null;
|
|
56
|
-
const fromUrl = urlParams()?.get(BUILDER_ORIGIN_PARAM);
|
|
57
|
-
if (fromUrl) return fromUrl;
|
|
58
54
|
try {
|
|
59
|
-
|
|
55
|
+
const raw = session()?.getItem(CTX_KEY);
|
|
56
|
+
return raw ? JSON.parse(raw) : null;
|
|
60
57
|
} catch {
|
|
61
58
|
return null;
|
|
62
59
|
}
|
|
@@ -64,9 +61,7 @@ function resolveBuilderOrigin() {
|
|
|
64
61
|
function clearBuilderToken() {
|
|
65
62
|
if (!hasWindow()) return;
|
|
66
63
|
try {
|
|
67
|
-
|
|
68
|
-
store?.removeItem(TOKEN_KEY);
|
|
69
|
-
store?.removeItem(ORIGIN_KEY);
|
|
64
|
+
session()?.removeItem(CTX_KEY);
|
|
70
65
|
} catch {
|
|
71
66
|
}
|
|
72
67
|
}
|
|
@@ -1597,6 +1592,79 @@ function safeDestroy(renderer) {
|
|
|
1597
1592
|
// src/plugins/builder/bridge-protocol.ts
|
|
1598
1593
|
var VEO_BUILDER_SOURCE = "veo-builder";
|
|
1599
1594
|
|
|
1595
|
+
// src/plugins/builder/builder-panel.ts
|
|
1596
|
+
var DEFAULT_PANEL_PATH = "/guides/design";
|
|
1597
|
+
function injectBuilderPanel(opts) {
|
|
1598
|
+
if (!hasWindow() || !hasDocument()) {
|
|
1599
|
+
return { target: () => null, teardown: () => {
|
|
1600
|
+
} };
|
|
1601
|
+
}
|
|
1602
|
+
const host = document.createElement("div");
|
|
1603
|
+
host.setAttribute("data-veo-builder-panel", "");
|
|
1604
|
+
const shadow = host.attachShadow({ mode: "open" });
|
|
1605
|
+
const style = document.createElement("style");
|
|
1606
|
+
style.textContent = PANEL_CSS;
|
|
1607
|
+
const container = document.createElement("div");
|
|
1608
|
+
container.className = "veo-panel";
|
|
1609
|
+
const header = document.createElement("div");
|
|
1610
|
+
header.className = "veo-panel-header";
|
|
1611
|
+
const title = document.createElement("span");
|
|
1612
|
+
title.className = "veo-panel-title";
|
|
1613
|
+
title.textContent = "Veo \xB7 Editor";
|
|
1614
|
+
const close = document.createElement("button");
|
|
1615
|
+
close.className = "veo-panel-close";
|
|
1616
|
+
close.type = "button";
|
|
1617
|
+
close.setAttribute("aria-label", "Cerrar");
|
|
1618
|
+
close.textContent = "\u2715";
|
|
1619
|
+
close.addEventListener("click", () => opts.onClose());
|
|
1620
|
+
header.append(title, close);
|
|
1621
|
+
const iframe = document.createElement("iframe");
|
|
1622
|
+
iframe.className = "veo-panel-frame";
|
|
1623
|
+
iframe.title = "Editor de Veo";
|
|
1624
|
+
iframe.src = buildPanelUrl(opts);
|
|
1625
|
+
container.append(header, iframe);
|
|
1626
|
+
shadow.append(style, container);
|
|
1627
|
+
document.body.appendChild(host);
|
|
1628
|
+
return {
|
|
1629
|
+
target: () => iframe.contentWindow,
|
|
1630
|
+
teardown: () => host.remove()
|
|
1631
|
+
};
|
|
1632
|
+
}
|
|
1633
|
+
function buildPanelUrl(opts) {
|
|
1634
|
+
const path = opts.panelPath ?? DEFAULT_PANEL_PATH;
|
|
1635
|
+
const url = new URL(path, opts.dashboardOrigin);
|
|
1636
|
+
url.searchParams.set("veoToken", opts.token);
|
|
1637
|
+
url.searchParams.set("veoApp", opts.appOrigin);
|
|
1638
|
+
if (opts.guide) url.searchParams.set("veoGuide", opts.guide);
|
|
1639
|
+
return url.toString();
|
|
1640
|
+
}
|
|
1641
|
+
var PANEL_CSS = `
|
|
1642
|
+
:host { all: initial; }
|
|
1643
|
+
.veo-panel {
|
|
1644
|
+
position: fixed; top: 0; right: 0; bottom: 0;
|
|
1645
|
+
width: 420px; max-width: 100vw;
|
|
1646
|
+
display: flex; flex-direction: column;
|
|
1647
|
+
background: #fff;
|
|
1648
|
+
box-shadow: -8px 0 30px rgba(0,0,0,0.18);
|
|
1649
|
+
z-index: 2147483647;
|
|
1650
|
+
font-family: system-ui, -apple-system, sans-serif;
|
|
1651
|
+
}
|
|
1652
|
+
.veo-panel-header {
|
|
1653
|
+
flex: 0 0 auto;
|
|
1654
|
+
display: flex; align-items: center; justify-content: space-between;
|
|
1655
|
+
padding: 8px 12px;
|
|
1656
|
+
background: #0f172a; color: #fff;
|
|
1657
|
+
font-size: 13px; font-weight: 600;
|
|
1658
|
+
}
|
|
1659
|
+
.veo-panel-close {
|
|
1660
|
+
border: 0; background: transparent; color: #fff;
|
|
1661
|
+
font-size: 15px; cursor: pointer; line-height: 1;
|
|
1662
|
+
padding: 4px 6px; border-radius: 6px;
|
|
1663
|
+
}
|
|
1664
|
+
.veo-panel-close:hover { background: rgba(255,255,255,0.15); }
|
|
1665
|
+
.veo-panel-frame { flex: 1 1 auto; width: 100%; border: 0; background: #fff; }
|
|
1666
|
+
`;
|
|
1667
|
+
|
|
1600
1668
|
// src/plugins/autocapture/constants.ts
|
|
1601
1669
|
var HASHED_CLASS_PATTERNS = [
|
|
1602
1670
|
/^css-[a-z0-9]{4,}$/i,
|
|
@@ -1881,18 +1949,23 @@ function stopElementPicker() {
|
|
|
1881
1949
|
// src/plugins/builder/builder-mode.ts
|
|
1882
1950
|
function initBuilderMode() {
|
|
1883
1951
|
if (!hasWindow() || !hasDocument()) return null;
|
|
1884
|
-
const
|
|
1885
|
-
if (!
|
|
1886
|
-
const
|
|
1952
|
+
const ctx = resolveBuilderContext();
|
|
1953
|
+
if (!ctx) return null;
|
|
1954
|
+
const token = ctx.token;
|
|
1955
|
+
const dashboardOrigin = resolveDashboardOrigin(ctx.origin);
|
|
1887
1956
|
if (!dashboardOrigin) return null;
|
|
1888
|
-
const target = resolveTarget();
|
|
1889
|
-
if (!target) return null;
|
|
1890
1957
|
let picker = null;
|
|
1958
|
+
let panel = null;
|
|
1959
|
+
let staticTarget = null;
|
|
1960
|
+
const getTarget = () => panel ? panel.target() : staticTarget;
|
|
1891
1961
|
const post = (event) => {
|
|
1892
|
-
|
|
1962
|
+
getTarget()?.postMessage({ source: VEO_BUILDER_SOURCE, token, ...event }, dashboardOrigin);
|
|
1893
1963
|
};
|
|
1894
1964
|
const handleCommand = (cmd) => {
|
|
1895
1965
|
switch (cmd.type) {
|
|
1966
|
+
case "panel-ready":
|
|
1967
|
+
post({ type: "ready" });
|
|
1968
|
+
break;
|
|
1896
1969
|
case "start-picker":
|
|
1897
1970
|
picker?.stop();
|
|
1898
1971
|
picker = startElementPicker({
|
|
@@ -1936,13 +2009,28 @@ function initBuilderMode() {
|
|
|
1936
2009
|
picker?.stop();
|
|
1937
2010
|
picker = null;
|
|
1938
2011
|
closeGuidePreview();
|
|
1939
|
-
clearBuilderToken();
|
|
1940
2012
|
post({ type: "closed" });
|
|
2013
|
+
panel?.teardown();
|
|
2014
|
+
panel = null;
|
|
2015
|
+
clearBuilderToken();
|
|
1941
2016
|
};
|
|
2017
|
+
if (ctx.panel) {
|
|
2018
|
+
panel = injectBuilderPanel({
|
|
2019
|
+
dashboardOrigin,
|
|
2020
|
+
token,
|
|
2021
|
+
appOrigin: window.location.origin,
|
|
2022
|
+
guide: ctx.guide,
|
|
2023
|
+
panelPath: ctx.panelPath,
|
|
2024
|
+
onClose: () => teardown()
|
|
2025
|
+
});
|
|
2026
|
+
} else {
|
|
2027
|
+
staticTarget = resolveTarget();
|
|
2028
|
+
if (!staticTarget) return null;
|
|
2029
|
+
}
|
|
1942
2030
|
const activate = () => {
|
|
1943
2031
|
window.addEventListener("message", onMessage);
|
|
1944
2032
|
window.addEventListener("pagehide", onPageHide);
|
|
1945
|
-
post({ type: "ready" });
|
|
2033
|
+
if (!ctx.panel) post({ type: "ready" });
|
|
1946
2034
|
};
|
|
1947
2035
|
const cfg = window.__veoBuilder;
|
|
1948
2036
|
if (cfg?.apiKey && cfg?.apiUrl) {
|
|
@@ -1975,11 +2063,10 @@ function resolveTarget() {
|
|
|
1975
2063
|
if (window.parent && window.parent !== window) return window.parent;
|
|
1976
2064
|
return null;
|
|
1977
2065
|
}
|
|
1978
|
-
function resolveDashboardOrigin() {
|
|
1979
|
-
|
|
1980
|
-
if (stored) {
|
|
2066
|
+
function resolveDashboardOrigin(originHint) {
|
|
2067
|
+
if (originHint) {
|
|
1981
2068
|
try {
|
|
1982
|
-
return new URL(
|
|
2069
|
+
return new URL(originHint).origin;
|
|
1983
2070
|
} catch {
|
|
1984
2071
|
return null;
|
|
1985
2072
|
}
|