@reacteditor/core 0.0.10 → 0.0.11
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/README.md +7 -7
- package/dist/{Editor-3COFH5WN.mjs → Editor-GK6JTUPD.mjs} +7 -7
- package/dist/{actions-B8_EA7vy.d.mts → actions-C0LX6bI4.d.mts} +1 -0
- package/dist/{actions-B8_EA7vy.d.ts → actions-C0LX6bI4.d.ts} +1 -0
- package/dist/{chunk-LRFRIIKG.mjs → chunk-56I7ST5F.mjs} +1 -1
- package/dist/{chunk-3IP22OOD.mjs → chunk-74TOLW7F.mjs} +1139 -1118
- package/dist/{chunk-IIRJMJFU.mjs → chunk-ERNSJXVF.mjs} +1 -0
- package/dist/{chunk-PUDWMFBH.mjs → chunk-II42EKFK.mjs} +1 -1
- package/dist/{chunk-AD7BMXAA.mjs → chunk-MJJPWASL.mjs} +1 -1
- package/dist/{chunk-BUR5T7IX.mjs → chunk-TGVAC3JP.mjs} +7 -7
- package/dist/{chunk-FT6UFK7G.mjs → chunk-X4EUZIHA.mjs} +1 -1
- package/dist/{chunk-OIFPBVSF.mjs → chunk-XLVEWZWT.mjs} +1 -1
- package/dist/{chunk-BZ4BQZJR.mjs → chunk-YBG2RYVF.mjs} +3 -3
- package/dist/{full-QT5KXRDP.mjs → full-IUPXFMQP.mjs} +6 -6
- package/dist/{index-JoD48fK_.d.mts → index-DMbFEg8G.d.mts} +1 -1
- package/dist/{index-BrHy0cc_.d.ts → index-DmThy7vE.d.ts} +1 -1
- package/dist/index.css +25 -25
- package/dist/index.d.mts +52 -7
- package/dist/index.d.ts +52 -7
- package/dist/index.js +155 -133
- package/dist/index.mjs +9 -9
- package/dist/internal.d.mts +2 -2
- package/dist/internal.d.ts +2 -2
- package/dist/{loaded-GLBLMTBL.mjs → loaded-BT7NIVEO.mjs} +3 -3
- package/dist/{loaded-O4QHGE26.mjs → loaded-HVOKDVC3.mjs} +3 -3
- package/dist/{loaded-R34BR6I5.mjs → loaded-YFYCF5F4.mjs} +3 -3
- package/dist/no-external.css +25 -25
- package/dist/no-external.d.mts +4 -4
- package/dist/no-external.d.ts +4 -4
- package/dist/no-external.js +155 -133
- package/dist/no-external.mjs +9 -9
- package/dist/rsc.d.mts +2 -2
- package/dist/rsc.d.ts +2 -2
- package/dist/rsc.js +1 -0
- package/dist/rsc.mjs +2 -2
- package/dist/{walk-tree-BR2XIZ0W.d.mts → walk-tree-5oDs6qOL.d.mts} +1 -1
- package/dist/{walk-tree-DpUJ9kDx.d.ts → walk-tree-B1q6t5Jp.d.ts} +1 -1
- package/package.json +4 -4
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import {
|
|
2
2
|
EditorInner,
|
|
3
3
|
LoadedRichTextMenu
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-YBG2RYVF.mjs";
|
|
5
5
|
import {
|
|
6
6
|
ActionBar,
|
|
7
7
|
IconButton,
|
|
8
8
|
LoadedRichTextMenuInner,
|
|
9
9
|
Loader
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-TGVAC3JP.mjs";
|
|
11
11
|
import {
|
|
12
12
|
RichTextRenderFallback,
|
|
13
13
|
SlotRender,
|
|
@@ -16,7 +16,7 @@ import {
|
|
|
16
16
|
getSlotTransform,
|
|
17
17
|
useRichtextProps,
|
|
18
18
|
useSlots
|
|
19
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-II42EKFK.mjs";
|
|
20
20
|
import {
|
|
21
21
|
Check,
|
|
22
22
|
ChevronDown,
|
|
@@ -60,7 +60,7 @@ import {
|
|
|
60
60
|
useRegisterFieldsSlice,
|
|
61
61
|
useRegisterHistorySlice,
|
|
62
62
|
useRegisterPermissionsSlice
|
|
63
|
-
} from "./chunk-
|
|
63
|
+
} from "./chunk-56I7ST5F.mjs";
|
|
64
64
|
import {
|
|
65
65
|
getItem,
|
|
66
66
|
insert,
|
|
@@ -71,7 +71,7 @@ import {
|
|
|
71
71
|
import {
|
|
72
72
|
defaultAppState,
|
|
73
73
|
defaultViewports
|
|
74
|
-
} from "./chunk-
|
|
74
|
+
} from "./chunk-ERNSJXVF.mjs";
|
|
75
75
|
import {
|
|
76
76
|
get_class_name_factory_default
|
|
77
77
|
} from "./chunk-Y2EFNT5P.mjs";
|
|
@@ -2146,7 +2146,7 @@ EditorFallback.displayName = "EditorFallback";
|
|
|
2146
2146
|
// components/AutoField/fields/RichtextField/index.tsx
|
|
2147
2147
|
import { Fragment as Fragment3, jsx as jsx20 } from "react/jsx-runtime";
|
|
2148
2148
|
var Editor = lazy(
|
|
2149
|
-
() => import("./Editor-
|
|
2149
|
+
() => import("./Editor-GK6JTUPD.mjs").then((m) => ({
|
|
2150
2150
|
default: m.Editor
|
|
2151
2151
|
}))
|
|
2152
2152
|
);
|
|
@@ -3219,7 +3219,7 @@ init_react_import();
|
|
|
3219
3219
|
|
|
3220
3220
|
// css-module:/Users/rami/Documents/apps/react-editor/packages/core/components/Drawer/styles.module.css#css-module
|
|
3221
3221
|
init_react_import();
|
|
3222
|
-
var styles_module_default12 = { "Drawer": "
|
|
3222
|
+
var styles_module_default12 = { "Drawer": "_Drawer_1h4db_1", "Drawer--tile": "_Drawer--tile_1h4db_8", "Drawer-draggable": "_Drawer-draggable_1h4db_19", "Drawer-draggableBg": "_Drawer-draggableBg_1h4db_23", "DrawerItem-draggable": "_DrawerItem-draggable_1h4db_33", "DrawerItem-icon": "_DrawerItem-icon_1h4db_50", "DrawerItem--disabled": "_DrawerItem--disabled_1h4db_56", "DrawerItem": "_DrawerItem_1h4db_33", "Drawer--isDraggingFrom": "_Drawer--isDraggingFrom_1h4db_66", "DrawerItem-name": "_DrawerItem-name_1h4db_91" };
|
|
3223
3223
|
|
|
3224
3224
|
// components/Drawer/index.tsx
|
|
3225
3225
|
import { useMemo as useMemo9, useState as useState11 } from "react";
|
|
@@ -4698,7 +4698,7 @@ import {
|
|
|
4698
4698
|
} from "react";
|
|
4699
4699
|
import { jsx as jsx30 } from "react/jsx-runtime";
|
|
4700
4700
|
var Editor2 = lazy2(
|
|
4701
|
-
() => import("./Editor-
|
|
4701
|
+
() => import("./Editor-GK6JTUPD.mjs").then((m) => ({
|
|
4702
4702
|
default: m.Editor
|
|
4703
4703
|
}))
|
|
4704
4704
|
);
|
|
@@ -5305,15 +5305,6 @@ var DropZoneEdit = forwardRef(
|
|
|
5305
5305
|
}
|
|
5306
5306
|
}
|
|
5307
5307
|
}, [zoneType, appStoreApi]);
|
|
5308
|
-
useEffect16(() => {
|
|
5309
|
-
if (zoneType === "dropzone") {
|
|
5310
|
-
if (zoneCompound !== rootDroppableId) {
|
|
5311
|
-
console.warn(
|
|
5312
|
-
"DropZones have been deprecated in favor of slot fields and will be removed in a future version of Editor. Please see the migration guide: https://www.frontend.co/docs/guides/migrations/dropzones-to-slots"
|
|
5313
|
-
);
|
|
5314
|
-
}
|
|
5315
|
-
}
|
|
5316
|
-
}, [zoneType]);
|
|
5317
5308
|
const contentIds = useMemo12(() => {
|
|
5318
5309
|
return zoneContentIds || [];
|
|
5319
5310
|
}, [zoneContentIds]);
|
|
@@ -6137,848 +6128,387 @@ var blocksPlugin = () => ({
|
|
|
6137
6128
|
icon: /* @__PURE__ */ jsx37(Plus, {})
|
|
6138
6129
|
});
|
|
6139
6130
|
|
|
6140
|
-
// plugins/
|
|
6131
|
+
// plugins/fields/index.tsx
|
|
6141
6132
|
init_react_import();
|
|
6142
6133
|
|
|
6143
|
-
// components/
|
|
6134
|
+
// components/Breadcrumbs/index.tsx
|
|
6144
6135
|
init_react_import();
|
|
6145
6136
|
|
|
6146
|
-
// components/
|
|
6137
|
+
// css-module:/Users/rami/Documents/apps/react-editor/packages/core/components/Breadcrumbs/styles.module.css#css-module
|
|
6147
6138
|
init_react_import();
|
|
6139
|
+
var styles_module_default17 = { "Breadcrumbs": "_Breadcrumbs_1cjxk_1", "Breadcrumbs-breadcrumb": "_Breadcrumbs-breadcrumb_1cjxk_10", "Breadcrumbs-breadcrumbLabel": "_Breadcrumbs-breadcrumbLabel_1cjxk_17" };
|
|
6148
6140
|
|
|
6149
|
-
//
|
|
6141
|
+
// lib/use-breadcrumbs.ts
|
|
6150
6142
|
init_react_import();
|
|
6151
|
-
|
|
6143
|
+
import { useMemo as useMemo15 } from "react";
|
|
6144
|
+
var useBreadcrumbs = (renderCount) => {
|
|
6145
|
+
const selectedId = useAppStore((s) => {
|
|
6146
|
+
var _a;
|
|
6147
|
+
return (_a = s.selectedItem) == null ? void 0 : _a.props.id;
|
|
6148
|
+
});
|
|
6149
|
+
const config = useAppStore((s) => s.config);
|
|
6150
|
+
const path = useAppStore((s) => {
|
|
6151
|
+
var _a;
|
|
6152
|
+
return (_a = s.state.indexes.nodes[selectedId]) == null ? void 0 : _a.path;
|
|
6153
|
+
});
|
|
6154
|
+
const appStore = useAppStoreApi();
|
|
6155
|
+
return useMemo15(() => {
|
|
6156
|
+
const breadcrumbs = (path == null ? void 0 : path.map((zoneCompound) => {
|
|
6157
|
+
var _a, _b, _c, _d;
|
|
6158
|
+
const [componentId] = zoneCompound.split(":");
|
|
6159
|
+
if (componentId === "root") {
|
|
6160
|
+
return {
|
|
6161
|
+
label: ((_a = config == null ? void 0 : config.root) == null ? void 0 : _a.label) || "Page",
|
|
6162
|
+
selector: null
|
|
6163
|
+
};
|
|
6164
|
+
}
|
|
6165
|
+
const node = appStore.getState().state.indexes.nodes[componentId];
|
|
6166
|
+
const parentId = node.path[node.path.length - 1];
|
|
6167
|
+
const contentIds = ((_b = appStore.getState().state.indexes.zones[parentId]) == null ? void 0 : _b.contentIds) || [];
|
|
6168
|
+
const index = contentIds.indexOf(componentId);
|
|
6169
|
+
const label = node ? (_d = (_c = config.components[node.data.type]) == null ? void 0 : _c.label) != null ? _d : node.data.type : "Component";
|
|
6170
|
+
return {
|
|
6171
|
+
label,
|
|
6172
|
+
selector: node ? {
|
|
6173
|
+
index,
|
|
6174
|
+
zone: node.path[node.path.length - 1]
|
|
6175
|
+
} : null
|
|
6176
|
+
};
|
|
6177
|
+
})) || [];
|
|
6178
|
+
if (renderCount) {
|
|
6179
|
+
return breadcrumbs.slice(breadcrumbs.length - renderCount);
|
|
6180
|
+
}
|
|
6181
|
+
return breadcrumbs;
|
|
6182
|
+
}, [path, renderCount]);
|
|
6183
|
+
};
|
|
6152
6184
|
|
|
6153
|
-
// components/
|
|
6185
|
+
// components/Breadcrumbs/index.tsx
|
|
6186
|
+
import { jsx as jsx38, jsxs as jsxs14 } from "react/jsx-runtime";
|
|
6187
|
+
var getClassName22 = get_class_name_factory_default("Breadcrumbs", styles_module_default17);
|
|
6188
|
+
var Breadcrumbs = ({
|
|
6189
|
+
children,
|
|
6190
|
+
numParents = 1
|
|
6191
|
+
}) => {
|
|
6192
|
+
const setUi = useAppStore((s) => s.setUi);
|
|
6193
|
+
const breadcrumbs = useBreadcrumbs(numParents);
|
|
6194
|
+
return /* @__PURE__ */ jsxs14("div", { className: getClassName22(), children: [
|
|
6195
|
+
breadcrumbs.map((breadcrumb, i) => /* @__PURE__ */ jsxs14("div", { className: getClassName22("breadcrumb"), children: [
|
|
6196
|
+
/* @__PURE__ */ jsx38(
|
|
6197
|
+
"button",
|
|
6198
|
+
{
|
|
6199
|
+
type: "button",
|
|
6200
|
+
className: getClassName22("breadcrumbLabel"),
|
|
6201
|
+
onClick: () => setUi({ itemSelector: breadcrumb.selector }),
|
|
6202
|
+
children: breadcrumb.label
|
|
6203
|
+
}
|
|
6204
|
+
),
|
|
6205
|
+
/* @__PURE__ */ jsx38(ChevronRight, { size: 14 })
|
|
6206
|
+
] }, i)),
|
|
6207
|
+
children
|
|
6208
|
+
] });
|
|
6209
|
+
};
|
|
6210
|
+
|
|
6211
|
+
// components/Editor/components/Fields/index.tsx
|
|
6212
|
+
init_react_import();
|
|
6213
|
+
|
|
6214
|
+
// css-module:/Users/rami/Documents/apps/react-editor/packages/core/components/Editor/components/Fields/styles.module.css#css-module
|
|
6215
|
+
init_react_import();
|
|
6216
|
+
var styles_module_default18 = { "EditorFields": "_EditorFields_3dnua_1", "EditorFields--isLoading": "_EditorFields--isLoading_3dnua_6", "EditorFields-loadingOverlay": "_EditorFields-loadingOverlay_3dnua_10", "EditorFields-loadingOverlayInner": "_EditorFields-loadingOverlayInner_3dnua_25", "EditorFields-field": "_EditorFields-field_3dnua_32", "EditorFields--wrapFields": "_EditorFields--wrapFields_3dnua_36", "EditorFields-syncButton": "_EditorFields-syncButton_3dnua_46", "EditorFields-syncButton--unlinked": "_EditorFields-syncButton--unlinked_3dnua_78" };
|
|
6217
|
+
|
|
6218
|
+
// components/Editor/components/Fields/index.tsx
|
|
6154
6219
|
import {
|
|
6155
|
-
|
|
6220
|
+
memo as memo8,
|
|
6156
6221
|
useCallback as useCallback15,
|
|
6157
6222
|
useContext as useContext11,
|
|
6158
|
-
|
|
6223
|
+
useEffect as useEffect19,
|
|
6224
|
+
useMemo as useMemo16
|
|
6159
6225
|
} from "react";
|
|
6160
|
-
import {
|
|
6161
|
-
import { Fragment as Fragment8, jsx as
|
|
6162
|
-
var
|
|
6163
|
-
var
|
|
6164
|
-
|
|
6165
|
-
var LAYER_TREE_VIRTUALIZATION_OVERSCAN = 8;
|
|
6166
|
-
var MIN_VIRTUALIZED_LAYER_COUNT = 25;
|
|
6167
|
-
var measuredRowHeights = /* @__PURE__ */ new Map();
|
|
6168
|
-
var getZonesByParent = (zones) => {
|
|
6169
|
-
return Object.keys(zones).reduce((acc, zone) => {
|
|
6170
|
-
const [parentId] = zone.split(":");
|
|
6171
|
-
acc[parentId] = [...acc[parentId] || [], zone];
|
|
6172
|
-
return acc;
|
|
6173
|
-
}, {});
|
|
6174
|
-
};
|
|
6175
|
-
var getZoneLabel = (zoneCompound, nodes, config, label) => {
|
|
6176
|
-
var _a, _b, _c, _d;
|
|
6177
|
-
if (label !== void 0) {
|
|
6178
|
-
return label;
|
|
6179
|
-
}
|
|
6180
|
-
const [componentId, slotId] = zoneCompound.split(":");
|
|
6181
|
-
if (!slotId) {
|
|
6182
|
-
return;
|
|
6183
|
-
}
|
|
6184
|
-
const componentType = (_a = nodes[componentId]) == null ? void 0 : _a.data.type;
|
|
6185
|
-
const configForComponent = componentType && componentType !== rootAreaId ? config.components[componentType] : config.root;
|
|
6186
|
-
return (_d = (_c = (_b = configForComponent == null ? void 0 : configForComponent.fields) == null ? void 0 : _b[slotId]) == null ? void 0 : _c.label) != null ? _d : slotId;
|
|
6187
|
-
};
|
|
6188
|
-
var buildLayerNode = ({
|
|
6189
|
-
config,
|
|
6190
|
-
itemId,
|
|
6191
|
-
index,
|
|
6192
|
-
nodes,
|
|
6193
|
-
zoneCompound,
|
|
6194
|
-
zones,
|
|
6195
|
-
zonesByParent
|
|
6196
|
-
}) => {
|
|
6197
|
-
var _a, _b, _c;
|
|
6198
|
-
const nodeData = nodes[itemId];
|
|
6199
|
-
const componentType = ((_a = nodeData == null ? void 0 : nodeData.data.type) == null ? void 0 : _a.toString()) || "Component";
|
|
6200
|
-
const label = (_c = (_b = config.components[componentType]) == null ? void 0 : _b.label) != null ? _c : componentType;
|
|
6201
|
-
const childZoneCompounds = zonesByParent[itemId] || [];
|
|
6202
|
-
return {
|
|
6203
|
-
childZones: childZoneCompounds.map(
|
|
6204
|
-
(childZoneCompound) => buildLayerTree({
|
|
6205
|
-
config,
|
|
6206
|
-
nodes,
|
|
6207
|
-
zoneCompound: childZoneCompound,
|
|
6208
|
-
zones,
|
|
6209
|
-
zonesByParent
|
|
6210
|
-
})
|
|
6211
|
-
),
|
|
6212
|
-
componentType,
|
|
6213
|
-
index,
|
|
6214
|
-
itemId,
|
|
6215
|
-
label,
|
|
6216
|
-
zoneCompound
|
|
6217
|
-
};
|
|
6218
|
-
};
|
|
6219
|
-
var buildLayerTree = ({
|
|
6220
|
-
config,
|
|
6221
|
-
label,
|
|
6222
|
-
nodes,
|
|
6223
|
-
zoneCompound,
|
|
6224
|
-
zones,
|
|
6225
|
-
zonesByParent = getZonesByParent(zones)
|
|
6226
|
+
import { useShallow as useShallow7 } from "zustand/react/shallow";
|
|
6227
|
+
import { Fragment as Fragment8, jsx as jsx39, jsxs as jsxs15 } from "react/jsx-runtime";
|
|
6228
|
+
var getClassName23 = get_class_name_factory_default("EditorFields", styles_module_default18);
|
|
6229
|
+
var DefaultFields = ({
|
|
6230
|
+
children
|
|
6226
6231
|
}) => {
|
|
6227
|
-
|
|
6228
|
-
const contentIds = (_b = (_a = zones[zoneCompound]) == null ? void 0 : _a.contentIds) != null ? _b : [];
|
|
6229
|
-
return {
|
|
6230
|
-
items: contentIds.map(
|
|
6231
|
-
(itemId, index) => buildLayerNode({
|
|
6232
|
-
config,
|
|
6233
|
-
itemId,
|
|
6234
|
-
index,
|
|
6235
|
-
nodes,
|
|
6236
|
-
zoneCompound,
|
|
6237
|
-
zones,
|
|
6238
|
-
zonesByParent
|
|
6239
|
-
})
|
|
6240
|
-
),
|
|
6241
|
-
label: getZoneLabel(zoneCompound, nodes, config, label),
|
|
6242
|
-
zoneCompound
|
|
6243
|
-
};
|
|
6244
|
-
};
|
|
6245
|
-
var getEstimatedRowHeight = (itemId) => {
|
|
6246
|
-
var _a;
|
|
6247
|
-
return (_a = measuredRowHeights.get(itemId)) != null ? _a : DEFAULT_LAYER_ROW_HEIGHT;
|
|
6232
|
+
return /* @__PURE__ */ jsx39(Fragment8, { children });
|
|
6248
6233
|
};
|
|
6249
|
-
var
|
|
6250
|
-
|
|
6234
|
+
var createOnChange = (fieldName, appStore) => (value, updatedUi) => __async(null, null, function* () {
|
|
6235
|
+
const { dispatch, state, selectedItem, resolveComponentData } = appStore.getState();
|
|
6236
|
+
const { data, ui } = state;
|
|
6237
|
+
const { itemSelector } = ui;
|
|
6238
|
+
const rootProps = data.root.props || data.root;
|
|
6239
|
+
const currentProps = selectedItem ? selectedItem.props : rootProps;
|
|
6240
|
+
const newProps = __spreadProps(__spreadValues({}, currentProps), { [fieldName]: value });
|
|
6241
|
+
if (selectedItem && itemSelector) {
|
|
6242
|
+
const resolved = yield resolveComponentData(
|
|
6243
|
+
__spreadProps(__spreadValues({}, selectedItem), { props: newProps }),
|
|
6244
|
+
"replace"
|
|
6245
|
+
);
|
|
6246
|
+
const latestSelector = getSelectorForId(
|
|
6247
|
+
appStore.getState().state,
|
|
6248
|
+
selectedItem.props.id
|
|
6249
|
+
);
|
|
6250
|
+
if (!latestSelector) return;
|
|
6251
|
+
dispatch({
|
|
6252
|
+
type: "replace",
|
|
6253
|
+
destinationIndex: latestSelector.index,
|
|
6254
|
+
destinationZone: latestSelector.zone || rootDroppableId,
|
|
6255
|
+
data: resolved.node,
|
|
6256
|
+
ui: updatedUi
|
|
6257
|
+
});
|
|
6251
6258
|
return;
|
|
6252
6259
|
}
|
|
6253
|
-
|
|
6254
|
-
|
|
6255
|
-
|
|
6256
|
-
|
|
6257
|
-
|
|
6258
|
-
|
|
6259
|
-
|
|
6260
|
-
|
|
6261
|
-
|
|
6262
|
-
}
|
|
6263
|
-
|
|
6260
|
+
if (data.root.props) {
|
|
6261
|
+
dispatch({
|
|
6262
|
+
type: "replaceRoot",
|
|
6263
|
+
root: (yield resolveComponentData(
|
|
6264
|
+
__spreadProps(__spreadValues({}, data.root), { props: newProps }),
|
|
6265
|
+
"replace"
|
|
6266
|
+
)).node,
|
|
6267
|
+
ui: __spreadValues(__spreadValues({}, ui), updatedUi),
|
|
6268
|
+
recordHistory: true
|
|
6269
|
+
});
|
|
6270
|
+
return;
|
|
6264
6271
|
}
|
|
6265
|
-
|
|
6266
|
-
|
|
6267
|
-
|
|
6268
|
-
|
|
6269
|
-
|
|
6270
|
-
|
|
6271
|
-
|
|
6272
|
-
|
|
6273
|
-
|
|
6274
|
-
selectedPathIds
|
|
6275
|
-
}, ref) {
|
|
6276
|
-
const dispatch = useAppStore((s) => s.dispatch);
|
|
6277
|
-
const zoneStore = useContext11(ZoneStoreContext);
|
|
6278
|
-
const isHovering = useContextStore(
|
|
6279
|
-
ZoneStoreContext,
|
|
6280
|
-
(s) => s.hoveringComponent === node.itemId
|
|
6272
|
+
dispatch({
|
|
6273
|
+
type: "setData",
|
|
6274
|
+
data: { root: newProps }
|
|
6275
|
+
});
|
|
6276
|
+
});
|
|
6277
|
+
var FieldsChildInner = ({ fieldName }) => {
|
|
6278
|
+
const field = useAppStore((s) => s.fields.fields[fieldName]);
|
|
6279
|
+
const isReadOnly = useAppStore(
|
|
6280
|
+
(s) => ((s.selectedItem ? s.selectedItem.readOnly : s.state.data.root.readOnly) || {})[fieldName]
|
|
6281
6281
|
);
|
|
6282
|
-
const
|
|
6283
|
-
(
|
|
6284
|
-
|
|
6285
|
-
|
|
6286
|
-
|
|
6282
|
+
const id = useAppStore((s) => {
|
|
6283
|
+
if (!field) return null;
|
|
6284
|
+
return s.selectedItem ? `${s.selectedItem.props.id}_${field.type}_${fieldName}` : `root_${field.type}_${fieldName}`;
|
|
6285
|
+
});
|
|
6286
|
+
const permissions = useAppStore(
|
|
6287
|
+
useShallow7((s) => {
|
|
6288
|
+
const { selectedItem, permissions: permissions2 } = s;
|
|
6289
|
+
return selectedItem ? permissions2.getPermissions({ item: selectedItem }) : permissions2.getPermissions({ root: true });
|
|
6290
|
+
})
|
|
6287
6291
|
);
|
|
6288
|
-
const
|
|
6292
|
+
const appStore = useAppStoreApi();
|
|
6293
|
+
const onChange = useCallback15(createOnChange(fieldName, appStore), [
|
|
6294
|
+
fieldName
|
|
6295
|
+
]);
|
|
6296
|
+
const { visible = true } = field != null ? field : {};
|
|
6297
|
+
const fieldStore = useContext11(fieldContextStore.ctx);
|
|
6298
|
+
useEffect19(() => {
|
|
6299
|
+
return appStore.subscribe(
|
|
6300
|
+
(s) => {
|
|
6301
|
+
var _a;
|
|
6302
|
+
const data = s.getCurrentData();
|
|
6303
|
+
return (_a = data.props) == null ? void 0 : _a[fieldName];
|
|
6304
|
+
},
|
|
6305
|
+
(value) => {
|
|
6306
|
+
fieldStore.setState({ [fieldName]: value });
|
|
6307
|
+
}
|
|
6308
|
+
);
|
|
6309
|
+
}, [appStore, fieldStore]);
|
|
6310
|
+
if (!field || !id || !visible) return null;
|
|
6311
|
+
if (field.type === "slot") return null;
|
|
6312
|
+
return /* @__PURE__ */ jsx39("div", { className: getClassName23("field"), children: /* @__PURE__ */ jsx39(
|
|
6313
|
+
AutoFieldPrivate,
|
|
6314
|
+
{
|
|
6315
|
+
field,
|
|
6316
|
+
name: fieldName,
|
|
6317
|
+
id,
|
|
6318
|
+
readOnly: !permissions.edit || isReadOnly,
|
|
6319
|
+
onChange
|
|
6320
|
+
}
|
|
6321
|
+
) }, id);
|
|
6322
|
+
};
|
|
6323
|
+
var FieldsChild = ({ fieldName }) => {
|
|
6324
|
+
const appStore = useAppStoreApi();
|
|
6325
|
+
const initialValue = useMemo16(() => {
|
|
6326
|
+
var _a;
|
|
6327
|
+
const value = (_a = appStore.getState().getCurrentData().props) == null ? void 0 : _a[fieldName];
|
|
6328
|
+
return { [fieldName]: value };
|
|
6329
|
+
}, []);
|
|
6330
|
+
return /* @__PURE__ */ jsx39(fieldContextStore.Provider, { value: initialValue, children: /* @__PURE__ */ jsx39(FieldsChildInner, { fieldName }) });
|
|
6331
|
+
};
|
|
6332
|
+
var FieldsChildMemo = memo8(FieldsChild);
|
|
6333
|
+
var GlobalSyncButton = () => {
|
|
6334
|
+
const appStore = useAppStoreApi();
|
|
6335
|
+
const selectedItem = useAppStore((s) => s.selectedItem);
|
|
6336
|
+
const isGlobalType = useAppStore(
|
|
6289
6337
|
(s) => {
|
|
6290
|
-
var _a
|
|
6291
|
-
return
|
|
6338
|
+
var _a;
|
|
6339
|
+
return selectedItem ? ((_a = s.config.components[selectedItem.type]) == null ? void 0 : _a.global) === true : false;
|
|
6292
6340
|
}
|
|
6293
6341
|
);
|
|
6294
|
-
|
|
6295
|
-
const
|
|
6296
|
-
|
|
6297
|
-
|
|
6298
|
-
|
|
6299
|
-
|
|
6342
|
+
if (!selectedItem || !isGlobalType) return null;
|
|
6343
|
+
const isUnlinked = selectedItem.synced === false;
|
|
6344
|
+
const onClick = () => __async(null, null, function* () {
|
|
6345
|
+
const { dispatch, state, resolveComponentData } = appStore.getState();
|
|
6346
|
+
const latestSelector = getSelectorForId(state, selectedItem.props.id);
|
|
6347
|
+
if (!latestSelector) return;
|
|
6348
|
+
const resolved = yield resolveComponentData(
|
|
6349
|
+
__spreadProps(__spreadValues({}, selectedItem), { synced: isUnlinked ? true : false }),
|
|
6350
|
+
"replace"
|
|
6351
|
+
);
|
|
6352
|
+
dispatch({
|
|
6353
|
+
type: "replace",
|
|
6354
|
+
destinationIndex: latestSelector.index,
|
|
6355
|
+
destinationZone: latestSelector.zone || rootDroppableId,
|
|
6356
|
+
data: resolved.node
|
|
6357
|
+
});
|
|
6358
|
+
});
|
|
6359
|
+
const syncButtonClass = [
|
|
6360
|
+
getClassName23("syncButton"),
|
|
6361
|
+
isUnlinked ? styles_module_default18["EditorFields-syncButton--unlinked"] : null
|
|
6362
|
+
].filter(Boolean).join(" ");
|
|
6363
|
+
return /* @__PURE__ */ jsxs15("button", { type: "button", className: syncButtonClass, onClick, children: [
|
|
6364
|
+
/* @__PURE__ */ jsx39(Link, { size: 14 }),
|
|
6365
|
+
/* @__PURE__ */ jsx39("span", { children: isUnlinked ? "Link to shared" : "Linked to shared" })
|
|
6366
|
+
] });
|
|
6367
|
+
};
|
|
6368
|
+
var FieldsInternal = ({ wrapFields = true }) => {
|
|
6369
|
+
const overrides = useAppStore((s) => s.overrides);
|
|
6370
|
+
const componentResolving = useAppStore((s) => {
|
|
6371
|
+
var _a, _b;
|
|
6372
|
+
const loadingCount = s.selectedItem ? (_a = s.componentState[s.selectedItem.props.id]) == null ? void 0 : _a.loadingCount : (_b = s.componentState["root"]) == null ? void 0 : _b.loadingCount;
|
|
6373
|
+
return (loadingCount != null ? loadingCount : 0) > 0;
|
|
6374
|
+
});
|
|
6375
|
+
const itemSelector = useAppStore(useShallow7((s) => s.state.ui.itemSelector));
|
|
6376
|
+
const id = useAppStore((s) => {
|
|
6377
|
+
var _a;
|
|
6378
|
+
return (_a = s.selectedItem) == null ? void 0 : _a.props.id;
|
|
6379
|
+
});
|
|
6380
|
+
const appStore = useAppStoreApi();
|
|
6381
|
+
useRegisterFieldsSlice(appStore, id);
|
|
6382
|
+
const fieldsLoading = useAppStore((s) => s.fields.loading);
|
|
6383
|
+
const fieldNames = useAppStore(
|
|
6384
|
+
useShallow7((s) => {
|
|
6385
|
+
if (s.fields.id === id) {
|
|
6386
|
+
return Object.keys(s.fields.fields);
|
|
6387
|
+
}
|
|
6388
|
+
return [];
|
|
6389
|
+
})
|
|
6300
6390
|
);
|
|
6301
|
-
const
|
|
6302
|
-
|
|
6303
|
-
|
|
6391
|
+
const isLoading = fieldsLoading || componentResolving;
|
|
6392
|
+
const Wrapper = useMemo16(() => overrides.fields || DefaultFields, [overrides]);
|
|
6393
|
+
return /* @__PURE__ */ jsxs15(
|
|
6394
|
+
"form",
|
|
6304
6395
|
{
|
|
6305
|
-
|
|
6306
|
-
|
|
6307
|
-
|
|
6308
|
-
|
|
6309
|
-
isHovering,
|
|
6310
|
-
isSelected,
|
|
6311
|
-
isGlobal: isGlobal && !isUnlinked,
|
|
6312
|
-
isUnlinked: isGlobal && isUnlinked
|
|
6313
|
-
}),
|
|
6314
|
-
"data-index": dataIndex,
|
|
6315
|
-
"data-editor-layer-tree-id": node.itemId,
|
|
6396
|
+
className: getClassName23({ wrapFields }),
|
|
6397
|
+
onSubmit: (e) => {
|
|
6398
|
+
e.preventDefault();
|
|
6399
|
+
},
|
|
6316
6400
|
children: [
|
|
6317
|
-
/* @__PURE__ */
|
|
6318
|
-
|
|
6319
|
-
{
|
|
6320
|
-
|
|
6321
|
-
|
|
6322
|
-
onClick: () => {
|
|
6323
|
-
if (isSelected) {
|
|
6324
|
-
setItemSelector(null);
|
|
6325
|
-
return;
|
|
6326
|
-
}
|
|
6327
|
-
setItemSelector({
|
|
6328
|
-
index: node.index,
|
|
6329
|
-
zone: node.zoneCompound
|
|
6330
|
-
});
|
|
6331
|
-
zoneStore.getState().scrollToComponent(node.itemId);
|
|
6332
|
-
},
|
|
6333
|
-
onMouseEnter: (e) => {
|
|
6334
|
-
e.stopPropagation();
|
|
6335
|
-
zoneStore.setState({ hoveringComponent: node.itemId });
|
|
6336
|
-
},
|
|
6337
|
-
onMouseLeave: (e) => {
|
|
6338
|
-
e.stopPropagation();
|
|
6339
|
-
zoneStore.setState({ hoveringComponent: null });
|
|
6340
|
-
},
|
|
6341
|
-
children: [
|
|
6342
|
-
/* @__PURE__ */ jsx38(
|
|
6343
|
-
"div",
|
|
6344
|
-
{
|
|
6345
|
-
className: getClassNameLayer("chevron"),
|
|
6346
|
-
title: containsZone ? isSelected ? "Collapse" : "Expand" : void 0,
|
|
6347
|
-
children: containsZone && /* @__PURE__ */ jsx38(ChevronRight, { size: "12" })
|
|
6348
|
-
}
|
|
6349
|
-
),
|
|
6350
|
-
/* @__PURE__ */ jsxs14("div", { className: getClassNameLayer("title"), children: [
|
|
6351
|
-
/* @__PURE__ */ jsx38("div", { className: getClassNameLayer("icon"), children: /* @__PURE__ */ jsx38(Component, { size: "16" }) }),
|
|
6352
|
-
/* @__PURE__ */ jsx38("div", { className: getClassNameLayer("name"), children: node.label }),
|
|
6353
|
-
isGlobal && isUnlinked && /* @__PURE__ */ jsx38(
|
|
6354
|
-
"div",
|
|
6355
|
-
{
|
|
6356
|
-
className: getClassNameLayer("unlinkedGlyph"),
|
|
6357
|
-
title: "Unlinked from shared",
|
|
6358
|
-
children: /* @__PURE__ */ jsx38(Unlink2, { size: "12" })
|
|
6359
|
-
}
|
|
6360
|
-
)
|
|
6361
|
-
] })
|
|
6362
|
-
]
|
|
6363
|
-
}
|
|
6364
|
-
) }),
|
|
6365
|
-
containsZone && shouldRenderChildren && node.childZones.map((childZone) => /* @__PURE__ */ jsx38(
|
|
6366
|
-
"div",
|
|
6367
|
-
{
|
|
6368
|
-
className: getClassNameLayer("zones"),
|
|
6369
|
-
children: /* @__PURE__ */ jsx38(
|
|
6370
|
-
LayerTreeZone,
|
|
6371
|
-
{
|
|
6372
|
-
depth: depth + 1,
|
|
6373
|
-
selectedId,
|
|
6374
|
-
selectedPathIds,
|
|
6375
|
-
tree: childZone
|
|
6376
|
-
}
|
|
6377
|
-
)
|
|
6378
|
-
},
|
|
6379
|
-
childZone.zoneCompound
|
|
6380
|
-
))
|
|
6401
|
+
/* @__PURE__ */ jsxs15(Wrapper, { isLoading, itemSelector, children: [
|
|
6402
|
+
/* @__PURE__ */ jsx39(GlobalSyncButton, {}),
|
|
6403
|
+
fieldNames.map((fieldName) => /* @__PURE__ */ jsx39(FieldsChildMemo, { fieldName }, fieldName))
|
|
6404
|
+
] }),
|
|
6405
|
+
isLoading && /* @__PURE__ */ jsx39("div", { className: getClassName23("loadingOverlay"), children: /* @__PURE__ */ jsx39("div", { className: getClassName23("loadingOverlayInner"), children: /* @__PURE__ */ jsx39(Loader, { size: 16 }) }) })
|
|
6381
6406
|
]
|
|
6382
6407
|
}
|
|
6383
6408
|
);
|
|
6409
|
+
};
|
|
6410
|
+
var Fields = memo8(FieldsInternal);
|
|
6411
|
+
|
|
6412
|
+
// css-module:/Users/rami/Documents/apps/react-editor/packages/core/plugins/fields/styles.module.css#css-module
|
|
6413
|
+
init_react_import();
|
|
6414
|
+
var styles_module_default19 = { "FieldsPlugin": "_FieldsPlugin_262zt_1", "FieldsPlugin-header": "_FieldsPlugin-header_262zt_7" };
|
|
6415
|
+
|
|
6416
|
+
// plugins/fields/index.tsx
|
|
6417
|
+
import { jsx as jsx40, jsxs as jsxs16 } from "react/jsx-runtime";
|
|
6418
|
+
var getClassName24 = get_class_name_factory_default("FieldsPlugin", styles_module_default19);
|
|
6419
|
+
var CurrentTitle = () => {
|
|
6420
|
+
const label = useAppStore((s) => {
|
|
6421
|
+
var _a, _b;
|
|
6422
|
+
const selectedItem = s.selectedItem;
|
|
6423
|
+
return selectedItem ? (_b = (_a = s.config.components[selectedItem.type]) == null ? void 0 : _a.label) != null ? _b : selectedItem.type : "Page";
|
|
6424
|
+
});
|
|
6425
|
+
return label;
|
|
6426
|
+
};
|
|
6427
|
+
var fieldsPlugin = ({ desktopSideBar = "right" } = {}) => ({
|
|
6428
|
+
name: "fields",
|
|
6429
|
+
label: "Fields",
|
|
6430
|
+
render: () => /* @__PURE__ */ jsxs16("div", { className: getClassName24(), children: [
|
|
6431
|
+
/* @__PURE__ */ jsx40("div", { className: getClassName24("header"), children: /* @__PURE__ */ jsx40(Breadcrumbs, { numParents: 2, children: /* @__PURE__ */ jsx40(CurrentTitle, {}) }) }),
|
|
6432
|
+
/* @__PURE__ */ jsx40(Fields, {})
|
|
6433
|
+
] }),
|
|
6434
|
+
icon: /* @__PURE__ */ jsx40(RectangleEllipsis, {}),
|
|
6435
|
+
mobileOnly: desktopSideBar === "right"
|
|
6384
6436
|
});
|
|
6385
|
-
|
|
6386
|
-
|
|
6387
|
-
|
|
6388
|
-
|
|
6389
|
-
|
|
6390
|
-
|
|
6391
|
-
|
|
6392
|
-
|
|
6393
|
-
|
|
6394
|
-
|
|
6395
|
-
|
|
6396
|
-
|
|
6397
|
-
|
|
6398
|
-
|
|
6399
|
-
|
|
6400
|
-
|
|
6401
|
-
|
|
6402
|
-
|
|
6403
|
-
|
|
6404
|
-
|
|
6405
|
-
|
|
6406
|
-
|
|
6407
|
-
|
|
6408
|
-
|
|
6437
|
+
|
|
6438
|
+
// components/Editor/index.tsx
|
|
6439
|
+
init_react_import();
|
|
6440
|
+
import {
|
|
6441
|
+
createContext as createContext8,
|
|
6442
|
+
useCallback as useCallback25,
|
|
6443
|
+
useContext as useContext15,
|
|
6444
|
+
useEffect as useEffect26,
|
|
6445
|
+
useMemo as useMemo24,
|
|
6446
|
+
useRef as useRef19,
|
|
6447
|
+
useState as useState24
|
|
6448
|
+
} from "react";
|
|
6449
|
+
|
|
6450
|
+
// components/Editor/components/Preview/index.tsx
|
|
6451
|
+
init_react_import();
|
|
6452
|
+
import { useCallback as useCallback16, useEffect as useEffect21, useRef as useRef11, useMemo as useMemo17 } from "react";
|
|
6453
|
+
|
|
6454
|
+
// components/AutoFrame/index.tsx
|
|
6455
|
+
init_react_import();
|
|
6456
|
+
import {
|
|
6457
|
+
createContext as createContext6,
|
|
6458
|
+
useContext as useContext12,
|
|
6459
|
+
useEffect as useEffect20,
|
|
6460
|
+
useState as useState18
|
|
6461
|
+
} from "react";
|
|
6462
|
+
import hash from "object-hash";
|
|
6463
|
+
import { createPortal as createPortal3 } from "react-dom";
|
|
6464
|
+
import { Fragment as Fragment9, jsx as jsx41 } from "react/jsx-runtime";
|
|
6465
|
+
var styleSelector = 'style, link[rel="stylesheet"]';
|
|
6466
|
+
var collectStyles = (doc) => {
|
|
6467
|
+
const collected = [];
|
|
6468
|
+
doc.querySelectorAll(styleSelector).forEach((style) => {
|
|
6469
|
+
if (style.tagName === "STYLE") {
|
|
6470
|
+
const hasContent = !!style.innerHTML.trim();
|
|
6471
|
+
if (hasContent) {
|
|
6472
|
+
collected.push(style);
|
|
6409
6473
|
}
|
|
6410
|
-
|
|
6411
|
-
|
|
6474
|
+
} else {
|
|
6475
|
+
collected.push(style);
|
|
6476
|
+
}
|
|
6477
|
+
});
|
|
6478
|
+
return collected;
|
|
6412
6479
|
};
|
|
6413
|
-
var
|
|
6414
|
-
|
|
6415
|
-
|
|
6416
|
-
|
|
6417
|
-
tree
|
|
6418
|
-
}) => {
|
|
6419
|
-
return /* @__PURE__ */ jsxs14("ul", { className: getClassName22(), children: [
|
|
6420
|
-
tree.items.length === 0 && /* @__PURE__ */ jsx38("div", { className: getClassName22("helper"), children: "empty" }),
|
|
6421
|
-
tree.items.map((node) => /* @__PURE__ */ jsx38(
|
|
6422
|
-
Layer,
|
|
6423
|
-
{
|
|
6424
|
-
childIsSelected: selectedPathIds.has(node.itemId),
|
|
6425
|
-
depth,
|
|
6426
|
-
isSelected: selectedId === node.itemId,
|
|
6427
|
-
node,
|
|
6428
|
-
selectedId,
|
|
6429
|
-
selectedPathIds
|
|
6430
|
-
},
|
|
6431
|
-
node.itemId
|
|
6432
|
-
))
|
|
6433
|
-
] });
|
|
6434
|
-
};
|
|
6435
|
-
var VirtualizedLayerTreeItems = ({
|
|
6436
|
-
depth,
|
|
6437
|
-
selectedId,
|
|
6438
|
-
selectedPathIds,
|
|
6439
|
-
tree
|
|
6440
|
-
}) => {
|
|
6441
|
-
const listRef = useRef11(null);
|
|
6442
|
-
const virtualizer = useVirtualizer2({
|
|
6443
|
-
count: tree.items.length,
|
|
6444
|
-
estimateSize: (index) => getEstimatedRowHeight(tree.items[index].itemId),
|
|
6445
|
-
getItemKey: (index) => tree.items[index].itemId,
|
|
6446
|
-
getScrollElement: () => getScrollParent(listRef.current),
|
|
6447
|
-
overscan: LAYER_TREE_VIRTUALIZATION_OVERSCAN,
|
|
6448
|
-
measureElement: (element) => {
|
|
6449
|
-
const height = Math.ceil(element.getBoundingClientRect().height);
|
|
6450
|
-
const itemId = element.dataset.editorLayerTreeId;
|
|
6451
|
-
if (itemId) {
|
|
6452
|
-
cacheMeasuredRowHeight(itemId, height);
|
|
6453
|
-
}
|
|
6454
|
-
return height || DEFAULT_LAYER_ROW_HEIGHT;
|
|
6455
|
-
}
|
|
6480
|
+
var getStyleSheet = (el) => {
|
|
6481
|
+
return Array.from(document.styleSheets).find((ss) => {
|
|
6482
|
+
const ownerNode = ss.ownerNode;
|
|
6483
|
+
return ownerNode.href === el.href;
|
|
6456
6484
|
});
|
|
6457
|
-
|
|
6458
|
-
|
|
6459
|
-
|
|
6460
|
-
|
|
6461
|
-
|
|
6462
|
-
|
|
6463
|
-
|
|
6464
|
-
|
|
6465
|
-
|
|
6466
|
-
renderedItems.push(
|
|
6467
|
-
/* @__PURE__ */ jsx38(
|
|
6468
|
-
"li",
|
|
6469
|
-
{
|
|
6470
|
-
"aria-hidden": "true",
|
|
6471
|
-
style: { height: `${gapSize}px` }
|
|
6472
|
-
},
|
|
6473
|
-
`gap:${tree.zoneCompound}:${previousIndex}:${virtualItem.index}`
|
|
6474
|
-
)
|
|
6485
|
+
};
|
|
6486
|
+
var getStyles = (styleSheet) => {
|
|
6487
|
+
if (styleSheet) {
|
|
6488
|
+
try {
|
|
6489
|
+
return Array.from(styleSheet.cssRules).map((rule) => rule.cssText).join("");
|
|
6490
|
+
} catch (e) {
|
|
6491
|
+
console.warn(
|
|
6492
|
+
"Access to stylesheet %s is denied. Ignoring\u2026",
|
|
6493
|
+
styleSheet.href
|
|
6475
6494
|
);
|
|
6476
6495
|
}
|
|
6477
|
-
renderedItems.push(
|
|
6478
|
-
/* @__PURE__ */ jsx38(
|
|
6479
|
-
Layer,
|
|
6480
|
-
{
|
|
6481
|
-
childIsSelected: selectedPathIds.has(node.itemId),
|
|
6482
|
-
dataIndex: virtualItem.index,
|
|
6483
|
-
depth,
|
|
6484
|
-
isSelected: selectedId === node.itemId,
|
|
6485
|
-
node,
|
|
6486
|
-
ref: virtualizer.measureElement,
|
|
6487
|
-
selectedId,
|
|
6488
|
-
selectedPathIds
|
|
6489
|
-
},
|
|
6490
|
-
node.itemId
|
|
6491
|
-
)
|
|
6492
|
-
);
|
|
6493
|
-
previousEnd = virtualItem.end;
|
|
6494
|
-
previousIndex = virtualItem.index;
|
|
6495
|
-
});
|
|
6496
|
-
const trailingGap = Math.max(totalSize - previousEnd, 0);
|
|
6497
|
-
if (trailingGap > 0) {
|
|
6498
|
-
renderedItems.push(
|
|
6499
|
-
/* @__PURE__ */ jsx38(
|
|
6500
|
-
"li",
|
|
6501
|
-
{
|
|
6502
|
-
"aria-hidden": "true",
|
|
6503
|
-
style: { height: `${trailingGap}px` }
|
|
6504
|
-
},
|
|
6505
|
-
`gap:${tree.zoneCompound}:${previousIndex}:end`
|
|
6506
|
-
)
|
|
6507
|
-
);
|
|
6508
6496
|
}
|
|
6509
|
-
return
|
|
6510
|
-
tree.items.length === 0 && /* @__PURE__ */ jsx38("div", { className: getClassName22("helper"), children: "empty" }),
|
|
6511
|
-
renderedItems
|
|
6512
|
-
] });
|
|
6513
|
-
};
|
|
6514
|
-
var LayerTree = ({
|
|
6515
|
-
selectedId,
|
|
6516
|
-
selectedPathIds,
|
|
6517
|
-
trees
|
|
6518
|
-
}) => {
|
|
6519
|
-
return /* @__PURE__ */ jsx38(Fragment8, { children: trees.map((tree) => /* @__PURE__ */ jsx38(
|
|
6520
|
-
LayerTreeZone,
|
|
6521
|
-
{
|
|
6522
|
-
depth: 0,
|
|
6523
|
-
selectedId,
|
|
6524
|
-
selectedPathIds,
|
|
6525
|
-
tree
|
|
6526
|
-
},
|
|
6527
|
-
tree.zoneCompound
|
|
6528
|
-
)) });
|
|
6529
|
-
};
|
|
6530
|
-
|
|
6531
|
-
// components/Editor/components/Outline/index.tsx
|
|
6532
|
-
import { useMemo as useMemo15 } from "react";
|
|
6533
|
-
|
|
6534
|
-
// lib/data/find-zones-for-area.ts
|
|
6535
|
-
init_react_import();
|
|
6536
|
-
var findZonesForArea = (state, area) => {
|
|
6537
|
-
return Object.keys(state.indexes.zones).filter(
|
|
6538
|
-
(zone) => zone.split(":")[0] === area
|
|
6539
|
-
);
|
|
6540
|
-
};
|
|
6541
|
-
|
|
6542
|
-
// components/Editor/components/Outline/index.tsx
|
|
6543
|
-
import { useShallow as useShallow7 } from "zustand/react/shallow";
|
|
6544
|
-
import { jsx as jsx39 } from "react/jsx-runtime";
|
|
6545
|
-
var Outline = () => {
|
|
6546
|
-
const outlineOverride = useAppStore((s) => s.overrides.outline);
|
|
6547
|
-
const config = useAppStore((s) => s.config);
|
|
6548
|
-
const nodes = useAppStore((s) => s.state.indexes.nodes);
|
|
6549
|
-
const zones = useAppStore((s) => s.state.indexes.zones);
|
|
6550
|
-
const selectedId = useAppStore((s) => {
|
|
6551
|
-
var _a;
|
|
6552
|
-
return ((_a = s.selectedItem) == null ? void 0 : _a.props.id) || null;
|
|
6553
|
-
});
|
|
6554
|
-
const rootZones = useAppStore(
|
|
6555
|
-
useShallow7((s) => findZonesForArea(s.state, "root"))
|
|
6556
|
-
);
|
|
6557
|
-
const selectedPathIds = useMemo15(() => {
|
|
6558
|
-
var _a;
|
|
6559
|
-
const selectedPath = selectedId ? (_a = nodes[selectedId]) == null ? void 0 : _a.path : null;
|
|
6560
|
-
return new Set(
|
|
6561
|
-
(selectedPath == null ? void 0 : selectedPath.map((candidate) => candidate.split(":")[0]).filter(Boolean)) || []
|
|
6562
|
-
);
|
|
6563
|
-
}, [nodes, selectedId]);
|
|
6564
|
-
const trees = useMemo15(
|
|
6565
|
-
() => rootZones.map(
|
|
6566
|
-
(zoneCompound) => buildLayerTree({
|
|
6567
|
-
config,
|
|
6568
|
-
label: rootZones.length === 1 ? "" : zoneCompound.split(":")[1],
|
|
6569
|
-
nodes,
|
|
6570
|
-
zoneCompound,
|
|
6571
|
-
zones
|
|
6572
|
-
})
|
|
6573
|
-
),
|
|
6574
|
-
[config, nodes, rootZones, zones]
|
|
6575
|
-
);
|
|
6576
|
-
const Wrapper = useMemo15(() => outlineOverride || "div", [outlineOverride]);
|
|
6577
|
-
return /* @__PURE__ */ jsx39(Wrapper, { children: /* @__PURE__ */ jsx39(
|
|
6578
|
-
LayerTree,
|
|
6579
|
-
{
|
|
6580
|
-
selectedId,
|
|
6581
|
-
selectedPathIds,
|
|
6582
|
-
trees
|
|
6583
|
-
}
|
|
6584
|
-
) });
|
|
6497
|
+
return "";
|
|
6585
6498
|
};
|
|
6586
|
-
|
|
6587
|
-
|
|
6588
|
-
|
|
6589
|
-
|
|
6590
|
-
|
|
6591
|
-
|
|
6592
|
-
|
|
6593
|
-
var getClassName23 = get_class_name_factory_default("OutlinePlugin", styles_module_default18);
|
|
6594
|
-
var outlinePlugin = () => ({
|
|
6595
|
-
name: "outline",
|
|
6596
|
-
label: "Outline",
|
|
6597
|
-
render: () => /* @__PURE__ */ jsx40("div", { className: getClassName23(), children: /* @__PURE__ */ jsx40(Outline, {}) }),
|
|
6598
|
-
icon: /* @__PURE__ */ jsx40(Layers, {})
|
|
6599
|
-
});
|
|
6600
|
-
|
|
6601
|
-
// plugins/fields/index.tsx
|
|
6602
|
-
init_react_import();
|
|
6603
|
-
|
|
6604
|
-
// components/Breadcrumbs/index.tsx
|
|
6605
|
-
init_react_import();
|
|
6606
|
-
|
|
6607
|
-
// css-module:/Users/rami/Documents/apps/react-editor/packages/core/components/Breadcrumbs/styles.module.css#css-module
|
|
6608
|
-
init_react_import();
|
|
6609
|
-
var styles_module_default19 = { "Breadcrumbs": "_Breadcrumbs_1cjxk_1", "Breadcrumbs-breadcrumb": "_Breadcrumbs-breadcrumb_1cjxk_10", "Breadcrumbs-breadcrumbLabel": "_Breadcrumbs-breadcrumbLabel_1cjxk_17" };
|
|
6610
|
-
|
|
6611
|
-
// lib/use-breadcrumbs.ts
|
|
6612
|
-
init_react_import();
|
|
6613
|
-
import { useMemo as useMemo16 } from "react";
|
|
6614
|
-
var useBreadcrumbs = (renderCount) => {
|
|
6615
|
-
const selectedId = useAppStore((s) => {
|
|
6616
|
-
var _a;
|
|
6617
|
-
return (_a = s.selectedItem) == null ? void 0 : _a.props.id;
|
|
6618
|
-
});
|
|
6619
|
-
const config = useAppStore((s) => s.config);
|
|
6620
|
-
const path = useAppStore((s) => {
|
|
6621
|
-
var _a;
|
|
6622
|
-
return (_a = s.state.indexes.nodes[selectedId]) == null ? void 0 : _a.path;
|
|
6623
|
-
});
|
|
6624
|
-
const appStore = useAppStoreApi();
|
|
6625
|
-
return useMemo16(() => {
|
|
6626
|
-
const breadcrumbs = (path == null ? void 0 : path.map((zoneCompound) => {
|
|
6627
|
-
var _a, _b, _c, _d;
|
|
6628
|
-
const [componentId] = zoneCompound.split(":");
|
|
6629
|
-
if (componentId === "root") {
|
|
6630
|
-
return {
|
|
6631
|
-
label: ((_a = config == null ? void 0 : config.root) == null ? void 0 : _a.label) || "Page",
|
|
6632
|
-
selector: null
|
|
6633
|
-
};
|
|
6634
|
-
}
|
|
6635
|
-
const node = appStore.getState().state.indexes.nodes[componentId];
|
|
6636
|
-
const parentId = node.path[node.path.length - 1];
|
|
6637
|
-
const contentIds = ((_b = appStore.getState().state.indexes.zones[parentId]) == null ? void 0 : _b.contentIds) || [];
|
|
6638
|
-
const index = contentIds.indexOf(componentId);
|
|
6639
|
-
const label = node ? (_d = (_c = config.components[node.data.type]) == null ? void 0 : _c.label) != null ? _d : node.data.type : "Component";
|
|
6640
|
-
return {
|
|
6641
|
-
label,
|
|
6642
|
-
selector: node ? {
|
|
6643
|
-
index,
|
|
6644
|
-
zone: node.path[node.path.length - 1]
|
|
6645
|
-
} : null
|
|
6646
|
-
};
|
|
6647
|
-
})) || [];
|
|
6648
|
-
if (renderCount) {
|
|
6649
|
-
return breadcrumbs.slice(breadcrumbs.length - renderCount);
|
|
6650
|
-
}
|
|
6651
|
-
return breadcrumbs;
|
|
6652
|
-
}, [path, renderCount]);
|
|
6499
|
+
var syncAttributes = (sourceElement, targetElement) => {
|
|
6500
|
+
const attributes = sourceElement.attributes;
|
|
6501
|
+
if ((attributes == null ? void 0 : attributes.length) > 0) {
|
|
6502
|
+
Array.from(attributes).forEach((attribute) => {
|
|
6503
|
+
targetElement.setAttribute(attribute.name, attribute.value);
|
|
6504
|
+
});
|
|
6505
|
+
}
|
|
6653
6506
|
};
|
|
6654
|
-
|
|
6655
|
-
|
|
6656
|
-
import { jsx as jsx41, jsxs as jsxs15 } from "react/jsx-runtime";
|
|
6657
|
-
var getClassName24 = get_class_name_factory_default("Breadcrumbs", styles_module_default19);
|
|
6658
|
-
var Breadcrumbs = ({
|
|
6507
|
+
var defer = (fn) => setTimeout(fn, 0);
|
|
6508
|
+
var CopyHostStyles = ({
|
|
6659
6509
|
children,
|
|
6660
|
-
|
|
6661
|
-
|
|
6662
|
-
const setUi = useAppStore((s) => s.setUi);
|
|
6663
|
-
const breadcrumbs = useBreadcrumbs(numParents);
|
|
6664
|
-
return /* @__PURE__ */ jsxs15("div", { className: getClassName24(), children: [
|
|
6665
|
-
breadcrumbs.map((breadcrumb, i) => /* @__PURE__ */ jsxs15("div", { className: getClassName24("breadcrumb"), children: [
|
|
6666
|
-
/* @__PURE__ */ jsx41(
|
|
6667
|
-
"button",
|
|
6668
|
-
{
|
|
6669
|
-
type: "button",
|
|
6670
|
-
className: getClassName24("breadcrumbLabel"),
|
|
6671
|
-
onClick: () => setUi({ itemSelector: breadcrumb.selector }),
|
|
6672
|
-
children: breadcrumb.label
|
|
6673
|
-
}
|
|
6674
|
-
),
|
|
6675
|
-
/* @__PURE__ */ jsx41(ChevronRight, { size: 14 })
|
|
6676
|
-
] }, i)),
|
|
6677
|
-
children
|
|
6678
|
-
] });
|
|
6679
|
-
};
|
|
6680
|
-
|
|
6681
|
-
// components/Editor/components/Fields/index.tsx
|
|
6682
|
-
init_react_import();
|
|
6683
|
-
|
|
6684
|
-
// css-module:/Users/rami/Documents/apps/react-editor/packages/core/components/Editor/components/Fields/styles.module.css#css-module
|
|
6685
|
-
init_react_import();
|
|
6686
|
-
var styles_module_default20 = { "EditorFields": "_EditorFields_3dnua_1", "EditorFields--isLoading": "_EditorFields--isLoading_3dnua_6", "EditorFields-loadingOverlay": "_EditorFields-loadingOverlay_3dnua_10", "EditorFields-loadingOverlayInner": "_EditorFields-loadingOverlayInner_3dnua_25", "EditorFields-field": "_EditorFields-field_3dnua_32", "EditorFields--wrapFields": "_EditorFields--wrapFields_3dnua_36", "EditorFields-syncButton": "_EditorFields-syncButton_3dnua_46", "EditorFields-syncButton--unlinked": "_EditorFields-syncButton--unlinked_3dnua_78" };
|
|
6687
|
-
|
|
6688
|
-
// components/Editor/components/Fields/index.tsx
|
|
6689
|
-
import {
|
|
6690
|
-
memo as memo8,
|
|
6691
|
-
useCallback as useCallback16,
|
|
6692
|
-
useContext as useContext12,
|
|
6693
|
-
useEffect as useEffect19,
|
|
6694
|
-
useMemo as useMemo17
|
|
6695
|
-
} from "react";
|
|
6696
|
-
import { useShallow as useShallow8 } from "zustand/react/shallow";
|
|
6697
|
-
import { Fragment as Fragment9, jsx as jsx42, jsxs as jsxs16 } from "react/jsx-runtime";
|
|
6698
|
-
var getClassName25 = get_class_name_factory_default("EditorFields", styles_module_default20);
|
|
6699
|
-
var DefaultFields = ({
|
|
6700
|
-
children
|
|
6701
|
-
}) => {
|
|
6702
|
-
return /* @__PURE__ */ jsx42(Fragment9, { children });
|
|
6703
|
-
};
|
|
6704
|
-
var createOnChange = (fieldName, appStore) => (value, updatedUi) => __async(null, null, function* () {
|
|
6705
|
-
const { dispatch, state, selectedItem, resolveComponentData } = appStore.getState();
|
|
6706
|
-
const { data, ui } = state;
|
|
6707
|
-
const { itemSelector } = ui;
|
|
6708
|
-
const rootProps = data.root.props || data.root;
|
|
6709
|
-
const currentProps = selectedItem ? selectedItem.props : rootProps;
|
|
6710
|
-
const newProps = __spreadProps(__spreadValues({}, currentProps), { [fieldName]: value });
|
|
6711
|
-
if (selectedItem && itemSelector) {
|
|
6712
|
-
const resolved = yield resolveComponentData(
|
|
6713
|
-
__spreadProps(__spreadValues({}, selectedItem), { props: newProps }),
|
|
6714
|
-
"replace"
|
|
6715
|
-
);
|
|
6716
|
-
const latestSelector = getSelectorForId(
|
|
6717
|
-
appStore.getState().state,
|
|
6718
|
-
selectedItem.props.id
|
|
6719
|
-
);
|
|
6720
|
-
if (!latestSelector) return;
|
|
6721
|
-
dispatch({
|
|
6722
|
-
type: "replace",
|
|
6723
|
-
destinationIndex: latestSelector.index,
|
|
6724
|
-
destinationZone: latestSelector.zone || rootDroppableId,
|
|
6725
|
-
data: resolved.node,
|
|
6726
|
-
ui: updatedUi
|
|
6727
|
-
});
|
|
6728
|
-
return;
|
|
6729
|
-
}
|
|
6730
|
-
if (data.root.props) {
|
|
6731
|
-
dispatch({
|
|
6732
|
-
type: "replaceRoot",
|
|
6733
|
-
root: (yield resolveComponentData(
|
|
6734
|
-
__spreadProps(__spreadValues({}, data.root), { props: newProps }),
|
|
6735
|
-
"replace"
|
|
6736
|
-
)).node,
|
|
6737
|
-
ui: __spreadValues(__spreadValues({}, ui), updatedUi),
|
|
6738
|
-
recordHistory: true
|
|
6739
|
-
});
|
|
6740
|
-
return;
|
|
6741
|
-
}
|
|
6742
|
-
dispatch({
|
|
6743
|
-
type: "setData",
|
|
6744
|
-
data: { root: newProps }
|
|
6745
|
-
});
|
|
6746
|
-
});
|
|
6747
|
-
var FieldsChildInner = ({ fieldName }) => {
|
|
6748
|
-
const field = useAppStore((s) => s.fields.fields[fieldName]);
|
|
6749
|
-
const isReadOnly = useAppStore(
|
|
6750
|
-
(s) => ((s.selectedItem ? s.selectedItem.readOnly : s.state.data.root.readOnly) || {})[fieldName]
|
|
6751
|
-
);
|
|
6752
|
-
const id = useAppStore((s) => {
|
|
6753
|
-
if (!field) return null;
|
|
6754
|
-
return s.selectedItem ? `${s.selectedItem.props.id}_${field.type}_${fieldName}` : `root_${field.type}_${fieldName}`;
|
|
6755
|
-
});
|
|
6756
|
-
const permissions = useAppStore(
|
|
6757
|
-
useShallow8((s) => {
|
|
6758
|
-
const { selectedItem, permissions: permissions2 } = s;
|
|
6759
|
-
return selectedItem ? permissions2.getPermissions({ item: selectedItem }) : permissions2.getPermissions({ root: true });
|
|
6760
|
-
})
|
|
6761
|
-
);
|
|
6762
|
-
const appStore = useAppStoreApi();
|
|
6763
|
-
const onChange = useCallback16(createOnChange(fieldName, appStore), [
|
|
6764
|
-
fieldName
|
|
6765
|
-
]);
|
|
6766
|
-
const { visible = true } = field != null ? field : {};
|
|
6767
|
-
const fieldStore = useContext12(fieldContextStore.ctx);
|
|
6768
|
-
useEffect19(() => {
|
|
6769
|
-
return appStore.subscribe(
|
|
6770
|
-
(s) => {
|
|
6771
|
-
var _a;
|
|
6772
|
-
const data = s.getCurrentData();
|
|
6773
|
-
return (_a = data.props) == null ? void 0 : _a[fieldName];
|
|
6774
|
-
},
|
|
6775
|
-
(value) => {
|
|
6776
|
-
fieldStore.setState({ [fieldName]: value });
|
|
6777
|
-
}
|
|
6778
|
-
);
|
|
6779
|
-
}, [appStore, fieldStore]);
|
|
6780
|
-
if (!field || !id || !visible) return null;
|
|
6781
|
-
if (field.type === "slot") return null;
|
|
6782
|
-
return /* @__PURE__ */ jsx42("div", { className: getClassName25("field"), children: /* @__PURE__ */ jsx42(
|
|
6783
|
-
AutoFieldPrivate,
|
|
6784
|
-
{
|
|
6785
|
-
field,
|
|
6786
|
-
name: fieldName,
|
|
6787
|
-
id,
|
|
6788
|
-
readOnly: !permissions.edit || isReadOnly,
|
|
6789
|
-
onChange
|
|
6790
|
-
}
|
|
6791
|
-
) }, id);
|
|
6792
|
-
};
|
|
6793
|
-
var FieldsChild = ({ fieldName }) => {
|
|
6794
|
-
const appStore = useAppStoreApi();
|
|
6795
|
-
const initialValue = useMemo17(() => {
|
|
6796
|
-
var _a;
|
|
6797
|
-
const value = (_a = appStore.getState().getCurrentData().props) == null ? void 0 : _a[fieldName];
|
|
6798
|
-
return { [fieldName]: value };
|
|
6799
|
-
}, []);
|
|
6800
|
-
return /* @__PURE__ */ jsx42(fieldContextStore.Provider, { value: initialValue, children: /* @__PURE__ */ jsx42(FieldsChildInner, { fieldName }) });
|
|
6801
|
-
};
|
|
6802
|
-
var FieldsChildMemo = memo8(FieldsChild);
|
|
6803
|
-
var GlobalSyncButton = () => {
|
|
6804
|
-
const appStore = useAppStoreApi();
|
|
6805
|
-
const selectedItem = useAppStore((s) => s.selectedItem);
|
|
6806
|
-
const isGlobalType = useAppStore(
|
|
6807
|
-
(s) => {
|
|
6808
|
-
var _a;
|
|
6809
|
-
return selectedItem ? ((_a = s.config.components[selectedItem.type]) == null ? void 0 : _a.global) === true : false;
|
|
6810
|
-
}
|
|
6811
|
-
);
|
|
6812
|
-
if (!selectedItem || !isGlobalType) return null;
|
|
6813
|
-
const isUnlinked = selectedItem.synced === false;
|
|
6814
|
-
const onClick = () => __async(null, null, function* () {
|
|
6815
|
-
const { dispatch, state, resolveComponentData } = appStore.getState();
|
|
6816
|
-
const latestSelector = getSelectorForId(state, selectedItem.props.id);
|
|
6817
|
-
if (!latestSelector) return;
|
|
6818
|
-
const resolved = yield resolveComponentData(
|
|
6819
|
-
__spreadProps(__spreadValues({}, selectedItem), { synced: isUnlinked ? true : false }),
|
|
6820
|
-
"replace"
|
|
6821
|
-
);
|
|
6822
|
-
dispatch({
|
|
6823
|
-
type: "replace",
|
|
6824
|
-
destinationIndex: latestSelector.index,
|
|
6825
|
-
destinationZone: latestSelector.zone || rootDroppableId,
|
|
6826
|
-
data: resolved.node
|
|
6827
|
-
});
|
|
6828
|
-
});
|
|
6829
|
-
const syncButtonClass = [
|
|
6830
|
-
getClassName25("syncButton"),
|
|
6831
|
-
isUnlinked ? styles_module_default20["EditorFields-syncButton--unlinked"] : null
|
|
6832
|
-
].filter(Boolean).join(" ");
|
|
6833
|
-
return /* @__PURE__ */ jsxs16("button", { type: "button", className: syncButtonClass, onClick, children: [
|
|
6834
|
-
/* @__PURE__ */ jsx42(Link, { size: 14 }),
|
|
6835
|
-
/* @__PURE__ */ jsx42("span", { children: isUnlinked ? "Link to shared" : "Linked to shared" })
|
|
6836
|
-
] });
|
|
6837
|
-
};
|
|
6838
|
-
var FieldsInternal = ({ wrapFields = true }) => {
|
|
6839
|
-
const overrides = useAppStore((s) => s.overrides);
|
|
6840
|
-
const componentResolving = useAppStore((s) => {
|
|
6841
|
-
var _a, _b;
|
|
6842
|
-
const loadingCount = s.selectedItem ? (_a = s.componentState[s.selectedItem.props.id]) == null ? void 0 : _a.loadingCount : (_b = s.componentState["root"]) == null ? void 0 : _b.loadingCount;
|
|
6843
|
-
return (loadingCount != null ? loadingCount : 0) > 0;
|
|
6844
|
-
});
|
|
6845
|
-
const itemSelector = useAppStore(useShallow8((s) => s.state.ui.itemSelector));
|
|
6846
|
-
const id = useAppStore((s) => {
|
|
6847
|
-
var _a;
|
|
6848
|
-
return (_a = s.selectedItem) == null ? void 0 : _a.props.id;
|
|
6849
|
-
});
|
|
6850
|
-
const appStore = useAppStoreApi();
|
|
6851
|
-
useRegisterFieldsSlice(appStore, id);
|
|
6852
|
-
const fieldsLoading = useAppStore((s) => s.fields.loading);
|
|
6853
|
-
const fieldNames = useAppStore(
|
|
6854
|
-
useShallow8((s) => {
|
|
6855
|
-
if (s.fields.id === id) {
|
|
6856
|
-
return Object.keys(s.fields.fields);
|
|
6857
|
-
}
|
|
6858
|
-
return [];
|
|
6859
|
-
})
|
|
6860
|
-
);
|
|
6861
|
-
const isLoading = fieldsLoading || componentResolving;
|
|
6862
|
-
const Wrapper = useMemo17(() => overrides.fields || DefaultFields, [overrides]);
|
|
6863
|
-
return /* @__PURE__ */ jsxs16(
|
|
6864
|
-
"form",
|
|
6865
|
-
{
|
|
6866
|
-
className: getClassName25({ wrapFields }),
|
|
6867
|
-
onSubmit: (e) => {
|
|
6868
|
-
e.preventDefault();
|
|
6869
|
-
},
|
|
6870
|
-
children: [
|
|
6871
|
-
/* @__PURE__ */ jsxs16(Wrapper, { isLoading, itemSelector, children: [
|
|
6872
|
-
/* @__PURE__ */ jsx42(GlobalSyncButton, {}),
|
|
6873
|
-
fieldNames.map((fieldName) => /* @__PURE__ */ jsx42(FieldsChildMemo, { fieldName }, fieldName))
|
|
6874
|
-
] }),
|
|
6875
|
-
isLoading && /* @__PURE__ */ jsx42("div", { className: getClassName25("loadingOverlay"), children: /* @__PURE__ */ jsx42("div", { className: getClassName25("loadingOverlayInner"), children: /* @__PURE__ */ jsx42(Loader, { size: 16 }) }) })
|
|
6876
|
-
]
|
|
6877
|
-
}
|
|
6878
|
-
);
|
|
6879
|
-
};
|
|
6880
|
-
var Fields = memo8(FieldsInternal);
|
|
6881
|
-
|
|
6882
|
-
// css-module:/Users/rami/Documents/apps/react-editor/packages/core/plugins/fields/styles.module.css#css-module
|
|
6883
|
-
init_react_import();
|
|
6884
|
-
var styles_module_default21 = { "FieldsPlugin": "_FieldsPlugin_262zt_1", "FieldsPlugin-header": "_FieldsPlugin-header_262zt_7" };
|
|
6885
|
-
|
|
6886
|
-
// plugins/fields/index.tsx
|
|
6887
|
-
import { jsx as jsx43, jsxs as jsxs17 } from "react/jsx-runtime";
|
|
6888
|
-
var getClassName26 = get_class_name_factory_default("FieldsPlugin", styles_module_default21);
|
|
6889
|
-
var CurrentTitle = () => {
|
|
6890
|
-
const label = useAppStore((s) => {
|
|
6891
|
-
var _a, _b;
|
|
6892
|
-
const selectedItem = s.selectedItem;
|
|
6893
|
-
return selectedItem ? (_b = (_a = s.config.components[selectedItem.type]) == null ? void 0 : _a.label) != null ? _b : selectedItem.type : "Page";
|
|
6894
|
-
});
|
|
6895
|
-
return label;
|
|
6896
|
-
};
|
|
6897
|
-
var fieldsPlugin = ({ desktopSideBar = "right" } = {}) => ({
|
|
6898
|
-
name: "fields",
|
|
6899
|
-
label: "Fields",
|
|
6900
|
-
render: () => /* @__PURE__ */ jsxs17("div", { className: getClassName26(), children: [
|
|
6901
|
-
/* @__PURE__ */ jsx43("div", { className: getClassName26("header"), children: /* @__PURE__ */ jsx43(Breadcrumbs, { numParents: 2, children: /* @__PURE__ */ jsx43(CurrentTitle, {}) }) }),
|
|
6902
|
-
/* @__PURE__ */ jsx43(Fields, {})
|
|
6903
|
-
] }),
|
|
6904
|
-
icon: /* @__PURE__ */ jsx43(RectangleEllipsis, {}),
|
|
6905
|
-
mobileOnly: desktopSideBar === "right"
|
|
6906
|
-
});
|
|
6907
|
-
|
|
6908
|
-
// components/Editor/index.tsx
|
|
6909
|
-
init_react_import();
|
|
6910
|
-
import {
|
|
6911
|
-
createContext as createContext8,
|
|
6912
|
-
useCallback as useCallback25,
|
|
6913
|
-
useContext as useContext15,
|
|
6914
|
-
useEffect as useEffect26,
|
|
6915
|
-
useMemo as useMemo24,
|
|
6916
|
-
useRef as useRef19,
|
|
6917
|
-
useState as useState24
|
|
6918
|
-
} from "react";
|
|
6919
|
-
|
|
6920
|
-
// components/Editor/components/Preview/index.tsx
|
|
6921
|
-
init_react_import();
|
|
6922
|
-
import { useCallback as useCallback17, useEffect as useEffect21, useRef as useRef12, useMemo as useMemo18 } from "react";
|
|
6923
|
-
|
|
6924
|
-
// components/AutoFrame/index.tsx
|
|
6925
|
-
init_react_import();
|
|
6926
|
-
import {
|
|
6927
|
-
createContext as createContext6,
|
|
6928
|
-
useContext as useContext13,
|
|
6929
|
-
useEffect as useEffect20,
|
|
6930
|
-
useState as useState18
|
|
6931
|
-
} from "react";
|
|
6932
|
-
import hash from "object-hash";
|
|
6933
|
-
import { createPortal as createPortal3 } from "react-dom";
|
|
6934
|
-
import { Fragment as Fragment10, jsx as jsx44 } from "react/jsx-runtime";
|
|
6935
|
-
var styleSelector = 'style, link[rel="stylesheet"]';
|
|
6936
|
-
var collectStyles = (doc) => {
|
|
6937
|
-
const collected = [];
|
|
6938
|
-
doc.querySelectorAll(styleSelector).forEach((style) => {
|
|
6939
|
-
if (style.tagName === "STYLE") {
|
|
6940
|
-
const hasContent = !!style.innerHTML.trim();
|
|
6941
|
-
if (hasContent) {
|
|
6942
|
-
collected.push(style);
|
|
6943
|
-
}
|
|
6944
|
-
} else {
|
|
6945
|
-
collected.push(style);
|
|
6946
|
-
}
|
|
6947
|
-
});
|
|
6948
|
-
return collected;
|
|
6949
|
-
};
|
|
6950
|
-
var getStyleSheet = (el) => {
|
|
6951
|
-
return Array.from(document.styleSheets).find((ss) => {
|
|
6952
|
-
const ownerNode = ss.ownerNode;
|
|
6953
|
-
return ownerNode.href === el.href;
|
|
6954
|
-
});
|
|
6955
|
-
};
|
|
6956
|
-
var getStyles = (styleSheet) => {
|
|
6957
|
-
if (styleSheet) {
|
|
6958
|
-
try {
|
|
6959
|
-
return Array.from(styleSheet.cssRules).map((rule) => rule.cssText).join("");
|
|
6960
|
-
} catch (e) {
|
|
6961
|
-
console.warn(
|
|
6962
|
-
"Access to stylesheet %s is denied. Ignoring\u2026",
|
|
6963
|
-
styleSheet.href
|
|
6964
|
-
);
|
|
6965
|
-
}
|
|
6966
|
-
}
|
|
6967
|
-
return "";
|
|
6968
|
-
};
|
|
6969
|
-
var syncAttributes = (sourceElement, targetElement) => {
|
|
6970
|
-
const attributes = sourceElement.attributes;
|
|
6971
|
-
if ((attributes == null ? void 0 : attributes.length) > 0) {
|
|
6972
|
-
Array.from(attributes).forEach((attribute) => {
|
|
6973
|
-
targetElement.setAttribute(attribute.name, attribute.value);
|
|
6974
|
-
});
|
|
6975
|
-
}
|
|
6976
|
-
};
|
|
6977
|
-
var defer = (fn) => setTimeout(fn, 0);
|
|
6978
|
-
var CopyHostStyles = ({
|
|
6979
|
-
children,
|
|
6980
|
-
debug = false,
|
|
6981
|
-
onStylesLoaded = () => null
|
|
6510
|
+
debug = false,
|
|
6511
|
+
onStylesLoaded = () => null
|
|
6982
6512
|
}) => {
|
|
6983
6513
|
const { document: doc, window: win } = useFrame();
|
|
6984
6514
|
useEffect20(() => {
|
|
@@ -7148,10 +6678,10 @@ var CopyHostStyles = ({
|
|
|
7148
6678
|
observer.disconnect();
|
|
7149
6679
|
};
|
|
7150
6680
|
}, []);
|
|
7151
|
-
return /* @__PURE__ */
|
|
6681
|
+
return /* @__PURE__ */ jsx41(Fragment9, { children });
|
|
7152
6682
|
};
|
|
7153
6683
|
var autoFrameContext = createContext6({});
|
|
7154
|
-
var useFrame = () =>
|
|
6684
|
+
var useFrame = () => useContext12(autoFrameContext);
|
|
7155
6685
|
function AutoFrame(_a) {
|
|
7156
6686
|
var _b = _a, {
|
|
7157
6687
|
children,
|
|
@@ -7194,132 +6724,576 @@ function AutoFrame(_a) {
|
|
|
7194
6724
|
onNotReady();
|
|
7195
6725
|
}
|
|
7196
6726
|
}
|
|
7197
|
-
}, [frameRef, loaded, stylesLoaded]);
|
|
7198
|
-
return /* @__PURE__ */
|
|
7199
|
-
"iframe",
|
|
7200
|
-
__spreadProps(__spreadValues({}, props), {
|
|
7201
|
-
className,
|
|
7202
|
-
id,
|
|
7203
|
-
srcDoc: '<!DOCTYPE html><html><head></head><body><div id="frame-root" data-editor-entry></div></body></html>',
|
|
7204
|
-
ref: frameRef,
|
|
7205
|
-
onLoad: () => {
|
|
7206
|
-
setLoaded(true);
|
|
7207
|
-
},
|
|
7208
|
-
children: /* @__PURE__ */
|
|
7209
|
-
CopyHostStyles,
|
|
6727
|
+
}, [frameRef, loaded, stylesLoaded]);
|
|
6728
|
+
return /* @__PURE__ */ jsx41(
|
|
6729
|
+
"iframe",
|
|
6730
|
+
__spreadProps(__spreadValues({}, props), {
|
|
6731
|
+
className,
|
|
6732
|
+
id,
|
|
6733
|
+
srcDoc: '<!DOCTYPE html><html><head></head><body><div id="frame-root" data-editor-entry></div></body></html>',
|
|
6734
|
+
ref: frameRef,
|
|
6735
|
+
onLoad: () => {
|
|
6736
|
+
setLoaded(true);
|
|
6737
|
+
},
|
|
6738
|
+
children: /* @__PURE__ */ jsx41(autoFrameContext.Provider, { value: ctx, children: loaded && mountTarget && /* @__PURE__ */ jsx41(
|
|
6739
|
+
CopyHostStyles,
|
|
6740
|
+
{
|
|
6741
|
+
debug,
|
|
6742
|
+
onStylesLoaded: () => setStylesLoaded(true),
|
|
6743
|
+
children: createPortal3(children, mountTarget)
|
|
6744
|
+
}
|
|
6745
|
+
) })
|
|
6746
|
+
})
|
|
6747
|
+
);
|
|
6748
|
+
}
|
|
6749
|
+
AutoFrame.displayName = "AutoFrame";
|
|
6750
|
+
var AutoFrame_default = AutoFrame;
|
|
6751
|
+
|
|
6752
|
+
// css-module:/Users/rami/Documents/apps/react-editor/packages/core/components/Editor/components/Preview/styles.module.css#css-module
|
|
6753
|
+
init_react_import();
|
|
6754
|
+
var styles_module_default20 = { "EditorPreview": "_EditorPreview_xou64_1", "EditorPreview-frame": "_EditorPreview-frame_xou64_6" };
|
|
6755
|
+
|
|
6756
|
+
// components/Editor/components/Preview/index.tsx
|
|
6757
|
+
import { Fragment as Fragment10, jsx as jsx42 } from "react/jsx-runtime";
|
|
6758
|
+
var getClassName25 = get_class_name_factory_default("EditorPreview", styles_module_default20);
|
|
6759
|
+
var Preview2 = ({ id = "editor-preview" }) => {
|
|
6760
|
+
const dispatch = useAppStore((s) => s.dispatch);
|
|
6761
|
+
const root = useAppStore((s) => s.state.data.root);
|
|
6762
|
+
const config = useAppStore((s) => s.config);
|
|
6763
|
+
const setStatus = useAppStore((s) => s.setStatus);
|
|
6764
|
+
const iframe = useAppStore((s) => s.iframe);
|
|
6765
|
+
const overrides = useAppStore((s) => s.overrides);
|
|
6766
|
+
const metadata = useAppStore((s) => s.metadata);
|
|
6767
|
+
const renderData = useAppStore(
|
|
6768
|
+
(s) => s.state.ui.previewMode === "edit" ? null : s.state.data
|
|
6769
|
+
);
|
|
6770
|
+
const Page = useCallback16(
|
|
6771
|
+
(pageProps) => {
|
|
6772
|
+
var _a, _b, _c, _d;
|
|
6773
|
+
const propsWithSlots = useSlots(
|
|
6774
|
+
config,
|
|
6775
|
+
{ type: "root", props: pageProps },
|
|
6776
|
+
DropZoneEditPure
|
|
6777
|
+
);
|
|
6778
|
+
const richtextProps = useRichtextProps(
|
|
6779
|
+
(_b = (_a = config.root) == null ? void 0 : _a.fields) != null ? _b : {},
|
|
6780
|
+
pageProps
|
|
6781
|
+
);
|
|
6782
|
+
return ((_c = config.root) == null ? void 0 : _c.render) ? (_d = config.root) == null ? void 0 : _d.render(__spreadValues(__spreadValues({
|
|
6783
|
+
id: "editor-root"
|
|
6784
|
+
}, propsWithSlots), richtextProps)) : /* @__PURE__ */ jsx42(Fragment10, { children: propsWithSlots.children });
|
|
6785
|
+
},
|
|
6786
|
+
[config]
|
|
6787
|
+
);
|
|
6788
|
+
const Frame = useMemo17(() => overrides.iframe, [overrides]);
|
|
6789
|
+
const rootProps = root.props || root;
|
|
6790
|
+
const ref = useRef11(null);
|
|
6791
|
+
const inner = !renderData ? /* @__PURE__ */ jsx42(
|
|
6792
|
+
Page,
|
|
6793
|
+
__spreadProps(__spreadValues({}, rootProps), {
|
|
6794
|
+
editor: {
|
|
6795
|
+
renderDropZone: DropZonePure,
|
|
6796
|
+
isEditing: true,
|
|
6797
|
+
dragRef: null,
|
|
6798
|
+
metadata
|
|
6799
|
+
},
|
|
6800
|
+
editMode: true,
|
|
6801
|
+
children: /* @__PURE__ */ jsx42(DropZonePure, { zone: rootDroppableId })
|
|
6802
|
+
})
|
|
6803
|
+
) : /* @__PURE__ */ jsx42(Render, { data: renderData, config, metadata });
|
|
6804
|
+
useEffect21(() => {
|
|
6805
|
+
if (!iframe.enabled) {
|
|
6806
|
+
setStatus("READY");
|
|
6807
|
+
}
|
|
6808
|
+
}, [iframe.enabled]);
|
|
6809
|
+
return /* @__PURE__ */ jsx42(
|
|
6810
|
+
"div",
|
|
6811
|
+
{
|
|
6812
|
+
className: getClassName25(),
|
|
6813
|
+
id,
|
|
6814
|
+
"data-editor-preview": true,
|
|
6815
|
+
onClick: (e) => {
|
|
6816
|
+
const el = e.target;
|
|
6817
|
+
if (!el.hasAttribute("data-editor-component") && !el.hasAttribute("data-editor-dropzone")) {
|
|
6818
|
+
dispatch({ type: "setUi", ui: { itemSelector: null } });
|
|
6819
|
+
}
|
|
6820
|
+
},
|
|
6821
|
+
children: iframe.enabled ? /* @__PURE__ */ jsx42(
|
|
6822
|
+
AutoFrame_default,
|
|
6823
|
+
{
|
|
6824
|
+
id: "preview-frame",
|
|
6825
|
+
className: getClassName25("frame"),
|
|
6826
|
+
"data-rfd-iframe": true,
|
|
6827
|
+
onReady: () => {
|
|
6828
|
+
setStatus("READY");
|
|
6829
|
+
},
|
|
6830
|
+
onNotReady: () => {
|
|
6831
|
+
setStatus("MOUNTED");
|
|
6832
|
+
},
|
|
6833
|
+
frameRef: ref,
|
|
6834
|
+
children: /* @__PURE__ */ jsx42(autoFrameContext.Consumer, { children: ({ document: document2 }) => {
|
|
6835
|
+
if (Frame) {
|
|
6836
|
+
return /* @__PURE__ */ jsx42(Frame, { document: document2, children: inner });
|
|
6837
|
+
}
|
|
6838
|
+
return inner;
|
|
6839
|
+
} })
|
|
6840
|
+
}
|
|
6841
|
+
) : /* @__PURE__ */ jsx42(
|
|
6842
|
+
"div",
|
|
6843
|
+
{
|
|
6844
|
+
id: "preview-frame",
|
|
6845
|
+
className: getClassName25("frame"),
|
|
6846
|
+
ref,
|
|
6847
|
+
"data-editor-entry": true,
|
|
6848
|
+
children: inner
|
|
6849
|
+
}
|
|
6850
|
+
)
|
|
6851
|
+
}
|
|
6852
|
+
);
|
|
6853
|
+
};
|
|
6854
|
+
|
|
6855
|
+
// components/Editor/components/Outline/index.tsx
|
|
6856
|
+
init_react_import();
|
|
6857
|
+
|
|
6858
|
+
// components/LayerTree/index.tsx
|
|
6859
|
+
init_react_import();
|
|
6860
|
+
|
|
6861
|
+
// css-module:/Users/rami/Documents/apps/react-editor/packages/core/components/LayerTree/styles.module.css#css-module
|
|
6862
|
+
init_react_import();
|
|
6863
|
+
var styles_module_default21 = { "LayerTree": "_LayerTree_3eixb_1", "LayerTree-zoneTitle": "_LayerTree-zoneTitle_3eixb_11", "LayerTree-helper": "_LayerTree-helper_3eixb_17", "Layer": "_Layer_3eixb_1", "Layer-inner": "_Layer-inner_3eixb_34", "Layer--containsZone": "_Layer--containsZone_3eixb_42", "Layer-clickable": "_Layer-clickable_3eixb_46", "Layer--isSelected": "_Layer--isSelected_3eixb_68", "Layer-icon": "_Layer-icon_3eixb_80", "Layer-zoneIcon": "_Layer-zoneIcon_3eixb_81", "Layer-chevron": "_Layer-chevron_3eixb_85", "Layer--childIsSelected": "_Layer--childIsSelected_3eixb_97", "Layer-zones": "_Layer-zones_3eixb_101", "Layer-title": "_Layer-title_3eixb_117", "Layer-name": "_Layer-name_3eixb_130", "Layer--isGlobal": "_Layer--isGlobal_3eixb_150", "Layer--isUnlinked": "_Layer--isUnlinked_3eixb_171", "Layer-unlinkedGlyph": "_Layer-unlinkedGlyph_3eixb_175" };
|
|
6864
|
+
|
|
6865
|
+
// components/LayerTree/index.tsx
|
|
6866
|
+
import {
|
|
6867
|
+
forwardRef as forwardRef2,
|
|
6868
|
+
useCallback as useCallback17,
|
|
6869
|
+
useContext as useContext13,
|
|
6870
|
+
useRef as useRef12
|
|
6871
|
+
} from "react";
|
|
6872
|
+
import { useVirtualizer as useVirtualizer2 } from "@tanstack/react-virtual";
|
|
6873
|
+
import { Fragment as Fragment11, jsx as jsx43, jsxs as jsxs17 } from "react/jsx-runtime";
|
|
6874
|
+
var getClassName26 = get_class_name_factory_default("LayerTree", styles_module_default21);
|
|
6875
|
+
var getClassNameLayer = get_class_name_factory_default("Layer", styles_module_default21);
|
|
6876
|
+
var DEFAULT_LAYER_ROW_HEIGHT = 32;
|
|
6877
|
+
var LAYER_TREE_VIRTUALIZATION_OVERSCAN = 8;
|
|
6878
|
+
var MIN_VIRTUALIZED_LAYER_COUNT = 25;
|
|
6879
|
+
var measuredRowHeights = /* @__PURE__ */ new Map();
|
|
6880
|
+
var getZonesByParent = (zones) => {
|
|
6881
|
+
return Object.keys(zones).reduce((acc, zone) => {
|
|
6882
|
+
const [parentId] = zone.split(":");
|
|
6883
|
+
acc[parentId] = [...acc[parentId] || [], zone];
|
|
6884
|
+
return acc;
|
|
6885
|
+
}, {});
|
|
6886
|
+
};
|
|
6887
|
+
var getZoneLabel = (zoneCompound, nodes, config, label) => {
|
|
6888
|
+
var _a, _b, _c, _d;
|
|
6889
|
+
if (label !== void 0) {
|
|
6890
|
+
return label;
|
|
6891
|
+
}
|
|
6892
|
+
const [componentId, slotId] = zoneCompound.split(":");
|
|
6893
|
+
if (!slotId) {
|
|
6894
|
+
return;
|
|
6895
|
+
}
|
|
6896
|
+
const componentType = (_a = nodes[componentId]) == null ? void 0 : _a.data.type;
|
|
6897
|
+
const configForComponent = componentType && componentType !== rootAreaId ? config.components[componentType] : config.root;
|
|
6898
|
+
return (_d = (_c = (_b = configForComponent == null ? void 0 : configForComponent.fields) == null ? void 0 : _b[slotId]) == null ? void 0 : _c.label) != null ? _d : slotId;
|
|
6899
|
+
};
|
|
6900
|
+
var buildLayerNode = ({
|
|
6901
|
+
config,
|
|
6902
|
+
itemId,
|
|
6903
|
+
index,
|
|
6904
|
+
nodes,
|
|
6905
|
+
zoneCompound,
|
|
6906
|
+
zones,
|
|
6907
|
+
zonesByParent
|
|
6908
|
+
}) => {
|
|
6909
|
+
var _a, _b, _c;
|
|
6910
|
+
const nodeData = nodes[itemId];
|
|
6911
|
+
const componentType = ((_a = nodeData == null ? void 0 : nodeData.data.type) == null ? void 0 : _a.toString()) || "Component";
|
|
6912
|
+
const label = (_c = (_b = config.components[componentType]) == null ? void 0 : _b.label) != null ? _c : componentType;
|
|
6913
|
+
const childZoneCompounds = zonesByParent[itemId] || [];
|
|
6914
|
+
return {
|
|
6915
|
+
childZones: childZoneCompounds.map(
|
|
6916
|
+
(childZoneCompound) => buildLayerTree({
|
|
6917
|
+
config,
|
|
6918
|
+
nodes,
|
|
6919
|
+
zoneCompound: childZoneCompound,
|
|
6920
|
+
zones,
|
|
6921
|
+
zonesByParent
|
|
6922
|
+
})
|
|
6923
|
+
),
|
|
6924
|
+
componentType,
|
|
6925
|
+
index,
|
|
6926
|
+
itemId,
|
|
6927
|
+
label,
|
|
6928
|
+
zoneCompound
|
|
6929
|
+
};
|
|
6930
|
+
};
|
|
6931
|
+
var buildLayerTree = ({
|
|
6932
|
+
config,
|
|
6933
|
+
label,
|
|
6934
|
+
nodes,
|
|
6935
|
+
zoneCompound,
|
|
6936
|
+
zones,
|
|
6937
|
+
zonesByParent = getZonesByParent(zones)
|
|
6938
|
+
}) => {
|
|
6939
|
+
var _a, _b;
|
|
6940
|
+
const contentIds = (_b = (_a = zones[zoneCompound]) == null ? void 0 : _a.contentIds) != null ? _b : [];
|
|
6941
|
+
return {
|
|
6942
|
+
items: contentIds.map(
|
|
6943
|
+
(itemId, index) => buildLayerNode({
|
|
6944
|
+
config,
|
|
6945
|
+
itemId,
|
|
6946
|
+
index,
|
|
6947
|
+
nodes,
|
|
6948
|
+
zoneCompound,
|
|
6949
|
+
zones,
|
|
6950
|
+
zonesByParent
|
|
6951
|
+
})
|
|
6952
|
+
),
|
|
6953
|
+
label: getZoneLabel(zoneCompound, nodes, config, label),
|
|
6954
|
+
zoneCompound
|
|
6955
|
+
};
|
|
6956
|
+
};
|
|
6957
|
+
var getEstimatedRowHeight = (itemId) => {
|
|
6958
|
+
var _a;
|
|
6959
|
+
return (_a = measuredRowHeights.get(itemId)) != null ? _a : DEFAULT_LAYER_ROW_HEIGHT;
|
|
6960
|
+
};
|
|
6961
|
+
var cacheMeasuredRowHeight = (itemId, height) => {
|
|
6962
|
+
if (height <= 0) {
|
|
6963
|
+
return;
|
|
6964
|
+
}
|
|
6965
|
+
measuredRowHeights.set(itemId, height);
|
|
6966
|
+
};
|
|
6967
|
+
var getScrollParent = (el) => {
|
|
6968
|
+
var _a;
|
|
6969
|
+
let current = (_a = el == null ? void 0 : el.parentElement) != null ? _a : null;
|
|
6970
|
+
while (current) {
|
|
6971
|
+
const { overflow, overflowY } = getComputedStyle(current);
|
|
6972
|
+
if ([overflow, overflowY].some((value) => /auto|scroll/.test(value))) {
|
|
6973
|
+
return current;
|
|
6974
|
+
}
|
|
6975
|
+
current = current.parentElement;
|
|
6976
|
+
}
|
|
6977
|
+
return null;
|
|
6978
|
+
};
|
|
6979
|
+
var Layer = forwardRef2(function Layer2({
|
|
6980
|
+
childIsSelected,
|
|
6981
|
+
dataIndex,
|
|
6982
|
+
depth,
|
|
6983
|
+
isSelected,
|
|
6984
|
+
node,
|
|
6985
|
+
selectedId,
|
|
6986
|
+
selectedPathIds
|
|
6987
|
+
}, ref) {
|
|
6988
|
+
const dispatch = useAppStore((s) => s.dispatch);
|
|
6989
|
+
const zoneStore = useContext13(ZoneStoreContext);
|
|
6990
|
+
const isHovering = useContextStore(
|
|
6991
|
+
ZoneStoreContext,
|
|
6992
|
+
(s) => s.hoveringComponent === node.itemId
|
|
6993
|
+
);
|
|
6994
|
+
const isGlobal = useAppStore(
|
|
6995
|
+
(s) => {
|
|
6996
|
+
var _a;
|
|
6997
|
+
return ((_a = s.config.components[node.componentType]) == null ? void 0 : _a.global) === true;
|
|
6998
|
+
}
|
|
6999
|
+
);
|
|
7000
|
+
const isUnlinked = useAppStore(
|
|
7001
|
+
(s) => {
|
|
7002
|
+
var _a, _b;
|
|
7003
|
+
return ((_b = (_a = s.state.indexes.nodes[node.itemId]) == null ? void 0 : _a.data) == null ? void 0 : _b.synced) === false;
|
|
7004
|
+
}
|
|
7005
|
+
);
|
|
7006
|
+
const containsZone = node.childZones.length > 0;
|
|
7007
|
+
const setItemSelector = useCallback17(
|
|
7008
|
+
(itemSelector) => {
|
|
7009
|
+
dispatch({ type: "setUi", ui: { itemSelector } });
|
|
7010
|
+
},
|
|
7011
|
+
[dispatch]
|
|
7012
|
+
);
|
|
7013
|
+
const shouldRenderChildren = isSelected || childIsSelected;
|
|
7014
|
+
return /* @__PURE__ */ jsxs17(
|
|
7015
|
+
"li",
|
|
7016
|
+
{
|
|
7017
|
+
ref,
|
|
7018
|
+
className: getClassNameLayer({
|
|
7019
|
+
childIsSelected,
|
|
7020
|
+
containsZone,
|
|
7021
|
+
isHovering,
|
|
7022
|
+
isSelected,
|
|
7023
|
+
isGlobal: isGlobal && !isUnlinked,
|
|
7024
|
+
isUnlinked: isGlobal && isUnlinked
|
|
7025
|
+
}),
|
|
7026
|
+
"data-index": dataIndex,
|
|
7027
|
+
"data-editor-layer-tree-id": node.itemId,
|
|
7028
|
+
children: [
|
|
7029
|
+
/* @__PURE__ */ jsx43("div", { className: getClassNameLayer("inner"), children: /* @__PURE__ */ jsxs17(
|
|
7030
|
+
"button",
|
|
7031
|
+
{
|
|
7032
|
+
type: "button",
|
|
7033
|
+
className: getClassNameLayer("clickable"),
|
|
7034
|
+
onClick: () => {
|
|
7035
|
+
if (isSelected) {
|
|
7036
|
+
setItemSelector(null);
|
|
7037
|
+
return;
|
|
7038
|
+
}
|
|
7039
|
+
setItemSelector({
|
|
7040
|
+
index: node.index,
|
|
7041
|
+
zone: node.zoneCompound
|
|
7042
|
+
});
|
|
7043
|
+
zoneStore.getState().scrollToComponent(node.itemId);
|
|
7044
|
+
},
|
|
7045
|
+
onMouseEnter: (e) => {
|
|
7046
|
+
e.stopPropagation();
|
|
7047
|
+
zoneStore.setState({ hoveringComponent: node.itemId });
|
|
7048
|
+
},
|
|
7049
|
+
onMouseLeave: (e) => {
|
|
7050
|
+
e.stopPropagation();
|
|
7051
|
+
zoneStore.setState({ hoveringComponent: null });
|
|
7052
|
+
},
|
|
7053
|
+
children: [
|
|
7054
|
+
/* @__PURE__ */ jsx43(
|
|
7055
|
+
"div",
|
|
7056
|
+
{
|
|
7057
|
+
className: getClassNameLayer("chevron"),
|
|
7058
|
+
title: containsZone ? isSelected ? "Collapse" : "Expand" : void 0,
|
|
7059
|
+
children: containsZone && /* @__PURE__ */ jsx43(ChevronRight, { size: "12" })
|
|
7060
|
+
}
|
|
7061
|
+
),
|
|
7062
|
+
/* @__PURE__ */ jsxs17("div", { className: getClassNameLayer("title"), children: [
|
|
7063
|
+
/* @__PURE__ */ jsx43("div", { className: getClassNameLayer("icon"), children: /* @__PURE__ */ jsx43(Component, { size: "16" }) }),
|
|
7064
|
+
/* @__PURE__ */ jsx43("div", { className: getClassNameLayer("name"), children: node.label }),
|
|
7065
|
+
isGlobal && isUnlinked && /* @__PURE__ */ jsx43(
|
|
7066
|
+
"div",
|
|
7067
|
+
{
|
|
7068
|
+
className: getClassNameLayer("unlinkedGlyph"),
|
|
7069
|
+
title: "Unlinked from shared",
|
|
7070
|
+
children: /* @__PURE__ */ jsx43(Unlink2, { size: "12" })
|
|
7071
|
+
}
|
|
7072
|
+
)
|
|
7073
|
+
] })
|
|
7074
|
+
]
|
|
7075
|
+
}
|
|
7076
|
+
) }),
|
|
7077
|
+
containsZone && shouldRenderChildren && node.childZones.map((childZone) => /* @__PURE__ */ jsx43(
|
|
7078
|
+
"div",
|
|
7079
|
+
{
|
|
7080
|
+
className: getClassNameLayer("zones"),
|
|
7081
|
+
children: /* @__PURE__ */ jsx43(
|
|
7082
|
+
LayerTreeZone,
|
|
7083
|
+
{
|
|
7084
|
+
depth: depth + 1,
|
|
7085
|
+
selectedId,
|
|
7086
|
+
selectedPathIds,
|
|
7087
|
+
tree: childZone
|
|
7088
|
+
}
|
|
7089
|
+
)
|
|
7090
|
+
},
|
|
7091
|
+
childZone.zoneCompound
|
|
7092
|
+
))
|
|
7093
|
+
]
|
|
7094
|
+
}
|
|
7095
|
+
);
|
|
7096
|
+
});
|
|
7097
|
+
var LayerTreeZone = ({
|
|
7098
|
+
depth,
|
|
7099
|
+
selectedId,
|
|
7100
|
+
selectedPathIds,
|
|
7101
|
+
tree
|
|
7102
|
+
}) => {
|
|
7103
|
+
const shouldVirtualize = depth === 0 && tree.items.length >= MIN_VIRTUALIZED_LAYER_COUNT;
|
|
7104
|
+
return /* @__PURE__ */ jsxs17(Fragment11, { children: [
|
|
7105
|
+
tree.label && /* @__PURE__ */ jsx43("div", { className: getClassName26("zoneTitle"), children: tree.label }),
|
|
7106
|
+
shouldVirtualize ? /* @__PURE__ */ jsx43(
|
|
7107
|
+
VirtualizedLayerTreeItems,
|
|
7108
|
+
{
|
|
7109
|
+
depth,
|
|
7110
|
+
selectedId,
|
|
7111
|
+
selectedPathIds,
|
|
7112
|
+
tree
|
|
7113
|
+
}
|
|
7114
|
+
) : /* @__PURE__ */ jsx43(
|
|
7115
|
+
StaticLayerTreeItems,
|
|
7116
|
+
{
|
|
7117
|
+
depth,
|
|
7118
|
+
selectedId,
|
|
7119
|
+
selectedPathIds,
|
|
7120
|
+
tree
|
|
7121
|
+
}
|
|
7122
|
+
)
|
|
7123
|
+
] });
|
|
7124
|
+
};
|
|
7125
|
+
var StaticLayerTreeItems = ({
|
|
7126
|
+
depth,
|
|
7127
|
+
selectedId,
|
|
7128
|
+
selectedPathIds,
|
|
7129
|
+
tree
|
|
7130
|
+
}) => {
|
|
7131
|
+
return /* @__PURE__ */ jsxs17("ul", { className: getClassName26(), children: [
|
|
7132
|
+
tree.items.length === 0 && /* @__PURE__ */ jsx43("div", { className: getClassName26("helper"), children: "empty" }),
|
|
7133
|
+
tree.items.map((node) => /* @__PURE__ */ jsx43(
|
|
7134
|
+
Layer,
|
|
7135
|
+
{
|
|
7136
|
+
childIsSelected: selectedPathIds.has(node.itemId),
|
|
7137
|
+
depth,
|
|
7138
|
+
isSelected: selectedId === node.itemId,
|
|
7139
|
+
node,
|
|
7140
|
+
selectedId,
|
|
7141
|
+
selectedPathIds
|
|
7142
|
+
},
|
|
7143
|
+
node.itemId
|
|
7144
|
+
))
|
|
7145
|
+
] });
|
|
7146
|
+
};
|
|
7147
|
+
var VirtualizedLayerTreeItems = ({
|
|
7148
|
+
depth,
|
|
7149
|
+
selectedId,
|
|
7150
|
+
selectedPathIds,
|
|
7151
|
+
tree
|
|
7152
|
+
}) => {
|
|
7153
|
+
const listRef = useRef12(null);
|
|
7154
|
+
const virtualizer = useVirtualizer2({
|
|
7155
|
+
count: tree.items.length,
|
|
7156
|
+
estimateSize: (index) => getEstimatedRowHeight(tree.items[index].itemId),
|
|
7157
|
+
getItemKey: (index) => tree.items[index].itemId,
|
|
7158
|
+
getScrollElement: () => getScrollParent(listRef.current),
|
|
7159
|
+
overscan: LAYER_TREE_VIRTUALIZATION_OVERSCAN,
|
|
7160
|
+
measureElement: (element) => {
|
|
7161
|
+
const height = Math.ceil(element.getBoundingClientRect().height);
|
|
7162
|
+
const itemId = element.dataset.editorLayerTreeId;
|
|
7163
|
+
if (itemId) {
|
|
7164
|
+
cacheMeasuredRowHeight(itemId, height);
|
|
7165
|
+
}
|
|
7166
|
+
return height || DEFAULT_LAYER_ROW_HEIGHT;
|
|
7167
|
+
}
|
|
7168
|
+
});
|
|
7169
|
+
const virtualItems = virtualizer.getVirtualItems();
|
|
7170
|
+
const totalSize = virtualizer.getTotalSize();
|
|
7171
|
+
const renderedItems = [];
|
|
7172
|
+
let previousEnd = 0;
|
|
7173
|
+
let previousIndex = -1;
|
|
7174
|
+
virtualItems.forEach((virtualItem) => {
|
|
7175
|
+
const node = tree.items[virtualItem.index];
|
|
7176
|
+
const gapSize = Math.max(virtualItem.start - previousEnd, 0);
|
|
7177
|
+
if (gapSize > 0) {
|
|
7178
|
+
renderedItems.push(
|
|
7179
|
+
/* @__PURE__ */ jsx43(
|
|
7180
|
+
"li",
|
|
7181
|
+
{
|
|
7182
|
+
"aria-hidden": "true",
|
|
7183
|
+
style: { height: `${gapSize}px` }
|
|
7184
|
+
},
|
|
7185
|
+
`gap:${tree.zoneCompound}:${previousIndex}:${virtualItem.index}`
|
|
7186
|
+
)
|
|
7187
|
+
);
|
|
7188
|
+
}
|
|
7189
|
+
renderedItems.push(
|
|
7190
|
+
/* @__PURE__ */ jsx43(
|
|
7191
|
+
Layer,
|
|
7210
7192
|
{
|
|
7211
|
-
|
|
7212
|
-
|
|
7213
|
-
|
|
7214
|
-
|
|
7215
|
-
|
|
7216
|
-
|
|
7217
|
-
|
|
7218
|
-
|
|
7219
|
-
|
|
7220
|
-
|
|
7193
|
+
childIsSelected: selectedPathIds.has(node.itemId),
|
|
7194
|
+
dataIndex: virtualItem.index,
|
|
7195
|
+
depth,
|
|
7196
|
+
isSelected: selectedId === node.itemId,
|
|
7197
|
+
node,
|
|
7198
|
+
ref: virtualizer.measureElement,
|
|
7199
|
+
selectedId,
|
|
7200
|
+
selectedPathIds
|
|
7201
|
+
},
|
|
7202
|
+
node.itemId
|
|
7203
|
+
)
|
|
7204
|
+
);
|
|
7205
|
+
previousEnd = virtualItem.end;
|
|
7206
|
+
previousIndex = virtualItem.index;
|
|
7207
|
+
});
|
|
7208
|
+
const trailingGap = Math.max(totalSize - previousEnd, 0);
|
|
7209
|
+
if (trailingGap > 0) {
|
|
7210
|
+
renderedItems.push(
|
|
7211
|
+
/* @__PURE__ */ jsx43(
|
|
7212
|
+
"li",
|
|
7213
|
+
{
|
|
7214
|
+
"aria-hidden": "true",
|
|
7215
|
+
style: { height: `${trailingGap}px` }
|
|
7216
|
+
},
|
|
7217
|
+
`gap:${tree.zoneCompound}:${previousIndex}:end`
|
|
7218
|
+
)
|
|
7219
|
+
);
|
|
7220
|
+
}
|
|
7221
|
+
return /* @__PURE__ */ jsxs17("ul", { className: getClassName26(), ref: listRef, children: [
|
|
7222
|
+
tree.items.length === 0 && /* @__PURE__ */ jsx43("div", { className: getClassName26("helper"), children: "empty" }),
|
|
7223
|
+
renderedItems
|
|
7224
|
+
] });
|
|
7225
|
+
};
|
|
7226
|
+
var LayerTree = ({
|
|
7227
|
+
selectedId,
|
|
7228
|
+
selectedPathIds,
|
|
7229
|
+
trees
|
|
7230
|
+
}) => {
|
|
7231
|
+
return /* @__PURE__ */ jsx43(Fragment11, { children: trees.map((tree) => /* @__PURE__ */ jsx43(
|
|
7232
|
+
LayerTreeZone,
|
|
7233
|
+
{
|
|
7234
|
+
depth: 0,
|
|
7235
|
+
selectedId,
|
|
7236
|
+
selectedPathIds,
|
|
7237
|
+
tree
|
|
7238
|
+
},
|
|
7239
|
+
tree.zoneCompound
|
|
7240
|
+
)) });
|
|
7241
|
+
};
|
|
7221
7242
|
|
|
7222
|
-
//
|
|
7243
|
+
// components/Editor/components/Outline/index.tsx
|
|
7244
|
+
import { useMemo as useMemo18 } from "react";
|
|
7245
|
+
|
|
7246
|
+
// lib/data/find-zones-for-area.ts
|
|
7223
7247
|
init_react_import();
|
|
7224
|
-
var
|
|
7248
|
+
var findZonesForArea = (state, area) => {
|
|
7249
|
+
return Object.keys(state.indexes.zones).filter(
|
|
7250
|
+
(zone) => zone.split(":")[0] === area
|
|
7251
|
+
);
|
|
7252
|
+
};
|
|
7225
7253
|
|
|
7226
|
-
// components/Editor/components/
|
|
7227
|
-
import {
|
|
7228
|
-
|
|
7229
|
-
var
|
|
7230
|
-
const
|
|
7231
|
-
const root = useAppStore((s) => s.state.data.root);
|
|
7254
|
+
// components/Editor/components/Outline/index.tsx
|
|
7255
|
+
import { useShallow as useShallow8 } from "zustand/react/shallow";
|
|
7256
|
+
import { jsx as jsx44 } from "react/jsx-runtime";
|
|
7257
|
+
var Outline = () => {
|
|
7258
|
+
const outlineOverride = useAppStore((s) => s.overrides.outline);
|
|
7232
7259
|
const config = useAppStore((s) => s.config);
|
|
7233
|
-
const
|
|
7234
|
-
const
|
|
7235
|
-
const
|
|
7236
|
-
|
|
7237
|
-
|
|
7238
|
-
|
|
7260
|
+
const nodes = useAppStore((s) => s.state.indexes.nodes);
|
|
7261
|
+
const zones = useAppStore((s) => s.state.indexes.zones);
|
|
7262
|
+
const selectedId = useAppStore((s) => {
|
|
7263
|
+
var _a;
|
|
7264
|
+
return ((_a = s.selectedItem) == null ? void 0 : _a.props.id) || null;
|
|
7265
|
+
});
|
|
7266
|
+
const rootZones = useAppStore(
|
|
7267
|
+
useShallow8((s) => findZonesForArea(s.state, "root"))
|
|
7239
7268
|
);
|
|
7240
|
-
const
|
|
7241
|
-
|
|
7242
|
-
|
|
7243
|
-
|
|
7269
|
+
const selectedPathIds = useMemo18(() => {
|
|
7270
|
+
var _a;
|
|
7271
|
+
const selectedPath = selectedId ? (_a = nodes[selectedId]) == null ? void 0 : _a.path : null;
|
|
7272
|
+
return new Set(
|
|
7273
|
+
(selectedPath == null ? void 0 : selectedPath.map((candidate) => candidate.split(":")[0]).filter(Boolean)) || []
|
|
7274
|
+
);
|
|
7275
|
+
}, [nodes, selectedId]);
|
|
7276
|
+
const trees = useMemo18(
|
|
7277
|
+
() => rootZones.map(
|
|
7278
|
+
(zoneCompound) => buildLayerTree({
|
|
7244
7279
|
config,
|
|
7245
|
-
|
|
7246
|
-
|
|
7247
|
-
|
|
7248
|
-
|
|
7249
|
-
|
|
7250
|
-
|
|
7251
|
-
|
|
7252
|
-
return ((_c = config.root) == null ? void 0 : _c.render) ? (_d = config.root) == null ? void 0 : _d.render(__spreadValues(__spreadValues({
|
|
7253
|
-
id: "editor-root"
|
|
7254
|
-
}, propsWithSlots), richtextProps)) : /* @__PURE__ */ jsx45(Fragment11, { children: propsWithSlots.children });
|
|
7255
|
-
},
|
|
7256
|
-
[config]
|
|
7280
|
+
label: rootZones.length === 1 ? "" : zoneCompound.split(":")[1],
|
|
7281
|
+
nodes,
|
|
7282
|
+
zoneCompound,
|
|
7283
|
+
zones
|
|
7284
|
+
})
|
|
7285
|
+
),
|
|
7286
|
+
[config, nodes, rootZones, zones]
|
|
7257
7287
|
);
|
|
7258
|
-
const
|
|
7259
|
-
|
|
7260
|
-
|
|
7261
|
-
const inner = !renderData ? /* @__PURE__ */ jsx45(
|
|
7262
|
-
Page,
|
|
7263
|
-
__spreadProps(__spreadValues({}, rootProps), {
|
|
7264
|
-
editor: {
|
|
7265
|
-
renderDropZone: DropZonePure,
|
|
7266
|
-
isEditing: true,
|
|
7267
|
-
dragRef: null,
|
|
7268
|
-
metadata
|
|
7269
|
-
},
|
|
7270
|
-
editMode: true,
|
|
7271
|
-
children: /* @__PURE__ */ jsx45(DropZonePure, { zone: rootDroppableId })
|
|
7272
|
-
})
|
|
7273
|
-
) : /* @__PURE__ */ jsx45(Render, { data: renderData, config, metadata });
|
|
7274
|
-
useEffect21(() => {
|
|
7275
|
-
if (!iframe.enabled) {
|
|
7276
|
-
setStatus("READY");
|
|
7277
|
-
}
|
|
7278
|
-
}, [iframe.enabled]);
|
|
7279
|
-
return /* @__PURE__ */ jsx45(
|
|
7280
|
-
"div",
|
|
7288
|
+
const Wrapper = useMemo18(() => outlineOverride || "div", [outlineOverride]);
|
|
7289
|
+
return /* @__PURE__ */ jsx44(Wrapper, { children: /* @__PURE__ */ jsx44(
|
|
7290
|
+
LayerTree,
|
|
7281
7291
|
{
|
|
7282
|
-
|
|
7283
|
-
|
|
7284
|
-
|
|
7285
|
-
onClick: (e) => {
|
|
7286
|
-
const el = e.target;
|
|
7287
|
-
if (!el.hasAttribute("data-editor-component") && !el.hasAttribute("data-editor-dropzone")) {
|
|
7288
|
-
dispatch({ type: "setUi", ui: { itemSelector: null } });
|
|
7289
|
-
}
|
|
7290
|
-
},
|
|
7291
|
-
children: iframe.enabled ? /* @__PURE__ */ jsx45(
|
|
7292
|
-
AutoFrame_default,
|
|
7293
|
-
{
|
|
7294
|
-
id: "preview-frame",
|
|
7295
|
-
className: getClassName27("frame"),
|
|
7296
|
-
"data-rfd-iframe": true,
|
|
7297
|
-
onReady: () => {
|
|
7298
|
-
setStatus("READY");
|
|
7299
|
-
},
|
|
7300
|
-
onNotReady: () => {
|
|
7301
|
-
setStatus("MOUNTED");
|
|
7302
|
-
},
|
|
7303
|
-
frameRef: ref,
|
|
7304
|
-
children: /* @__PURE__ */ jsx45(autoFrameContext.Consumer, { children: ({ document: document2 }) => {
|
|
7305
|
-
if (Frame) {
|
|
7306
|
-
return /* @__PURE__ */ jsx45(Frame, { document: document2, children: inner });
|
|
7307
|
-
}
|
|
7308
|
-
return inner;
|
|
7309
|
-
} })
|
|
7310
|
-
}
|
|
7311
|
-
) : /* @__PURE__ */ jsx45(
|
|
7312
|
-
"div",
|
|
7313
|
-
{
|
|
7314
|
-
id: "preview-frame",
|
|
7315
|
-
className: getClassName27("frame"),
|
|
7316
|
-
ref,
|
|
7317
|
-
"data-editor-entry": true,
|
|
7318
|
-
children: inner
|
|
7319
|
-
}
|
|
7320
|
-
)
|
|
7292
|
+
selectedId,
|
|
7293
|
+
selectedPathIds,
|
|
7294
|
+
trees
|
|
7321
7295
|
}
|
|
7322
|
-
);
|
|
7296
|
+
) });
|
|
7323
7297
|
};
|
|
7324
7298
|
|
|
7325
7299
|
// lib/use-loaded-overrides.ts
|
|
@@ -7429,7 +7403,7 @@ import {
|
|
|
7429
7403
|
|
|
7430
7404
|
// css-module:/Users/rami/Documents/apps/react-editor/packages/core/components/Editor/components/Layout/styles.module.css#css-module
|
|
7431
7405
|
init_react_import();
|
|
7432
|
-
var
|
|
7406
|
+
var styles_module_default22 = { "Editor": "_Editor_1ty8s_19", "Editor-portal": "_Editor-portal_1ty8s_32", "EditorLayout": "_EditorLayout_1ty8s_37", "EditorLayout-inner": "_EditorLayout-inner_1ty8s_41", "Editor--hidePlugins": "_Editor--hidePlugins_1ty8s_73", "EditorLayout--mounted": "_EditorLayout--mounted_1ty8s_78", "EditorLayout--mobilePanelHeightToggle": "_EditorLayout--mobilePanelHeightToggle_1ty8s_82", "EditorLayout--leftSideBarVisible": "_EditorLayout--leftSideBarVisible_1ty8s_82", "EditorLayout--mobilePanelCustomHeight": "_EditorLayout--mobilePanelCustomHeight_1ty8s_87", "EditorLayout--mobilePanelHeightMinContent": "_EditorLayout--mobilePanelHeightMinContent_1ty8s_105", "EditorLayout--rightSideBarVisible": "_EditorLayout--rightSideBarVisible_1ty8s_127", "EditorLayout-mounted": "_EditorLayout-mounted_1ty8s_146", "EditorLayout-nav": "_EditorLayout-nav_1ty8s_187", "Editor-fieldSideBarToolbar": "_Editor-fieldSideBarToolbar_1ty8s_203", "Editor-fieldSideBarHistory": "_Editor-fieldSideBarHistory_1ty8s_213", "Editor-fieldSideBarActions": "_Editor-fieldSideBarActions_1ty8s_219", "EditorLayout-mobilePanel": "_EditorLayout-mobilePanel_1ty8s_225", "EditorLayout-mobilePanelContent": "_EditorLayout-mobilePanelContent_1ty8s_245", "EditorLayout-mobileDragHandle": "_EditorLayout-mobileDragHandle_1ty8s_252", "EditorLayout-mobileDragHandlePill": "_EditorLayout-mobileDragHandlePill_1ty8s_266", "EditorPluginTab": "_EditorPluginTab_1ty8s_273", "EditorPluginTab--visible": "_EditorPluginTab--visible_1ty8s_279", "EditorPluginTab-body": "_EditorPluginTab-body_1ty8s_284" };
|
|
7433
7407
|
|
|
7434
7408
|
// lib/use-inject-css.ts
|
|
7435
7409
|
init_react_import();
|
|
@@ -7460,8 +7434,8 @@ var useInjectGlobalCss = (iframeEnabled) => {
|
|
|
7460
7434
|
|
|
7461
7435
|
// components/DefaultOverride/index.tsx
|
|
7462
7436
|
init_react_import();
|
|
7463
|
-
import { Fragment as Fragment12, jsx as
|
|
7464
|
-
var DefaultOverride = ({ children }) => /* @__PURE__ */
|
|
7437
|
+
import { Fragment as Fragment12, jsx as jsx45 } from "react/jsx-runtime";
|
|
7438
|
+
var DefaultOverride = ({ children }) => /* @__PURE__ */ jsx45(Fragment12, { children });
|
|
7465
7439
|
|
|
7466
7440
|
// lib/use-preview-mode-hotkeys.ts
|
|
7467
7441
|
init_react_import();
|
|
@@ -7486,11 +7460,11 @@ init_react_import();
|
|
|
7486
7460
|
|
|
7487
7461
|
// css-module:/Users/rami/Documents/apps/react-editor/packages/core/components/SidebarSection/styles.module.css#css-module
|
|
7488
7462
|
init_react_import();
|
|
7489
|
-
var
|
|
7463
|
+
var styles_module_default23 = { "SidebarSection": "_SidebarSection_tt2oy_1", "SidebarSection-title": "_SidebarSection-title_tt2oy_12", "SidebarSection--noBorderTop": "_SidebarSection--noBorderTop_tt2oy_20", "SidebarSection-content": "_SidebarSection-content_tt2oy_24", "SidebarSection-breadcrumbLabel": "_SidebarSection-breadcrumbLabel_tt2oy_33", "SidebarSection-breadcrumbs": "_SidebarSection-breadcrumbs_tt2oy_62", "SidebarSection-breadcrumb": "_SidebarSection-breadcrumb_tt2oy_33", "SidebarSection-heading": "_SidebarSection-heading_tt2oy_74", "SidebarSection-loadingOverlay": "_SidebarSection-loadingOverlay_tt2oy_88" };
|
|
7490
7464
|
|
|
7491
7465
|
// components/SidebarSection/index.tsx
|
|
7492
|
-
import { jsx as
|
|
7493
|
-
var
|
|
7466
|
+
import { jsx as jsx46, jsxs as jsxs18 } from "react/jsx-runtime";
|
|
7467
|
+
var getClassName27 = get_class_name_factory_default("SidebarSection", styles_module_default23);
|
|
7494
7468
|
var SidebarSection = ({
|
|
7495
7469
|
children,
|
|
7496
7470
|
title,
|
|
@@ -7499,13 +7473,13 @@ var SidebarSection = ({
|
|
|
7499
7473
|
noBorderTop,
|
|
7500
7474
|
isLoading
|
|
7501
7475
|
}) => {
|
|
7502
|
-
return /* @__PURE__ */ jsxs18("div", { className:
|
|
7503
|
-
/* @__PURE__ */
|
|
7504
|
-
showBreadcrumbs && /* @__PURE__ */
|
|
7505
|
-
/* @__PURE__ */
|
|
7476
|
+
return /* @__PURE__ */ jsxs18("div", { className: getClassName27({ noBorderTop }), style: { background }, children: [
|
|
7477
|
+
/* @__PURE__ */ jsx46("div", { className: getClassName27("title"), children: /* @__PURE__ */ jsxs18("div", { className: getClassName27("breadcrumbs"), children: [
|
|
7478
|
+
showBreadcrumbs && /* @__PURE__ */ jsx46(Breadcrumbs, {}),
|
|
7479
|
+
/* @__PURE__ */ jsx46("div", { className: getClassName27("heading"), children: /* @__PURE__ */ jsx46(Heading, { rank: "2", size: "xs", children: title }) })
|
|
7506
7480
|
] }) }),
|
|
7507
|
-
/* @__PURE__ */
|
|
7508
|
-
isLoading && /* @__PURE__ */
|
|
7481
|
+
/* @__PURE__ */ jsx46("div", { className: getClassName27("content"), children }),
|
|
7482
|
+
isLoading && /* @__PURE__ */ jsx46("div", { className: getClassName27("loadingOverlay"), children: /* @__PURE__ */ jsx46(Loader, { size: 32 }) })
|
|
7509
7483
|
] });
|
|
7510
7484
|
};
|
|
7511
7485
|
|
|
@@ -7529,11 +7503,11 @@ import { Combobox as ComboboxPrimitive } from "@base-ui/react";
|
|
|
7529
7503
|
|
|
7530
7504
|
// css-module:/Users/rami/Documents/apps/react-editor/packages/core/components/ui/Combobox/styles.module.css#css-module
|
|
7531
7505
|
init_react_import();
|
|
7532
|
-
var
|
|
7506
|
+
var styles_module_default24 = { "EditorCombobox-input": "_EditorCombobox-input_12a2a_4", "EditorCombobox-trigger": "_EditorCombobox-trigger_12a2a_21", "EditorCombobox-triggerIcon": "_EditorCombobox-triggerIcon_12a2a_42", "EditorCombobox-positioner": "_EditorCombobox-positioner_12a2a_46", "EditorCombobox-content": "_EditorCombobox-content_12a2a_50", "EditorCombobox-list": "_EditorCombobox-list_12a2a_65", "EditorCombobox-item": "_EditorCombobox-item_12a2a_71", "EditorCombobox-itemIndicator": "_EditorCombobox-itemIndicator_12a2a_97", "EditorCombobox-empty": "_EditorCombobox-empty_12a2a_110" };
|
|
7533
7507
|
|
|
7534
7508
|
// components/ui/Combobox/index.tsx
|
|
7535
|
-
import { jsx as
|
|
7536
|
-
var
|
|
7509
|
+
import { jsx as jsx47, jsxs as jsxs19 } from "react/jsx-runtime";
|
|
7510
|
+
var getClassName28 = get_class_name_factory_default("EditorCombobox", styles_module_default24);
|
|
7537
7511
|
var join = (...values) => values.filter(Boolean).join(" ");
|
|
7538
7512
|
var mergeClassName = (base, override) => {
|
|
7539
7513
|
if (!override) return base;
|
|
@@ -7549,11 +7523,11 @@ function ComboboxInput(_a) {
|
|
|
7549
7523
|
} = _b, props = __objRest(_b, [
|
|
7550
7524
|
"className"
|
|
7551
7525
|
]);
|
|
7552
|
-
return /* @__PURE__ */
|
|
7526
|
+
return /* @__PURE__ */ jsx47(
|
|
7553
7527
|
ComboboxPrimitive.Input,
|
|
7554
7528
|
__spreadValues({
|
|
7555
7529
|
"data-slot": "combobox-input",
|
|
7556
|
-
className: mergeClassName(
|
|
7530
|
+
className: mergeClassName(getClassName28("input"), className)
|
|
7557
7531
|
}, props)
|
|
7558
7532
|
);
|
|
7559
7533
|
}
|
|
@@ -7573,19 +7547,19 @@ function ComboboxContent(_a) {
|
|
|
7573
7547
|
"alignOffset",
|
|
7574
7548
|
"children"
|
|
7575
7549
|
]);
|
|
7576
|
-
return /* @__PURE__ */
|
|
7550
|
+
return /* @__PURE__ */ jsx47(ComboboxPrimitive.Portal, { children: /* @__PURE__ */ jsx47(
|
|
7577
7551
|
ComboboxPrimitive.Positioner,
|
|
7578
7552
|
{
|
|
7579
7553
|
side,
|
|
7580
7554
|
sideOffset,
|
|
7581
7555
|
align,
|
|
7582
7556
|
alignOffset,
|
|
7583
|
-
className:
|
|
7584
|
-
children: /* @__PURE__ */
|
|
7557
|
+
className: getClassName28("positioner"),
|
|
7558
|
+
children: /* @__PURE__ */ jsx47(
|
|
7585
7559
|
ComboboxPrimitive.Popup,
|
|
7586
7560
|
__spreadProps(__spreadValues({
|
|
7587
7561
|
"data-slot": "combobox-content",
|
|
7588
|
-
className: mergeClassName(
|
|
7562
|
+
className: mergeClassName(getClassName28("content"), className)
|
|
7589
7563
|
}, props), {
|
|
7590
7564
|
children
|
|
7591
7565
|
})
|
|
@@ -7599,11 +7573,11 @@ function ComboboxList(_a) {
|
|
|
7599
7573
|
} = _b, props = __objRest(_b, [
|
|
7600
7574
|
"className"
|
|
7601
7575
|
]);
|
|
7602
|
-
return /* @__PURE__ */
|
|
7576
|
+
return /* @__PURE__ */ jsx47(
|
|
7603
7577
|
ComboboxPrimitive.List,
|
|
7604
7578
|
__spreadValues({
|
|
7605
7579
|
"data-slot": "combobox-list",
|
|
7606
|
-
className: mergeClassName(
|
|
7580
|
+
className: mergeClassName(getClassName28("list"), className)
|
|
7607
7581
|
}, props)
|
|
7608
7582
|
);
|
|
7609
7583
|
}
|
|
@@ -7619,10 +7593,10 @@ function ComboboxItem(_a) {
|
|
|
7619
7593
|
ComboboxPrimitive.Item,
|
|
7620
7594
|
__spreadProps(__spreadValues({
|
|
7621
7595
|
"data-slot": "combobox-item",
|
|
7622
|
-
className: mergeClassName(
|
|
7596
|
+
className: mergeClassName(getClassName28("item"), className)
|
|
7623
7597
|
}, props), {
|
|
7624
7598
|
children: [
|
|
7625
|
-
/* @__PURE__ */
|
|
7599
|
+
/* @__PURE__ */ jsx47("span", { className: getClassName28("itemIndicator"), children: /* @__PURE__ */ jsx47(ComboboxPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx47(Check, { size: 14 }) }) }),
|
|
7626
7600
|
children
|
|
7627
7601
|
]
|
|
7628
7602
|
})
|
|
@@ -7634,27 +7608,27 @@ function ComboboxEmpty(_a) {
|
|
|
7634
7608
|
} = _b, props = __objRest(_b, [
|
|
7635
7609
|
"className"
|
|
7636
7610
|
]);
|
|
7637
|
-
return /* @__PURE__ */
|
|
7611
|
+
return /* @__PURE__ */ jsx47(
|
|
7638
7612
|
ComboboxPrimitive.Empty,
|
|
7639
7613
|
__spreadValues({
|
|
7640
7614
|
"data-slot": "combobox-empty",
|
|
7641
|
-
className: mergeClassName(
|
|
7615
|
+
className: mergeClassName(getClassName28("empty"), className)
|
|
7642
7616
|
}, props)
|
|
7643
7617
|
);
|
|
7644
7618
|
}
|
|
7645
7619
|
|
|
7646
7620
|
// css-module:/Users/rami/Documents/apps/react-editor/packages/core/components/BrowserBar/styles.module.css#css-module
|
|
7647
7621
|
init_react_import();
|
|
7648
|
-
var
|
|
7622
|
+
var styles_module_default25 = { "BrowserBar": "_BrowserBar_x10eb_1", "BrowserBar-urlTrigger": "_BrowserBar-urlTrigger_x10eb_16", "BrowserBar-urlIcon": "_BrowserBar-urlIcon_x10eb_46", "BrowserBar-urlText": "_BrowserBar-urlText_x10eb_51", "BrowserBar-urlInput": "_BrowserBar-urlInput_x10eb_63", "BrowserBar-itemPath": "_BrowserBar-itemPath_x10eb_69", "BrowserBar-itemTitle": "_BrowserBar-itemTitle_x10eb_74", "BrowserBar-actions": "_BrowserBar-actions_x10eb_82", "BrowserBar-deviceIcon": "_BrowserBar-deviceIcon_x10eb_89" };
|
|
7649
7623
|
|
|
7650
7624
|
// components/BrowserBar/index.tsx
|
|
7651
|
-
import { jsx as
|
|
7625
|
+
import { jsx as jsx48, jsxs as jsxs20 } from "react/jsx-runtime";
|
|
7652
7626
|
var normalizeRoute = (raw) => {
|
|
7653
7627
|
const trimmed = raw.trim();
|
|
7654
7628
|
if (!trimmed) return trimmed;
|
|
7655
7629
|
return trimmed.startsWith("/") ? trimmed : `/${trimmed}`;
|
|
7656
7630
|
};
|
|
7657
|
-
var
|
|
7631
|
+
var getClassName29 = get_class_name_factory_default("BrowserBar", styles_module_default25);
|
|
7658
7632
|
var DEVICE_VIEWPORTS = {
|
|
7659
7633
|
desktop: { width: "100%", height: "auto", icon: "Monitor", label: "Desktop" },
|
|
7660
7634
|
mobile: { width: 360, height: "auto", icon: "Smartphone", label: "Mobile" }
|
|
@@ -7700,7 +7674,7 @@ var BrowserBar = ({
|
|
|
7700
7674
|
if (!next || next === currentRoute) return;
|
|
7701
7675
|
void (onRouteChange == null ? void 0 : onRouteChange(next));
|
|
7702
7676
|
};
|
|
7703
|
-
return /* @__PURE__ */ jsxs20("div", { className:
|
|
7677
|
+
return /* @__PURE__ */ jsxs20("div", { className: getClassName29(), children: [
|
|
7704
7678
|
showRoutePicker ? /* @__PURE__ */ jsxs20(
|
|
7705
7679
|
Combobox,
|
|
7706
7680
|
{
|
|
@@ -7716,17 +7690,17 @@ var BrowserBar = ({
|
|
|
7716
7690
|
/* @__PURE__ */ jsxs20(
|
|
7717
7691
|
"form",
|
|
7718
7692
|
{
|
|
7719
|
-
className:
|
|
7693
|
+
className: getClassName29("urlTrigger"),
|
|
7720
7694
|
onSubmit: (event) => {
|
|
7721
7695
|
event.preventDefault();
|
|
7722
7696
|
submit(inputValue);
|
|
7723
7697
|
},
|
|
7724
7698
|
children: [
|
|
7725
|
-
/* @__PURE__ */
|
|
7726
|
-
/* @__PURE__ */
|
|
7699
|
+
/* @__PURE__ */ jsx48(Globe, { className: getClassName29("urlIcon"), size: 14 }),
|
|
7700
|
+
/* @__PURE__ */ jsx48(
|
|
7727
7701
|
ComboboxInput,
|
|
7728
7702
|
{
|
|
7729
|
-
className:
|
|
7703
|
+
className: getClassName29("urlInput"),
|
|
7730
7704
|
placeholder: "/",
|
|
7731
7705
|
spellCheck: false,
|
|
7732
7706
|
autoCorrect: "off",
|
|
@@ -7737,32 +7711,32 @@ var BrowserBar = ({
|
|
|
7737
7711
|
}
|
|
7738
7712
|
),
|
|
7739
7713
|
/* @__PURE__ */ jsxs20(ComboboxContent, { children: [
|
|
7740
|
-
/* @__PURE__ */
|
|
7741
|
-
/* @__PURE__ */
|
|
7714
|
+
/* @__PURE__ */ jsx48(ComboboxEmpty, { children: "Press Enter to go to this path" }),
|
|
7715
|
+
/* @__PURE__ */ jsx48(ComboboxList, { children: (path) => /* @__PURE__ */ jsx48(ComboboxItem, { value: path, children: /* @__PURE__ */ jsx48("span", { className: getClassName29("itemPath"), children: path }) }, path) })
|
|
7742
7716
|
] })
|
|
7743
7717
|
]
|
|
7744
7718
|
}
|
|
7745
|
-
) : /* @__PURE__ */ jsxs20("div", { className:
|
|
7746
|
-
/* @__PURE__ */
|
|
7747
|
-
/* @__PURE__ */
|
|
7719
|
+
) : /* @__PURE__ */ jsxs20("div", { className: getClassName29("urlTrigger"), children: [
|
|
7720
|
+
/* @__PURE__ */ jsx48(Globe, { className: getClassName29("urlIcon"), size: 14 }),
|
|
7721
|
+
/* @__PURE__ */ jsx48("span", { className: getClassName29("urlText"), children: "/" })
|
|
7748
7722
|
] }),
|
|
7749
|
-
/* @__PURE__ */ jsxs20("div", { className:
|
|
7750
|
-
/* @__PURE__ */
|
|
7723
|
+
/* @__PURE__ */ jsxs20("div", { className: getClassName29("actions"), children: [
|
|
7724
|
+
/* @__PURE__ */ jsx48(
|
|
7751
7725
|
IconButton,
|
|
7752
7726
|
{
|
|
7753
7727
|
type: "button",
|
|
7754
7728
|
title: activeDevice === "desktop" ? "Switch to mobile viewport" : "Switch to desktop viewport",
|
|
7755
7729
|
onClick: () => setDevice(activeDevice === "desktop" ? "mobile" : "desktop"),
|
|
7756
|
-
children: /* @__PURE__ */
|
|
7730
|
+
children: /* @__PURE__ */ jsx48("span", { className: getClassName29("deviceIcon"), children: activeDevice === "desktop" ? /* @__PURE__ */ jsx48(Monitor, { size: 16 }) : /* @__PURE__ */ jsx48(Smartphone, { size: 16 }) })
|
|
7757
7731
|
}
|
|
7758
7732
|
),
|
|
7759
|
-
/* @__PURE__ */
|
|
7733
|
+
/* @__PURE__ */ jsx48(
|
|
7760
7734
|
IconButton,
|
|
7761
7735
|
{
|
|
7762
7736
|
type: "button",
|
|
7763
7737
|
title: isFullScreen ? "Exit full screen" : "Enter full screen",
|
|
7764
7738
|
onClick: toggleFullScreen,
|
|
7765
|
-
children: /* @__PURE__ */
|
|
7739
|
+
children: /* @__PURE__ */ jsx48("span", { className: getClassName29("deviceIcon"), children: isFullScreen ? /* @__PURE__ */ jsx48(Minimize, { size: 16 }) : /* @__PURE__ */ jsx48(Maximize, { size: 16 }) })
|
|
7766
7740
|
}
|
|
7767
7741
|
)
|
|
7768
7742
|
] })
|
|
@@ -7771,7 +7745,7 @@ var BrowserBar = ({
|
|
|
7771
7745
|
|
|
7772
7746
|
// css-module:/Users/rami/Documents/apps/react-editor/packages/core/components/Editor/components/Canvas/styles.module.css#css-module
|
|
7773
7747
|
init_react_import();
|
|
7774
|
-
var
|
|
7748
|
+
var styles_module_default26 = { "EditorCanvas": "_EditorCanvas_es8bv_1", "EditorCanvas-controls": "_EditorCanvas-controls_es8bv_17", "EditorCanvas--fullScreen": "_EditorCanvas--fullScreen_es8bv_22", "EditorCanvas-inner": "_EditorCanvas-inner_es8bv_33", "EditorCanvas-rootColumn": "_EditorCanvas-rootColumn_es8bv_46", "EditorCanvas-root": "_EditorCanvas-root_es8bv_46", "EditorCanvas--ready": "_EditorCanvas--ready_es8bv_83", "EditorCanvas-loader": "_EditorCanvas-loader_es8bv_88", "EditorCanvas--showLoader": "_EditorCanvas--showLoader_es8bv_100", "EditorCanvas-browserBar": "_EditorCanvas-browserBar_es8bv_109", "EditorCanvas-zoomControls": "_EditorCanvas-zoomControls_es8bv_114" };
|
|
7775
7749
|
|
|
7776
7750
|
// components/Editor/components/Canvas/index.tsx
|
|
7777
7751
|
import { useShallow as useShallow9 } from "zustand/react/shallow";
|
|
@@ -7784,7 +7758,7 @@ import {
|
|
|
7784
7758
|
useRef as useRef14,
|
|
7785
7759
|
useMemo as useMemo21
|
|
7786
7760
|
} from "react";
|
|
7787
|
-
import { jsx as
|
|
7761
|
+
import { jsx as jsx49 } from "react/jsx-runtime";
|
|
7788
7762
|
var FrameContext = createContext7(null);
|
|
7789
7763
|
var FrameProvider = ({
|
|
7790
7764
|
children
|
|
@@ -7796,7 +7770,7 @@ var FrameProvider = ({
|
|
|
7796
7770
|
}),
|
|
7797
7771
|
[]
|
|
7798
7772
|
);
|
|
7799
|
-
return /* @__PURE__ */
|
|
7773
|
+
return /* @__PURE__ */ jsx49(FrameContext.Provider, { value, children });
|
|
7800
7774
|
};
|
|
7801
7775
|
var useCanvasFrame = () => {
|
|
7802
7776
|
const context = useContext14(FrameContext);
|
|
@@ -7807,8 +7781,8 @@ var useCanvasFrame = () => {
|
|
|
7807
7781
|
};
|
|
7808
7782
|
|
|
7809
7783
|
// components/Editor/components/Canvas/index.tsx
|
|
7810
|
-
import { Fragment as Fragment13, jsx as
|
|
7811
|
-
var
|
|
7784
|
+
import { Fragment as Fragment13, jsx as jsx50, jsxs as jsxs21 } from "react/jsx-runtime";
|
|
7785
|
+
var getClassName30 = get_class_name_factory_default("EditorCanvas", styles_module_default26);
|
|
7812
7786
|
var ZOOM_STEP = 0.15;
|
|
7813
7787
|
var MIN_ZOOM = 0.25;
|
|
7814
7788
|
var MAX_ZOOM = 3;
|
|
@@ -7850,7 +7824,7 @@ var Canvas = () => {
|
|
|
7850
7824
|
const [showTransition, setShowTransition] = useState21(false);
|
|
7851
7825
|
const isResizingRef = useRef15(false);
|
|
7852
7826
|
const defaultRender = useMemo22(() => {
|
|
7853
|
-
const EditorDefault = ({ children }) => /* @__PURE__ */
|
|
7827
|
+
const EditorDefault = ({ children }) => /* @__PURE__ */ jsx50(Fragment13, { children });
|
|
7854
7828
|
return EditorDefault;
|
|
7855
7829
|
}, []);
|
|
7856
7830
|
const CustomPreview = useMemo22(
|
|
@@ -7972,10 +7946,10 @@ var Canvas = () => {
|
|
|
7972
7946
|
appStoreApi,
|
|
7973
7947
|
setUi
|
|
7974
7948
|
]);
|
|
7975
|
-
return /* @__PURE__ */
|
|
7949
|
+
return /* @__PURE__ */ jsx50(
|
|
7976
7950
|
"div",
|
|
7977
7951
|
{
|
|
7978
|
-
className:
|
|
7952
|
+
className: getClassName30({
|
|
7979
7953
|
ready: status === "READY" || !iframe.enabled || !iframe.waitForStyles,
|
|
7980
7954
|
showLoader,
|
|
7981
7955
|
fullScreen: fullScreenCanvas
|
|
@@ -7990,16 +7964,16 @@ var Canvas = () => {
|
|
|
7990
7964
|
});
|
|
7991
7965
|
}
|
|
7992
7966
|
},
|
|
7993
|
-
children: /* @__PURE__ */ jsxs21("div", { className:
|
|
7994
|
-
!disableZoomControls && /* @__PURE__ */ jsxs21("div", { className:
|
|
7995
|
-
/* @__PURE__ */
|
|
7996
|
-
/* @__PURE__ */
|
|
7997
|
-
/* @__PURE__ */
|
|
7967
|
+
children: /* @__PURE__ */ jsxs21("div", { className: getClassName30("inner"), ref: frameRef, children: [
|
|
7968
|
+
!disableZoomControls && /* @__PURE__ */ jsxs21("div", { className: getClassName30("zoomControls"), children: [
|
|
7969
|
+
/* @__PURE__ */ jsx50(IconButton, { type: "button", title: "Zoom out", onClick: zoomOut, children: /* @__PURE__ */ jsx50(Minus, { size: 14 }) }),
|
|
7970
|
+
/* @__PURE__ */ jsx50(IconButton, { type: "button", title: "Reset zoom", onClick: resetZoom, children: /* @__PURE__ */ jsx50(RotateCcw, { size: 14 }) }),
|
|
7971
|
+
/* @__PURE__ */ jsx50(IconButton, { type: "button", title: "Zoom in", onClick: zoomIn, children: /* @__PURE__ */ jsx50(Plus, { size: 14 }) })
|
|
7998
7972
|
] }),
|
|
7999
7973
|
/* @__PURE__ */ jsxs21(
|
|
8000
7974
|
"div",
|
|
8001
7975
|
{
|
|
8002
|
-
className:
|
|
7976
|
+
className: getClassName30("rootColumn"),
|
|
8003
7977
|
style: {
|
|
8004
7978
|
width: iframe.enabled ? viewports.current.width : "100%",
|
|
8005
7979
|
transform: disableZoomControls ? void 0 : `scale(${canvasZoom})`,
|
|
@@ -8007,7 +7981,7 @@ var Canvas = () => {
|
|
|
8007
7981
|
transition: showTransition ? `width ${TRANSITION_DURATION}ms ease-out, transform ${TRANSITION_DURATION}ms ease-out` : disableZoomControls ? void 0 : "transform 150ms ease-out"
|
|
8008
7982
|
},
|
|
8009
7983
|
children: [
|
|
8010
|
-
iframe.enabled && /* @__PURE__ */
|
|
7984
|
+
iframe.enabled && /* @__PURE__ */ jsx50("div", { className: getClassName30("browserBar"), children: /* @__PURE__ */ jsx50(
|
|
8011
7985
|
BrowserBar,
|
|
8012
7986
|
{
|
|
8013
7987
|
onViewportChange: (viewport) => {
|
|
@@ -8024,23 +7998,23 @@ var Canvas = () => {
|
|
|
8024
7998
|
}
|
|
8025
7999
|
}
|
|
8026
8000
|
) }),
|
|
8027
|
-
/* @__PURE__ */
|
|
8001
|
+
/* @__PURE__ */ jsx50(
|
|
8028
8002
|
"div",
|
|
8029
8003
|
{
|
|
8030
|
-
className:
|
|
8004
|
+
className: getClassName30("root"),
|
|
8031
8005
|
suppressHydrationWarning: true,
|
|
8032
8006
|
id: "editor-canvas-root",
|
|
8033
8007
|
onTransitionEnd: () => {
|
|
8034
8008
|
setShowTransition(false);
|
|
8035
8009
|
isResizingRef.current = false;
|
|
8036
8010
|
},
|
|
8037
|
-
children: /* @__PURE__ */
|
|
8011
|
+
children: /* @__PURE__ */ jsx50(CustomPreview, { children: /* @__PURE__ */ jsx50(Preview2, {}) })
|
|
8038
8012
|
}
|
|
8039
8013
|
)
|
|
8040
8014
|
]
|
|
8041
8015
|
}
|
|
8042
8016
|
),
|
|
8043
|
-
/* @__PURE__ */
|
|
8017
|
+
/* @__PURE__ */ jsx50("div", { className: getClassName30("loader"), children: /* @__PURE__ */ jsx50(Loader, { size: 24 }) })
|
|
8044
8018
|
] })
|
|
8045
8019
|
}
|
|
8046
8020
|
);
|
|
@@ -8136,11 +8110,11 @@ import { useCallback as useCallback21, useRef as useRef17 } from "react";
|
|
|
8136
8110
|
|
|
8137
8111
|
// css-module:/Users/rami/Documents/apps/react-editor/packages/core/components/Editor/components/ResizeHandle/styles.module.css#css-module
|
|
8138
8112
|
init_react_import();
|
|
8139
|
-
var
|
|
8113
|
+
var styles_module_default27 = { "ResizeHandle": "_ResizeHandle_1u3rv_2", "ResizeHandle--left": "_ResizeHandle--left_1u3rv_16", "ResizeHandle--right": "_ResizeHandle--right_1u3rv_20" };
|
|
8140
8114
|
|
|
8141
8115
|
// components/Editor/components/ResizeHandle/index.tsx
|
|
8142
|
-
import { jsx as
|
|
8143
|
-
var
|
|
8116
|
+
import { jsx as jsx51 } from "react/jsx-runtime";
|
|
8117
|
+
var getClassName31 = get_class_name_factory_default("ResizeHandle", styles_module_default27);
|
|
8144
8118
|
var ResizeHandle = ({
|
|
8145
8119
|
position,
|
|
8146
8120
|
sidebarRef,
|
|
@@ -8195,11 +8169,11 @@ var ResizeHandle = ({
|
|
|
8195
8169
|
},
|
|
8196
8170
|
[position, handleMouseMove, handleMouseUp]
|
|
8197
8171
|
);
|
|
8198
|
-
return /* @__PURE__ */
|
|
8172
|
+
return /* @__PURE__ */ jsx51(
|
|
8199
8173
|
"div",
|
|
8200
8174
|
{
|
|
8201
8175
|
ref: handleRef,
|
|
8202
|
-
className:
|
|
8176
|
+
className: getClassName31({ [position]: true }),
|
|
8203
8177
|
onMouseDown: handleMouseDown
|
|
8204
8178
|
}
|
|
8205
8179
|
);
|
|
@@ -8207,11 +8181,11 @@ var ResizeHandle = ({
|
|
|
8207
8181
|
|
|
8208
8182
|
// css-module:/Users/rami/Documents/apps/react-editor/packages/core/components/Editor/components/Sidebar/styles.module.css#css-module
|
|
8209
8183
|
init_react_import();
|
|
8210
|
-
var
|
|
8184
|
+
var styles_module_default28 = { "Sidebar": "_Sidebar_14k7q_1", "Sidebar--isVisible": "_Sidebar--isVisible_14k7q_9", "Sidebar--left": "_Sidebar--left_14k7q_13", "Sidebar--right": "_Sidebar--right_14k7q_25", "Sidebar-resizeHandle": "_Sidebar-resizeHandle_14k7q_37" };
|
|
8211
8185
|
|
|
8212
8186
|
// components/Editor/components/Sidebar/index.tsx
|
|
8213
|
-
import { Fragment as Fragment14, jsx as
|
|
8214
|
-
var
|
|
8187
|
+
import { Fragment as Fragment14, jsx as jsx52, jsxs as jsxs22 } from "react/jsx-runtime";
|
|
8188
|
+
var getClassName32 = get_class_name_factory_default("Sidebar", styles_module_default28);
|
|
8215
8189
|
var Sidebar = ({
|
|
8216
8190
|
position,
|
|
8217
8191
|
sidebarRef,
|
|
@@ -8221,15 +8195,15 @@ var Sidebar = ({
|
|
|
8221
8195
|
children
|
|
8222
8196
|
}) => {
|
|
8223
8197
|
return /* @__PURE__ */ jsxs22(Fragment14, { children: [
|
|
8224
|
-
/* @__PURE__ */
|
|
8198
|
+
/* @__PURE__ */ jsx52(
|
|
8225
8199
|
"div",
|
|
8226
8200
|
{
|
|
8227
8201
|
ref: sidebarRef,
|
|
8228
|
-
className:
|
|
8202
|
+
className: getClassName32({ [position]: true, isVisible }),
|
|
8229
8203
|
children
|
|
8230
8204
|
}
|
|
8231
8205
|
),
|
|
8232
|
-
/* @__PURE__ */
|
|
8206
|
+
/* @__PURE__ */ jsx52("div", { className: `${getClassName32("resizeHandle")}`, children: /* @__PURE__ */ jsx52(
|
|
8233
8207
|
ResizeHandle,
|
|
8234
8208
|
{
|
|
8235
8209
|
position,
|
|
@@ -8404,12 +8378,12 @@ init_react_import();
|
|
|
8404
8378
|
|
|
8405
8379
|
// css-module:/Users/rami/Documents/apps/react-editor/packages/core/components/Editor/components/Nav/styles.module.css#css-module
|
|
8406
8380
|
init_react_import();
|
|
8407
|
-
var
|
|
8381
|
+
var styles_module_default29 = { "Nav": "_Nav_1g4tk_1", "Nav-list": "_Nav-list_1g4tk_18", "Nav-footer": "_Nav-footer_1g4tk_42", "NavItem-link": "_NavItem-link_1g4tk_55", "NavItem-linkLabel": "_NavItem-linkLabel_1g4tk_83", "NavItem": "_NavItem_1g4tk_55", "NavItem-linkIcon": "_NavItem-linkIcon_1g4tk_108", "NavItem--active": "_NavItem--active_1g4tk_121", "NavItem--mobileOnly": "_NavItem--mobileOnly_1g4tk_132", "NavItem--desktopOnly": "_NavItem--desktopOnly_1g4tk_137" };
|
|
8408
8382
|
|
|
8409
8383
|
// components/Editor/components/Nav/index.tsx
|
|
8410
|
-
import { jsx as
|
|
8411
|
-
var
|
|
8412
|
-
var getClassNameItem3 = get_class_name_factory_default("NavItem",
|
|
8384
|
+
import { jsx as jsx53, jsxs as jsxs23 } from "react/jsx-runtime";
|
|
8385
|
+
var getClassName33 = get_class_name_factory_default("Nav", styles_module_default29);
|
|
8386
|
+
var getClassNameItem3 = get_class_name_factory_default("NavItem", styles_module_default29);
|
|
8413
8387
|
var MenuItem = ({
|
|
8414
8388
|
label,
|
|
8415
8389
|
icon,
|
|
@@ -8418,7 +8392,7 @@ var MenuItem = ({
|
|
|
8418
8392
|
mobileOnly,
|
|
8419
8393
|
desktopOnly
|
|
8420
8394
|
}) => {
|
|
8421
|
-
return /* @__PURE__ */
|
|
8395
|
+
return /* @__PURE__ */ jsx53(
|
|
8422
8396
|
"li",
|
|
8423
8397
|
{
|
|
8424
8398
|
className: getClassNameItem3({
|
|
@@ -8427,8 +8401,8 @@ var MenuItem = ({
|
|
|
8427
8401
|
desktopOnly
|
|
8428
8402
|
}),
|
|
8429
8403
|
children: onClick && /* @__PURE__ */ jsxs23("div", { className: getClassNameItem3("link"), onClick, children: [
|
|
8430
|
-
icon && /* @__PURE__ */
|
|
8431
|
-
/* @__PURE__ */
|
|
8404
|
+
icon && /* @__PURE__ */ jsx53("span", { className: getClassNameItem3("linkIcon"), children: icon }),
|
|
8405
|
+
/* @__PURE__ */ jsx53("span", { className: getClassNameItem3("linkLabel"), children: label })
|
|
8432
8406
|
] })
|
|
8433
8407
|
}
|
|
8434
8408
|
);
|
|
@@ -8437,17 +8411,17 @@ var Nav = ({
|
|
|
8437
8411
|
items,
|
|
8438
8412
|
footer
|
|
8439
8413
|
}) => {
|
|
8440
|
-
return /* @__PURE__ */ jsxs23("nav", { className:
|
|
8441
|
-
/* @__PURE__ */
|
|
8442
|
-
footer && /* @__PURE__ */
|
|
8414
|
+
return /* @__PURE__ */ jsxs23("nav", { className: getClassName33(), children: [
|
|
8415
|
+
/* @__PURE__ */ jsx53("ul", { className: getClassName33("list"), children: Object.entries(items).map(([key, item]) => /* @__PURE__ */ jsx53(MenuItem, __spreadValues({}, item), key)) }),
|
|
8416
|
+
footer && /* @__PURE__ */ jsx53("div", { className: getClassName33("footer"), children: footer })
|
|
8443
8417
|
] });
|
|
8444
8418
|
};
|
|
8445
8419
|
|
|
8446
8420
|
// components/Editor/components/Layout/index.tsx
|
|
8447
|
-
import { Fragment as Fragment15, jsx as
|
|
8448
|
-
var
|
|
8449
|
-
var getLayoutClassName = get_class_name_factory_default("EditorLayout",
|
|
8450
|
-
var getPluginTabClassName = get_class_name_factory_default("EditorPluginTab",
|
|
8421
|
+
import { Fragment as Fragment15, jsx as jsx54, jsxs as jsxs24 } from "react/jsx-runtime";
|
|
8422
|
+
var getClassName34 = get_class_name_factory_default("Editor", styles_module_default22);
|
|
8423
|
+
var getLayoutClassName = get_class_name_factory_default("EditorLayout", styles_module_default22);
|
|
8424
|
+
var getPluginTabClassName = get_class_name_factory_default("EditorPluginTab", styles_module_default22);
|
|
8451
8425
|
var FieldSideBarToolbar = () => {
|
|
8452
8426
|
const appStore = useAppStoreApi();
|
|
8453
8427
|
const { onPublish, currentRoute } = usePropsContext();
|
|
@@ -8458,30 +8432,30 @@ var FieldSideBarToolbar = () => {
|
|
|
8458
8432
|
const CustomHeaderActions = useAppStore(
|
|
8459
8433
|
(s) => s.overrides.headerActions || DefaultOverride
|
|
8460
8434
|
);
|
|
8461
|
-
return /* @__PURE__ */ jsxs24("div", { className:
|
|
8462
|
-
/* @__PURE__ */ jsxs24("div", { className:
|
|
8463
|
-
/* @__PURE__ */
|
|
8435
|
+
return /* @__PURE__ */ jsxs24("div", { className: getClassName34("fieldSideBarToolbar"), children: [
|
|
8436
|
+
/* @__PURE__ */ jsxs24("div", { className: getClassName34("fieldSideBarHistory"), children: [
|
|
8437
|
+
/* @__PURE__ */ jsx54(
|
|
8464
8438
|
IconButton,
|
|
8465
8439
|
{
|
|
8466
8440
|
type: "button",
|
|
8467
8441
|
title: "undo",
|
|
8468
8442
|
disabled: !hasPast,
|
|
8469
8443
|
onClick: back,
|
|
8470
|
-
children: /* @__PURE__ */
|
|
8444
|
+
children: /* @__PURE__ */ jsx54(Undo2, { size: 18 })
|
|
8471
8445
|
}
|
|
8472
8446
|
),
|
|
8473
|
-
/* @__PURE__ */
|
|
8447
|
+
/* @__PURE__ */ jsx54(
|
|
8474
8448
|
IconButton,
|
|
8475
8449
|
{
|
|
8476
8450
|
type: "button",
|
|
8477
8451
|
title: "redo",
|
|
8478
8452
|
disabled: !hasFuture,
|
|
8479
8453
|
onClick: forward,
|
|
8480
|
-
children: /* @__PURE__ */
|
|
8454
|
+
children: /* @__PURE__ */ jsx54(Redo2, { size: 18 })
|
|
8481
8455
|
}
|
|
8482
8456
|
)
|
|
8483
8457
|
] }),
|
|
8484
|
-
/* @__PURE__ */
|
|
8458
|
+
/* @__PURE__ */ jsx54("div", { className: getClassName34("fieldSideBarActions"), children: /* @__PURE__ */ jsx54(CustomHeaderActions, { children: /* @__PURE__ */ jsx54(
|
|
8485
8459
|
Button,
|
|
8486
8460
|
{
|
|
8487
8461
|
onClick: () => {
|
|
@@ -8501,8 +8475,8 @@ var FieldSideBar = () => {
|
|
|
8501
8475
|
}
|
|
8502
8476
|
);
|
|
8503
8477
|
return /* @__PURE__ */ jsxs24(Fragment15, { children: [
|
|
8504
|
-
/* @__PURE__ */
|
|
8505
|
-
/* @__PURE__ */
|
|
8478
|
+
/* @__PURE__ */ jsx54(FieldSideBarToolbar, {}),
|
|
8479
|
+
/* @__PURE__ */ jsx54(SidebarSection, { noBorderTop: true, showBreadcrumbs: true, title, children: /* @__PURE__ */ jsx54(Fields, {}) })
|
|
8506
8480
|
] });
|
|
8507
8481
|
};
|
|
8508
8482
|
var PluginTab = ({
|
|
@@ -8510,7 +8484,7 @@ var PluginTab = ({
|
|
|
8510
8484
|
visible,
|
|
8511
8485
|
mobileOnly
|
|
8512
8486
|
}) => {
|
|
8513
|
-
return /* @__PURE__ */
|
|
8487
|
+
return /* @__PURE__ */ jsx54("div", { className: getPluginTabClassName({ visible, mobileOnly }), children: /* @__PURE__ */ jsx54("div", { className: getPluginTabClassName("body"), children }) });
|
|
8514
8488
|
};
|
|
8515
8489
|
var Layout = ({ children }) => {
|
|
8516
8490
|
const {
|
|
@@ -8533,6 +8507,7 @@ var Layout = ({ children }) => {
|
|
|
8533
8507
|
const rightSideBarVisible = useAppStore(
|
|
8534
8508
|
(s) => s.state.ui.rightSideBarVisible
|
|
8535
8509
|
);
|
|
8510
|
+
const navBarVisible = useAppStore((s) => s.state.ui.navBarVisible);
|
|
8536
8511
|
const instanceId = useAppStore((s) => s.instanceId);
|
|
8537
8512
|
const {
|
|
8538
8513
|
width: leftWidth,
|
|
@@ -8677,7 +8652,7 @@ var Layout = ({ children }) => {
|
|
|
8677
8652
|
const toggleTheme = () => {
|
|
8678
8653
|
setTheme((t) => t === "dark" ? "light" : "dark");
|
|
8679
8654
|
};
|
|
8680
|
-
const themeIcon = theme === "dark" ? /* @__PURE__ */
|
|
8655
|
+
const themeIcon = theme === "dark" ? /* @__PURE__ */ jsx54(Sun, { size: 18 }) : /* @__PURE__ */ jsx54(Moon, { size: 18 });
|
|
8681
8656
|
const themeLabel = theme === "dark" ? "Switch to light mode" : "Switch to dark mode";
|
|
8682
8657
|
const hasLegacySideBarPlugin = useMemo23(
|
|
8683
8658
|
() => !!(plugins == null ? void 0 : plugins.find((p) => p.name === "legacy-side-bar")),
|
|
@@ -8685,7 +8660,7 @@ var Layout = ({ children }) => {
|
|
|
8685
8660
|
);
|
|
8686
8661
|
const pluginItems = useMemo23(() => {
|
|
8687
8662
|
const details = {};
|
|
8688
|
-
const defaultPlugins = [blocksPlugin()
|
|
8663
|
+
const defaultPlugins = [blocksPlugin()];
|
|
8689
8664
|
const isLegacy = (plugin) => plugin.name === "legacy-side-bar" ? -1 : 0;
|
|
8690
8665
|
const combinedPlugins = [
|
|
8691
8666
|
...defaultPlugins,
|
|
@@ -8702,7 +8677,7 @@ var Layout = ({ children }) => {
|
|
|
8702
8677
|
}
|
|
8703
8678
|
details[plugin.name] = {
|
|
8704
8679
|
label: (_a = plugin.label) != null ? _a : plugin.name,
|
|
8705
|
-
icon: (_b = plugin.icon) != null ? _b : /* @__PURE__ */
|
|
8680
|
+
icon: (_b = plugin.icon) != null ? _b : /* @__PURE__ */ jsx54(ToyBrick, {}),
|
|
8706
8681
|
onClick: () => {
|
|
8707
8682
|
var _a2;
|
|
8708
8683
|
setMobilePanelHeightMode((_a2 = plugin.mobilePanelHeight) != null ? _a2 : "toggle");
|
|
@@ -8744,14 +8719,14 @@ var Layout = ({ children }) => {
|
|
|
8744
8719
|
return /* @__PURE__ */ jsxs24(
|
|
8745
8720
|
"div",
|
|
8746
8721
|
{
|
|
8747
|
-
className: `Editor ${
|
|
8722
|
+
className: `Editor ${getClassName34({
|
|
8748
8723
|
hidePlugins: hasLegacySideBarPlugin
|
|
8749
8724
|
})}`,
|
|
8750
8725
|
id: instanceId,
|
|
8751
8726
|
"data-theme": theme,
|
|
8752
8727
|
style: { height },
|
|
8753
8728
|
children: [
|
|
8754
|
-
/* @__PURE__ */
|
|
8729
|
+
/* @__PURE__ */ jsx54(DragDropContext, { disableAutoScroll: dnd == null ? void 0 : dnd.disableAutoScroll, children: /* @__PURE__ */ jsx54(CustomEditor, { children: children || /* @__PURE__ */ jsx54(FrameProvider, { children: /* @__PURE__ */ jsx54(
|
|
8755
8730
|
"div",
|
|
8756
8731
|
{
|
|
8757
8732
|
className: getLayoutClassName({
|
|
@@ -8769,11 +8744,11 @@ var Layout = ({ children }) => {
|
|
|
8769
8744
|
className: getLayoutClassName("inner"),
|
|
8770
8745
|
style: __spreadValues(__spreadValues({}, layoutOptions), mobilePanelStyle),
|
|
8771
8746
|
children: [
|
|
8772
|
-
/* @__PURE__ */
|
|
8747
|
+
navBarVisible && /* @__PURE__ */ jsx54("div", { className: getLayoutClassName("nav"), children: /* @__PURE__ */ jsx54(
|
|
8773
8748
|
Nav,
|
|
8774
8749
|
{
|
|
8775
8750
|
items: pluginItems,
|
|
8776
|
-
footer: /* @__PURE__ */
|
|
8751
|
+
footer: /* @__PURE__ */ jsx54(
|
|
8777
8752
|
IconButton,
|
|
8778
8753
|
{
|
|
8779
8754
|
type: "button",
|
|
@@ -8790,13 +8765,13 @@ var Layout = ({ children }) => {
|
|
|
8790
8765
|
ref: mobilePanelRef,
|
|
8791
8766
|
className: getLayoutClassName("mobilePanel"),
|
|
8792
8767
|
children: [
|
|
8793
|
-
/* @__PURE__ */
|
|
8768
|
+
/* @__PURE__ */ jsx54(
|
|
8794
8769
|
"div",
|
|
8795
8770
|
{
|
|
8796
8771
|
className: getLayoutClassName("mobileDragHandle"),
|
|
8797
8772
|
onTouchStart: (e) => handleMobileDragStart(e.touches[0].clientY),
|
|
8798
8773
|
onMouseDown: (e) => handleMobileDragStart(e.clientY),
|
|
8799
|
-
children: /* @__PURE__ */
|
|
8774
|
+
children: /* @__PURE__ */ jsx54(
|
|
8800
8775
|
"div",
|
|
8801
8776
|
{
|
|
8802
8777
|
className: getLayoutClassName("mobileDragHandlePill")
|
|
@@ -8804,17 +8779,17 @@ var Layout = ({ children }) => {
|
|
|
8804
8779
|
)
|
|
8805
8780
|
}
|
|
8806
8781
|
),
|
|
8807
|
-
/* @__PURE__ */
|
|
8782
|
+
/* @__PURE__ */ jsx54(
|
|
8808
8783
|
"div",
|
|
8809
8784
|
{
|
|
8810
8785
|
className: getLayoutClassName("mobilePanelContent"),
|
|
8811
8786
|
children: Object.entries(pluginItems).map(
|
|
8812
|
-
([id, { mobileOnly, render: Render2 }]) => /* @__PURE__ */
|
|
8787
|
+
([id, { mobileOnly, render: Render2 }]) => /* @__PURE__ */ jsx54(
|
|
8813
8788
|
PluginTab,
|
|
8814
8789
|
{
|
|
8815
8790
|
visible: currentPlugin === id,
|
|
8816
8791
|
mobileOnly,
|
|
8817
|
-
children: /* @__PURE__ */
|
|
8792
|
+
children: /* @__PURE__ */ jsx54(Render2, {})
|
|
8818
8793
|
},
|
|
8819
8794
|
id
|
|
8820
8795
|
)
|
|
@@ -8824,7 +8799,7 @@ var Layout = ({ children }) => {
|
|
|
8824
8799
|
]
|
|
8825
8800
|
}
|
|
8826
8801
|
),
|
|
8827
|
-
/* @__PURE__ */
|
|
8802
|
+
/* @__PURE__ */ jsx54(
|
|
8828
8803
|
Sidebar,
|
|
8829
8804
|
{
|
|
8830
8805
|
position: "left",
|
|
@@ -8833,20 +8808,20 @@ var Layout = ({ children }) => {
|
|
|
8833
8808
|
onResize: setLeftWidth,
|
|
8834
8809
|
onResizeEnd: handleLeftSidebarResizeEnd,
|
|
8835
8810
|
children: Object.entries(pluginItems).map(
|
|
8836
|
-
([id, { mobileOnly, render: Render2, label }]) => /* @__PURE__ */
|
|
8811
|
+
([id, { mobileOnly, render: Render2, label }]) => /* @__PURE__ */ jsx54(
|
|
8837
8812
|
PluginTab,
|
|
8838
8813
|
{
|
|
8839
8814
|
visible: currentPlugin === id,
|
|
8840
8815
|
mobileOnly,
|
|
8841
|
-
children: /* @__PURE__ */
|
|
8816
|
+
children: /* @__PURE__ */ jsx54(Render2, {})
|
|
8842
8817
|
},
|
|
8843
8818
|
id
|
|
8844
8819
|
)
|
|
8845
8820
|
)
|
|
8846
8821
|
}
|
|
8847
8822
|
),
|
|
8848
|
-
/* @__PURE__ */
|
|
8849
|
-
!hasDesktopFieldsPlugin && /* @__PURE__ */
|
|
8823
|
+
/* @__PURE__ */ jsx54(Canvas, {}),
|
|
8824
|
+
!hasDesktopFieldsPlugin && /* @__PURE__ */ jsx54(
|
|
8850
8825
|
Sidebar,
|
|
8851
8826
|
{
|
|
8852
8827
|
position: "right",
|
|
@@ -8854,7 +8829,7 @@ var Layout = ({ children }) => {
|
|
|
8854
8829
|
isVisible: rightSideBarVisible,
|
|
8855
8830
|
onResize: setRightWidth,
|
|
8856
8831
|
onResizeEnd: handleRightSidebarResizeEnd,
|
|
8857
|
-
children: /* @__PURE__ */
|
|
8832
|
+
children: /* @__PURE__ */ jsx54(FieldSideBar, {})
|
|
8858
8833
|
}
|
|
8859
8834
|
)
|
|
8860
8835
|
]
|
|
@@ -8862,17 +8837,17 @@ var Layout = ({ children }) => {
|
|
|
8862
8837
|
)
|
|
8863
8838
|
}
|
|
8864
8839
|
) }) }) }),
|
|
8865
|
-
/* @__PURE__ */
|
|
8840
|
+
/* @__PURE__ */ jsx54("div", { id: "editor-portal-root", className: getClassName34("portal") })
|
|
8866
8841
|
]
|
|
8867
8842
|
}
|
|
8868
8843
|
);
|
|
8869
8844
|
};
|
|
8870
8845
|
|
|
8871
8846
|
// components/Editor/index.tsx
|
|
8872
|
-
import { jsx as
|
|
8847
|
+
import { jsx as jsx55 } from "react/jsx-runtime";
|
|
8873
8848
|
var propsContext = createContext8({});
|
|
8874
8849
|
function PropsProvider(props) {
|
|
8875
|
-
return /* @__PURE__ */
|
|
8850
|
+
return /* @__PURE__ */ jsx55(propsContext.Provider, { value: props, children: props.children });
|
|
8876
8851
|
}
|
|
8877
8852
|
var usePropsContext = () => useContext15(propsContext);
|
|
8878
8853
|
function EditorProvider({ children }) {
|
|
@@ -9056,10 +9031,10 @@ function EditorProvider({ children }) {
|
|
|
9056
9031
|
resolveAndCommitData();
|
|
9057
9032
|
}, 0);
|
|
9058
9033
|
}, []);
|
|
9059
|
-
return /* @__PURE__ */
|
|
9034
|
+
return /* @__PURE__ */ jsx55(appStoreContext.Provider, { value: appStore, children: /* @__PURE__ */ jsx55(UseEditorStoreContext.Provider, { value: uEditorStore, children }) });
|
|
9060
9035
|
}
|
|
9061
9036
|
function Editor3(props) {
|
|
9062
|
-
return /* @__PURE__ */
|
|
9037
|
+
return /* @__PURE__ */ jsx55(PropsProvider, __spreadProps(__spreadValues({}, props), { children: /* @__PURE__ */ jsx55(EditorProvider, __spreadProps(__spreadValues({}, props), { children: /* @__PURE__ */ jsx55(Layout, { children: props.children }) })) }));
|
|
9063
9038
|
}
|
|
9064
9039
|
Editor3.Components = Components;
|
|
9065
9040
|
Editor3.Fields = Fields;
|
|
@@ -9144,7 +9119,7 @@ import {
|
|
|
9144
9119
|
MemoryRouter,
|
|
9145
9120
|
StaticRouter
|
|
9146
9121
|
} from "react-router";
|
|
9147
|
-
import { jsx as
|
|
9122
|
+
import { jsx as jsx56 } from "react/jsx-runtime";
|
|
9148
9123
|
var EDITOR_PATH = "/editor";
|
|
9149
9124
|
var isServer = typeof window === "undefined";
|
|
9150
9125
|
function AppProvider({
|
|
@@ -9165,28 +9140,28 @@ function AppProvider({
|
|
|
9165
9140
|
}),
|
|
9166
9141
|
[config, stablePages, resolvedEditorPath]
|
|
9167
9142
|
);
|
|
9168
|
-
const inner = /* @__PURE__ */
|
|
9143
|
+
const inner = /* @__PURE__ */ jsx56(appConfigContext.Provider, { value: ctxValue, children });
|
|
9169
9144
|
if (isServer) {
|
|
9170
|
-
return /* @__PURE__ */
|
|
9145
|
+
return /* @__PURE__ */ jsx56(StaticRouter, { location: currentPath != null ? currentPath : "/", children: inner });
|
|
9171
9146
|
}
|
|
9172
9147
|
if (router === "hash") {
|
|
9173
|
-
return /* @__PURE__ */
|
|
9148
|
+
return /* @__PURE__ */ jsx56(HashRouter, { children: inner });
|
|
9174
9149
|
}
|
|
9175
9150
|
if (router === "memory") {
|
|
9176
|
-
return /* @__PURE__ */
|
|
9151
|
+
return /* @__PURE__ */ jsx56(MemoryRouter, { initialEntries: [currentPath != null ? currentPath : "/"], children: inner });
|
|
9177
9152
|
}
|
|
9178
|
-
return /* @__PURE__ */
|
|
9153
|
+
return /* @__PURE__ */ jsx56(BrowserRouter, { children: inner });
|
|
9179
9154
|
}
|
|
9180
9155
|
|
|
9181
9156
|
// components/App/App.tsx
|
|
9182
9157
|
init_react_import();
|
|
9183
9158
|
import { Route, Routes } from "react-router";
|
|
9184
|
-
import { Fragment as Fragment16, jsx as
|
|
9159
|
+
import { Fragment as Fragment16, jsx as jsx57, jsxs as jsxs25 } from "react/jsx-runtime";
|
|
9185
9160
|
var joinEditorPath = (editorPath, route) => {
|
|
9186
9161
|
if (route === "/") return editorPath;
|
|
9187
9162
|
return `${editorPath}${route}`;
|
|
9188
9163
|
};
|
|
9189
|
-
var DefaultNotFound = () => /* @__PURE__ */
|
|
9164
|
+
var DefaultNotFound = () => /* @__PURE__ */ jsx57(
|
|
9190
9165
|
"div",
|
|
9191
9166
|
{
|
|
9192
9167
|
style: {
|
|
@@ -9197,19 +9172,19 @@ var DefaultNotFound = () => /* @__PURE__ */ jsx58(
|
|
|
9197
9172
|
alignItems: "center"
|
|
9198
9173
|
},
|
|
9199
9174
|
children: /* @__PURE__ */ jsxs25("div", { children: [
|
|
9200
|
-
/* @__PURE__ */
|
|
9201
|
-
/* @__PURE__ */
|
|
9175
|
+
/* @__PURE__ */ jsx57("h1", { children: "404" }),
|
|
9176
|
+
/* @__PURE__ */ jsx57("p", { children: "No page matches this route." })
|
|
9202
9177
|
] })
|
|
9203
9178
|
}
|
|
9204
9179
|
);
|
|
9205
|
-
function
|
|
9180
|
+
function RenderForKey({
|
|
9206
9181
|
routeKey,
|
|
9207
9182
|
metadata
|
|
9208
9183
|
}) {
|
|
9209
9184
|
const { config, pages } = useApp();
|
|
9210
9185
|
const data = pages[routeKey];
|
|
9211
9186
|
if (!data) return null;
|
|
9212
|
-
return /* @__PURE__ */
|
|
9187
|
+
return /* @__PURE__ */ jsx57(
|
|
9213
9188
|
Render,
|
|
9214
9189
|
{
|
|
9215
9190
|
config,
|
|
@@ -9219,91 +9194,118 @@ function RenderRoute({
|
|
|
9219
9194
|
routeKey
|
|
9220
9195
|
);
|
|
9221
9196
|
}
|
|
9222
|
-
function
|
|
9197
|
+
function EditorForKey({
|
|
9223
9198
|
routeKey,
|
|
9224
|
-
|
|
9199
|
+
editorProps,
|
|
9200
|
+
children
|
|
9225
9201
|
}) {
|
|
9226
|
-
const {
|
|
9227
|
-
onPublish,
|
|
9228
|
-
onChange,
|
|
9229
|
-
plugins,
|
|
9230
|
-
overrides,
|
|
9231
|
-
fieldTransforms,
|
|
9232
|
-
metadata,
|
|
9233
|
-
iframe,
|
|
9234
|
-
viewports,
|
|
9235
|
-
permissions
|
|
9236
|
-
} = layoutProps;
|
|
9237
9202
|
const { config, pages, routes, navigate } = useApp();
|
|
9238
9203
|
const data = pages[routeKey];
|
|
9239
9204
|
if (!data) return null;
|
|
9240
|
-
return /* @__PURE__ */
|
|
9205
|
+
return /* @__PURE__ */ jsx57(
|
|
9241
9206
|
Editor3,
|
|
9242
9207
|
{
|
|
9243
9208
|
config,
|
|
9244
9209
|
data,
|
|
9245
|
-
|
|
9246
|
-
|
|
9247
|
-
|
|
9248
|
-
|
|
9249
|
-
|
|
9250
|
-
|
|
9251
|
-
|
|
9252
|
-
|
|
9253
|
-
|
|
9210
|
+
ui: editorProps.ui,
|
|
9211
|
+
plugins: editorProps.plugins,
|
|
9212
|
+
overrides: editorProps.overrides,
|
|
9213
|
+
fieldTransforms: editorProps.fieldTransforms,
|
|
9214
|
+
metadata: editorProps.metadata,
|
|
9215
|
+
iframe: editorProps.iframe,
|
|
9216
|
+
viewports: editorProps.viewports,
|
|
9217
|
+
permissions: editorProps.permissions,
|
|
9218
|
+
onChange: editorProps.onChange,
|
|
9219
|
+
onPublish: editorProps.onPublish,
|
|
9220
|
+
onAction: editorProps.onAction,
|
|
9221
|
+
renderHeader: editorProps.renderHeader,
|
|
9222
|
+
renderHeaderActions: editorProps.renderHeaderActions,
|
|
9223
|
+
title: editorProps.title,
|
|
9224
|
+
dnd: editorProps.dnd,
|
|
9225
|
+
initialHistory: editorProps.initialHistory,
|
|
9226
|
+
height: editorProps.height,
|
|
9227
|
+
fullScreenCanvas: editorProps.fullScreenCanvas,
|
|
9228
|
+
disableZoomControls: editorProps.disableZoomControls,
|
|
9229
|
+
_experimentalVirtualization: editorProps._experimentalVirtualization,
|
|
9254
9230
|
routes,
|
|
9255
9231
|
currentRoute: routeKey,
|
|
9256
|
-
onRouteChange: (next) => navigate(next)
|
|
9232
|
+
onRouteChange: (next) => navigate(next),
|
|
9233
|
+
children
|
|
9257
9234
|
},
|
|
9258
9235
|
routeKey
|
|
9259
9236
|
);
|
|
9260
9237
|
}
|
|
9261
|
-
function
|
|
9262
|
-
|
|
9263
|
-
|
|
9264
|
-
|
|
9265
|
-
}
|
|
9266
|
-
function AppLayout(layoutProps) {
|
|
9267
|
-
const { pages, editorPath } = useApp();
|
|
9268
|
-
const renderRoutes = Object.keys(pages);
|
|
9238
|
+
function AppRender({ metadata, renderNotFound }) {
|
|
9239
|
+
const { pages, isEditing } = useApp();
|
|
9240
|
+
if (isEditing) return null;
|
|
9241
|
+
const routeKeys = Object.keys(pages);
|
|
9269
9242
|
return /* @__PURE__ */ jsxs25(Routes, { children: [
|
|
9270
|
-
|
|
9243
|
+
routeKeys.map((routeKey) => /* @__PURE__ */ jsx57(
|
|
9271
9244
|
Route,
|
|
9272
9245
|
{
|
|
9273
9246
|
path: routeKey,
|
|
9274
|
-
element: /* @__PURE__ */
|
|
9275
|
-
|
|
9247
|
+
element: /* @__PURE__ */ jsx57(
|
|
9248
|
+
RenderForKey,
|
|
9276
9249
|
{
|
|
9277
9250
|
routeKey,
|
|
9278
|
-
metadata
|
|
9251
|
+
metadata
|
|
9279
9252
|
}
|
|
9280
9253
|
)
|
|
9281
9254
|
},
|
|
9282
9255
|
`render:${routeKey}`
|
|
9283
9256
|
)),
|
|
9284
|
-
|
|
9257
|
+
/* @__PURE__ */ jsx57(
|
|
9258
|
+
Route,
|
|
9259
|
+
{
|
|
9260
|
+
path: "*",
|
|
9261
|
+
element: renderNotFound ? /* @__PURE__ */ jsx57(Fragment16, { children: renderNotFound() }) : /* @__PURE__ */ jsx57(DefaultNotFound, {})
|
|
9262
|
+
}
|
|
9263
|
+
)
|
|
9264
|
+
] });
|
|
9265
|
+
}
|
|
9266
|
+
function AppEditor(props) {
|
|
9267
|
+
const _a = props, { children, renderNotFound } = _a, editorProps = __objRest(_a, ["children", "renderNotFound"]);
|
|
9268
|
+
const { pages, isEditing, editorPath } = useApp();
|
|
9269
|
+
if (!isEditing || editorPath === null) return null;
|
|
9270
|
+
const routeKeys = Object.keys(pages);
|
|
9271
|
+
return /* @__PURE__ */ jsxs25(Routes, { children: [
|
|
9272
|
+
routeKeys.map((routeKey) => /* @__PURE__ */ jsx57(
|
|
9285
9273
|
Route,
|
|
9286
9274
|
{
|
|
9287
9275
|
path: joinEditorPath(editorPath, routeKey),
|
|
9288
|
-
element: /* @__PURE__ */
|
|
9289
|
-
|
|
9276
|
+
element: /* @__PURE__ */ jsx57(
|
|
9277
|
+
EditorForKey,
|
|
9290
9278
|
{
|
|
9291
9279
|
routeKey,
|
|
9292
|
-
|
|
9280
|
+
editorProps,
|
|
9281
|
+
children
|
|
9293
9282
|
}
|
|
9294
9283
|
)
|
|
9295
9284
|
},
|
|
9296
9285
|
`edit:${routeKey}`
|
|
9297
9286
|
)),
|
|
9298
|
-
/* @__PURE__ */
|
|
9287
|
+
/* @__PURE__ */ jsx57(
|
|
9299
9288
|
Route,
|
|
9300
9289
|
{
|
|
9301
9290
|
path: "*",
|
|
9302
|
-
element: /* @__PURE__ */
|
|
9291
|
+
element: renderNotFound ? /* @__PURE__ */ jsx57(Fragment16, { children: renderNotFound() }) : /* @__PURE__ */ jsx57(DefaultNotFound, {})
|
|
9303
9292
|
}
|
|
9304
9293
|
)
|
|
9305
9294
|
] });
|
|
9306
9295
|
}
|
|
9296
|
+
function DefaultAppLayout(props) {
|
|
9297
|
+
const _a = props, { renderNotFound } = _a, editorProps = __objRest(_a, ["renderNotFound"]);
|
|
9298
|
+
return /* @__PURE__ */ jsxs25(Fragment16, { children: [
|
|
9299
|
+
/* @__PURE__ */ jsx57(
|
|
9300
|
+
AppRender,
|
|
9301
|
+
{
|
|
9302
|
+
metadata: editorProps.metadata,
|
|
9303
|
+
renderNotFound
|
|
9304
|
+
}
|
|
9305
|
+
),
|
|
9306
|
+
/* @__PURE__ */ jsx57(AppEditor, __spreadProps(__spreadValues({}, editorProps), { renderNotFound }))
|
|
9307
|
+
] });
|
|
9308
|
+
}
|
|
9307
9309
|
function App(props) {
|
|
9308
9310
|
const _a = props, {
|
|
9309
9311
|
config,
|
|
@@ -9320,7 +9322,7 @@ function App(props) {
|
|
|
9320
9322
|
"router",
|
|
9321
9323
|
"children"
|
|
9322
9324
|
]);
|
|
9323
|
-
return /* @__PURE__ */
|
|
9325
|
+
return /* @__PURE__ */ jsx57(
|
|
9324
9326
|
AppProvider,
|
|
9325
9327
|
{
|
|
9326
9328
|
config,
|
|
@@ -9328,10 +9330,12 @@ function App(props) {
|
|
|
9328
9330
|
currentPath,
|
|
9329
9331
|
editorPath,
|
|
9330
9332
|
router,
|
|
9331
|
-
children: children != null ? children : /* @__PURE__ */
|
|
9333
|
+
children: children != null ? children : /* @__PURE__ */ jsx57(DefaultAppLayout, __spreadValues({}, layoutProps))
|
|
9332
9334
|
}
|
|
9333
9335
|
);
|
|
9334
9336
|
}
|
|
9337
|
+
App.Render = AppRender;
|
|
9338
|
+
App.Editor = AppEditor;
|
|
9335
9339
|
|
|
9336
9340
|
// components/App/use-route-params.ts
|
|
9337
9341
|
init_react_import();
|
|
@@ -9364,6 +9368,23 @@ function pageMetadata(data) {
|
|
|
9364
9368
|
return out;
|
|
9365
9369
|
}
|
|
9366
9370
|
|
|
9371
|
+
// plugins/outline/index.tsx
|
|
9372
|
+
init_react_import();
|
|
9373
|
+
|
|
9374
|
+
// css-module:/Users/rami/Documents/apps/react-editor/packages/core/plugins/outline/styles.module.css#css-module
|
|
9375
|
+
init_react_import();
|
|
9376
|
+
var styles_module_default30 = { "OutlinePlugin": "_OutlinePlugin_q92j6_1" };
|
|
9377
|
+
|
|
9378
|
+
// plugins/outline/index.tsx
|
|
9379
|
+
import { jsx as jsx58 } from "react/jsx-runtime";
|
|
9380
|
+
var getClassName35 = get_class_name_factory_default("OutlinePlugin", styles_module_default30);
|
|
9381
|
+
var outlinePlugin = () => ({
|
|
9382
|
+
name: "outline",
|
|
9383
|
+
label: "Outline",
|
|
9384
|
+
render: () => /* @__PURE__ */ jsx58("div", { className: getClassName35(), children: /* @__PURE__ */ jsx58(Outline, {}) }),
|
|
9385
|
+
icon: /* @__PURE__ */ jsx58(Layers, {})
|
|
9386
|
+
});
|
|
9387
|
+
|
|
9367
9388
|
// plugins/legacy-side-bar/index.tsx
|
|
9368
9389
|
init_react_import();
|
|
9369
9390
|
import { jsx as jsx59, jsxs as jsxs26 } from "react/jsx-runtime";
|
|
@@ -9432,7 +9453,6 @@ export {
|
|
|
9432
9453
|
useEditor,
|
|
9433
9454
|
useGetEditor,
|
|
9434
9455
|
blocksPlugin,
|
|
9435
|
-
outlinePlugin,
|
|
9436
9456
|
fieldsPlugin,
|
|
9437
9457
|
usePropsContext,
|
|
9438
9458
|
Editor3 as Editor,
|
|
@@ -9443,5 +9463,6 @@ export {
|
|
|
9443
9463
|
App,
|
|
9444
9464
|
useRouteParams,
|
|
9445
9465
|
pageMetadata,
|
|
9466
|
+
outlinePlugin,
|
|
9446
9467
|
legacySideBarPlugin
|
|
9447
9468
|
};
|