@netless/fastboard-react 0.2.5 → 0.2.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +186 -186
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +114 -114
- package/dist/index.mjs.map +1 -1
- package/package.json +2 -2
- package/src/components/Toolbar/components/ShapesButton.tsx +2 -3
- package/src/components/Toolbar/hooks.ts +13 -1
- package/src/components/ZoomControl/hooks.ts +2 -4
package/dist/index.js
CHANGED
|
@@ -432,12 +432,7 @@ function RedoUndo({ theme, undoIcon, undoIconDisable, redoIcon, redoIconDisable
|
|
|
432
432
|
// src/components/ZoomControl/hooks.ts
|
|
433
433
|
var import_react10 = require("react");
|
|
434
434
|
var ScalePoints = [
|
|
435
|
-
0.
|
|
436
|
-
0.13421772800000012,
|
|
437
|
-
0.16777216000000014,
|
|
438
|
-
0.20971520000000016,
|
|
439
|
-
0.26214400000000015,
|
|
440
|
-
0.3276800000000002,
|
|
435
|
+
0.3,
|
|
441
436
|
0.4096000000000002,
|
|
442
437
|
0.5120000000000001,
|
|
443
438
|
0.6400000000000001,
|
|
@@ -447,12 +442,7 @@ var ScalePoints = [
|
|
|
447
442
|
1.5876000000000001,
|
|
448
443
|
2.000376,
|
|
449
444
|
2.5204737600000002,
|
|
450
|
-
3
|
|
451
|
-
4.001504141376,
|
|
452
|
-
5.041895218133761,
|
|
453
|
-
6.352787974848539,
|
|
454
|
-
8.00451284830916,
|
|
455
|
-
10
|
|
445
|
+
3
|
|
456
446
|
];
|
|
457
447
|
function nextScale(scale, delta) {
|
|
458
448
|
const { length } = ScalePoints;
|
|
@@ -795,97 +785,48 @@ function PageControl({
|
|
|
795
785
|
}
|
|
796
786
|
|
|
797
787
|
// src/components/Toolbar/hooks.ts
|
|
798
|
-
var
|
|
799
|
-
function useRoomState() {
|
|
800
|
-
return useFastboardValue(useFastboardApp().memberState);
|
|
801
|
-
}
|
|
802
|
-
function useToolbar() {
|
|
803
|
-
const app = useFastboardApp();
|
|
804
|
-
const writable = useWritable();
|
|
805
|
-
const memberState = useRoomState();
|
|
806
|
-
const cleanCurrentScene = (0, import_react22.useCallback)(() => {
|
|
807
|
-
app.cleanCurrentScene();
|
|
808
|
-
}, [app]);
|
|
809
|
-
const setAppliance = (0, import_react22.useCallback)((appliance, shape) => {
|
|
810
|
-
app.setAppliance(appliance, shape);
|
|
811
|
-
}, [app]);
|
|
812
|
-
const setStrokeWidth = (0, import_react22.useCallback)((strokeWidth) => {
|
|
813
|
-
app.setStrokeWidth(strokeWidth);
|
|
814
|
-
}, [app]);
|
|
815
|
-
const setStrokeColor = (0, import_react22.useCallback)((strokeColor) => {
|
|
816
|
-
app.setStrokeColor(strokeColor);
|
|
817
|
-
}, [app]);
|
|
818
|
-
return {
|
|
819
|
-
writable,
|
|
820
|
-
memberState,
|
|
821
|
-
cleanCurrentScene,
|
|
822
|
-
setAppliance,
|
|
823
|
-
setStrokeWidth,
|
|
824
|
-
setStrokeColor
|
|
825
|
-
};
|
|
826
|
-
}
|
|
827
|
-
var EmptyToolbarHook = {
|
|
828
|
-
writable: false,
|
|
829
|
-
memberState: void 0,
|
|
830
|
-
cleanCurrentScene: noop,
|
|
831
|
-
setAppliance: noop,
|
|
832
|
-
setStrokeWidth: noop,
|
|
833
|
-
setStrokeColor: noop
|
|
834
|
-
};
|
|
835
|
-
|
|
836
|
-
// src/components/Toolbar/Toolbar.tsx
|
|
837
|
-
var import_clsx9 = __toESM(require("clsx"));
|
|
838
|
-
var import_framer_motion = require("framer-motion");
|
|
839
|
-
var import_react59 = __toESM(require("react"));
|
|
840
|
-
|
|
841
|
-
// src/components/Toolbar/components/assets/expanded.png
|
|
842
|
-
var expanded_default = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACIAAAB8CAYAAAAMw2JFAAAAAXNSR0IArs4c6QAAA5xJREFUeF7tnL9v00AUx5/TlRkJMSAxZ+jYCf4GtopK6dB2qBBsjshaJErboWVJpYaNLGDaIR2YYAFXqlxhlvzAJkhGJGlyDhVNSpWgyOiqBJnQ+urznW2Jy1JVVnKffv3x8yV9LxLE5CEBwFUA6ALAzyiZJFVVX21ubj7N5/MmACAAGEQBJDWbzQZCqGcYRm52dlbpdDpNAPgRNozkOE691+tBo9FItNtto1AorC0tLX0EAAzUDwvoDGS02NHREU4IarXatizLOV3XvwHAdwBweAP9BYIXGwwGcHh4mLBtG2matrGwsPB2mA5Xmf8BGf3lJycn+HRNtFqtd2HIfCEIBnIcBxBCEkKobxjGFk+ZPUFG6YQh86VAPGSuAUCbhcy+QMZktjVNW2cls28QD5k/A0CLtjJTg4zLbJpmLpVKvaStzIFAWMrMBISFzExBgsjMHIRWZm4gfmXmCnKezIqiLK+srOjDG+mfu3ooIG6Z6/X6r/39/Udzc3OvAQBX5jOYUEHwgqenp2BZlrS7u/sgnU6/Ge53wgfBMN1uV6pWq/b09PTdSqVSwtU49ERGp8myrISqqsszMzPPcSqRgRwfH0vlcvnD1NTUIgB8jQyk3+9DuVy2Jycn7wBANTIQvPsrlUqJZDJ5GwA+RQaCXSkWixPJZPKWABldOSKR8XeLIhGRCOkTBOGIcEQ4QkpAOEJKSNQR4YhwhJSAcISUkKgjTBy5fuPmNfxCNetLA/98srp25WFaxv+UpH5QnZpxEPz7/XuLnSAwzEBwFEFgmIIEgWEOQgvDBYQGhhuIXxiuIH5g/g8QP5czt0T8QFB/mHdeZXXXdr8QXEBoIJiD0EIwBQkCwQwksm0A9abD44lUl68A4ZEAkz0rDzDhiDg1JK+EI8IR4QgpAeEIKSFRR4QjwhFSAsIRUkKijsTSkdi0f8WmIS42LYKxaJqMRRtpLBpr8URTpK3GrrEYU1GUx6E3X7sHhUzTfJZKpV5cNFvBrY10NDqFEFKz2ex6Pp/3nDZhDuIaJrMPDg425ufncac3HrXzHCZjCuIar9vJZDI5TdPweN2lJpKYgLhlLBQKqzQDh4FA/MhI2ptQg/iVkTkIrYxMQdwyyrK8pet6uONxLGQMlAhLGalBXDK+z2azG6TKSFqIdNxrzNZXZSQtRDp+0eDxDmsZLwUSxvQqEWQ4nN4n3aZJLxT0uLS3t7cdhowk0Ph8gQGJNKzjvwGKWUjXcvHclAAAAABJRU5ErkJggg==";
|
|
843
|
-
|
|
844
|
-
// src/components/Toolbar/Content.tsx
|
|
845
|
-
var import_clsx8 = __toESM(require("clsx"));
|
|
846
|
-
var import_react58 = __toESM(require("react"));
|
|
788
|
+
var import_react42 = require("react");
|
|
847
789
|
|
|
848
|
-
// src/components/Toolbar/
|
|
849
|
-
var import_react45 = __toESM(require("react"));
|
|
790
|
+
// src/components/Toolbar/const.ts
|
|
850
791
|
var import_white_web_sdk = require("white-web-sdk");
|
|
851
792
|
|
|
852
793
|
// src/components/Toolbar/icons/index.ts
|
|
853
|
-
var
|
|
794
|
+
var import_react41 = require("react");
|
|
854
795
|
|
|
855
796
|
// src/components/Toolbar/icons/Apps.tsx
|
|
856
|
-
var
|
|
797
|
+
var import_react22 = __toESM(require("react"));
|
|
857
798
|
var Apps = (props) => {
|
|
858
799
|
const stroke = getStroke(props);
|
|
859
|
-
return /* @__PURE__ */
|
|
800
|
+
return /* @__PURE__ */ import_react22.default.createElement("svg", {
|
|
860
801
|
viewBox: "0 0 24 24"
|
|
861
|
-
}, /* @__PURE__ */
|
|
802
|
+
}, /* @__PURE__ */ import_react22.default.createElement("g", {
|
|
862
803
|
fill: stroke
|
|
863
|
-
}, /* @__PURE__ */
|
|
804
|
+
}, /* @__PURE__ */ import_react22.default.createElement("path", {
|
|
864
805
|
d: "M17.667 4.5h-3.334c-1.012 0-1.833.82-1.833 1.833V11.5h5.167c1.012 0 1.833-.82 1.833-1.833V6.333c0-1.012-.82-1.833-1.833-1.833Zm-3.334 1h3.334c.46 0 .833.373.833.833v3.334l-.006.104a.833.833 0 0 1-.827.729H13.5V6.333c0-.46.373-.833.833-.833Z"
|
|
865
|
-
}), /* @__PURE__ */
|
|
806
|
+
}), /* @__PURE__ */ import_react22.default.createElement("path", {
|
|
866
807
|
d: "M6.333 19.5A1.833 1.833 0 0 1 4.5 17.667v-3.334c0-.525.221-1 .576-1.334a1.822 1.822 0 0 1-.576-1.332V8.333c0-1.012.82-1.833 1.833-1.833H10A1.5 1.5 0 0 1 11.5 8v4.5h4.167c.962 0 1.75.74 1.827 1.683l.006.15v3.334c0 1.012-.82 1.833-1.833 1.833Zm4.167-6H6.333a.833.833 0 0 0-.827.729l-.006.104v3.334c0 .46.373.833.833.833H10.5v-5Zm5.167 0H11.5v5h4.167c.46 0 .833-.373.833-.833v-3.334a.833.833 0 0 0-.833-.833ZM10 7.5H6.333a.833.833 0 0 0-.833.833v3.334c0 .46.373.833.833.833H10.5V8a.5.5 0 0 0-.41-.492L10 7.5Z"
|
|
867
808
|
})));
|
|
868
809
|
};
|
|
869
810
|
|
|
870
811
|
// src/components/Toolbar/icons/Arrow.tsx
|
|
871
|
-
var
|
|
812
|
+
var import_react23 = __toESM(require("react"));
|
|
872
813
|
var Arrow = (props) => {
|
|
873
814
|
const stroke = getStroke(props);
|
|
874
|
-
return /* @__PURE__ */
|
|
815
|
+
return /* @__PURE__ */ import_react23.default.createElement("svg", {
|
|
875
816
|
viewBox: "0 0 24 24"
|
|
876
|
-
}, /* @__PURE__ */
|
|
817
|
+
}, /* @__PURE__ */ import_react23.default.createElement("path", {
|
|
877
818
|
fill: stroke,
|
|
878
819
|
d: "M19 5v6l-2.647-2.646L5.99 18.718l-.708-.708L15.645 7.646 13 5h6Z"
|
|
879
820
|
}));
|
|
880
821
|
};
|
|
881
822
|
|
|
882
823
|
// src/components/Toolbar/icons/Circle.tsx
|
|
883
|
-
var
|
|
824
|
+
var import_react24 = __toESM(require("react"));
|
|
884
825
|
var Circle = (props) => {
|
|
885
826
|
const stroke = getStroke(props);
|
|
886
|
-
return /* @__PURE__ */
|
|
827
|
+
return /* @__PURE__ */ import_react24.default.createElement("svg", {
|
|
887
828
|
viewBox: "0 0 24 24"
|
|
888
|
-
}, /* @__PURE__ */
|
|
829
|
+
}, /* @__PURE__ */ import_react24.default.createElement("rect", {
|
|
889
830
|
width: "15",
|
|
890
831
|
height: "15",
|
|
891
832
|
x: "4.5",
|
|
@@ -897,40 +838,40 @@ var Circle = (props) => {
|
|
|
897
838
|
};
|
|
898
839
|
|
|
899
840
|
// src/components/Toolbar/icons/Clean.tsx
|
|
900
|
-
var
|
|
841
|
+
var import_react25 = __toESM(require("react"));
|
|
901
842
|
var Clean = (props) => {
|
|
902
843
|
const stroke = getStroke(props);
|
|
903
|
-
return /* @__PURE__ */
|
|
844
|
+
return /* @__PURE__ */ import_react25.default.createElement("svg", {
|
|
904
845
|
viewBox: "0 0 24 24"
|
|
905
|
-
}, /* @__PURE__ */
|
|
846
|
+
}, /* @__PURE__ */ import_react25.default.createElement("path", {
|
|
906
847
|
fill: stroke,
|
|
907
848
|
d: "M9.754 11.99c0 1.856-.711 3.62-1.96 4.951l-.151.155h1.403l.855-.853h.707l.853.853h2.635l.094-.064a6.237 6.237 0 0 0 2.559-4.781l.005-.26h1a7.237 7.237 0 0 1-2.994 5.862l-.229.16-.277.083h-3l-.353-.146-.647-.647-.646.647-.354.146h-3l-.286-.91.214-.148a6.237 6.237 0 0 0 2.567-4.787l.005-.26h1Zm4.772-6.502v2l.35.039a2.98 2.98 0 0 1 2.644 2.78l.006.181h-8a2.98 2.98 0 0 1 2.65-2.961l.35-.039v-2h2Z"
|
|
908
849
|
}));
|
|
909
850
|
};
|
|
910
851
|
|
|
911
852
|
// src/components/Toolbar/icons/Clicker.tsx
|
|
912
|
-
var
|
|
853
|
+
var import_react26 = __toESM(require("react"));
|
|
913
854
|
var Clicker = (props) => {
|
|
914
855
|
const stroke = getStroke(props);
|
|
915
|
-
return /* @__PURE__ */
|
|
856
|
+
return /* @__PURE__ */ import_react26.default.createElement("svg", {
|
|
916
857
|
viewBox: "0 0 24 24"
|
|
917
|
-
}, /* @__PURE__ */
|
|
858
|
+
}, /* @__PURE__ */ import_react26.default.createElement("g", {
|
|
918
859
|
fill: "none"
|
|
919
|
-
}, /* @__PURE__ */
|
|
860
|
+
}, /* @__PURE__ */ import_react26.default.createElement("path", {
|
|
920
861
|
d: "M0 0h24v24H0z"
|
|
921
|
-
}), /* @__PURE__ */
|
|
862
|
+
}), /* @__PURE__ */ import_react26.default.createElement("path", {
|
|
922
863
|
fill: stroke,
|
|
923
864
|
d: "m7 5.072 10.33 7.892-4.879.549 3.232 5.598-.866.5-3.233-5.597-2.914 3.95L7 5.072Z"
|
|
924
865
|
})));
|
|
925
866
|
};
|
|
926
867
|
|
|
927
868
|
// src/components/Toolbar/icons/Collapse.tsx
|
|
928
|
-
var
|
|
869
|
+
var import_react27 = __toESM(require("react"));
|
|
929
870
|
var Collapse = (props) => {
|
|
930
871
|
const stroke = getStroke(props);
|
|
931
|
-
return /* @__PURE__ */
|
|
872
|
+
return /* @__PURE__ */ import_react27.default.createElement("svg", {
|
|
932
873
|
viewBox: "0 0 24 24"
|
|
933
|
-
}, /* @__PURE__ */
|
|
874
|
+
}, /* @__PURE__ */ import_react27.default.createElement("path", {
|
|
934
875
|
fill: "none",
|
|
935
876
|
stroke,
|
|
936
877
|
d: "m8 10-2 2 2 2m10-8H6m12 12H6m12-4h-8m8-4h-8"
|
|
@@ -938,12 +879,12 @@ var Collapse = (props) => {
|
|
|
938
879
|
};
|
|
939
880
|
|
|
940
881
|
// src/components/Toolbar/icons/Diamond.tsx
|
|
941
|
-
var
|
|
882
|
+
var import_react28 = __toESM(require("react"));
|
|
942
883
|
var Diamond = (props) => {
|
|
943
884
|
const stroke = getStroke(props);
|
|
944
|
-
return /* @__PURE__ */
|
|
885
|
+
return /* @__PURE__ */ import_react28.default.createElement("svg", {
|
|
945
886
|
viewBox: "0 0 24 24"
|
|
946
|
-
}, /* @__PURE__ */
|
|
887
|
+
}, /* @__PURE__ */ import_react28.default.createElement("path", {
|
|
947
888
|
fill: "none",
|
|
948
889
|
stroke,
|
|
949
890
|
d: "M4.222 12 12 4.222 19.778 12 12 19.778z"
|
|
@@ -951,12 +892,12 @@ var Diamond = (props) => {
|
|
|
951
892
|
};
|
|
952
893
|
|
|
953
894
|
// src/components/Toolbar/icons/Down.tsx
|
|
954
|
-
var
|
|
895
|
+
var import_react29 = __toESM(require("react"));
|
|
955
896
|
var Down = (props) => {
|
|
956
897
|
const stroke = getStroke(props);
|
|
957
|
-
return /* @__PURE__ */
|
|
898
|
+
return /* @__PURE__ */ import_react29.default.createElement("svg", {
|
|
958
899
|
viewBox: "0 0 24 24"
|
|
959
|
-
}, /* @__PURE__ */
|
|
900
|
+
}, /* @__PURE__ */ import_react29.default.createElement("path", {
|
|
960
901
|
fill: "none",
|
|
961
902
|
stroke,
|
|
962
903
|
d: "m16 13-2 2-2 2-2-2-2-2m8-6-2 2-2 2-2-2-2-2"
|
|
@@ -964,24 +905,24 @@ var Down = (props) => {
|
|
|
964
905
|
};
|
|
965
906
|
|
|
966
907
|
// src/components/Toolbar/icons/Eraser.tsx
|
|
967
|
-
var
|
|
908
|
+
var import_react30 = __toESM(require("react"));
|
|
968
909
|
var Eraser = (props) => {
|
|
969
910
|
const stroke = getStroke(props);
|
|
970
|
-
return /* @__PURE__ */
|
|
911
|
+
return /* @__PURE__ */ import_react30.default.createElement("svg", {
|
|
971
912
|
viewBox: "0 0 24 24"
|
|
972
|
-
}, /* @__PURE__ */
|
|
913
|
+
}, /* @__PURE__ */ import_react30.default.createElement("path", {
|
|
973
914
|
fill: stroke,
|
|
974
915
|
d: "m14.333 5.183.165.007c.494.037.978.245 1.356.623l2.333 2.333a2.15 2.15 0 0 1 0 3.04l-5.833 5.834a3.8 3.8 0 0 1-5.374 0l-1.167-1.166a2.15 2.15 0 0 1 0-3.04l7-7c.42-.42.97-.63 1.52-.63ZM11.52 8.52l-4.999 5a1.15 1.15 0 0 0 0 1.626l1.167 1.167a2.8 2.8 0 0 0 3.96 0l3.832-3.833-3.96-3.96Z"
|
|
975
916
|
}));
|
|
976
917
|
};
|
|
977
918
|
|
|
978
919
|
// src/components/Toolbar/icons/Expand.tsx
|
|
979
|
-
var
|
|
920
|
+
var import_react31 = __toESM(require("react"));
|
|
980
921
|
var Expand = (props) => {
|
|
981
922
|
const stroke = getStroke(props);
|
|
982
|
-
return /* @__PURE__ */
|
|
923
|
+
return /* @__PURE__ */ import_react31.default.createElement("svg", {
|
|
983
924
|
viewBox: "0 0 24 24"
|
|
984
|
-
}, /* @__PURE__ */
|
|
925
|
+
}, /* @__PURE__ */ import_react31.default.createElement("path", {
|
|
985
926
|
fill: "none",
|
|
986
927
|
stroke,
|
|
987
928
|
d: "m16 10 2 2-2 2M6 6h12M6 18h12M6 14h8m-8-4h8"
|
|
@@ -989,36 +930,36 @@ var Expand = (props) => {
|
|
|
989
930
|
};
|
|
990
931
|
|
|
991
932
|
// src/components/Toolbar/icons/Line.tsx
|
|
992
|
-
var
|
|
933
|
+
var import_react32 = __toESM(require("react"));
|
|
993
934
|
var Line = (props) => {
|
|
994
935
|
const stroke = getStroke(props);
|
|
995
|
-
return /* @__PURE__ */
|
|
936
|
+
return /* @__PURE__ */ import_react32.default.createElement("svg", {
|
|
996
937
|
viewBox: "0 0 24 24"
|
|
997
|
-
}, /* @__PURE__ */
|
|
938
|
+
}, /* @__PURE__ */ import_react32.default.createElement("path", {
|
|
998
939
|
fill: stroke,
|
|
999
940
|
d: "m18.01 5.282.708.708L5.99 18.718l-.708-.708z"
|
|
1000
941
|
}));
|
|
1001
942
|
};
|
|
1002
943
|
|
|
1003
944
|
// src/components/Toolbar/icons/Pencil.tsx
|
|
1004
|
-
var
|
|
945
|
+
var import_react33 = __toESM(require("react"));
|
|
1005
946
|
var Pencil = (props) => {
|
|
1006
947
|
const stroke = getStroke(props);
|
|
1007
|
-
return /* @__PURE__ */
|
|
948
|
+
return /* @__PURE__ */ import_react33.default.createElement("svg", {
|
|
1008
949
|
viewBox: "0 0 24 24"
|
|
1009
|
-
}, /* @__PURE__ */
|
|
950
|
+
}, /* @__PURE__ */ import_react33.default.createElement("path", {
|
|
1010
951
|
fill: stroke,
|
|
1011
952
|
d: "m17.497 4.84.116.105 1.442 1.442a1.52 1.52 0 0 1 .104 2.034l-.104.116L8.733 18.858l-4.347.756.756-4.347L15.463 4.945a1.52 1.52 0 0 1 2.034-.104ZM5.967 16.349l-.353 2.037 2.037-.354-1.683-1.683Zm8.407-8.901-7.946 7.946 2.178 2.178 7.946-7.946-2.178-2.178Zm-.728 2.2.708.707-5 5-.708-.708 5-5Zm2.596-4.055-.072.06-1.09 1.088 2.179 2.178 1.089-1.088a.52.52 0 0 0 .105-.584l-.045-.08-.06-.072-1.442-1.442a.52.52 0 0 0-.664-.06Z"
|
|
1012
953
|
}));
|
|
1013
954
|
};
|
|
1014
955
|
|
|
1015
956
|
// src/components/Toolbar/icons/Rectangle.tsx
|
|
1016
|
-
var
|
|
957
|
+
var import_react34 = __toESM(require("react"));
|
|
1017
958
|
var Rectangle = (props) => {
|
|
1018
959
|
const stroke = getStroke(props);
|
|
1019
|
-
return /* @__PURE__ */
|
|
960
|
+
return /* @__PURE__ */ import_react34.default.createElement("svg", {
|
|
1020
961
|
viewBox: "0 0 24 24"
|
|
1021
|
-
}, /* @__PURE__ */
|
|
962
|
+
}, /* @__PURE__ */ import_react34.default.createElement("path", {
|
|
1022
963
|
fill: "none",
|
|
1023
964
|
stroke,
|
|
1024
965
|
d: "M5.5 5.5h13v13h-13z"
|
|
@@ -1026,24 +967,24 @@ var Rectangle = (props) => {
|
|
|
1026
967
|
};
|
|
1027
968
|
|
|
1028
969
|
// src/components/Toolbar/icons/Selector.tsx
|
|
1029
|
-
var
|
|
970
|
+
var import_react35 = __toESM(require("react"));
|
|
1030
971
|
var Selector = (props) => {
|
|
1031
972
|
const stroke = getStroke(props);
|
|
1032
|
-
return /* @__PURE__ */
|
|
973
|
+
return /* @__PURE__ */ import_react35.default.createElement("svg", {
|
|
1033
974
|
viewBox: "0 0 24 24"
|
|
1034
|
-
}, /* @__PURE__ */
|
|
975
|
+
}, /* @__PURE__ */ import_react35.default.createElement("path", {
|
|
1035
976
|
fill: stroke,
|
|
1036
977
|
d: "m12 12 8 2.667-3.556 1.777L14.667 20 12 12Zm3-8v7.5h-1V5H5v9h6.5v1H4V4h11Z"
|
|
1037
978
|
}));
|
|
1038
979
|
};
|
|
1039
980
|
|
|
1040
981
|
// src/components/Toolbar/icons/SpeechBalloon.tsx
|
|
1041
|
-
var
|
|
982
|
+
var import_react36 = __toESM(require("react"));
|
|
1042
983
|
var SpeechBalloon = (props) => {
|
|
1043
984
|
const stroke = getStroke(props);
|
|
1044
|
-
return /* @__PURE__ */
|
|
985
|
+
return /* @__PURE__ */ import_react36.default.createElement("svg", {
|
|
1045
986
|
viewBox: "0 0 24 24"
|
|
1046
|
-
}, /* @__PURE__ */
|
|
987
|
+
}, /* @__PURE__ */ import_react36.default.createElement("path", {
|
|
1047
988
|
fill: "none",
|
|
1048
989
|
stroke,
|
|
1049
990
|
d: "M17 4.5c.414 0 .79.168 1.06.44.272.27.44.646.44 1.06v9c0 .414-.168.79-.44 1.06a1.49 1.49 0 0 1-1.06.44h-4.207l-2.715 2.715-1.81-2.715H7a1.49 1.49 0 0 1-1.06-.44A1.495 1.495 0 0 1 5.5 15V6c0-.414.168-.79.44-1.06A1.49 1.49 0 0 1 7 4.5Z"
|
|
@@ -1051,12 +992,12 @@ var SpeechBalloon = (props) => {
|
|
|
1051
992
|
};
|
|
1052
993
|
|
|
1053
994
|
// src/components/Toolbar/icons/Star.tsx
|
|
1054
|
-
var
|
|
995
|
+
var import_react37 = __toESM(require("react"));
|
|
1055
996
|
var Star = (props) => {
|
|
1056
997
|
const stroke = getStroke(props);
|
|
1057
|
-
return /* @__PURE__ */
|
|
998
|
+
return /* @__PURE__ */ import_react37.default.createElement("svg", {
|
|
1058
999
|
viewBox: "0 0 24 24"
|
|
1059
|
-
}, /* @__PURE__ */
|
|
1000
|
+
}, /* @__PURE__ */ import_react37.default.createElement("path", {
|
|
1060
1001
|
fill: "none",
|
|
1061
1002
|
stroke,
|
|
1062
1003
|
d: "m12 3.523 1.993 5.734 6.07.123-4.838 3.668 1.758 5.81L12 15.391l-4.983 3.467 1.758-5.81L3.938 9.38l6.069-.123L12 3.523Z"
|
|
@@ -1064,24 +1005,24 @@ var Star = (props) => {
|
|
|
1064
1005
|
};
|
|
1065
1006
|
|
|
1066
1007
|
// src/components/Toolbar/icons/Text.tsx
|
|
1067
|
-
var
|
|
1008
|
+
var import_react38 = __toESM(require("react"));
|
|
1068
1009
|
var Text = (props) => {
|
|
1069
1010
|
const stroke = getStroke(props);
|
|
1070
|
-
return /* @__PURE__ */
|
|
1011
|
+
return /* @__PURE__ */ import_react38.default.createElement("svg", {
|
|
1071
1012
|
viewBox: "0 0 24 24"
|
|
1072
|
-
}, /* @__PURE__ */
|
|
1013
|
+
}, /* @__PURE__ */ import_react38.default.createElement("path", {
|
|
1073
1014
|
fill: stroke,
|
|
1074
1015
|
d: "M18.5 5.5V8h-1V6.5H13v11h2v1H9v-1h2v-11H6.5V8h-1V5.5h13Z"
|
|
1075
1016
|
}));
|
|
1076
1017
|
};
|
|
1077
1018
|
|
|
1078
1019
|
// src/components/Toolbar/icons/Triangle.tsx
|
|
1079
|
-
var
|
|
1020
|
+
var import_react39 = __toESM(require("react"));
|
|
1080
1021
|
var Triangle = (props) => {
|
|
1081
1022
|
const stroke = getStroke(props);
|
|
1082
|
-
return /* @__PURE__ */
|
|
1023
|
+
return /* @__PURE__ */ import_react39.default.createElement("svg", {
|
|
1083
1024
|
viewBox: "0 0 24 24"
|
|
1084
|
-
}, /* @__PURE__ */
|
|
1025
|
+
}, /* @__PURE__ */ import_react39.default.createElement("path", {
|
|
1085
1026
|
fill: "none",
|
|
1086
1027
|
stroke,
|
|
1087
1028
|
d: "M12 6.008 19.138 18.5H4.862L12 6.008Z"
|
|
@@ -1089,12 +1030,12 @@ var Triangle = (props) => {
|
|
|
1089
1030
|
};
|
|
1090
1031
|
|
|
1091
1032
|
// src/components/Toolbar/icons/Up.tsx
|
|
1092
|
-
var
|
|
1033
|
+
var import_react40 = __toESM(require("react"));
|
|
1093
1034
|
var Up = (props) => {
|
|
1094
1035
|
const stroke = getStroke(props);
|
|
1095
|
-
return /* @__PURE__ */
|
|
1036
|
+
return /* @__PURE__ */ import_react40.default.createElement("svg", {
|
|
1096
1037
|
viewBox: "0 0 24 24"
|
|
1097
|
-
}, /* @__PURE__ */
|
|
1038
|
+
}, /* @__PURE__ */ import_react40.default.createElement("path", {
|
|
1098
1039
|
fill: "none",
|
|
1099
1040
|
stroke,
|
|
1100
1041
|
d: "m16 11-2-2-2-2-2 2-2 2m8 6-2-2-2-2-2 2-2 2"
|
|
@@ -1103,27 +1044,117 @@ var Up = (props) => {
|
|
|
1103
1044
|
|
|
1104
1045
|
// src/components/Toolbar/icons/index.ts
|
|
1105
1046
|
var Icons = {
|
|
1106
|
-
Clicker: (0,
|
|
1107
|
-
Collapse: (0,
|
|
1108
|
-
Eraser: (0,
|
|
1109
|
-
Expand: (0,
|
|
1110
|
-
Pencil: (0,
|
|
1111
|
-
Selector: (0,
|
|
1112
|
-
Rectangle: (0,
|
|
1113
|
-
Text: (0,
|
|
1114
|
-
Apps: (0,
|
|
1115
|
-
Clean: (0,
|
|
1116
|
-
Circle: (0,
|
|
1117
|
-
Line: (0,
|
|
1118
|
-
Arrow: (0,
|
|
1119
|
-
Star: (0,
|
|
1120
|
-
Diamond: (0,
|
|
1121
|
-
SpeechBalloon: (0,
|
|
1122
|
-
Triangle: (0,
|
|
1123
|
-
Up: (0,
|
|
1124
|
-
Down: (0,
|
|
1047
|
+
Clicker: (0, import_react41.memo)(Clicker),
|
|
1048
|
+
Collapse: (0, import_react41.memo)(Collapse),
|
|
1049
|
+
Eraser: (0, import_react41.memo)(Eraser),
|
|
1050
|
+
Expand: (0, import_react41.memo)(Expand),
|
|
1051
|
+
Pencil: (0, import_react41.memo)(Pencil),
|
|
1052
|
+
Selector: (0, import_react41.memo)(Selector),
|
|
1053
|
+
Rectangle: (0, import_react41.memo)(Rectangle),
|
|
1054
|
+
Text: (0, import_react41.memo)(Text),
|
|
1055
|
+
Apps: (0, import_react41.memo)(Apps),
|
|
1056
|
+
Clean: (0, import_react41.memo)(Clean),
|
|
1057
|
+
Circle: (0, import_react41.memo)(Circle),
|
|
1058
|
+
Line: (0, import_react41.memo)(Line),
|
|
1059
|
+
Arrow: (0, import_react41.memo)(Arrow),
|
|
1060
|
+
Star: (0, import_react41.memo)(Star),
|
|
1061
|
+
Diamond: (0, import_react41.memo)(Diamond),
|
|
1062
|
+
SpeechBalloon: (0, import_react41.memo)(SpeechBalloon),
|
|
1063
|
+
Triangle: (0, import_react41.memo)(Triangle),
|
|
1064
|
+
Up: (0, import_react41.memo)(Up),
|
|
1065
|
+
Down: (0, import_react41.memo)(Down)
|
|
1066
|
+
};
|
|
1067
|
+
|
|
1068
|
+
// src/components/Toolbar/const.ts
|
|
1069
|
+
var ShapesMap = {
|
|
1070
|
+
[import_white_web_sdk.ApplianceNames.rectangle]: Icons.Rectangle,
|
|
1071
|
+
[import_white_web_sdk.ApplianceNames.ellipse]: Icons.Circle,
|
|
1072
|
+
[import_white_web_sdk.ApplianceNames.straight]: Icons.Line,
|
|
1073
|
+
[import_white_web_sdk.ApplianceNames.arrow]: Icons.Arrow,
|
|
1074
|
+
[import_white_web_sdk.ShapeType.Pentagram]: Icons.Star,
|
|
1075
|
+
[import_white_web_sdk.ShapeType.Rhombus]: Icons.Diamond,
|
|
1076
|
+
[import_white_web_sdk.ShapeType.Triangle]: Icons.Triangle,
|
|
1077
|
+
[import_white_web_sdk.ShapeType.SpeechBalloon]: Icons.SpeechBalloon
|
|
1078
|
+
};
|
|
1079
|
+
var ApplianceShapes = [
|
|
1080
|
+
import_white_web_sdk.ApplianceNames.rectangle,
|
|
1081
|
+
import_white_web_sdk.ApplianceNames.ellipse,
|
|
1082
|
+
import_white_web_sdk.ApplianceNames.straight,
|
|
1083
|
+
import_white_web_sdk.ApplianceNames.arrow
|
|
1084
|
+
];
|
|
1085
|
+
var Shapes = [
|
|
1086
|
+
import_white_web_sdk.ShapeType.Pentagram,
|
|
1087
|
+
import_white_web_sdk.ShapeType.Rhombus,
|
|
1088
|
+
import_white_web_sdk.ShapeType.Triangle,
|
|
1089
|
+
import_white_web_sdk.ShapeType.SpeechBalloon
|
|
1090
|
+
];
|
|
1091
|
+
var ItemHeight = 32 + 4;
|
|
1092
|
+
var ItemsCount = 8;
|
|
1093
|
+
var MaxHeight = ItemHeight * ItemsCount - 4;
|
|
1094
|
+
var MinHeight = ItemHeight * 2 - 4;
|
|
1095
|
+
|
|
1096
|
+
// src/components/Toolbar/hooks.ts
|
|
1097
|
+
function useRoomState() {
|
|
1098
|
+
return useFastboardValue(useFastboardApp().memberState);
|
|
1099
|
+
}
|
|
1100
|
+
function useToolbar() {
|
|
1101
|
+
const app = useFastboardApp();
|
|
1102
|
+
const writable = useWritable();
|
|
1103
|
+
const memberState = useRoomState();
|
|
1104
|
+
const [lastShape, setLastShape] = (0, import_react42.useState)("rectangle");
|
|
1105
|
+
const cleanCurrentScene = (0, import_react42.useCallback)(() => {
|
|
1106
|
+
app.cleanCurrentScene();
|
|
1107
|
+
}, [app]);
|
|
1108
|
+
const setAppliance = (0, import_react42.useCallback)((appliance, shape) => {
|
|
1109
|
+
app.setAppliance(appliance, shape);
|
|
1110
|
+
if (shape) {
|
|
1111
|
+
setLastShape(shape);
|
|
1112
|
+
} else if (appliance in ShapesMap) {
|
|
1113
|
+
setLastShape(appliance);
|
|
1114
|
+
}
|
|
1115
|
+
}, [app]);
|
|
1116
|
+
const setStrokeWidth = (0, import_react42.useCallback)((strokeWidth) => {
|
|
1117
|
+
app.setStrokeWidth(strokeWidth);
|
|
1118
|
+
}, [app]);
|
|
1119
|
+
const setStrokeColor = (0, import_react42.useCallback)((strokeColor) => {
|
|
1120
|
+
app.setStrokeColor(strokeColor);
|
|
1121
|
+
}, [app]);
|
|
1122
|
+
return {
|
|
1123
|
+
writable,
|
|
1124
|
+
memberState,
|
|
1125
|
+
lastShape,
|
|
1126
|
+
cleanCurrentScene,
|
|
1127
|
+
setAppliance,
|
|
1128
|
+
setStrokeWidth,
|
|
1129
|
+
setStrokeColor
|
|
1130
|
+
};
|
|
1131
|
+
}
|
|
1132
|
+
var EmptyToolbarHook = {
|
|
1133
|
+
writable: false,
|
|
1134
|
+
memberState: void 0,
|
|
1135
|
+
lastShape: "rectangle",
|
|
1136
|
+
cleanCurrentScene: noop,
|
|
1137
|
+
setAppliance: noop,
|
|
1138
|
+
setStrokeWidth: noop,
|
|
1139
|
+
setStrokeColor: noop
|
|
1125
1140
|
};
|
|
1126
1141
|
|
|
1142
|
+
// src/components/Toolbar/Toolbar.tsx
|
|
1143
|
+
var import_clsx9 = __toESM(require("clsx"));
|
|
1144
|
+
var import_framer_motion = require("framer-motion");
|
|
1145
|
+
var import_react59 = __toESM(require("react"));
|
|
1146
|
+
|
|
1147
|
+
// src/components/Toolbar/components/assets/expanded.png
|
|
1148
|
+
var expanded_default = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACIAAAB8CAYAAAAMw2JFAAAAAXNSR0IArs4c6QAAA5xJREFUeF7tnL9v00AUx5/TlRkJMSAxZ+jYCf4GtopK6dB2qBBsjshaJErboWVJpYaNLGDaIR2YYAFXqlxhlvzAJkhGJGlyDhVNSpWgyOiqBJnQ+urznW2Jy1JVVnKffv3x8yV9LxLE5CEBwFUA6ALAzyiZJFVVX21ubj7N5/MmACAAGEQBJDWbzQZCqGcYRm52dlbpdDpNAPgRNozkOE691+tBo9FItNtto1AorC0tLX0EAAzUDwvoDGS02NHREU4IarXatizLOV3XvwHAdwBweAP9BYIXGwwGcHh4mLBtG2matrGwsPB2mA5Xmf8BGf3lJycn+HRNtFqtd2HIfCEIBnIcBxBCEkKobxjGFk+ZPUFG6YQh86VAPGSuAUCbhcy+QMZktjVNW2cls28QD5k/A0CLtjJTg4zLbJpmLpVKvaStzIFAWMrMBISFzExBgsjMHIRWZm4gfmXmCnKezIqiLK+srOjDG+mfu3ooIG6Z6/X6r/39/Udzc3OvAQBX5jOYUEHwgqenp2BZlrS7u/sgnU6/Ge53wgfBMN1uV6pWq/b09PTdSqVSwtU49ERGp8myrISqqsszMzPPcSqRgRwfH0vlcvnD1NTUIgB8jQyk3+9DuVy2Jycn7wBANTIQvPsrlUqJZDJ5GwA+RQaCXSkWixPJZPKWABldOSKR8XeLIhGRCOkTBOGIcEQ4QkpAOEJKSNQR4YhwhJSAcISUkKgjTBy5fuPmNfxCNetLA/98srp25WFaxv+UpH5QnZpxEPz7/XuLnSAwzEBwFEFgmIIEgWEOQgvDBYQGhhuIXxiuIH5g/g8QP5czt0T8QFB/mHdeZXXXdr8QXEBoIJiD0EIwBQkCwQwksm0A9abD44lUl68A4ZEAkz0rDzDhiDg1JK+EI8IR4QgpAeEIKSFRR4QjwhFSAsIRUkKijsTSkdi0f8WmIS42LYKxaJqMRRtpLBpr8URTpK3GrrEYU1GUx6E3X7sHhUzTfJZKpV5cNFvBrY10NDqFEFKz2ex6Pp/3nDZhDuIaJrMPDg425ufncac3HrXzHCZjCuIar9vJZDI5TdPweN2lJpKYgLhlLBQKqzQDh4FA/MhI2ptQg/iVkTkIrYxMQdwyyrK8pet6uONxLGQMlAhLGalBXDK+z2azG6TKSFqIdNxrzNZXZSQtRDp+0eDxDmsZLwUSxvQqEWQ4nN4n3aZJLxT0uLS3t7cdhowk0Ph8gQGJNKzjvwGKWUjXcvHclAAAAABJRU5ErkJggg==";
|
|
1149
|
+
|
|
1150
|
+
// src/components/Toolbar/Content.tsx
|
|
1151
|
+
var import_clsx8 = __toESM(require("clsx"));
|
|
1152
|
+
var import_react58 = __toESM(require("react"));
|
|
1153
|
+
|
|
1154
|
+
// src/components/Toolbar/components/ApplianceButtons.tsx
|
|
1155
|
+
var import_react45 = __toESM(require("react"));
|
|
1156
|
+
var import_white_web_sdk2 = require("white-web-sdk");
|
|
1157
|
+
|
|
1127
1158
|
// src/components/Toolbar/components/Button.tsx
|
|
1128
1159
|
var import_clsx4 = __toESM(require("clsx"));
|
|
1129
1160
|
var import_react43 = __toESM(require("react"));
|
|
@@ -1164,10 +1195,10 @@ function ClickerButton() {
|
|
|
1164
1195
|
const app = useFastboardApp();
|
|
1165
1196
|
const { t } = useTranslation();
|
|
1166
1197
|
const { theme, icons, writable, setAppliance, memberState } = (0, import_react45.useContext)(ToolbarContext);
|
|
1167
|
-
const changeAppliance = (0, import_react45.useCallback)(() => setAppliance(
|
|
1198
|
+
const changeAppliance = (0, import_react45.useCallback)(() => setAppliance(import_white_web_sdk2.ApplianceNames.clicker), [setAppliance]);
|
|
1168
1199
|
const shortcut = (_a = app.hotKeys) == null ? void 0 : _a.changeToClick;
|
|
1169
1200
|
const appliance = memberState == null ? void 0 : memberState.currentApplianceName;
|
|
1170
|
-
const active = appliance ===
|
|
1201
|
+
const active = appliance === import_white_web_sdk2.ApplianceNames.clicker;
|
|
1171
1202
|
const disabled = !writable;
|
|
1172
1203
|
return /* @__PURE__ */ import_react45.default.createElement(Button, {
|
|
1173
1204
|
content: renderToolTip(t("clicker"), shortcut),
|
|
@@ -1186,9 +1217,9 @@ function SelectorButton() {
|
|
|
1186
1217
|
const app = useFastboardApp();
|
|
1187
1218
|
const { t } = useTranslation();
|
|
1188
1219
|
const { theme, icons, writable, setAppliance, memberState } = (0, import_react45.useContext)(ToolbarContext);
|
|
1189
|
-
const changeAppliance = (0, import_react45.useCallback)(() => setAppliance(
|
|
1220
|
+
const changeAppliance = (0, import_react45.useCallback)(() => setAppliance(import_white_web_sdk2.ApplianceNames.selector), [setAppliance]);
|
|
1190
1221
|
const appliance = memberState == null ? void 0 : memberState.currentApplianceName;
|
|
1191
|
-
const active = appliance ===
|
|
1222
|
+
const active = appliance === import_white_web_sdk2.ApplianceNames.selector;
|
|
1192
1223
|
const disabled = !writable;
|
|
1193
1224
|
const shortcut = (app.hotKeys || defaultHotKeys).changeToSelector;
|
|
1194
1225
|
return /* @__PURE__ */ import_react45.default.createElement(Button, {
|
|
@@ -1208,9 +1239,9 @@ function EraserButton() {
|
|
|
1208
1239
|
const app = useFastboardApp();
|
|
1209
1240
|
const { t } = useTranslation();
|
|
1210
1241
|
const { theme, icons, writable, setAppliance, memberState } = (0, import_react45.useContext)(ToolbarContext);
|
|
1211
|
-
const changeAppliance = (0, import_react45.useCallback)(() => setAppliance(
|
|
1242
|
+
const changeAppliance = (0, import_react45.useCallback)(() => setAppliance(import_white_web_sdk2.ApplianceNames.eraser), [setAppliance]);
|
|
1212
1243
|
const appliance = memberState == null ? void 0 : memberState.currentApplianceName;
|
|
1213
|
-
const active = appliance ===
|
|
1244
|
+
const active = appliance === import_white_web_sdk2.ApplianceNames.eraser;
|
|
1214
1245
|
const disabled = !writable;
|
|
1215
1246
|
const shortcut = ((app == null ? void 0 : app.hotKeys) || defaultHotKeys).changeToEraser;
|
|
1216
1247
|
return /* @__PURE__ */ import_react45.default.createElement(Button, {
|
|
@@ -1327,7 +1358,7 @@ function AppIcon({ title, src, alt, onClick }) {
|
|
|
1327
1358
|
// src/components/Toolbar/components/PencilButton.tsx
|
|
1328
1359
|
var import_react51 = __toESM(require("@tippyjs/react"));
|
|
1329
1360
|
var import_react52 = __toESM(require("react"));
|
|
1330
|
-
var
|
|
1361
|
+
var import_white_web_sdk3 = require("white-web-sdk");
|
|
1331
1362
|
|
|
1332
1363
|
// src/components/Toolbar/components/ColorBox.tsx
|
|
1333
1364
|
var import_clsx5 = __toESM(require("clsx"));
|
|
@@ -1404,10 +1435,10 @@ function PencilButton() {
|
|
|
1404
1435
|
const { t } = useTranslation();
|
|
1405
1436
|
const { theme, icons, writable, setAppliance, memberState } = (0, import_react52.useContext)(ToolbarContext);
|
|
1406
1437
|
const changeAppliance = (0, import_react52.useCallback)(() => {
|
|
1407
|
-
setAppliance(
|
|
1438
|
+
setAppliance(import_white_web_sdk3.ApplianceNames.pencil);
|
|
1408
1439
|
}, [setAppliance]);
|
|
1409
1440
|
const appliance = memberState == null ? void 0 : memberState.currentApplianceName;
|
|
1410
|
-
const active = appliance ===
|
|
1441
|
+
const active = appliance === import_white_web_sdk3.ApplianceNames.pencil;
|
|
1411
1442
|
const disabled = !writable;
|
|
1412
1443
|
const shortcut = ((app == null ? void 0 : app.hotKeys) || defaultHotKeys).changeToPencil;
|
|
1413
1444
|
return /* @__PURE__ */ import_react52.default.createElement("span", {
|
|
@@ -1446,46 +1477,15 @@ function renderPencilButtonContent() {
|
|
|
1446
1477
|
var import_react53 = __toESM(require("@tippyjs/react"));
|
|
1447
1478
|
var import_react54 = __toESM(require("react"));
|
|
1448
1479
|
var import_white_web_sdk4 = require("white-web-sdk");
|
|
1449
|
-
|
|
1450
|
-
// src/components/Toolbar/const.ts
|
|
1451
|
-
var import_white_web_sdk3 = require("white-web-sdk");
|
|
1452
|
-
var ShapesMap = {
|
|
1453
|
-
[import_white_web_sdk3.ApplianceNames.rectangle]: Icons.Rectangle,
|
|
1454
|
-
[import_white_web_sdk3.ApplianceNames.ellipse]: Icons.Circle,
|
|
1455
|
-
[import_white_web_sdk3.ApplianceNames.straight]: Icons.Line,
|
|
1456
|
-
[import_white_web_sdk3.ApplianceNames.arrow]: Icons.Arrow,
|
|
1457
|
-
[import_white_web_sdk3.ShapeType.Pentagram]: Icons.Star,
|
|
1458
|
-
[import_white_web_sdk3.ShapeType.Rhombus]: Icons.Diamond,
|
|
1459
|
-
[import_white_web_sdk3.ShapeType.Triangle]: Icons.Triangle,
|
|
1460
|
-
[import_white_web_sdk3.ShapeType.SpeechBalloon]: Icons.SpeechBalloon
|
|
1461
|
-
};
|
|
1462
|
-
var ApplianceShapes = [
|
|
1463
|
-
import_white_web_sdk3.ApplianceNames.rectangle,
|
|
1464
|
-
import_white_web_sdk3.ApplianceNames.ellipse,
|
|
1465
|
-
import_white_web_sdk3.ApplianceNames.straight,
|
|
1466
|
-
import_white_web_sdk3.ApplianceNames.arrow
|
|
1467
|
-
];
|
|
1468
|
-
var Shapes = [
|
|
1469
|
-
import_white_web_sdk3.ShapeType.Pentagram,
|
|
1470
|
-
import_white_web_sdk3.ShapeType.Rhombus,
|
|
1471
|
-
import_white_web_sdk3.ShapeType.Triangle,
|
|
1472
|
-
import_white_web_sdk3.ShapeType.SpeechBalloon
|
|
1473
|
-
];
|
|
1474
|
-
var ItemHeight = 32 + 4;
|
|
1475
|
-
var ItemsCount = 8;
|
|
1476
|
-
var MaxHeight = ItemHeight * ItemsCount - 4;
|
|
1477
|
-
var MinHeight = ItemHeight * 2 - 4;
|
|
1478
|
-
|
|
1479
|
-
// src/components/Toolbar/components/ShapesButton.tsx
|
|
1480
1480
|
var ShapeTypes = /* @__PURE__ */ new Set([...ApplianceShapes, ...Shapes]);
|
|
1481
1481
|
function ShapesButton() {
|
|
1482
1482
|
const { t } = useTranslation();
|
|
1483
|
-
const { theme, memberState } = (0, import_react54.useContext)(ToolbarContext);
|
|
1483
|
+
const { theme, memberState, lastShape } = (0, import_react54.useContext)(ToolbarContext);
|
|
1484
1484
|
const appliance = memberState == null ? void 0 : memberState.currentApplianceName;
|
|
1485
1485
|
const shape = memberState == null ? void 0 : memberState.shapeType;
|
|
1486
1486
|
const key = appliance === import_white_web_sdk4.ApplianceNames.shape ? shape : appliance;
|
|
1487
1487
|
const active = ShapeTypes.has(key);
|
|
1488
|
-
const CurrentIcon = ShapesMap[
|
|
1488
|
+
const CurrentIcon = ShapesMap[lastShape];
|
|
1489
1489
|
return /* @__PURE__ */ import_react54.default.createElement("span", {
|
|
1490
1490
|
className: "fastboard-toolbar-btn-interactive"
|
|
1491
1491
|
}, /* @__PURE__ */ import_react54.default.createElement(import_react53.default, {
|