@truelab/truelogic 4.2.2 → 4.3.0-1

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 (231) hide show
  1. package/dist/100.min.js +1 -1
  2. package/dist/103.min.js +1 -1
  3. package/dist/113.min.js +1 -1
  4. package/dist/172.min.js +1 -1
  5. package/dist/180.min.js +1 -1
  6. package/dist/201.min.js +1 -1
  7. package/dist/203.min.js +1 -1
  8. package/dist/266.min.js +1 -1
  9. package/dist/282.min.js +1 -1
  10. package/dist/383.min.js +1 -1
  11. package/dist/4.min.js +1 -1
  12. package/dist/423.min.js +1 -1
  13. package/dist/487.min.js +1 -1
  14. package/dist/546.min.js +1 -1
  15. package/dist/585.min.js +1 -1
  16. package/dist/59.min.js +1 -1
  17. package/dist/683.min.js +1 -1
  18. package/dist/699.min.js +1 -1
  19. package/dist/728.min.js +1 -1
  20. package/dist/755.min.js +1 -1
  21. package/dist/756.min.js +1 -1
  22. package/dist/761.min.js +1 -1
  23. package/dist/763.min.js +1 -1
  24. package/dist/80.min.js +1 -1
  25. package/dist/887.91365f04.css +3 -0
  26. package/dist/887.min.js +1 -0
  27. package/dist/90.min.js +1 -1
  28. package/dist/929.min.js +1 -1
  29. package/dist/937.min.js +1 -1
  30. package/dist/988.min.js +1 -1
  31. package/dist/assets/events-empty.e864d6cd0e2060d9eb98.webp +0 -0
  32. package/dist/assets/locales/cs.json +5 -1
  33. package/dist/assets/locales/de.json +5 -1
  34. package/dist/assets/locales/en.json +5 -1
  35. package/dist/assets/locales/es.json +5 -1
  36. package/dist/assets/locales/fi.json +5 -1
  37. package/dist/assets/locales/fr.json +5 -1
  38. package/dist/assets/locales/hi.json +5 -1
  39. package/dist/assets/locales/hr.json +5 -1
  40. package/dist/assets/locales/id.json +5 -1
  41. package/dist/assets/locales/it.json +5 -1
  42. package/dist/assets/locales/ja.json +5 -1
  43. package/dist/assets/locales/kk.json +5 -1
  44. package/dist/assets/locales/ko.json +5 -1
  45. package/dist/assets/locales/nl.json +5 -1
  46. package/dist/assets/locales/no.json +5 -1
  47. package/dist/assets/locales/pl.json +5 -1
  48. package/dist/assets/locales/pt.json +5 -1
  49. package/dist/assets/locales/ru.json +5 -1
  50. package/dist/assets/locales/sc_en.json +26 -22
  51. package/dist/assets/locales/sr.json +5 -1
  52. package/dist/assets/locales/sv.json +5 -1
  53. package/dist/assets/locales/th.json +5 -1
  54. package/dist/assets/locales/tr.json +5 -1
  55. package/dist/assets/locales/uk.json +5 -1
  56. package/dist/assets/locales/vi.json +5 -1
  57. package/dist/assets/locales/zh.json +5 -1
  58. package/dist/truelogic.min.css +1 -1
  59. package/dist/truelogic.min.js +1 -1
  60. package/dist/types/src/app/lib/functions/getConfigurationNonCriticalImages.test.d.ts +1 -0
  61. package/dist/types/src/app/lib/hooks/useSandboxGuiEvents.d.ts +5 -0
  62. package/dist/types/src/app/lib/singletones/publicEmitter.d.ts +9 -0
  63. package/dist/types/src/app/store.d.ts +35 -30
  64. package/dist/types/src/entities/autoplay/model/autoPlaySlice.d.ts +7 -6
  65. package/dist/types/src/entities/bonus/model/bonusSlice.d.ts +35 -30
  66. package/dist/types/src/entities/gameInfo/index.d.ts +3 -1
  67. package/dist/types/src/entities/gameInfo/lib/getGameInfoSections.d.ts +24 -0
  68. package/dist/types/src/entities/gameInfo/lib/getGameInfoSections.test.d.ts +1 -0
  69. package/dist/types/src/entities/gameInfo/model/gameInfoSlice.d.ts +4 -3
  70. package/dist/types/src/entities/gameInfo/model/types.d.ts +23 -2
  71. package/dist/types/src/entities/menu/index.d.ts +2 -1
  72. package/dist/types/src/entities/menu/model/menuSlice.d.ts +34 -0
  73. package/dist/types/src/entities/menu/model/menuSlice.test.d.ts +1 -0
  74. package/dist/types/src/entities/modals/index.d.ts +0 -1
  75. package/dist/types/src/entities/payTable/model/types.d.ts +5 -0
  76. package/dist/types/src/entities/payTable/ui/PayTableConstructor/PayTableConstructor.d.ts +13 -1
  77. package/dist/types/src/entities/payTable/ui/PayTableConstructor/PayTableConstructor.stories.d.ts +8 -1
  78. package/dist/types/src/entities/payTable/ui/PayTableConstructor/items/PayTableLine.stories.d.ts +5 -1
  79. package/dist/types/src/entities/payTable/ui/PayTableConstructor/items/PayTableSymbolGridV1.stories.d.ts +5 -1
  80. package/dist/types/src/entities/payTable/ui/PayTableConstructor/items/PayTableSymbolSpecialV1.stories.d.ts +5 -1
  81. package/dist/types/src/entities/payTable/ui/PayTableConstructor/items/PayTableSymbolSpecialV2.stories.d.ts +5 -1
  82. package/dist/types/src/entities/payTable/ui/PayTableConstructor/items/PayTableTitle.stories.d.ts +5 -1
  83. package/dist/types/src/entities/realityCheck/index.d.ts +0 -1
  84. package/dist/types/src/entities/roundsHistory/ui/RoundsHistoryCard.d.ts +1 -0
  85. package/dist/types/src/entities/sound/ui/SoundSettingsSwitcher/SoundSettingsSwitcher.d.ts +1 -0
  86. package/dist/types/src/features/menu/index.d.ts +2 -1
  87. package/dist/types/src/features/menu/lib/useInfoClick.d.ts +10 -0
  88. package/dist/types/src/features/menu/ui/InfoButton/InfoButton.d.ts +15 -0
  89. package/dist/types/src/features/menu/ui/PanelInfo/PanelInfo.d.ts +11 -0
  90. package/dist/types/src/modules/promoLobby/app/model/index.d.ts +2 -2
  91. package/dist/types/src/modules/promoLobby/app/model/promoLobbySlice.d.ts +30 -2
  92. package/dist/types/src/modules/promoLobby/app/model/promoLobbySlice.test.d.ts +1 -0
  93. package/dist/types/src/modules/promoLobby/app/model/types.d.ts +6 -1
  94. package/dist/types/src/modules/promoLobby/entities/modals/index.d.ts +0 -2
  95. package/dist/types/src/modules/promoLobby/entities/modals/ui/ModalBase.d.ts +1 -1
  96. package/dist/types/src/modules/promoLobby/entities/modals/ui/ModalBaseHeader.d.ts +1 -1
  97. package/dist/types/src/modules/promoLobby/entities/prizeDrop/lib/isTrueTokenCampaign.d.ts +2 -0
  98. package/dist/types/src/modules/promoLobby/entities/prizeDrop/ui/PrizeDropEvents/PrizeDropEventsEmpty.d.ts +5 -0
  99. package/dist/types/src/modules/promoLobby/entities/prizeDrop/ui/PrizeDropEvents/PrizeDropEventsList.d.ts +2 -0
  100. package/dist/types/src/modules/promoLobby/entities/prizeDrop/ui/PrizeDropEvents/components/PrizeDropEventsPrizes.d.ts +4 -0
  101. package/dist/types/src/modules/promoLobby/shared/lib/analytics/promoLobbyAnalytics.d.ts +2 -1
  102. package/dist/types/src/modules/promoLobby/shared/lib/analytics/subscribePromoLobbyAnalytics.d.ts +9 -0
  103. package/dist/types/src/modules/promoLobby/shared/lib/hooks/useHasNotifications.d.ts +7 -3
  104. package/dist/types/src/modules/promoLobby/shared/modals/modalsSlice.d.ts +2 -1
  105. package/dist/types/src/modules/promoLobby/styles/tailwind.config.d.ts +3 -2
  106. package/dist/types/src/modules/promoLobby/widgets/panel/ui/PanelPromoLobby.d.ts +1 -4
  107. package/dist/types/src/modules/promoLobby/widgets/promoLobbyTab/index.d.ts +1 -0
  108. package/dist/types/src/modules/promoLobby/widgets/promoLobbyTab/ui/PromoLobbyTab.d.ts +7 -0
  109. package/dist/types/src/modules/promoLobby/widgets/topBar/ui/TopBar.d.ts +9 -0
  110. package/dist/types/src/sandbox/config.d.ts +12 -12
  111. package/dist/types/src/sandbox/gui/gui.d.ts +5 -6
  112. package/dist/types/src/sandbox/gui/helpers/index.d.ts +1 -1
  113. package/dist/types/src/sandbox/gui/helpers/serializationGameInfo.d.ts +6 -0
  114. package/dist/types/src/sandbox/gui/sections/configuration/gameInfo/index.d.ts +12 -0
  115. package/dist/types/src/sandbox/gui/sections/configuration/gameInfo/items/generateInfoItem.d.ts +11 -0
  116. package/dist/types/src/sandbox/gui/sections/configuration/gameInfo/items/generateLineItem.d.ts +11 -0
  117. package/dist/types/src/sandbox/gui/sections/configuration/gameInfo/items/generateSymbolItem.d.ts +11 -0
  118. package/dist/types/src/sandbox/gui/sections/configuration/gameInfo/items/index.d.ts +3 -0
  119. package/dist/types/src/sandbox/gui/sections/promoLobby/index.d.ts +8 -0
  120. package/dist/types/src/sandbox/presets/index.d.ts +6 -2
  121. package/dist/types/src/sandbox/presets/prizeDrop/campaignsList.d.ts +2 -0
  122. package/dist/types/src/sandbox/presets/prizeDrop/lobbyInit.d.ts +2 -0
  123. package/dist/types/src/sandbox/presets/rewards/index.d.ts +1 -1
  124. package/dist/types/src/sandbox/presets/rewards/list.d.ts +0 -2
  125. package/dist/types/src/sandbox/presets/steps/counters.d.ts +7 -0
  126. package/dist/types/src/sandbox/presets/steps/simple.d.ts +3 -0
  127. package/dist/types/src/sandbox/types/GameInfo.d.ts +11 -0
  128. package/dist/types/src/sandbox/types/PayTable.d.ts +1 -6
  129. package/dist/types/src/screens/welcome/ui/WelcomeScreen/WelcomeScreen.stories.d.ts +1 -0
  130. package/dist/types/src/shared/api/config/types.d.ts +4 -0
  131. package/dist/types/src/shared/api/modules/promoLobby/config.d.ts +4 -0
  132. package/dist/types/src/shared/lib/classes/integration/OperatorAbstractService.d.ts +0 -2
  133. package/dist/types/src/shared/lib/classes/integration/OperatorBaseService.d.ts +0 -4
  134. package/dist/types/src/shared/lib/classes/integration/OperatorGeneralService.d.ts +1 -3
  135. package/dist/types/src/shared/lib/constants/cssVars.d.ts +8 -0
  136. package/dist/types/src/shared/lib/constants/index.d.ts +1 -0
  137. package/dist/types/src/shared/lib/constants/widgetZIndex.d.ts +1 -0
  138. package/dist/types/src/shared/lib/functions/formatCount.d.ts +5 -0
  139. package/dist/types/src/shared/lib/functions/index.d.ts +1 -0
  140. package/dist/types/src/shared/lib/hooks/index.d.ts +1 -1
  141. package/dist/types/src/shared/lib/hooks/useElementsBottomCssVar.d.ts +14 -0
  142. package/dist/types/src/shared/lib/panelLayout/types.d.ts +2 -2
  143. package/dist/types/src/shared/lib/singletones/analyticsEmitter.d.ts +0 -1
  144. package/dist/types/src/shared/lib/singletones/gameEmitter.d.ts +22 -1
  145. package/dist/types/src/shared/lib/singletones/operatorEmitter.d.ts +0 -2
  146. package/dist/types/src/shared/lib/store/redux.d.ts +14 -12
  147. package/dist/types/src/shared/lib/tests/utils/getPreloadedState.d.ts +7 -6
  148. package/dist/types/src/shared/lib/tests/utils/setupTestStore.d.ts +14 -12
  149. package/dist/types/src/shared/model/menu/types.d.ts +13 -1
  150. package/dist/types/src/shared/model/modals/index.d.ts +1 -1
  151. package/dist/types/src/shared/model/modals/modalsSlice.d.ts +2 -3
  152. package/dist/types/src/shared/modules/menuInnerPage.d.ts +25 -0
  153. package/dist/types/src/shared/modules/menuTabsRegistry.d.ts +3 -0
  154. package/dist/types/src/shared/ui/CustomScroll/CustomScroll.d.ts +8 -0
  155. package/dist/types/src/shared/ui/FixedWidthLabel/FixedWidthLabel.d.ts +1 -0
  156. package/dist/types/src/shared/ui/InfoConstructor/InfoConstructor.d.ts +3 -1
  157. package/dist/types/src/shared/ui/InfoConstructor/items/InfoIconListItem.d.ts +4 -1
  158. package/dist/types/src/shared/ui/InfoSeparator/InfoSeparator.d.ts +13 -0
  159. package/dist/types/src/shared/ui/InfoSeparator/index.d.ts +1 -0
  160. package/dist/types/src/shared/ui/SettingsSwitchCard/SettingsSwitchCard.d.ts +16 -0
  161. package/dist/types/src/shared/ui/SettingsSwitchCard/index.d.ts +1 -0
  162. package/dist/types/src/shared/ui/Switch/index.d.ts +0 -2
  163. package/dist/types/src/shared/ui/TabBar/TabBar.d.ts +16 -0
  164. package/dist/types/src/shared/ui/TabBar/TabBar.stories.d.ts +1804 -0
  165. package/dist/types/src/shared/ui/TabBar/TabBarIconButton.d.ts +8 -0
  166. package/dist/types/src/shared/ui/TabBar/TabBarItem.d.ts +12 -0
  167. package/dist/types/src/shared/ui/TabBar/index.d.ts +3 -0
  168. package/dist/types/src/shared/ui/TapAnywhere/TapAnywhere.d.ts +4 -2
  169. package/dist/types/src/widgets/menu/index.d.ts +3 -0
  170. package/dist/types/src/widgets/menu/lib/selectors.d.ts +20 -0
  171. package/dist/types/src/widgets/menu/lib/useMenuTabs.d.ts +32 -0
  172. package/dist/types/src/widgets/menu/ui/GameInfoLight/GameInfoLight.d.ts +16 -0
  173. package/dist/types/src/widgets/menu/ui/GameInfoLight/GameInfoLight.stories.d.ts +23 -0
  174. package/dist/types/src/widgets/menu/ui/MenuHeader/MenuHeader.d.ts +18 -0
  175. package/dist/types/src/widgets/menu/ui/MenuTabBar/MenuTabBar.d.ts +11 -0
  176. package/dist/types/src/widgets/menu/ui/MenuTabContent/MenuTabContent.d.ts +17 -0
  177. package/dist/types/src/widgets/menu/ui/ModalMenu/ModalMenu.stories.d.ts +23 -0
  178. package/dist/types/src/widgets/menu/ui/ModalMenu/ModalMenu.test.d.ts +1 -0
  179. package/dist/types/src/widgets/menu/ui/tabs/ActivityTab.d.ts +2 -0
  180. package/dist/types/src/widgets/menu/ui/tabs/ActivityTab.test.d.ts +1 -0
  181. package/dist/types/src/widgets/menu/ui/tabs/GameInfoTab.d.ts +14 -0
  182. package/dist/types/src/widgets/menu/ui/tabs/GameInfoTab.test.d.ts +1 -0
  183. package/dist/types/src/widgets/menu/ui/tabs/RealityCheckSettings.d.ts +7 -0
  184. package/dist/types/src/widgets/menu/ui/tabs/RealityCheckSettings.test.d.ts +1 -0
  185. package/dist/types/src/widgets/menu/ui/tabs/RoundDetailsPage.d.ts +9 -0
  186. package/dist/types/src/widgets/menu/ui/tabs/SettingsTab.d.ts +2 -0
  187. package/dist/types/src/widgets/{modals/ui/ModalSettings.stories.d.ts → menu/ui/tabs/SettingsTab.stories.d.ts} +3 -3
  188. package/dist/types/src/widgets/modals/index.d.ts +0 -7
  189. package/dist/types/src/widgets/modals/ui/ModalRealityCheckReminder.test.d.ts +1 -0
  190. package/package.json +1 -1
  191. package/dist/318.e2d54eb1.css +0 -3
  192. package/dist/318.min.js +0 -1
  193. package/dist/assets/coming-soon.378973f1d8788623bbe9.webp +0 -0
  194. package/dist/assets/true-coin.1428441fe478e319cb4e.webp +0 -0
  195. package/dist/types/src/entities/menu/ui/MenuSwitchItem.d.ts +0 -6
  196. package/dist/types/src/entities/menu/ui/MenuSwitchItem.stories.d.ts +0 -35
  197. package/dist/types/src/entities/modals/ui/ModalMenuItemCard.d.ts +0 -8
  198. package/dist/types/src/entities/realityCheck/ui/RealityCheckSwitcher/RealityCheckSwitcher.d.ts +0 -7
  199. package/dist/types/src/features/menu/ui/PanelMenu/PanelMenu.d.ts +0 -10
  200. package/dist/types/src/modules/promoLobby/entities/modals/ui/ModalFullHeightBase.d.ts +0 -10
  201. package/dist/types/src/modules/promoLobby/entities/modals/ui/ModalMenuItemCard.d.ts +0 -8
  202. package/dist/types/src/modules/promoLobby/screens/InfoScreen/InfoScreen.d.ts +0 -1
  203. package/dist/types/src/modules/promoLobby/screens/ProfileScreen/ProfileScreen.d.ts +0 -1
  204. package/dist/types/src/modules/promoLobby/shared/lib/constants/index.d.ts +0 -1
  205. package/dist/types/src/modules/promoLobby/shared/lib/constants/widgetZIndex.d.ts +0 -3
  206. package/dist/types/src/modules/promoLobby/shared/lib/hooks/usePromoLobbyAnalyticsEvents.d.ts +0 -1
  207. package/dist/types/src/modules/promoLobby/widgets/modals/ui/ModalPromoLobby.d.ts +0 -2
  208. package/dist/types/src/modules/promoLobby/widgets/navbar/index.d.ts +0 -2
  209. package/dist/types/src/modules/promoLobby/widgets/navbar/lib/navbarConfig.d.ts +0 -7
  210. package/dist/types/src/modules/promoLobby/widgets/navbar/ui/Navbar.d.ts +0 -1
  211. package/dist/types/src/modules/promoLobby/widgets/navbar/ui/NavbarItem.d.ts +0 -12
  212. package/dist/types/src/sandbox/gui/helpers/serializationPayTable.d.ts +0 -3
  213. package/dist/types/src/sandbox/gui/sections/configuration/gameInfo.d.ts +0 -2
  214. package/dist/types/src/sandbox/gui/sections/configuration/payTable.d.ts +0 -2
  215. package/dist/types/src/shared/lib/hooks/useFullScreen.d.ts +0 -5
  216. package/dist/types/src/shared/lib/hooks/useFullScreenSupport.d.ts +0 -1
  217. package/dist/types/src/shared/model/fullScreen/fullScreenSlice.d.ts +0 -7
  218. package/dist/types/src/shared/model/fullScreen/index.d.ts +0 -1
  219. package/dist/types/src/shared/ui/Switch/SwitchItem.d.ts +0 -21
  220. package/dist/types/src/shared/ui/Switch/SwitchItem.stories.d.ts +0 -14
  221. package/dist/types/src/widgets/modals/ui/ModalGameInfo.d.ts +0 -1
  222. package/dist/types/src/widgets/modals/ui/ModalMenu/ModalMenu.stories.d.ts +0 -17
  223. package/dist/types/src/widgets/modals/ui/ModalPayTable.d.ts +0 -1
  224. package/dist/types/src/widgets/modals/ui/ModalPayTable.stories.d.ts +0 -15
  225. package/dist/types/src/widgets/modals/ui/ModalRealityCheck.d.ts +0 -1
  226. package/dist/types/src/widgets/modals/ui/ModalRoundDetails.d.ts +0 -1
  227. package/dist/types/src/widgets/modals/ui/ModalRoundsHistory.d.ts +0 -1
  228. package/dist/types/src/widgets/modals/ui/ModalSettings.d.ts +0 -1
  229. package/dist/types/src/widgets/topBar/ui/TopBar.d.ts +0 -5
  230. /package/dist/types/src/{widgets → modules/promoLobby/widgets}/topBar/index.d.ts +0 -0
  231. /package/dist/types/src/widgets/{modals → menu}/ui/ModalMenu/ModalMenu.d.ts +0 -0
