@reacteditor/core 0.0.1-alpha.0 → 0.0.3

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.
@@ -587,24 +587,6 @@ var init_globe = __esm({
587
587
  }
588
588
  });
589
589
 
590
- // ../../node_modules/lucide-react/dist/esm/icons/grip-vertical.js
591
- var GripVertical;
592
- var init_grip_vertical = __esm({
593
- "../../node_modules/lucide-react/dist/esm/icons/grip-vertical.js"() {
594
- "use strict";
595
- init_react_import();
596
- init_createLucideIcon();
597
- GripVertical = createLucideIcon("GripVertical", [
598
- ["circle", { cx: "9", cy: "12", r: "1", key: "1vctgf" }],
599
- ["circle", { cx: "9", cy: "5", r: "1", key: "hp0tcf" }],
600
- ["circle", { cx: "9", cy: "19", r: "1", key: "fkjjf6" }],
601
- ["circle", { cx: "15", cy: "12", r: "1", key: "1tmaij" }],
602
- ["circle", { cx: "15", cy: "5", r: "1", key: "19l28e" }],
603
- ["circle", { cx: "15", cy: "19", r: "1", key: "f4zoj3" }]
604
- ]);
605
- }
606
- });
607
-
608
590
  // ../../node_modules/lucide-react/dist/esm/icons/heading-1.js
609
591
  var Heading1;
