@gamepark/react-game 7.7.11 → 7.7.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 (106) hide show
  1. package/README.md +41 -41
  2. package/dist/components/GameProvider/GameErrorBoundary.js +108 -108
  3. package/dist/components/GameProvider/GameInternalProviders.d.ts +6 -0
  4. package/dist/components/GameProvider/GameInternalProviders.js +10 -0
  5. package/dist/components/GameProvider/GameInternalProviders.js.map +1 -0
  6. package/dist/components/GameProvider/LogHistoryBridge.d.ts +7 -0
  7. package/dist/components/GameProvider/LogHistoryBridge.js +23 -0
  8. package/dist/components/GameProvider/LogHistoryBridge.js.map +1 -0
  9. package/dist/components/Header/Header.js +45 -4
  10. package/dist/components/Header/Header.js.map +1 -1
  11. package/dist/components/JournalTabs/History/SetupLogItem.js +19 -19
  12. package/dist/components/JournalTabs/History/VirtualizedLogItem.d.ts +12 -0
  13. package/dist/components/JournalTabs/History/VirtualizedLogItem.js +6 -0
  14. package/dist/components/JournalTabs/History/VirtualizedLogItem.js.map +1 -0
  15. package/dist/components/Log/LiveLogButton.js +3 -1
  16. package/dist/components/Log/LiveLogButton.js.map +1 -1
  17. package/dist/components/Log/LogHistoryProvider.d.ts +7 -0
  18. package/dist/components/Log/LogHistoryProvider.js +22 -0
  19. package/dist/components/Log/LogHistoryProvider.js.map +1 -0
  20. package/dist/components/buttons/PlayMoveButton/PlayMoveButton.js +2 -3
  21. package/dist/components/buttons/PlayMoveButton/PlayMoveButton.js.map +1 -1
  22. package/dist/components/buttons/ThemeButton/ThemeButton.js +4 -1
  23. package/dist/components/buttons/ThemeButton/ThemeButton.js.map +1 -1
  24. package/dist/components/dialogs/Dialog.js +35 -2
  25. package/dist/components/dialogs/Dialog.js.map +1 -1
  26. package/dist/components/dialogs/RulesDialog/BottomBarNavigation.js +2 -2
  27. package/dist/components/dialogs/RulesDialog/BottomBarNavigation.js.map +1 -1
  28. package/dist/components/dialogs/RulesDialog/RulesDialog.js +2 -3
  29. package/dist/components/dialogs/RulesDialog/RulesDialog.js.map +1 -1
  30. package/dist/components/material/Dices/OctahedralDiceDescription.d.ts +48 -0
  31. package/dist/components/material/Dices/OctahedralDiceDescription.js +142 -0
  32. package/dist/components/material/Dices/OctahedralDiceDescription.js.map +1 -0
  33. package/dist/components/material/GameTable/DevToolEntry.d.ts +17 -0
  34. package/dist/components/material/GameTable/DevToolEntry.js +13 -0
  35. package/dist/components/material/GameTable/DevToolEntry.js.map +1 -0
  36. package/dist/components/material/GameTable/DevTools/BotTool.js +23 -2
  37. package/dist/components/material/GameTable/DevTools/BotTool.js.map +1 -1
  38. package/dist/components/material/GameTable/DevTools/DevToolsStyles.d.ts +58 -0
  39. package/dist/components/material/GameTable/DevTools/DevToolsStyles.js +706 -0
  40. package/dist/components/material/GameTable/DevTools/DevToolsStyles.js.map +1 -0
  41. package/dist/components/material/GameTable/DevToolsHub.d.ts +4 -21
  42. package/dist/components/material/GameTable/DevToolsHub.js +24 -830
  43. package/dist/components/material/GameTable/DevToolsHub.js.map +1 -1
  44. package/dist/components/material/GameTable/DevToolsStyles.d.ts +67 -0
  45. package/dist/components/material/GameTable/DevToolsStyles.js +752 -0
  46. package/dist/components/material/GameTable/DevToolsStyles.js.map +1 -0
  47. package/dist/components/material/GameTable/JsonHighlighter.d.ts +3 -0
  48. package/dist/components/material/GameTable/JsonHighlighter.js +37 -0
  49. package/dist/components/material/GameTable/JsonHighlighter.js.map +1 -0
  50. package/dist/components/material/sound/bellSound.d.ts +1 -0
  51. package/dist/components/material/sound/bellSound.js +2 -0
  52. package/dist/components/material/sound/bellSound.js.map +1 -0
  53. package/dist/components/menus/BugReport/BugReportButton.js +3 -1
  54. package/dist/components/menus/BugReport/BugReportButton.js.map +1 -1
  55. package/dist/components/menus/EjectPlayer/EjectPlayerButton.js +3 -1
  56. package/dist/components/menus/EjectPlayer/EjectPlayerButton.js.map +1 -1
  57. package/dist/components/menus/EjectPlayer/EjectPlayerPopButton.js +3 -2
  58. package/dist/components/menus/EjectPlayer/EjectPlayerPopButton.js.map +1 -1
  59. package/dist/components/menus/Menu/LogoIcon.js +1 -1
  60. package/dist/components/menus/Menu/LogoIcon.js.map +1 -1
  61. package/dist/components/menus/Menu/Menu.js +2 -1
  62. package/dist/components/menus/Menu/Menu.js.map +1 -1
  63. package/dist/components/menus/Menu/NavButton.js +3 -1
  64. package/dist/components/menus/Menu/NavButton.js.map +1 -1
  65. package/dist/components/menus/RestartTutorialButton/RestartTutorialButton.js +3 -1
  66. package/dist/components/menus/RestartTutorialButton/RestartTutorialButton.js.map +1 -1
  67. package/dist/components/menus/Result/ResultButton.js +3 -1
  68. package/dist/components/menus/Result/ResultButton.js.map +1 -1
  69. package/dist/components/menus/SoundButton/SoundButton.js +3 -1
  70. package/dist/components/menus/SoundButton/SoundButton.js.map +1 -1
  71. package/dist/components/menus/TimeStatsButton/TimeStatsButton.d.ts +1 -1
  72. package/dist/components/menus/TimeStatsButton/TimeStatsButton.js +5 -0
  73. package/dist/components/menus/TimeStatsButton/TimeStatsButton.js.map +1 -1
  74. package/dist/components/menus/UndoButton/UndoButton.js +3 -1
  75. package/dist/components/menus/UndoButton/UndoButton.js.map +1 -1
  76. package/dist/components/tutorial/MaterialTutorialDisplay.js +5 -5
  77. package/dist/components/tutorial/MaterialTutorialDisplay.js.map +1 -1
  78. package/dist/css/GameTheme.d.ts +8 -0
  79. package/dist/css/GameTheme.js +4 -0
  80. package/dist/css/GameTheme.js.map +1 -1
  81. package/dist/css/backgroundCss.js +3 -3
  82. package/dist/css/cursorCss.js +6 -6
  83. package/dist/css/fadeIn.js +6 -6
  84. package/dist/css/shineEffect.js +28 -28
  85. package/dist/css/transformCss.js +4 -4
  86. package/dist/hooks/LogHistoryContext.d.ts +6 -0
  87. package/dist/hooks/LogHistoryContext.js +4 -0
  88. package/dist/hooks/LogHistoryContext.js.map +1 -0
  89. package/dist/hooks/useBackgroundTabHandler.d.ts +1 -0
  90. package/dist/hooks/useBackgroundTabHandler.js +38 -0
  91. package/dist/hooks/useBackgroundTabHandler.js.map +1 -0
  92. package/dist/hooks/useFastAnimationsOnReturn.d.ts +1 -0
  93. package/dist/hooks/useFastAnimationsOnReturn.js +38 -0
  94. package/dist/hooks/useFastAnimationsOnReturn.js.map +1 -0
  95. package/dist/hooks/useFlatHistory.js +4 -1
  96. package/dist/hooks/useFlatHistory.js.map +1 -1
  97. package/package.json +1 -1
  98. package/dist/components/material/Wheel/WheelContent.d.ts +0 -13
  99. package/dist/components/material/Wheel/WheelContent.js +0 -37
  100. package/dist/components/material/Wheel/WheelContent.js.map +0 -1
  101. package/dist/hooks/useFailures.d.ts +0 -1
  102. package/dist/hooks/useFailures.js +0 -11
  103. package/dist/hooks/useFailures.js.map +0 -1
  104. package/dist/hooks/useWebP.d.ts +0 -1
  105. package/dist/hooks/useWebP.js +0 -13
  106. package/dist/hooks/useWebP.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"ThemeButton.js","sourceRoot":"","sources":["../../../../src/components/buttons/ThemeButton/ThemeButton.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAEzC,MAAM,CAAC,MAAM,WAAW,GAAgD,CAAC,KAAK,EAAE,EAAE;IAChF,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAA;IACxB,OAAO,iBAAQ,GAAG,EAAE,KAAK,CAAC,OAAO,KAAM,KAAK,GAAG,CAAA;AACjD,CAAC,CAAA"}