@@ -1,11 +1,18 @@
1
1
  import { StoryObj } from '@storybook/react-webpack5';
2
+ import { TPayTableContainer } from '../../model/types';
2
3
  declare const meta: {
3
4
  title: string;
4
- component: () => import("react/jsx-runtime").JSX.Element;
5
+ component: import("react").FC<{
6
+ containers: TPayTableContainer[];
7
+ symbolsGridV1Gap?: import("../..").TSymbolsGridV1Gap;
8
+ }>;
5
9
  decorators: import("@storybook/react-webpack5").Decorator[];
6
10
  parameters: {
7
11
  imagesToLoad: string[];
8
12
  };
13
+ args: {
14
+ containers: TPayTableContainer[];
15
+ };
9
16
  };
10
17
  export default meta;
11
18
  type TStory = StoryObj<typeof meta>;
@@ -1,7 +1,11 @@
1
1
  import { StoryObj } from '@storybook/react-webpack5';
2
+ import { TPayTableContainer } from '../../../model/types';
2
3
  declare const meta: {
3
4
  title: string;
4
- component: () => import("react/jsx-runtime").JSX.Element;
5
+ component: import("react").FC<{
6
+ containers: TPayTableContainer[];
7
+ symbolsGridV1Gap?: import("../../..").TSymbolsGridV1Gap;
8
+ }>;
5
9
  decorators: import("@storybook/react-webpack5").Decorator[];
6
10
  };
