fansunited-frontend-components 0.0.48 → 0.0.49

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 (57) hide show
  1. package/ChanceGame.js +45 -45
  2. package/ClassicQuizPlay.js +184 -183
  3. package/CollectLead.js +16 -15
  4. package/Discussion.js +1 -1
  5. package/EitherOrPlay.js +66 -65
  6. package/EventGamePlay.js +68 -67
  7. package/Leaderboard.js +22 -22
  8. package/MatchQuizPlay.js +82 -81
  9. package/PersonalityQuizPlay.js +77 -76
  10. package/PickThePair.js +42 -42
  11. package/PollVote.js +53 -52
  12. package/Predictor.js +75 -75
  13. package/README.md +272 -0
  14. package/chunks/{AlertMessage-D4Uc6n5U.js → AlertMessage-Ds45MBHB.js} +3 -3
  15. package/chunks/{ArrowRightAlt-wEs8SY1V.js → ArrowRightAlt-DKADQN2o.js} +1 -1
  16. package/chunks/{Avatar-BXHdXHLA.js → Avatar-K1EWhhkA.js} +2 -2
  17. package/chunks/{ChanceGameEmbedVariant-DfS5LPpp.js → ChanceGameEmbedVariant-DqFg4YKU.js} +31 -29
  18. package/chunks/{CheckCircle-CU2itira.js → CheckCircle-CV9iMpkZ.js} +1 -1
  19. package/chunks/{Close-DBt1nfGo.js → Close-BHp4N1-6.js} +1 -1
  20. package/chunks/{Close-C5SGTkPr.js → Close-C6Cw96SJ.js} +1 -1
  21. package/chunks/{CollectLeadForm-BqjgPYKX.js → CollectLeadForm-DnLKA8qz.js} +13 -13
  22. package/chunks/{Divider-Cbns9B3Y.js → Divider-BvUimRFw.js} +2 -2
  23. package/chunks/{Edit-BVP8fCB4.js → Edit-CZ3ni-Ur.js} +4 -4
  24. package/chunks/{EmojiEvents-D_ObJxNy.js → EmojiEvents-DpmLq98V.js} +1 -1
  25. package/chunks/{FavoriteBorder-_mUf1vas.js → FavoriteBorder-DUK_DrY4.js} +1 -1
  26. package/chunks/{FormControl-DLBvX-Sn.js → FormControl-BUItlVIg.js} +3 -3
  27. package/chunks/{FormLabel-jXtScWTI.js → FormLabel-CeTNPUn7.js} +2 -2
  28. package/chunks/{Input-Cha_dm3J.js → Input-MJCQcYzo.js} +2 -2
  29. package/chunks/{KeyboardArrowDown-C_8g8wLS.js → KeyboardArrowDown-SZpn2GhJ.js} +1 -1
  30. package/chunks/{ModalDialog-Co3jck0z.js → ModalDialog-Cfgv9UAA.js} +2 -2
  31. package/chunks/{NotFoundSkeleton-D5Jh3lnu.js → NotFoundSkeleton-Cs6DtD9u.js} +13 -12
  32. package/chunks/{Notification-r1Fm0If2.js → Notification-pcKtlRms.js} +4 -4
  33. package/chunks/{OverlayApiErrorSkeleton-BUuD0zL8.js → OverlayApiErrorSkeleton-Dl3s5Oaf.js} +20 -19
  34. package/chunks/{OverlayLeadAfterCollection-B-N1OjPu.js → OverlayLeadAfterCollection-F2TAV9wK.js} +14 -12
  35. package/chunks/{OverlayScoreStateSkeleton-Bd3-ZNlU.js → OverlayScoreStateSkeleton-LQ0svzeX.js} +3 -3
  36. package/chunks/{Person-K8GGMiAW.js → Person-BGdniS_p.js} +1 -1
  37. package/chunks/{PickOneOfX-CvIn7QOd.js → PickOneOfX-Ci4ZJf7G.js} +8 -7
  38. package/chunks/{Popper-Bti_HOMS.js → Popper-DOVSI4rJ.js} +1 -1
  39. package/chunks/{Portal-B-nN3a_R.js → Portal-Cs0dgwmH.js} +1 -1
  40. package/chunks/{index-Btf_jw7-.js → PrizeCard-DF3QxwQJ.js} +0 -1
  41. package/chunks/{Select-C2QtqgA7.js → Select-BHeTdOYr.js} +3 -3
  42. package/chunks/{Spinner-D7-MZe2m.js → Spinner-DbUB64Gj.js} +1 -1
  43. package/chunks/{SplitLeadAfterCollection-CyXBWAIK.js → SplitLeadAfterCollection-DSw6X5fx.js} +36 -34
  44. package/chunks/{Stack-CU36SsgA.js → Stack-BpHk5eb0.js} +1 -1
  45. package/chunks/{StandardContentSkeleton-CYduGHsc.js → StandardContentSkeleton-Bae1LLQ_.js} +1 -1
  46. package/chunks/{Tabs-CA-FqQfT.js → Tabs-hwJ7jsUl.js} +3 -3
  47. package/chunks/{Textarea-Cn4VvCBl.js → Textarea-zOtMdgc5.js} +3 -3
  48. package/chunks/{TimerOutlined-DOpryr42.js → TimerOutlined-DWE7f0YX.js} +1 -1
  49. package/chunks/{helpers-1jFObSvc.js → helpers-NuC1SzL3.js} +1 -1
  50. package/chunks/index-BaypiKlO.js +4 -0
  51. package/chunks/{main-Chqd9Wwn.js → main-hB01WcoP.js} +88 -88
  52. package/chunks/{useEventCallback-CkO2rd5W.js → useEventCallback-CizlfWBo.js} +1 -1
  53. package/chunks/{useForwardedInput-C3SP2QmS.js → useForwardedInput-RWDntqBU.js} +2 -2
  54. package/chunks/{useImageVariant-BJ722AFw.js → useImageVariant-Cex1eIqq.js} +1 -1
  55. package/index.js +1 -1
  56. package/package.json +1 -1
  57. package/chunks/index-CyODGG_P.js +0 -4
