@gamepark/react-game 7.6.1 → 7.6.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.
Files changed (46) hide show
  1. package/dist/components/GameProvider/GameErrorBoundary.js +108 -108
  2. package/dist/components/JournalTabs/History/SetupLogItem.js +19 -19
  3. package/dist/components/material/Dices/OctahedralDiceDescription.d.ts +48 -0
  4. package/dist/components/material/Dices/OctahedralDiceDescription.js +142 -0
  5. package/dist/components/material/Dices/OctahedralDiceDescription.js.map +1 -0
  6. package/dist/components/material/GameTable/DevToolEntry.d.ts +17 -0
  7. package/dist/components/material/GameTable/DevToolEntry.js +13 -0
  8. package/dist/components/material/GameTable/DevToolEntry.js.map +1 -0
  9. package/dist/components/material/GameTable/DevTools/DevToolsStyles.d.ts +58 -0
  10. package/dist/components/material/GameTable/DevTools/DevToolsStyles.js +706 -0
  11. package/dist/components/material/GameTable/DevTools/DevToolsStyles.js.map +1 -0
  12. package/dist/components/material/GameTable/DevToolsHub.d.ts +4 -21
  13. package/dist/components/material/GameTable/DevToolsHub.js +24 -830
  14. package/dist/components/material/GameTable/DevToolsHub.js.map +1 -1
  15. package/dist/components/material/GameTable/DevToolsStyles.d.ts +67 -0
  16. package/dist/components/material/GameTable/DevToolsStyles.js +752 -0
  17. package/dist/components/material/GameTable/DevToolsStyles.js.map +1 -0
  18. package/dist/components/material/GameTable/JsonHighlighter.d.ts +3 -0
  19. package/dist/components/material/GameTable/JsonHighlighter.js +37 -0
  20. package/dist/components/material/GameTable/JsonHighlighter.js.map +1 -0
  21. package/dist/components/menus/BugReport/BugReportButton.d.ts +1 -0
  22. package/dist/components/menus/BugReport/BugReportButton.js +13 -0
  23. package/dist/components/menus/BugReport/BugReportButton.js.map +1 -0
  24. package/dist/components/menus/BugReport/BugReportDialog.d.ts +6 -0
  25. package/dist/components/menus/BugReport/BugReportDialog.js +110 -0
  26. package/dist/components/menus/BugReport/BugReportDialog.js.map +1 -0
  27. package/dist/components/menus/BugReport/index.d.ts +2 -0
  28. package/dist/components/menus/BugReport/index.js +3 -0
  29. package/dist/components/menus/BugReport/index.js.map +1 -0
  30. package/dist/components/menus/Menu/Menu.js +2 -1
  31. package/dist/components/menus/Menu/Menu.js.map +1 -1
  32. package/dist/css/backgroundCss.js +3 -3
  33. package/dist/css/cursorCss.js +6 -6
  34. package/dist/css/fadeIn.js +6 -6
  35. package/dist/css/shineEffect.js +28 -28
  36. package/dist/css/transformCss.js +4 -4
  37. package/package.json +3 -3
  38. package/dist/components/material/Wheel/WheelContent.d.ts +0 -13
  39. package/dist/components/material/Wheel/WheelContent.js +0 -37
  40. package/dist/components/material/Wheel/WheelContent.js.map +0 -1
  41. package/dist/hooks/useFailures.d.ts +0 -1
  42. package/dist/hooks/useFailures.js +0 -11
  43. package/dist/hooks/useFailures.js.map +0 -1
  44. package/dist/hooks/useWebP.d.ts +0 -1
  45. package/dist/hooks/useWebP.js +0 -13
  46. package/dist/hooks/useWebP.js.map +0 -1