610
592
  var init_heading_1 = __esm({
@@ -976,6 +958,20 @@ var init_redo_2 = __esm({
976
958
  }
977
959
  });
978
960
 
961
+ // ../../node_modules/lucide-react/dist/esm/icons/rotate-ccw.js
962
+ var RotateCcw;
963
+ var init_rotate_ccw = __esm({
964
+ "../../node_modules/lucide-react/dist/esm/icons/rotate-ccw.js"() {
965
+ "use strict";
966
+ init_react_import();
967
+ init_createLucideIcon();
968
+ RotateCcw = createLucideIcon("RotateCcw", [
969
+ ["path", { d: "M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8", key: "1357e3" }],
970
+ ["path", { d: "M3 3v5h5", key: "1xhq8a" }]
971
+ ]);
972
+ }
973
+ });
974
+
979
975
  // ../../node_modules/lucide-react/dist/esm/icons/search.js
980
976
  var Search;
981
977
  var init_search = __esm({
@@ -1183,7 +1179,6 @@ var init_lucide_react = __esm({
1183
1179
  init_copy();
1184
1180
  init_corner_left_up();
1185
1181
  init_globe();
1186
- init_grip_vertical();
1187
1182
  init_heading_1();
1188
1183
  init_heading_2();
1189
1184
  init_heading_3();
@@ -1204,6 +1199,7 @@ var init_lucide_react = __esm({
1204
1199
  init_plus();
1205
1200
  init_quote();
1206
1201
  init_redo_2();
1202
+ init_rotate_ccw();
1207
1203
  init_search();
1208
1204
  init_sliders_horizontal();
1209
1205
  init_smartphone();
@@ -7869,7 +7865,6 @@ var styles_module_default16 = { "Drawer": "_Drawer_rcm43_1", "Drawer--tile": "_D
7869
7865
 
7870
7866
  // components/Drawer/index.tsx
7871
7867
  init_get_class_name_factory();
7872
- init_lucide_react();
7873
7868
  var import_react71 = require("react");
7874
7869
  init_generate_id();
7875
7870
 
@@ -11113,7 +11108,7 @@ var DrawerItemInner = ({
11113
11108
  "data-testid": dragRef ? `drawer-item:${name}` : "",
11114
11109
  "data-editor-drawer-item": true,
11115
11110
  children: /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(CustomInner, { name, children: /* @__PURE__ */ (0, import_jsx_runtime71.jsx)("div", { className: getClassNameItem2("draggableWrapper"), children: /* @__PURE__ */ (0, import_jsx_runtime71.jsxs)("div", { className: getClassNameItem2("draggable"), children: [
11116
- /* @__PURE__ */ (0, import_jsx_runtime71.jsx)("div", { className: getClassNameItem2("icon"), children: icon != null ? icon : /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(GripVertical, { size: 14 }) }),
11111
+ icon && /* @__PURE__ */ (0, import_jsx_runtime71.jsx)("div", { className: getClassNameItem2("icon"), children: icon }),
11117
11112
  /* @__PURE__ */ (0, import_jsx_runtime71.jsx)("div", { className: getClassNameItem2("name"), children: label != null ? label : name })
11118
11113
  ] }) }) })
11119
11114
  }
@@ -11935,9 +11930,7 @@ var useBubbleIframeEvents = (ref) => {
11935
11930
  (_a = iframe.contentDocument) == null ? void 0 : _a.addEventListener(
11936
11931
  "pointermove",
11937
11932
  handlePointerMove,
11938
- {
11939
- capture: true
11940
- }
11933
+ { capture: true }
11941
11934
  );
11942
11935
  };
11943
11936
  const unregister = () => {
@@ -12963,6 +12956,7 @@ var SidebarSection = ({
12963
12956
  init_react_import();
12964
12957
  init_css_box_model_esm();
12965
12958
  var import_react87 = require("react");
12959
+ init_lucide_react();
12966
12960
  init_store();
12967
12961
 
12968
12962
  // components/BrowserBar/index.tsx
@@ -12975,7 +12969,7 @@ init_IconButton2();
12975
12969
 
12976
12970
  // css-module:/Users/rami/Documents/apps/frontend-react-editor/packages/core/components/BrowserBar/styles.module.css#css-module
12977
12971
  init_react_import();
12978
- var styles_module_default27 = { "BrowserBar": "_BrowserBar_1l19b_1", "BrowserBar-urlTrigger": "_BrowserBar-urlTrigger_1l19b_16", "BrowserBar-urlIcon": "_BrowserBar-urlIcon_1l19b_47", "BrowserBar-urlText": "_BrowserBar-urlText_1l19b_52", "BrowserBar-urlPath": "_BrowserBar-urlPath_1l19b_64", "BrowserBar-urlTitle": "_BrowserBar-urlTitle_1l19b_69", "BrowserBar-actions": "_BrowserBar-actions_1l19b_82", "BrowserBar-deviceIcon": "_BrowserBar-deviceIcon_1l19b_89" };
12972
+ var styles_module_default27 = { "BrowserBar": "_BrowserBar_oz0sq_1", "BrowserBar-urlTrigger": "_BrowserBar-urlTrigger_oz0sq_16", "BrowserBar-urlIcon": "_BrowserBar-urlIcon_oz0sq_47", "BrowserBar-urlText": "_BrowserBar-urlText_oz0sq_52", "BrowserBar-urlPath": "_BrowserBar-urlPath_oz0sq_64", "BrowserBar-urlTitle": "_BrowserBar-urlTitle_oz0sq_69", "BrowserBar-actions": "_BrowserBar-actions_oz0sq_82", "BrowserBar-deviceIcon": "_BrowserBar-deviceIcon_oz0sq_89" };
12979
12973
 
12980
12974
  // components/BrowserBar/index.tsx
12981
12975
  var import_jsx_runtime82 = require("react/jsx-runtime");
@@ -13067,11 +13061,12 @@ var BrowserBar = ({
13067
13061
 
13068
13062
  // css-module:/Users/rami/Documents/apps/frontend-react-editor/packages/core/components/Editor/components/Canvas/styles.module.css#css-module
13069
13063
  init_react_import();
13070
- var styles_module_default28 = { "EditorCanvas": "_EditorCanvas_1485f_1", "EditorCanvas-controls": "_EditorCanvas-controls_1485f_17", "EditorCanvas--fullScreen": "_EditorCanvas--fullScreen_1485f_22", "EditorCanvas-inner": "_EditorCanvas-inner_1485f_33", "EditorCanvas-rootColumn": "_EditorCanvas-rootColumn_1485f_46", "EditorCanvas-root": "_EditorCanvas-root_1485f_46", "EditorCanvas--ready": "_EditorCanvas--ready_1485f_86", "EditorCanvas-loader": "_EditorCanvas-loader_1485f_91", "EditorCanvas--showLoader": "_EditorCanvas--showLoader_1485f_101", "EditorCanvas-browserBar": "_EditorCanvas-browserBar_1485f_111" };
13064
+ var styles_module_default28 = { "EditorCanvas": "_EditorCanvas_19sb3_1", "EditorCanvas-controls": "_EditorCanvas-controls_19sb3_17", "EditorCanvas--fullScreen": "_EditorCanvas--fullScreen_19sb3_22", "EditorCanvas-inner": "_EditorCanvas-inner_19sb3_33", "EditorCanvas-rootColumn": "_EditorCanvas-rootColumn_19sb3_46", "EditorCanvas-root": "_EditorCanvas-root_19sb3_46", "EditorCanvas--ready": "_EditorCanvas--ready_19sb3_83", "EditorCanvas-loader": "_EditorCanvas-loader_19sb3_88", "EditorCanvas--showLoader": "_EditorCanvas--showLoader_19sb3_98", "EditorCanvas-browserBar": "_EditorCanvas-browserBar_19sb3_108", "EditorCanvas-zoomControls": "_EditorCanvas-zoomControls_19sb3_113" };
13071
13065
 
13072
13066
  // components/Editor/components/Canvas/index.tsx
13073
13067
  init_lib();
13074
13068
  init_Loader();
13069
+ init_IconButton2();
13075
13070
  var import_shallow9 = require("zustand/react/shallow");
13076
13071
 
13077
13072
  // lib/frame-context.tsx
@@ -13103,11 +13098,18 @@ var useCanvasFrame = () => {
13103
13098
  init_default_viewports();
13104
13099
  var import_jsx_runtime84 = require("react/jsx-runtime");
13105
13100
  var getClassName35 = get_class_name_factory_default("EditorCanvas", styles_module_default28);
13101
+ var ZOOM_STEP = 0.15;
13102
+ var MIN_ZOOM = 0.25;
13103
+ var MAX_ZOOM = 3;
13106
13104
  var TRANSITION_DURATION = 150;
13107
13105
  var Canvas = () => {
13108
13106
  var _a;
13109
13107
  const { frameRef } = useCanvasFrame();
13110
- const { viewports: viewportOptions = defaultViewports, ui: uiProp } = usePropsContext();
13108
+ const {
13109
+ viewports: viewportOptions = defaultViewports,
13110
+ ui: uiProp,
13111
+ disableZoomControls
13112
+ } = usePropsContext();
13111
13113
  const {
13112
13114
  dispatch,
13113
13115
  overrides,
@@ -13130,6 +13132,10 @@ var Canvas = () => {
13130
13132
  }))
13131
13133
  );
13132
13134
  const viewports = useAppStore((s) => s.state.ui.viewports);
13135
+ const [canvasZoom, setCanvasZoom] = (0, import_react87.useState)(1);
13136
+ const zoomIn = () => setCanvasZoom((z) => Math.min(z + ZOOM_STEP, MAX_ZOOM));
13137
+ const zoomOut = () => setCanvasZoom((z) => Math.max(z - ZOOM_STEP, MIN_ZOOM));
13138
+ const resetZoom = () => setCanvasZoom(1);
13133
13139
  const [showTransition, setShowTransition] = (0, import_react87.useState)(false);
13134
13140
  const isResizingRef = (0, import_react87.useRef)(false);
13135
13141
  const defaultRender = (0, import_react87.useMemo)(() => {
@@ -13231,13 +13237,20 @@ var Canvas = () => {
13231
13237
  }
13232
13238
  },
13233
13239
  children: /* @__PURE__ */ (0, import_jsx_runtime84.jsxs)("div", { className: getClassName35("inner"), ref: frameRef, children: [
13240
+ !disableZoomControls && /* @__PURE__ */ (0, import_jsx_runtime84.jsxs)("div", { className: getClassName35("zoomControls"), children: [
13241
+ /* @__PURE__ */ (0, import_jsx_runtime84.jsx)(IconButton, { type: "button", title: "Zoom out", onClick: zoomOut, children: /* @__PURE__ */ (0, import_jsx_runtime84.jsx)(Minus, { size: 14 }) }),
13242
+ /* @__PURE__ */ (0, import_jsx_runtime84.jsx)(IconButton, { type: "button", title: "Reset zoom", onClick: resetZoom, children: /* @__PURE__ */ (0, import_jsx_runtime84.jsx)(RotateCcw, { size: 14 }) }),
13243
+ /* @__PURE__ */ (0, import_jsx_runtime84.jsx)(IconButton, { type: "button", title: "Zoom in", onClick: zoomIn, children: /* @__PURE__ */ (0, import_jsx_runtime84.jsx)(Plus, { size: 14 }) })
13244
+ ] }),
13234
13245
  /* @__PURE__ */ (0, import_jsx_runtime84.jsxs)(
13235
13246
  "div",
13236
13247
  {
13237
13248
  className: getClassName35("rootColumn"),
13238
13249
  style: {
13239
13250
  width: iframe.enabled ? viewports.current.width : "100%",
13240
- transition: showTransition ? `width ${TRANSITION_DURATION}ms ease-out` : ""
13251
+ transform: disableZoomControls ? void 0 : `scale(${canvasZoom})`,
13252
+ transformOrigin: disableZoomControls ? void 0 : "center center",
13253
+ transition: showTransition ? `width ${TRANSITION_DURATION}ms ease-out, transform ${TRANSITION_DURATION}ms ease-out` : disableZoomControls ? void 0 : "transform 150ms ease-out"
13241
13254
  },
13242
13255
  children: [
13243
13256
  iframe.enabled && /* @__PURE__ */ (0, import_jsx_runtime84.jsx)("div", { className: getClassName35("browserBar"), children: /* @__PURE__ */ (0, import_jsx_runtime84.jsx)(
@@ -13260,12 +13273,6 @@ var Canvas = () => {
13260
13273
  "div",
13261
13274
  {
13262
13275
  className: getClassName35("root"),
13263
- style: {
13264
- height: zoomConfig.rootHeight,
13265
- transform: iframe.enabled ? `scale(${zoomConfig.zoom})` : void 0,
13266
- transition: showTransition ? `height ${TRANSITION_DURATION}ms ease-out, transform ${TRANSITION_DURATION}ms ease-out` : "",
13267
- overflow: iframe.enabled ? void 0 : "auto"
13268
- },
13269
13276
  suppressHydrationWarning: true,
13270
13277
  id: "editor-canvas-root",
13271
13278
  onTransitionEnd: () => {
@@ -14643,7 +14650,6 @@ lucide-react/dist/esm/icons/component.js:
14643
14650
  lucide-react/dist/esm/icons/copy.js:
14644
14651
  lucide-react/dist/esm/icons/corner-left-up.js:
14645
14652
  lucide-react/dist/esm/icons/globe.js:
14646
- lucide-react/dist/esm/icons/grip-vertical.js:
14647
14653
  lucide-react/dist/esm/icons/heading-1.js:
14648
14654
  lucide-react/dist/esm/icons/heading-2.js:
14649
14655
  lucide-react/dist/esm/icons/heading-3.js:
@@ -14666,6 +14672,7 @@ lucide-react/dist/esm/icons/plus.js:
14666
14672
  lucide-react/dist/esm/icons/quote.js:
14667
14673
  lucide-react/dist/esm/icons/rectangle-ellipsis.js:
14668
14674
  lucide-react/dist/esm/icons/redo-2.js:
14675
+ lucide-react/dist/esm/icons/rotate-ccw.js:
14669
14676
  lucide-react/dist/esm/icons/search.js:
14670
14677
  lucide-react/dist/esm/icons/sliders-horizontal.js:
14671
14678
  lucide-react/dist/esm/icons/smartphone.js:
@@ -19,8 +19,8 @@ import {
19
19
  setDeep,
20
20
  useEditor,
21
21
  useGetEditor
22
- } from "./chunk-QNHSXCWU.mjs";
23
- import "./chunk-F7S5S6I2.mjs";
22
+ } from "./chunk-QX2COKIL.mjs";
23
+ import "./chunk-TCVU3WEN.mjs";
24
24
  import {
25
25
  migrate,
26
26
  resolveAllData,
@@ -35,11 +35,11 @@ import {
35
35
  Label,
36
36
  RichTextMenu,
37
37
  Separator
38
- } from "./chunk-V2OPYD42.mjs";
39
- import "./chunk-6B2Q5R3C.mjs";
40
- import "./chunk-DXGQXXQG.mjs";
41
- import "./chunk-GUMYXUO3.mjs";
42
- import "./chunk-SURZYH7D.mjs";
38
+ } from "./chunk-6Q6A3BQH.mjs";
39
+ import "./chunk-HMTHZBH6.mjs";
40
+ import "./chunk-ZHNRSSMW.mjs";
41
+ import "./chunk-M2RKJTNY.mjs";
42
+ import "./chunk-2LVYDXZS.mjs";
43
43
  import "./chunk-VUEM62JF.mjs";
44
44
  import "./chunk-VOLQMQPK.mjs";
45
45
  import "./chunk-Y2EFNT5P.mjs";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@reacteditor/core",
3
- "version": "0.0.1-alpha.0",
3
+ "version": "0.0.3",
4
4
  "description": "The open-source visual editor for React",
5
5
  "author": "Rami Bitar <rami@frontend.co>",
6
6
  "repository": "frontend-inc/react-editor",