@truelab/truelogic 4.2.0 → 4.3.0-0

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 (223) 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.48666879.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/singletones/publicEmitter.d.ts +9 -0
  62. package/dist/types/src/app/store.d.ts +35 -30
  63. package/dist/types/src/entities/autoplay/model/autoPlaySlice.d.ts +7 -6
  64. package/dist/types/src/entities/bonus/model/bonusSlice.d.ts +35 -30
  65. package/dist/types/src/entities/gameInfo/index.d.ts +3 -1
  66. package/dist/types/src/entities/gameInfo/lib/getGameInfoSections.d.ts +24 -0
  67. package/dist/types/src/entities/gameInfo/lib/getGameInfoSections.test.d.ts +1 -0
  68. package/dist/types/src/entities/gameInfo/model/gameInfoSlice.d.ts +4 -3
  69. package/dist/types/src/entities/gameInfo/model/types.d.ts +23 -2
  70. package/dist/types/src/entities/menu/index.d.ts +2 -1
  71. package/dist/types/src/entities/menu/model/menuSlice.d.ts +34 -0
  72. package/dist/types/src/entities/menu/model/menuSlice.test.d.ts +1 -0
  73. package/dist/types/src/entities/modals/index.d.ts +0 -1
  74. package/dist/types/src/entities/payTable/model/types.d.ts +5 -0
  75. package/dist/types/src/entities/payTable/ui/PayTableConstructor/PayTableConstructor.d.ts +13 -1
  76. package/dist/types/src/entities/payTable/ui/PayTableConstructor/PayTableConstructor.stories.d.ts +8 -1
  77. package/dist/types/src/entities/payTable/ui/PayTableConstructor/items/PayTableLine.stories.d.ts +5 -1
  78. package/dist/types/src/entities/payTable/ui/PayTableConstructor/items/PayTableSymbolGridV1.stories.d.ts +5 -1
  79. package/dist/types/src/entities/payTable/ui/PayTableConstructor/items/PayTableSymbolSpecialV1.stories.d.ts +5 -1
  80. package/dist/types/src/entities/payTable/ui/PayTableConstructor/items/PayTableSymbolSpecialV2.stories.d.ts +5 -1
  81. package/dist/types/src/entities/payTable/ui/PayTableConstructor/items/PayTableTitle.stories.d.ts +5 -1
  82. package/dist/types/src/entities/realityCheck/index.d.ts +0 -1
  83. package/dist/types/src/entities/roundsHistory/ui/RoundsHistoryCard.d.ts +1 -0
  84. package/dist/types/src/entities/sound/ui/SoundSettingsSwitcher/SoundSettingsSwitcher.d.ts +1 -0
  85. package/dist/types/src/features/menu/index.d.ts +2 -1
  86. package/dist/types/src/features/menu/lib/useInfoClick.d.ts +10 -0
  87. package/dist/types/src/features/menu/ui/InfoButton/InfoButton.d.ts +15 -0
  88. package/dist/types/src/features/menu/ui/PanelInfo/PanelInfo.d.ts +11 -0
  89. package/dist/types/src/modules/promoLobby/app/model/index.d.ts +2 -2
  90. package/dist/types/src/modules/promoLobby/app/model/promoLobbySlice.d.ts +30 -2
  91. package/dist/types/src/modules/promoLobby/app/model/promoLobbySlice.test.d.ts +1 -0
  92. package/dist/types/src/modules/promoLobby/app/model/types.d.ts +6 -1
  93. package/dist/types/src/modules/promoLobby/entities/modals/index.d.ts +0 -2
  94. package/dist/types/src/modules/promoLobby/entities/modals/ui/ModalBase.d.ts +1 -1
  95. package/dist/types/src/modules/promoLobby/entities/modals/ui/ModalBaseHeader.d.ts +1 -1
  96. package/dist/types/src/modules/promoLobby/entities/prizeDrop/lib/isTrueTokenCampaign.d.ts +2 -0
  97. package/dist/types/src/modules/promoLobby/entities/prizeDrop/ui/PrizeDropEvents/PrizeDropEventsEmpty.d.ts +5 -0
  98. package/dist/types/src/modules/promoLobby/entities/prizeDrop/ui/PrizeDropEvents/PrizeDropEventsList.d.ts +2 -0
  99. package/dist/types/src/modules/promoLobby/entities/prizeDrop/ui/PrizeDropEvents/components/PrizeDropEventsPrizes.d.ts +4 -0
  100. package/dist/types/src/modules/promoLobby/shared/lib/analytics/promoLobbyAnalytics.d.ts +2 -1
  101. package/dist/types/src/modules/promoLobby/shared/lib/analytics/subscribePromoLobbyAnalytics.d.ts +9 -0
  102. package/dist/types/src/modules/promoLobby/shared/lib/hooks/useHasNotifications.d.ts +7 -3
  103. package/dist/types/src/modules/promoLobby/shared/modals/modalsSlice.d.ts +2 -1
  104. package/dist/types/src/modules/promoLobby/styles/tailwind.config.d.ts +3 -1
  105. package/dist/types/src/modules/promoLobby/widgets/panel/ui/PanelPromoLobby.d.ts +1 -4
  106. package/dist/types/src/modules/promoLobby/widgets/promoLobbyTab/index.d.ts +1 -0
  107. package/dist/types/src/modules/promoLobby/widgets/promoLobbyTab/ui/PromoLobbyTab.d.ts +7 -0
  108. package/dist/types/src/modules/promoLobby/widgets/topBar/ui/TopBar.d.ts +9 -0
  109. package/dist/types/src/sandbox/config.d.ts +10 -12
  110. package/dist/types/src/sandbox/gui/gui.d.ts +3 -6
  111. package/dist/types/src/sandbox/gui/helpers/index.d.ts +1 -1
  112. package/dist/types/src/sandbox/gui/helpers/serializationGameInfo.d.ts +6 -0
  113. package/dist/types/src/sandbox/gui/sections/configuration/gameInfo/index.d.ts +12 -0
  114. package/dist/types/src/sandbox/gui/sections/configuration/gameInfo/items/generateInfoItem.d.ts +11 -0
  115. package/dist/types/src/sandbox/gui/sections/configuration/gameInfo/items/generateLineItem.d.ts +11 -0
  116. package/dist/types/src/sandbox/gui/sections/configuration/gameInfo/items/generateSymbolItem.d.ts +11 -0
  117. package/dist/types/src/sandbox/gui/sections/configuration/gameInfo/items/index.d.ts +3 -0
  118. package/dist/types/src/sandbox/gui/sections/promoLobby/index.d.ts +8 -0
  119. package/dist/types/src/sandbox/presets/index.d.ts +1 -0
  120. package/dist/types/src/sandbox/presets/prizeDrop/campaignsList.d.ts +2 -0
  121. package/dist/types/src/sandbox/presets/prizeDrop/lobbyInit.d.ts +2 -0
  122. package/dist/types/src/sandbox/types/GameInfo.d.ts +11 -0
  123. package/dist/types/src/sandbox/types/PayTable.d.ts +1 -6
  124. package/dist/types/src/shared/api/config/types.d.ts +4 -0
  125. package/dist/types/src/shared/api/modules/promoLobby/config.d.ts +4 -0
  126. package/dist/types/src/shared/lib/classes/integration/OperatorAbstractService.d.ts +0 -2
  127. package/dist/types/src/shared/lib/classes/integration/OperatorBaseService.d.ts +0 -4
  128. package/dist/types/src/shared/lib/classes/integration/OperatorGeneralService.d.ts +1 -3
  129. package/dist/types/src/shared/lib/constants/cssVars.d.ts +7 -0
  130. package/dist/types/src/shared/lib/constants/index.d.ts +1 -0
  131. package/dist/types/src/shared/lib/constants/widgetZIndex.d.ts +1 -0
  132. package/dist/types/src/shared/lib/functions/formatCount.d.ts +5 -0
  133. package/dist/types/src/shared/lib/functions/index.d.ts +1 -0
  134. package/dist/types/src/shared/lib/hooks/index.d.ts +1 -1
  135. package/dist/types/src/shared/lib/hooks/useElementsBottomCssVar.d.ts +14 -0
  136. package/dist/types/src/shared/lib/panelLayout/types.d.ts +2 -2
  137. package/dist/types/src/shared/lib/singletones/analyticsEmitter.d.ts +0 -1
  138. package/dist/types/src/shared/lib/singletones/gameEmitter.d.ts +1 -1
  139. package/dist/types/src/shared/lib/singletones/operatorEmitter.d.ts +0 -2
  140. package/dist/types/src/shared/lib/store/redux.d.ts +14 -12
  141. package/dist/types/src/shared/lib/tests/utils/getPreloadedState.d.ts +7 -6
  142. package/dist/types/src/shared/lib/tests/utils/setupTestStore.d.ts +14 -12
  143. package/dist/types/src/shared/model/menu/types.d.ts +2 -1
  144. package/dist/types/src/shared/model/modals/index.d.ts +1 -1
  145. package/dist/types/src/shared/model/modals/modalsSlice.d.ts +2 -3
  146. package/dist/types/src/shared/modules/menuInnerPage.d.ts +25 -0
  147. package/dist/types/src/shared/modules/menuTabsRegistry.d.ts +3 -0
  148. package/dist/types/src/shared/ui/CustomScroll/CustomScroll.d.ts +3 -0
  149. package/dist/types/src/shared/ui/FixedWidthLabel/FixedWidthLabel.d.ts +1 -0
  150. package/dist/types/src/shared/ui/InfoConstructor/InfoConstructor.d.ts +3 -1
  151. package/dist/types/src/shared/ui/InfoConstructor/items/InfoIconListItem.d.ts +4 -1
  152. package/dist/types/src/shared/ui/InfoSeparator/InfoSeparator.d.ts +13 -0
  153. package/dist/types/src/shared/ui/InfoSeparator/index.d.ts +1 -0
  154. package/dist/types/src/shared/ui/SettingsSwitchCard/SettingsSwitchCard.d.ts +16 -0
  155. package/dist/types/src/shared/ui/SettingsSwitchCard/index.d.ts +1 -0
  156. package/dist/types/src/shared/ui/Switch/index.d.ts +0 -2
  157. package/dist/types/src/shared/ui/TabBar/TabBar.d.ts +16 -0
  158. package/dist/types/src/shared/ui/TabBar/TabBar.stories.d.ts +1804 -0
  159. package/dist/types/src/shared/ui/TabBar/TabBarIconButton.d.ts +8 -0
  160. package/dist/types/src/shared/ui/TabBar/TabBarItem.d.ts +12 -0
  161. package/dist/types/src/shared/ui/TabBar/index.d.ts +3 -0
  162. package/dist/types/src/shared/ui/TapAnywhere/TapAnywhere.d.ts +4 -2
  163. package/dist/types/src/widgets/menu/index.d.ts +3 -0
  164. package/dist/types/src/widgets/menu/lib/selectors.d.ts +11 -0
  165. package/dist/types/src/widgets/menu/lib/useMenuTabs.d.ts +25 -0
  166. package/dist/types/src/widgets/menu/ui/GameInfoLight/GameInfoLight.d.ts +16 -0
  167. package/dist/types/src/widgets/menu/ui/MenuHeader/MenuHeader.d.ts +18 -0
  168. package/dist/types/src/widgets/menu/ui/MenuTabBar/MenuTabBar.d.ts +11 -0
  169. package/dist/types/src/widgets/menu/ui/MenuTabContent/MenuTabContent.d.ts +17 -0
  170. package/dist/types/src/widgets/menu/ui/ModalMenu/ModalMenu.test.d.ts +1 -0
  171. package/dist/types/src/widgets/menu/ui/tabs/ActivityTab.d.ts +2 -0
  172. package/dist/types/src/widgets/menu/ui/tabs/ActivityTab.test.d.ts +1 -0
  173. package/dist/types/src/widgets/menu/ui/tabs/GameInfoTab.d.ts +14 -0
  174. package/dist/types/src/widgets/menu/ui/tabs/GameInfoTab.test.d.ts +1 -0
  175. package/dist/types/src/widgets/menu/ui/tabs/RealityCheckSettings.d.ts +7 -0
  176. package/dist/types/src/widgets/menu/ui/tabs/RealityCheckSettings.test.d.ts +1 -0
  177. package/dist/types/src/widgets/menu/ui/tabs/RoundDetailsPage.d.ts +9 -0
  178. package/dist/types/src/widgets/menu/ui/tabs/SettingsTab.d.ts +2 -0
  179. package/dist/types/src/widgets/{modals/ui/ModalSettings.stories.d.ts → menu/ui/tabs/SettingsTab.stories.d.ts} +3 -3
  180. package/dist/types/src/widgets/modals/index.d.ts +0 -7
  181. package/dist/types/src/widgets/modals/ui/ModalRealityCheckReminder.test.d.ts +1 -0
  182. package/package.json +1 -1
  183. package/dist/318.a4e04288.css +0 -3
  184. package/dist/318.min.js +0 -1
  185. package/dist/assets/coming-soon.378973f1d8788623bbe9.webp +0 -0
  186. package/dist/assets/true-coin.1428441fe478e319cb4e.webp +0 -0
  187. package/dist/types/src/entities/menu/ui/MenuSwitchItem.d.ts +0 -6
  188. package/dist/types/src/entities/menu/ui/MenuSwitchItem.stories.d.ts +0 -35
  189. package/dist/types/src/entities/modals/ui/ModalMenuItemCard.d.ts +0 -8
  190. package/dist/types/src/entities/realityCheck/ui/RealityCheckSwitcher/RealityCheckSwitcher.d.ts +0 -7
  191. package/dist/types/src/features/menu/ui/PanelMenu/PanelMenu.d.ts +0 -10
  192. package/dist/types/src/modules/promoLobby/entities/modals/ui/ModalFullHeightBase.d.ts +0 -10
  193. package/dist/types/src/modules/promoLobby/entities/modals/ui/ModalMenuItemCard.d.ts +0 -8
  194. package/dist/types/src/modules/promoLobby/screens/InfoScreen/InfoScreen.d.ts +0 -1
  195. package/dist/types/src/modules/promoLobby/screens/ProfileScreen/ProfileScreen.d.ts +0 -1
  196. package/dist/types/src/modules/promoLobby/shared/lib/constants/index.d.ts +0 -1
  197. package/dist/types/src/modules/promoLobby/shared/lib/constants/widgetZIndex.d.ts +0 -3
  198. package/dist/types/src/modules/promoLobby/shared/lib/hooks/usePromoLobbyAnalyticsEvents.d.ts +0 -1
  199. package/dist/types/src/modules/promoLobby/widgets/modals/ui/ModalPromoLobby.d.ts +0 -2
  200. package/dist/types/src/modules/promoLobby/widgets/navbar/index.d.ts +0 -2
  201. package/dist/types/src/modules/promoLobby/widgets/navbar/lib/navbarConfig.d.ts +0 -7
  202. package/dist/types/src/modules/promoLobby/widgets/navbar/ui/Navbar.d.ts +0 -1
  203. package/dist/types/src/modules/promoLobby/widgets/navbar/ui/NavbarItem.d.ts +0 -12
  204. package/dist/types/src/sandbox/gui/helpers/serializationPayTable.d.ts +0 -3
  205. package/dist/types/src/sandbox/gui/sections/configuration/gameInfo.d.ts +0 -2
  206. package/dist/types/src/sandbox/gui/sections/configuration/payTable.d.ts +0 -2
  207. package/dist/types/src/shared/lib/hooks/useFullScreen.d.ts +0 -5
  208. package/dist/types/src/shared/lib/hooks/useFullScreenSupport.d.ts +0 -1
  209. package/dist/types/src/shared/model/fullScreen/fullScreenSlice.d.ts +0 -7
  210. package/dist/types/src/shared/model/fullScreen/index.d.ts +0 -1
  211. package/dist/types/src/shared/ui/Switch/SwitchItem.d.ts +0 -21
  212. package/dist/types/src/shared/ui/Switch/SwitchItem.stories.d.ts +0 -14
  213. package/dist/types/src/widgets/modals/ui/ModalGameInfo.d.ts +0 -1
  214. package/dist/types/src/widgets/modals/ui/ModalMenu/ModalMenu.stories.d.ts +0 -17
  215. package/dist/types/src/widgets/modals/ui/ModalPayTable.d.ts +0 -1
  216. package/dist/types/src/widgets/modals/ui/ModalPayTable.stories.d.ts +0 -15
  217. package/dist/types/src/widgets/modals/ui/ModalRealityCheck.d.ts +0 -1
  218. package/dist/types/src/widgets/modals/ui/ModalRoundDetails.d.ts +0 -1
  219. package/dist/types/src/widgets/modals/ui/ModalRoundsHistory.d.ts +0 -1
  220. package/dist/types/src/widgets/modals/ui/ModalSettings.d.ts +0 -1
  221. package/dist/types/src/widgets/topBar/ui/TopBar.d.ts +0 -5
  222. /package/dist/types/src/{widgets → modules/promoLobby/widgets}/topBar/index.d.ts +0 -0
  223. /package/dist/types/src/widgets/{modals → menu}/ui/ModalMenu/ModalMenu.d.ts +0 -0
