@reacteditor/core 0.0.1-alpha.0 → 0.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -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
 
@@ -10789,6 +10784,8 @@ var DragDropContextClient = ({
10789
10784
  }
10790
10785
  }, []);
10791
10786
  const [plugins] = (0, import_react70.useState)(() => [
10787
+ import_dom.ScrollListener,
10788
+ import_dom.Scroller,
10792
10789
  ...disableAutoScroll ? import_dom.defaultPreset.plugins.filter((plugin) => plugin !== import_dom.AutoScroller) : import_dom.defaultPreset.plugins,
10793
10790
  createNestedDroppablePlugin(
10794
10791
  {
@@ -11113,7 +11110,7 @@ var DrawerItemInner = ({
11113
11110
  "data-testid": dragRef ? `drawer-item:${name}` : "",
11114
11111
  "data-editor-drawer-item": true,
11115
11112
  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 }) }),
11113
+ icon && /* @__PURE__ */ (0, import_jsx_runtime71.jsx)("div", { className: getClassNameItem2("icon"), children: icon }),
11117
11114
  /* @__PURE__ */ (0, import_jsx_runtime71.jsx)("div", { className: getClassNameItem2("name"), children: label != null ? label : name })
11118
11115
  ] }) }) })
11119
11116
  }
@@ -11935,9 +11932,7 @@ var useBubbleIframeEvents = (ref) => {
11935
11932
  (_a = iframe.contentDocument) == null ? void 0 : _a.addEventListener(
11936
11933
  "pointermove",
11937
11934
  handlePointerMove,
11938
- {
11939
- capture: true
11940
- }
11935
+ { capture: true }
11941
11936
  );
11942
11937
  };