7
11
  export default meta;
@@ -1,7 +1,11 @@
1
1
  import { StoryObj } from '@storybook/react-webpack5';
2
+ import { TPayTableContainer } from '../../../model/types';
2
3
  declare const meta: {
3
4
  title: string;
4
- component: () => import("react/jsx-runtime").JSX.Element;
5
+ component: import("react").FC<{
6
+ containers: TPayTableContainer[];
7
+ symbolsGridV1Gap?: import("../../..").TSymbolsGridV1Gap;
8
+ }>;
5
9
  decorators: import("@storybook/react-webpack5").Decorator[];
6
10
  parameters: {
7
11
  imagesToLoad: string[];
@@ -1,7 +1,11 @@
1
1
  import { StoryObj } from '@storybook/react-webpack5';
2
+ import { TPayTableContainer } from '../../../model/types';
2
3
  declare const meta: {
3
4
  title: string;
4
- component: () => import("react/jsx-runtime").JSX.Element;
5
+ component: import("react").FC<{
6
+ containers: TPayTableContainer[];
7
+ symbolsGridV1Gap?: import("../../..").TSymbolsGridV1Gap;
8
+ }>;
5
9
  decorators: import("@storybook/react-webpack5").Decorator[];
6
10
  parameters: {
7
11
  imagesToLoad: string[];
@@ -1,7 +1,11 @@
1
1
  import { StoryObj } from '@storybook/react-webpack5';
2
+ import { TPayTableContainer } from '../../../model/types';
2
3
  declare const meta: {
3
4
  title: string;
4
- component: () => import("react/jsx-runtime").JSX.Element;
5
+ component: import("react").FC<{
6
+ containers: TPayTableContainer[];
7
+ symbolsGridV1Gap?: import("../../..").TSymbolsGridV1Gap;
8
+ }>;
5
9
  decorators: import("@storybook/react-webpack5").Decorator[];
6
10
  parameters: {
7
11
  imagesToLoad: string[];
@@ -1,7 +1,11 @@
1
1
  import { StoryObj } from '@storybook/react-webpack5';
2
+ import { TPayTableContainer } from '../../../model/types';
2
3
  declare const meta: {
3
4
  title: string;
4
- component: () => import("react/jsx-runtime").JSX.Element;
5
+ component: import("react").FC<{
6
+ containers: TPayTableContainer[];
7
+ symbolsGridV1Gap?: import("../../..").TSymbolsGridV1Gap;
8
+ }>;
5
9
  decorators: import("@storybook/react-webpack5").Decorator[];
6
10
  };
7
11
  export default meta;
@@ -1,4 +1,3 @@
1
1
  export { useRealityCheck } from './lib/hook/useRealityCheck';
2
2
  export { getRealityCheckIsReadyForSave, realityCheckReducer, refreshRealityCheck, resetRealityCheckValues, saveRealityCheck, setReailtyCheckActiveReminder, setReailtyCheckDeferred, setRealityCheckIsActive, setRealityCheckPaused, setRealityCheckReminderTime, setRealityCheckRepeatReminderTime, } from './model/realityCheckSlice';
3
- export { RealityCheckSwitcher } from './ui/RealityCheckSwitcher/RealityCheckSwitcher';
4
3
  export { RealityCheckTime } from './ui/RealityCheckTime/RealityCheckTime';
@@ -5,5 +5,6 @@ type TProps = {
5
5
  win: number;
6
6
  onClick: () => void;
7
7
  };
8
+ /** One round of the Activity feed. A round that paid out stands out with a lighter plate. */
8
9
  export declare const RoundsHistoryCard: FC<TProps>;
9
10
  export {};
@@ -1 +1,2 @@
1
+ /** Sound plate of the settings: the master switch, and the three volumes it reveals. */
1
2
  export declare const SoundSettingsSwitcher: () => import("react/jsx-runtime").JSX.Element;
@@ -1,2 +1,3 @@
1
1
  export { getMenuButtonDisabled } from './lib/selectors';
2
- export { PanelMenu } from './ui/PanelMenu/PanelMenu';
2
+ export { InfoButton } from './ui/InfoButton/InfoButton';
3
+ export { PanelInfo } from './ui/PanelInfo/PanelInfo';
@@ -0,0 +1,10 @@
1
+ import { MouseEvent } from 'react';
2
+ /**
3
+ * Click handlers shared by the Info buttons — the round corner one and the panel plate one.
4
+ * The click is reported as `info`; by default it opens the game menu on the Game Info tab, and
5
+ * `onOpen` replaces that for a host with its own Game Info page (the welcome screen).
6
+ */
7
+ export declare const useInfoClick: (onOpen?: () => void) => {
8
+ onClick: (event: MouseEvent) => void;
9
+ onPointerDown: () => void;
10
+ };
@@ -0,0 +1,15 @@
1
+ type TProps = {
2
+ className?: string;
3
+ disabled?: boolean;
4
+ /** Positioned by the host (the portrait Top Line, the welcome screen) instead of floating */
5
+ hosted?: boolean;
6
+ /** Replaces the default action — opening the game menu on the Game Info tab */
7
+ onClick?: () => void;
8
+ };
9
+ /**
10
+ * Round Info button in the screen corner: opens the game menu on the Game Info tab. Replaces the
11
+ * burger button of the old menu. Only the layouts with a full plate render it — the ones with a
12
+ * spare cell host the menu entry point on the plate instead (see PanelInfo / PANEL_SLOTS).
13
+ */
14
+ export declare const InfoButton: ({ className, disabled, hosted, onClick: onOpen }: TProps) => import("react/jsx-runtime").JSX.Element;
15
+ export {};
@@ -0,0 +1,11 @@
1
+ import { FC } from 'react';
2
+ type TProps = {
3
+ className?: string;
4
+ disabled?: boolean;
5
+ };
6
+ /**
7
+ * Info button in a panel plate slot. The layouts with a spare cell (0 and 2 supported features,
8
+ * see PANEL_SLOTS) host the menu entry point here; the others keep the round corner InfoButton.
9
+ */
10
+ export declare const PanelInfo: FC<TProps>;
11
+ export {};
@@ -1,3 +1,3 @@
1
- export { blockPromoLobbyUI, getPromoLobbyUIBlocked, navigateBack, resetPromoLobbyScreen, setPromoLobbyActiveScreen, setPromoLobbyLang, setPromoLobbyTopBarScreen, unblockPromoLobbyUI, } from './promoLobbySlice';
1
+ export { blockPromoLobbyUI, clearPromoLobbyUIBlockers, getIsRewardsHubFeatureEnabled, getIsWalletFeatureEnabled, getPromoLobbyUIBlocked, navigateBack, resetPromoLobbyScreen, setPromoLobbyActiveScreen, setPromoLobbyFeatures, setPromoLobbyLang, setPromoLobbyTopBarScreen, unblockPromoLobbyUI, } from './promoLobbySlice';
2
2
  export { promoLobbyReducer } from './promoLobbySlice';
3
- export type { TPromoLobbyScreen } from './types';
3
+ export type { TPromoLobbyFeatures, TPromoLobbyScreen } from './types';
@@ -1,10 +1,11 @@
1
- import { TPromoLobbyScreen, TPromoLobbyScreenHistoryEntry, TPromoLobbyTopBarScreen, TPromoLobbyUIBlocker } from './types';
1
+ import { TPromoLobbyFeatures, TPromoLobbyScreen, TPromoLobbyScreenHistoryEntry, TPromoLobbyTopBarScreen, TPromoLobbyUIBlocker } from './types';
2
2
  export type TPromoLobbyState = {
3
3
  activeScreen: TPromoLobbyScreen;
4
4
  topBarScreen: TPromoLobbyTopBarScreen | null;
5
5
  screenHistory: TPromoLobbyScreenHistoryEntry[];
6
6
  uiBlockers: TPromoLobbyUIBlocker[];
7
7
  lang: string | null;
8
+ features: TPromoLobbyFeatures;
8
9
  };
9
10
  export declare const promoLobbySlice: import("@reduxjs/toolkit").Slice<TPromoLobbyState, {
10
11
  setPromoLobbyActiveScreen: import("@reduxjs/toolkit").CaseReducer<TPromoLobbyState, {
@@ -19,6 +20,12 @@ export declare const promoLobbySlice: import("@reduxjs/toolkit").Slice<TPromoLob
19
20
  }> & {
20
21
  _reducerDefinitionType: import("@reduxjs/toolkit").ReducerType.reducer;
21
22
  };
23
+ setPromoLobbyFeatures: import("@reduxjs/toolkit").CaseReducer<TPromoLobbyState, {
24
+ payload: TPromoLobbyFeatures;
25
+ type: string;
26
+ }> & {
27
+ _reducerDefinitionType: import("@reduxjs/toolkit").ReducerType.reducer;
28
+ };
22
29
  setPromoLobbyTopBarScreen: import("@reduxjs/toolkit").CaseReducer<TPromoLobbyState, {
23
30
  payload: TPromoLobbyTopBarScreen;
24
31
  type: string;
@@ -49,15 +56,36 @@ export declare const promoLobbySlice: import("@reduxjs/toolkit").Slice<TPromoLob
49
56
  }> & {
50
57
  _reducerDefinitionType: import("@reduxjs/toolkit").ReducerType.reducer;
51
58
  };
59
+ /**
60
+ * Leaving the tab drops every blocker: a blocker only guards navigation inside the lobby,
61
+ * and leaving with one still set would make `resetPromoLobbyScreen` bail out and strand the
62
+ * next visit in the middle of the flow it was left in.
63
+ */
64
+ clearPromoLobbyUIBlockers: import("@reduxjs/toolkit").CaseReducer<TPromoLobbyState, {
65
+ payload: void;
66
+ type: string;
67
+ }> & {
68
+ _reducerDefinitionType: import("@reduxjs/toolkit").ReducerType.reducer;
69
+ };
52
70
  }, "promoLobby", "promoLobby", {
53
71
  getActiveScreen: (state: TPromoLobbyState) => TPromoLobbyScreen;
54
72
  getPromoLobbyUIBlocked: (state: TPromoLobbyState) => boolean;
73
+ getIsWalletFeatureEnabled: (state: TPromoLobbyState) => boolean;
74
+ getIsRewardsHubFeatureEnabled: (state: TPromoLobbyState) => boolean;
55
75
  }>;
56
- export declare const blockPromoLobbyUI: import("@reduxjs/toolkit").ActionCreatorWithOptionalPayload<"walletConvert", "promoLobby/blockPromoLobbyUI">, setPromoLobbyActiveScreen: import("@reduxjs/toolkit").ActionCreatorWithOptionalPayload<TPromoLobbyScreen, "promoLobby/setPromoLobbyActiveScreen">, setPromoLobbyLang: import("@reduxjs/toolkit").ActionCreatorWithOptionalPayload<string, "promoLobby/setPromoLobbyLang">, setPromoLobbyTopBarScreen: import("@reduxjs/toolkit").ActionCreatorWithOptionalPayload<TPromoLobbyTopBarScreen, "promoLobby/setPromoLobbyTopBarScreen">, navigateBack: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"promoLobby/navigateBack">, resetPromoLobbyScreen: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"promoLobby/resetPromoLobbyScreen">, unblockPromoLobbyUI: import("@reduxjs/toolkit").ActionCreatorWithOptionalPayload<"walletConvert", "promoLobby/unblockPromoLobbyUI">;
76
+ export declare const blockPromoLobbyUI: import("@reduxjs/toolkit").ActionCreatorWithOptionalPayload<"walletConvert", "promoLobby/blockPromoLobbyUI">, clearPromoLobbyUIBlockers: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"promoLobby/clearPromoLobbyUIBlockers">, setPromoLobbyActiveScreen: import("@reduxjs/toolkit").ActionCreatorWithOptionalPayload<TPromoLobbyScreen, "promoLobby/setPromoLobbyActiveScreen">, setPromoLobbyFeatures: import("@reduxjs/toolkit").ActionCreatorWithOptionalPayload<TPromoLobbyFeatures, "promoLobby/setPromoLobbyFeatures">, setPromoLobbyLang: import("@reduxjs/toolkit").ActionCreatorWithOptionalPayload<string, "promoLobby/setPromoLobbyLang">, setPromoLobbyTopBarScreen: import("@reduxjs/toolkit").ActionCreatorWithOptionalPayload<TPromoLobbyTopBarScreen, "promoLobby/setPromoLobbyTopBarScreen">, navigateBack: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"promoLobby/navigateBack">, resetPromoLobbyScreen: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"promoLobby/resetPromoLobbyScreen">, unblockPromoLobbyUI: import("@reduxjs/toolkit").ActionCreatorWithOptionalPayload<"walletConvert", "promoLobby/unblockPromoLobbyUI">;
57
77
  export declare const getActiveScreen: import("reselect").Selector<{
58
78
  promoLobby: TPromoLobbyState;
59
79
  }, TPromoLobbyScreen, []> & {
60
80
  unwrapped: (state: TPromoLobbyState) => TPromoLobbyScreen;
81
+ }, getIsRewardsHubFeatureEnabled: import("reselect").Selector<{
82
+ promoLobby: TPromoLobbyState;
83
+ }, boolean, []> & {
84
+ unwrapped: (state: TPromoLobbyState) => boolean;
85
+ }, getIsWalletFeatureEnabled: import("reselect").Selector<{
86
+ promoLobby: TPromoLobbyState;
87
+ }, boolean, []> & {
88
+ unwrapped: (state: TPromoLobbyState) => boolean;
61
89
  }, getPromoLobbyUIBlocked: import("reselect").Selector<{
62
90
  promoLobby: TPromoLobbyState;
63
91
  }, boolean, []> & {
@@ -1,6 +1,11 @@
1
1
  export type TPromoLobbyScreen = 'true-world' | 'true-games' | 'tournaments' | 'quests' | 'marketplace' | 'campaign';
2
- export type TPromoLobbyTopBarScreen = 'info' | 'profile' | 'wallet' | 'wallet-convert' | 'wallet-convert-confirm';
2
+ export type TPromoLobbyTopBarScreen = 'wallet' | 'wallet-convert' | 'wallet-convert-confirm';
3
3
  export type TPromoLobbyUIBlocker = 'walletConvert';
4
+ /** Feature flags mirrored from the app config (`app.modulesConfig.promoLobby`) into the module store. */
5
+ export type TPromoLobbyFeatures = {
6
+ wallet: boolean;
7
+ rewardsHub: boolean;
8
+ };
4
9
  export type TPromoLobbyScreenHistoryEntry = {
5
10
  activeScreen: TPromoLobbyScreen;
6
11
  topBarScreen: TPromoLobbyTopBarScreen | null;
@@ -2,5 +2,3 @@ export { ModalBase } from './ui/ModalBase';
2
2
  export { ModalBaseBody } from './ui/ModalBaseBody';
3
3
  export { ModalBaseFooter } from './ui/ModalBaseFooter';
4
4
  export { ModalBaseHeader } from './ui/ModalBaseHeader';
5
- export { ModalFullHeightBase } from './ui/ModalFullHeightBase';
6
- export { ModalMenuItemCard } from './ui/ModalMenuItemCard';
@@ -5,7 +5,7 @@ type TModalBaseProps = {
5
5
  onClose?: () => void;
6
6
  fullScreen?: boolean;
7
7
  background?: string;
8
- modalName?: TModalName;
8
+ modalName: TModalName;
9
9
  };
10
10
  export declare const ModalBase: FC<TModalBaseProps>;
11
11
  export {};
@@ -5,7 +5,7 @@ type TModalBaseHeaderProps = {
5
5
  returnType?: 'home' | 'back';
6
6
  onReturn?: (event: React.MouseEvent) => void;
7
7
  onClose?: () => void;
8
- modalName?: TModalName;
8
+ modalName: TModalName;
9
9
  classes?: {
10
10
  closeButton?: string;
11
11
  returnButton?: string;
@@ -0,0 +1,2 @@
1
+ import { TPrizeDropCampaign } from '../../../../../shared/model/prizeDrop';
2
+ export declare const isTrueTokenCampaign: (campaign: TPrizeDropCampaign | undefined) => boolean;
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Promo lobby with nothing to show: no campaign has ever arrived for this session. Grows into the
3
+ * free height of the menu tab so the message sits in the middle of it, as in the mockup.
4
+ */
5
+ export declare const PrizeDropEventsEmpty: () => import("react/jsx-runtime").JSX.Element;
@@ -1 +1,3 @@
1
+ import { TPrizeDropCampaign } from '../../../../../../shared/model/prizeDrop';
2
+ export declare const getVisiblePrizeDropCampaigns: (campaigns: TPrizeDropCampaign[] | undefined, isRewardsHubEnabled: boolean) => TPrizeDropCampaign[];
1
3
  export declare const PrizeDropEventsList: () => import("react/jsx-runtime").JSX.Element;
@@ -1,5 +1,9 @@
1
1
  type TProps = {
2
2
  className?: string;
3
3
  };
4
+ /**
5
+ * Prize table of the event page. Per the Scope 2 mockup it is a plain list on the card it sits on:
6
+ * no plates behind the rows, only hairlines between them, and the "Left" column carries the weight.
7
+ */
4
8
  export declare const PrizeDropEventsPrizes: ({ className }: TProps) => import("react/jsx-runtime").JSX.Element;
5
9
  export {};
@@ -57,7 +57,6 @@ export declare enum EAnalyticsEventsPromoLobby {
57
57
  rewardExpired = "reward_expired",
58
58
  rewardConvertPlayClicked = "reward_convert_play_clicked",
59
59
  prizeDropWin = "prize_drop_win",
60
- infoSectionViewed = "info_section_viewed",
61
60
  notificationBadgeShown = "notification_badge_shown",
62
61
  notificationBadgeCleared = "notification_badge_cleared",
63
62
  convertFlowStarted = "convert_flow_started",
@@ -72,4 +71,6 @@ export declare enum EAnalyticsEventsPromoLobby {
72
71
  walletOpened = "wallet_opened",
73
72
  walletReturnedAfterAction = "wallet_returned_after_action"
74
73
  }
74
+ export declare const WALLET_FLAG_ANALYTICS_EVENTS: string[];
75
+ export declare const REWARDS_HUB_FLAG_ANALYTICS_EVENTS: string[];
75
76
  export {};
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Wires the promo lobby analytics onto `analyticsEmitter`. Called once from the module `init`, so
3
+ * none of it reaches the core bundle: every event below is emitted from inside the module, and with
4
+ * the module absent not one of them can fire.
5
+ *
6
+ * The feature flags live in the main store, so they are read lazily on every send through the
7
+ * `getState` the module init context hands over.
8
+ */
9
+ export declare const subscribePromoLobbyAnalytics: (getState: () => TRootState) => void;
@@ -1,6 +1,10 @@
1
1
  import { TRewardQueueEntry } from '../../../../../modules/promoLobby/entities/rewardsHub';
2
2
  import { TPrizeDropCampaign, TReward } from '../../../../../shared/model/prizeDrop';
3
3
  type TGetHasNotificationsParams = {
4
+ /** wallet feature flag: when false, isActiveWalletNew is ignored even if the server sends isNew===true */
5
+ isWalletFeatureEnabled: boolean;
6
+ /** rewardsHub feature flag: when false, reward triggers are ignored; campaign triggers stay */
7
+ isRewardsHubFeatureEnabled: boolean;
4
8
  isActiveWalletNew: boolean;
5
9
  viewedRewardDropIds: string[];
6
10
  viewedCampaignIds: string[];
@@ -12,7 +16,7 @@ type TGetHasNotificationsParams = {
12
16
  hasDefferedCampaign: boolean;
13
17
  hasDefferedReward: boolean;
14
18
  };
15
- export declare const getHasNotifications: ({ isActiveWalletNew, viewedRewardDropIds, viewedCampaignIds, rewards, rewardsQueue, scheduledCampaigns, hasDefferedRewardModal, hasDefferedCampaign, hasDefferedReward, }: TGetHasNotificationsParams) => boolean;
19
+ export declare const getHasNotifications: ({ isWalletFeatureEnabled, isRewardsHubFeatureEnabled, isActiveWalletNew, viewedRewardDropIds, viewedCampaignIds, rewards, rewardsQueue, scheduledCampaigns, hasDefferedRewardModal, hasDefferedCampaign, hasDefferedReward, }: TGetHasNotificationsParams) => boolean;
16
20
  export type TFrozenHasNotifications = boolean | null;
17
21
  /**
18
22
  * Freezes the badge value for the duration of gameplay.
@@ -36,9 +40,9 @@ export declare const applyModalSuppression: (rawHasNotifications: boolean, isAny
36
40
  export declare const pickNearestExpiry: (rewards: TReward[], rewardsQueue: TRewardQueueEntry[], winReward: TReward | null | undefined) => number | null;
37
41
  /**
38
42
  * Badge shown when:
39
- * - First visit: active wallet has isNew === true (server-driven, cleared locally on lobby open)
43
+ * - First visit: active wallet has isNew === true (server-driven, cleared locally on lobby open); wallet flag off → ignored
40
44
  * - UPCOMING campaign: status==='scheduled' and not yet seen
41
- * - Prize Drop events: unclaimed TRUE rewards in hub, pending drops in queue, deferred modals
45
+ * - Prize Drop events: unclaimed TRUE rewards in hub, pending drops in queue, deferred modals; rewardsHub flag off → ignored
42
46
  * - Prize flow modals open: badge is suppressed (no spoilers) — restores after modal closes
43
47
  * - During gameplay: value is frozen at the moment gameplay starts; no new signals can turn it on or off mid-round
44
48
  * - Expired rewards: badge auto-clears via a timer set to the nearest expiresAt
@@ -1,5 +1,6 @@
1
1
  import { TPromoLobbyThunkAction } from '../lib/types';
2
- export type TModalName = 'promoLobby' | 'prizeDropCongratulation' | 'prizeDropClaimed' | 'prizeDropClaimedSuccess' | 'prizeDropClaimedFailed' | 'prizeDropClaimedExpired' | 'prizeDropSuccess' | 'prizeDropResultFinished' | 'prizeDropResultCancelled' | 'prizeDropLive' | 'prizeDropJoinError' | 'walletConvertSuccess';
2
+ /** Inner modals of the promo lobby. The lobby itself is a tab of the core menu, not a modal. */
3
+ export type TModalName = 'prizeDropCongratulation' | 'prizeDropClaimed' | 'prizeDropClaimedSuccess' | 'prizeDropClaimedFailed' | 'prizeDropClaimedExpired' | 'prizeDropSuccess' | 'prizeDropResultFinished' | 'prizeDropResultCancelled' | 'prizeDropLive' | 'prizeDropJoinError' | 'walletConvertSuccess';
3
4
  export type TModalsState = {
4
5
  hasOpened: boolean;
5
6
  current: TModalName[];
@@ -37,13 +37,15 @@ declare const _default: {
37
37
  neon: {
38
38
  rouge: string;
39
39
  };
40
+ additional: {
41
+ '2-70': string;
42
+ };
40
43
  transparent: string;
41
44
  };
42
45
  boxShadow: {
43
46
  progress: string;
44
47
  text: string;
45
48
  'notify-modals': string;
46
- 'general-modals': string;
47
49
  'play-button': string;
48
50
  };
49
51
  fontFamily: {
@@ -55,7 +57,6 @@ declare const _default: {
55
57
  transparent: string;
56
58
  };
57
59
  backgroundImage: {
58
- 'brand-gradient': string;
59
60
  gold: string;
60
61
  'add-gold': string;
61
62
  'gold-promo': string;
@@ -1,8 +1,5 @@
1
1
  type TProps = {
2
2
  disabled?: boolean;
3
- gridClassName?: string;
4
- /** Landscape only: the floating menu takes the bottom-left corner, the lobby moves up above it */
5
- hasFloatingMenu?: boolean;
6
3
  };
7
- export declare const PanelPromoLobby: ({ disabled, gridClassName, hasFloatingMenu }: TProps) => import("react/jsx-runtime").JSX.Element;
4
+ export declare const PanelPromoLobby: ({ disabled }: TProps) => import("react/jsx-runtime").JSX.Element;
8
5
  export {};
@@ -0,0 +1 @@
1
+ export { PromoLobbyTab } from './ui/PromoLobbyTab';
@@ -0,0 +1,7 @@
1
+ import { FC } from 'react';
2
+ /**
3
+ * Promo lobby as a tab of the core game menu. The core shell owns the fullscreen surface, the
4
+ * header and the tab bar, so this component brings only the module's own content — plus its
5
+ * Provider and the `.promo-lobby-container` scope, because it renders inside the core tree.
6
+ */
7
+ export declare const PromoLobbyTab: FC;
@@ -0,0 +1,9 @@
1
+ type TTopBarProps = {
2
+ className?: string;
3
+ };
4
+ /**
5
+ * Wallet entry point of the promo lobby tab. The menu shell owns the header, so the only control
6
+ * left here is the balance pill — with the wallet feature off the whole bar is gone (GTT-2743).
7
+ */
8
+ export declare const TopBar: ({ className }: TTopBarProps) => import("react/jsx-runtime").JSX.Element;
9
+ export {};
@@ -2,7 +2,6 @@ import { TConfiguration, TInitConfig } from '../app/lib/singletones/publicEmitte
2
2
  import { TFillFrameConfig } from '../entities/fillFrame';
3
3
  import { TFreeRoundsConfig } from '../entities/freeRounds';
4
4
  import { TGameInfoConfig } from '../entities/gameInfo';
5
- import { TPayTableConfig } from '../entities/payTable';
6
5
  import { TWin } from '../entities/round';
7
6
  import { TSoundsConfig } from '../entities/sound';
8
7
  import { TMeetUiConfig } from '../features/meetUi';
@@ -28,7 +27,8 @@ import { TPanelCounterData, TPanelDefaultConfig } from '../shared/model/panels';
28
27
  import { TSkipConfig } from '../shared/model/skip';
29
28
  import { TTopLineConfig } from '../shared/model/topLine';
30
29
  import { TWelcomeDefaultConfig, TWelcomeGridConfig, TWelcomeProConfig } from '../shared/model/welcome';
31
- import { TStoredPayTableConfig } from './types/PayTable';
30
+ import { sandboxStepsPresets } from './presets';
31
+ import { TStoredGameInfoConfig } from './types/GameInfo';
32
32
  export declare enum EGUIPosition {
33
33
  left = "left",
34
34
  right = "right"
@@ -68,6 +68,8 @@ export type TSandboxConfig = {
68
68
  loadingSpinner?: TLoadingSpinner;
69
69
  delay?: number;
70
70
  };
71
+ /** Which `sandboxStepsPresets` entry the steps JSON started from; hand edits keep the name. */
72
+ stepsPreset: keyof typeof sandboxStepsPresets;
71
73
  steps: string;
72
74
  };
73
75
  export type TModulesConfig = TInitConfig['modules'];
@@ -133,10 +135,7 @@ export type TStoredConfigs = {
133
135
  fastPlay: TFastPlayConfig;
134
136
  topLine: TTopLineConfig;
135
137
  appearance: TAppearanceConfig;
136
- payTable: TPayTableConfig;
137
- payTableBackground: string;
138
138
  gameInfo: TGameInfoConfig;
139
- gameInfoBackground: string;
140
139
  sounds: TSoundsConfig;
141
140
  fillFrame: TFillFrameConfig;
142
141
  meetUi: TMeetUiConfig;
@@ -184,10 +183,7 @@ declare class ConfigManager {
184
183
  getTopLine(): TTopLineConfig;
185
184
  getAppearance(): TAppearanceConfig;
186
185
  getSounds(): TSoundsConfig;
187
- getPayTable(): TPayTableConfig;
188
- getPayTableBackground(): string;
189
186
  getGameInfo(): TGameInfoConfig;
190
- getGameInfoBackground(): string;
191
187
  getFillFrame(): TFillFrameConfig;
192
188
  getMeetUi(): TMeetUiConfig;
193
189
  saveGUI(config: TGUIConfig): void;
@@ -208,6 +204,13 @@ declare class ConfigManager {
208
204
  saveInit(config?: TInitConfig): void;
209
205
  saveModules(config?: TModulesConfig): void;
210
206
  saveConfiguration(configuration?: TConfiguration): void;
207
+ /**
208
+ * Restores the GUI-side copies of the sections out of the config the game receives.
209
+ *
210
+ * Every section of `TConfiguration` is optional, and an absent one is a legal config — the
211
+ * unified `gameInfo` form carries no `payTable` at all. So a section is only read through
212
+ * when it is actually there; the GUI copy keeps its previous value otherwise.
213
+ */
211
214
  syncConfigurationSections(configuration: TConfiguration): void;
212
215
  saveLoadingDefault(config?: TLoadingDefaultConfig): void;
213
216
  saveLoadingPro(config?: TLoadingProConfig): void;
@@ -223,10 +226,7 @@ declare class ConfigManager {
223
226
  saveAutoPlay(config?: TAutoPlayConfig): void;
224
227
  saveTopLine(config?: TTopLineConfig): void;
225
228
  saveAppearance(config?: TAppearanceConfig): void;
226
- savePayTable(config?: TStoredPayTableConfig | TPayTableConfig, forceUpdate?: boolean): void;
227
- savePayTableBackground(config: string): void;
228
- saveGameInfo(config?: TGameInfoConfig): void;
229
- saveGameInfoBackground(config: string): void;
229
+ saveGameInfo(config?: TStoredGameInfoConfig | TGameInfoConfig): void;
230
230
  saveFreeRounds(config?: TFreeRoundsConfig): void;
231
231
  saveFastPlay(config?: TFastPlayConfig): void;
232
232
  saveSounds(config?: TSoundsConfig): void;
@@ -14,15 +14,14 @@ declare class GUI {
14
14
  welcomeGrid: {
15
15
  backgroundEnabled: boolean;
16
16
  };
17
- payTable: {
18
- backgroundEnabled: boolean;
19
- };
20
- gameInfo: {
21
- backgroundEnabled: boolean;
22
- };
23
17
  };
24
18
  folderSandbox: FolderApi;
25
19
  folderInit: FolderApi;
20
+ folderPromoLobby: FolderApi;
21
+ refreshModulesEditor?: () => void;
22
+ refreshPromoLobbyFeatures?: () => void;
23
+ /** Re-reads `configs.sandbox.urlParams` into the URL field after another section edits it */
24
+ refreshUrlParams?: () => void;
26
25
  folderApi: FolderApi;
27
26
  folderSocket: FolderApi;
28
27
  folderConfiguration: FolderApi;
@@ -1,3 +1,3 @@
1
1
  export { bindImagePlugin, bindOptionalImages } from './bindImage';
2
2
  export { bindJsonEditor } from './bindJsonEditor';
3
- export { serializationPayTable } from './serializationPayTable';
3
+ export { deserializationGameInfo, serializationGameInfo } from './serializationGameInfo';
@@ -0,0 +1,6 @@
1
+ import { TGameInfoConfig } from '../../../entities/gameInfo';
2
+ import { TStoredGameInfoConfig } from '../../../sandbox/types/GameInfo';
3
+ /** Config as the game receives it -> config as the GUI edits it (JSON fields as text). */
4
+ export declare function serializationGameInfo(config: TGameInfoConfig): TStoredGameInfoConfig;
5
+ /** Config as the GUI edits it -> config as the game receives it. */
6
+ export declare function deserializationGameInfo(config: TStoredGameInfoConfig | TGameInfoConfig): TGameInfoConfig;
@@ -0,0 +1,12 @@
1
+ import type { GUI } from '../../../../../sandbox/gui/gui';
2
+ /**
3
+ * The whole Game Info page: paytable blocks (symbols, lines) and game information blocks
4
+ * (features, rules) in one `gameInfo` config, in the order the page renders them.
5
+ *
6
+ * The legacy pair of `payTable` + `gameInfo` configs has no section of its own — it is deprecated
7
+ * and stays testable by pasting it into the Raw JSON editor of the whole configuration.
8
+ *
9
+ * The page has no background image either: it always renders on black, so `background` is a
10
+ * deprecated no-op of the config and gets no control here.
11
+ */
12
+ export declare function setupGameInfo(gui: GUI): void;
@@ -0,0 +1,11 @@
1
+ import { TpChangeEvent } from '@tweakpane/core';
2
+ import { FolderApi } from 'tweakpane';
3
+ import { TStoredGameInfoItem } from '../../../../../../sandbox/types/GameInfo';
4
+ type TParams = {
5
+ folder: FolderApi;
6
+ item: TStoredGameInfoItem;
7
+ onChange: (event: TpChangeEvent<unknown>) => void;
8
+ };
9
+ /** Controls of the game information blocks — the ones the rules part of the page is built from. */
10
+ export declare function generateInfoItem({ folder, item, onChange }: TParams): void;
11
+ export {};
@@ -0,0 +1,11 @@
1
+ import { TpChangeEvent } from '@tweakpane/core';
2
+ import { FolderApi } from 'tweakpane';
3
+ import { TStoredPayTableLine } from '../../../../../../sandbox/types/PayTable';
4
+ type TParams = {
5
+ folder: FolderApi;
6
+ item: TStoredPayTableLine;
7
+ onChange: (event: TpChangeEvent<unknown>) => void;
8
+ };
9
+ /** Controls of the paytable `lines` block. */
10
+ export declare function generateLineItem({ folder, item, onChange }: TParams): void;
11
+ export {};
@@ -0,0 +1,11 @@
1
+ import { TpChangeEvent } from '@tweakpane/core';
2
+ import { FolderApi } from 'tweakpane';
3
+ import { TStoredPayTableSymbol } from '../../../../../../sandbox/types/PayTable';
4
+ type TParams = {
5
+ folder: FolderApi;
6
+ item: TStoredPayTableSymbol;
7
+ onChange: (event: TpChangeEvent<unknown>) => void;
8
+ };
9
+ /** Controls of the paytable symbol blocks — `symbol-special-v1`, `symbol-special-v2`, `symbol-grid-v1`. */
10
+ export declare function generateSymbolItem({ folder, item, onChange }: TParams): void;
11
+ export {};
@@ -0,0 +1,3 @@
1
+ export { generateInfoItem } from './generateInfoItem';
2
+ export { generateLineItem } from './generateLineItem';
3
+ export { generateSymbolItem } from './generateSymbolItem';
@@ -0,0 +1,8 @@
1
+ import type { GUI } from '../../../../sandbox/gui/gui';
2
+ /**
3
+ * PromoLobby feature flags (`modules.promoLobby`). Both are `false` by default — same as the runtime default,
4
+ * so QA can check the disabled state out of the box and turn a feature on when it must be tested.
5
+ * A top-level folder (not nested under `Init`) so QA finds it without expanding anything.
6
+ * Stays in sync with the `Init → modules` / `Raw JSON` editors via `gui.refreshModulesEditor` / `gui.refreshPromoLobbyFeatures`.
7
+ */
8
+ export declare function setupPromoLobby(gui: GUI): void;