@@ -20,124 +20,124 @@ export class GameErrorBoundary extends Component {
20
20
  return (_jsx("div", { css: containerCss, children: _jsxs("div", { css: cardCss, children: [_jsx("div", { css: iconContainerCss, children: _jsx(FontAwesomeIcon, { icon: faTriangleExclamation, css: iconCss }) }), _jsx("p", { css: messageCss, children: _jsx(Trans, { defaults: "A technical error has occurred. The error has been sent to the Game Park team.", i18nKey: "error.crash", ns: "common" }) }), _jsx("p", { css: hintCss, children: _jsx(Trans, { defaults: "You can refresh the page to continue your game.", i18nKey: "error.refresh.hint", ns: "common" }) }), _jsx("button", { css: buttonCss, onClick: () => window.location.reload(), children: _jsx(Trans, { defaults: "Refresh the page", i18nKey: "error.refresh.button", ns: "common" }) }), _jsx("div", { css: dividerCss }), _jsx("p", { css: secondaryMessageCss, children: _jsx(Trans, { defaults: "If the problem persists despite refreshing and the game is corrupted, please let us know on Discord.", i18nKey: "error.discord.hint", ns: "common" }) }), _jsxs("a", { css: discordLinkCss, href: "https://discord.gg/ZMCX5reQm8", target: "_blank", rel: "noopener noreferrer", children: [_jsx("svg", { css: discordIconCss, viewBox: "0 0 127.14 96.36", fill: "currentColor", children: _jsx("path", { d: "M107.7 8.07A105.15 105.15 0 0 0 81.47 0a72.06 72.06 0 0 0-3.36 6.83 97.68 97.68 0 0 0-29.11 0A72.37 72.37 0 0 0 45.64 0a105.89 105.89 0 0 0-26.25 8.09C2.79 32.65-1.71 56.6.54 80.21a105.73 105.73 0 0 0 32.17 16.15 77.7 77.7 0 0 0 6.89-11.11 68.42 68.42 0 0 1-10.85-5.18c.91-.66 1.8-1.34 2.66-2.04a75.57 75.57 0 0 0 64.32 0c.87.71 1.76 1.39 2.66 2.04a68.68 68.68 0 0 1-10.87 5.19 77.28 77.28 0 0 0 6.89 11.1 105.45 105.45 0 0 0 32.19-16.14c2.64-27.38-4.51-51.11-18.9-72.15ZM42.45 65.69C36.18 65.69 31 60 31 53.05c0-6.94 5.04-12.67 11.45-12.67S53.99 46.1 53.9 53.05c0 6.94-5.08 12.64-11.45 12.64Zm42.24 0C78.41 65.69 73.25 60 73.25 53.05c0-6.94 5.04-12.67 11.44-12.67s11.51 5.73 11.44 12.67c0 6.94-5.04 12.64-11.44 12.64Z" }) }), _jsx(Trans, { defaults: "Join the Game Park Discord", i18nKey: "error.discord.button", ns: "common" })] })] }) }));
21
21
  }
22
22
  }
23
- const fadeIn = keyframes `
24
- from {
25
- opacity: 0;
26
- transform: translateY(16px);
27
- }
28
- to {
29
- opacity: 1;
30
- transform: translateY(0);
31
- }
23
+ const fadeIn = keyframes `
24
+ from {
25
+ opacity: 0;
26
+ transform: translateY(16px);
27
+ }
28
+ to {
29
+ opacity: 1;
30
+ transform: translateY(0);
31
+ }
32
32
  `;
33
- const containerCss = css `
34
- display: flex;
35
- align-items: center;
36
- justify-content: center;
37
- height: 100%;
38
- width: 100%;
39
- padding: 2em;
40
- box-sizing: border-box;
41
- font-family: "Mulish", sans-serif;
33
+ const containerCss = css `
34
+ display: flex;
35
+ align-items: center;
36
+ justify-content: center;
37
+ height: 100%;
38
+ width: 100%;
39
+ padding: 2em;
40
+ box-sizing: border-box;
41
+ font-family: "Mulish", sans-serif;
42
42
  `;
