@gamepark/react-game 7.5.12 → 7.5.13

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.
Files changed (34) hide show
  1. package/dist/components/GameProvider/GameProvider.js +10 -2
  2. package/dist/components/GameProvider/GameProvider.js.map +1 -1
  3. package/dist/components/PlayerPanel/StyledPlayerPanel.js.map +1 -1
  4. package/dist/components/material/DraggableMaterial.js +3 -4
  5. package/dist/components/material/DraggableMaterial.js.map +1 -1
  6. package/dist/components/material/GameTable/DevTools/DevToolEntry.d.ts +20 -0
  7. package/dist/components/material/GameTable/DevTools/DevToolEntry.js +53 -0
  8. package/dist/components/material/GameTable/DevTools/DevToolEntry.js.map +1 -0
  9. package/dist/components/material/GameTable/DevTools/DevToolsHub.d.ts +12 -0
  10. package/dist/components/material/GameTable/DevTools/DevToolsHub.js +200 -0
  11. package/dist/components/material/GameTable/DevTools/DevToolsHub.js.map +1 -0
  12. package/dist/components/material/GameTable/DevTools/ExportPanel.d.ts +7 -0
  13. package/dist/components/material/GameTable/DevTools/ExportPanel.js +80 -0
  14. package/dist/components/material/GameTable/DevTools/ExportPanel.js.map +1 -0
  15. package/dist/components/material/GameTable/DevTools/GamePanel.d.ts +9 -0
  16. package/dist/components/material/GameTable/DevTools/GamePanel.js +183 -0
  17. package/dist/components/material/GameTable/DevTools/GamePanel.js.map +1 -0
  18. package/dist/components/material/GameTable/DevTools/SaveLoadPanel.d.ts +7 -0
  19. package/dist/components/material/GameTable/DevTools/SaveLoadPanel.js +334 -0
  20. package/dist/components/material/GameTable/DevTools/SaveLoadPanel.js.map +1 -0
  21. package/dist/components/material/GameTable/DevTools/index.d.ts +3 -0
  22. package/dist/components/material/GameTable/DevTools/index.js +3 -0
  23. package/dist/components/material/GameTable/DevTools/index.js.map +1 -0
  24. package/dist/components/material/GameTable/index.d.ts +1 -1
  25. package/dist/components/material/GameTable/index.js +1 -1
  26. package/dist/components/material/GameTable/index.js.map +1 -1
  27. package/dist/components/material/animations/AnimationBuilder.d.ts +2 -2
  28. package/dist/components/material/animations/AnimationBuilder.js +1 -1
  29. package/dist/components/material/animations/AnimationBuilder.js.map +1 -1
  30. package/dist/components/tutorial/MaterialTutorial.d.ts +1 -1
  31. package/dist/hooks/useLegalMoves.d.ts +1 -6
  32. package/dist/hooks/useLegalMoves.js +2 -7
  33. package/dist/hooks/useLegalMoves.js.map +1 -1
  34. package/package.json +3 -3