1
+ {"version":3,"file":"ThemeButton.js","sourceRoot":"","sources":["../../../../src/components/buttons/ThemeButton/ThemeButton.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AACzC,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAA;AAEjD,MAAM,CAAC,MAAM,WAAW,GAAgD,CAAC,KAAK,EAAE,EAAE;IAChF,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAA;IACxB,iEAAiE;IACjE,kEAAkE;IAClE,OAAO,iBAAQ,GAAG,EAAE,KAAK,CAAC,OAAO,IAAI,kBAAkB,KAAM,KAAK,GAAG,CAAA;AACvE,CAAC,CAAA"}
@@ -1,5 +1,5 @@
1
1
  import { jsx as _jsx } from "@emotion/react/jsx-runtime";
2
- import { css, keyframes, useTheme } from '@emotion/react';
2
+ import { css, keyframes, ThemeProvider, useTheme } from '@emotion/react';
3
3
  import { useEffect, useState } from 'react';
4
4
  import { createPortal } from 'react-dom';
5
5
  export const Dialog = ({ children, open, backdropCss, onBackdropClick, transitionDelay = 0.3, rootId = 'root', ...props }) => {
@@ -27,8 +27,41 @@ export const Dialog = ({ children, open, backdropCss, onBackdropClick, transitio
27
27
  console.error('Dialog cannot be displayed because this element id does not exists:', rootId);
28
28
  return null;
29
29
  }
30
- return createPortal(_jsx("div", { css: [backdropStyle(transitionDelay), !open && hide(transitionDelay), backdropCss], onClick: event => !justDisplayed && onBackdropClick?.(event), children: _jsx("div", { onClick: event => event.stopPropagation(), css: [dialogCss, open ? (theme.dialog.openAnimation ?? dialogShow(transitionDelay)) : (theme.dialog.closeAnimation ?? dialogHide(transitionDelay)), theme.dialog.container], ...props, children: children }) }), root);
30
+ // Layered button styling for buttons rendered inside this dialog:
31
+ // 1. dialogButtonBaseCss — structural rules (padding, font-weight,
32
+ // border-radius, ...). Always applied so
33
+ // games never lose layout when they only
34
+ // tweak colours.
35
+ // 2. theme.buttons — game-wide button recipe override.
36
+ // 3. theme.dialog.buttons — dialog-specific override.
37
+ // Falls back to onSurfaceButtonCss visuals via ThemeButton when the
38
+ // game does not provide any theme.buttons.
39
+ const resolvedDialogButtonsCss = [dialogButtonBaseCss, theme.buttons, theme.dialog.buttons];
40
+ const dialogContent = (_jsx("div", { onClick: event => event.stopPropagation(), css: [dialogCss, open ? (theme.dialog.openAnimation ?? dialogShow(transitionDelay)) : (theme.dialog.closeAnimation ?? dialogHide(transitionDelay)), theme.dialog.container], ...props, children: children }));
41
+ return createPortal(_jsx("div", { css: [backdropStyle(transitionDelay), !open && hide(transitionDelay), backdropCss], onClick: event => !justDisplayed && onBackdropClick?.(event), children: _jsx(ThemeProvider, { theme: t => ({ ...t, buttons: resolvedDialogButtonsCss }), children: dialogContent }) }), root);
31
42
  };
43
+ // Structural base — applied to every button rendered inside a Dialog
44
+ // regardless of the active theme. Games override visuals via
45
+ // theme.buttons / theme.dialog.buttons but always inherit the
46
+ // structural rules (padding, border-radius, cursor, ...) from here so
47
+ // they don't have to redeclare them.
48
+ const dialogButtonBaseCss = css `
49
+ cursor: pointer;
50
+ padding: 0.3em 0.9em;
51
+ border-radius: 2em;
52
+ border: 0.05em solid currentColor;
53
+ background: transparent;
54
+ font-weight: 600;
55
+
56
+ &:focus { outline: none; }
57
+
58
+ &:disabled {
59
+ color: #555555;
60
+ border-color: #555555;
61
+ cursor: auto;
62
+ opacity: 0.5;
63
+ }
64
+ `;
32
65
  const fadeIn = keyframes `
33
66
  from {
34
67
  opacity: 0;
@@ -1 +1 @@
1
- {"version":3,"file":"Dialog.js","sourceRoot":"","sources":["../../../src/components/dialogs/Dialog.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Dialog.js","sourceRoot":"","sources":["../../../src/components/dialogs/Dialog.tsx"],"names":[],"mappings":"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"}
@@ -6,10 +6,10 @@ import { faChevronRight } from '@fortawesome/free-solid-svg-icons/faChevronRight
6
6
  import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
7
7
  import { useTranslation } from 'react-i18next';
8
8
  export const BottomBarNavigation = ({ onPrevious, onNext, currentIndex, total }) => {
9
- const { t } = useTranslation();
9
+ const { t } = useTranslation('common');
10
10
  const theme = useTheme();
11
11
  const primary = theme.palette.primary;
12
- return (_jsxs("div", { css: [barCss(primary), theme.dialog.navigationCss], children: [_jsxs("button", { css: btnCss(primary), onClick: onPrevious, disabled: !onPrevious, children: [_jsx(FontAwesomeIcon, { icon: faChevronLeft, css: iconCss }), _jsx("span", { children: t('Previous', 'common') })] }), _jsxs("div", { css: counterCss, children: [_jsx("div", { css: dotsCss, children: Array.from({ length: Math.min(total, 8) }, (_, i) => (_jsx("div", { css: [dotCss(primary), i === Math.min(currentIndex, 7) && activeDotCss(primary)] }, i))) }), _jsxs("span", { children: [currentIndex + 1, " / ", total] })] }), _jsxs("button", { css: btnCss(primary), onClick: onNext, disabled: !onNext, children: [_jsx("span", { children: t('Next', 'common') }), _jsx(FontAwesomeIcon, { icon: faChevronRight, css: iconCss })] })] }));
12
+ return (_jsxs("div", { css: [barCss(primary), theme.dialog.navigationCss], children: [_jsxs("button", { css: btnCss(primary), onClick: onPrevious, disabled: !onPrevious, children: [_jsx(FontAwesomeIcon, { icon: faChevronLeft, css: iconCss }), _jsx("span", { children: t('nav.previous') })] }), _jsxs("div", { css: counterCss, children: [_jsx("div", { css: dotsCss, children: Array.from({ length: Math.min(total, 8) }, (_, i) => (_jsx("div", { css: [dotCss(primary), i === Math.min(currentIndex, 7) && activeDotCss(primary)] }, i))) }), _jsxs("span", { children: [currentIndex + 1, " / ", total] })] }), _jsxs("button", { css: btnCss(primary), onClick: onNext, disabled: !onNext, children: [_jsx("span", { children: t('nav.next') }), _jsx(FontAwesomeIcon, { icon: faChevronRight, css: iconCss })] })] }));
13
13
  };
14
14
  const barCss = (primary) => css `
15
15
  display: flex;
@@ -1 +1 @@
1
- {"version":3,"file":"BottomBarNavigation.js","sourceRoot":"","sources":["../../../../src/components/dialogs/RulesDialog/BottomBarNavigation.tsx"],"names":[],"mappings":";AAAA,sCAAsC;AACtC,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,iDAAiD,CAAA;AAC/E,OAAO,EAAE,cAAc,EAAE,MAAM,kDAAkD,CAAA;AACjF,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAA;AAEhE,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAG9C,MAAM,CAAC,MAAM,mBAAmB,GAA8B,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,EAAE,EAAE;IAC5G,MAAM,EAAE,CAAC,EAAE,GAAG,cAAc,EAAE,CAAA;IAC9B,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAA;IACxB,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAA;IACrC,OAAO,CACL,eAAK,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,aACrD,kBAAQ,GAAG,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,UAAU,aACtE,KAAC,eAAe,IAAC,IAAI,EAAE,aAAa,EAAE,GAAG,EAAE,OAAO,GAAG,EACrD,yBAAO,CAAC,CAAC,UAAU,EAAE,QAAQ,CAAC,GAAQ,IAC/B,EACT,eAAK,GAAG,EAAE,UAAU,aAClB,cAAK,GAAG,EAAE,OAAO,YACd,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CACpD,cAAa,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC,CAAC,IAAI,YAAY,CAAC,OAAO,CAAC,CAAC,IAAnF,CAAC,CAAqF,CACjG,CAAC,GACE,EACN,2BAAO,YAAY,GAAG,CAAC,SAAK,KAAK,IAAQ,IACrC,EACN,kBAAQ,GAAG,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,MAAM,aAC9D,yBAAO,CAAC,CAAC,MAAM,EAAE,QAAQ,CAAC,GAAQ,EAClC,KAAC,eAAe,IAAC,IAAI,EAAE,cAAc,EAAE,GAAG,EAAE,OAAO,GAAG,IAC/C,IACL,CACP,CAAA;AACH,CAAC,CAAA;AAED,MAAM,MAAM,GAAG,CAAC,OAAe,EAAE,EAAE,CAAC,GAAG,CAAA;;;;;;6CAMM,OAAO;2DACO,OAAO;CACjE,CAAA;AAED,MAAM,MAAM,GAAG,CAAC,OAAe,EAAE,EAAE,CAAC,GAAG,CAAA;;;;;;;;;WAS5B,OAAO;;2CAEyB,OAAO;;;;;qCAKb,OAAO;oBACxB,OAAO;;;;qCAIU,OAAO;;;;;;;CAO3C,CAAA;AAED,MAAM,OAAO,GAAG,GAAG,CAAA;;CAElB,CAAA;AAED,MAAM,UAAU,GAAG,GAAG,CAAA;;;;;;;;CAQrB,CAAA;AAED,MAAM,OAAO,GAAG,GAAG,CAAA;;;CAGlB,CAAA;AAED,MAAM,MAAM,GAAG,CAAC,OAAe,EAAE,EAAE,CAAC,GAAG,CAAA;;;;mCAIJ,OAAO;;CAEzC,CAAA;AAED,MAAM,YAAY,GAAG,CAAC,OAAe,EAAE,EAAE,CAAC,GAAG,CAAA;gBAC7B,OAAO;;;CAGtB,CAAA"}
1
+ {"version":3,"file":"BottomBarNavigation.js","sourceRoot":"","sources":["../../../../src/components/dialogs/RulesDialog/BottomBarNavigation.tsx"],"names":[],"mappings":";AAAA,sCAAsC;AACtC,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,iDAAiD,CAAA;AAC/E,OAAO,EAAE,cAAc,EAAE,MAAM,kDAAkD,CAAA;AACjF,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAA;AAEhE,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAG9C,MAAM,CAAC,MAAM,mBAAmB,GAA8B,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,EAAE,EAAE;IAC5G,MAAM,EAAE,CAAC,EAAE,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAA;IACtC,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAA;IACxB,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAA;IACrC,OAAO,CACL,eAAK,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,aACrD,kBAAQ,GAAG,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,UAAU,aACtE,KAAC,eAAe,IAAC,IAAI,EAAE,aAAa,EAAE,GAAG,EAAE,OAAO,GAAG,EACrD,yBAAO,CAAC,CAAC,cAAc,CAAC,GAAQ,IACzB,EACT,eAAK,GAAG,EAAE,UAAU,aAClB,cAAK,GAAG,EAAE,OAAO,YACd,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CACpD,cAAa,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC,CAAC,IAAI,YAAY,CAAC,OAAO,CAAC,CAAC,IAAnF,CAAC,CAAqF,CACjG,CAAC,GACE,EACN,2BAAO,YAAY,GAAG,CAAC,SAAK,KAAK,IAAQ,IACrC,EACN,kBAAQ,GAAG,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,MAAM,aAC9D,yBAAO,CAAC,CAAC,UAAU,CAAC,GAAQ,EAC5B,KAAC,eAAe,IAAC,IAAI,EAAE,cAAc,EAAE,GAAG,EAAE,OAAO,GAAG,IAC/C,IACL,CACP,CAAA;AACH,CAAC,CAAA;AAED,MAAM,MAAM,GAAG,CAAC,OAAe,EAAE,EAAE,CAAC,GAAG,CAAA;;;;;;6CAMM,OAAO;2DACO,OAAO;CACjE,CAAA;AAED,MAAM,MAAM,GAAG,CAAC,OAAe,EAAE,EAAE,CAAC,GAAG,CAAA;;;;;;;;;WAS5B,OAAO;;2CAEyB,OAAO;;;;;qCAKb,OAAO;oBACxB,OAAO;;;;qCAIU,OAAO;;;;;;;CAO3C,CAAA;AAED,MAAM,OAAO,GAAG,GAAG,CAAA;;CAElB,CAAA;AAED,MAAM,UAAU,GAAG,GAAG,CAAA;;;;;;;;CAQrB,CAAA;AAED,MAAM,OAAO,GAAG,GAAG,CAAA;;;CAGlB,CAAA;AAED,MAAM,MAAM,GAAG,CAAC,OAAe,EAAE,EAAE,CAAC,GAAG,CAAA;;;;mCAIJ,OAAO;;CAEzC,CAAA;AAED,MAAM,YAAY,GAAG,CAAC,OAAe,EAAE,EAAE,CAAC,GAAG,CAAA;gBAC7B,OAAO;;;CAGtB,CAAA"}
@@ -1,13 +1,12 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "@emotion/react/jsx-runtime";
2
- import { css, ThemeProvider, useTheme } from '@emotion/react';
2
+ import { css, useTheme } from '@emotion/react';
3
3
  import { faXmark } from '@fortawesome/free-solid-svg-icons/faXmark';
4
4
  import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
5
- import { onSurfaceButtonCss } from '../../../css';
6
5
  import { Dialog } from '../index';
7
6
  export const RulesDialog = ({ close, children, ...props }) => {
8
7
  const theme = useTheme();
9
8
  const CloseButton = theme.dialog.closeButton;
10
- return (_jsxs(Dialog, { onBackdropClick: close, css: dialogCss, ...props, children: [close && (CloseButton ? _jsx(CloseButton, { onClick: close }) : _jsx(FontAwesomeIcon, { icon: faXmark, css: [dialogCloseIcon, theme.dialog.closeIcon], onClick: close })), _jsx(ThemeProvider, { theme: theme => ({ ...theme, buttons: onSurfaceButtonCss }), children: children })] }));
9
+ return (_jsxs(Dialog, { onBackdropClick: close, css: dialogCss, ...props, children: [close && (CloseButton ? _jsx(CloseButton, { onClick: close }) : _jsx(FontAwesomeIcon, { icon: faXmark, css: [dialogCloseIcon, theme.dialog.closeIcon], onClick: close })), children] }));
11
10
  };
12
11
  const dialogCss = css `
13
12
  max-width: 90vw;
@@ -1 +1 @@
1
- {"version":3,"file":"RulesDialog.js","sourceRoot":"","sources":["../../../../src/components/dialogs/RulesDialog/RulesDialog.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAC7D,OAAO,EAAE,OAAO,EAAE,MAAM,2CAA2C,CAAA;AACnE,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAA;AAEhE,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAA;AACjD,OAAO,EAAE,MAAM,EAAe,MAAM,UAAU,CAAA;AAM9C,MAAM,CAAC,MAAM,WAAW,GAAyB,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAoB,EAAE,EAAE;IACnG,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAA;IACxB,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,WAAW,CAAA;IAC5C,OAAO,CACL,MAAC,MAAM,IAAC,eAAe,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,KAAM,KAAK,aACtD,KAAK,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,KAAC,WAAW,IAAC,OAAO,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,KAAC,eAAe,IAAC,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,eAAe,EAAE,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,KAAK,GAAG,CAAC,EAC5J,KAAC,aAAa,IAAC,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,EAAE,OAAO,EAAE,kBAAkB,EAAE,CAAC,YACvE,QAAQ,GACK,IACT,CACV,CAAA;AACH,CAAC,CAAA;AAED,MAAM,SAAS,GAAG,GAAG,CAAA;;;;;;CAMpB,CAAA;AAED,MAAM,eAAe,GAAG,GAAG,CAAA;;;;;;;CAO1B,CAAA"}
1
+ {"version":3,"file":"RulesDialog.js","sourceRoot":"","sources":["../../../../src/components/dialogs/RulesDialog/RulesDialog.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,2CAA2C,CAAA;AACnE,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAA;AAEhE,OAAO,EAAE,MAAM,EAAe,MAAM,UAAU,CAAA;AAM9C,MAAM,CAAC,MAAM,WAAW,GAAyB,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAoB,EAAE,EAAE;IACnG,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAA;IACxB,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,WAAW,CAAA;IAC5C,OAAO,CACL,MAAC,MAAM,IAAC,eAAe,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,KAAM,KAAK,aACtD,KAAK,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,KAAC,WAAW,IAAC,OAAO,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,KAAC,eAAe,IAAC,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,eAAe,EAAE,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,KAAK,GAAG,CAAC,EAC3J,QAAQ,IACF,CACV,CAAA;AACH,CAAC,CAAA;AAED,MAAM,SAAS,GAAG,GAAG,CAAA;;;;;;CAMpB,CAAA;AAED,MAAM,eAAe,GAAG,GAAG,CAAA;;;;;;;CAO1B,CAAA"}
@@ -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"}
@@ -1,9 +1,30 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "@emotion/react/jsx-runtime";
2
2
  /** @jsxImportSource @emotion/react */
3
- import { useState } from 'react';
3
+ import { useContext, useState } from 'react';
4
+ import { gameContext } from '../../../GameProvider/GameContext';
4
5
  import { activeIndicatorCss, toolBtnActiveCss, toolBtnCss, toolDescCss, toolIconCss, toolLabelCss } from './devtools.css';
6
+ /* Reads the persisted `monkeyOpponents` flag from localStorage on
7
+ * mount — the GameLocalAPI stores its whole localStore there, keyed
8
+ * by the game name. That way the toggle opens in sync with whatever
9
+ * state the bot is actually in (including reloads or toggles from
10
+ * the console). Clicking delegates to `g.bot()` which is the
11
+ * canonical alias that starts/stops the bots. */
5
12
  export const BotTool = ({ exec, g }) => {
6
- const [botActive, setBotActive] = useState(false);
13
+ const gameName = useContext(gameContext)?.game;
14
+ const [botActive, setBotActive] = useState(() => {
15
+ if (!gameName || typeof window === 'undefined')
16
+ return false;
17
+ try {
18
+ const raw = window.localStorage.getItem(gameName);
19
+ if (!raw)
20
+ return false;
21
+ const parsed = JSON.parse(raw);
22
+ return !!parsed?.monkeyOpponents;
23
+ }
24
+ catch {
25
+ return false;
26
+ }
27
+ });
7
28
  return (_jsxs("button", { css: [toolBtnCss, botActive && toolBtnActiveCss], onClick: () => {
8
29
  const next = !botActive;
9
30
  exec(() => g.bot(next), next ? 'Bots enabled' : 'Bots disabled');
@@ -1 +1 @@
1
- {"version":3,"file":"BotTool.js","sourceRoot":"","sources":["../../../../../src/components/material/GameTable/DevTools/BotTool.tsx"],"names":[],"mappings":";AAAA,sCAAsC;AACtC,OAAO,EAAM,QAAQ,EAAE,MAAM,OAAO,CAAA;AACpC,OAAO,EACL,kBAAkB,EAAE,gBAAgB,EAAE,UAAU,EAAE,WAAW,EAAE,WAAW,EAAE,YAAY,EACzF,MAAM,gBAAgB,CAAA;AAOvB,MAAM,CAAC,MAAM,OAAO,GAAqB,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;IACvD,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IAEjD,OAAO,CACL,kBAAQ,GAAG,EAAE,CAAC,UAAU,EAAE,SAAS,IAAI,gBAAgB,CAAC,EACtD,OAAO,EAAE,GAAG,EAAE;YACZ,MAAM,IAAI,GAAG,CAAC,SAAS,CAAA;YACvB,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,eAAe,CAAC,CAAA;YAChE,YAAY,CAAC,IAAI,CAAC,CAAA;QACpB,CAAC,aACD,eAAM,GAAG,EAAE,WAAW,YAAG,QAAQ,GAAQ,EACzC,eAAM,GAAG,EAAE,YAAY,YAAG,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,aAAa,GAAQ,EAC5E,eAAM,GAAG,EAAE,WAAW,YAAG,SAAS,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,qBAAqB,GAAQ,EACpF,SAAS,IAAI,eAAM,GAAG,EAAE,kBAAkB,GAAI,IACxC,CACV,CAAA;AACH,CAAC,CAAA"}
1
+ {"version":3,"file":"BotTool.js","sourceRoot":"","sources":["../../../../../src/components/material/GameTable/DevTools/BotTool.tsx"],"names":[],"mappings":";AAAA,sCAAsC;AACtC,OAAO,EAAM,UAAU,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAA;AAC/D,OAAO,EACL,kBAAkB,EAAE,gBAAgB,EAAE,UAAU,EAAE,WAAW,EAAE,WAAW,EAAE,YAAY,EACzF,MAAM,gBAAgB,CAAA;AAOvB;;;;;iDAKiD;AACjD,MAAM,CAAC,MAAM,OAAO,GAAqB,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;IACvD,MAAM,QAAQ,GAAG,UAAU,CAAC,WAAW,CAAC,EAAE,IAAI,CAAA;IAC9C,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAU,GAAG,EAAE;QACvD,IAAI,CAAC,QAAQ,IAAI,OAAO,MAAM,KAAK,WAAW;YAAE,OAAO,KAAK,CAAA;QAC5D,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;YACjD,IAAI,CAAC,GAAG;gBAAE,OAAO,KAAK,CAAA;YACtB,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;YAC9B,OAAO,CAAC,CAAC,MAAM,EAAE,eAAe,CAAA;QAClC,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAA;QACd,CAAC;IACH,CAAC,CAAC,CAAA;IAEF,OAAO,CACL,kBAAQ,GAAG,EAAE,CAAC,UAAU,EAAE,SAAS,IAAI,gBAAgB,CAAC,EACtD,OAAO,EAAE,GAAG,EAAE;YACZ,MAAM,IAAI,GAAG,CAAC,SAAS,CAAA;YACvB,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,eAAe,CAAC,CAAA;YAChE,YAAY,CAAC,IAAI,CAAC,CAAA;QACpB,CAAC,aACD,eAAM,GAAG,EAAE,WAAW,YAAG,QAAQ,GAAQ,EACzC,eAAM,GAAG,EAAE,YAAY,YAAG,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,aAAa,GAAQ,EAC5E,eAAM,GAAG,EAAE,WAAW,YAAG,SAAS,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,qBAAqB,GAAQ,EACpF,SAAS,IAAI,eAAM,GAAG,EAAE,kBAAkB,GAAI,IACxC,CACV,CAAA;AACH,CAAC,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;