43
- const cardCss = css `
44
- display: flex;
45
- flex-direction: column;
46
- align-items: center;
47
- max-width: 460px;
48
- padding: 2.5em 2.5em 2em;
49
- border-radius: 1.2em;
50
- background: #002448;
51
- color: #eee;
52
- text-align: center;
53
- box-shadow: 0 8px 32px rgba(0, 0, 0, 0.4);
54
- animation: ${fadeIn} 0.4s ease-out;
43
+ const cardCss = css `
44
+ display: flex;
45
+ flex-direction: column;
46
+ align-items: center;
47
+ max-width: 460px;
48
+ padding: 2.5em 2.5em 2em;
49
+ border-radius: 1.2em;
50
+ background: #002448;
51
+ color: #eee;
52
+ text-align: center;
53
+ box-shadow: 0 8px 32px rgba(0, 0, 0, 0.4);
54
+ animation: ${fadeIn} 0.4s ease-out;
55
55
  `;
56
- const iconContainerCss = css `
57
- display: flex;
58
- align-items: center;
59
- justify-content: center;
60
- width: 64px;
61
- height: 64px;
62
- border-radius: 50%;
63
- background: rgba(40, 184, 206, 0.15);
64
- margin-bottom: 1.2em;
56
+ const iconContainerCss = css `
57
+ display: flex;
58
+ align-items: center;
59
+ justify-content: center;
60
+ width: 64px;
61
+ height: 64px;
62
+ border-radius: 50%;
63
+ background: rgba(40, 184, 206, 0.15);
64
+ margin-bottom: 1.2em;
65
65
  `;
66
- const iconCss = css `
67
- font-size: 32px;
68
- color: #28B8CE;
66
+ const iconCss = css `
67
+ font-size: 32px;
68
+ color: #28B8CE;
69
69
  `;
70
- const messageCss = css `
71
- font-size: 1.05em;
72
- font-weight: 600;
73
- line-height: 1.5;
74
- margin: 0 0 0.3em;
70
+ const messageCss = css `
71
+ font-size: 1.05em;
72
+ font-weight: 600;
73
+ line-height: 1.5;
74
+ margin: 0 0 0.3em;
75
75
  `;
76
- const hintCss = css `
77
- font-size: 0.95em;
78
- line-height: 1.5;
79
- margin: 0;
80
- opacity: 0.8;
76
+ const hintCss = css `
77
+ font-size: 0.95em;
78
+ line-height: 1.5;
79
+ margin: 0;
80
+ opacity: 0.8;
81
81
  `;
82
- const buttonCss = css `
83
- margin-top: 1.5em;
84
- padding: 0.65em 2.2em;
85
- font-size: 1em;
86
- font-family: inherit;
87
- font-weight: 700;
88
- border: none;
89
- border-radius: 0.6em;
90
- background: #28B8CE;
91
- color: white;
92
- cursor: pointer;
93
- transition: background 0.2s, transform 0.1s;
94
- letter-spacing: 0.02em;
95
-
96
- &:hover {
97
- background: #24a5b9;
98
- }
99
-
100
- &:active {
101
- background: #2092a3;
102
- transform: scale(0.97);
103
- }
82
+ const buttonCss = css `
83
+ margin-top: 1.5em;
84
+ padding: 0.65em 2.2em;
85
+ font-size: 1em;
86
+ font-family: inherit;
87
+ font-weight: 700;
88
+ border: none;
89
+ border-radius: 0.6em;
90
+ background: #28B8CE;
91
+ color: white;
92
+ cursor: pointer;
93
+ transition: background 0.2s, transform 0.1s;
94
+ letter-spacing: 0.02em;
95
+
96
+ &:hover {
97
+ background: #24a5b9;
98
+ }
99
+
100
+ &:active {
101
+ background: #2092a3;
102
+ transform: scale(0.97);
103
+ }
104
104
  `;
105
- const dividerCss = css `
106
- width: 60%;
107
- height: 1px;
108
- background: rgba(255, 255, 255, 0.12);
109
- margin: 1.8em 0 1.2em;
105
+ const dividerCss = css `
106
+ width: 60%;
107
+ height: 1px;
108
+ background: rgba(255, 255, 255, 0.12);
109
+ margin: 1.8em 0 1.2em;
110
110
  `;
111
- const secondaryMessageCss = css `
112
- font-size: 0.85em;
113
- line-height: 1.6;
114
- margin: 0 0 1em;
115
- opacity: 0.65;
111
+ const secondaryMessageCss = css `
112
+ font-size: 0.85em;
113
+ line-height: 1.6;
114
+ margin: 0 0 1em;
115
+ opacity: 0.65;
116
116
  `;