@@ -0,0 +1,183 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "@emotion/react/jsx-runtime";
2
+ /** @jsxImportSource @emotion/react */
3
+ import { css, keyframes } from '@emotion/react';
4
+ import { useState } from 'react';
5
+ import { usePlayerId, usePlayerIds } from '../../../../hooks/usePlayerId';
6
+ const GP_PRIMARY = '#28B8CE';
7
+ const toolReveal = keyframes `
8
+ from { opacity: 0; transform: translateX(-6px); }
9
+ to { opacity: 1; transform: translateX(0); }
10
+ `;
11
+ export const GamePanel = ({ exec, g, gameOptions }) => {
12
+ const [newGamePlayers, setNewGamePlayers] = useState(2);
13
+ const [options, setOptions] = useState({});
14
+ const [undoCount, setUndoCount] = useState(1);
15
+ const [botActive, setBotActive] = useState(false);
16
+ const currentPlayer = usePlayerId();
17
+ const players = usePlayerIds();
18
+ return (_jsxs(_Fragment, { children: [_jsxs("div", { css: toolBtnCss, children: [_jsx("span", { css: toolIconCss, children: '\u21BB' }), _jsx("span", { css: toolLabelCss, children: "New Game" }), _jsx("span", { css: toolDescCss, children: "Reset with N players" }), _jsxs("div", { css: inlineRowCss, onClick: e => e.stopPropagation(), children: [_jsx("button", { css: stepBtnCss, onClick: () => setNewGamePlayers(c => Math.max(1, c - 1)), children: "-" }), _jsx("input", { type: "number", min: 1, max: 10, value: newGamePlayers, onChange: e => setNewGamePlayers(Math.max(1, parseInt(e.target.value) || 2)), css: numberInputCss }), _jsx("button", { css: stepBtnCss, onClick: () => setNewGamePlayers(c => Math.min(10, c + 1)), children: "+" }), _jsx("button", { css: goBtnCss, onClick: () => exec(() => {
19
+ const hasOptions = gameOptions?.length && Object.values(options).some(Boolean);
20
+ g.new(hasOptions ? { players: newGamePlayers, ...options } : newGamePlayers);
21
+ }, `New game ${newGamePlayers}p`), children: "Go" })] }), gameOptions?.map(opt => (_jsxs("label", { css: toggleRowCss, onClick: e => e.stopPropagation(), children: [_jsx("input", { type: "checkbox", checked: options[opt.key] ?? false, onChange: e => setOptions(prev => ({ ...prev, [opt.key]: e.target.checked })), css: checkboxCss }), _jsx("span", { css: toggleLabelCss, children: opt.label })] }, opt.key)))] }), _jsxs("div", { css: toolBtnCss, children: [_jsx("span", { css: toolIconCss, children: '\u238C' }), _jsx("span", { css: toolLabelCss, children: "Undo" }), _jsx("span", { css: toolDescCss, children: "Revert N moves" }), _jsxs("div", { css: inlineRowCss, onClick: e => e.stopPropagation(), children: [_jsx("button", { css: stepBtnCss, onClick: () => setUndoCount(c => Math.max(1, c - 1)), children: "-" }), _jsx("input", { type: "number", min: 1, max: 999, value: undoCount, onChange: e => setUndoCount(Math.max(1, parseInt(e.target.value) || 1)), css: numberInputCss }), _jsx("button", { css: stepBtnCss, onClick: () => setUndoCount(c => c + 1), children: "+" }), _jsx("button", { css: goBtnCss, onClick: () => exec(() => g.undo(undoCount), `Undo ${undoCount} move${undoCount > 1 ? 's' : ''}`), children: "Go" })] })] }), _jsxs("div", { css: toolBtnCss, children: [_jsx("span", { css: toolIconCss, children: '\u2194' }), _jsx("span", { css: toolLabelCss, children: "Switch Player" }), _jsx("span", { css: toolDescCss, children: "View as another player" }), _jsxs("div", { css: inlineRowCss, onClick: e => e.stopPropagation(), children: [players.map(pid => (_jsxs("button", { css: [playerBtnCss, pid === currentPlayer && playerBtnActiveCss], onClick: () => exec(() => g.changePlayer(pid), `Switched to P${pid}`), children: ["P", String(pid)] }, String(pid)))), _jsx("button", { css: [playerBtnCss, currentPlayer === undefined && playerBtnActiveCss], onClick: () => exec(() => g.changePlayer(), 'Spectator mode'), children: "Spect" })] })] }), _jsxs("button", { css: [toolBtnCss, botActive && toolBtnActiveCss], onClick: () => {
22
+ const next = !botActive;
23
+ exec(() => g.bot(next), next ? 'Bots enabled' : 'Bots disabled');
24
+ setBotActive(next);
25
+ }, children: [_jsx("span", { css: toolIconCss, children: '\u2699' }), _jsx("span", { css: toolLabelCss, children: botActive ? 'Disable Bots' : 'Enable Bots' }), _jsx("span", { css: toolDescCss, children: botActive ? 'Stop auto-play' : 'Auto-play all moves' }), botActive && _jsx("span", { css: activeIndicatorCss })] }), _jsxs("button", { css: toolBtnCss, onClick: () => exec(() => g.tutorial(), 'Tutorial started'), children: [_jsx("span", { css: toolIconCss, children: "?" }), _jsx("span", { css: toolLabelCss, children: "Tutorial" }), _jsx("span", { css: toolDescCss, children: "Start tutorial mode" })] })] }));
26
+ };
27
+ // ── Styles ──
28
+ const toolBtnCss = css `
29
+ position: relative;
30
+ display: grid;
31
+ grid-template-columns: 28px 1fr;
32
+ grid-template-rows: auto auto;
33
+ align-items: center;
34
+ gap: 0 10px;
35
+ padding: 10px 12px;
36
+ border: none;
37
+ border-radius: 8px;
38
+ background: transparent;
39
+ cursor: pointer;
40
+ text-align: left;
41
+ transition: background 0.15s;
42
+ animation: ${toolReveal} 0.25s ease-out backwards;
43
+ font-family: inherit;
44
+ &:hover { background: rgba(40, 184, 206, 0.08); }
45
+ &:active { background: rgba(40, 184, 206, 0.14); }
46
+ `;
47
+ const toolBtnActiveCss = css `
48
+ background: rgba(40, 184, 206, 0.1);
49
+ &::after {
50
+ content: '';
51
+ position: absolute;
52
+ left: 0; top: 8px; bottom: 8px;
53
+ width: 3px;
54
+ border-radius: 0 3px 3px 0;
55
+ background: ${GP_PRIMARY};
56
+ }
57
+ `;
58
+ const toolIconCss = css `
59
+ grid-row: 1 / -1;
60
+ font-size: 15px;
61
+ color: ${GP_PRIMARY};
62
+ display: flex;
63
+ align-items: center;
64
+ justify-content: center;
65
+ width: 28px; height: 28px;
66
+ border-radius: 6px;
67
+ background: rgba(40, 184, 206, 0.08);
68
+ `;
69
+ const toolLabelCss = css `
70
+ font-size: 14px;
71
+ font-weight: 700;
72
+ color: #e0f0f4;
73
+ line-height: 1.2;
74
+ `;
75
+ const toolDescCss = css `
76
+ font-size: 12px;
77
+ color: #5a8a98;
78
+ line-height: 1.2;
79
+ `;
80
+ const activeIndicatorCss = css `
81
+ position: absolute;
82
+ top: 10px; right: 12px;
83
+ width: 7px; height: 7px;
84
+ border-radius: 50%;
85
+ background: ${GP_PRIMARY};
86
+ box-shadow: 0 0 6px rgba(40, 184, 206, 0.5);
87
+ `;
88
+ const inlineRowCss = css `
89
+ grid-column: 1 / -1;
90
+ display: flex;
91
+ align-items: center;
92
+ gap: 4px;
93
+ margin-top: 6px;
94
+ `;
95
+ const stepBtnCss = css `
96
+ width: 26px; height: 26px;
97
+ border-radius: 5px;
98
+ border: 1px solid rgba(40, 184, 206, 0.25);
99
+ background: rgba(40, 184, 206, 0.06);
100
+ color: ${GP_PRIMARY};
101
+ font-size: 14px; font-weight: 700;
102
+ cursor: pointer;
103
+ display: flex; align-items: center; justify-content: center;
104
+ font-family: inherit;
105
+ transition: all 0.15s;
106
+ &:hover { background: rgba(40, 184, 206, 0.14); border-color: rgba(40, 184, 206, 0.4); }
107
+ `;
108
+ const numberInputCss = css `
109
+ width: 48px; height: 26px;
110
+ border-radius: 5px;
111
+ border: 1px solid rgba(40, 184, 206, 0.25);
112
+ background: rgba(0, 0, 0, 0.3);
113
+ color: #e0f0f4;
114
+ font-size: 13px; font-weight: 700;
115
+ text-align: center;
116
+ font-family: inherit;
117
+ font-variant-numeric: tabular-nums;
118
+ &:focus { outline: none; border-color: ${GP_PRIMARY}; box-shadow: 0 0 0 2px rgba(40, 184, 206, 0.15); }
119
+ &::-webkit-inner-spin-button, &::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; }
120
+ `;
121
+ const goBtnCss = css `
122
+ height: 26px;
123
+ padding: 0 12px;
124
+ border-radius: 5px;
125
+ border: 1px solid rgba(40, 184, 206, 0.35);
126
+ background: rgba(40, 184, 206, 0.15);
127
+ color: ${GP_PRIMARY};
128
+ font-size: 12px; font-weight: 800;
129
+ text-transform: uppercase;
130
+ letter-spacing: 0.05em;
131
+ cursor: pointer;
132
+ margin-left: auto;
133
+ font-family: inherit;
134
+ transition: all 0.15s;
135
+ flex-shrink: 0;
136
+ &:hover { background: rgba(40, 184, 206, 0.25); border-color: rgba(40, 184, 206, 0.5); }
137
+ `;
138
+ const playerBtnCss = css `
139
+ height: 26px;
140
+ padding: 0 10px;
141
+ border-radius: 5px;
142
+ border: 1px solid rgba(40, 184, 206, 0.25);
143
+ background: rgba(40, 184, 206, 0.06);
144
+ color: #5a8a98;
145
+ font-size: 12px; font-weight: 700;
146
+ cursor: pointer;
147
+ font-family: inherit;
148
+ transition: all 0.15s;
149
+ &:hover { background: rgba(40, 184, 206, 0.14); border-color: rgba(40, 184, 206, 0.4); color: #e0f0f4; }
150
+ `;
151
+ const playerBtnActiveCss = css `
152
+ background: rgba(40, 184, 206, 0.2);
153
+ border-color: ${GP_PRIMARY};
154
+ color: ${GP_PRIMARY};
155
+ `;
156
+ const toggleRowCss = css `
157
+ grid-column: 1 / -1;
158
+ display: flex; align-items: center; gap: 8px;
159
+ margin-top: 4px; padding: 4px 0;
160
+ cursor: pointer;
161
+ `;
162
+ const checkboxCss = css `
163
+ appearance: none;
164
+ width: 16px; height: 16px;
165
+ border-radius: 4px;
166
+ border: 1px solid rgba(40, 184, 206, 0.35);
167
+ background: rgba(0, 0, 0, 0.3);
168
+ cursor: pointer; flex-shrink: 0;
169
+ position: relative;
170
+ transition: all 0.15s;
171
+ &:checked { background: rgba(40, 184, 206, 0.2); border-color: ${GP_PRIMARY}; }
172
+ &:checked::after {
173
+ content: '\u2713';
174
+ position: absolute; top: 50%; left: 50%;
175
+ transform: translate(-50%, -50%);
176
+ font-size: 11px; color: ${GP_PRIMARY}; font-weight: 700;
177
+ }
178
+ &:hover { border-color: rgba(40, 184, 206, 0.5); }
179
+ `;
180
+ const toggleLabelCss = css `
181
+ font-size: 12px; font-weight: 600; color: #5a8a98;
182
+ `;
183
+ //# sourceMappingURL=GamePanel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GamePanel.js","sourceRoot":"","sources":["../../../../../src/components/material/GameTable/DevTools/GamePanel.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import { FC } from 'react';
2
+ type SaveLoadPanelProps = {
3
+ gameName: string;
4
+ doFlash: (msg: string) => void;
5
+ };
6
+ export declare const SaveLoadPanel: FC<SaveLoadPanelProps>;
7
+ export {};
@@ -0,0 +1,334 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "@emotion/react/jsx-runtime";
2
+ /** @jsxImportSource @emotion/react */
3
+ import { css, keyframes } from '@emotion/react';
4
+ import { useCallback, useRef, useState } from 'react';
5
+ const GP_PRIMARY = '#28B8CE';
6
+ const GP_SURFACE = '#0a1929';
7
+ const SAVE_PREFIX = ':save:';
8
+ const getSaveKeys = (gameName) => {
9
+ const prefix = gameName + SAVE_PREFIX;
10
+ const keys = [];
11
+ for (let i = 0; i < localStorage.length; i++) {
12
+ const key = localStorage.key(i);
13
+ if (key?.startsWith(prefix))
14
+ keys.push(key);
15
+ }
16
+ return keys.sort();
17
+ };
18
+ const getSaveLabel = (key, gameName) => {
19
+ return key.slice((gameName + SAVE_PREFIX).length);
20
+ };
21
+ export const SaveLoadPanel = ({ gameName, doFlash }) => {
22
+ const [saveLabel, setSaveLabel] = useState('');
23
+ const [saveRefresh, setSaveRefresh] = useState(0);
24
+ const [importText, setImportText] = useState('');
25
+ const [pasteError, setPasteError] = useState(null);
26
+ const [showPasteModal, setShowPasteModal] = useState(false);
27
+ const fileInputRef = useRef(null);
28
+ const saveKeys = getSaveKeys(gameName);
29
+ void saveRefresh;
30
+ const handleSave = useCallback(() => {
31
+ const raw = localStorage.getItem(gameName);
32
+ if (!raw) {
33
+ doFlash('No game state in localStorage');
34
+ return;
35
+ }
36
+ const label = saveLabel.trim() || new Date().toLocaleTimeString();
37
+ const key = gameName + SAVE_PREFIX + label;
38
+ localStorage.setItem(key, raw);
39
+ setSaveLabel('');
40
+ setSaveRefresh(n => n + 1);
41
+ doFlash(`Saved: ${label}`);
42
+ }, [saveLabel, gameName, doFlash]);
43
+ const handleLoad = useCallback((key) => {
44
+ const raw = localStorage.getItem(key);
45
+ if (!raw) {
46
+ doFlash('Save not found');
47
+ return;
48
+ }
49
+ try {
50
+ JSON.parse(raw);
51
+ localStorage.setItem(gameName, raw);
52
+ doFlash(`Loaded: ${getSaveLabel(key, gameName)}`);
53
+ window.location.reload();
54
+ }
55
+ catch {
56
+ doFlash('Invalid save data');
57
+ }
58
+ }, [gameName, doFlash]);
59
+ const handleDownloadSave = useCallback((key) => {
60
+ const raw = localStorage.getItem(key);
61
+ if (!raw) {
62
+ doFlash('Save not found');
63
+ return;
64
+ }
65
+ const label = getSaveLabel(key, gameName);
66
+ const blob = new Blob([raw], { type: 'application/json' });
67
+ const url = URL.createObjectURL(blob);
68
+ const a = document.createElement('a');
69
+ a.href = url;
70
+ a.download = `${gameName}-${label.replace(/[^a-zA-Z0-9_-]/g, '_')}.json`;
71
+ a.click();
72
+ URL.revokeObjectURL(url);
73
+ doFlash(`Downloaded: ${label}`);
74
+ }, [gameName, doFlash]);
75
+ const handleDelete = useCallback((key) => {
76
+ localStorage.removeItem(key);
77
+ setSaveRefresh(n => n + 1);
78
+ doFlash(`Deleted: ${getSaveLabel(key, gameName)}`);
79
+ }, [gameName, doFlash]);
80
+ const handleImportFile = useCallback((e) => {
81
+ const file = e.target.files?.[0];
82
+ if (!file)
83
+ return;
84
+ const reader = new FileReader();
85
+ reader.onload = () => {
86
+ try {
87
+ const raw = reader.result;
88
+ JSON.parse(raw);
89
+ localStorage.setItem(gameName, raw);
90
+ doFlash(`Imported: ${file.name}`);
91
+ window.location.reload();
92
+ }
93
+ catch {
94
+ doFlash('Invalid JSON file');
95
+ }
96
+ };
97
+ reader.readAsText(file);
98
+ e.target.value = '';
99
+ }, [gameName, doFlash]);
100
+ const handleImportPaste = useCallback(() => {
101
+ if (!importText.trim()) {
102
+ setPasteError('Paste a JSON state first');
103
+ return;
104
+ }
105
+ try {
106
+ JSON.parse(importText);
107
+ localStorage.setItem(gameName, importText);
108
+ setImportText('');
109
+ setPasteError(null);
110
+ setShowPasteModal(false);
111
+ doFlash('State imported!');
112
+ window.location.reload();
113
+ }
114
+ catch {
115
+ setPasteError('Invalid JSON — check syntax');
116
+ }
117
+ }, [gameName, importText, doFlash]);
118
+ const handlePasteChange = useCallback((value) => {
119
+ setImportText(value);
120
+ setPasteError(null);
121
+ try {
122
+ const parsed = JSON.parse(value);
123
+ setImportText(JSON.stringify(parsed, null, 2));
124
+ }
125
+ catch {
126
+ // Keep raw text if invalid
127
+ }
128
+ }, []);
129
+ return (_jsxs(_Fragment, { children: [_jsxs("div", { css: toolBtnCss, children: [_jsx("span", { css: toolIconCss, children: '\u2B73' }), _jsx("span", { css: toolLabelCss, children: "Save State" }), _jsx("span", { css: toolDescCss, children: "Save current game state" }), _jsxs("div", { css: inlineRowCss, onClick: e => e.stopPropagation(), children: [_jsx("input", { type: "text", placeholder: "label (optional)", value: saveLabel, onChange: e => setSaveLabel(e.target.value), onKeyDown: e => { if (e.key === 'Enter')
130
+ handleSave(); }, css: textInputCss }), _jsx("button", { css: goBtnCss, onClick: handleSave, children: "Save" })] })] }), saveKeys.length > 0 && (_jsx("div", { css: savedListCss, children: saveKeys.map(key => (_jsxs("div", { css: savedEntryCss, children: [_jsx("span", { css: savedLabelTextCss, children: getSaveLabel(key, gameName) }), _jsxs("div", { css: savedActionsCss, children: [_jsx("button", { css: smallBtnCss, onClick: () => handleLoad(key), title: "Load", children: '\u25B6' }), _jsx("button", { css: smallBtnCss, onClick: () => handleDownloadSave(key), title: "Download", children: '\u2913' }), _jsx("button", { css: [smallBtnCss, smallBtnDangerCss], onClick: () => handleDelete(key), title: "Delete", children: '\u2715' })] })] }, key))) })), _jsx("div", { css: dividerCss }), _jsxs("button", { css: toolBtnCss, onClick: () => fileInputRef.current?.click(), children: [_jsx("span", { css: toolIconCss, children: '\u2912' }), _jsx("span", { css: toolLabelCss, children: "Import File" }), _jsx("span", { css: toolDescCss, children: "Load state from JSON file" })] }), _jsx("input", { ref: fileInputRef, type: "file", accept: ".json,application/json", onChange: handleImportFile, style: { display: 'none' } }), _jsxs("button", { css: toolBtnCss, onClick: () => { setShowPasteModal(true); setPasteError(null); }, children: [_jsx("span", { css: toolIconCss, children: '\u2398' }), _jsx("span", { css: toolLabelCss, children: "Paste State" }), _jsx("span", { css: toolDescCss, children: "Open editor to paste JSON" })] }), showPasteModal && (_jsxs(_Fragment, { children: [_jsx("div", { css: modalBackdropCss, onClick: () => { setShowPasteModal(false); setPasteError(null); } }), _jsxs("div", { css: modalCss, children: [_jsxs("div", { css: modalHeaderCss, children: [_jsx("span", { css: modalTitleCss, children: "Paste Game State" }), _jsx("button", { css: modalCloseBtnCss, onClick: () => { setShowPasteModal(false); setPasteError(null); }, children: '\u2715' })] }), _jsxs("div", { css: modalBodyCss, children: [_jsx("textarea", { css: modalTextareaCss, placeholder: 'Paste your JSON game state here...', value: importText, onChange: e => handlePasteChange(e.target.value), spellCheck: false }), pasteError && _jsx("div", { css: pasteErrorCss, children: pasteError })] }), _jsxs("div", { css: modalFooterCss, children: [_jsx("button", { css: modalCancelBtnCss, onClick: () => { setShowPasteModal(false); setPasteError(null); }, children: "Cancel" }), _jsx("button", { css: modalLoadBtnCss, onClick: handleImportPaste, children: "Load State" })] })] })] }))] }));
131
+ };
132
+ // ── Styles ──
133
+ const toolReveal = keyframes `
134
+ from { opacity: 0; transform: translateX(-6px); }
135
+ to { opacity: 1; transform: translateX(0); }
136
+ `;
137
+ const toolBtnCss = css `
138
+ position: relative;
139
+ display: grid;
140
+ grid-template-columns: 28px 1fr;
141
+ grid-template-rows: auto auto;
142
+ align-items: center;
143
+ gap: 0 10px;
144
+ padding: 10px 12px;
145
+ border: none;
146
+ border-radius: 8px;
147
+ background: transparent;
148
+ cursor: pointer;
149
+ text-align: left;
150
+ transition: background 0.15s;
151
+ animation: ${toolReveal} 0.25s ease-out backwards;
152
+ font-family: inherit;
153
+ &:hover { background: rgba(40, 184, 206, 0.08); }
154
+ &:active { background: rgba(40, 184, 206, 0.14); }
155
+ `;
156
+ const toolIconCss = css `
157
+ grid-row: 1 / -1;
158
+ font-size: 15px;
159
+ color: ${GP_PRIMARY};
160
+ display: flex; align-items: center; justify-content: center;
161
+ width: 28px; height: 28px;
162
+ border-radius: 6px;
163
+ background: rgba(40, 184, 206, 0.08);
164
+ `;
165
+ const toolLabelCss = css `
166
+ font-size: 14px; font-weight: 700; color: #e0f0f4; line-height: 1.2;
167
+ `;
168
+ const toolDescCss = css `
169
+ font-size: 12px; color: #5a8a98; line-height: 1.2;
170
+ `;
171
+ const inlineRowCss = css `
172
+ grid-column: 1 / -1;
173
+ display: flex; align-items: center; gap: 4px; margin-top: 6px;
174
+ `;
175
+ const textInputCss = css `
176
+ flex: 1; height: 26px;
177
+ border-radius: 5px;
178
+ border: 1px solid rgba(40, 184, 206, 0.25);
179
+ background: rgba(0, 0, 0, 0.3);
180
+ color: #e0f0f4;
181
+ font-size: 12px; font-weight: 600;
182
+ padding: 0 8px;
183
+ font-family: inherit;
184
+ &::placeholder { color: #3a6070; }
185
+ &:focus { outline: none; border-color: ${GP_PRIMARY}; box-shadow: 0 0 0 2px rgba(40, 184, 206, 0.15); }
186
+ `;
187
+ const goBtnCss = css `
188
+ height: 26px; padding: 0 12px;
189
+ border-radius: 5px;
190
+ border: 1px solid rgba(40, 184, 206, 0.35);
191
+ background: rgba(40, 184, 206, 0.15);
192
+ color: ${GP_PRIMARY};
193
+ font-size: 12px; font-weight: 800;
194
+ text-transform: uppercase; letter-spacing: 0.05em;
195
+ cursor: pointer; margin-left: auto;
196
+ font-family: inherit;
197
+ transition: all 0.15s; flex-shrink: 0;
198
+ &:hover { background: rgba(40, 184, 206, 0.25); border-color: rgba(40, 184, 206, 0.5); }
199
+ `;
200
+ const dividerCss = css `
201
+ height: 1px; margin: 4px 12px;
202
+ background: rgba(40, 184, 206, 0.1);
203
+ `;
204
+ const savedListCss = css `
205
+ display: flex; flex-direction: column; gap: 2px; padding: 0 8px;
206
+ `;
207
+ const savedEntryCss = css `
208
+ display: flex; align-items: center; justify-content: space-between;
209
+ padding: 5px 8px; border-radius: 5px;
210
+ background: rgba(40, 184, 206, 0.04);
211
+ border: 1px solid rgba(40, 184, 206, 0.08);
212
+ `;
213
+ const savedLabelTextCss = css `
214
+ font-size: 12px; font-weight: 600; color: #8ab8c8;
215
+ overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
216
+ flex: 1; margin-right: 8px;
217
+ `;
218
+ const savedActionsCss = css `
219
+ display: flex; gap: 4px; flex-shrink: 0;
220
+ `;
221
+ const smallBtnCss = css `
222
+ width: 22px; height: 22px;
223
+ border-radius: 4px;
224
+ border: 1px solid rgba(40, 184, 206, 0.25);
225
+ background: rgba(40, 184, 206, 0.08);
226
+ color: ${GP_PRIMARY};
227
+ font-size: 10px; cursor: pointer;
228
+ display: flex; align-items: center; justify-content: center;
229
+ font-family: inherit;
230
+ transition: all 0.15s;
231
+ &:hover { background: rgba(40, 184, 206, 0.2); border-color: rgba(40, 184, 206, 0.4); }
232
+ `;
233
+ const smallBtnDangerCss = css `
234
+ &:hover { background: rgba(220, 60, 60, 0.2); border-color: rgba(220, 60, 60, 0.4); color: #dc3c3c; }
235
+ `;
236
+ // ── Modal ──
237
+ const modalFadeIn = keyframes `
238
+ from { opacity: 0; transform: translate(-50%, -50%) scale(0.95); }
239
+ to { opacity: 1; transform: translate(-50%, -50%) scale(1); }
240
+ `;
241
+ const modalBackdropCss = css `
242
+ position: fixed; inset: 0; z-index: 1000;
243
+ background: rgba(0, 0, 0, 0.6);
244
+ backdrop-filter: blur(2px);
245
+ `;
246
+ const modalCss = css `
247
+ position: fixed; top: 50%; left: 50%;
248
+ transform: translate(-50%, -50%);
249
+ z-index: 1001;
250
+ width: min(700px, 90vw);
251
+ max-height: 80vh;
252
+ display: flex; flex-direction: column;
253
+ background: linear-gradient(170deg, #0f2035 0%, ${GP_SURFACE} 100%);
254
+ border: 1px solid rgba(40, 184, 206, 0.3);
255
+ border-radius: 12px;
256
+ box-shadow: 0 24px 60px rgba(0, 0, 0, 0.7);
257
+ font-family: 'Mulish', sans-serif;
258
+ animation: ${modalFadeIn} 0.2s ease-out;
259
+ `;
260
+ const modalHeaderCss = css `
261
+ display: flex; align-items: center; justify-content: space-between;
262
+ padding: 14px 20px;
263
+ border-bottom: 1px solid rgba(40, 184, 206, 0.15);
264
+ background: rgba(40, 184, 206, 0.04);
265
+ border-radius: 12px 12px 0 0;
266
+ `;
267
+ const modalTitleCss = css `
268
+ font-size: 14px; font-weight: 800; color: #e0f0f4;
269
+ text-transform: uppercase; letter-spacing: 0.08em;
270
+ `;
271
+ const modalCloseBtnCss = css `
272
+ width: 28px; height: 28px;
273
+ border: none; border-radius: 6px;
274
+ background: rgba(40, 184, 206, 0.08);
275
+ color: #5a8a98; font-size: 12px;
276
+ cursor: pointer;
277
+ display: flex; align-items: center; justify-content: center;
278
+ transition: all 0.15s;
279
+ &:hover { background: rgba(220, 60, 60, 0.2); color: #dc3c3c; }
280
+ `;
281
+ const modalBodyCss = css `
282
+ flex: 1; overflow-y: auto;
283
+ padding: 16px 20px;
284
+ display: flex; flex-direction: column; gap: 12px;
285
+ min-height: 0;
286
+ `;
287
+ const modalTextareaCss = css `
288
+ width: 100%; min-height: 100px;
289
+ border-radius: 8px;
290
+ border: 1px solid rgba(40, 184, 206, 0.25);
291
+ background: rgba(0, 0, 0, 0.4);
292
+ color: #e0f0f4;
293
+ font-size: 13px; font-weight: 500;
294
+ padding: 12px;
295
+ font-family: 'Consolas', 'Monaco', 'Courier New', monospace;
296
+ resize: vertical; line-height: 1.5;
297
+ &::placeholder { color: #3a6070; }
298
+ &:focus { outline: none; border-color: ${GP_PRIMARY}; box-shadow: 0 0 0 2px rgba(40, 184, 206, 0.15); }
299
+ `;
300
+ const pasteErrorCss = css `
301
+ font-size: 12px; font-weight: 700; color: #dc3c3c;
302
+ padding: 6px 10px; border-radius: 6px;
303
+ background: rgba(220, 60, 60, 0.1);
304
+ border: 1px solid rgba(220, 60, 60, 0.2);
305
+ `;
306
+ const modalFooterCss = css `
307
+ display: flex; justify-content: flex-end; gap: 8px;
308
+ padding: 12px 20px;
309
+ border-top: 1px solid rgba(40, 184, 206, 0.15);
310
+ `;
311
+ const modalCancelBtnCss = css `
312
+ height: 32px; padding: 0 16px;
313
+ border-radius: 6px;
314
+ border: 1px solid rgba(40, 184, 206, 0.25);
315
+ background: transparent;
316
+ color: #5a8a98;
317
+ font-size: 13px; font-weight: 700;
318
+ cursor: pointer; font-family: inherit;
319
+ transition: all 0.15s;
320
+ &:hover { background: rgba(40, 184, 206, 0.08); color: #e0f0f4; }
321
+ `;
322
+ const modalLoadBtnCss = css `
323
+ height: 32px; padding: 0 20px;
324
+ border-radius: 6px;
325
+ border: 1px solid rgba(40, 184, 206, 0.4);
326
+ background: rgba(40, 184, 206, 0.2);
327
+ color: ${GP_PRIMARY};
328
+ font-size: 13px; font-weight: 800;
329
+ text-transform: uppercase; letter-spacing: 0.05em;
330
+ cursor: pointer; font-family: inherit;
331
+ transition: all 0.15s;
332
+ &:hover { background: rgba(40, 184, 206, 0.35); border-color: ${GP_PRIMARY}; }
333
+ `;
334
+ //# sourceMappingURL=SaveLoadPanel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SaveLoadPanel.js","sourceRoot":"","sources":["../../../../../src/components/material/GameTable/DevTools/SaveLoadPanel.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export { DevToolEntry, devToolBtnCss, devToolIconCss, devToolLabelCss, devToolDescCss } from './DevToolEntry';
2
+ export { DevToolsHub } from './DevToolsHub';
3
+ export type { GameOption } from './DevToolsHub';
@@ -0,0 +1,3 @@
1
+ export { DevToolEntry, devToolBtnCss, devToolIconCss, devToolLabelCss, devToolDescCss } from './DevToolEntry';
2
+ export { DevToolsHub } from './DevToolsHub';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/components/material/GameTable/DevTools/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAC7G,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA"}
@@ -1,4 +1,4 @@
1
- export * from './DevToolsHub';
1
+ export * from './DevTools';
2
2
  export * from './focus';