11943
11938
  const unregister = () => {
@@ -12963,6 +12958,7 @@ var SidebarSection = ({
12963
12958
  init_react_import();
12964
12959
  init_css_box_model_esm();
12965
12960
  var import_react87 = require("react");
12961
+ init_lucide_react();
12966
12962
  init_store();
12967
12963
 
12968
12964
  // components/BrowserBar/index.tsx
@@ -12975,7 +12971,7 @@ init_IconButton2();
12975
12971
 
12976
12972
  // css-module:/Users/rami/Documents/apps/frontend-react-editor/packages/core/components/BrowserBar/styles.module.css#css-module
12977
12973
  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" };
12974
+ 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
12975
 
12980
12976
  // components/BrowserBar/index.tsx
12981
12977
  var import_jsx_runtime82 = require("react/jsx-runtime");
@@ -13067,11 +13063,12 @@ var BrowserBar = ({
13067
13063
 
13068
13064
  // css-module:/Users/rami/Documents/apps/frontend-react-editor/packages/core/components/Editor/components/Canvas/styles.module.css#css-module
13069
13065
  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" };
13066
+ 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
13067
 
13072
13068
  // components/Editor/components/Canvas/index.tsx
13073
13069
  init_lib();
13074
13070
  init_Loader();
13071
+ init_IconButton2();
13075
13072
  var import_shallow9 = require("zustand/react/shallow");
13076
13073
 
13077
13074
  // lib/frame-context.tsx
@@ -13103,11 +13100,18 @@ var useCanvasFrame = () => {
13103
13100
  init_default_viewports();
13104
13101
  var import_jsx_runtime84 = require("react/jsx-runtime");
13105
13102
  var getClassName35 = get_class_name_factory_default("EditorCanvas", styles_module_default28);
13103
+ var ZOOM_STEP = 0.15;
13104
+ var MIN_ZOOM = 0.25;
13105
+ var MAX_ZOOM = 3;
13106
13106
  var TRANSITION_DURATION = 150;
13107
13107
  var Canvas = () => {
13108
13108
  var _a;
13109
13109
  const { frameRef } = useCanvasFrame();
13110
- const { viewports: viewportOptions = defaultViewports, ui: uiProp } = usePropsContext();
13110
+ const {
13111
+ viewports: viewportOptions = defaultViewports,
13112
+ ui: uiProp,
13113
+ disableZoomControls
13114
+ } = usePropsContext();
13111
13115
  const {
13112
13116
  dispatch,
13113
13117
  overrides,
@@ -13130,6 +13134,10 @@ var Canvas = () => {
13130
13134
  }))
13131
13135
  );
13132
13136
  const viewports = useAppStore((s) => s.state.ui.viewports);
13137
+ const [canvasZoom, setCanvasZoom] = (0, import_react87.useState)(1);
13138
+ const zoomIn = () => setCanvasZoom((z) => Math.min(z + ZOOM_STEP, MAX_ZOOM));
13139
+ const zoomOut = () => setCanvasZoom((z) => Math.max(z - ZOOM_STEP, MIN_ZOOM));
13140
+ const resetZoom = () => setCanvasZoom(1);
13133
13141
  const [showTransition, setShowTransition] = (0, import_react87.useState)(false);
13134
13142
  const isResizingRef = (0, import_react87.useRef)(false);
13135
13143
  const defaultRender = (0, import_react87.useMemo)(() => {
@@ -13231,13 +13239,20 @@ var Canvas = () => {
13231
13239
  }
13232
13240
  },
13233
13241
  children: /* @__PURE__ */ (0, import_jsx_runtime84.jsxs)("div", { className: getClassName35("inner"), ref: frameRef, children: [
13242
+ !disableZoomControls && /* @__PURE__ */ (0, import_jsx_runtime84.jsxs)("div", { className: getClassName35("zoomControls"), children: [
13243
+ /* @__PURE__ */ (0, import_jsx_runtime84.jsx)(IconButton, { type: "button", title: "Zoom out", onClick: zoomOut, children: /* @__PURE__ */ (0, import_jsx_runtime84.jsx)(Minus, { size: 14 }) }),
13244
+ /* @__PURE__ */ (0, import_jsx_runtime84.jsx)(IconButton, { type: "button", title: "Reset zoom", onClick: resetZoom, children: /* @__PURE__ */ (0, import_jsx_runtime84.jsx)(RotateCcw, { size: 14 }) }),
13245
+ /* @__PURE__ */ (0, import_jsx_runtime84.jsx)(IconButton, { type: "button", title: "Zoom in", onClick: zoomIn, children: /* @__PURE__ */ (0, import_jsx_runtime84.jsx)(Plus, { size: 14 }) })
13246
+ ] }),
13234
13247
  /* @__PURE__ */ (0, import_jsx_runtime84.jsxs)(
13235
13248
  "div",
13236
13249
  {
13237
13250
  className: getClassName35("rootColumn"),
13238
13251
  style: {
13239
13252
  width: iframe.enabled ? viewports.current.width : "100%",
13240
- transition: showTransition ? `width ${TRANSITION_DURATION}ms ease-out` : ""
13253
+ transform: disableZoomControls ? void 0 : `scale(${canvasZoom})`,
13254
+ transformOrigin: disableZoomControls ? void 0 : "center center",
13255
+ transition: showTransition ? `width ${TRANSITION_DURATION}ms ease-out, transform ${TRANSITION_DURATION}ms ease-out` : disableZoomControls ? void 0 : "transform 150ms ease-out"
13241
13256
  },
13242
13257
  children: [
13243
13258
  iframe.enabled && /* @__PURE__ */ (0, import_jsx_runtime84.jsx)("div", { className: getClassName35("browserBar"), children: /* @__PURE__ */ (0, import_jsx_runtime84.jsx)(
@@ -13260,12 +13275,6 @@ var Canvas = () => {
13260
13275
  "div",
13261
13276
  {
13262
13277
  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
13278
  suppressHydrationWarning: true,
13270
13279
  id: "editor-canvas-root",
13271
13280
  onTransitionEnd: () => {
@@ -14643,7 +14652,6 @@ lucide-react/dist/esm/icons/component.js:
14643
14652
  lucide-react/dist/esm/icons/copy.js:
14644
14653
  lucide-react/dist/esm/icons/corner-left-up.js:
14645
14654
  lucide-react/dist/esm/icons/globe.js:
14646
- lucide-react/dist/esm/icons/grip-vertical.js:
14647
14655
  lucide-react/dist/esm/icons/heading-1.js:
14648
14656
  lucide-react/dist/esm/icons/heading-2.js:
14649
14657
  lucide-react/dist/esm/icons/heading-3.js:
@@ -14666,6 +14674,7 @@ lucide-react/dist/esm/icons/plus.js:
14666
14674
  lucide-react/dist/esm/icons/quote.js:
14667
14675
  lucide-react/dist/esm/icons/rectangle-ellipsis.js:
14668
14676
  lucide-react/dist/esm/icons/redo-2.js:
14677
+ lucide-react/dist/esm/icons/rotate-ccw.js:
14669
14678
  lucide-react/dist/esm/icons/search.js:
14670
14679
  lucide-react/dist/esm/icons/sliders-horizontal.js:
14671
14680
  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-BQ2PZ2YN.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.2",
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",