@juo/blocks 1.12.0-alpha.0 → 1.12.0-alpha.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/{ExtensionRoot-9XfhG8YM.js → ExtensionRoot-peABLAZZ.js} +15 -3
- package/dist/block-B6s9jL7l.js +966 -0
- package/dist/block.d.ts +50 -0
- package/dist/block.d.ts.map +1 -1
- package/dist/block.devtools.test.d.ts +2 -0
- package/dist/block.devtools.test.d.ts.map +1 -0
- package/dist/{bridge-w5KQ-czl.js → bridge-r7Yk8fjY.js} +34 -25
- package/dist/context.d.ts.map +1 -1
- package/dist/context.devtools.test.d.ts +2 -0
- package/dist/context.devtools.test.d.ts.map +1 -0
- package/dist/core.js +857 -149
- package/dist/devtools/env.d.ts +3 -0
- package/dist/devtools/env.d.ts.map +1 -0
- package/dist/devtools/hook.d.ts +35 -0
- package/dist/devtools/hook.d.ts.map +1 -0
- package/dist/devtools/index.d.ts +4 -0
- package/dist/devtools/index.d.ts.map +1 -0
- package/dist/devtools/protocol.d.ts +91 -0
- package/dist/devtools/protocol.d.ts.map +1 -0
- package/dist/devtools.js +44 -0
- package/dist/editor/bridge.d.ts +7 -0
- package/dist/editor/bridge.d.ts.map +1 -1
- package/dist/editor/components.d.ts.map +1 -1
- package/dist/editor/main.d.ts +6 -1
- package/dist/editor/main.d.ts.map +1 -1
- package/dist/editor/main.test.d.ts +2 -0
- package/dist/editor/main.test.d.ts.map +1 -0
- package/dist/editor/messages.d.ts +13 -2
- package/dist/editor/messages.d.ts.map +1 -1
- package/dist/editor/messages.test.d.ts +2 -0
- package/dist/editor/messages.test.d.ts.map +1 -0
- package/dist/editor/overlays.d.ts +14 -0
- package/dist/editor/overlays.d.ts.map +1 -0
- package/dist/editor/overlays.test.d.ts +2 -0
- package/dist/editor/overlays.test.d.ts.map +1 -0
- package/dist/editor.js +82 -47
- package/dist/{juo-workflow-CkyZRq60.js → juo-workflow-DY4rd256.js} +74 -873
- package/dist/main.d.ts +3 -1
- package/dist/main.d.ts.map +1 -1
- package/dist/overlay-wrapper.d.ts +69 -0
- package/dist/overlay-wrapper.d.ts.map +1 -0
- package/dist/overlay-wrapper.test.d.ts +2 -0
- package/dist/overlay-wrapper.test.d.ts.map +1 -0
- package/dist/overlays/OverlayService.d.ts +34 -0
- package/dist/overlays/OverlayService.d.ts.map +1 -0
- package/dist/overlays/OverlayService.test.d.ts +2 -0
- package/dist/overlays/OverlayService.test.d.ts.map +1 -0
- package/dist/preact.js +1 -1
- package/dist/react.js +1 -1
- package/dist/registry.devtools.test.d.ts +2 -0
- package/dist/registry.devtools.test.d.ts.map +1 -0
- package/dist/services/index.d.ts +2 -0
- package/dist/services/index.d.ts.map +1 -1
- package/dist/services/orders/adapter.d.ts +2 -1
- package/dist/services/orders/adapter.d.ts.map +1 -1
- package/dist/services/orders/types.d.ts +8 -0
- package/dist/services/orders/types.d.ts.map +1 -1
- package/dist/services/product/adapter.d.ts +23 -1
- package/dist/services/product/adapter.d.ts.map +1 -1
- package/dist/services/product/adapter.test.d.ts +2 -0
- package/dist/services/product/adapter.test.d.ts.map +1 -0
- package/dist/services/product/productService.d.ts.map +1 -1
- package/dist/services/product/types.d.ts +66 -0
- package/dist/services/product/types.d.ts.map +1 -1
- package/dist/services/schedules/adapter.d.ts +4 -1
- package/dist/services/schedules/adapter.d.ts.map +1 -1
- package/dist/services/schedules/adapter.test.d.ts +2 -0
- package/dist/services/schedules/adapter.test.d.ts.map +1 -0
- package/dist/services/schedules/index.d.ts +3 -3
- package/dist/services/schedules/index.d.ts.map +1 -1
- package/dist/services/schedules/schedulesService.d.ts +4 -3
- package/dist/services/schedules/schedulesService.d.ts.map +1 -1
- package/dist/services/schedules/schedulesService.test.d.ts +2 -0
- package/dist/services/schedules/schedulesService.test.d.ts.map +1 -0
- package/dist/services/schedules/types.d.ts +66 -12
- package/dist/services/schedules/types.d.ts.map +1 -1
- package/dist/services/settings/index.d.ts +3 -0
- package/dist/services/settings/index.d.ts.map +1 -0
- package/dist/services/settings/settingsService.d.ts +7 -0
- package/dist/services/settings/settingsService.d.ts.map +1 -0
- package/dist/services/settings/settingsService.test.d.ts +2 -0
- package/dist/services/settings/settingsService.test.d.ts.map +1 -0
- package/dist/services/settings/types.d.ts +35 -0
- package/dist/services/settings/types.d.ts.map +1 -0
- package/dist/services/shop/index.d.ts +3 -0
- package/dist/services/shop/index.d.ts.map +1 -0
- package/dist/services/shop/shopService.d.ts +12 -0
- package/dist/services/shop/shopService.d.ts.map +1 -0
- package/dist/services/shop/shopService.test.d.ts +2 -0
- package/dist/services/shop/shopService.test.d.ts.map +1 -0
- package/dist/services/shop/types.d.ts +7 -0
- package/dist/services/shop/types.d.ts.map +1 -0
- package/dist/services/subscription/adapter.d.ts +38 -1
- package/dist/services/subscription/adapter.d.ts.map +1 -1
- package/dist/services/subscription/adapter.test.d.ts +2 -0
- package/dist/services/subscription/adapter.test.d.ts.map +1 -0
- package/dist/services/subscription/subscriptionService.d.ts.map +1 -1
- package/dist/services/subscription/types.d.ts +200 -1
- package/dist/services/subscription/types.d.ts.map +1 -1
- package/dist/services/subscription/types.test.d.ts +2 -0
- package/dist/services/subscription/types.test.d.ts.map +1 -0
- package/dist/theme-state.d.ts +2 -1
- package/dist/theme-state.d.ts.map +1 -1
- package/dist/theme-state.params.test.d.ts +2 -0
- package/dist/theme-state.params.test.d.ts.map +1 -0
- package/dist/theme-state.translations.test.d.ts +2 -0
- package/dist/theme-state.translations.test.d.ts.map +1 -0
- package/dist/vue/block.d.ts.map +1 -1
- package/dist/vue.js +25 -4
- package/dist/web-components/ExtensionRoot.d.ts +1 -0
- package/dist/web-components/ExtensionRoot.d.ts.map +1 -1
- package/dist/web-components-editor.js +4 -3
- package/dist/web-components-runtime.js +3 -2
- package/package.json +5 -1
package/dist/editor.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
var __defProp = Object.defineProperty;
|
|
2
2
|
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
3
3
|
var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
4
|
-
import { createBlockInstanceFromObject, indexOverrides, onRegisterBlock, getDefinedBlocks } from "@juo/blocks";
|
|
5
|
-
import {
|
|
6
|
-
import { j,
|
|
4
|
+
import { createBlockInstanceFromObject, indexOverrides, DEFAULT_GLOBAL_STYLES, effect, onRegisterBlock, getDefinedBlocks } from "@juo/blocks";
|
|
5
|
+
import { c as createEditorBridge, d as createOpenAddBlockMenuMessage, e as createRemoveBlockMessage, f as createRegisterBlocksMessage, g as createRegisterOverlaysMessage, h as createRegisterRoutesMessage } from "./bridge-r7Yk8fjY.js";
|
|
6
|
+
import { i, j, a, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, b, A, B, C, D } from "./bridge-r7Yk8fjY.js";
|
|
7
7
|
function createEditorHandler(options) {
|
|
8
8
|
const { themeState, onBlockSelection } = options;
|
|
9
9
|
const blockSurfaceIndex = /* @__PURE__ */ new Map();
|
|
@@ -126,17 +126,17 @@ function createEditorHandler(options) {
|
|
|
126
126
|
if (location.type === "before" || location.type === "after") {
|
|
127
127
|
let findAndInsertBlock = function(blocks, targetId, newBlock2, position) {
|
|
128
128
|
var _a2;
|
|
129
|
-
for (let
|
|
130
|
-
if (blocks[
|
|
129
|
+
for (let i2 = 0; i2 < blocks.length; i2++) {
|
|
130
|
+
if (blocks[i2].id === targetId) {
|
|
131
131
|
if (position === "before") {
|
|
132
|
-
blocks.splice(
|
|
132
|
+
blocks.splice(i2, 0, newBlock2);
|
|
133
133
|
} else {
|
|
134
|
-
blocks.splice(
|
|
134
|
+
blocks.splice(i2 + 1, 0, newBlock2);
|
|
135
135
|
}
|
|
136
136
|
return true;
|
|
137
137
|
}
|
|
138
|
-
for (const slotKey of Object.keys(blocks[
|
|
139
|
-
const slotBlocks = blocks[
|
|
138
|
+
for (const slotKey of Object.keys(blocks[i2].slots || {})) {
|
|
139
|
+
const slotBlocks = blocks[i2].slots[slotKey];
|
|
140
140
|
const slotArray = Array.isArray(slotBlocks) ? slotBlocks : [slotBlocks];
|
|
141
141
|
for (let j2 = 0; j2 < slotArray.length; j2++) {
|
|
142
142
|
if (typeof slotArray[j2] !== "string" && ((_a2 = slotArray[j2]) == null ? void 0 : _a2.id) === targetId) {
|
|
@@ -145,7 +145,7 @@ function createEditorHandler(options) {
|
|
|
145
145
|
} else {
|
|
146
146
|
slotArray.splice(j2 + 1, 0, newBlock2);
|
|
147
147
|
}
|
|
148
|
-
blocks[
|
|
148
|
+
blocks[i2].slots[slotKey] = slotArray;
|
|
149
149
|
return true;
|
|
150
150
|
}
|
|
151
151
|
}
|
|
@@ -199,21 +199,21 @@ function createEditorHandler(options) {
|
|
|
199
199
|
} else if (message.type === "REMOVE_BLOCK") {
|
|
200
200
|
let findAndRemoveBlock = function(blocks, blockId, slot, parentId) {
|
|
201
201
|
var _a2;
|
|
202
|
-
for (let
|
|
203
|
-
if (blocks[
|
|
204
|
-
const slotBlocks = blocks[
|
|
202
|
+
for (let i2 = 0; i2 < blocks.length; i2++) {
|
|
203
|
+
if (blocks[i2].id === parentId && ((_a2 = blocks[i2].slots) == null ? void 0 : _a2[slot])) {
|
|
204
|
+
const slotBlocks = blocks[i2].slots[slot];
|
|
205
205
|
const slotArray = Array.isArray(slotBlocks) ? slotBlocks : [slotBlocks];
|
|
206
206
|
const index = slotArray.findIndex(
|
|
207
207
|
(b2) => typeof b2 !== "string" && (b2 == null ? void 0 : b2.id) === blockId
|
|
208
208
|
);
|
|
209
209
|
if (index !== -1) {
|
|
210
210
|
slotArray.splice(index, 1);
|
|
211
|
-
blocks[
|
|
211
|
+
blocks[i2].slots[slot] = slotArray;
|
|
212
212
|
return true;
|
|
213
213
|
}
|
|
214
214
|
}
|
|
215
|
-
for (const slotKey of Object.keys(blocks[
|
|
216
|
-
const slotBlocks = blocks[
|
|
215
|
+
for (const slotKey of Object.keys(blocks[i2].slots || {})) {
|
|
216
|
+
const slotBlocks = blocks[i2].slots[slotKey];
|
|
217
217
|
const slotArray = Array.isArray(slotBlocks) ? slotBlocks : [slotBlocks];
|
|
218
218
|
for (const child of slotArray) {
|
|
219
219
|
if (typeof child !== "string" && (child == null ? void 0 : child.id)) {
|
|
@@ -857,8 +857,8 @@ class BlockWrapper extends HTMLElement {
|
|
|
857
857
|
const moreBtn = document.createElement("button");
|
|
858
858
|
moreBtn.type = "button";
|
|
859
859
|
moreBtn.innerHTML = moreIconSvg;
|
|
860
|
-
moreBtn.addEventListener("click", (
|
|
861
|
-
|
|
860
|
+
moreBtn.addEventListener("click", (e) => {
|
|
861
|
+
e.stopPropagation();
|
|
862
862
|
this.toggleMenu();
|
|
863
863
|
});
|
|
864
864
|
const menuEl = document.createElement("div");
|
|
@@ -874,8 +874,8 @@ class BlockWrapper extends HTMLElement {
|
|
|
874
874
|
deleteBtn.className = "block-wrapper__menu-item block-wrapper__menu-item--danger";
|
|
875
875
|
deleteBtn.setAttribute("role", "menuitem");
|
|
876
876
|
deleteBtn.innerHTML = `${trashIconSvg}<span>Delete</span>`;
|
|
877
|
-
deleteBtn.addEventListener("click", (
|
|
878
|
-
|
|
877
|
+
deleteBtn.addEventListener("click", (e) => {
|
|
878
|
+
e.stopPropagation();
|
|
879
879
|
this.closeMenu();
|
|
880
880
|
this.handleRemoveBlock();
|
|
881
881
|
});
|
|
@@ -943,9 +943,9 @@ class BlockWrapper extends HTMLElement {
|
|
|
943
943
|
surface.appendChild(text);
|
|
944
944
|
inner.appendChild(surface);
|
|
945
945
|
btn.appendChild(inner);
|
|
946
|
-
btn.addEventListener("click", (
|
|
947
|
-
|
|
948
|
-
|
|
946
|
+
btn.addEventListener("click", (e) => {
|
|
947
|
+
e.stopPropagation();
|
|
948
|
+
e.preventDefault();
|
|
949
949
|
this.handleAddBlock(position, btn);
|
|
950
950
|
});
|
|
951
951
|
return btn;
|
|
@@ -1006,6 +1006,11 @@ class BlockWrapper extends HTMLElement {
|
|
|
1006
1006
|
}
|
|
1007
1007
|
this.addEventListener("mouseenter", this.handleHoverEnter);
|
|
1008
1008
|
this.addEventListener("mouseleave", this.handleHoverLeave);
|
|
1009
|
+
if (this.block != null) {
|
|
1010
|
+
this.updateActiveState(
|
|
1011
|
+
this.editorBridge.getSelectedBlockId() === this.block.id
|
|
1012
|
+
);
|
|
1013
|
+
}
|
|
1009
1014
|
}
|
|
1010
1015
|
/**
|
|
1011
1016
|
* Resolve the slotted block's first painted descendant — the
|
|
@@ -1051,8 +1056,8 @@ class BlockWrapper extends HTMLElement {
|
|
|
1051
1056
|
if (!this.menuElement) return;
|
|
1052
1057
|
this.menuElement.classList.add("open");
|
|
1053
1058
|
this.isMenuOpen = true;
|
|
1054
|
-
this.closeMenuOnOutsideClick = (
|
|
1055
|
-
if (!this.shadowRoot.contains(
|
|
1059
|
+
this.closeMenuOnOutsideClick = (e) => {
|
|
1060
|
+
if (!this.shadowRoot.contains(e.composedPath()[0])) {
|
|
1056
1061
|
this.closeMenu();
|
|
1057
1062
|
}
|
|
1058
1063
|
};
|
|
@@ -1070,6 +1075,7 @@ class BlockWrapper extends HTMLElement {
|
|
|
1070
1075
|
setBlock(block) {
|
|
1071
1076
|
this.block = block;
|
|
1072
1077
|
this.setAttribute("data-block-id", block.id);
|
|
1078
|
+
this.setAttribute("data-block-type", block.type);
|
|
1073
1079
|
if (this.nameElement) {
|
|
1074
1080
|
this.nameElement.textContent = block.definition.displayName ?? block.definition.name;
|
|
1075
1081
|
}
|
|
@@ -1157,7 +1163,7 @@ async function serializeBlock(block) {
|
|
|
1157
1163
|
}
|
|
1158
1164
|
})
|
|
1159
1165
|
);
|
|
1160
|
-
const loaded = entries.filter((
|
|
1166
|
+
const loaded = entries.filter((e) => e !== null);
|
|
1161
1167
|
if (loaded.length > 0) {
|
|
1162
1168
|
locales = Object.fromEntries(loaded);
|
|
1163
1169
|
}
|
|
@@ -1173,11 +1179,23 @@ async function serializeBlock(block) {
|
|
|
1173
1179
|
};
|
|
1174
1180
|
}
|
|
1175
1181
|
const EDITOR_BODY_TOP_PADDING_PX = 48;
|
|
1182
|
+
const EDITOR_BODY_BOTTOM_PADDING_PX = 12;
|
|
1183
|
+
function buildEditorCanvasStyleContent(backgroundColor) {
|
|
1184
|
+
const bg = backgroundColor || DEFAULT_GLOBAL_STYLES.colors.background;
|
|
1185
|
+
return `body {
|
|
1186
|
+
padding-top: ${EDITOR_BODY_TOP_PADDING_PX}px;
|
|
1187
|
+
background-color: ${bg};
|
|
1188
|
+
}`;
|
|
1189
|
+
}
|
|
1176
1190
|
async function setupEditorMode(deps) {
|
|
1177
|
-
const { routerService, themeState } = deps;
|
|
1191
|
+
const { routerService, themeState, overlayService } = deps;
|
|
1178
1192
|
const padStyle = document.createElement("style");
|
|
1179
|
-
padStyle.textContent = `body { padding-top: ${EDITOR_BODY_TOP_PADDING_PX}px; }`;
|
|
1180
1193
|
document.head.appendChild(padStyle);
|
|
1194
|
+
const disposeCanvasStyles = effect(() => {
|
|
1195
|
+
padStyle.textContent = buildEditorCanvasStyleContent(
|
|
1196
|
+
themeState.globalStyles.value.colors.background
|
|
1197
|
+
);
|
|
1198
|
+
});
|
|
1181
1199
|
const editor = createEditorBridge();
|
|
1182
1200
|
const handler = createEditorHandler({
|
|
1183
1201
|
themeState
|
|
@@ -1196,11 +1214,24 @@ async function setupEditorMode(deps) {
|
|
|
1196
1214
|
})
|
|
1197
1215
|
)
|
|
1198
1216
|
);
|
|
1217
|
+
if (typeof block.name === "string" && block.name.startsWith("overlay:")) {
|
|
1218
|
+
editor.sendMessage(
|
|
1219
|
+
createRegisterOverlaysMessage({
|
|
1220
|
+
overlays: overlayService.getEditableOverlays()
|
|
1221
|
+
})
|
|
1222
|
+
);
|
|
1223
|
+
}
|
|
1199
1224
|
});
|
|
1200
1225
|
const blocks = await Promise.all(getDefinedBlocks().map(serializeBlock));
|
|
1201
1226
|
editor.sendMessage(createRegisterBlocksMessage({ blocks }));
|
|
1202
1227
|
editor.sendMessage(createRegisterRoutesMessage({ routes }));
|
|
1228
|
+
editor.sendMessage(
|
|
1229
|
+
createRegisterOverlaysMessage({
|
|
1230
|
+
overlays: overlayService.getEditableOverlays()
|
|
1231
|
+
})
|
|
1232
|
+
);
|
|
1203
1233
|
return () => {
|
|
1234
|
+
disposeCanvasStyles();
|
|
1204
1235
|
padStyle.remove();
|
|
1205
1236
|
unsubscribeRegister();
|
|
1206
1237
|
unsubscribe();
|
|
@@ -1209,19 +1240,23 @@ async function setupEditorMode(deps) {
|
|
|
1209
1240
|
}
|
|
1210
1241
|
export {
|
|
1211
1242
|
BlockWrapper,
|
|
1212
|
-
|
|
1213
|
-
|
|
1243
|
+
EDITOR_BODY_BOTTOM_PADDING_PX,
|
|
1244
|
+
EDITOR_BODY_TOP_PADDING_PX,
|
|
1245
|
+
buildEditorCanvasStyleContent,
|
|
1246
|
+
i as createAddBlockMenuClosedMessage,
|
|
1247
|
+
j as createAddBlockMessage,
|
|
1214
1248
|
createEditorBridge,
|
|
1215
1249
|
createEditorHandler,
|
|
1216
|
-
|
|
1217
|
-
|
|
1250
|
+
a as createFocusInlineTextMessage,
|
|
1251
|
+
k as createMoveBlockMessage,
|
|
1218
1252
|
createOpenAddBlockMenuMessage,
|
|
1219
|
-
|
|
1220
|
-
|
|
1221
|
-
|
|
1222
|
-
|
|
1223
|
-
|
|
1253
|
+
l as createProvideGlobalStylesMessage,
|
|
1254
|
+
m as createProvideInitialGlobalStylesMessage,
|
|
1255
|
+
n as createProvideThemeStateMessage,
|
|
1256
|
+
o as createProvideTranslationOverridesMessage,
|
|
1257
|
+
p as createRegisterBlockTranslationKeysMessage,
|
|
1224
1258
|
createRegisterBlocksMessage,
|
|
1259
|
+
createRegisterOverlaysMessage,
|
|
1225
1260
|
createRegisterRoutesMessage,
|
|
1226
1261
|
createRemoveBlockMessage,
|
|
1227
1262
|
q as createReportContentHeightMessage,
|
|
@@ -1229,15 +1264,15 @@ export {
|
|
|
1229
1264
|
s as createRequestThemeStateMessage,
|
|
1230
1265
|
t as createRequestTranslationOverridesMessage,
|
|
1231
1266
|
u as createScrollSyncMessage,
|
|
1232
|
-
|
|
1233
|
-
|
|
1234
|
-
|
|
1235
|
-
|
|
1236
|
-
|
|
1237
|
-
|
|
1238
|
-
|
|
1239
|
-
|
|
1240
|
-
|
|
1241
|
-
|
|
1267
|
+
v as createSelectBlockMessage,
|
|
1268
|
+
w as createSetBlockPresetMessage,
|
|
1269
|
+
x as createSetGlobalStylesMessage,
|
|
1270
|
+
y as createSetLocaleMessage,
|
|
1271
|
+
z as createUpdateBlockPropsMessage,
|
|
1272
|
+
b as createUpdateBlockTranslationMessage,
|
|
1273
|
+
A as createUpsertThemeStateMessage,
|
|
1274
|
+
B as getEditorBridge,
|
|
1275
|
+
C as isEditorMessage,
|
|
1276
|
+
D as isIframeMessage,
|
|
1242
1277
|
setupEditorMode
|
|
1243
1278
|
};
|