3
3
  export * from './GameTable';
4
4
  export * from './GameTableContext';
@@ -1,4 +1,4 @@
1
- export * from './DevToolsHub';
1
+ export * from './DevTools';
2
2
  export * from './focus';
3
3
  export * from './GameTable';
4
4
  export * from './GameTableContext';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/material/GameTable/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAA;AAC7B,cAAc,SAAS,CAAA;AACvB,cAAc,aAAa,CAAA;AAC3B,cAAc,oBAAoB,CAAA;AAClC,cAAc,uBAAuB,CAAA;AACrC,cAAc,gBAAgB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/material/GameTable/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAA;AAC1B,cAAc,SAAS,CAAA;AACvB,cAAc,aAAa,CAAA;AAC3B,cAAc,oBAAoB,CAAA;AAClC,cAAc,uBAAuB,CAAA;AACrC,cAAc,gBAAgB,CAAA"}
@@ -70,11 +70,11 @@ export declare class AnimationBuilder<P extends number = number, M extends numbe
70
70
  * Configure a complete trajectory with elevation and waypoints.
71
71
  * @param config Trajectory configuration
72
72
  */
73
- trajectory(config: Trajectory<P, M, L> | ((context: ItemContext<P, M, L>) => Trajectory<P, M, L>)): this;
73
+ trajectory(config: Trajectory<P, M, L> | ((context: ItemContext<P, M, L>, move: MaterialMove<P, M, L>) => Trajectory<P, M, L>)): this;
74
74
  /**
75
75
  * Get the trajectory configuration.
76
76
  */