117
- const discordLinkCss = css `
118
- display: inline-flex;
119
- align-items: center;
120
- gap: 0.5em;
121
- padding: 0.5em 1.4em;
122
- font-size: 0.9em;
123
- font-family: inherit;
124
- font-weight: 600;
125
- color: white;
126
- background: #5865F2;
127
- border-radius: 0.5em;
128
- text-decoration: none;
129
- transition: background 0.2s, transform 0.1s;
130
-
131
- &:hover {
132
- background: #4752C4;
133
- }
134
-
135
- &:active {
136
- transform: scale(0.97);
137
- }
117
+ const discordLinkCss = css `
118
+ display: inline-flex;
119
+ align-items: center;
120
+ gap: 0.5em;
121
+ padding: 0.5em 1.4em;
122
+ font-size: 0.9em;
123
+ font-family: inherit;
124
+ font-weight: 600;
125
+ color: white;
126
+ background: #5865F2;
127
+ border-radius: 0.5em;
128
+ text-decoration: none;
129
+ transition: background 0.2s, transform 0.1s;
130
+
131
+ &:hover {
132
+ background: #4752C4;
133
+ }
134
+
135
+ &:active {
136
+ transform: scale(0.97);
137
+ }
138
138
  `;
139
- const discordIconCss = css `
140
- width: 20px;
141
- height: 20px;
139
+ const discordIconCss = css `
140
+ width: 20px;
141
+ height: 20px;
142
142
  `;
143
143
  //# sourceMappingURL=GameErrorBoundary.js.map
@@ -3,24 +3,24 @@ import { css } from '@emotion/react';
3
3
  export const SetupLogItem = ({ log, game, index, customEntryCss, ...rest }) => {
4
4
  return (_jsx("div", { ...rest, children: _jsx("div", { css: [entryCss, customEntryCss, log.css], children: _jsx("div", { children: _jsx(log.Component, { game: game, index: index }) }) }) }));
5
5
  };