@@ -1,4 +1,4 @@
1
- import { TPayTableConfig, TPayTableSeparator, TPayTableSymbolGridV1, TPayTableSymbolSpecialV1, TPayTableSymbolSpecialV2, TPayTableTitle, TSymbolsGridV1Gap } from '../../entities/payTable';
1
+ import { TPayTableSeparator, TPayTableSymbolGridV1, TPayTableSymbolSpecialV1, TPayTableSymbolSpecialV2, TPayTableTitle } from '../../entities/payTable';
2
2
  export type TStoredPayTableSymbolSetting = {
3
3
  type: 'default' | 'custom' | 'dynamic';
4
4
  content: string;
@@ -11,8 +11,3 @@ export type TStoredPayTableLine = {
11
11
  lineBreak?: boolean;
12
12
  };
13
13
  export type TStoredPayTableItem = TPayTableTitle | TStoredPayTableSymbol | TStoredPayTableLine | TPayTableSeparator;
14
- export type TStoredPayTableConfig = {
15
- background?: TPayTableConfig['background'];
16
- items: TStoredPayTableItem[];
17
- symbolsGridV1Gap?: TSymbolsGridV1Gap;
18
- };
@@ -67,6 +67,10 @@ export type TSessionUrls = {
67
67
  export type TPrizeDrop = {
68
68
  apiUrl: string;
69
69
  token: string;
70
+ /** Feature flag for the PromoLobby Wallet. Absent means "keep the value from the init config" (default `false`). */
71
+ wallet?: boolean;
72
+ /** Feature flag for the PromoLobby Rewards Hub. Absent means "keep the value from the init config" (default `false`). */
73
+ rewardsHub?: boolean;
70
74
  };
71
75
  export type TSessionSettings = {
72
76
  mode: TSessionMode;
@@ -4,6 +4,10 @@ import { TApiRewardsClaimFake, TApiRewardsListFake } from '../../../../shared/ap
4
4
  import { TApiTransactionsFake, TApiWalletConvertFake } from '../../../../shared/api/modules/promoLobby/wallet';
5
5
  export type TPromoLobbyConfig = {
6
6
  enabled?: boolean;
7
+ /** Feature flag. When `false` (default) the Wallet is hidden inside PromoLobby. */
8
+ wallet?: boolean;
9
+ /** Feature flag. When `false` (default) the Rewards Hub is hidden inside PromoLobby. */
10
+ rewardsHub?: boolean;
7
11
  lang?: string;
8
12
  url?: string;
9
13
  token?: string;
@@ -60,6 +60,4 @@ export default abstract class OperatorAbstractService {
60
60
  sendHistoryShow(): Promise<void>;
61
61
  sendSettingsUpdate(_data: TSettingsData): Promise<void>;
62
62
  sendGameExit(): Promise<void>;
63
- sendFullscreenEnabled(): Promise<void>;
64
- sendFullscreenDisabled(): Promise<void>;
65
63
  }
@@ -5,8 +5,6 @@ export declare enum EOperatorBaseSendEvents {
5
5
  gameCompleted = "gameCompleted",
6
6
  changeBalance = "changeBalance",
7
7
  leaveTheGame = "leaveTheGame",
8
- fullscreenOn = "fullscreen-on",
9
- fullscreenOff = "fullscreen-off",
10
8
  modalRefill = "modalRefill"
11
9
  }
12
10
  export type TEventOptions = {
@@ -32,6 +30,4 @@ export declare class OperatorBaseService extends OperatorAbstractService {
32
30
  sendRoundFinished(data: TRoundFinishData): Promise<void>;
33
31
  sendDepositShow(): Promise<void>;
34
32
  sendGameExit(): Promise<void>;
35
- sendFullscreenEnabled(): Promise<void>;
36
- sendFullscreenDisabled(): Promise<void>;
37
33
  }
@@ -24,9 +24,7 @@ export declare enum EEventSend {
24
24
  sendDepositShow = "sendDepositShow",
25
25
  sendHistoryShow = "sendHistoryShow",
26
26
  sendSettingsUpdate = "sendSettingsUpdate",
27
- sendGameExit = "sendGameExit",
28
- sendFullscreenEnabled = "sendFullscreenEnabled",
29
- sendFullscreenDisabled = "sendFullscreenDisabled"
27
+ sendGameExit = "sendGameExit"
30
28
  }
31
29
  export declare class OperatorGeneralService {
32
30
  protected operatorServices: OperatorAbstractService[];
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Bottom edge of the top line texts (game title, time, lines/RTP), published by the TopLine
3
+ * widget via `useElementsBottomCssVar`. The menu shell keeps its header 3px below it, the way
4
+ * the mockups do when the texts wrap; consumers give `var()` a 20px fallback — the mockup's
5
+ * one-row status bar.
6
+ */
7
+ export declare const TOP_LINE_TEXTS_BOTTOM_CSS_VAR = "--top-line-texts-bottom";
@@ -1 +1,2 @@
1
+ export { TOP_LINE_TEXTS_BOTTOM_CSS_VAR } from './cssVars';
1
2
  export { WIDGET_Z_INDEX } from './widgetZIndex';
@@ -2,6 +2,7 @@ export declare const WIDGET_Z_INDEX: {
2
2
  fillFrame: string;
3
3
  tapAnywhere: string;
4
4
  welcomeFooter: string;
5
+ welcomeInfoButton: string;
5
6
  panelButtonsWithOpenModal: string;
6
7
  playerPanel: string;
7
8
  panelButtons: string;
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Plain integer counters (prizes left, winners, prize counts) with the locale's group separator —
3
+ * `1578` reads as `1,578`. Money keeps going through `cashService`, this is for bare counts.
4
+ */
5
+ export declare const formatCount: (value: number | undefined | null, lang: string) => string;
@@ -3,6 +3,7 @@ export { bleachColor } from './bleachColor';
3
3
  export { camelToKebab } from './camelToKebab';
4
4
  export { hexToHsl, hslToHex, parseHSL, toHSL } from './colors';
5
5
  export { debounce } from './debounce';
6
+ export { formatCount } from './formatCount';
6
7
  export { formatDate } from './formatDate';
7
8
  export { formatTime } from './formatTime';
8
9
  export { getBase64Image } from './getBase64Image';
@@ -1,8 +1,8 @@
1
1
  export { useClickOutside } from './useClickOutside';
2
2
  export { useDebounce } from './useDebounce';
3
3
  export { useElementInViewPort } from './useElementInViewPort';
4
+ export { useElementsBottomCssVar } from './useElementsBottomCssVar';
4
5
  export { useEnv } from './useEnv';
5
- export { useFullScreenSupport } from './useFullScreenSupport';
6
6
  export { useGameTime } from './useGameTime';
7
7
  export { useHoldDown } from './useHoldDown';
8
8
  export { useOffline } from './useOffline';
@@ -0,0 +1,14 @@
1
+ import { RefObject } from 'react';
2
+ /**
3
+ * Keeps a CSS custom property on the document root equal to the bottom edge of the tallest of
4
+ * the given elements, measured from the container's top in layout px — rects are normalized by
5
+ * the container's own scale, so the game root `transform: scale()` does not leak into the value.
6
+ *
7
+ * Lets a widget position itself under another widget from a different layer of the overlay
8
+ * stack with plain CSS on the consumer side: `var(--the-name, <fallback>)`. The property is
9
+ * removed when the publishing widget unmounts, so the consumer falls back to its default.
10
+ *
11
+ * The set of elements may change between renders (a ref target appearing with its feature,
12
+ * free rounds starting mid-session) — the observer re-attaches whenever it does.
13
+ */
14
+ export declare const useElementsBottomCssVar: (name: string, containerRef: RefObject<HTMLElement>, refs: RefObject<HTMLElement>[]) => void;
@@ -6,12 +6,12 @@ export declare enum EArea {
6
6
  slot4 = "[grid-area:slot4] mp:mb-8"
7
7
  }
8
8
  export type TPanelLayout = {
9
- /** Menu button without a slot is rendered floating outside the plate */
10
- menu?: EArea;
11
9
  stakeAmounts: EArea;
12
10
  autoPlay?: EArea;
13
11
  fastPlay?: EArea;
14
12
  bonus?: EArea;
13
+ /** Info button slot on the plate; unset — the Info button is the round one in the screen corner */
14
+ info?: EArea;
15
15
  /** Narrow plate: one button on each side of the spin button */
16
16
  isNarrow: boolean;
17
17
  };
@@ -86,7 +86,6 @@ export type TAnalyticsEvents = {
86
86
  ['prizeDrop:won']: (params: TAnalyticsCustomParams) => void;
87
87
  ['notification_badge_shown']: () => void;
88
88
  ['notification_badge_cleared']: () => void;
89
- ['promoLobby:infoViewed']: () => void;
90
89
  ['promoLobby:opened']: () => void;
91
90
  ['promoLobby:closed']: () => void;
92
91
  ['wallet:opened']: () => void;
@@ -74,7 +74,7 @@ export type TAutoPlayStartedResponse = {
74
74
  number: number;
75
75
  isStopUponBonusGame: boolean;
76
76
  };
77
- export type TButtonName = 'play' | 'stop' | 'bets' | 'menu' | 'bonus' | 'bonusBetOff' | 'bonusFeature' | 'bonusFeatureBuy' | 'modalClose' | 'autoPlay' | 'autoPlayStop' | 'autoPlayOption' | 'autoPlayStart' | 'menuCard' | 'lobby' | 'return' | 'service' | 'welcome' | 'levelUp' | 'levelDown' | 'cashUp' | 'cashDown' | 'historyCard' | 'copy' | 'replay' | 'settingsCard' | 'realityCheck' | 'realityCheckSelect' | 'choice' | 'freeRounds';
77
+ export type TButtonName = 'play' | 'stop' | 'bets' | 'menu' | 'bonus' | 'bonusBetOff' | 'bonusFeature' | 'bonusFeatureBuy' | 'modalClose' | 'autoPlay' | 'autoPlayStop' | 'autoPlayOption' | 'autoPlayStart' | 'menuCard' | 'info' | 'lobby' | 'return' | 'service' | 'welcome' | 'levelUp' | 'levelDown' | 'cashUp' | 'cashDown' | 'historyCard' | 'copy' | 'replay' | 'settingsCard' | 'realityCheck' | 'realityCheckSelect' | 'choice' | 'freeRounds';
78
78
  export type TSliderName = 'welcome' | 'bets' | 'autoplay';
79
79
  export type TFreeRoundResultResponse = {
80
80
  count: number;
@@ -5,8 +5,6 @@ export type TOperatorEvents = {
5
5
  ['round:ended']: (options: TRoundFinishData) => void;
6
6
  ['balance:changed']: (balance: number) => void;
7
7
  ['game:left']: () => void;
8
- ['fullscreen:enabled']: () => void;
9
- ['fullscreen:disabled']: () => void;
10
8
  ['modal:refill']: () => void;
11
9
  ['loading:started']: () => void;
12
10
  ['loading.progress:changed']: (progress: number) => void;
@@ -65,7 +65,6 @@ export declare const useAppDispatch: import("react-redux").UseDispatch<import("r
65
65
  inactivityTimeout: number;
66
66
  };
67
67
  modals: {
68
- hasOpenedByModule: boolean;
69
68
  hasOpened: boolean;
70
69
  current: import("../../model/modals").TModalName[];
71
70
  configs: {
@@ -260,7 +259,8 @@ export declare const useAppDispatch: import("react-redux").UseDispatch<import("r
260
259
  };
261
260
  gameInfo: {
262
261
  deferredConfig: import("../../../index").TGameInfoConfig;
263
- containers: import("../../ui/InfoConstructor").TInfoContainer[];
262
+ containers: import("../../../entities/gameInfo").TGameInfoContainer[];
263
+ symbolsGridV1Gap: import("../../../entities/payTable").TSymbolsGridV1Gap;
264
264
  background?: string | {
265
265
  portrait?: string;
266
266
  landscape?: string;
@@ -287,10 +287,6 @@ export declare const useAppDispatch: import("react-redux").UseDispatch<import("r
287
287
  apiRoundReplay: import("../../../app/config/types/apiRoundReplay").TApiRoundReplayState;
288
288
  gameSettings: import("../../api/config").TGameSettings;
289
289
  complianceSettings: import("../../api/config").TComplianceSettings;
290
- fullScreen: {
291
- isFullScreenSupported: boolean;
292
- isFullScreenEnabled: boolean;
293
- };
294
290
  topLine: {
295
291
  config: import("../../../index").TTopLineConfig;
296
292
  };
@@ -320,6 +316,11 @@ export declare const useAppDispatch: import("react-redux").UseDispatch<import("r
320
316
  };
321
317
  showed?: boolean;
322
318
  };
319
+ menu: {
320
+ activeTab: import("../../../entities/menu").TMenuTab;
321
+ isTabBarHidden: boolean;
322
+ entry: import("../../../entities/menu").TMenuEntry;
323
+ };
323
324
  } & import("redux-persist/es/persistReducer").PersistPartial, undefined, import("redux").UnknownAction> & import("redux").Dispatch<import("redux").Action>>;
324
325
  export declare const useAppSelector: import("react-redux").UseSelector<{
325
326
  viewPort: import("../../viewPort/lib/types").TViewPortState;
@@ -388,7 +389,6 @@ export declare const useAppSelector: import("react-redux").UseSelector<{
388
389
  inactivityTimeout: number;
389
390
  };
390
391
  modals: {
391
- hasOpenedByModule: boolean;
392
392
  hasOpened: boolean;
393
393
  current: import("../../model/modals").TModalName[];
394
394
  configs: {
@@ -583,7 +583,8 @@ export declare const useAppSelector: import("react-redux").UseSelector<{
583
583
  };
584
584
  gameInfo: {
585
585
  deferredConfig: import("../../../index").TGameInfoConfig;
586
- containers: import("../../ui/InfoConstructor").TInfoContainer[];
586
+ containers: import("../../../entities/gameInfo").TGameInfoContainer[];
587
+ symbolsGridV1Gap: import("../../../entities/payTable").TSymbolsGridV1Gap;
587
588
  background?: string | {
588
589
  portrait?: string;
589
590
  landscape?: string;
@@ -610,10 +611,6 @@ export declare const useAppSelector: import("react-redux").UseSelector<{
610
611
  apiRoundReplay: import("../../../app/config/types/apiRoundReplay").TApiRoundReplayState;
611
612
  gameSettings: import("../../api/config").TGameSettings;
612
613
  complianceSettings: import("../../api/config").TComplianceSettings;
613
- fullScreen: {
614
- isFullScreenSupported: boolean;
615
- isFullScreenEnabled: boolean;
616
- };
617
614
  topLine: {
618
615
  config: import("../../../index").TTopLineConfig;
619
616
  };
@@ -643,6 +640,11 @@ export declare const useAppSelector: import("react-redux").UseSelector<{
643
640
  };
644
641
  showed?: boolean;
645
642
  };
643
+ menu: {
644
+ activeTab: import("../../../entities/menu").TMenuTab;
645
+ isTabBarHidden: boolean;
646
+ entry: import("../../../entities/menu").TMenuEntry;
647
+ };
646
648
  } & import("redux-persist/es/persistReducer").PersistPartial>;
647
649
  export declare const useAppStore: import("react-redux").UseStore<TAppStore>;
648
650
  export declare const createAppSlice: <State, CaseReducers extends import("@reduxjs/toolkit").SliceCaseReducers<State>, Name extends string, Selectors extends import("@reduxjs/toolkit").SliceSelectors<State>, ReducerPath extends string = Name>(options: import("@reduxjs/toolkit").CreateSliceOptions<State, CaseReducers, Name, ReducerPath, Selectors>) => import("@reduxjs/toolkit").Slice<State, CaseReducers, Name, ReducerPath, Selectors>;
@@ -65,7 +65,6 @@ export declare const getPreloadedState: (storePartial?: DeepPartial<TRootState>)
65
65
  inactivityTimeout: number;
66
66
  };
67
67
  modals: {
68
- hasOpenedByModule: boolean;
69
68
  hasOpened: boolean;
70
69
  current: import("../../../model/modals").TModalName[];
71
70
  configs: {
@@ -260,7 +259,8 @@ export declare const getPreloadedState: (storePartial?: DeepPartial<TRootState>)
260
259
  };
261
260
  gameInfo: {
262
261
  deferredConfig: import("../../../../index").TGameInfoConfig;
263
- containers: import("../../../ui/InfoConstructor").TInfoContainer[];
262
+ containers: import("../../../../entities/gameInfo").TGameInfoContainer[];
263
+ symbolsGridV1Gap: import("../../../../entities/payTable").TSymbolsGridV1Gap;
264
264
  background?: string | {
265
265
  portrait?: string;
266
266
  landscape?: string;
@@ -287,10 +287,6 @@ export declare const getPreloadedState: (storePartial?: DeepPartial<TRootState>)
287
287
  apiRoundReplay: import("../../../../app/config/types/apiRoundReplay").TApiRoundReplayState;
288
288
  gameSettings: import("../../../api/config").TGameSettings;
289
289
  complianceSettings: import("../../../api/config").TComplianceSettings;
290
- fullScreen: {
291
- isFullScreenSupported: boolean;
292
- isFullScreenEnabled: boolean;
293
- };
294
290
  topLine: {
295
291
  config: import("../../../../index").TTopLineConfig;
296
292
  };
@@ -320,4 +316,9 @@ export declare const getPreloadedState: (storePartial?: DeepPartial<TRootState>)
320
316
  };
321
317
  showed?: boolean;
322
318
  };
319
+ menu: {
320
+ activeTab: import("../../../../entities/menu").TMenuTab;
321
+ isTabBarHidden: boolean;
322
+ entry: import("../../../../entities/menu").TMenuEntry;
323
+ };
323
324
  } & import("redux-persist/es/persistReducer").PersistPartial;
@@ -65,7 +65,6 @@ export declare const setupTestStore: (storePartial?: DeepPartial<TRootState>) =>
65
65
  inactivityTimeout: number;
66
66
  };
67
67
  modals: {
68
- hasOpenedByModule: boolean;
69
68
  hasOpened: boolean;
70
69
  current: import("../../../model/modals").TModalName[];
71
70
  configs: {
@@ -260,7 +259,8 @@ export declare const setupTestStore: (storePartial?: DeepPartial<TRootState>) =>
260
259
  };
261
260
  gameInfo: {
262
261
  deferredConfig: import("../../../../index").TGameInfoConfig;
263
- containers: import("../../../ui/InfoConstructor").TInfoContainer[];
262
+ containers: import("../../../../entities/gameInfo").TGameInfoContainer[];
263
+ symbolsGridV1Gap: import("../../../../entities/payTable").TSymbolsGridV1Gap;
264
264
  background?: string | {
265
265
  portrait?: string;
266
266
  landscape?: string;
@@ -287,10 +287,6 @@ export declare const setupTestStore: (storePartial?: DeepPartial<TRootState>) =>
287
287
  apiRoundReplay: import("../../../../app/config/types/apiRoundReplay").TApiRoundReplayState;
288
288
  gameSettings: import("../../../api/config").TGameSettings;
289
289
  complianceSettings: import("../../../api/config").TComplianceSettings;
290
- fullScreen: {
291
- isFullScreenSupported: boolean;
292
- isFullScreenEnabled: boolean;
293
- };
294
290
  topLine: {
295
291
  config: import("../../../../index").TTopLineConfig;
296
292
  };
@@ -320,6 +316,11 @@ export declare const setupTestStore: (storePartial?: DeepPartial<TRootState>) =>
320
316
  };
321
317
  showed?: boolean;
322
318
  };
319
+ menu: {
320
+ activeTab: import("../../../../entities/menu").TMenuTab;
321
+ isTabBarHidden: boolean;
322
+ entry: import("../../../../entities/menu").TMenuEntry;
323
+ };
323
324
  } & import("redux-persist/es/persistReducer").PersistPartial, import("redux").Action, import("@reduxjs/toolkit").Tuple<[import("redux").StoreEnhancer<{
324
325
  dispatch: import("redux-thunk").ThunkDispatch<{
325
326
  viewPort: import("../../../viewPort/lib/types").TViewPortState;
@@ -388,7 +389,6 @@ export declare const setupTestStore: (storePartial?: DeepPartial<TRootState>) =>
388
389
  inactivityTimeout: number;
389
390
  };
390
391
  modals: {
391
- hasOpenedByModule: boolean;
392
392
  hasOpened: boolean;
393
393
  current: import("../../../model/modals").TModalName[];
394
394
  configs: {
@@ -583,7 +583,8 @@ export declare const setupTestStore: (storePartial?: DeepPartial<TRootState>) =>
583
583
  };
584
584
  gameInfo: {
585
585
  deferredConfig: import("../../../../index").TGameInfoConfig;
586
- containers: import("../../../ui/InfoConstructor").TInfoContainer[];
586
+ containers: import("../../../../entities/gameInfo").TGameInfoContainer[];
587
+ symbolsGridV1Gap: import("../../../../entities/payTable").TSymbolsGridV1Gap;
587
588
  background?: string | {
588
589
  portrait?: string;
589
590
  landscape?: string;
@@ -610,10 +611,6 @@ export declare const setupTestStore: (storePartial?: DeepPartial<TRootState>) =>
610
611
  apiRoundReplay: import("../../../../app/config/types/apiRoundReplay").TApiRoundReplayState;
611
612
  gameSettings: import("../../../api/config").TGameSettings;
612
613
  complianceSettings: import("../../../api/config").TComplianceSettings;
613
- fullScreen: {
614
- isFullScreenSupported: boolean;
615
- isFullScreenEnabled: boolean;
616
- };
617
614
  topLine: {
618
615
  config: import("../../../../index").TTopLineConfig;
619
616
  };
@@ -643,5 +640,10 @@ export declare const setupTestStore: (storePartial?: DeepPartial<TRootState>) =>
643
640
  };
644
641
  showed?: boolean;
645
642
  };
643
+ menu: {
644
+ activeTab: import("../../../../entities/menu").TMenuTab;
645
+ isTabBarHidden: boolean;
646
+ entry: import("../../../../entities/menu").TMenuEntry;
647
+ };
646
648
  } & import("redux-persist/es/persistReducer").PersistPartial, undefined, import("redux").UnknownAction>;
647
649
  }>, import("redux").StoreEnhancer]>>;
@@ -6,5 +6,6 @@ export type TMenuConfig = {
6
6
  isSoundsVisible: boolean;
7
7
  /** @deprecated Fast play is no longer shown in the game menu, the flag has no effect. */
8
8
  isFastPlayVisible?: boolean;
9
- isFullScreenVisible: boolean;
9
+ /** @deprecated Full screen is no longer part of the product, the flag has no effect. */
10
+ isFullScreenVisible?: boolean;
10
11
  };
@@ -1,2 +1,2 @@
1
1
  export type { TModalName } from './modalsSlice';
2
- export { closeModal, getCurrentModal, getIsPlayStartBlockedByModals, getModalsIsModalMode, modalsReducer, openModal, resetModalsServiceAutoplayType, setHasOpenedByModule, setIsModalReady, setModalConfigs, setModalReady, setModalsError, setModalsServiceAutoplayType, setModalsServiceErrorData, } from './modalsSlice';
2
+ export { closeModal, getCurrentModal, getIsPlayStartBlockedByModals, getModalsIsModalMode, modalsReducer, openModal, resetModalsServiceAutoplayType, setIsModalReady, setModalConfigs, setModalReady, setModalsError, setModalsServiceAutoplayType, setModalsServiceErrorData, } from './modalsSlice';
@@ -1,12 +1,11 @@
1
1
  import type { TAutoplayServiceModalType } from '../../../entities/autoplay';
2
2
  import { TAppThunkAction } from '../../../shared/lib/store';
3
3
  import { TMenuConfig } from '../menu';
4
- export type TModalName = 'menu' | 'bonusFeature' | 'autoplay' | 'realityCheck' | 'realityCheckReminder' | 'settings' | 'payTable' | 'roundsHistory' | 'roundDetails' | 'replay' | 'serviceMaxBet' | 'serviceInsufficientFunds' | 'serviceRestore' | 'serviceMaxWin' | 'serviceQuitTheGame' | 'serviceConnectionLost' | 'serviceError' | 'serviceFatalError' | 'serviceSessionExpired' | 'serviceAutoplay' | 'gameInfo' | 'freeRounds' | 'freeRoundsResult' | 'prizeDropCongratulation' | 'prizeDropUnclaimed' | 'prizeDrop' | 'prizeDropSuccess' | 'prizeDropResult' | 'prizeDropLive' | 'prizeDropJoinError' | 'stakeAmounts';
4
+ export type TModalName = 'menu' | 'bonusFeature' | 'autoplay' | 'realityCheckReminder' | 'replay' | 'serviceMaxBet' | 'serviceInsufficientFunds' | 'serviceRestore' | 'serviceMaxWin' | 'serviceQuitTheGame' | 'serviceConnectionLost' | 'serviceError' | 'serviceFatalError' | 'serviceSessionExpired' | 'serviceAutoplay' | 'freeRounds' | 'freeRoundsResult' | 'prizeDropCongratulation' | 'prizeDropUnclaimed' | 'prizeDrop' | 'prizeDropSuccess' | 'prizeDropResult' | 'prizeDropLive' | 'prizeDropJoinError' | 'stakeAmounts';
5
5
  type TModalConfigs = {
6
6
  menu: TMenuConfig;
7
7
  };
8
8
  type TModalsState = {
9
- hasOpenedByModule: boolean;
10
9
  hasOpened: boolean;
11
10
  current: TModalName[];
12
11
  configs: TModalConfigs;
@@ -23,7 +22,7 @@ type TModalsError = {
23
22
  export declare const closeModal: import("@reduxjs/toolkit").ActionCreatorWithOptionalPayload<TModalName, "modals/closeModal">, setModalConfigs: import("@reduxjs/toolkit").ActionCreatorWithOptionalPayload<TMenuConfig, "modals/setModalConfigs">, setModalReady: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"modals/setModalReady">, setModalsServiceAutoplayType: import("@reduxjs/toolkit").ActionCreatorWithOptionalPayload<TAutoplayServiceModalType, "modals/setModalsServiceAutoplayType">, setIsModalReady: import("@reduxjs/toolkit").ActionCreatorWithOptionalPayload<boolean, "modals/setIsModalReady">, resetModalsServiceAutoplayType: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"modals/resetModalsServiceAutoplayType">, setModalsServiceErrorData: import("@reduxjs/toolkit").ActionCreatorWithOptionalPayload<{
24
23
  name: string;
25
24
  message: string;
26
- }, "modals/setModalsServiceErrorData">, setHasOpened: import("@reduxjs/toolkit").ActionCreatorWithOptionalPayload<boolean, "modals/setHasOpened">, addCurrent: import("@reduxjs/toolkit").ActionCreatorWithOptionalPayload<TModalName, "modals/addCurrent">, focusModal: import("@reduxjs/toolkit").ActionCreatorWithOptionalPayload<TModalName, "modals/focusModal">, setHasOpenedByModule: import("@reduxjs/toolkit").ActionCreatorWithOptionalPayload<boolean, "modals/setHasOpenedByModule">;
25
+ }, "modals/setModalsServiceErrorData">, setHasOpened: import("@reduxjs/toolkit").ActionCreatorWithOptionalPayload<boolean, "modals/setHasOpened">, addCurrent: import("@reduxjs/toolkit").ActionCreatorWithOptionalPayload<TModalName, "modals/addCurrent">, focusModal: import("@reduxjs/toolkit").ActionCreatorWithOptionalPayload<TModalName, "modals/focusModal">;
27
26
  export declare const getModalsIsModalMode: import("reselect").Selector<{
28
27
  modals: TModalsState;
29
28
  }, boolean, []> & {
@@ -0,0 +1,25 @@
1
+ import { FC, ReactNode } from 'react';
2
+ /** An inner page of a tab: it renames the header and puts a back button in it. */
3
+ export type TMenuInnerPage = {
4
+ title: string;
5
+ onBack: () => void;
6
+ };
7
+ type TMenuInnerPageContext = {
8
+ page: TMenuInnerPage | null;
9
+ openPage: (page: TMenuInnerPage) => void;
10
+ closePage: () => void;
11
+ };
12
+ type TProps = {
13
+ children: ReactNode;
14
+ };
15
+ /**
16
+ * Lets the active tab take over the menu header — the round details page, for one, replaces the
17
+ * tab title with its own and swaps the home and sound buttons for a back button. Kept in React
18
+ * rather than in the store: `onBack` is a callback, and the page dies with the tab anyway.
19
+ *
20
+ * Lives in `shared` on purpose, like `menuTabsRegistry`: tabs contributed by a module (the promo
21
+ * lobby event page) open inner pages too, and a module must not depend on a core widget.
22
+ */
23
+ export declare const MenuInnerPageProvider: FC<TProps>;
24
+ export declare const useMenuInnerPage: () => TMenuInnerPageContext;
25
+ export {};
@@ -0,0 +1,3 @@
1
+ import { ComponentType } from 'react';
2
+ export declare const registerMenuTab: (component: ComponentType | null) => void;
3
+ export declare const useMenuPromoLobbyTab: () => ComponentType;
@@ -2,6 +2,9 @@ import React from 'react';
2
2
  type TCustomScrollProps = {
3
3
  children: React.ReactNode;
4
4
  className?: string;
5
+ /** Classes for the moving content box — e.g. `flex min-h-full flex-col` to let short content
6
+ * stretch to the full scroll height instead of hugging its own. */
7
+ contentClassName?: string;
5
8
  initialScrollToSelector?: string;
6
9
  };
7
10
  declare const CustomScroll: React.FC<TCustomScrollProps>;
@@ -4,6 +4,7 @@ type TProps = {
4
4
  initialFontSize: number;
5
5
  maxWidth: number;
6
6
  minFontSize?: number;
7
+ fontSizeStep?: number;
7
8
  className?: string;
8
9
  onFontSizeAdjust?: (fontSize: number) => void;
9
10
  };
@@ -1,6 +1,8 @@
1
1
  import { TInfoContainer } from '../../../shared/ui/InfoConstructor';
2
2
  type TProps = {
3
3
  containers: TInfoContainer[];
4
+ /** Where the game menu entry point is — a panel plate slot or the round corner button; the `info` list icon mirrors it */
5
+ isInfoButtonOnPanel?: boolean;
4
6
  };
5
- export declare const InfoConstructor: ({ containers }: TProps) => import("react/jsx-runtime").JSX.Element;
7
+ export declare const InfoConstructor: ({ containers, isInfoButtonOnPanel }: TProps) => import("react/jsx-runtime").JSX.Element;
6
8
  export {};
@@ -1,5 +1,6 @@
1
1
  import { FC } from 'react';
2
- export type TInfoIconName = 'spin' | 'game-menu' | 'bet-size' | 'autoplay' | 'spin-speed' | 'buy-feature' | 'true-world';
2
+ /** `game-menu` is the pre-redesign name of the menu entry point icon, kept as an alias of `info` */
3
+ export type TInfoIconName = 'spin' | 'info' | 'game-menu' | 'bet-size' | 'autoplay' | 'spin-speed' | 'buy-feature' | 'true-world';
3
4
  export type TInfoIconListItem = {
4
5
  type: 'icon-list-item';
5
6
  icon: TInfoIconName;
@@ -8,6 +9,8 @@ export type TInfoIconListItem = {
8
9
  };
9
10
  type TProps = {
10
11
  item: TInfoIconListItem;
12
+ /** The Info button sits in a panel plate slot (true) or is the round one in the screen corner (false) */
13
+ isInfoButtonOnPanel?: boolean;
11
14
  };
12
15
  export declare const InfoIconListItem: FC<TProps>;
13
16
  export {};
@@ -0,0 +1,13 @@
1
+ import { FC, HTMLAttributes } from 'react';
2
+ type TProps = {
3
+ /** Vertical rhythm around the line — it differs per page, the line itself does not. */
4
+ className?: string;
5
+ } & HTMLAttributes<HTMLDivElement>;
6
+ /**
7
+ * Hairline divider of the info pages: a horizontal gradient fading out to both ends.
8
+ *
9
+ * Vertical spacing is left to the caller — the paytable separates its own blocks tighter than
10
+ * the gap between whole sections of the Game Info page.
11
+ */
12
+ export declare const InfoSeparator: FC<TProps>;
13
+ export {};
@@ -0,0 +1 @@
1
+ export { InfoSeparator } from './InfoSeparator';
@@ -0,0 +1,16 @@
1
+ import { FC, HTMLAttributes, ReactNode } from 'react';
2
+ type TProps = {
3
+ icon: ReactNode;
4
+ label: string;
5
+ isActive: boolean;
6
+ onToggle: (event: React.MouseEvent) => void;
7
+ switchTestId?: string;
8
+ /** Settings the switch reveals — a divider appears above them. */
9
+ children?: ReactNode;
10
+ } & HTMLAttributes<HTMLDivElement>;
11
+ /**
12
+ * A settings plate: a row with an icon, a caption and a switch, growing downwards with the
13
+ * settings that switch controls (sound volumes, reality check intervals).
14
+ */
15
+ export declare const SettingsSwitchCard: FC<TProps>;
16
+ export {};
@@ -0,0 +1 @@
1
+ export { SettingsSwitchCard } from './SettingsSwitchCard';
@@ -1,3 +1 @@
1
1
  export { Switch } from './Switch';
2
- export type { TSwitchItemProps } from './SwitchItem';
3
- export { SwitchItem } from './SwitchItem';
@@ -0,0 +1,16 @@
1
+ import { FC, HTMLAttributes, ReactNode } from 'react';
2
+ type TProps = {
3
+ children: ReactNode;
4
+ /** Position of the highlighted tab among the items, -1 for none */
5
+ activeIndex?: number;
6
+ } & HTMLAttributes<HTMLDivElement>;
7
+ /**
8
+ * Translucent blurred plate holding `TabBarItem`s (and the Close button in its own plate):
9
+ * a horizontal row in portrait, a vertical rail in landscape.
10
+ *
11
+ * The active-tab highlight is a single plate that travels to the picked tab instead of a
12
+ * background on each item. Its position comes straight from the tab index and the fixed UI-kit
13
+ * sizes — no DOM measuring, which also keeps it right inside the `transform: scale()` game root.
14
+ */
15
+ export declare const TabBar: FC<TProps>;
16
+ export {};