77
- get trajectoryConfig(): Trajectory<P, M, L> | ((context: ItemContext<P, M, L>) => Trajectory<P, M, L>);
77
+ get trajectoryConfig(): Trajectory<P, M, L> | ((context: ItemContext<P, M, L>, move: MaterialMove<P, M, L>) => Trajectory<P, M, L>);
78
78
  /**
79
79
  * Configure the elevation arc.
80
80
  * @param heightOrConfig Height in em, or full configuration object
@@ -196,7 +196,7 @@ export class AnimationBuilder extends ItemAnimations {
196
196
  if (this._itemAnimation) {
197
197
  return this._itemAnimation(context, animation, boundaries);
198
198
  }
199
- const trajectory = typeof this._trajectory === 'function' ? this._trajectory(context) : this._trajectory;
199
+ const trajectory = typeof this._trajectory === 'function' ? this._trajectory(context, animation.move) : this._trajectory;
200
200
  return new MaterialAnimationsWithTrajectory(this._duration, trajectory).getItemAnimation(context, animation, boundaries);
201
201
  }
202
202
  }
@@ -1 +1 @@
1
- {"version":3,"file":"AnimationBuilder.js","sourceRoot":"","sources":["../../../../src/components/material/animations/AnimationBuilder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AnimationBuilder.js","sourceRoot":"","sources":["../../../../src/components/material/animations/AnimationBuilder.ts"],"names":[],"mappings":"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"}