6
- const entryCss = css `
7
- width: 100%;
8
- background-color: rgba(0, 0, 0, 0.7);
9
- border-radius: 1em;
10
- margin-bottom: 0.5em;
11
- min-height: 1em;
12
- padding-left: 1em;
13
- margin-left: 0.05em;
14
- margin-top: 0.05em;
15
- padding-top: 0.5em;
16
- padding-bottom: 0.5em;
17
- display: flex;
18
- align-items: center;
19
- font-size: 2em;
20
- white-space: pre-wrap;
21
-
22
- img, picture {
23
- vertical-align: middle;
24
- }
6
+ const entryCss = css `
7
+ width: 100%;
8
+ background-color: rgba(0, 0, 0, 0.7);
9
+ border-radius: 1em;
10
+ margin-bottom: 0.5em;
11
+ min-height: 1em;
12
+ padding-left: 1em;
13
+ margin-left: 0.05em;
14
+ margin-top: 0.05em;
15
+ padding-top: 0.5em;
16
+ padding-bottom: 0.5em;
17
+ display: flex;
18
+ align-items: center;
19
+ font-size: 2em;
20
+ white-space: pre-wrap;
21
+
22
+ img, picture {
23
+ vertical-align: middle;
24
+ }
25
25
  `;
26
26
  //# sourceMappingURL=SetupLogItem.js.map
@@ -0,0 +1,48 @@
1
+ /** @jsxImportSource @emotion/react */
2
+ import { Interpolation, Theme } from '@emotion/react';
3
+ import { MaterialItem } from '@gamepark/rules-api';
4
+ import { ItemContext } from '../../../locators';
5
+ import { MaterialContentProps } from '../MaterialDescription';
6
+ import { MobileMaterialDescription } from '../MobileMaterialDescription';
7
+ /**
8
+ * 8-faced (octahedral) dice with CSS 3D transforms.
9
+ *
10
+ * The `images` array must contain exactly 8 images, one per face:
11
+ *
12
+ * - **images[0–3]**: top faces (triangles pointing up)
13
+ * - **images[4–7]**: bottom faces (triangles pointing down)
14
+ *
15
+ * Within each half, faces are arranged by cardinal direction:
16
+ *
17
+ * | Index | Half | Direction |
18
+ * |-------|--------|-----------|
19
+ * | 0 | top | front |
20
+ * | 1 | top | right |
21
+ * | 2 | top | back |
22
+ * | 3 | top | left |
23
+ * | 4 | bottom | front |
24
+ * | 5 | bottom | right |
25
+ * | 6 | bottom | back |
26
+ * | 7 | bottom | left |
27
+ *
28
+ * `location.rotation` (0–7) selects which face is shown on top.
29
+ * Top face images should have their symbol shifted toward the base of the triangle (centroid offset).
30
+ * Bottom face images should be rotated 180° with the symbol shifted the opposite way.
31
+ */
32
+ export declare abstract class OctahedralDiceDescription<P extends number = number, M extends number = number, L extends number = number, ItemId = any> extends MobileMaterialDescription<P, M, L, ItemId> {
33
+ width: number;
34
+ ratio: number;
35
+ borderRadius: number;
36
+ color: string;
37
+ abstract images: string[] | Record<any, string[]>;
38
+ /** Set to true to display face index labels (0-7) for debugging */
39
+ debugFaceLabels: boolean;
40
+ private get tz();
41
+ getImages(): string[];
42
+ getDiceImages(itemId: ItemId): string[];
43
+ getColor(_itemId: ItemId): string;
44
+ content: ({ itemId, highlight, preview, playDown }: MaterialContentProps<ItemId>) => import("@emotion/react/jsx-runtime").JSX.Element;
45
+ getItemTransform(item: MaterialItem<P, L>, context: ItemContext<P, M, L>): string[];
46
+ getRotations(item: MaterialItem<P, L>, _context: ItemContext<P, M, L>): string[];
47
+ getHelpDisplayExtraCss(item: Partial<MaterialItem<P, L>>, context: ItemContext<P, M, L>): Interpolation<Theme>;
48
+ }
@@ -0,0 +1,142 @@
1
+ import { jsx as _jsx, Fragment as _Fragment } from "@emotion/react/jsx-runtime";
2
+ /** @jsxImportSource @emotion/react */
3
+ import { css } from '@emotion/react';
4
+ import { range } from 'es-toolkit';
5
+ import { backgroundCss, shadowEffect, shineEffect, transformCss } from '../../../css';
6
+ import { MobileMaterialDescription } from '../MobileMaterialDescription';
7
+ const TILT = 35.26; // 90 - arctan(sqrt(2)) in degrees
8
+ const TZ_RATIO = 0.2562; // translateZ / width ratio for octahedron
9
+ /**
10
+ * 8-faced (octahedral) dice with CSS 3D transforms.
11
+ *
12
+ * The `images` array must contain exactly 8 images, one per face:
13
+ *
14
+ * - **images[0–3]**: top faces (triangles pointing up)
15
+ * - **images[4–7]**: bottom faces (triangles pointing down)
16
+ *
17
+ * Within each half, faces are arranged by cardinal direction:
18
+ *
19
+ * | Index | Half | Direction |
20
+ * |-------|--------|-----------|
21
+ * | 0 | top | front |
22
+ * | 1 | top | right |
23
+ * | 2 | top | back |
24
+ * | 3 | top | left |
25
+ * | 4 | bottom | front |
26
+ * | 5 | bottom | right |
27
+ * | 6 | bottom | back |
28
+ * | 7 | bottom | left |
29
+ *
30
+ * `location.rotation` (0–7) selects which face is shown on top.
31
+ * Top face images should have their symbol shifted toward the base of the triangle (centroid offset).
32
+ * Bottom face images should be rotated 180° with the symbol shifted the opposite way.
33
+ */
34
+ export class OctahedralDiceDescription extends MobileMaterialDescription {
35
+ width = 2;
36
+ ratio = 1;
37
+ borderRadius = 0;
38
+ color = '#222222';
39
+ /** Set to true to display face index labels (0-7) for debugging */
40
+ debugFaceLabels = false;
41
+ get tz() { return this.width * TZ_RATIO; }
42
+ getImages() {
43
+ return Array.isArray(this.images) ? this.images : Object.values(this.images).flat();
44
+ }
45
+ getDiceImages(itemId) {
46
+ return Array.isArray(this.images) ? this.images : this.images[itemId];
47
+ }
48
+ getColor(_itemId) {
49
+ return this.color;
50
+ }
51
+ content = ({ itemId, highlight, preview, playDown = preview }) => {
52
+ const images = this.getDiceImages(itemId);
53
+ const w = this.width;
54
+ const tz = this.tz;
55
+ const sideCss = css `
56
+ position: absolute;
57
+ width: ${w}em;
58
+ height: ${w}em;
59
+ backface-visibility: hidden;
60
+ `;
61
+ const diamondTopCss = css `
62
+ display: block;
63
+ width: 100%;
64
+ height: 100%;
65
+ overflow: hidden;
66
+ backface-visibility: hidden;
67
+ transform: translateY(50%) rotate(30deg) skewY(30deg) scaleX(0.866);
68
+ filter: drop-shadow(0 0 0.03em rgba(0, 0, 0, 0.5));
69
+ `;
70
+ const diamondBottomCss = css `
71
+ display: block;
72
+ width: 100%;
73
+ height: 100%;
74
+ overflow: hidden;
75
+ backface-visibility: hidden;
76
+ transform: translateY(-50%) rotate(30deg) skewY(30deg) scaleX(0.866);
77
+ filter: drop-shadow(0 0 0.03em rgba(0, 0, 0, 0.5));
78
+ `;
79
+ const contentTopCss = css `
80
+ display: block;
81
+ width: 100%;
82
+ height: 100%;
83
+ backface-visibility: hidden;
84
+ background-color: ${this.getColor(itemId)};
85
+ transform: scaleX(1.155) skewY(-30deg) rotate(-30deg) translateY(-50%);
86
+ `;
87
+ const contentBottomCss = css `
88
+ display: block;
89
+ width: 100%;
90
+ height: 100%;
91
+ backface-visibility: hidden;
92
+ background-color: ${this.getColor(itemId)};
93
+ transform: scaleX(1.155) skewY(-30deg) rotate(-30deg) translateY(50%);
94
+ `;
95
+ const faceLabelCss = this.debugFaceLabels ? css `
96
+ position: absolute;
97
+ top: 50%;
98
+ left: 50%;
99
+ transform: translate(-50%, -50%);
100
+ font-size: ${w * 0.3}em;
101
+ font-weight: bold;
102
+ color: red;
103
+ pointer-events: none;
104
+ z-index: 1;
105
+ ` : undefined;
106
+ return _jsx(_Fragment, { children: range(8).map((_, index) => {
107
+ const yRot = (index % 4) * 90;
108
+ // Bottom faces are offset by 180° so that rotateX(180deg) brings face N to the top
109
+ const bottomYRot = ((index % 4) * 90 + 180) % 360;
110
+ const sideTransform = index < 4
111
+ ? transformCss(index > 0 ? `rotateY(${yRot}deg)` : undefined, `rotateX(${TILT}deg)`, `translateZ(${tz}em)`)
112
+ : transformCss(`translateY(52%)`, bottomYRot > 0 ? `rotateY(${bottomYRot}deg)` : undefined, `rotateX(${-TILT}deg)`, `translateZ(${tz}em)`);
113
+ return _jsx("div", { css: [sideCss, sideTransform], children: _jsx("div", { css: index < 4 ? diamondTopCss : diamondBottomCss, children: _jsx("div", { css: [
114
+ index < 4 ? contentTopCss : contentBottomCss,
115
+ backgroundCss(images[index]),
116
+ highlight ? shineEffect : playDown && shadowEffect
117
+ ], children: faceLabelCss && _jsx("span", { css: faceLabelCss, children: index }) }) }) }, index);
118
+ }) });
119
+ };
120
+ getItemTransform(item, context) {
121
+ return super.getItemTransform(item, context).concat(`translateZ(${this.tz}em)`, ...this.getRotations(item, context));
122
+ }
123
+ getRotations(item, _context) {
124
+ switch (item.location.rotation) {
125
+ case 0: return [];
126
+ case 1: return ['rotateY(-90deg)'];
127
+ case 2: return ['rotateY(-180deg)'];
128
+ case 3: return ['rotateY(90deg)'];
129
+ case 4: return ['rotateX(180deg)'];
130
+ case 5: return ['rotateX(180deg)', 'rotateY(90deg)'];
131
+ case 6: return ['rotateX(180deg)', 'rotateY(180deg)'];
132
+ case 7: return ['rotateX(180deg)', 'rotateY(-90deg)'];
133
+ default: return [];
134
+ }
135
+ }
136
+ getHelpDisplayExtraCss(item, context) {
137
+ return item.location && [transformCss(...this.getRotations(item, context)), css `
138
+ margin: ${this.width / 4}em;
139
+ `];
140
+ }
141
+ }
142
+ //# sourceMappingURL=OctahedralDiceDescription.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OctahedralDiceDescription.js","sourceRoot":"","sources":["../../../../src/components/material/Dices/OctahedralDiceDescription.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ /** @jsxImportSource @emotion/react */
2
+ import { FC, ReactNode } from 'react';
3
+ /**
4
+ * A single entry in the DevToolsHub panel.
5
+ * Use this instead of raw `<button>` when adding custom tools via `children`.
6
+ *
7
+ * @example
8
+ * <DevToolsHub>
9
+ * <DevToolEntry icon="✦" label="Card Viewer" desc="Browse agents" onClick={() => setShowCards(true)} />
10
+ * </DevToolsHub>
11
+ */
12
+ export declare const DevToolEntry: FC<{
13
+ icon: ReactNode;
14
+ label: string;
15
+ desc?: string;
16
+ onClick?: () => void;
17
+ }>;
@@ -0,0 +1,13 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "@emotion/react/jsx-runtime";
2
+ import { devToolBtnCss, devToolIconCss, devToolLabelCss, devToolDescCss } from './DevToolsStyles';
3
+ /**
4
+ * A single entry in the DevToolsHub panel.
5
+ * Use this instead of raw `<button>` when adding custom tools via `children`.
6
+ *
7
+ * @example
8
+ * <DevToolsHub>
9
+ * <DevToolEntry icon="✦" label="Card Viewer" desc="Browse agents" onClick={() => setShowCards(true)} />
10
+ * </DevToolsHub>
11
+ */
12
+ export const DevToolEntry = ({ icon, label, desc, onClick }) => (_jsxs("button", { css: devToolBtnCss, onClick: onClick, children: [_jsx("span", { css: devToolIconCss, children: icon }), _jsx("span", { css: devToolLabelCss, children: label }), desc && _jsx("span", { css: devToolDescCss, children: desc })] }));
13
+ //# sourceMappingURL=DevToolEntry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DevToolEntry.js","sourceRoot":"","sources":["../../../../src/components/material/GameTable/DevToolEntry.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAEjG;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,YAAY,GAKpB,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CACvC,kBAAQ,GAAG,EAAE,aAAa,EAAE,OAAO,EAAE,OAAO,aAC1C,eAAM,GAAG,EAAE,cAAc,YAAG,IAAI,GAAQ,EACxC,eAAM,GAAG,EAAE,eAAe,YAAG,KAAK,GAAQ,EACzC,IAAI,IAAI,eAAM,GAAG,EAAE,cAAc,YAAG,IAAI,GAAQ,IAC1C,CACV,CAAA"}
@@ -0,0 +1,58 @@
1
+ export declare const GP_PRIMARY = "#28B8CE";
2
+ export declare const GP_DARK = "#002448";
3
+ export declare const GP_SURFACE = "#0a1929";
4
+ export declare const GP_ACCENT = "#9fe2f7";
5
+ export declare const fabCss: import("@emotion/utils").SerializedStyles;
6
+ export declare const logoCss: import("@emotion/utils").SerializedStyles;
7
+ export declare const hubContainerCss: import("@emotion/utils").SerializedStyles;
8
+ export declare const mainMenuCss: import("@emotion/utils").SerializedStyles;
9
+ export declare const subPanelCss: import("@emotion/utils").SerializedStyles;
10
+ export declare const subPanelHeaderCss: import("@emotion/utils").SerializedStyles;
11
+ export declare const subPanelTitleCss: import("@emotion/utils").SerializedStyles;
12
+ export declare const subPanelContentCss: import("@emotion/utils").SerializedStyles;
13
+ export declare const panelHeaderCss: import("@emotion/utils").SerializedStyles;
14
+ export declare const headerLogoCss: import("@emotion/utils").SerializedStyles;
15
+ export declare const panelTitleCss: import("@emotion/utils").SerializedStyles;
16
+ export declare const panelBadgeCss: import("@emotion/utils").SerializedStyles;
17
+ export declare const menuListCss: import("@emotion/utils").SerializedStyles;
18
+ export declare const menuItemCss: import("@emotion/utils").SerializedStyles;
19
+ export declare const menuItemActiveCss: import("@emotion/utils").SerializedStyles;
20
+ export declare const menuItemIconCss: import("@emotion/utils").SerializedStyles;
21
+ export declare const menuItemLabelCss: import("@emotion/utils").SerializedStyles;
22
+ export declare const menuChevronCss: import("@emotion/utils").SerializedStyles;
23
+ export declare const devToolBtnCss: import("@emotion/utils").SerializedStyles;
24
+ export declare const toolBtnActiveCss: import("@emotion/utils").SerializedStyles;
25
+ export declare const devToolIconCss: import("@emotion/utils").SerializedStyles;
26
+ export declare const devToolLabelCss: import("@emotion/utils").SerializedStyles;
27
+ export declare const devToolDescCss: import("@emotion/utils").SerializedStyles;
28
+ export declare const activeIndicatorCss: import("@emotion/utils").SerializedStyles;
29
+ export declare const dividerCss: import("@emotion/utils").SerializedStyles;
30
+ export declare const inlineRowCss: import("@emotion/utils").SerializedStyles;
31
+ export declare const stepBtnCss: import("@emotion/utils").SerializedStyles;
32
+ export declare const numberInputCss: import("@emotion/utils").SerializedStyles;
33
+ export declare const textInputCss: import("@emotion/utils").SerializedStyles;
34
+ export declare const goBtnCss: import("@emotion/utils").SerializedStyles;
35
+ export declare const playerBtnCss: import("@emotion/utils").SerializedStyles;
36
+ export declare const playerBtnActiveCss: import("@emotion/utils").SerializedStyles;
37
+ export declare const savedListCss: import("@emotion/utils").SerializedStyles;
38
+ export declare const savedEntryCss: import("@emotion/utils").SerializedStyles;
39
+ export declare const savedLabelCss: import("@emotion/utils").SerializedStyles;
40
+ export declare const savedActionsCss: import("@emotion/utils").SerializedStyles;
41
+ export declare const smallBtnCss: import("@emotion/utils").SerializedStyles;
42
+ export declare const smallBtnDangerCss: import("@emotion/utils").SerializedStyles;
43
+ export declare const backdropCss: import("@emotion/utils").SerializedStyles;
44
+ export declare const modalBackdropCss: import("@emotion/utils").SerializedStyles;
45
+ export declare const modalCss: import("@emotion/utils").SerializedStyles;
46
+ export declare const modalHeaderCss: import("@emotion/utils").SerializedStyles;
47
+ export declare const modalTitleCss: import("@emotion/utils").SerializedStyles;
48
+ export declare const modalCloseBtnCss: import("@emotion/utils").SerializedStyles;
49
+ export declare const modalBodyCss: import("@emotion/utils").SerializedStyles;
50
+ export declare const modalTextareaCss: import("@emotion/utils").SerializedStyles;
51
+ export declare const pasteErrorCss: import("@emotion/utils").SerializedStyles;
52
+ export declare const modalFooterCss: import("@emotion/utils").SerializedStyles;
53
+ export declare const modalCancelBtnCss: import("@emotion/utils").SerializedStyles;
54
+ export declare const modalLoadBtnCss: import("@emotion/utils").SerializedStyles;
55
+ export declare const flashCss: import("@emotion/utils").SerializedStyles;
56
+ export declare const toggleRowCss: import("@emotion/utils").SerializedStyles;
57
+ export declare const checkboxCss: import("@emotion/utils").SerializedStyles;
58
+ export declare const toggleLabelCss: import("@emotion/utils").SerializedStyles;