package/README.md CHANGED
@@ -3059,6 +3059,277 @@ import { Leaderboard } from "fansunited-frontend-components";
3059
3059
  />
3060
3060
  ```
3061
3061
 
3062
+ ### Predictor
3063
+
3064
+ Full-featured football score predictor component with a multi-tab interface for match predictions, global leaderboard, private leagues, game rules, and prizes. Designed as a season-long engagement tool for sports platforms.
3065
+
3066
+ **Key Features:**
3067
+
3068
+ - Multi-tab navigation: Play, Leaderboard, Private Leagues, Rules, and Prizes
3069
+ - Match score prediction interface with grouped matchweeks
3070
+ - Global leaderboard with paginated standings and user rank highlighting
3071
+ - Private leagues — create and join custom competitive groups
3072
+ - Consent management with required/optional consent gates before predicting
3073
+ - Customisable banners in 6 positions within the Play tab
3074
+ - Authentication-aware UI with configurable sign-in CTA
3075
+ - Custom theming and multi-language support
3076
+
3077
+ #### Required Props
3078
+
3079
+ | Prop | Type | Description |
3080
+ | ---------- | -------------------- | -------------------------------- |
3081
+ | `entityId` | `string` | Predictor template identifier |
3082
+ | `sdk` | `FansUnitedSDKModel` | SDK instance |
3083
+ | `language` | `LanguageType` | Display language |
3084
+
3085
+ #### Optional Props
3086
+
3087
+ | Prop | Type | Description |
3088
+ | ---------------------------- | -------------------- | --------------------------------------------------- |
3089
+ | `themeOptions` | `CustomThemeOptions` | Theme configuration |
3090
+ | `userIsLoggedIn` | `boolean` | Determine if the user is logged in (default: false) |
3091
+ | `signInCTA` | `SignInCTADetails` | Sign in call to action button configuration |
3092
+ | `tabs` | `PredictorTab[]` | Tabs to enable (default: all tabs) |
3093
+ | `defaultImagePlaceholderUrl` | `string` | Fallback image URL for the hero header |
3094
+ | `playTabBanners` | `PlayTabBanner[]` | Custom banners rendered in the Play tab |
3095
+ | `consents` | `ConsentDef[]` | Consent definitions required before predicting |
3096
+ | `matchCardBgImageUrl` | `string` | Background image URL for match prediction cards |
3097
+
3098
+ #### Tabs
3099
+
3100
+ Configure which tabs are visible using the `tabs` prop. All tabs are enabled by default.
3101
+
3102
+ ```tsx
3103
+ import { PredictorTab } from "fansunited-frontend-core";
3104
+
3105
+ type PredictorTab = "play" | "leaderboard" | "private-leagues" | "rules" | "prizes";
3106
+
3107
+ // Show only the Play and Leaderboard tabs
3108
+ <Predictor
3109
+ {...otherProps}
3110
+ tabs={["play", "leaderboard"]}
3111
+ />
3112
+ ```
3113
+
3114
+ | Tab | Description |
3115
+ | ------------------ | --------------------------------------------------------- |
3116
+ | `"play"` | Main prediction interface — submit match score forecasts |
3117
+ | `"leaderboard"` | Global rankings and user standings with pagination |
3118
+ | `"private-leagues"` | Create and join private leagues to compete with friends |
3119
+ | `"rules"` | Searchable game rules and scoring system |
3120
+ | `"prizes"` | Prize distribution and rewards information |
3121
+
3122
+ #### Sign in Configuration
3123
+
3124
+ Control user authentication using the `userIsLoggedIn` and `signInCTA` props.
3125
+
3126
+ ```tsx
3127
+ import { SignInCTADetails } from "fansunited-frontend-core";
3128
+
3129
+ // Basic sign-in with onClick handler
3130
+ const signInCTA: SignInCTADetails = {
3131
+ defaultLabel: "Sign In to Predict",
3132
+ onClick: () => {
3133
+ // Handle sign-in logic
3134
+ console.log("Sign in clicked");
3135
+ },
3136
+ };
3137
+
3138
+ // Sign-in with URL navigation
3139
+ const signInCTA: SignInCTADetails = {
3140
+ defaultLabel: "Login to Compete",
3141
+ url: "https://your-auth-provider.com/login",
3142
+ target: "_blank", // or "_self"
3143
+ };
3144
+
3145
+ // Custom sign-in component
3146
+ const signInCTA: SignInCTADetails = {
3147
+ component: <CustomSignInButton />,
3148
+ };
3149
+
3150
+ <Predictor {...otherProps} userIsLoggedIn={false} signInCTA={signInCTA} />;
3151
+ ```
3152
+
3153
+ **Sign-in Priority Order:**
3154
+
3155
+ 1. **Custom Component** - If `signInCTA.component` is provided, it will be rendered
3156
+ 2. **Click Handler** - If `signInCTA.onClick` is provided, a button with the handler will be rendered
3157
+ 3. **URL Navigation** - If `signInCTA.url` is provided, a button will be rendered and clicking will navigate to the URL
3158
+ 4. **Disabled** - If no `signInCTA` is provided, a disabled button will be shown
3159
+
3160
+ #### Play Tab Banners
3161
+
3162
+ Inject custom banner content into specific positions inside the Play tab using the `playTabBanners` prop.
3163
+
3164
+ ```tsx
3165
+ import { PlayTabBanner, PlayTabBannerPosition } from "fansunited-frontend-core";
3166
+
3167
+ const playTabBanners: PlayTabBanner[] = [
3168
+ {
3169
+ position: "above-group-nav",
3170
+ render: () => <PromoBanner campaign="matchday-sponsor" />,
3171
+ },
3172
+ {
3173
+ position: "below-matches",
3174
+ render: () => <AdSlot id="predictor-bottom" />,
3175
+ },
3176
+ ];
3177
+
3178
+ <Predictor {...otherProps} playTabBanners={playTabBanners} />;
3179
+ ```
3180
+
3181
+ **Available Positions:**
3182
+
3183
+ | Position | Description |
3184
+ | -------------------- | ---------------------------------------------------- |
3185
+ | `"above-group-nav"` | Above the matchweek group navigation |
3186
+ | `"below-group-nav"` | Below the matchweek group navigation |
3187
+ | `"below-matches"` | Below the list of match prediction cards |
3188
+ | `"bottom"` | At the very bottom of the Play tab |
3189
+ | `"left"` | Left sidebar (desktop layouts) |
3190
+ | `"right"` | Right sidebar (desktop layouts) |
3191
+
3192
+ #### Consent Configuration
3193
+
3194
+ Require users to accept consent agreements before submitting predictions using the `consents` prop.
3195
+
3196
+ ```tsx
3197
+ import { ConsentDef } from "fansunited-frontend-core";
3198
+
3199
+ const consents: ConsentDef[] = [
3200
+ {
3201
+ consentId: "terms_of_service",
3202
+ body: 'I agree to the <a href="https://example.com/tos" target="_blank">Terms of Service</a>.',
3203
+ required: true,
3204
+ defaultChecked: false,
3205
+ },
3206
+ {
3207
+ consentId: "marketing",
3208
+ body: "I'd like to receive promotional emails and offers.",
3209
+ required: false,
3210
+ defaultChecked: false,
3211
+ },
3212
+ ];
3213
+
3214
+ <Predictor {...otherProps} consents={consents} />;
3215
+ ```
3216
+
3217
+ **Consent Fields:**
3218
+
3219
+ | Field | Type | Description |
3220
+ | ---------------- | --------- | ----------------------------------------------------------------- |
3221
+ | `consentId` | `string` | Unique identifier for the consent (e.g. `"tos"`, `"marketing"`) |
3222
+ | `body` | `string` | HTML content of the consent label (supports links and formatting) |
3223
+ | `required` | `boolean` | When `true`, the user must accept before they can predict |
3224
+ | `defaultChecked` | `boolean` | Pre-check the consent checkbox on load |
3225
+
3226
+ **Behavior:**
3227
+
3228
+ - Required consents are gated behind a modal that appears before the first prediction submission
3229
+ - Optional consents are shown in the same modal but do not block progression
3230
+ - Once accepted, consents are stored and the modal does not reappear
3231
+
3232
+ #### TypeScript Support
3233
+
3234
+ Import types from `fansunited-frontend-core`:
3235
+
3236
+ ```tsx
3237
+ import {
3238
+ PredictorProps,
3239
+ PredictorTab,
3240
+ PlayTabBanner,
3241
+ PlayTabBannerPosition,
3242
+ ConsentDef,
3243
+ SignInCTADetails,
3244
+ CustomThemeOptions,
3245
+ LanguageType,
3246
+ } from "fansunited-frontend-core";
3247
+ ```
3248
+
3249
+ #### Examples
3250
+
3251
+ ##### Basic Predictor
3252
+
3253
+ ```tsx
3254
+ import { Predictor } from "fansunited-frontend-components";
3255
+
3256
+ <Predictor
3257
+ entityId="predictor-template-123"
3258
+ sdk={sdkInstance}
3259
+ language="en"
3260
+ />;
3261
+ ```
3262
+
3263
+ ##### Authenticated with Selected Tabs
3264
+
3265
+ ```tsx
3266
+ <Predictor
3267
+ entityId="predictor-template-123"
3268
+ sdk={sdkInstance}
3269
+ language="en"
3270
+ userIsLoggedIn={true}
3271
+ tabs={["play", "leaderboard", "private-leagues"]}
3272
+ matchCardBgImageUrl="https://your-cdn.com/stadium-bg.jpg"
3273
+ themeOptions={{
3274
+ mode: "dark",
3275
+ }}
3276
+ />
3277
+ ```
3278
+
3279
+ ##### Full Setup with Banners and Consents
3280
+
3281
+ ```tsx
3282
+ <Predictor
3283
+ entityId="predictor-template-123"
3284
+ sdk={sdkInstance}
3285
+ language="en"
3286
+ userIsLoggedIn={false}
3287
+ signInCTA={{
3288
+ defaultLabel: "Sign in to Predict",
3289
+ onClick: () => handleSignIn(),
3290
+ }}
3291
+ tabs={["play", "leaderboard", "private-leagues", "rules", "prizes"]}
3292
+ matchCardBgImageUrl="https://your-cdn.com/matchcard-bg.jpg"
3293
+ defaultImagePlaceholderUrl="https://your-cdn.com/placeholder.png"
3294
+ playTabBanners={[
3295
+ {
3296
+ position: "above-group-nav",
3297
+ render: () => <SponsorBanner />,
3298
+ },
3299
+ {
3300
+ position: "right",
3301
+ render: () => <AdSlot id="predictor-sidebar" />,
3302
+ },
3303
+ ]}
3304
+ consents={[
3305
+ {
3306
+ consentId: "tos",
3307
+ body: 'I accept the <a href="https://example.com/tos" target="_blank">Terms of Service</a>.',
3308
+ required: true,
3309
+ defaultChecked: false,
3310
+ },
3311
+ ]}
3312
+ themeOptions={{
3313
+ mode: "light",
3314
+ colorSchemes: {
3315
+ light: {
3316
+ palette: {
3317
+ primary: {
3318
+ plainColor: "#1A77D2",
3319
+ primaryContainer: "#2397F3",
3320
+ onPrimary: "#FAFAFA",
3321
+ },
3322
+ },
3323
+ surface: "#FFFFFF",
3324
+ textPrimary: "#212121",
3325
+ },
3326
+ },
3327
+ }}
3328
+ />
3329
+ ```
3330
+
3331
+ ---
3332
+
3062
3333
  ## Available Components
3063
3334
 
3064
3335
  This package exports the following components:
@@ -3073,6 +3344,7 @@ This package exports the following components:
3073
3344
  - **`EitherOrPlay`** - Binary choice game with standings panel and customizable templates
3074
3345
  - **`Discussion`** - Threaded comments with reactions, replies, reporting, and authentication support
3075
3346
  - **`Leaderboard`** - Ranked standings for Classic Quiz, Match Quiz, Top X, and Template entities with multi-entity support
3347
+ - **`Predictor`** - Multi-tab football score predictor with leaderboard, private leagues, rules, and prizes
3076
3348
 
3077
3349
  ## Related Packages
3078
3350
 
@@ -1,8 +1,8 @@
1
1
  import { jsxs as D, jsx as s } from "react/jsx-runtime";
2
- import { C as H } from "./CheckCircle-CU2itira.js";
3
- import { t as M, s as _, v as y, Y as $, _ as i, ab as k, ac as B, y as J, z as L, A as f, D as U, P as r, X as v, E as V, m as z, u as X, b as Y, c as q, T as g } from "./index-Btf_jw7-.js";
2
+ import { C as H } from "./CheckCircle-CV9iMpkZ.js";
3
+ import { t as M, s as _, v as y, Y as $, _ as i, ab as k, ac as B, y as J, z as L, A as f, D as U, P as r, X as v, E as V, m as z, u as X, b as Y, c as q, T as g } from "./PrizeCard-DF3QxwQJ.js";
4
4
  import * as G from "react";
5
- import { S as K } from "./Stack-CU36SsgA.js";
5
+ import { S as K } from "./Stack-BpHk5eb0.js";
6
6
  function Q(e) {
7
7
  return M("MuiAlert", e);
8
8
  }
@@ -1,5 +1,5 @@
1
1
  import { jsx as a } from "react/jsx-runtime";
2
- import { u, e as h, B as S, m as k } from "./index-Btf_jw7-.js";
2
+ import { u, e as h, B as S, m as k } from "./PrizeCard-DF3QxwQJ.js";
3
3
  const x = (e) => ({
4
4
  // Main container with background overlay (with ScoreStateWrapper)
5
5
  mainContainerWithWrapper: {
@@ -1,6 +1,6 @@
1
- import { t as I, s as k, v as z, _ as c, P as e, y as R, z as j, A as h, D as L, E as _, X as N } from "./index-Btf_jw7-.js";
1
+ import { t as I, s as k, v as z, _ as c, P as e, y as R, z as j, A as h, D as L, E as _, X as N } from "./PrizeCard-DF3QxwQJ.js";
2
2
  import * as p from "react";
3
- import { c as V } from "./CheckCircle-CU2itira.js";
3
+ import { c as V } from "./CheckCircle-CV9iMpkZ.js";
4
4
  import { jsx as v } from "react/jsx-runtime";
5
5
  const W = V(/* @__PURE__ */ v("path", {
6
6
  d: "M12 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm0 2c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4z"
@@ -1,12 +1,14 @@
1
1
  import { jsxs as l, Fragment as H, jsx as t } from "react/jsx-runtime";
2
- import { i as E, h as U, u as G, e as q, c as I, b as A, a as b, n as O, W as D, B as i, T as s, f as J, j as Q, F as N } from "./index-Btf_jw7-.js";
3
- import { R as L, A as p } from "./NotFoundSkeleton-D5Jh3lnu.js";
4
- import { h as X, g as ee, s as F } from "./helpers-1jFObSvc.js";
5
- import { a as te } from "./AlertMessage-D4Uc6n5U.js";
6
- import { R as ie } from "./OverlayApiErrorSkeleton-BUuD0zL8.js";
7
- import { d as ne, a as ae, b as le } from "./useImageVariant-BJ722AFw.js";
2
+ import { i as E, h as U, u as G, e as q, c as I, b as A, a as b, n as O, W as D, B as i, T as s, f as J, j as Q, F as N } from "./PrizeCard-DF3QxwQJ.js";
3
+ import { h as X, g as p, s as L } from "./helpers-NuC1SzL3.js";
4
+ import "react";
5
+ import { R as F, A as ee } from "./NotFoundSkeleton-Cs6DtD9u.js";
6
+ import "react-dom";
7
+ import { a as te } from "./AlertMessage-Ds45MBHB.js";
8
+ import { R as ie } from "./OverlayApiErrorSkeleton-Dl3s5Oaf.js";
9
+ import { d as ne, a as ae, b as le } from "./useImageVariant-Cex1eIqq.js";
8
10
  import { u as oe } from "./useInfoPage-BHdgKdme.js";
9
- import { P as re, a as ce, b as de } from "./PickOneOfX-CvIn7QOd.js";
11
+ import { P as re, a as ce, b as de } from "./PickOneOfX-Ci4ZJf7G.js";
10
12
  const se = (e) => {
11
13
  var r, o, n, x;
12
14
  return {
@@ -184,7 +186,7 @@ const se = (e) => {
184
186
  justifyContent: "center"
185
187
  }
186
188
  };
187
- }, Ie = ({
189
+ }, Me = ({
188
190
  entity: e,
189
191
  headline: r,
190
192
  finalImage: o,
@@ -212,7 +214,7 @@ const se = (e) => {
212
214
  darkTextColor: V,
213
215
  imageBackgroundGradient: K,
214
216
  isMobile: m
215
- }), W = ee(
217
+ }), W = p(
216
218
  g == null ? void 0 : g.primaryUrl,
217
219
  g == null ? void 0 : g.secondaryUrl,
218
220
  "image"
@@ -245,7 +247,7 @@ const se = (e) => {
245
247
  ) : /* @__PURE__ */ t(i, { sx: j, children: z });
246
248
  return /* @__PURE__ */ l(H, { children: [
247
249
  C && x ? /* @__PURE__ */ t(i, { sx: c.embedCodeHeadlineSection, children: /* @__PURE__ */ t(
248
- p,
250
+ ee,
249
251
  {
250
252
  ratio: "16/9",
251
253
  sx: c.aspectRatioContainer,
@@ -266,13 +268,13 @@ const se = (e) => {
266
268
  },
267
269
  children: [
268
270
  /* @__PURE__ */ t(s, { sx: c.headlineText, children: r }),
269
- /* @__PURE__ */ t(L, { rulesDisplay: S, rules: e.rules || "" })
271
+ /* @__PURE__ */ t(F, { rulesDisplay: S, rules: e.rules || "" })
270
272
  ]
271
273
  }
272
274
  ),
273
275
  /* @__PURE__ */ l(i, { sx: c.contentContainer, children: [
274
276
  /* @__PURE__ */ t(s, { sx: c.titleText, children: e.title }),
275
- /* @__PURE__ */ t(s, { sx: c.descriptionText, children: F(e.description) })
277
+ /* @__PURE__ */ t(s, { sx: c.descriptionText, children: L(e.description) })
276
278
  ] })
277
279
  ] }),
278
280
  h && !m && f && /* @__PURE__ */ t(i, { children: f((a == null ? void 0 : a.contentColor) || V) })
@@ -291,13 +293,13 @@ const se = (e) => {
291
293
  },
292
294
  children: [
293
295
  /* @__PURE__ */ t(s, { sx: c.headlineTextNoImage, children: r }),
294
- /* @__PURE__ */ t(L, { rulesDisplay: S, rules: e.rules || "" })
296
+ /* @__PURE__ */ t(F, { rulesDisplay: S, rules: e.rules || "" })
295
297
  ]
296
298
  }
297
299
  ),
298
300
  /* @__PURE__ */ l(i, { sx: c.contentContainer, children: [
299
301
  /* @__PURE__ */ t(s, { sx: c.titleTextNoImage, children: e.title }),
300
- /* @__PURE__ */ t(s, { sx: c.descriptionTextNoImage, children: F(e.description) })
302
+ /* @__PURE__ */ t(s, { sx: c.descriptionTextNoImage, children: L(e.description) })
301
303
  ] })
302
304
  ] }),
303
305
  h && !m && f && /* @__PURE__ */ t(i, { children: f(P) })
@@ -324,7 +326,7 @@ const se = (e) => {
324
326
  children: r
325
327
  }
326
328
  ),
327
- /* @__PURE__ */ t(L, { rulesDisplay: S, rules: e.rules || "" })
329
+ /* @__PURE__ */ t(F, { rulesDisplay: S, rules: e.rules || "" })
328
330
  ]
329
331
  }
330
332
  ),
@@ -346,7 +348,7 @@ const se = (e) => {
346
348
  ...c.descriptionTextNoImage,
347
349
  textAlign: "center"
348
350
  },
349
- children: F(e.description)
351
+ children: L(e.description)
350
352
  }
351
353
  )
352
354
  ] })
@@ -457,7 +459,7 @@ const se = (e) => {
457
459
  flexDirection: "column"
458
460
  }
459
461
  };
460
- }, Re = ({
462
+ }, ke = ({
461
463
  entity: e,
462
464
  headline: r,
463
465
  finalImage: o,
@@ -497,13 +499,13 @@ const se = (e) => {
497
499
  },
498
500
  children: [
499
501
  /* @__PURE__ */ t(s, { level: "body-sm", sx: a.headlineText, children: r }),
500
- /* @__PURE__ */ t(L, { rulesDisplay: f, rules: e.rules || "" })
502
+ /* @__PURE__ */ t(F, { rulesDisplay: f, rules: e.rules || "" })
501
503
  ]
502
504
  }
503
505
  ),
504
506
  /* @__PURE__ */ l(i, { sx: a.contentContainer, children: [
505
507
  /* @__PURE__ */ t(s, { level: "body-lg", sx: a.titleText, children: e.title }),
506
- /* @__PURE__ */ t(s, { level: "body-md", sx: a.descriptionText, children: F(e.description) })
508
+ /* @__PURE__ */ t(s, { level: "body-md", sx: a.descriptionText, children: L(e.description) })
507
509
  ] })
508
510
  ] }),
509
511
  /* @__PURE__ */ t(i, { sx: a.presentedByDesktop, children: n })
@@ -673,7 +675,7 @@ const se = (e) => {
673
675
  textTransform: "uppercase"
674
676
  }
675
677
  };
676
- }, Me = (e) => {
678
+ }, Ae = (e) => {
677
679
  var B;
678
680
  const r = G(), o = E(), n = ((B = e.entity.branding) == null ? void 0 : B.colors) || null, x = e.defaultImagePlaceholderUrl ? e.defaultImagePlaceholderUrl : o ? ne : ae, C = le(
679
681
  {
@@ -731,7 +733,7 @@ const se = (e) => {
731
733
  children: [
732
734
  /* @__PURE__ */ t(s, { level: "body-sm", sx: d.headlineText, children: e.headline }),
733
735
  /* @__PURE__ */ t(
734
- L,
736
+ F,
735
737
  {
736
738
  rulesDisplay: e.rulesDisplay,
737
739
  rules: e.entity.rules || ""
@@ -742,7 +744,7 @@ const se = (e) => {
742
744
  ),
743
745
  /* @__PURE__ */ l(i, { sx: d.contentContainer, children: [
744
746
  /* @__PURE__ */ t(s, { level: "body-lg", sx: d.titleText, children: e.entity.title }),
745
- /* @__PURE__ */ t(s, { level: "body-md", sx: d.descriptionText, children: F(e.entity.description) })
747
+ /* @__PURE__ */ t(s, { level: "body-md", sx: d.descriptionText, children: L(e.entity.description) })
746
748
  ] })
747
749
  ] }),
748
750
  /* @__PURE__ */ t(i, { sx: d.presentedByDesktop, children: e.renderPresentedBy(
@@ -762,14 +764,14 @@ const se = (e) => {
762
764
  /* @__PURE__ */ t(i, { sx: d.presentedByMobile, children: e.renderPresentedBy((n == null ? void 0 : n.contentColor) || w) })
763
765
  ] })
764
766
  ] });
765
- }, ke = ({
767
+ }, Le = ({
766
768
  entityId: e,
767
769
  sdk: r,
768
770
  children: o
769
771
  }) => {
770
772
  const { infoPage: n } = oe(e, "chance-game", r);
771
773
  return !n || n.id === "not-found" ? null : /* @__PURE__ */ t(H, { children: o(n) });
772
- }, Ae = ({
774
+ }, Fe = ({
773
775
  infoPage: e,
774
776
  variant: r,
775
777
  forceMobile: o
@@ -785,9 +787,9 @@ const se = (e) => {
785
787
  }
786
788
  };
787
789
  export {
788
- ke as C,
789
- Ie as S,
790
- Re as a,
791
- Me as b,
792
- Ae as c
790
+ Le as C,
791
+ Me as S,
792
+ ke as a,
793
+ Ae as b,
794
+ Fe as c
793
795
  };
@@ -1,4 +1,4 @@
1
- import { t as E, s as F, v as R, _ as r, y as _, z as V, A as j, D as A, P as o, X as f, E as B, m as M } from "./index-Btf_jw7-.js";
1
+ import { t as E, s as F, v as R, _ as r, y as _, z as V, A as j, D as A, P as o, X as f, E as B, m as M } from "./PrizeCard-DF3QxwQJ.js";
2
2
  import * as c from "react";
3
3
  import { jsxs as X, jsx as m } from "react/jsx-runtime";
4
4
  function D(n) {
@@ -1,5 +1,5 @@
1
1
  import { jsx as o } from "react/jsx-runtime";
2
- import { m as r } from "./index-Btf_jw7-.js";
2
+ import { m as r } from "./PrizeCard-DF3QxwQJ.js";
3
3
  const e = r(/* @__PURE__ */ o("path", {
4
4
  d: "M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"
5
5
  }), "Close");
@@ -1,5 +1,5 @@
1
1
  import "react";
2
- import { c as o } from "./CheckCircle-CU2itira.js";
2
+ import { c as o } from "./CheckCircle-CV9iMpkZ.js";
3
3
  import { jsx as r } from "react/jsx-runtime";
4
4
  const e = o(/* @__PURE__ */ r("path", {
5
5
  d: "M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"
@@ -1,19 +1,19 @@
1
1
  import { jsx as s, jsxs as q, Fragment as Xe } from "react/jsx-runtime";
2
- import { R as Uo, $ as _t, _ as d, v as M, y as _e, z as he, A as W, D as Qe, a0 as ht, P as e, X as re, E as ze, s as Ve, t as Me, Y as zt, U as gt, a1 as Wo, S as Jo, a2 as Et, a3 as tt, a4 as nt, a5 as wt, a6 as Bt, a7 as Ft, g as vt, C as yt, r as qo, f as Ko, B as fo, T as Re, a as bt, b as Ht, c as Ct, j as zo } from "./index-Btf_jw7-.js";
2
+ import { R as Uo, $ as _t, _ as d, v as M, y as _e, z as he, A as W, D as Qe, a0 as ht, P as e, X as re, E as ze, s as Ve, t as Me, Y as zt, U as gt, a1 as Wo, S as Jo, a2 as Et, a3 as tt, a4 as nt, a5 as wt, a6 as Bt, a7 as Ft, g as vt, C as yt, r as qo, f as Ko, B as fo, T as Re, a as bt, b as Ht, c as Ct, j as zo } from "./PrizeCard-DF3QxwQJ.js";
3
3
  import * as y from "react";
4
4
  import { useState as oo, useEffect as Vt, createElement as rt } from "react";
5
- import { d as it, f as lt, j as Mt, k as jt, m as Ut } from "./helpers-1jFObSvc.js";
6
- import { F as Ae, C as xt } from "./FormControl-DLBvX-Sn.js";
7
- import { S as Go } from "./Stack-CU36SsgA.js";
8
- import { a as at } from "./AlertMessage-D4Uc6n5U.js";
9
- import { F as Ge } from "./FormLabel-jXtScWTI.js";
10
- import { S as Wt, a as Jt, b as qt, c as Kt, I as ao } from "./Input-Cha_dm3J.js";
11
- import { k as wo, G as Gt, n as Yt, R as Xt, W as Qt, N as st, o as Zt, V as Yo, p as It, i as en, s as on, q as tn, g as nn, r as so, j as rn, t as ln, h as an, S as sn, a as cn } from "./Select-C2QtqgA7.js";
12
- import { C as dn } from "./Close-C5SGTkPr.js";
13
- import { c as Ot, F as un } from "./CheckCircle-CU2itira.js";
14
- import { u as Eo, a as xo } from "./useEventCallback-CkO2rd5W.js";
15
- import { P as pn } from "./Popper-Bti_HOMS.js";
16
- import { T as mn } from "./Textarea-Cn4VvCBl.js";
5
+ import { d as it, f as lt, j as Mt, k as jt, m as Ut } from "./helpers-NuC1SzL3.js";
6
+ import { F as Ae, C as xt } from "./FormControl-BUItlVIg.js";
7
+ import { S as Go } from "./Stack-BpHk5eb0.js";
8
+ import { a as at } from "./AlertMessage-Ds45MBHB.js";
9
+ import { F as Ge } from "./FormLabel-CeTNPUn7.js";
10
+ import { S as Wt, a as Jt, b as qt, c as Kt, I as ao } from "./Input-MJCQcYzo.js";
11
+ import { k as wo, G as Gt, n as Yt, R as Xt, W as Qt, N as st, o as Zt, V as Yo, p as It, i as en, s as on, q as tn, g as nn, r as so, j as rn, t as ln, h as an, S as sn, a as cn } from "./Select-BHeTdOYr.js";
12
+ import { C as dn } from "./Close-C6Cw96SJ.js";
13
+ import { c as Ot, F as un } from "./CheckCircle-CV9iMpkZ.js";
14
+ import { u as Eo, a as xo } from "./useEventCallback-CizlfWBo.js";
15
+ import { P as pn } from "./Popper-DOVSI4rJ.js";
16
+ import { T as mn } from "./Textarea-zOtMdgc5.js";
17
17
  const fn = (o) => {
18
18
  const t = y.useRef({});
19
19
  return y.useEffect(() => {
@@ -1,6 +1,6 @@
1
- import { v as P, _ as r, y as b, z as k, A as T, D as _, P as i, X as z, E as C } from "./index-Btf_jw7-.js";
1
+ import { v as P, _ as r, y as b, z as k, A as T, D as _, P as i, X as z, E as C } from "./PrizeCard-DF3QxwQJ.js";
2
2
  import * as O from "react";
3
- import { g as N } from "./Notification-r1Fm0If2.js";
3
+ import { g as N } from "./Notification-pcKtlRms.js";
4
4
  import { jsx as R } from "react/jsx-runtime";
5
5
  const j = ["className", "children", "component", "inset", "orientation", "role", "slots", "slotProps"], B = (o) => {
6
6
  const {
@@ -1,8 +1,8 @@
1
- import { s as A, t as T, v as C, _ as n, w as F, x, P as o, y as R, z, A as O, D as M, E as D, m as l } from "./index-Btf_jw7-.js";
1
+ import { s as A, t as T, v as C, _ as n, w as F, x, P as o, y as R, z, A as O, D as M, E as D, m as l } from "./PrizeCard-DF3QxwQJ.js";
2
2
  import * as P from "react";
3
- import { c as N } from "./ModalDialog-Co3jck0z.js";
4
- import { a as $ } from "./NotFoundSkeleton-D5Jh3lnu.js";
5
- import { d as j } from "./Notification-r1Fm0If2.js";
3
+ import { c as N } from "./ModalDialog-Cfgv9UAA.js";
4
+ import { a as $ } from "./NotFoundSkeleton-Cs6DtD9u.js";
5
+ import { d as j } from "./Notification-pcKtlRms.js";
6
6
  import { jsx as r } from "react/jsx-runtime";
7
7
  function E(t) {
8
8
  return T("MuiCardActions", t);
@@ -1,5 +1,5 @@
1
1
  import { jsx as o } from "react/jsx-runtime";
2
- import { m as c } from "./index-Btf_jw7-.js";
2
+ import { m as c } from "./PrizeCard-DF3QxwQJ.js";
3
3
  const t = c(/* @__PURE__ */ o("path", {
4
4
  d: "M19 5h-2V3H7v2H5c-1.1 0-2 .9-2 2v1c0 2.55 1.92 4.63 4.39 4.94.63 1.5 1.98 2.63 3.61 2.96V19H7v2h10v-2h-4v-3.1c1.63-.33 2.98-1.46 3.61-2.96C19.08 12.63 21 10.55 21 8V7c0-1.1-.9-2-2-2M5 8V7h2v3.82C5.84 10.4 5 9.3 5 8m14 0c0 1.3-.84 2.4-2 2.82V7h2z"
5
5
  }), "EmojiEvents");
@@ -1,5 +1,5 @@
1
1
  import { jsx as o } from "react/jsx-runtime";
2
- import { m as r } from "./index-Btf_jw7-.js";
2
+ import { m as r } from "./PrizeCard-DF3QxwQJ.js";
3
3
  const a = r(/* @__PURE__ */ o("path", {
4
4
  d: "m12 21.35-1.45-1.32C5.4 15.36 2 12.28 2 8.5 2 5.42 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.09C13.09 3.81 14.76 3 16.5 3 19.58 3 22 5.42 22 8.5c0 3.78-3.4 6.86-8.55 11.54z"
5
5
  }), "Favorite"), e = r(/* @__PURE__ */ o("path", {
@@ -1,8 +1,8 @@
1
- import { s as J, t as Y, v as g, _ as t, y as K, z as Q, R as Z, A as h, a4 as Io, P as o, X as O, E as w, D as Oo } from "./index-Btf_jw7-.js";
1
+ import { s as J, t as Y, v as g, _ as t, y as K, z as Q, R as Z, A as h, a4 as Io, P as o, X as O, E as w, D as Oo } from "./PrizeCard-DF3QxwQJ.js";
2
2
  import * as m from "react";
3
- import { c as oo, F as eo } from "./CheckCircle-CU2itira.js";
3
+ import { c as oo, F as eo } from "./CheckCircle-CV9iMpkZ.js";
4
4
  import { jsx as u, jsxs as G } from "react/jsx-runtime";
5
- import { u as Po } from "./Textarea-Cn4VvCBl.js";
5
+ import { u as Po } from "./Textarea-zOtMdgc5.js";
6
6
  function _o(r) {
7
7
  return Y("MuiCheckbox", r);
8
8
  }
@@ -1,6 +1,6 @@
1
- import { s as R, t as _, v as y, y as j, z as O, _ as t, A as f, P as o, E as q } from "./index-Btf_jw7-.js";
1
+ import { s as R, t as _, v as y, y as j, z as O, _ as t, A as f, P as o, E as q } from "./PrizeCard-DF3QxwQJ.js";
2
2
  import * as b from "react";
3
- import { F as z } from "./CheckCircle-CU2itira.js";
3
+ import { F as z } from "./CheckCircle-CV9iMpkZ.js";
4
4
  import { jsxs as F } from "react/jsx-runtime";
5
5
  function H(e) {
6
6
  return _("MuiFormLabel", e);
@@ -1,6 +1,6 @@
1
- import { s as Z, t as rr, v as s, _ as n, a2 as or, y as tr, z as nr, A as h, P as r, X as b, E as ar } from "./index-Btf_jw7-.js";
1
+ import { s as Z, t as rr, v as s, _ as n, a2 as or, y as tr, z as nr, A as h, P as r, X as b, E as ar } from "./PrizeCard-DF3QxwQJ.js";
2
2
  import * as O from "react";
3
- import { u as er } from "./useForwardedInput-C3SP2QmS.js";
3
+ import { u as er } from "./useForwardedInput-RWDntqBU.js";
4
4
  import { jsxs as ir, jsx as y } from "react/jsx-runtime";
5
5
  function lr(t) {
6
6
  return rr("MuiInput", t);
@@ -1,5 +1,5 @@
1
1
  import { jsx as o } from "react/jsx-runtime";
2
- import { m as r } from "./index-Btf_jw7-.js";
2
+ import { m as r } from "./PrizeCard-DF3QxwQJ.js";
3
3
  const e = r(/* @__PURE__ */ o("path", {
4
4
  d: "M7.41 15.41 12 10.83l4.59 4.58L18 14l-6-6-6 6z"
5
5
  }), "KeyboardArrowUp"), n = r(/* @__PURE__ */ o("path", {
@@ -1,7 +1,7 @@
1
- import { a3 as ae, P as t, S as ie, a9 as ge, ad as H, ae as be, V as ve, _ as y, t as K, s as q, v as L, Y as he, ab as ye, ac as Ce, y as J, z as Y, A as B, D as se, a0 as le, X as w, E as G, ah as xe, ai as Ee, R as Z } from "./index-Btf_jw7-.js";
1
+ import { a3 as ae, P as t, S as ie, a9 as ge, ad as H, ae as be, V as ve, _ as y, t as K, s as q, v as L, Y as he, ab as ye, ac as Ce, y as J, z as Y, A as B, D as se, a0 as le, X as w, E as G, ah as xe, ai as Ee, R as Z } from "./PrizeCard-DF3QxwQJ.js";
2
2
  import * as l from "react";
3
3
  import { jsxs as de, jsx as F } from "react/jsx-runtime";
4
- import { o as X, a as ee } from "./useEventCallback-CkO2rd5W.js";
4
+ import { o as X, a as ee } from "./useEventCallback-CizlfWBo.js";
5
5
  function Te(o) {
6
6
  const {
7
7
  prototype: e = {}