next-chessground 0.9.4 → 0.10.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.
- package/dist/index.es.js +264 -18
- package/dist/index.js +263 -16
- package/index.js +2 -1
- package/package.json +1 -1
package/dist/index.es.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React, { createContext,
|
|
1
|
+
import React, { createContext, useState, useContext, useEffect, forwardRef } from 'react';
|
|
2
2
|
import require$$1 from 'react-dom';
|
|
3
3
|
|
|
4
4
|
function _defineProperty(obj, key, value) {
|
|
@@ -475,6 +475,18 @@ const themable = () => {
|
|
|
475
475
|
return theme;
|
|
476
476
|
};
|
|
477
477
|
|
|
478
|
+
const Theme = ({
|
|
479
|
+
children
|
|
480
|
+
}) => {
|
|
481
|
+
const [theme, setTheme] = useState(themable());
|
|
482
|
+
return /*#__PURE__*/React.createElement(ThemeContext.Provider, {
|
|
483
|
+
value: {
|
|
484
|
+
theme,
|
|
485
|
+
setTheme
|
|
486
|
+
}
|
|
487
|
+
}, children);
|
|
488
|
+
};
|
|
489
|
+
|
|
478
490
|
function mergeClassNames() {
|
|
479
491
|
return Array.prototype.slice.call(arguments).reduce(function (classList, arg) {
|
|
480
492
|
return classList.concat(arg);
|
|
@@ -5944,10 +5956,13 @@ const initial$1 = fen.initial;
|
|
|
5944
5956
|
|
|
5945
5957
|
const useChess = props => {
|
|
5946
5958
|
const [fen, setFen] = useState(props.fen || initial$1);
|
|
5947
|
-
const [chess$1] = useState(new chess.Chess(fen)); // reinitialize when FEN changes from props
|
|
5959
|
+
const [chess$1, setChess] = useState(new chess.Chess(fen)); // reinitialize when FEN changes from props
|
|
5948
5960
|
|
|
5949
5961
|
useEffect(() => {
|
|
5950
|
-
|
|
5962
|
+
if (props.fen) {
|
|
5963
|
+
setFen(props.fen);
|
|
5964
|
+
setChess(new chess.Chess(props.fen));
|
|
5965
|
+
}
|
|
5951
5966
|
}, [props.fen]);
|
|
5952
5967
|
const [lastMove, setLastMove] = useState([]);
|
|
5953
5968
|
const promotion = props.lastMove && props.lastMove.promotion;
|
|
@@ -6229,8 +6244,11 @@ var Modal = /*@__PURE__*/getDefaultExportFromCjs(reactPureModal_min);
|
|
|
6229
6244
|
const SparePiece = ({
|
|
6230
6245
|
role,
|
|
6231
6246
|
color,
|
|
6247
|
+
highlighted,
|
|
6232
6248
|
selectPiece
|
|
6233
6249
|
}) => {
|
|
6250
|
+
const bin = role === 'bin';
|
|
6251
|
+
|
|
6234
6252
|
const handleClick = () => {
|
|
6235
6253
|
if (typeof selectPiece === 'function') {
|
|
6236
6254
|
selectPiece({
|
|
@@ -6241,9 +6259,9 @@ const SparePiece = ({
|
|
|
6241
6259
|
};
|
|
6242
6260
|
|
|
6243
6261
|
return /*#__PURE__*/React.createElement("div", {
|
|
6244
|
-
className:
|
|
6262
|
+
className: mergeClassNames('edit-square border border-gray-300 rounded', highlighted && 'bg-orange-300')
|
|
6245
6263
|
}, /*#__PURE__*/React.createElement("piece", {
|
|
6246
|
-
className:
|
|
6264
|
+
className: mergeClassNames('spare-piece', role, color, bin && 'next-trash'),
|
|
6247
6265
|
onClick: handleClick
|
|
6248
6266
|
}));
|
|
6249
6267
|
};
|
|
@@ -6260,11 +6278,11 @@ const Promote = ({
|
|
|
6260
6278
|
};
|
|
6261
6279
|
|
|
6262
6280
|
return /*#__PURE__*/React.createElement(Modal, {
|
|
6263
|
-
|
|
6281
|
+
closeButton: "",
|
|
6264
6282
|
isOpen: isOpen,
|
|
6265
6283
|
onClose: hide
|
|
6266
6284
|
}, /*#__PURE__*/React.createElement("div", {
|
|
6267
|
-
className: "flex gap-2 justify-center"
|
|
6285
|
+
className: "promote flex gap-2 py-1.5 justify-center"
|
|
6268
6286
|
}, /*#__PURE__*/React.createElement(SparePiece, {
|
|
6269
6287
|
color: color,
|
|
6270
6288
|
role: "queen",
|
|
@@ -6614,14 +6632,8 @@ const Advanced = ({
|
|
|
6614
6632
|
};
|
|
6615
6633
|
|
|
6616
6634
|
const NextChessground = (props, ref) => {
|
|
6617
|
-
const [theme, setTheme] = useState(themable());
|
|
6618
6635
|
const [orientation, flip] = useOrientation(props);
|
|
6619
|
-
return /*#__PURE__*/React.createElement(
|
|
6620
|
-
value: {
|
|
6621
|
-
theme,
|
|
6622
|
-
setTheme
|
|
6623
|
-
}
|
|
6624
|
-
}, /*#__PURE__*/React.createElement("div", {
|
|
6636
|
+
return /*#__PURE__*/React.createElement(Theme, null, /*#__PURE__*/React.createElement("div", {
|
|
6625
6637
|
className: "next-chessground"
|
|
6626
6638
|
}, /*#__PURE__*/React.createElement(Chessboard$1, _extends({}, props, {
|
|
6627
6639
|
ref: ref,
|
|
@@ -6634,6 +6646,240 @@ const NextChessground = (props, ref) => {
|
|
|
6634
6646
|
|
|
6635
6647
|
var NextChessground$1 = /*#__PURE__*/forwardRef(NextChessground);
|
|
6636
6648
|
|
|
6649
|
+
const EditorPieces = props => {
|
|
6650
|
+
const {
|
|
6651
|
+
theme
|
|
6652
|
+
} = useChessground();
|
|
6653
|
+
const roles = ['bin', 'pawn', 'knight', 'bishop', 'rook', 'queen', 'king'];
|
|
6654
|
+
|
|
6655
|
+
const showPiece = (role, props) => {
|
|
6656
|
+
const {
|
|
6657
|
+
color = 'white',
|
|
6658
|
+
selected = {
|
|
6659
|
+
role: null,
|
|
6660
|
+
color: null
|
|
6661
|
+
}
|
|
6662
|
+
} = props;
|
|
6663
|
+
const highlighted = role === selected.role && color === selected.color;
|
|
6664
|
+
return /*#__PURE__*/React.createElement(SparePiece, _extends({
|
|
6665
|
+
key: `${role}-${color}`,
|
|
6666
|
+
highlighted: highlighted,
|
|
6667
|
+
role: role,
|
|
6668
|
+
color: color
|
|
6669
|
+
}, props));
|
|
6670
|
+
};
|
|
6671
|
+
|
|
6672
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
6673
|
+
className: mergeClassNames('spare-pieces flex gap-2', theme.pieces)
|
|
6674
|
+
}, roles.map(role => showPiece(role, props)));
|
|
6675
|
+
};
|
|
6676
|
+
|
|
6677
|
+
/**
|
|
6678
|
+
* Pieces diff from a Chessground board
|
|
6679
|
+
*/
|
|
6680
|
+
const piecesDiff = key => {
|
|
6681
|
+
const map = new Map();
|
|
6682
|
+
map.set(key, null);
|
|
6683
|
+
return map;
|
|
6684
|
+
};
|
|
6685
|
+
/**
|
|
6686
|
+
* Drop piece to a Chessground board
|
|
6687
|
+
*/
|
|
6688
|
+
|
|
6689
|
+
|
|
6690
|
+
const dropPiece = (cg, selected, key) => {
|
|
6691
|
+
if (!cg) {
|
|
6692
|
+
throw new Error('Chessground is not defined');
|
|
6693
|
+
}
|
|
6694
|
+
|
|
6695
|
+
if (!selected || !selected.role || !selected.color) {
|
|
6696
|
+
return cg.getFen();
|
|
6697
|
+
}
|
|
6698
|
+
|
|
6699
|
+
if (selected.role === 'bin') {
|
|
6700
|
+
cg.setPieces(piecesDiff(key));
|
|
6701
|
+
return cg.getFen();
|
|
6702
|
+
}
|
|
6703
|
+
|
|
6704
|
+
const square = cg.state.pieces.get(key);
|
|
6705
|
+
|
|
6706
|
+
if (!square) {
|
|
6707
|
+
cg.newPiece(selected, key);
|
|
6708
|
+
return cg.getFen();
|
|
6709
|
+
}
|
|
6710
|
+
|
|
6711
|
+
if (square.role === selected.role && square.color === selected.color) {
|
|
6712
|
+
cg.setPieces(piecesDiff(key));
|
|
6713
|
+
return cg.getFen();
|
|
6714
|
+
}
|
|
6715
|
+
|
|
6716
|
+
cg.setPieces(piecesDiff(key));
|
|
6717
|
+
cg.newPiece(selected, key);
|
|
6718
|
+
return cg.getFen();
|
|
6719
|
+
};
|
|
6720
|
+
|
|
6721
|
+
const getCastles = (initial, option) => {
|
|
6722
|
+
if (!option) {
|
|
6723
|
+
return initial;
|
|
6724
|
+
}
|
|
6725
|
+
|
|
6726
|
+
const all = ['K', 'Q', 'k', 'q'];
|
|
6727
|
+
const array = all.map(letter => {
|
|
6728
|
+
if (letter !== option) {
|
|
6729
|
+
if (initial.includes(letter)) {
|
|
6730
|
+
return letter;
|
|
6731
|
+
}
|
|
6732
|
+
|
|
6733
|
+
return '';
|
|
6734
|
+
}
|
|
6735
|
+
|
|
6736
|
+
if (initial.includes(option)) {
|
|
6737
|
+
return '';
|
|
6738
|
+
}
|
|
6739
|
+
|
|
6740
|
+
return option;
|
|
6741
|
+
});
|
|
6742
|
+
const string = array.join('');
|
|
6743
|
+
return string.length ? string : '-';
|
|
6744
|
+
};
|
|
6745
|
+
|
|
6746
|
+
const FenOptions = ({
|
|
6747
|
+
onChange
|
|
6748
|
+
}) => {
|
|
6749
|
+
const [side, setSide] = useState('w');
|
|
6750
|
+
const [castles, setCastles] = useState('-');
|
|
6751
|
+
useEffect(() => {
|
|
6752
|
+
if (typeof onChange === 'function') {
|
|
6753
|
+
onChange([side, castles].join(' '));
|
|
6754
|
+
}
|
|
6755
|
+
}, [side, castles]);
|
|
6756
|
+
|
|
6757
|
+
const changeSide = e => {
|
|
6758
|
+
const {
|
|
6759
|
+
value
|
|
6760
|
+
} = e.target;
|
|
6761
|
+
setSide(value);
|
|
6762
|
+
};
|
|
6763
|
+
|
|
6764
|
+
const changeCastle = e => {
|
|
6765
|
+
const {
|
|
6766
|
+
value
|
|
6767
|
+
} = e.target;
|
|
6768
|
+
setCastles(getCastles(castles, value));
|
|
6769
|
+
};
|
|
6770
|
+
|
|
6771
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
6772
|
+
className: "flex flex-col gap-2 w-full"
|
|
6773
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
6774
|
+
className: "flex gap-2 w-full"
|
|
6775
|
+
}, /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement("input", {
|
|
6776
|
+
defaultChecked: true,
|
|
6777
|
+
className: "mx-1",
|
|
6778
|
+
type: "radio",
|
|
6779
|
+
id: "white-radio",
|
|
6780
|
+
name: "side-to-move",
|
|
6781
|
+
value: "w",
|
|
6782
|
+
onChange: changeSide
|
|
6783
|
+
}), /*#__PURE__*/React.createElement("label", {
|
|
6784
|
+
htmlFor: "white-radio"
|
|
6785
|
+
}, "White to move")), /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement("input", {
|
|
6786
|
+
className: "mx-1",
|
|
6787
|
+
type: "radio",
|
|
6788
|
+
id: "black-radio",
|
|
6789
|
+
name: "side-to-move",
|
|
6790
|
+
value: "b",
|
|
6791
|
+
onChange: changeSide
|
|
6792
|
+
}), /*#__PURE__*/React.createElement("label", {
|
|
6793
|
+
htmlFor: "black-radio"
|
|
6794
|
+
}, "Black to move"))), /*#__PURE__*/React.createElement("div", {
|
|
6795
|
+
className: "flex flex-col gap-2 w-full"
|
|
6796
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
6797
|
+
className: "flex w-full gap-4"
|
|
6798
|
+
}, /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement("span", null, "White can")), /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement("input", {
|
|
6799
|
+
className: "mx-1",
|
|
6800
|
+
type: "checkbox",
|
|
6801
|
+
id: "white-short-castle",
|
|
6802
|
+
value: "K",
|
|
6803
|
+
onChange: changeCastle
|
|
6804
|
+
}), /*#__PURE__*/React.createElement("label", {
|
|
6805
|
+
htmlFor: "white-short-castle"
|
|
6806
|
+
}, "O-O")), /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement("input", {
|
|
6807
|
+
className: "mx-1",
|
|
6808
|
+
type: "checkbox",
|
|
6809
|
+
id: "white-long-castle",
|
|
6810
|
+
value: "Q",
|
|
6811
|
+
onChange: changeCastle
|
|
6812
|
+
}), /*#__PURE__*/React.createElement("label", {
|
|
6813
|
+
htmlFor: "white-long-castle"
|
|
6814
|
+
}, "O-O-O"))), /*#__PURE__*/React.createElement("div", {
|
|
6815
|
+
className: "flex w-full gap-4"
|
|
6816
|
+
}, /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement("span", null, "Black can")), /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement("input", {
|
|
6817
|
+
className: "mx-1",
|
|
6818
|
+
type: "checkbox",
|
|
6819
|
+
id: "black-short-castle",
|
|
6820
|
+
value: "k",
|
|
6821
|
+
onChange: changeCastle
|
|
6822
|
+
}), /*#__PURE__*/React.createElement("label", {
|
|
6823
|
+
htmlFor: "black-short-castle"
|
|
6824
|
+
}, "O-O")), /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement("input", {
|
|
6825
|
+
className: "mx-1",
|
|
6826
|
+
type: "checkbox",
|
|
6827
|
+
id: "black-long-castle",
|
|
6828
|
+
value: "q",
|
|
6829
|
+
onChange: changeCastle
|
|
6830
|
+
}), /*#__PURE__*/React.createElement("label", {
|
|
6831
|
+
htmlFor: "black-long-castle"
|
|
6832
|
+
}, "O-O-O")))));
|
|
6833
|
+
};
|
|
6834
|
+
|
|
6835
|
+
const NextEditor = (props, ref) => {
|
|
6836
|
+
const [fen$1, setFen] = useState(props.fen || fen.empty);
|
|
6837
|
+
const [selected, setSelected] = useState({
|
|
6838
|
+
role: null,
|
|
6839
|
+
color: null
|
|
6840
|
+
});
|
|
6841
|
+
useEffect(() => {
|
|
6842
|
+
if (typeof props.onSelect === 'function') {
|
|
6843
|
+
props.onSelect(fen$1);
|
|
6844
|
+
}
|
|
6845
|
+
}, [fen$1]);
|
|
6846
|
+
|
|
6847
|
+
const onSelect = key => {
|
|
6848
|
+
const array = fen$1.split(' ');
|
|
6849
|
+
array.shift();
|
|
6850
|
+
const options = array.join(' ');
|
|
6851
|
+
const position = dropPiece(ref.current.board, selected, key);
|
|
6852
|
+
const withOptions = [position, options].join(' ');
|
|
6853
|
+
setFen(withOptions);
|
|
6854
|
+
};
|
|
6855
|
+
|
|
6856
|
+
const handleChange = options => {
|
|
6857
|
+
const position = fen$1.split(' ')[0];
|
|
6858
|
+
const withOptions = [position, options, '- 0 1'].join(' ');
|
|
6859
|
+
setFen(withOptions);
|
|
6860
|
+
};
|
|
6861
|
+
|
|
6862
|
+
return /*#__PURE__*/React.createElement(Theme, null, /*#__PURE__*/React.createElement("div", {
|
|
6863
|
+
className: "next-chessground gap-2"
|
|
6864
|
+
}, /*#__PURE__*/React.createElement(EditorPieces, {
|
|
6865
|
+
selected: selected,
|
|
6866
|
+
selectPiece: setSelected,
|
|
6867
|
+
color: "black"
|
|
6868
|
+
}), /*#__PURE__*/React.createElement(Chessboard$1, _extends({}, props, {
|
|
6869
|
+
ref: ref,
|
|
6870
|
+
onSelect: onSelect,
|
|
6871
|
+
fen: fen$1
|
|
6872
|
+
})), /*#__PURE__*/React.createElement(EditorPieces, {
|
|
6873
|
+
selected: selected,
|
|
6874
|
+
selectPiece: setSelected,
|
|
6875
|
+
color: "white"
|
|
6876
|
+
}), /*#__PURE__*/React.createElement(FenOptions, {
|
|
6877
|
+
onChange: handleChange
|
|
6878
|
+
})));
|
|
6879
|
+
};
|
|
6880
|
+
|
|
6881
|
+
var NextEditor$1 = /*#__PURE__*/forwardRef(NextEditor);
|
|
6882
|
+
|
|
6637
6883
|
function styleInject(css, ref) {
|
|
6638
6884
|
if (ref === void 0) ref = {};
|
|
6639
6885
|
var insertAt = ref.insertAt;
|
|
@@ -6666,13 +6912,13 @@ function styleInject(css, ref) {
|
|
|
6666
6912
|
var css_248z = ".brown .cg-wrap cg-board {\n background-image: url('data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiAgeG1sbnM6eD0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgIHZpZXdCb3g9IjAgMCA4IDgiICBzaGFwZS1yZW5kZXJpbmc9Imdlb21ldHJpY1ByZWNpc2lvbiI+PHJlY3Qgd2lkdGg9IjgiIGhlaWdodD0iOCIgZmlsbD0iI2I1ODg2MyIvPjxnIGlkPSJhIj4gIDxnIGlkPSJiIj4gICAgPGcgaWQ9ImMiPiAgICAgIDxnIGlkPSJkIj4gICAgICAgIDxyZWN0IHdpZHRoPSIxIiBoZWlnaHQ9IjEiIGZpbGw9IiNmMGQ5YjUiIGlkPSJlIi8+ICAgICAgICA8dXNlIHg9IjIiIGhyZWY9IiNlIiB4OmhyZWY9IiNlIi8+ICAgICAgPC9nPiAgICAgIDx1c2UgeD0iNCIgaHJlZj0iI2QiIHg6aHJlZj0iI2QiLz4gICAgPC9nPiAgICA8dXNlIHg9IjEiIHk9IjEiIGhyZWY9IiNjIiB4OmhyZWY9IiNjIi8+ICA8L2c+ICA8dXNlIHk9IjIiIGhyZWY9IiNiIiB4OmhyZWY9IiNiIi8+PC9nPjx1c2UgeT0iNCIgaHJlZj0iI2EiIHg6aHJlZj0iI2EiLz48L3N2Zz4=');\n}\n.green .cg-wrap cg-board {\n background-image: url('data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiAgeG1sbnM6eD0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgIHZpZXdCb3g9IjAgMCA4IDgiICBzaGFwZS1yZW5kZXJpbmc9Imdlb21ldHJpY1ByZWNpc2lvbiI+PHJlY3Qgd2lkdGg9IjgiIGhlaWdodD0iOCIgZmlsbD0iIzc3OTU1NiIvPjxnIGlkPSJhIj4gIDxnIGlkPSJiIj4gICAgPGcgaWQ9ImMiPiAgICAgIDxnIGlkPSJkIj4gICAgICAgIDxyZWN0IHdpZHRoPSIxIiBoZWlnaHQ9IjEiIGZpbGw9IiNFQkVDRDAiIGlkPSJlIi8+ICAgICAgICA8dXNlIHg9IjIiIGhyZWY9IiNlIiB4OmhyZWY9IiNlIi8+ICAgICAgPC9nPiAgICAgIDx1c2UgeD0iNCIgaHJlZj0iI2QiIHg6aHJlZj0iI2QiLz4gICAgPC9nPiAgICA8dXNlIHg9IjEiIHk9IjEiIGhyZWY9IiNjIiB4OmhyZWY9IiNjIi8+ICA8L2c+ICA8dXNlIHk9IjIiIGhyZWY9IiNiIiB4OmhyZWY9IiNiIi8+PC9nPjx1c2UgeT0iNCIgaHJlZj0iI2EiIHg6aHJlZj0iI2EiLz48L3N2Zz4=');\n}\n.ruby .cg-wrap cg-board {\n background-image: url('data:image/svg+xml;base64,CjxzdmcgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgIHhtbG5zOng9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiICB2aWV3Qm94PSIwIDAgOCA4IiAgc2hhcGUtcmVuZGVyaW5nPSJnZW9tZXRyaWNQcmVjaXNpb24iPjxyZWN0IHdpZHRoPSI4IiBoZWlnaHQ9IjgiIGZpbGw9IiM4QjI2MzUiLz48ZyBpZD0iYSI+ICA8ZyBpZD0iYiI+ICAgIDxnIGlkPSJjIj4gICAgICA8ZyBpZD0iZCI+ICAgICAgICA8cmVjdCB3aWR0aD0iMSIgaGVpZ2h0PSIxIiBmaWxsPSIjRDJENEM4IiBpZD0iZSIvPiAgICAgICAgPHVzZSB4PSIyIiBocmVmPSIjZSIgeDpocmVmPSIjZSIvPiAgICAgIDwvZz4gICAgICA8dXNlIHg9IjQiIGhyZWY9IiNkIiB4OmhyZWY9IiNkIi8+ICAgIDwvZz4gICAgPHVzZSB4PSIxIiB5PSIxIiBocmVmPSIjYyIgeDpocmVmPSIjYyIvPiAgPC9nPiAgPHVzZSB5PSIyIiBocmVmPSIjYiIgeDpocmVmPSIjYiIvPjwvZz48dXNlIHk9IjQiIGhyZWY9IiNhIiB4OmhyZWY9IiNhIi8+PC9zdmc+');\n}\n.purple .cg-wrap cg-board {\n background-image: url('data:image/png;base64,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');\n}\n.teal .cg-wrap cg-board {\n background-image: url('data:image/svg+xml;base64,CjxzdmcgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgIHhtbG5zOng9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiICB2aWV3Qm94PSIwIDAgOCA4IiAgc2hhcGUtcmVuZGVyaW5nPSJnZW9tZXRyaWNQcmVjaXNpb24iPjxyZWN0IHdpZHRoPSI4IiBoZWlnaHQ9IjgiIGZpbGw9IiMxYzcyYWQiLz48ZyBpZD0iYSI+ICA8ZyBpZD0iYiI+ICAgIDxnIGlkPSJjIj4gICAgICA8ZyBpZD0iZCI+ICAgICAgICA8cmVjdCB3aWR0aD0iMSIgaGVpZ2h0PSIxIiBmaWxsPSIjZTNlYmYzIiBpZD0iZSIvPiAgICAgICAgPHVzZSB4PSIyIiBocmVmPSIjZSIgeDpocmVmPSIjZSIvPiAgICAgIDwvZz4gICAgICA8dXNlIHg9IjQiIGhyZWY9IiNkIiB4OmhyZWY9IiNkIi8+ICAgIDwvZz4gICAgPHVzZSB4PSIxIiB5PSIxIiBocmVmPSIjYyIgeDpocmVmPSIjYyIvPiAgPC9nPiAgPHVzZSB5PSIyIiBocmVmPSIjYiIgeDpocmVmPSIjYiIvPjwvZz48dXNlIHk9IjQiIGhyZWY9IiNhIiB4OmhyZWY9IiNhIi8+PC9zdmc+');\n}\n";
|
|
6667
6913
|
styleInject(css_248z);
|
|
6668
6914
|
|
|
6669
|
-
var css_248z$1 = ".next-chessground .chessground {\n grid-area: board;\n position: relative;\n display: block;\n height: 0;\n padding-bottom: 100%;\n padding-right: 100%;\n width: 100%;\n border-radius: 0.25rem;\n overflow: hidden;\n}\n\n.next-chessground .cg-wrap {\n display: table;\n position: absolute;\n width: 100%;\n height: 100%;\n}\n\n.next-chessground cg-helper {\n position: absolute;\n width: 12.5%;\n padding-bottom: 12.5%;\n display: table;\n bottom: 0;\n}\n\n.next-chessground cg-container {\n position: absolute;\n width: 800%;\n height: 800%;\n display: block;\n bottom: 0;\n}\n\n.next-chessground cg-board {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n line-height: 0;\n background-size: cover;\n cursor: pointer;\n}\n\n.next-chessground cg-board square {\n position: absolute;\n top: 0;\n left: 0;\n width: 12.5%;\n height: 12.5%;\n pointer-events: none;\n}\n.next-chessground .highlight cg-board square.last-move {\n will-change: transform;\n background-color: rgba(246, 246, 130, 0.5);\n}\n.next-chessground .highlight .correct cg-board square.last-move {\n background-color: rgba(155, 240, 0, 0.4);\n}\n.next-chessground .highlight .incorrect cg-board square.last-move {\n background-color: rgba(240, 0, 0, 0.4);\n}\n\n.next-chessground cg-board square.check {\n background: radial-gradient(\n ellipse at center,\n rgba(255, 0, 0, 1) 0%,\n rgba(231, 0, 0, 1) 25%,\n rgba(169, 0, 0, 0) 89%,\n rgba(158, 0, 0, 0) 100%\n );\n}\n.next-chessground cg-board square.current-premove {\n background-color: rgba(20, 30, 85, 0.5);\n}\n.next-chessground cg-board piece {\n position: absolute;\n top: 0;\n left: 0;\n width: 12.5%;\n height: 12.5%;\n background-size: cover;\n z-index: 2;\n will-change: transform;\n pointer-events: none;\n}\n.next-chessground cg-board piece.dragging {\n cursor: move;\n z-index: 9;\n}\n.next-chessground cg-board piece.anim {\n z-index: 8;\n}\n.next-chessground cg-board piece.fading {\n z-index: 1;\n opacity: 0.5;\n}\n.next-chessground cg-board piece.ghost {\n opacity: 0.3;\n}\n.next-chessground .cg-wrap svg {\n overflow: hidden;\n position: relative;\n top: 0px;\n left: 0px;\n width: 100%;\n height: 100%;\n pointer-events: none;\n z-index: 2;\n opacity: 0.6;\n}\n.next-chessground .cg-wrap svg image {\n opacity: 0.5;\n}\n\n.next-chessground .spare-pieces {\n width: 100%;\n display: flex;\n justify-content: center;\n}\n.next-chessground .spare-piece {\n top: 0;\n left: 0;\n padding-bottom: 100%;\n padding-left: 100%;\n position: absolute;\n background-size: contain;\n background-position: 0% -100%;\n cursor: pointer;\n}\n.next-chessground .edit-square {\n display: table;\n position: relative;\n width: 14.285%;\n padding-bottom: 13.285%;\n}\n";
|
|
6915
|
+
var css_248z$1 = ".next-chessground .chessground {\n grid-area: board;\n position: relative;\n display: block;\n height: 0;\n padding-bottom: 100%;\n padding-right: 100%;\n width: 100%;\n border-radius: 0.25rem;\n overflow: hidden;\n}\n\n.next-chessground .cg-wrap {\n display: table;\n position: absolute;\n width: 100%;\n height: 100%;\n}\n\n.next-chessground cg-helper {\n position: absolute;\n width: 12.5%;\n padding-bottom: 12.5%;\n display: table;\n bottom: 0;\n}\n\n.next-chessground cg-container {\n position: absolute;\n width: 800%;\n height: 800%;\n display: block;\n bottom: 0;\n}\n\n.next-chessground cg-board {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n line-height: 0;\n background-size: cover;\n cursor: pointer;\n}\n\n.next-chessground cg-board square {\n position: absolute;\n top: 0;\n left: 0;\n width: 12.5%;\n height: 12.5%;\n pointer-events: none;\n}\n.next-chessground .highlight cg-board square.last-move {\n will-change: transform;\n background-color: rgba(246, 246, 130, 0.5);\n}\n.next-chessground .highlight .correct cg-board square.last-move {\n background-color: rgba(155, 240, 0, 0.4);\n}\n.next-chessground .highlight .incorrect cg-board square.last-move {\n background-color: rgba(240, 0, 0, 0.4);\n}\n\n.next-chessground cg-board square.check {\n background: radial-gradient(\n ellipse at center,\n rgba(255, 0, 0, 1) 0%,\n rgba(231, 0, 0, 1) 25%,\n rgba(169, 0, 0, 0) 89%,\n rgba(158, 0, 0, 0) 100%\n );\n}\n.next-chessground cg-board square.current-premove {\n background-color: rgba(20, 30, 85, 0.5);\n}\n.next-chessground cg-board piece {\n position: absolute;\n top: 0;\n left: 0;\n width: 12.5%;\n height: 12.5%;\n background-size: cover;\n z-index: 2;\n will-change: transform;\n pointer-events: none;\n}\n.next-chessground cg-board piece.dragging {\n cursor: move;\n z-index: 9;\n}\n.next-chessground cg-board piece.anim {\n z-index: 8;\n}\n.next-chessground cg-board piece.fading {\n z-index: 1;\n opacity: 0.5;\n}\n.next-chessground cg-board piece.ghost {\n opacity: 0.3;\n}\n.next-chessground .cg-wrap svg {\n overflow: hidden;\n position: relative;\n top: 0px;\n left: 0px;\n width: 100%;\n height: 100%;\n pointer-events: none;\n z-index: 2;\n opacity: 0.6;\n}\n.next-chessground .cg-wrap svg image {\n opacity: 0.5;\n}\n\n.next-chessground .spare-pieces {\n width: 100%;\n display: flex;\n justify-content: center;\n}\n.next-chessground .spare-piece {\n top: 0;\n left: 0;\n padding-bottom: 100%;\n padding-left: 100%;\n position: absolute;\n background-size: contain;\n background-position: 0% -100%;\n cursor: pointer;\n}\n.next-chessground .edit-square {\n display: table;\n position: relative;\n width: 14.285%;\n padding-bottom: 13.285%;\n}\n.next-chessground .promote .edit-square {\n width: 20%;\n padding-bottom: 20%;\n}\n";
|
|
6670
6916
|
styleInject(css_248z$1);
|
|
6671
6917
|
|
|
6672
6918
|
var css_248z$2 = "coords {\n position: absolute;\n display: flex;\n pointer-events: none;\n user-select: none;\n color: #fff;\n font-weight: bold;\n font-size: 0.5rem;\n opacity: 0.8;\n}\n.coords-no coords {\n display: none;\n}\n@media (min-width: 640px) {\n coords {\n font-size: 0.75rem;\n }\n}\ncoords.ranks {\n flex-flow: column-reverse;\n top: 0;\n right: 0;\n height: 100%;\n width: 0.8em;\n}\ncoords.ranks.black {\n flex-flow: column;\n}\ncoords.files {\n bottom: 0;\n left: 0;\n flex-flow: row;\n width: 100%;\n}\ncoords.files.black {\n flex-flow: row-reverse;\n}\ncoords.files coord {\n padding-left: 4px;\n}\ncoords coord {\n flex: 1 1 auto;\n}\n\n.orientation-white .files coord:nth-child(2n + 1),\n.orientation-white .ranks coord:nth-child(2n),\n.orientation-black .files coord:nth-child(2n),\n.orientation-black .ranks coord:nth-child(2n + 1) {\n color: #fff;\n}\n.orientation-white .files coord:nth-child(2n),\n.orientation-white .ranks coord:nth-child(2n + 1),\n.orientation-black .files coord:nth-child(2n + 1),\n.orientation-black .ranks coord:nth-child(2n) {\n color: #779556;\n}\n";
|
|
6673
6919
|
styleInject(css_248z$2);
|
|
6674
6920
|
|
|
6675
|
-
var css_248z$3 = ".next-
|
|
6921
|
+
var css_248z$3 = ".next-chessground .next-cog {\n width: 1rem;\n height: 1rem;\n background-image: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA1MTIgNTEyIj48cGF0aCBmaWxsPSIjOUY5REIwIiBkPSJNNDg3LjQgMzE1LjdsLTQyLjYtMjQuNmM0LjMtMjMuMiA0LjMtNDcgMC03MC4ybDQyLjYtMjQuNmM0LjktMi44IDcuMS04LjYgNS41LTE0LTExLjEtMzUuNi0zMC02Ny44LTU0LjctOTQuNi0zLjgtNC4xLTEwLTUuMS0xNC44LTIuM0wzODAuOCAxMTBjLTE3LjktMTUuNC0zOC41LTI3LjMtNjAuOC0zNS4xVjI1LjhjMC01LjYtMy45LTEwLjUtOS40LTExLjctMzYuNy04LjItNzQuMy03LjgtMTA5LjIgMC01LjUgMS4yLTkuNCA2LjEtOS40IDExLjdWNzVjLTIyLjIgNy45LTQyLjggMTkuOC02MC44IDM1LjFMODguNyA4NS41Yy00LjktMi44LTExLTEuOS0xNC44IDIuMy0yNC43IDI2LjctNDMuNiA1OC45LTU0LjcgOTQuNi0xLjcgNS40LjYgMTEuMiA1LjUgMTRMNjcuMyAyMjFjLTQuMyAyMy4yLTQuMyA0NyAwIDcwLjJsLTQyLjYgMjQuNmMtNC45IDIuOC03LjEgOC42LTUuNSAxNCAxMS4xIDM1LjYgMzAgNjcuOCA1NC43IDk0LjYgMy44IDQuMSAxMCA1LjEgMTQuOCAyLjNsNDIuNi0yNC42YzE3LjkgMTUuNCAzOC41IDI3LjMgNjAuOCAzNS4xdjQ5LjJjMCA1LjYgMy45IDEwLjUgOS40IDExLjcgMzYuNyA4LjIgNzQuMyA3LjggMTA5LjIgMCA1LjUtMS4yIDkuNC02LjEgOS40LTExLjd2LTQ5LjJjMjIuMi03LjkgNDIuOC0xOS44IDYwLjgtMzUuMWw0Mi42IDI0LjZjNC45IDIuOCAxMSAxLjkgMTQuOC0yLjMgMjQuNy0yNi43IDQzLjYtNTguOSA1NC43LTk0LjYgMS41LTUuNS0uNy0xMS4zLTUuNi0xNC4xek0yNTYgMzM2Yy00NC4xIDAtODAtMzUuOS04MC04MHMzNS45LTgwIDgwLTgwIDgwIDM1LjkgODAgODAtMzUuOSA4MC04MCA4MHoiLz48L3N2Zz4=');\n}\n.next-chessground .next-sync {\n width: 1rem;\n height: 1rem;\n background-image: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA1MTIgNTEyIj48cGF0aCBmaWxsPSIjOUY5REIwIiBkPSJNMzcwLjcyIDEzMy4yOEMzMzkuNDU4IDEwNC4wMDggMjk4Ljg4OCA4Ny45NjIgMjU1Ljg0OCA4OGMtNzcuNDU4LjA2OC0xNDQuMzI4IDUzLjE3OC0xNjIuNzkxIDEyNi44NS0xLjM0NCA1LjM2My02LjEyMiA5LjE1LTExLjY1MSA5LjE1SDI0LjEwM2MtNy40OTggMC0xMy4xOTQtNi44MDctMTEuODA3LTE0LjE3NkMzMy45MzMgOTQuOTI0IDEzNC44MTMgOCAyNTYgOGM2Ni40NDggMCAxMjYuNzkxIDI2LjEzNiAxNzEuMzE1IDY4LjY4NUw0NjMuMDMgNDAuOTdDNDc4LjE0OSAyNS44NTEgNTA0IDM2LjU1OSA1MDQgNTcuOTQxVjE5MmMwIDEzLjI1NS0xMC43NDUgMjQtMjQgMjRIMzQ1Ljk0MWMtMjEuMzgyIDAtMzIuMDktMjUuODUxLTE2Ljk3MS00MC45NzFsNDEuNzUtNDEuNzQ5ek0zMiAyOTZoMTM0LjA1OWMyMS4zODIgMCAzMi4wOSAyNS44NTEgMTYuOTcxIDQwLjk3MWwtNDEuNzUgNDEuNzVjMzEuMjYyIDI5LjI3MyA3MS44MzUgNDUuMzE5IDExNC44NzYgNDUuMjggNzcuNDE4LS4wNyAxNDQuMzE1LTUzLjE0NCAxNjIuNzg3LTEyNi44NDkgMS4zNDQtNS4zNjMgNi4xMjItOS4xNSAxMS42NTEtOS4xNWg1Ny4zMDRjNy40OTggMCAxMy4xOTQgNi44MDcgMTEuODA3IDE0LjE3NkM0NzguMDY3IDQxNy4wNzYgMzc3LjE4NyA1MDQgMjU2IDUwNGMtNjYuNDQ4IDAtMTI2Ljc5MS0yNi4xMzYtMTcxLjMxNS02OC42ODVMNDguOTcgNDcxLjAzQzMzLjg1MSA0ODYuMTQ5IDggNDc1LjQ0MSA4IDQ1NC4wNTlWMzIwYzAtMTMuMjU1IDEwLjc0NS0yNCAyNC0yNHoiLz48L3N2Zz4=');\n}\n.next-chessground .next-trash {\n width: 1rem;\n height: 1rem;\n background-image: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9Ii05NiAtOTYgNjQwIDY0MCI+PHBhdGggZD0iTTI2OCA0MTZoMjRhMTIgMTIgMCAwIDAgMTItMTJWMTg4YTEyIDEyIDAgMCAwLTEyLTEyaC0yNGExMiAxMiAwIDAgMC0xMiAxMnYyMTZhMTIgMTIgMCAwIDAgMTIgMTJ6TTQzMiA4MGgtODIuNDFsLTM0LTU2LjdBNDggNDggMCAwIDAgMjc0LjQxIDBIMTczLjU5YTQ4IDQ4IDAgMCAwLTQxLjE2IDIzLjNMOTguNDEgODBIMTZBMTYgMTYgMCAwIDAgMCA5NnYxNmExNiAxNiAwIDAgMCAxNiAxNmgxNnYzMzZhNDggNDggMCAwIDAgNDggNDhoMjg4YTQ4IDQ4IDAgMCAwIDQ4LTQ4VjEyOGgxNmExNiAxNiAwIDAgMCAxNi0xNlY5NmExNiAxNiAwIDAgMC0xNi0xNnpNMTcxLjg0IDUwLjkxQTYgNiAwIDAgMSAxNzcgNDhoOTRhNiA2IDAgMCAxIDUuMTUgMi45MUwyOTMuNjEgODBIMTU0LjM5ek0zNjggNDY0SDgwVjEyOGgyODh6bS0yMTItNDhoMjRhMTIgMTIgMCAwIDAgMTItMTJWMTg4YTEyIDEyIDAgMCAwLTEyLTEyaC0yNGExMiAxMiAwIDAgMC0xMiAxMnYyMTZhMTIgMTIgMCAwIDAgMTIgMTJ6Ii8+PC9zdmc+');\n}\n";
|
|
6676
6922
|
styleInject(css_248z$3);
|
|
6677
6923
|
|
|
6678
6924
|
var css_248z$4 = "*,\n::after,\n::before {\n box-sizing: border-box;\n border-width: 0;\n border-style: solid;\n}\n\n.next-chessground {\n display: flex;\n flex-direction: column;\n position: relative;\n width: 100%;\n}\n.next-chessground .checkbox {\n display: flex;\n margin: 0;\n align-items: center;\n padding-left: 0.25rem;\n width: 2.75rem;\n height: 1.75rem;\n outline: none;\n appearance: none;\n transition: 0.2s ease-in-out;\n padding-left: 0.25rem;\n padding-right: 0.25rem;\n cursor: pointer;\n}\n.next-chessground .checkbox:before {\n background-color: rgba(156, 163, 175);\n width: 1rem;\n height: 1rem;\n border-radius: 999px;\n content: '';\n transition: 0.2s ease-in-out;\n}\n.next-chessground .checkbox:checked:before {\n background-color: rgba(4, 120, 87);\n transform: translate(1rem, 0);\n}\n.next-chessground .next-button {\n background-color: transparent;\n background-image: none;\n cursor: pointer;\n display: flex;\n outline: none;\n\n padding: 0;\n line-height: inherit;\n color: inherit;\n font-size: 100%;\n}\n.next-chessground .next-button:focus {\n outline: none;\n}\n";
|
|
@@ -6684,8 +6930,8 @@ styleInject(css_248z$5);
|
|
|
6684
6930
|
var css_248z$6 = "/**\n * Cburnett\n */\n.cburnett piece.pawn.white {\n background-image: url('https://lichess1.org/assets/_MKI2V3/piece/cburnett/wP.svg');\n}\n.cburnett piece.bishop.white {\n background-image: url('https://lichess1.org/assets/_MKI2V3/piece/cburnett/wB.svg');\n}\n.cburnett piece.knight.white {\n background-image: url('https://lichess1.org/assets/_MKI2V3/piece/cburnett/wN.svg');\n}\n.cburnett piece.rook.white {\n background-image: url('https://lichess1.org/assets/_MKI2V3/piece/cburnett/wR.svg');\n}\n.cburnett piece.queen.white {\n background-image: url('https://lichess1.org/assets/_MKI2V3/piece/cburnett/wQ.svg');\n}\n.cburnett piece.king.white {\n background-image: url('https://lichess1.org/assets/_MKI2V3/piece/cburnett/wK.svg');\n}\n.cburnett piece.pawn.black {\n background-image: url('https://lichess1.org/assets/_MKI2V3/piece/cburnett/bP.svg');\n}\n.cburnett piece.bishop.black {\n background-image: url('https://lichess1.org/assets/_MKI2V3/piece/cburnett/bB.svg');\n}\n.cburnett piece.knight.black {\n background-image: url('https://lichess1.org/assets/_MKI2V3/piece/cburnett/bN.svg');\n}\n.cburnett piece.rook.black {\n background-image: url('https://lichess1.org/assets/_MKI2V3/piece/cburnett/bR.svg');\n}\n.cburnett piece.queen.black {\n background-image: url('https://lichess1.org/assets/_MKI2V3/piece/cburnett/bQ.svg');\n}\n.cburnett piece.king.black {\n background-image: url('https://lichess1.org/assets/_MKI2V3/piece/cburnett/bK.svg');\n}\n\n/**\n * Classic\n */\n.classic piece.pawn.white {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/classic/150/wp.png');\n}\n.classic piece.bishop.white {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/classic/150/wb.png');\n}\n.classic piece.knight.white {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/classic/150/wn.png');\n}\n.classic piece.rook.white {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/classic/150/wr.png');\n}\n.classic piece.queen.white {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/classic/150/wq.png');\n}\n.classic piece.king.white {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/classic/150/wk.png');\n}\n.classic piece.pawn.black {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/classic/150/bp.png');\n}\n.classic piece.bishop.black {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/classic/150/bb.png');\n}\n.classic piece.knight.black {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/classic/150/bn.png');\n}\n.classic piece.rook.black {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/classic/150/br.png');\n}\n.classic piece.queen.black {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/classic/150/bq.png');\n}\n.classic piece.king.black {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/classic/150/bk.png');\n}\n\n/**\n * Neo\n */\n.neo piece.pawn.white {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/neo/150/wp.png');\n}\n.neo piece.bishop.white {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/neo/150/wb.png');\n}\n.neo piece.knight.white {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/neo/150/wn.png');\n}\n.neo piece.rook.white {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/neo/150/wr.png');\n}\n.neo piece.queen.white {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/neo/150/wq.png');\n}\n.neo piece.king.white {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/neo/150/wk.png');\n}\n.neo piece.pawn.black {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/neo/150/bp.png');\n}\n.neo piece.bishop.black {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/neo/150/bb.png');\n}\n.neo piece.knight.black {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/neo/150/bn.png');\n}\n.neo piece.rook.black {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/neo/150/br.png');\n}\n.neo piece.queen.black {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/neo/150/bq.png');\n}\n.neo piece.king.black {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/neo/150/bk.png');\n}\n\n/**\n * Alpha\n */\n.alpha piece.pawn.white {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/alpha/150/wp.png');\n}\n.alpha piece.bishop.white {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/alpha/150/wb.png');\n}\n.alpha piece.knight.white {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/alpha/150/wn.png');\n}\n.alpha piece.rook.white {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/alpha/150/wr.png');\n}\n.alpha piece.queen.white {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/alpha/150/wq.png');\n}\n.alpha piece.king.white {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/alpha/150/wk.png');\n}\n.alpha piece.pawn.black {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/alpha/150/bp.png');\n}\n.alpha piece.bishop.black {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/alpha/150/bb.png');\n}\n.alpha piece.knight.black {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/alpha/150/bn.png');\n}\n.alpha piece.rook.black {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/alpha/150/br.png');\n}\n.alpha piece.queen.black {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/alpha/150/bq.png');\n}\n.alpha piece.king.black {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/alpha/150/bk.png');\n}\n\n/**\n * Bases\n */\n.bases piece.pawn.white {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/bases/150/wp.png');\n}\n.bases piece.bishop.white {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/bases/150/wb.png');\n}\n.bases piece.knight.white {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/bases/150/wn.png');\n}\n.bases piece.rook.white {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/bases/150/wr.png');\n}\n.bases piece.queen.white {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/bases/150/wq.png');\n}\n.bases piece.king.white {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/bases/150/wk.png');\n}\n.bases piece.pawn.black {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/bases/150/bp.png');\n}\n.bases piece.bishop.black {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/bases/150/bb.png');\n}\n.bases piece.knight.black {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/bases/150/bn.png');\n}\n.bases piece.rook.black {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/bases/150/br.png');\n}\n.bases piece.queen.black {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/bases/150/bq.png');\n}\n.bases piece.king.black {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/bases/150/bk.png');\n}\n";
|
|
6685
6931
|
styleInject(css_248z$6);
|
|
6686
6932
|
|
|
6687
|
-
var css_248z$7 = ".flex {\n display: flex;\n}\n.flex-col {\n flex-direction: column;\n}\n.flex-row-reverse {\n flex-direction: row-reverse;\n}\n.grid {\n display: grid;\n}\n.grid-cols-2 {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n}\n.gap-2 {\n gap: 0.5rem;\n}\n.gap-3 {\n gap: 0.75rem;\n}\n.w-full {\n width: 100%;\n}\n.items-center {\n align-items: center;\n}\n.justify-center {\n justify-content: center;\n}\n.py-1\\.5 {\n padding-top: 0.375rem;\n padding-bottom: 0.375rem;\n}\n.px-2 {\n padding-left: 0.25rem;\n padding-right: 0.25rem;\n}\n.cursor-pointer {\n cursor: pointer;\n}\n.cursor-resize {\n cursor: nesw-resize;\n}\n.outline-none,\n.outline-none:focus {\n outline: none;\n}\n.text-sm {\n font-size: 0.875rem;\n line-height: 1.25rem;\n}\n.text-gray-400 {\n color: rgba(156, 163, 175);\n}\n.text-gray-800 {\n color: rgba(31, 41, 55);\n}\n.bg-white {\n background-color: #fff;\n}\n.border {\n border-width: 1px;\n border-style: solid;\n}\n.border-gray-300 {\n border-color: rgba(209, 213, 219);\n}\n.rounded {\n border-radius: 0.25rem;\n}\n";
|
|
6933
|
+
var css_248z$7 = ".flex {\n display: flex;\n}\n.flex-col {\n flex-direction: column;\n}\n.flex-row-reverse {\n flex-direction: row-reverse;\n}\n.grid {\n display: grid;\n}\n.grid-cols-2 {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n}\n.gap-2 {\n gap: 0.5rem;\n}\n.gap-3 {\n gap: 0.75rem;\n}\n.w-full {\n width: 100%;\n}\n.items-center {\n align-items: center;\n}\n.justify-center {\n justify-content: center;\n}\n.py-1\\.5 {\n padding-top: 0.375rem;\n padding-bottom: 0.375rem;\n}\n.px-2 {\n padding-left: 0.25rem;\n padding-right: 0.25rem;\n}\n.cursor-pointer {\n cursor: pointer;\n}\n.cursor-resize {\n cursor: nesw-resize;\n}\n.outline-none,\n.outline-none:focus {\n outline: none;\n}\n.text-sm {\n font-size: 0.875rem;\n line-height: 1.25rem;\n}\n.text-gray-400 {\n color: rgba(156, 163, 175);\n}\n.text-gray-800 {\n color: rgba(31, 41, 55);\n}\n.bg-white {\n background-color: #fff;\n}\n.bg-orange-300 {\n background-color: #fbd38d;\n}\n.border {\n border-width: 1px;\n border-style: solid;\n}\n.border-gray-300 {\n border-color: rgba(209, 213, 219);\n}\n.rounded {\n border-radius: 0.25rem;\n}\n";
|
|
6688
6934
|
styleInject(css_248z$7);
|
|
6689
6935
|
|
|
6690
6936
|
export default NextChessground$1;
|
|
6691
|
-
export { NextChessground$1 as NextChessground, fen, useChess, useChessground };
|
|
6937
|
+
export { NextChessground$1 as NextChessground, NextEditor$1 as NextEditor, fen, useChess, useChessground };
|
package/dist/index.js
CHANGED
|
@@ -484,6 +484,18 @@ const themable = () => {
|
|
|
484
484
|
return theme;
|
|
485
485
|
};
|
|
486
486
|
|
|
487
|
+
const Theme = ({
|
|
488
|
+
children
|
|
489
|
+
}) => {
|
|
490
|
+
const [theme, setTheme] = React.useState(themable());
|
|
491
|
+
return /*#__PURE__*/React__default['default'].createElement(ThemeContext.Provider, {
|
|
492
|
+
value: {
|
|
493
|
+
theme,
|
|
494
|
+
setTheme
|
|
495
|
+
}
|
|
496
|
+
}, children);
|
|
497
|
+
};
|
|
498
|
+
|
|
487
499
|
function mergeClassNames() {
|
|
488
500
|
return Array.prototype.slice.call(arguments).reduce(function (classList, arg) {
|
|
489
501
|
return classList.concat(arg);
|
|
@@ -5953,10 +5965,13 @@ const initial$1 = fen.initial;
|
|
|
5953
5965
|
|
|
5954
5966
|
const useChess = props => {
|
|
5955
5967
|
const [fen, setFen] = React.useState(props.fen || initial$1);
|
|
5956
|
-
const [chess$1] = React.useState(new chess.Chess(fen)); // reinitialize when FEN changes from props
|
|
5968
|
+
const [chess$1, setChess] = React.useState(new chess.Chess(fen)); // reinitialize when FEN changes from props
|
|
5957
5969
|
|
|
5958
5970
|
React.useEffect(() => {
|
|
5959
|
-
|
|
5971
|
+
if (props.fen) {
|
|
5972
|
+
setFen(props.fen);
|
|
5973
|
+
setChess(new chess.Chess(props.fen));
|
|
5974
|
+
}
|
|
5960
5975
|
}, [props.fen]);
|
|
5961
5976
|
const [lastMove, setLastMove] = React.useState([]);
|
|
5962
5977
|
const promotion = props.lastMove && props.lastMove.promotion;
|
|
@@ -6238,8 +6253,11 @@ var Modal = /*@__PURE__*/getDefaultExportFromCjs(reactPureModal_min);
|
|
|
6238
6253
|
const SparePiece = ({
|
|
6239
6254
|
role,
|
|
6240
6255
|
color,
|
|
6256
|
+
highlighted,
|
|
6241
6257
|
selectPiece
|
|
6242
6258
|
}) => {
|
|
6259
|
+
const bin = role === 'bin';
|
|
6260
|
+
|
|
6243
6261
|
const handleClick = () => {
|
|
6244
6262
|
if (typeof selectPiece === 'function') {
|
|
6245
6263
|
selectPiece({
|
|
@@ -6250,9 +6268,9 @@ const SparePiece = ({
|
|
|
6250
6268
|
};
|
|
6251
6269
|
|
|
6252
6270
|
return /*#__PURE__*/React__default['default'].createElement("div", {
|
|
6253
|
-
className:
|
|
6271
|
+
className: mergeClassNames('edit-square border border-gray-300 rounded', highlighted && 'bg-orange-300')
|
|
6254
6272
|
}, /*#__PURE__*/React__default['default'].createElement("piece", {
|
|
6255
|
-
className:
|
|
6273
|
+
className: mergeClassNames('spare-piece', role, color, bin && 'next-trash'),
|
|
6256
6274
|
onClick: handleClick
|
|
6257
6275
|
}));
|
|
6258
6276
|
};
|
|
@@ -6269,11 +6287,11 @@ const Promote = ({
|
|
|
6269
6287
|
};
|
|
6270
6288
|
|
|
6271
6289
|
return /*#__PURE__*/React__default['default'].createElement(Modal, {
|
|
6272
|
-
|
|
6290
|
+
closeButton: "",
|
|
6273
6291
|
isOpen: isOpen,
|
|
6274
6292
|
onClose: hide
|
|
6275
6293
|
}, /*#__PURE__*/React__default['default'].createElement("div", {
|
|
6276
|
-
className: "flex gap-2 justify-center"
|
|
6294
|
+
className: "promote flex gap-2 py-1.5 justify-center"
|
|
6277
6295
|
}, /*#__PURE__*/React__default['default'].createElement(SparePiece, {
|
|
6278
6296
|
color: color,
|
|
6279
6297
|
role: "queen",
|
|
@@ -6623,14 +6641,8 @@ const Advanced = ({
|
|
|
6623
6641
|
};
|
|
6624
6642
|
|
|
6625
6643
|
const NextChessground = (props, ref) => {
|
|
6626
|
-
const [theme, setTheme] = React.useState(themable());
|
|
6627
6644
|
const [orientation, flip] = useOrientation(props);
|
|
6628
|
-
return /*#__PURE__*/React__default['default'].createElement(
|
|
6629
|
-
value: {
|
|
6630
|
-
theme,
|
|
6631
|
-
setTheme
|
|
6632
|
-
}
|
|
6633
|
-
}, /*#__PURE__*/React__default['default'].createElement("div", {
|
|
6645
|
+
return /*#__PURE__*/React__default['default'].createElement(Theme, null, /*#__PURE__*/React__default['default'].createElement("div", {
|
|
6634
6646
|
className: "next-chessground"
|
|
6635
6647
|
}, /*#__PURE__*/React__default['default'].createElement(Chessboard$1, _extends({}, props, {
|
|
6636
6648
|
ref: ref,
|
|
@@ -6643,6 +6655,240 @@ const NextChessground = (props, ref) => {
|
|
|
6643
6655
|
|
|
6644
6656
|
var NextChessground$1 = /*#__PURE__*/React.forwardRef(NextChessground);
|
|
6645
6657
|
|
|
6658
|
+
const EditorPieces = props => {
|
|
6659
|
+
const {
|
|
6660
|
+
theme
|
|
6661
|
+
} = useChessground();
|
|
6662
|
+
const roles = ['bin', 'pawn', 'knight', 'bishop', 'rook', 'queen', 'king'];
|
|
6663
|
+
|
|
6664
|
+
const showPiece = (role, props) => {
|
|
6665
|
+
const {
|
|
6666
|
+
color = 'white',
|
|
6667
|
+
selected = {
|
|
6668
|
+
role: null,
|
|
6669
|
+
color: null
|
|
6670
|
+
}
|
|
6671
|
+
} = props;
|
|
6672
|
+
const highlighted = role === selected.role && color === selected.color;
|
|
6673
|
+
return /*#__PURE__*/React__default['default'].createElement(SparePiece, _extends({
|
|
6674
|
+
key: `${role}-${color}`,
|
|
6675
|
+
highlighted: highlighted,
|
|
6676
|
+
role: role,
|
|
6677
|
+
color: color
|
|
6678
|
+
}, props));
|
|
6679
|
+
};
|
|
6680
|
+
|
|
6681
|
+
return /*#__PURE__*/React__default['default'].createElement("div", {
|
|
6682
|
+
className: mergeClassNames('spare-pieces flex gap-2', theme.pieces)
|
|
6683
|
+
}, roles.map(role => showPiece(role, props)));
|
|
6684
|
+
};
|
|
6685
|
+
|
|
6686
|
+
/**
|
|
6687
|
+
* Pieces diff from a Chessground board
|
|
6688
|
+
*/
|
|
6689
|
+
const piecesDiff = key => {
|
|
6690
|
+
const map = new Map();
|
|
6691
|
+
map.set(key, null);
|
|
6692
|
+
return map;
|
|
6693
|
+
};
|
|
6694
|
+
/**
|
|
6695
|
+
* Drop piece to a Chessground board
|
|
6696
|
+
*/
|
|
6697
|
+
|
|
6698
|
+
|
|
6699
|
+
const dropPiece = (cg, selected, key) => {
|
|
6700
|
+
if (!cg) {
|
|
6701
|
+
throw new Error('Chessground is not defined');
|
|
6702
|
+
}
|
|
6703
|
+
|
|
6704
|
+
if (!selected || !selected.role || !selected.color) {
|
|
6705
|
+
return cg.getFen();
|
|
6706
|
+
}
|
|
6707
|
+
|
|
6708
|
+
if (selected.role === 'bin') {
|
|
6709
|
+
cg.setPieces(piecesDiff(key));
|
|
6710
|
+
return cg.getFen();
|
|
6711
|
+
}
|
|
6712
|
+
|
|
6713
|
+
const square = cg.state.pieces.get(key);
|
|
6714
|
+
|
|
6715
|
+
if (!square) {
|
|
6716
|
+
cg.newPiece(selected, key);
|
|
6717
|
+
return cg.getFen();
|
|
6718
|
+
}
|
|
6719
|
+
|
|
6720
|
+
if (square.role === selected.role && square.color === selected.color) {
|
|
6721
|
+
cg.setPieces(piecesDiff(key));
|
|
6722
|
+
return cg.getFen();
|
|
6723
|
+
}
|
|
6724
|
+
|
|
6725
|
+
cg.setPieces(piecesDiff(key));
|
|
6726
|
+
cg.newPiece(selected, key);
|
|
6727
|
+
return cg.getFen();
|
|
6728
|
+
};
|
|
6729
|
+
|
|
6730
|
+
const getCastles = (initial, option) => {
|
|
6731
|
+
if (!option) {
|
|
6732
|
+
return initial;
|
|
6733
|
+
}
|
|
6734
|
+
|
|
6735
|
+
const all = ['K', 'Q', 'k', 'q'];
|
|
6736
|
+
const array = all.map(letter => {
|
|
6737
|
+
if (letter !== option) {
|
|
6738
|
+
if (initial.includes(letter)) {
|
|
6739
|
+
return letter;
|
|
6740
|
+
}
|
|
6741
|
+
|
|
6742
|
+
return '';
|
|
6743
|
+
}
|
|
6744
|
+
|
|
6745
|
+
if (initial.includes(option)) {
|
|
6746
|
+
return '';
|
|
6747
|
+
}
|
|
6748
|
+
|
|
6749
|
+
return option;
|
|
6750
|
+
});
|
|
6751
|
+
const string = array.join('');
|
|
6752
|
+
return string.length ? string : '-';
|
|
6753
|
+
};
|
|
6754
|
+
|
|
6755
|
+
const FenOptions = ({
|
|
6756
|
+
onChange
|
|
6757
|
+
}) => {
|
|
6758
|
+
const [side, setSide] = React.useState('w');
|
|
6759
|
+
const [castles, setCastles] = React.useState('-');
|
|
6760
|
+
React.useEffect(() => {
|
|
6761
|
+
if (typeof onChange === 'function') {
|
|
6762
|
+
onChange([side, castles].join(' '));
|
|
6763
|
+
}
|
|
6764
|
+
}, [side, castles]);
|
|
6765
|
+
|
|
6766
|
+
const changeSide = e => {
|
|
6767
|
+
const {
|
|
6768
|
+
value
|
|
6769
|
+
} = e.target;
|
|
6770
|
+
setSide(value);
|
|
6771
|
+
};
|
|
6772
|
+
|
|
6773
|
+
const changeCastle = e => {
|
|
6774
|
+
const {
|
|
6775
|
+
value
|
|
6776
|
+
} = e.target;
|
|
6777
|
+
setCastles(getCastles(castles, value));
|
|
6778
|
+
};
|
|
6779
|
+
|
|
6780
|
+
return /*#__PURE__*/React__default['default'].createElement("div", {
|
|
6781
|
+
className: "flex flex-col gap-2 w-full"
|
|
6782
|
+
}, /*#__PURE__*/React__default['default'].createElement("div", {
|
|
6783
|
+
className: "flex gap-2 w-full"
|
|
6784
|
+
}, /*#__PURE__*/React__default['default'].createElement("div", null, /*#__PURE__*/React__default['default'].createElement("input", {
|
|
6785
|
+
defaultChecked: true,
|
|
6786
|
+
className: "mx-1",
|
|
6787
|
+
type: "radio",
|
|
6788
|
+
id: "white-radio",
|
|
6789
|
+
name: "side-to-move",
|
|
6790
|
+
value: "w",
|
|
6791
|
+
onChange: changeSide
|
|
6792
|
+
}), /*#__PURE__*/React__default['default'].createElement("label", {
|
|
6793
|
+
htmlFor: "white-radio"
|
|
6794
|
+
}, "White to move")), /*#__PURE__*/React__default['default'].createElement("div", null, /*#__PURE__*/React__default['default'].createElement("input", {
|
|
6795
|
+
className: "mx-1",
|
|
6796
|
+
type: "radio",
|
|
6797
|
+
id: "black-radio",
|
|
6798
|
+
name: "side-to-move",
|
|
6799
|
+
value: "b",
|
|
6800
|
+
onChange: changeSide
|
|
6801
|
+
}), /*#__PURE__*/React__default['default'].createElement("label", {
|
|
6802
|
+
htmlFor: "black-radio"
|
|
6803
|
+
}, "Black to move"))), /*#__PURE__*/React__default['default'].createElement("div", {
|
|
6804
|
+
className: "flex flex-col gap-2 w-full"
|
|
6805
|
+
}, /*#__PURE__*/React__default['default'].createElement("div", {
|
|
6806
|
+
className: "flex w-full gap-4"
|
|
6807
|
+
}, /*#__PURE__*/React__default['default'].createElement("div", null, /*#__PURE__*/React__default['default'].createElement("span", null, "White can")), /*#__PURE__*/React__default['default'].createElement("div", null, /*#__PURE__*/React__default['default'].createElement("input", {
|
|
6808
|
+
className: "mx-1",
|
|
6809
|
+
type: "checkbox",
|
|
6810
|
+
id: "white-short-castle",
|
|
6811
|
+
value: "K",
|
|
6812
|
+
onChange: changeCastle
|
|
6813
|
+
}), /*#__PURE__*/React__default['default'].createElement("label", {
|
|
6814
|
+
htmlFor: "white-short-castle"
|
|
6815
|
+
}, "O-O")), /*#__PURE__*/React__default['default'].createElement("div", null, /*#__PURE__*/React__default['default'].createElement("input", {
|
|
6816
|
+
className: "mx-1",
|
|
6817
|
+
type: "checkbox",
|
|
6818
|
+
id: "white-long-castle",
|
|
6819
|
+
value: "Q",
|
|
6820
|
+
onChange: changeCastle
|
|
6821
|
+
}), /*#__PURE__*/React__default['default'].createElement("label", {
|
|
6822
|
+
htmlFor: "white-long-castle"
|
|
6823
|
+
}, "O-O-O"))), /*#__PURE__*/React__default['default'].createElement("div", {
|
|
6824
|
+
className: "flex w-full gap-4"
|
|
6825
|
+
}, /*#__PURE__*/React__default['default'].createElement("div", null, /*#__PURE__*/React__default['default'].createElement("span", null, "Black can")), /*#__PURE__*/React__default['default'].createElement("div", null, /*#__PURE__*/React__default['default'].createElement("input", {
|
|
6826
|
+
className: "mx-1",
|
|
6827
|
+
type: "checkbox",
|
|
6828
|
+
id: "black-short-castle",
|
|
6829
|
+
value: "k",
|
|
6830
|
+
onChange: changeCastle
|
|
6831
|
+
}), /*#__PURE__*/React__default['default'].createElement("label", {
|
|
6832
|
+
htmlFor: "black-short-castle"
|
|
6833
|
+
}, "O-O")), /*#__PURE__*/React__default['default'].createElement("div", null, /*#__PURE__*/React__default['default'].createElement("input", {
|
|
6834
|
+
className: "mx-1",
|
|
6835
|
+
type: "checkbox",
|
|
6836
|
+
id: "black-long-castle",
|
|
6837
|
+
value: "q",
|
|
6838
|
+
onChange: changeCastle
|
|
6839
|
+
}), /*#__PURE__*/React__default['default'].createElement("label", {
|
|
6840
|
+
htmlFor: "black-long-castle"
|
|
6841
|
+
}, "O-O-O")))));
|
|
6842
|
+
};
|
|
6843
|
+
|
|
6844
|
+
const NextEditor = (props, ref) => {
|
|
6845
|
+
const [fen$1, setFen] = React.useState(props.fen || fen.empty);
|
|
6846
|
+
const [selected, setSelected] = React.useState({
|
|
6847
|
+
role: null,
|
|
6848
|
+
color: null
|
|
6849
|
+
});
|
|
6850
|
+
React.useEffect(() => {
|
|
6851
|
+
if (typeof props.onSelect === 'function') {
|
|
6852
|
+
props.onSelect(fen$1);
|
|
6853
|
+
}
|
|
6854
|
+
}, [fen$1]);
|
|
6855
|
+
|
|
6856
|
+
const onSelect = key => {
|
|
6857
|
+
const array = fen$1.split(' ');
|
|
6858
|
+
array.shift();
|
|
6859
|
+
const options = array.join(' ');
|
|
6860
|
+
const position = dropPiece(ref.current.board, selected, key);
|
|
6861
|
+
const withOptions = [position, options].join(' ');
|
|
6862
|
+
setFen(withOptions);
|
|
6863
|
+
};
|
|
6864
|
+
|
|
6865
|
+
const handleChange = options => {
|
|
6866
|
+
const position = fen$1.split(' ')[0];
|
|
6867
|
+
const withOptions = [position, options, '- 0 1'].join(' ');
|
|
6868
|
+
setFen(withOptions);
|
|
6869
|
+
};
|
|
6870
|
+
|
|
6871
|
+
return /*#__PURE__*/React__default['default'].createElement(Theme, null, /*#__PURE__*/React__default['default'].createElement("div", {
|
|
6872
|
+
className: "next-chessground gap-2"
|
|
6873
|
+
}, /*#__PURE__*/React__default['default'].createElement(EditorPieces, {
|
|
6874
|
+
selected: selected,
|
|
6875
|
+
selectPiece: setSelected,
|
|
6876
|
+
color: "black"
|
|
6877
|
+
}), /*#__PURE__*/React__default['default'].createElement(Chessboard$1, _extends({}, props, {
|
|
6878
|
+
ref: ref,
|
|
6879
|
+
onSelect: onSelect,
|
|
6880
|
+
fen: fen$1
|
|
6881
|
+
})), /*#__PURE__*/React__default['default'].createElement(EditorPieces, {
|
|
6882
|
+
selected: selected,
|
|
6883
|
+
selectPiece: setSelected,
|
|
6884
|
+
color: "white"
|
|
6885
|
+
}), /*#__PURE__*/React__default['default'].createElement(FenOptions, {
|
|
6886
|
+
onChange: handleChange
|
|
6887
|
+
})));
|
|
6888
|
+
};
|
|
6889
|
+
|
|
6890
|
+
var NextEditor$1 = /*#__PURE__*/React.forwardRef(NextEditor);
|
|
6891
|
+
|
|
6646
6892
|
function styleInject(css, ref) {
|
|
6647
6893
|
if (ref === void 0) ref = {};
|
|
6648
6894
|
var insertAt = ref.insertAt;
|
|
@@ -6675,13 +6921,13 @@ function styleInject(css, ref) {
|
|
|
6675
6921
|
var css_248z = ".brown .cg-wrap cg-board {\n background-image: url('data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiAgeG1sbnM6eD0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgIHZpZXdCb3g9IjAgMCA4IDgiICBzaGFwZS1yZW5kZXJpbmc9Imdlb21ldHJpY1ByZWNpc2lvbiI+PHJlY3Qgd2lkdGg9IjgiIGhlaWdodD0iOCIgZmlsbD0iI2I1ODg2MyIvPjxnIGlkPSJhIj4gIDxnIGlkPSJiIj4gICAgPGcgaWQ9ImMiPiAgICAgIDxnIGlkPSJkIj4gICAgICAgIDxyZWN0IHdpZHRoPSIxIiBoZWlnaHQ9IjEiIGZpbGw9IiNmMGQ5YjUiIGlkPSJlIi8+ICAgICAgICA8dXNlIHg9IjIiIGhyZWY9IiNlIiB4OmhyZWY9IiNlIi8+ICAgICAgPC9nPiAgICAgIDx1c2UgeD0iNCIgaHJlZj0iI2QiIHg6aHJlZj0iI2QiLz4gICAgPC9nPiAgICA8dXNlIHg9IjEiIHk9IjEiIGhyZWY9IiNjIiB4OmhyZWY9IiNjIi8+ICA8L2c+ICA8dXNlIHk9IjIiIGhyZWY9IiNiIiB4OmhyZWY9IiNiIi8+PC9nPjx1c2UgeT0iNCIgaHJlZj0iI2EiIHg6aHJlZj0iI2EiLz48L3N2Zz4=');\n}\n.green .cg-wrap cg-board {\n background-image: url('data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiAgeG1sbnM6eD0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgIHZpZXdCb3g9IjAgMCA4IDgiICBzaGFwZS1yZW5kZXJpbmc9Imdlb21ldHJpY1ByZWNpc2lvbiI+PHJlY3Qgd2lkdGg9IjgiIGhlaWdodD0iOCIgZmlsbD0iIzc3OTU1NiIvPjxnIGlkPSJhIj4gIDxnIGlkPSJiIj4gICAgPGcgaWQ9ImMiPiAgICAgIDxnIGlkPSJkIj4gICAgICAgIDxyZWN0IHdpZHRoPSIxIiBoZWlnaHQ9IjEiIGZpbGw9IiNFQkVDRDAiIGlkPSJlIi8+ICAgICAgICA8dXNlIHg9IjIiIGhyZWY9IiNlIiB4OmhyZWY9IiNlIi8+ICAgICAgPC9nPiAgICAgIDx1c2UgeD0iNCIgaHJlZj0iI2QiIHg6aHJlZj0iI2QiLz4gICAgPC9nPiAgICA8dXNlIHg9IjEiIHk9IjEiIGhyZWY9IiNjIiB4OmhyZWY9IiNjIi8+ICA8L2c+ICA8dXNlIHk9IjIiIGhyZWY9IiNiIiB4OmhyZWY9IiNiIi8+PC9nPjx1c2UgeT0iNCIgaHJlZj0iI2EiIHg6aHJlZj0iI2EiLz48L3N2Zz4=');\n}\n.ruby .cg-wrap cg-board {\n background-image: url('data:image/svg+xml;base64,CjxzdmcgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgIHhtbG5zOng9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiICB2aWV3Qm94PSIwIDAgOCA4IiAgc2hhcGUtcmVuZGVyaW5nPSJnZW9tZXRyaWNQcmVjaXNpb24iPjxyZWN0IHdpZHRoPSI4IiBoZWlnaHQ9IjgiIGZpbGw9IiM4QjI2MzUiLz48ZyBpZD0iYSI+ICA8ZyBpZD0iYiI+ICAgIDxnIGlkPSJjIj4gICAgICA8ZyBpZD0iZCI+ICAgICAgICA8cmVjdCB3aWR0aD0iMSIgaGVpZ2h0PSIxIiBmaWxsPSIjRDJENEM4IiBpZD0iZSIvPiAgICAgICAgPHVzZSB4PSIyIiBocmVmPSIjZSIgeDpocmVmPSIjZSIvPiAgICAgIDwvZz4gICAgICA8dXNlIHg9IjQiIGhyZWY9IiNkIiB4OmhyZWY9IiNkIi8+ICAgIDwvZz4gICAgPHVzZSB4PSIxIiB5PSIxIiBocmVmPSIjYyIgeDpocmVmPSIjYyIvPiAgPC9nPiAgPHVzZSB5PSIyIiBocmVmPSIjYiIgeDpocmVmPSIjYiIvPjwvZz48dXNlIHk9IjQiIGhyZWY9IiNhIiB4OmhyZWY9IiNhIi8+PC9zdmc+');\n}\n.purple .cg-wrap cg-board {\n background-image: url('data:image/png;base64,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');\n}\n.teal .cg-wrap cg-board {\n background-image: url('data:image/svg+xml;base64,CjxzdmcgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgIHhtbG5zOng9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiICB2aWV3Qm94PSIwIDAgOCA4IiAgc2hhcGUtcmVuZGVyaW5nPSJnZW9tZXRyaWNQcmVjaXNpb24iPjxyZWN0IHdpZHRoPSI4IiBoZWlnaHQ9IjgiIGZpbGw9IiMxYzcyYWQiLz48ZyBpZD0iYSI+ICA8ZyBpZD0iYiI+ICAgIDxnIGlkPSJjIj4gICAgICA8ZyBpZD0iZCI+ICAgICAgICA8cmVjdCB3aWR0aD0iMSIgaGVpZ2h0PSIxIiBmaWxsPSIjZTNlYmYzIiBpZD0iZSIvPiAgICAgICAgPHVzZSB4PSIyIiBocmVmPSIjZSIgeDpocmVmPSIjZSIvPiAgICAgIDwvZz4gICAgICA8dXNlIHg9IjQiIGhyZWY9IiNkIiB4OmhyZWY9IiNkIi8+ICAgIDwvZz4gICAgPHVzZSB4PSIxIiB5PSIxIiBocmVmPSIjYyIgeDpocmVmPSIjYyIvPiAgPC9nPiAgPHVzZSB5PSIyIiBocmVmPSIjYiIgeDpocmVmPSIjYiIvPjwvZz48dXNlIHk9IjQiIGhyZWY9IiNhIiB4OmhyZWY9IiNhIi8+PC9zdmc+');\n}\n";
|
|
6676
6922
|
styleInject(css_248z);
|
|
6677
6923
|
|
|
6678
|
-
var css_248z$1 = ".next-chessground .chessground {\n grid-area: board;\n position: relative;\n display: block;\n height: 0;\n padding-bottom: 100%;\n padding-right: 100%;\n width: 100%;\n border-radius: 0.25rem;\n overflow: hidden;\n}\n\n.next-chessground .cg-wrap {\n display: table;\n position: absolute;\n width: 100%;\n height: 100%;\n}\n\n.next-chessground cg-helper {\n position: absolute;\n width: 12.5%;\n padding-bottom: 12.5%;\n display: table;\n bottom: 0;\n}\n\n.next-chessground cg-container {\n position: absolute;\n width: 800%;\n height: 800%;\n display: block;\n bottom: 0;\n}\n\n.next-chessground cg-board {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n line-height: 0;\n background-size: cover;\n cursor: pointer;\n}\n\n.next-chessground cg-board square {\n position: absolute;\n top: 0;\n left: 0;\n width: 12.5%;\n height: 12.5%;\n pointer-events: none;\n}\n.next-chessground .highlight cg-board square.last-move {\n will-change: transform;\n background-color: rgba(246, 246, 130, 0.5);\n}\n.next-chessground .highlight .correct cg-board square.last-move {\n background-color: rgba(155, 240, 0, 0.4);\n}\n.next-chessground .highlight .incorrect cg-board square.last-move {\n background-color: rgba(240, 0, 0, 0.4);\n}\n\n.next-chessground cg-board square.check {\n background: radial-gradient(\n ellipse at center,\n rgba(255, 0, 0, 1) 0%,\n rgba(231, 0, 0, 1) 25%,\n rgba(169, 0, 0, 0) 89%,\n rgba(158, 0, 0, 0) 100%\n );\n}\n.next-chessground cg-board square.current-premove {\n background-color: rgba(20, 30, 85, 0.5);\n}\n.next-chessground cg-board piece {\n position: absolute;\n top: 0;\n left: 0;\n width: 12.5%;\n height: 12.5%;\n background-size: cover;\n z-index: 2;\n will-change: transform;\n pointer-events: none;\n}\n.next-chessground cg-board piece.dragging {\n cursor: move;\n z-index: 9;\n}\n.next-chessground cg-board piece.anim {\n z-index: 8;\n}\n.next-chessground cg-board piece.fading {\n z-index: 1;\n opacity: 0.5;\n}\n.next-chessground cg-board piece.ghost {\n opacity: 0.3;\n}\n.next-chessground .cg-wrap svg {\n overflow: hidden;\n position: relative;\n top: 0px;\n left: 0px;\n width: 100%;\n height: 100%;\n pointer-events: none;\n z-index: 2;\n opacity: 0.6;\n}\n.next-chessground .cg-wrap svg image {\n opacity: 0.5;\n}\n\n.next-chessground .spare-pieces {\n width: 100%;\n display: flex;\n justify-content: center;\n}\n.next-chessground .spare-piece {\n top: 0;\n left: 0;\n padding-bottom: 100%;\n padding-left: 100%;\n position: absolute;\n background-size: contain;\n background-position: 0% -100%;\n cursor: pointer;\n}\n.next-chessground .edit-square {\n display: table;\n position: relative;\n width: 14.285%;\n padding-bottom: 13.285%;\n}\n";
|
|
6924
|
+
var css_248z$1 = ".next-chessground .chessground {\n grid-area: board;\n position: relative;\n display: block;\n height: 0;\n padding-bottom: 100%;\n padding-right: 100%;\n width: 100%;\n border-radius: 0.25rem;\n overflow: hidden;\n}\n\n.next-chessground .cg-wrap {\n display: table;\n position: absolute;\n width: 100%;\n height: 100%;\n}\n\n.next-chessground cg-helper {\n position: absolute;\n width: 12.5%;\n padding-bottom: 12.5%;\n display: table;\n bottom: 0;\n}\n\n.next-chessground cg-container {\n position: absolute;\n width: 800%;\n height: 800%;\n display: block;\n bottom: 0;\n}\n\n.next-chessground cg-board {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n line-height: 0;\n background-size: cover;\n cursor: pointer;\n}\n\n.next-chessground cg-board square {\n position: absolute;\n top: 0;\n left: 0;\n width: 12.5%;\n height: 12.5%;\n pointer-events: none;\n}\n.next-chessground .highlight cg-board square.last-move {\n will-change: transform;\n background-color: rgba(246, 246, 130, 0.5);\n}\n.next-chessground .highlight .correct cg-board square.last-move {\n background-color: rgba(155, 240, 0, 0.4);\n}\n.next-chessground .highlight .incorrect cg-board square.last-move {\n background-color: rgba(240, 0, 0, 0.4);\n}\n\n.next-chessground cg-board square.check {\n background: radial-gradient(\n ellipse at center,\n rgba(255, 0, 0, 1) 0%,\n rgba(231, 0, 0, 1) 25%,\n rgba(169, 0, 0, 0) 89%,\n rgba(158, 0, 0, 0) 100%\n );\n}\n.next-chessground cg-board square.current-premove {\n background-color: rgba(20, 30, 85, 0.5);\n}\n.next-chessground cg-board piece {\n position: absolute;\n top: 0;\n left: 0;\n width: 12.5%;\n height: 12.5%;\n background-size: cover;\n z-index: 2;\n will-change: transform;\n pointer-events: none;\n}\n.next-chessground cg-board piece.dragging {\n cursor: move;\n z-index: 9;\n}\n.next-chessground cg-board piece.anim {\n z-index: 8;\n}\n.next-chessground cg-board piece.fading {\n z-index: 1;\n opacity: 0.5;\n}\n.next-chessground cg-board piece.ghost {\n opacity: 0.3;\n}\n.next-chessground .cg-wrap svg {\n overflow: hidden;\n position: relative;\n top: 0px;\n left: 0px;\n width: 100%;\n height: 100%;\n pointer-events: none;\n z-index: 2;\n opacity: 0.6;\n}\n.next-chessground .cg-wrap svg image {\n opacity: 0.5;\n}\n\n.next-chessground .spare-pieces {\n width: 100%;\n display: flex;\n justify-content: center;\n}\n.next-chessground .spare-piece {\n top: 0;\n left: 0;\n padding-bottom: 100%;\n padding-left: 100%;\n position: absolute;\n background-size: contain;\n background-position: 0% -100%;\n cursor: pointer;\n}\n.next-chessground .edit-square {\n display: table;\n position: relative;\n width: 14.285%;\n padding-bottom: 13.285%;\n}\n.next-chessground .promote .edit-square {\n width: 20%;\n padding-bottom: 20%;\n}\n";
|
|
6679
6925
|
styleInject(css_248z$1);
|
|
6680
6926
|
|
|
6681
6927
|
var css_248z$2 = "coords {\n position: absolute;\n display: flex;\n pointer-events: none;\n user-select: none;\n color: #fff;\n font-weight: bold;\n font-size: 0.5rem;\n opacity: 0.8;\n}\n.coords-no coords {\n display: none;\n}\n@media (min-width: 640px) {\n coords {\n font-size: 0.75rem;\n }\n}\ncoords.ranks {\n flex-flow: column-reverse;\n top: 0;\n right: 0;\n height: 100%;\n width: 0.8em;\n}\ncoords.ranks.black {\n flex-flow: column;\n}\ncoords.files {\n bottom: 0;\n left: 0;\n flex-flow: row;\n width: 100%;\n}\ncoords.files.black {\n flex-flow: row-reverse;\n}\ncoords.files coord {\n padding-left: 4px;\n}\ncoords coord {\n flex: 1 1 auto;\n}\n\n.orientation-white .files coord:nth-child(2n + 1),\n.orientation-white .ranks coord:nth-child(2n),\n.orientation-black .files coord:nth-child(2n),\n.orientation-black .ranks coord:nth-child(2n + 1) {\n color: #fff;\n}\n.orientation-white .files coord:nth-child(2n),\n.orientation-white .ranks coord:nth-child(2n + 1),\n.orientation-black .files coord:nth-child(2n + 1),\n.orientation-black .ranks coord:nth-child(2n) {\n color: #779556;\n}\n";
|
|
6682
6928
|
styleInject(css_248z$2);
|
|
6683
6929
|
|
|
6684
|
-
var css_248z$3 = ".next-
|
|
6930
|
+
var css_248z$3 = ".next-chessground .next-cog {\n width: 1rem;\n height: 1rem;\n background-image: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA1MTIgNTEyIj48cGF0aCBmaWxsPSIjOUY5REIwIiBkPSJNNDg3LjQgMzE1LjdsLTQyLjYtMjQuNmM0LjMtMjMuMiA0LjMtNDcgMC03MC4ybDQyLjYtMjQuNmM0LjktMi44IDcuMS04LjYgNS41LTE0LTExLjEtMzUuNi0zMC02Ny44LTU0LjctOTQuNi0zLjgtNC4xLTEwLTUuMS0xNC44LTIuM0wzODAuOCAxMTBjLTE3LjktMTUuNC0zOC41LTI3LjMtNjAuOC0zNS4xVjI1LjhjMC01LjYtMy45LTEwLjUtOS40LTExLjctMzYuNy04LjItNzQuMy03LjgtMTA5LjIgMC01LjUgMS4yLTkuNCA2LjEtOS40IDExLjdWNzVjLTIyLjIgNy45LTQyLjggMTkuOC02MC44IDM1LjFMODguNyA4NS41Yy00LjktMi44LTExLTEuOS0xNC44IDIuMy0yNC43IDI2LjctNDMuNiA1OC45LTU0LjcgOTQuNi0xLjcgNS40LjYgMTEuMiA1LjUgMTRMNjcuMyAyMjFjLTQuMyAyMy4yLTQuMyA0NyAwIDcwLjJsLTQyLjYgMjQuNmMtNC45IDIuOC03LjEgOC42LTUuNSAxNCAxMS4xIDM1LjYgMzAgNjcuOCA1NC43IDk0LjYgMy44IDQuMSAxMCA1LjEgMTQuOCAyLjNsNDIuNi0yNC42YzE3LjkgMTUuNCAzOC41IDI3LjMgNjAuOCAzNS4xdjQ5LjJjMCA1LjYgMy45IDEwLjUgOS40IDExLjcgMzYuNyA4LjIgNzQuMyA3LjggMTA5LjIgMCA1LjUtMS4yIDkuNC02LjEgOS40LTExLjd2LTQ5LjJjMjIuMi03LjkgNDIuOC0xOS44IDYwLjgtMzUuMWw0Mi42IDI0LjZjNC45IDIuOCAxMSAxLjkgMTQuOC0yLjMgMjQuNy0yNi43IDQzLjYtNTguOSA1NC43LTk0LjYgMS41LTUuNS0uNy0xMS4zLTUuNi0xNC4xek0yNTYgMzM2Yy00NC4xIDAtODAtMzUuOS04MC04MHMzNS45LTgwIDgwLTgwIDgwIDM1LjkgODAgODAtMzUuOSA4MC04MCA4MHoiLz48L3N2Zz4=');\n}\n.next-chessground .next-sync {\n width: 1rem;\n height: 1rem;\n background-image: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA1MTIgNTEyIj48cGF0aCBmaWxsPSIjOUY5REIwIiBkPSJNMzcwLjcyIDEzMy4yOEMzMzkuNDU4IDEwNC4wMDggMjk4Ljg4OCA4Ny45NjIgMjU1Ljg0OCA4OGMtNzcuNDU4LjA2OC0xNDQuMzI4IDUzLjE3OC0xNjIuNzkxIDEyNi44NS0xLjM0NCA1LjM2My02LjEyMiA5LjE1LTExLjY1MSA5LjE1SDI0LjEwM2MtNy40OTggMC0xMy4xOTQtNi44MDctMTEuODA3LTE0LjE3NkMzMy45MzMgOTQuOTI0IDEzNC44MTMgOCAyNTYgOGM2Ni40NDggMCAxMjYuNzkxIDI2LjEzNiAxNzEuMzE1IDY4LjY4NUw0NjMuMDMgNDAuOTdDNDc4LjE0OSAyNS44NTEgNTA0IDM2LjU1OSA1MDQgNTcuOTQxVjE5MmMwIDEzLjI1NS0xMC43NDUgMjQtMjQgMjRIMzQ1Ljk0MWMtMjEuMzgyIDAtMzIuMDktMjUuODUxLTE2Ljk3MS00MC45NzFsNDEuNzUtNDEuNzQ5ek0zMiAyOTZoMTM0LjA1OWMyMS4zODIgMCAzMi4wOSAyNS44NTEgMTYuOTcxIDQwLjk3MWwtNDEuNzUgNDEuNzVjMzEuMjYyIDI5LjI3MyA3MS44MzUgNDUuMzE5IDExNC44NzYgNDUuMjggNzcuNDE4LS4wNyAxNDQuMzE1LTUzLjE0NCAxNjIuNzg3LTEyNi44NDkgMS4zNDQtNS4zNjMgNi4xMjItOS4xNSAxMS42NTEtOS4xNWg1Ny4zMDRjNy40OTggMCAxMy4xOTQgNi44MDcgMTEuODA3IDE0LjE3NkM0NzguMDY3IDQxNy4wNzYgMzc3LjE4NyA1MDQgMjU2IDUwNGMtNjYuNDQ4IDAtMTI2Ljc5MS0yNi4xMzYtMTcxLjMxNS02OC42ODVMNDguOTcgNDcxLjAzQzMzLjg1MSA0ODYuMTQ5IDggNDc1LjQ0MSA4IDQ1NC4wNTlWMzIwYzAtMTMuMjU1IDEwLjc0NS0yNCAyNC0yNHoiLz48L3N2Zz4=');\n}\n.next-chessground .next-trash {\n width: 1rem;\n height: 1rem;\n background-image: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9Ii05NiAtOTYgNjQwIDY0MCI+PHBhdGggZD0iTTI2OCA0MTZoMjRhMTIgMTIgMCAwIDAgMTItMTJWMTg4YTEyIDEyIDAgMCAwLTEyLTEyaC0yNGExMiAxMiAwIDAgMC0xMiAxMnYyMTZhMTIgMTIgMCAwIDAgMTIgMTJ6TTQzMiA4MGgtODIuNDFsLTM0LTU2LjdBNDggNDggMCAwIDAgMjc0LjQxIDBIMTczLjU5YTQ4IDQ4IDAgMCAwLTQxLjE2IDIzLjNMOTguNDEgODBIMTZBMTYgMTYgMCAwIDAgMCA5NnYxNmExNiAxNiAwIDAgMCAxNiAxNmgxNnYzMzZhNDggNDggMCAwIDAgNDggNDhoMjg4YTQ4IDQ4IDAgMCAwIDQ4LTQ4VjEyOGgxNmExNiAxNiAwIDAgMCAxNi0xNlY5NmExNiAxNiAwIDAgMC0xNi0xNnpNMTcxLjg0IDUwLjkxQTYgNiAwIDAgMSAxNzcgNDhoOTRhNiA2IDAgMCAxIDUuMTUgMi45MUwyOTMuNjEgODBIMTU0LjM5ek0zNjggNDY0SDgwVjEyOGgyODh6bS0yMTItNDhoMjRhMTIgMTIgMCAwIDAgMTItMTJWMTg4YTEyIDEyIDAgMCAwLTEyLTEyaC0yNGExMiAxMiAwIDAgMC0xMiAxMnYyMTZhMTIgMTIgMCAwIDAgMTIgMTJ6Ii8+PC9zdmc+');\n}\n";
|
|
6685
6931
|
styleInject(css_248z$3);
|
|
6686
6932
|
|
|
6687
6933
|
var css_248z$4 = "*,\n::after,\n::before {\n box-sizing: border-box;\n border-width: 0;\n border-style: solid;\n}\n\n.next-chessground {\n display: flex;\n flex-direction: column;\n position: relative;\n width: 100%;\n}\n.next-chessground .checkbox {\n display: flex;\n margin: 0;\n align-items: center;\n padding-left: 0.25rem;\n width: 2.75rem;\n height: 1.75rem;\n outline: none;\n appearance: none;\n transition: 0.2s ease-in-out;\n padding-left: 0.25rem;\n padding-right: 0.25rem;\n cursor: pointer;\n}\n.next-chessground .checkbox:before {\n background-color: rgba(156, 163, 175);\n width: 1rem;\n height: 1rem;\n border-radius: 999px;\n content: '';\n transition: 0.2s ease-in-out;\n}\n.next-chessground .checkbox:checked:before {\n background-color: rgba(4, 120, 87);\n transform: translate(1rem, 0);\n}\n.next-chessground .next-button {\n background-color: transparent;\n background-image: none;\n cursor: pointer;\n display: flex;\n outline: none;\n\n padding: 0;\n line-height: inherit;\n color: inherit;\n font-size: 100%;\n}\n.next-chessground .next-button:focus {\n outline: none;\n}\n";
|
|
@@ -6693,10 +6939,11 @@ styleInject(css_248z$5);
|
|
|
6693
6939
|
var css_248z$6 = "/**\n * Cburnett\n */\n.cburnett piece.pawn.white {\n background-image: url('https://lichess1.org/assets/_MKI2V3/piece/cburnett/wP.svg');\n}\n.cburnett piece.bishop.white {\n background-image: url('https://lichess1.org/assets/_MKI2V3/piece/cburnett/wB.svg');\n}\n.cburnett piece.knight.white {\n background-image: url('https://lichess1.org/assets/_MKI2V3/piece/cburnett/wN.svg');\n}\n.cburnett piece.rook.white {\n background-image: url('https://lichess1.org/assets/_MKI2V3/piece/cburnett/wR.svg');\n}\n.cburnett piece.queen.white {\n background-image: url('https://lichess1.org/assets/_MKI2V3/piece/cburnett/wQ.svg');\n}\n.cburnett piece.king.white {\n background-image: url('https://lichess1.org/assets/_MKI2V3/piece/cburnett/wK.svg');\n}\n.cburnett piece.pawn.black {\n background-image: url('https://lichess1.org/assets/_MKI2V3/piece/cburnett/bP.svg');\n}\n.cburnett piece.bishop.black {\n background-image: url('https://lichess1.org/assets/_MKI2V3/piece/cburnett/bB.svg');\n}\n.cburnett piece.knight.black {\n background-image: url('https://lichess1.org/assets/_MKI2V3/piece/cburnett/bN.svg');\n}\n.cburnett piece.rook.black {\n background-image: url('https://lichess1.org/assets/_MKI2V3/piece/cburnett/bR.svg');\n}\n.cburnett piece.queen.black {\n background-image: url('https://lichess1.org/assets/_MKI2V3/piece/cburnett/bQ.svg');\n}\n.cburnett piece.king.black {\n background-image: url('https://lichess1.org/assets/_MKI2V3/piece/cburnett/bK.svg');\n}\n\n/**\n * Classic\n */\n.classic piece.pawn.white {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/classic/150/wp.png');\n}\n.classic piece.bishop.white {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/classic/150/wb.png');\n}\n.classic piece.knight.white {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/classic/150/wn.png');\n}\n.classic piece.rook.white {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/classic/150/wr.png');\n}\n.classic piece.queen.white {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/classic/150/wq.png');\n}\n.classic piece.king.white {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/classic/150/wk.png');\n}\n.classic piece.pawn.black {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/classic/150/bp.png');\n}\n.classic piece.bishop.black {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/classic/150/bb.png');\n}\n.classic piece.knight.black {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/classic/150/bn.png');\n}\n.classic piece.rook.black {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/classic/150/br.png');\n}\n.classic piece.queen.black {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/classic/150/bq.png');\n}\n.classic piece.king.black {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/classic/150/bk.png');\n}\n\n/**\n * Neo\n */\n.neo piece.pawn.white {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/neo/150/wp.png');\n}\n.neo piece.bishop.white {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/neo/150/wb.png');\n}\n.neo piece.knight.white {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/neo/150/wn.png');\n}\n.neo piece.rook.white {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/neo/150/wr.png');\n}\n.neo piece.queen.white {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/neo/150/wq.png');\n}\n.neo piece.king.white {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/neo/150/wk.png');\n}\n.neo piece.pawn.black {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/neo/150/bp.png');\n}\n.neo piece.bishop.black {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/neo/150/bb.png');\n}\n.neo piece.knight.black {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/neo/150/bn.png');\n}\n.neo piece.rook.black {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/neo/150/br.png');\n}\n.neo piece.queen.black {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/neo/150/bq.png');\n}\n.neo piece.king.black {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/neo/150/bk.png');\n}\n\n/**\n * Alpha\n */\n.alpha piece.pawn.white {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/alpha/150/wp.png');\n}\n.alpha piece.bishop.white {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/alpha/150/wb.png');\n}\n.alpha piece.knight.white {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/alpha/150/wn.png');\n}\n.alpha piece.rook.white {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/alpha/150/wr.png');\n}\n.alpha piece.queen.white {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/alpha/150/wq.png');\n}\n.alpha piece.king.white {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/alpha/150/wk.png');\n}\n.alpha piece.pawn.black {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/alpha/150/bp.png');\n}\n.alpha piece.bishop.black {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/alpha/150/bb.png');\n}\n.alpha piece.knight.black {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/alpha/150/bn.png');\n}\n.alpha piece.rook.black {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/alpha/150/br.png');\n}\n.alpha piece.queen.black {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/alpha/150/bq.png');\n}\n.alpha piece.king.black {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/alpha/150/bk.png');\n}\n\n/**\n * Bases\n */\n.bases piece.pawn.white {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/bases/150/wp.png');\n}\n.bases piece.bishop.white {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/bases/150/wb.png');\n}\n.bases piece.knight.white {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/bases/150/wn.png');\n}\n.bases piece.rook.white {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/bases/150/wr.png');\n}\n.bases piece.queen.white {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/bases/150/wq.png');\n}\n.bases piece.king.white {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/bases/150/wk.png');\n}\n.bases piece.pawn.black {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/bases/150/bp.png');\n}\n.bases piece.bishop.black {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/bases/150/bb.png');\n}\n.bases piece.knight.black {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/bases/150/bn.png');\n}\n.bases piece.rook.black {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/bases/150/br.png');\n}\n.bases piece.queen.black {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/bases/150/bq.png');\n}\n.bases piece.king.black {\n background-image: url('https://images.chesscomfiles.com/chess-themes/pieces/bases/150/bk.png');\n}\n";
|
|
6694
6940
|
styleInject(css_248z$6);
|
|
6695
6941
|
|
|
6696
|
-
var css_248z$7 = ".flex {\n display: flex;\n}\n.flex-col {\n flex-direction: column;\n}\n.flex-row-reverse {\n flex-direction: row-reverse;\n}\n.grid {\n display: grid;\n}\n.grid-cols-2 {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n}\n.gap-2 {\n gap: 0.5rem;\n}\n.gap-3 {\n gap: 0.75rem;\n}\n.w-full {\n width: 100%;\n}\n.items-center {\n align-items: center;\n}\n.justify-center {\n justify-content: center;\n}\n.py-1\\.5 {\n padding-top: 0.375rem;\n padding-bottom: 0.375rem;\n}\n.px-2 {\n padding-left: 0.25rem;\n padding-right: 0.25rem;\n}\n.cursor-pointer {\n cursor: pointer;\n}\n.cursor-resize {\n cursor: nesw-resize;\n}\n.outline-none,\n.outline-none:focus {\n outline: none;\n}\n.text-sm {\n font-size: 0.875rem;\n line-height: 1.25rem;\n}\n.text-gray-400 {\n color: rgba(156, 163, 175);\n}\n.text-gray-800 {\n color: rgba(31, 41, 55);\n}\n.bg-white {\n background-color: #fff;\n}\n.border {\n border-width: 1px;\n border-style: solid;\n}\n.border-gray-300 {\n border-color: rgba(209, 213, 219);\n}\n.rounded {\n border-radius: 0.25rem;\n}\n";
|
|
6942
|
+
var css_248z$7 = ".flex {\n display: flex;\n}\n.flex-col {\n flex-direction: column;\n}\n.flex-row-reverse {\n flex-direction: row-reverse;\n}\n.grid {\n display: grid;\n}\n.grid-cols-2 {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n}\n.gap-2 {\n gap: 0.5rem;\n}\n.gap-3 {\n gap: 0.75rem;\n}\n.w-full {\n width: 100%;\n}\n.items-center {\n align-items: center;\n}\n.justify-center {\n justify-content: center;\n}\n.py-1\\.5 {\n padding-top: 0.375rem;\n padding-bottom: 0.375rem;\n}\n.px-2 {\n padding-left: 0.25rem;\n padding-right: 0.25rem;\n}\n.cursor-pointer {\n cursor: pointer;\n}\n.cursor-resize {\n cursor: nesw-resize;\n}\n.outline-none,\n.outline-none:focus {\n outline: none;\n}\n.text-sm {\n font-size: 0.875rem;\n line-height: 1.25rem;\n}\n.text-gray-400 {\n color: rgba(156, 163, 175);\n}\n.text-gray-800 {\n color: rgba(31, 41, 55);\n}\n.bg-white {\n background-color: #fff;\n}\n.bg-orange-300 {\n background-color: #fbd38d;\n}\n.border {\n border-width: 1px;\n border-style: solid;\n}\n.border-gray-300 {\n border-color: rgba(209, 213, 219);\n}\n.rounded {\n border-radius: 0.25rem;\n}\n";
|
|
6697
6943
|
styleInject(css_248z$7);
|
|
6698
6944
|
|
|
6699
6945
|
exports.NextChessground = NextChessground$1;
|
|
6946
|
+
exports.NextEditor = NextEditor$1;
|
|
6700
6947
|
exports.default = NextChessground$1;
|
|
6701
6948
|
exports.fen = fen;
|
|
6702
6949
|
exports.useChess = useChess;
|
package/index.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import NextChessground from './components/NextChessground';
|
|
2
|
+
import NextEditor from './components/NextEditor';
|
|
2
3
|
import useChess from './hooks/use-chess';
|
|
3
4
|
import useChessground from './hooks/use-chessground';
|
|
4
5
|
import fen from './utils/fen';
|
|
@@ -14,4 +15,4 @@ import './assets/css/tailwind.css';
|
|
|
14
15
|
|
|
15
16
|
export default NextChessground;
|
|
16
17
|
|
|
17
|
-
export { NextChessground, useChess, useChessground, fen };
|
|
18
|
+
export { NextChessground, NextEditor, useChess, useChessground, fen };
|