@cuemath/leap 4.0.4 → 4.0.5-as1

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.
@@ -10,6 +10,7 @@ const t = window.VITE_PUBLIC_URL ? window.VITE_PUBLIC_URL : "/", a = {
10
10
  ACCURACY_BADGE: `${t}static/accuracy-badge.2e161f00.svg`,
11
11
  ALARM_CLOCK_ORANGE: `${t}static/alarm-clock-orange.31fb90d9.svg`,
12
12
  ALARM_CLOCK_PURPLE: `${t}static/alarm-clock-purple.06d4911c.svg`,
13
+ ALERT_BULB: `${t}static/alert-bulb.10cc6154.svg`,
13
14
  ALIEN_1: `${t}static/alien-1.fc7ba696.svg`,
14
15
  ALIEN_2: `${t}static/alien-2.15fdda07.svg`,
15
16
  ALIEN_3: `${t}static/alien-3.2664a37f.svg`,
@@ -1 +1 @@
1
- {"version":3,"file":"illustrations.js","sources":["../../../src/assets/illustrations/illustrations.ts"],"sourcesContent":["declare global {\n interface Window {\n VITE_PUBLIC_URL: string;\n }\n}\n\nconst PREFIX = window.VITE_PUBLIC_URL ? window.VITE_PUBLIC_URL : '/';\n\n// Must be alphabetical order\nconst ILLUSTRATIONS = {\n 2021: `${PREFIX}static/2021.2a1a2ec9.svg`,\n 2022: `${PREFIX}static/2022.2091553a.svg`,\n 2023: `${PREFIX}static/2023.ed718b4e.svg`,\n 2024: `${PREFIX}static/2024.aa60edc5.svg`,\n 2025: `${PREFIX}static/2025.014a8ad3.svg`,\n 2026: `${PREFIX}static/2026.95d70f27.svg`,\n 2027: `${PREFIX}static/2027.fe83a41c.svg`,\n 2028: `${PREFIX}static/2028.b1c253ef.svg`,\n ACCURACY_BADGE: `${PREFIX}static/accuracy-badge.2e161f00.svg`,\n ALARM_CLOCK_ORANGE: `${PREFIX}static/alarm-clock-orange.31fb90d9.svg`,\n ALARM_CLOCK_PURPLE: `${PREFIX}static/alarm-clock-purple.06d4911c.svg`,\n ALIEN_1: `${PREFIX}static/alien-1.fc7ba696.svg`,\n ALIEN_2: `${PREFIX}static/alien-2.15fdda07.svg`,\n ALIEN_3: `${PREFIX}static/alien-3.2664a37f.svg`,\n ALIEN_4: `${PREFIX}static/alien-4.06ac66da.svg`,\n APR: `${PREFIX}static/apr.cd56f13d.svg`,\n ARROW_BOARD_GREEN: `${PREFIX}static/arrow-board-green.11e75bca.svg`,\n AUG: `${PREFIX}static/aug.3ceade02.svg`,\n BLUE_CLIP: `${PREFIX}static/blue-clip.87cc4543.svg`,\n BOOK_CHECKED_GREEN: `${PREFIX}static/book-checked-green.0436b91e.svg`,\n BOOK_CHECKED_ORANGE: `${PREFIX}static/book-checked-orange.53ea6880.svg`,\n BOOK_CHECKED_PURPLE: `${PREFIX}static/book-checked-purple.df628f3e.svg`,\n BOOK_GREEN: `${PREFIX}static/book-green.20f6eed3.svg`,\n BOOK_OPEN_BLUE: `${PREFIX}static/book-open-blue.d4f8d08c.svg`,\n BOOK_ORANGE: `${PREFIX}static/book-orange.04bdc75e.svg`,\n BOOK_YELLOW: `${PREFIX}static/book-yellow.c210ac06.svg`,\n BULLET_YELLOW: `${PREFIX}static/bullet-yellow.2f892d88.svg`,\n CALENDAR_BLUE: `${PREFIX}static/calendar-blue.e0d52d09.svg`,\n CALENDAR_CHECK_GREEN: `${PREFIX}static/calendar-check-green.ab0e24d2.svg`,\n CALENDAR_CROSS_ORANGE: `${PREFIX}static/calendar-cross-orange.8e7a23bd.svg`,\n CALENDAR_GRAY: `${PREFIX}static/calendar-gray.1c72682a.svg`,\n CALENDAR_GREEN: `${PREFIX}static/calendar-green.a2b6a393.svg`,\n CALENDAR_PURPLE: `${PREFIX}static/calendar-purple.1a840b41.svg`,\n CALENDAR_PURPLE_2: `${PREFIX}static/calendar_purple_2.6e8249ef.svg`,\n CAUTION: `${PREFIX}static/caution.5766a967.svg`,\n CHAPTER_10: `${PREFIX}static/chapter-10.c97de4a5.svg`,\n CHAPTER_1: `${PREFIX}static/chapter-1.8a1683a0.svg`,\n CHAPTER_2: `${PREFIX}static/chapter-2.71ac6dfc.svg`,\n CHAPTER_3: `${PREFIX}static/chapter-3.003fc901.svg`,\n CHAPTER_4: `${PREFIX}static/chapter-4.8abbacd8.svg`,\n CHAPTER_5: `${PREFIX}static/chapter-5.c774b439.svg`,\n CHAPTER_6: `${PREFIX}static/chapter-6.cb5cf1cb.svg`,\n CHAPTER_7: `${PREFIX}static/chapter-7.57b0beb4.svg`,\n CHAPTER_8: `${PREFIX}static/chapter-8.68d36477.svg`,\n CHAPTER_9: `${PREFIX}static/chapter-9.0c00e26f.svg`,\n CHAPTER_HEADER_BG: `${PREFIX}static/chapter-header-bg.4ed173c2.svg`,\n CHAPTER_HEADER_BG_2: `${PREFIX}static/chapter-header-bg-2.c8d96894.svg`,\n CIRCLE_CUEMATH_LOGO: `${PREFIX}static/circle-cuemath-logo.8bcb1ad4.svg`,\n CIRCLE_CUEMATH_LOGO_WHITE: `${PREFIX}static/circle-cuemath-logo-white.e9fafb91.svg`,\n CIRCLE_ICON: `${PREFIX}static/circle-icon.1027df3c.svg`,\n CIRCLE_OUTERCIRCLE_BG: `${PREFIX}static/circle-outercircle-bg.65f21460.svg`,\n CLOCK_BADGE: `${PREFIX}static/clock-badge.0adb4ba6.svg`,\n CLOCK_GREEN: `${PREFIX}static/clock-green.020570d3.svg`,\n CLOCK_ORANGE: `${PREFIX}static/clock-orange.c144059b.svg`,\n CLOCK_PURPLE: `${PREFIX}static/clock_purple.c774c9bf.svg`,\n CODING_REPORT_ICON: `${PREFIX}static/coding-report-icon.91a1e900.svg`,\n COMMON: `${PREFIX}static/common.9e8ceef1.svg`,\n COMMUNITY_BULB: `${PREFIX}static/community-bulb.3b42af21.svg`,\n COMMUNITY_BULB_YELLOW_2: `${PREFIX}static/community-bulb-yellow-2.f89c30f9.svg`,\n CROSSHAIR_CIRCLE: `${PREFIX}static/crosshair-circle.522a26ea.svg`,\n CROWN: `${PREFIX}static/crown.c18fa217.svg`,\n CROWN_OVERLAY: `${PREFIX}static/crown-overlay.11fb073c.svg`,\n CUECOIN_GOLD: `${PREFIX}static/cuecoin-gold.bcb8085e.svg`,\n CUEMATH_APP_QR_CODE: `${PREFIX}static/cuemath-app-qr-code.7205ee79.svg`,\n CW_ICON: `${PREFIX}static/cw-icon.c61f9779.svg`,\n DEC: `${PREFIX}static/dec.90729a5e.svg`,\n DESKTOP_WITH_PURPLE_FILL: `${PREFIX}static/desktop-with-purple-fill.dfec66cc.svg`,\n DOWN_ARROW_BADGE: `${PREFIX}static/down-arrow-badge.f462f615.svg`,\n DURATION_30MIN_GRAY: `${PREFIX}static/duration-30min-gray.f6442df4.svg`,\n DURATION_45MIN_GRAY: `${PREFIX}static/duration-45min-gray.ad90fb23.svg`,\n DURATION_60MIN_GRAY: `${PREFIX}static/duration-60min-gray.874e52a2.svg`,\n DURATION_90MIN_GRAY: `${PREFIX}static/duration-90min-gray.32a04cef.svg`,\n EARTH_GREEN: `${PREFIX}static/earth-green.e1329b7a.svg`,\n ELLIPSE_CLIP: `${PREFIX}static/ellipse-clip.dfb25608.svg`,\n ELP_ICON: `${PREFIX}static/elp-icon.d45b457d.svg`,\n EMPTY_REPORTS: `${PREFIX}static/empty-reports.fe92faad.svg`,\n ENGLISH_ICON: `${PREFIX}static/english-icon.50c2e005.svg`,\n EPIC: `${PREFIX}static/epic.37a0265a.svg`,\n EQUAL_OUTLINED: `${PREFIX}static/equal-outlined.b705bf5d.svg`,\n FEB: `${PREFIX}static/feb.a9ecd320.svg`,\n FEMALE_AVATAR: `${PREFIX}static/female-avatar.b8cd1012.svg`,\n FOCUS_BLUE: `${PREFIX}static/focus-blue.664be268.svg`,\n FULL_REPORT: `${PREFIX}static/full-report.00112c74.svg`,\n GAME_PLAY: `${PREFIX}static/game-play.4982b0cb.svg`,\n GLOBE_WITH_BLUE_FILL: `${PREFIX}static/globe-with-blue-fill.beae6ca4.svg`,\n GRADE_GRID_BACKGROUND: `${PREFIX}static/grade-grid-background.b17b4ccb.svg`,\n GRADUATE_HAT: `${PREFIX}static/graduate-hat.4b49eb44.svg`,\n GRADUATE_ICON_PINK: `${PREFIX}static/graduate-icon-pink.01fbfb1b.svg`,\n GRADUATE_PINK_FILLED_BG: `${PREFIX}static/graduate-pink-filled-bg.c91e9c53.svg`,\n GREEN_BALLOON: `${PREFIX}static/green-balloon.67ac8587.svg`,\n GREEN_FACE: `${PREFIX}static/green-face.1b4dd82f.svg`,\n GREEN_TICK: `${PREFIX}static/green-tick.43b94c3a.svg`,\n HANDSHAKE: `${PREFIX}static/handshake.287e7dfb.svg`,\n HANDSHAKE_GREEN: `${PREFIX}static/handshake-green.f8d24216.svg`,\n HEART_OUTLINED: `${PREFIX}static/heart-outlined.5b5415fe.svg`,\n HW_ICON: `${PREFIX}static/hw-icon.6d78e885.svg`,\n JAN: `${PREFIX}static/jan.f8fb9c39.svg`,\n JUL: `${PREFIX}static/jul.04a98cf0.svg`,\n JUN: `${PREFIX}static/jun.9b6ab6bf.svg`,\n KEY: `${PREFIX}static/key.fa0b4c98.svg`,\n KNOWLEDGE_BLUE: `${PREFIX}static/knowledge-blue.ead536f1.svg`,\n LEARNED_SHIELD_GRAY: `${PREFIX}static/learned-shield-gray.1495b0d5.svg`,\n LEARNED_SHIELD_GREEN: `${PREFIX}static/learned-shield-green.7c26b423.svg`,\n LEARNING_PUZZLE_BOT: `${PREFIX}static/learning-puzzle-bot.6fe93cf6.svg`,\n LEARNT: `${PREFIX}static/learnt.870c5e38.svg`,\n LEGENDARY: `${PREFIX}static/legendary.f15d09ca.svg`,\n LIKE: `${PREFIX}static/like.cb492460.svg`,\n LIVE_SESSION: `${PREFIX}static/live-session.a0d25c78.svg`,\n LIVE_SESSION_BLUE: `${PREFIX}static/live-session-blue.ec7fa85f.svg`,\n LOADER: `${PREFIX}static/loader.52f8c35c.svg`,\n LOADER_1: `${PREFIX}static/loader-1.6524355e.svg`,\n LOCKED: `${PREFIX}static/locked.0c3b7577.svg`,\n MAINTENANCE: `${PREFIX}static/maintenance.a26aca65.svg`,\n MALE_AVATAR: `${PREFIX}static/male-avatar.2febc9eb.svg`,\n MAR: `${PREFIX}static/mar.f8b372ef.svg`,\n MASTERED_BADGE: `${PREFIX}static/mastered-badge.81f156fb.svg`,\n MASTERED_SHIELD_GRAY: `${PREFIX}static/mastered-shield-gray.a58cbe19.svg`,\n MASTERED_SHIELD_GREEN: `${PREFIX}static/mastered-shield-green.070fa4eb.svg`,\n MATH_FIT_BG: `${PREFIX}static/math-fit-bg.4bfa3244.svg`,\n MATH_FIT_CARD_BG: `${PREFIX}static/math-fit-card-bg.20c826bb.svg`,\n MATH_FIT_GREY: `${PREFIX}static/math-fit-grey.c32f37b3.svg`,\n MAY: `${PREFIX}static/may.23adae48.svg`,\n MENTAL_MATH: `${PREFIX}static/mental-math.3c95f169.svg`,\n MILESTONE_INTRO_1: `${PREFIX}static/milestone-intro-1.281a354c.svg`,\n MILESTONE_INTRO_2: `${PREFIX}static/milestone-intro-2.19faee69.svg`,\n MILESTONE_INTRO_3: `${PREFIX}static/milestone-intro-3.6f6055d6.svg`,\n MISTAKE: `${PREFIX}static/mistake.476d1aa7.svg`,\n MONEY: `${PREFIX}static/money.332aacf1.svg`,\n MYSTERY: `${PREFIX}static/mystery.81ada5fb.svg`,\n MYTHIC: `${PREFIX}static/mythic.58ba0ae0.svg`,\n NODE_ACTIVITY_BG: `${PREFIX}static/node-activity-bg.122f7e01.svg`,\n NODE_ACTIVITY_LARGE_BG: `${PREFIX}static/node-activity-large-bg.369e64ee.svg`,\n NODE_CHALLENGE_ARENA_LARGE_BG: `${PREFIX}static/node-challenge-arena-large-bg.e04bccf4.svg`,\n NODE_CUSTOM_TEST_BG: `${PREFIX}static/node-custom-test-bg.d3b757be.svg`,\n NODE_DOWNLOAD_BG: `${PREFIX}static/node-download-bg.b8367de7.svg`,\n NODE_DOWNLOAD_LARGE_BG: `${PREFIX}static/node-download-large-bg.8cfb21ef.svg`,\n NODE_LEARN_BG: `${PREFIX}static/node-learn-bg.b61f815c.svg`,\n NODE_LEARN_LARGE_BG: `${PREFIX}static/node-learn-large-bg.faa03631.svg`,\n NODE_PRACTICE_BG: `${PREFIX}static/node-practice-bg.16cbaf2a.svg`,\n NODE_PROJECT_BG: `${PREFIX}static/node-project-bg.e6a33e28.svg`,\n NODE_PROJECT_LARGE_BG: `${PREFIX}static/node-project-large-bg.dc4e615f.svg`,\n NODE_PUZZLE_BG: `${PREFIX}static/node-puzzle-bg.3422135c.svg`,\n NODE_PUZZLE_LARGE_BG: `${PREFIX}static/node-puzzle-large-bg.ba23382e.svg`,\n NODE_RECAP_BG: `${PREFIX}static/node-recap-bg.546154e4.svg`,\n NODE_RECAP_LARGE_BG: `${PREFIX}static/node-recap-large-bg.eab915ad.svg`,\n NODE_SUBJECTIVE_BG: `${PREFIX}static/node-subjective-bg.d6013a16.svg`,\n NODE_SUBJECTIVE_LARGE_BG: `${PREFIX}static/node-subjective-large-bg.4f6b61e9.svg`,\n NODE_TEST_LARGE_BG: `${PREFIX}static/node-test-large-bg.e9120fd1.svg`,\n NODE_TEST_PREP_BG: `${PREFIX}static/node-test-prep-bg.42c0b9c4.svg`,\n NODE_VIDEO_BG: `${PREFIX}static/node-video-bg.3df3f73a.svg`,\n NODE_VIDEO_LARGE_BG: `${PREFIX}static/node-video-large-bg.49ae971d.svg`,\n NOV: `${PREFIX}static/nov.c44e4739.svg`,\n NO_ACTIVITY: `${PREFIX}static/no-activity.0451dcbb.svg`,\n NO_REPORT: `${PREFIX}static/no-report.4158fad3.svg`,\n NUMBER_1_ORANGE: `${PREFIX}static/number-1-orange.cbf526ed.svg`,\n NUMBER_2_ORANGE: `${PREFIX}static/number-2-orange.6f29eb72.svg`,\n NUMBER_3_ORANGE: `${PREFIX}static/number-3-orange.58baf717.svg`,\n NUMBER_4_ORANGE: `${PREFIX}static/number-4-orange.5ed1ec5e.svg`,\n OCT: `${PREFIX}static/oct.856b3b3f.svg`,\n ONE_STAR_FILLED: `${PREFIX}static/one-star-filled.b6084257.svg`,\n OPENED_BOOK_GREEN: `${PREFIX}static/opened-book-green.faacda34.svg`,\n ORANGE_FACE: `${PREFIX}static/orange-face.5824c2e9.svg`,\n PARENT_AVATAR: `${PREFIX}static/parent-avatar.822c7b9b.svg`,\n PATTERN_CUBES: `${PREFIX}static/pattern-cubes.113d8dda.svg`,\n PATTERN_DIAMOND: `${PREFIX}static/pattern-diamond.a51b202c.svg`,\n PATTERN_HONEYCOMB: `${PREFIX}static/pattern-honeycomb.ed7ad26a.svg`,\n PEOPLE_WITH_ORANGE_FILL: `${PREFIX}static/people-with-orange-fill.3835b8f1.svg`,\n PERCENTAGE_PATTERN_YELLOW: `${PREFIX}static/percentage-pattern-yellow.6a25e820.svg`,\n PERSONALIZATION: `${PREFIX}static/personalization.7a6c33e8.svg`,\n PI_ORANGE: `${PREFIX}static/pi-orange.132b108d.svg`,\n PLATFORM_GREEN: `${PREFIX}static/platform-green.eb853207.svg`,\n PLATFORM_PURPLE: `${PREFIX}static/platform-purple.ecf6fa46.svg`,\n PLAY: `${PREFIX}static/play.68d16dec.svg`,\n PLAY_ICON: `${PREFIX}static/play-icon.13baaa7d.svg`,\n POINTS_BADGE: `${PREFIX}static/points-badge.96bdecc9.svg`,\n POINTS_SUM: `${PREFIX}static/points-sum.360e63de.svg`,\n PRACTICED_SHIELD_GREEN: `${PREFIX}static/practiced-shield-green.90278855.svg`,\n PRACTICED_SHIELD_GREY: `${PREFIX}static/practiced-shield-grey.16cf4fe0.svg`,\n PROFICIENT_BADGE: `${PREFIX}static/proficient-badge.1a6dbb72.svg`,\n PROFILE_BOARD: `${PREFIX}static/profile-board.4f4a17e6.svg`,\n PROGRESS_BAR_PURPLE: `${PREFIX}static/progress_bar_purple.2ff4dfe2.svg`,\n PTM_REPORT_ICON: `${PREFIX}static/ptm-report-icon.5089218f.svg`,\n PUZZLE: `${PREFIX}static/puzzle.5aad5cf8.svg`,\n PUZZLE_DASHBOARD_BANNER: `${PREFIX}static/puzzle-dashboard-banner.b7956519.svg`,\n PUZZLE_PATTERN_BLUE: `${PREFIX}static/puzzle-pattern-blue.abff0164.svg`,\n PUZZLE_PATTERN_GREEN: `${PREFIX}static/puzzle-pattern-green.b8ba1840.svg`,\n PUZZLE_PATTERN_ORANGE: `${PREFIX}static/puzzle-pattern-orange.3f5a17ff.svg`,\n PUZZLE_PATTERN_PURPLE: `${PREFIX}static/puzzle-pattern-purple.14b09759.svg`,\n PUZZLE_PATTERN_YELLOW: `${PREFIX}static/puzzle-pattern-yellow.50917fab.svg`,\n PUZZLE_PURPLE: `${PREFIX}static/puzzle-purple.60ff4884.svg`,\n PUZZLE_STUDENT: `${PREFIX}static/puzzle-student.de530364.svg`,\n QUESTION_MARK_BLUE: `${PREFIX}static/question-mark-blue.b6a7f37d.svg`,\n QUESTION_MARK_YELLOW: `${PREFIX}static/question-mark-yellow.1925aa04.svg`,\n RADIAL_GRADIENT_BG: `${PREFIX}static/radial-gradient-bg.5ae0cde5.svg`,\n RADIAL_GRADIENT_BG_2: `${PREFIX}static/radial-gradient-bg-2.6657c758.svg`,\n RARE: `${PREFIX}static/rare.1ffaa311.svg`,\n REFUND_POLICY: `${PREFIX}static/refund-policy.912dbb4c.svg`,\n REFUND_POLICY_WITH_HEADPHONE: `${PREFIX}static/refund-policy-with-headphone.589398e0.svg`,\n RENEWAL_BLUE: `${PREFIX}static/renewal-blue.1ab3b2d4.svg`,\n REPORT_404: `${PREFIX}static/report-404.dd67785c.svg`,\n ROCKET_BROKEN: `${PREFIX}static/rocket-broken.1f86fa43.svg`,\n ROCKET_YELLOW: `${PREFIX}static/rocket-yellow.62d27e15.svg`,\n SAT_REPORT_ICON: `${PREFIX}static/sat-report-icon.4331be86.svg`,\n SCIENCE_REPORT_ICON: `${PREFIX}static/science-report-icon.a0014c40.svg`,\n SCORE: `${PREFIX}static/score.41971107.svg`,\n SEP: `${PREFIX}static/sep.2d547b31.svg`,\n SMILEY: `${PREFIX}static/smiley.49bb7d7c.svg`,\n STAR_BADGE: `${PREFIX}static/star-badge.5450c267.svg`,\n STAR_ORANGE: `${PREFIX}static/star-orange.a91a341f.svg`,\n STAR_ORANGE_FILLED: `${PREFIX}static/star-orange-filled.a7ff9c8f.svg`,\n STAR_OUTLINED: `${PREFIX}static/star-outlined.bde83c7c.svg`,\n STAR_WITH_GREEN_FILL: `${PREFIX}static/star-with-green-fill.86877d41.svg`,\n STREAK_GREEN: `${PREFIX}static/streak-green.b59bf4dd.svg`,\n STREAK_WHITE: `${PREFIX}static/streak-white.2cbdc9b8.svg`,\n STRIPE_BLURPLE: `${PREFIX}static/stripe-blurple.7f233048.svg`,\n STUDENT_AVATAR: `${PREFIX}static/student-avatar.24bc2875.svg`,\n TEST_DIFFICULTY_EASY: `${PREFIX}static/test-difficulty-easy.56df71dd.svg`,\n TEST_DIFFICULTY_HARD: `${PREFIX}static/test-difficulty-hard.7250f1f4.svg`,\n TEST_DIFFICULTY_MEDIUM: `${PREFIX}static/test-difficulty-medium.2fd9686e.svg`,\n THREE_STARS_FILLED: `${PREFIX}static/three-stars-filled.72b51f03.svg`,\n THUMBS_UP_GREEN: `${PREFIX}static/thumbs-up-green.6a03b9d2.svg`,\n THUMPS_DOWN: `${PREFIX}static/thumps-down.a1192a62.svg`,\n THUMPS_UP: `${PREFIX}static/thumps-up.caa35a98.svg`,\n TICK_GREEN: `${PREFIX}static/tick-green.a1654049.svg`,\n TIME_PURPLE: `${PREFIX}static/time-purple.ab1a458d.svg`,\n TROPHY_BLUE: `${PREFIX}static/trophy-blue.e684ba4c.svg`,\n TROPHY_BLUE_FILLED: `${PREFIX}static/trophy-blue-filled.7e2b40ab.svg`,\n TROPHY_CIRCLE: `${PREFIX}static/trophy-circle.b7b23e36.svg`,\n TROPHY_GREEN: `${PREFIX}static/trophy-green.6c0741c8.svg`,\n TROPHY_OUTLINED: `${PREFIX}static/trophy-outlined.f946b362.svg`,\n TRUSTPILOT: `${PREFIX}static/trustpilot.bd3d79e1.svg`,\n TRUSTPILOT_BLACK: `${PREFIX}static/trustpilot-black.3878bb6f.svg`,\n TWO_STARS_FILLED: `${PREFIX}static/two-stars-filled.a51a14b4.svg`,\n UP_ARROW: `${PREFIX}static/up-arrow.a6946bd3.svg`,\n UP_ARROW_BADGE: `${PREFIX}static/up-arrow-badge.71fe7ad1.svg`,\n USER_CROWN_GRID_BACKGROUND: `${PREFIX}static/user-crown-grid-background.c2875a73.svg`,\n USER_DOWN: `${PREFIX}static/user-down.a06f2f94.svg`,\n USER_PIN: `${PREFIX}static/user-pin.5f334465.svg`,\n USER_PROFILE_BACKGROUND: `${PREFIX}static/user-profile-background.199977a9.svg`,\n USER_TYPE_SELECTOR_GRID_BG: `${PREFIX}static/user-type-selector-grid-bg.aad0b059.svg`,\n USER_UP: `${PREFIX}static/user-up.2aecbbae.svg`,\n YELLOW_FACE: `${PREFIX}static/yellow-face.b7525a33.svg`,\n};\n\nexport { ILLUSTRATIONS };\n"],"names":["PREFIX","ILLUSTRATIONS"],"mappings":"AAMA,MAAMA,IAAS,OAAO,kBAAkB,OAAO,kBAAkB,KAG3DC,IAAgB;AAAA,EACpB,MAAM,GAAGD,CAAM;AAAA,EACf,MAAM,GAAGA,CAAM;AAAA,EACf,MAAM,GAAGA,CAAM;AAAA,EACf,MAAM,GAAGA,CAAM;AAAA,EACf,MAAM,GAAGA,CAAM;AAAA,EACf,MAAM,GAAGA,CAAM;AAAA,EACf,MAAM,GAAGA,CAAM;AAAA,EACf,MAAM,GAAGA,CAAM;AAAA,EACf,gBAAgB,GAAGA,CAAM;AAAA,EACzB,oBAAoB,GAAGA,CAAM;AAAA,EAC7B,oBAAoB,GAAGA,CAAM;AAAA,EAC7B,SAAS,GAAGA,CAAM;AAAA,EAClB,SAAS,GAAGA,CAAM;AAAA,EAClB,SAAS,GAAGA,CAAM;AAAA,EAClB,SAAS,GAAGA,CAAM;AAAA,EAClB,KAAK,GAAGA,CAAM;AAAA,EACd,mBAAmB,GAAGA,CAAM;AAAA,EAC5B,KAAK,GAAGA,CAAM;AAAA,EACd,WAAW,GAAGA,CAAM;AAAA,EACpB,oBAAoB,GAAGA,CAAM;AAAA,EAC7B,qBAAqB,GAAGA,CAAM;AAAA,EAC9B,qBAAqB,GAAGA,CAAM;AAAA,EAC9B,YAAY,GAAGA,CAAM;AAAA,EACrB,gBAAgB,GAAGA,CAAM;AAAA,EACzB,aAAa,GAAGA,CAAM;AAAA,EACtB,aAAa,GAAGA,CAAM;AAAA,EACtB,eAAe,GAAGA,CAAM;AAAA,EACxB,eAAe,GAAGA,CAAM;AAAA,EACxB,sBAAsB,GAAGA,CAAM;AAAA,EAC/B,uBAAuB,GAAGA,CAAM;AAAA,EAChC,eAAe,GAAGA,CAAM;AAAA,EACxB,gBAAgB,GAAGA,CAAM;AAAA,EACzB,iBAAiB,GAAGA,CAAM;AAAA,EAC1B,mBAAmB,GAAGA,CAAM;AAAA,EAC5B,SAAS,GAAGA,CAAM;AAAA,EAClB,YAAY,GAAGA,CAAM;AAAA,EACrB,WAAW,GAAGA,CAAM;AAAA,EACpB,WAAW,GAAGA,CAAM;AAAA,EACpB,WAAW,GAAGA,CAAM;AAAA,EACpB,WAAW,GAAGA,CAAM;AAAA,EACpB,WAAW,GAAGA,CAAM;AAAA,EACpB,WAAW,GAAGA,CAAM;AAAA,EACpB,WAAW,GAAGA,CAAM;AAAA,EACpB,WAAW,GAAGA,CAAM;AAAA,EACpB,WAAW,GAAGA,CAAM;AAAA,EACpB,mBAAmB,GAAGA,CAAM;AAAA,EAC5B,qBAAqB,GAAGA,CAAM;AAAA,EAC9B,qBAAqB,GAAGA,CAAM;AAAA,EAC9B,2BAA2B,GAAGA,CAAM;AAAA,EACpC,aAAa,GAAGA,CAAM;AAAA,EACtB,uBAAuB,GAAGA,CAAM;AAAA,EAChC,aAAa,GAAGA,CAAM;AAAA,EACtB,aAAa,GAAGA,CAAM;AAAA,EACtB,cAAc,GAAGA,CAAM;AAAA,EACvB,cAAc,GAAGA,CAAM;AAAA,EACvB,oBAAoB,GAAGA,CAAM;AAAA,EAC7B,QAAQ,GAAGA,CAAM;AAAA,EACjB,gBAAgB,GAAGA,CAAM;AAAA,EACzB,yBAAyB,GAAGA,CAAM;AAAA,EAClC,kBAAkB,GAAGA,CAAM;AAAA,EAC3B,OAAO,GAAGA,CAAM;AAAA,EAChB,eAAe,GAAGA,CAAM;AAAA,EACxB,cAAc,GAAGA,CAAM;AAAA,EACvB,qBAAqB,GAAGA,CAAM;AAAA,EAC9B,SAAS,GAAGA,CAAM;AAAA,EAClB,KAAK,GAAGA,CAAM;AAAA,EACd,0BAA0B,GAAGA,CAAM;AAAA,EACnC,kBAAkB,GAAGA,CAAM;AAAA,EAC3B,qBAAqB,GAAGA,CAAM;AAAA,EAC9B,qBAAqB,GAAGA,CAAM;AAAA,EAC9B,qBAAqB,GAAGA,CAAM;AAAA,EAC9B,qBAAqB,GAAGA,CAAM;AAAA,EAC9B,aAAa,GAAGA,CAAM;AAAA,EACtB,cAAc,GAAGA,CAAM;AAAA,EACvB,UAAU,GAAGA,CAAM;AAAA,EACnB,eAAe,GAAGA,CAAM;AAAA,EACxB,cAAc,GAAGA,CAAM;AAAA,EACvB,MAAM,GAAGA,CAAM;AAAA,EACf,gBAAgB,GAAGA,CAAM;AAAA,EACzB,KAAK,GAAGA,CAAM;AAAA,EACd,eAAe,GAAGA,CAAM;AAAA,EACxB,YAAY,GAAGA,CAAM;AAAA,EACrB,aAAa,GAAGA,CAAM;AAAA,EACtB,WAAW,GAAGA,CAAM;AAAA,EACpB,sBAAsB,GAAGA,CAAM;AAAA,EAC/B,uBAAuB,GAAGA,CAAM;AAAA,EAChC,cAAc,GAAGA,CAAM;AAAA,EACvB,oBAAoB,GAAGA,CAAM;AAAA,EAC7B,yBAAyB,GAAGA,CAAM;AAAA,EAClC,eAAe,GAAGA,CAAM;AAAA,EACxB,YAAY,GAAGA,CAAM;AAAA,EACrB,YAAY,GAAGA,CAAM;AAAA,EACrB,WAAW,GAAGA,CAAM;AAAA,EACpB,iBAAiB,GAAGA,CAAM;AAAA,EAC1B,gBAAgB,GAAGA,CAAM;AAAA,EACzB,SAAS,GAAGA,CAAM;AAAA,EAClB,KAAK,GAAGA,CAAM;AAAA,EACd,KAAK,GAAGA,CAAM;AAAA,EACd,KAAK,GAAGA,CAAM;AAAA,EACd,KAAK,GAAGA,CAAM;AAAA,EACd,gBAAgB,GAAGA,CAAM;AAAA,EACzB,qBAAqB,GAAGA,CAAM;AAAA,EAC9B,sBAAsB,GAAGA,CAAM;AAAA,EAC/B,qBAAqB,GAAGA,CAAM;AAAA,EAC9B,QAAQ,GAAGA,CAAM;AAAA,EACjB,WAAW,GAAGA,CAAM;AAAA,EACpB,MAAM,GAAGA,CAAM;AAAA,EACf,cAAc,GAAGA,CAAM;AAAA,EACvB,mBAAmB,GAAGA,CAAM;AAAA,EAC5B,QAAQ,GAAGA,CAAM;AAAA,EACjB,UAAU,GAAGA,CAAM;AAAA,EACnB,QAAQ,GAAGA,CAAM;AAAA,EACjB,aAAa,GAAGA,CAAM;AAAA,EACtB,aAAa,GAAGA,CAAM;AAAA,EACtB,KAAK,GAAGA,CAAM;AAAA,EACd,gBAAgB,GAAGA,CAAM;AAAA,EACzB,sBAAsB,GAAGA,CAAM;AAAA,EAC/B,uBAAuB,GAAGA,CAAM;AAAA,EAChC,aAAa,GAAGA,CAAM;AAAA,EACtB,kBAAkB,GAAGA,CAAM;AAAA,EAC3B,eAAe,GAAGA,CAAM;AAAA,EACxB,KAAK,GAAGA,CAAM;AAAA,EACd,aAAa,GAAGA,CAAM;AAAA,EACtB,mBAAmB,GAAGA,CAAM;AAAA,EAC5B,mBAAmB,GAAGA,CAAM;AAAA,EAC5B,mBAAmB,GAAGA,CAAM;AAAA,EAC5B,SAAS,GAAGA,CAAM;AAAA,EAClB,OAAO,GAAGA,CAAM;AAAA,EAChB,SAAS,GAAGA,CAAM;AAAA,EAClB,QAAQ,GAAGA,CAAM;AAAA,EACjB,kBAAkB,GAAGA,CAAM;AAAA,EAC3B,wBAAwB,GAAGA,CAAM;AAAA,EACjC,+BAA+B,GAAGA,CAAM;AAAA,EACxC,qBAAqB,GAAGA,CAAM;AAAA,EAC9B,kBAAkB,GAAGA,CAAM;AAAA,EAC3B,wBAAwB,GAAGA,CAAM;AAAA,EACjC,eAAe,GAAGA,CAAM;AAAA,EACxB,qBAAqB,GAAGA,CAAM;AAAA,EAC9B,kBAAkB,GAAGA,CAAM;AAAA,EAC3B,iBAAiB,GAAGA,CAAM;AAAA,EAC1B,uBAAuB,GAAGA,CAAM;AAAA,EAChC,gBAAgB,GAAGA,CAAM;AAAA,EACzB,sBAAsB,GAAGA,CAAM;AAAA,EAC/B,eAAe,GAAGA,CAAM;AAAA,EACxB,qBAAqB,GAAGA,CAAM;AAAA,EAC9B,oBAAoB,GAAGA,CAAM;AAAA,EAC7B,0BAA0B,GAAGA,CAAM;AAAA,EACnC,oBAAoB,GAAGA,CAAM;AAAA,EAC7B,mBAAmB,GAAGA,CAAM;AAAA,EAC5B,eAAe,GAAGA,CAAM;AAAA,EACxB,qBAAqB,GAAGA,CAAM;AAAA,EAC9B,KAAK,GAAGA,CAAM;AAAA,EACd,aAAa,GAAGA,CAAM;AAAA,EACtB,WAAW,GAAGA,CAAM;AAAA,EACpB,iBAAiB,GAAGA,CAAM;AAAA,EAC1B,iBAAiB,GAAGA,CAAM;AAAA,EAC1B,iBAAiB,GAAGA,CAAM;AAAA,EAC1B,iBAAiB,GAAGA,CAAM;AAAA,EAC1B,KAAK,GAAGA,CAAM;AAAA,EACd,iBAAiB,GAAGA,CAAM;AAAA,EAC1B,mBAAmB,GAAGA,CAAM;AAAA,EAC5B,aAAa,GAAGA,CAAM;AAAA,EACtB,eAAe,GAAGA,CAAM;AAAA,EACxB,eAAe,GAAGA,CAAM;AAAA,EACxB,iBAAiB,GAAGA,CAAM;AAAA,EAC1B,mBAAmB,GAAGA,CAAM;AAAA,EAC5B,yBAAyB,GAAGA,CAAM;AAAA,EAClC,2BAA2B,GAAGA,CAAM;AAAA,EACpC,iBAAiB,GAAGA,CAAM;AAAA,EAC1B,WAAW,GAAGA,CAAM;AAAA,EACpB,gBAAgB,GAAGA,CAAM;AAAA,EACzB,iBAAiB,GAAGA,CAAM;AAAA,EAC1B,MAAM,GAAGA,CAAM;AAAA,EACf,WAAW,GAAGA,CAAM;AAAA,EACpB,cAAc,GAAGA,CAAM;AAAA,EACvB,YAAY,GAAGA,CAAM;AAAA,EACrB,wBAAwB,GAAGA,CAAM;AAAA,EACjC,uBAAuB,GAAGA,CAAM;AAAA,EAChC,kBAAkB,GAAGA,CAAM;AAAA,EAC3B,eAAe,GAAGA,CAAM;AAAA,EACxB,qBAAqB,GAAGA,CAAM;AAAA,EAC9B,iBAAiB,GAAGA,CAAM;AAAA,EAC1B,QAAQ,GAAGA,CAAM;AAAA,EACjB,yBAAyB,GAAGA,CAAM;AAAA,EAClC,qBAAqB,GAAGA,CAAM;AAAA,EAC9B,sBAAsB,GAAGA,CAAM;AAAA,EAC/B,uBAAuB,GAAGA,CAAM;AAAA,EAChC,uBAAuB,GAAGA,CAAM;AAAA,EAChC,uBAAuB,GAAGA,CAAM;AAAA,EAChC,eAAe,GAAGA,CAAM;AAAA,EACxB,gBAAgB,GAAGA,CAAM;AAAA,EACzB,oBAAoB,GAAGA,CAAM;AAAA,EAC7B,sBAAsB,GAAGA,CAAM;AAAA,EAC/B,oBAAoB,GAAGA,CAAM;AAAA,EAC7B,sBAAsB,GAAGA,CAAM;AAAA,EAC/B,MAAM,GAAGA,CAAM;AAAA,EACf,eAAe,GAAGA,CAAM;AAAA,EACxB,8BAA8B,GAAGA,CAAM;AAAA,EACvC,cAAc,GAAGA,CAAM;AAAA,EACvB,YAAY,GAAGA,CAAM;AAAA,EACrB,eAAe,GAAGA,CAAM;AAAA,EACxB,eAAe,GAAGA,CAAM;AAAA,EACxB,iBAAiB,GAAGA,CAAM;AAAA,EAC1B,qBAAqB,GAAGA,CAAM;AAAA,EAC9B,OAAO,GAAGA,CAAM;AAAA,EAChB,KAAK,GAAGA,CAAM;AAAA,EACd,QAAQ,GAAGA,CAAM;AAAA,EACjB,YAAY,GAAGA,CAAM;AAAA,EACrB,aAAa,GAAGA,CAAM;AAAA,EACtB,oBAAoB,GAAGA,CAAM;AAAA,EAC7B,eAAe,GAAGA,CAAM;AAAA,EACxB,sBAAsB,GAAGA,CAAM;AAAA,EAC/B,cAAc,GAAGA,CAAM;AAAA,EACvB,cAAc,GAAGA,CAAM;AAAA,EACvB,gBAAgB,GAAGA,CAAM;AAAA,EACzB,gBAAgB,GAAGA,CAAM;AAAA,EACzB,sBAAsB,GAAGA,CAAM;AAAA,EAC/B,sBAAsB,GAAGA,CAAM;AAAA,EAC/B,wBAAwB,GAAGA,CAAM;AAAA,EACjC,oBAAoB,GAAGA,CAAM;AAAA,EAC7B,iBAAiB,GAAGA,CAAM;AAAA,EAC1B,aAAa,GAAGA,CAAM;AAAA,EACtB,WAAW,GAAGA,CAAM;AAAA,EACpB,YAAY,GAAGA,CAAM;AAAA,EACrB,aAAa,GAAGA,CAAM;AAAA,EACtB,aAAa,GAAGA,CAAM;AAAA,EACtB,oBAAoB,GAAGA,CAAM;AAAA,EAC7B,eAAe,GAAGA,CAAM;AAAA,EACxB,cAAc,GAAGA,CAAM;AAAA,EACvB,iBAAiB,GAAGA,CAAM;AAAA,EAC1B,YAAY,GAAGA,CAAM;AAAA,EACrB,kBAAkB,GAAGA,CAAM;AAAA,EAC3B,kBAAkB,GAAGA,CAAM;AAAA,EAC3B,UAAU,GAAGA,CAAM;AAAA,EACnB,gBAAgB,GAAGA,CAAM;AAAA,EACzB,4BAA4B,GAAGA,CAAM;AAAA,EACrC,WAAW,GAAGA,CAAM;AAAA,EACpB,UAAU,GAAGA,CAAM;AAAA,EACnB,yBAAyB,GAAGA,CAAM;AAAA,EAClC,4BAA4B,GAAGA,CAAM;AAAA,EACrC,SAAS,GAAGA,CAAM;AAAA,EAClB,aAAa,GAAGA,CAAM;AACxB;"}
1
+ {"version":3,"file":"illustrations.js","sources":["../../../src/assets/illustrations/illustrations.ts"],"sourcesContent":["declare global {\n interface Window {\n VITE_PUBLIC_URL: string;\n }\n}\n\nconst PREFIX = window.VITE_PUBLIC_URL ? window.VITE_PUBLIC_URL : '/';\n\n// Must be alphabetical order\nconst ILLUSTRATIONS = {\n 2021: `${PREFIX}static/2021.2a1a2ec9.svg`,\n 2022: `${PREFIX}static/2022.2091553a.svg`,\n 2023: `${PREFIX}static/2023.ed718b4e.svg`,\n 2024: `${PREFIX}static/2024.aa60edc5.svg`,\n 2025: `${PREFIX}static/2025.014a8ad3.svg`,\n 2026: `${PREFIX}static/2026.95d70f27.svg`,\n 2027: `${PREFIX}static/2027.fe83a41c.svg`,\n 2028: `${PREFIX}static/2028.b1c253ef.svg`,\n ACCURACY_BADGE: `${PREFIX}static/accuracy-badge.2e161f00.svg`,\n ALARM_CLOCK_ORANGE: `${PREFIX}static/alarm-clock-orange.31fb90d9.svg`,\n ALARM_CLOCK_PURPLE: `${PREFIX}static/alarm-clock-purple.06d4911c.svg`,\n ALERT_BULB: `${PREFIX}static/alert-bulb.10cc6154.svg`,\n ALIEN_1: `${PREFIX}static/alien-1.fc7ba696.svg`,\n ALIEN_2: `${PREFIX}static/alien-2.15fdda07.svg`,\n ALIEN_3: `${PREFIX}static/alien-3.2664a37f.svg`,\n ALIEN_4: `${PREFIX}static/alien-4.06ac66da.svg`,\n APR: `${PREFIX}static/apr.cd56f13d.svg`,\n ARROW_BOARD_GREEN: `${PREFIX}static/arrow-board-green.11e75bca.svg`,\n AUG: `${PREFIX}static/aug.3ceade02.svg`,\n BLUE_CLIP: `${PREFIX}static/blue-clip.87cc4543.svg`,\n BOOK_CHECKED_GREEN: `${PREFIX}static/book-checked-green.0436b91e.svg`,\n BOOK_CHECKED_ORANGE: `${PREFIX}static/book-checked-orange.53ea6880.svg`,\n BOOK_CHECKED_PURPLE: `${PREFIX}static/book-checked-purple.df628f3e.svg`,\n BOOK_GREEN: `${PREFIX}static/book-green.20f6eed3.svg`,\n BOOK_OPEN_BLUE: `${PREFIX}static/book-open-blue.d4f8d08c.svg`,\n BOOK_ORANGE: `${PREFIX}static/book-orange.04bdc75e.svg`,\n BOOK_YELLOW: `${PREFIX}static/book-yellow.c210ac06.svg`,\n BULLET_YELLOW: `${PREFIX}static/bullet-yellow.2f892d88.svg`,\n CALENDAR_BLUE: `${PREFIX}static/calendar-blue.e0d52d09.svg`,\n CALENDAR_CHECK_GREEN: `${PREFIX}static/calendar-check-green.ab0e24d2.svg`,\n CALENDAR_CROSS_ORANGE: `${PREFIX}static/calendar-cross-orange.8e7a23bd.svg`,\n CALENDAR_GRAY: `${PREFIX}static/calendar-gray.1c72682a.svg`,\n CALENDAR_GREEN: `${PREFIX}static/calendar-green.a2b6a393.svg`,\n CALENDAR_PURPLE: `${PREFIX}static/calendar-purple.1a840b41.svg`,\n CALENDAR_PURPLE_2: `${PREFIX}static/calendar_purple_2.6e8249ef.svg`,\n CAUTION: `${PREFIX}static/caution.5766a967.svg`,\n CHAPTER_10: `${PREFIX}static/chapter-10.c97de4a5.svg`,\n CHAPTER_1: `${PREFIX}static/chapter-1.8a1683a0.svg`,\n CHAPTER_2: `${PREFIX}static/chapter-2.71ac6dfc.svg`,\n CHAPTER_3: `${PREFIX}static/chapter-3.003fc901.svg`,\n CHAPTER_4: `${PREFIX}static/chapter-4.8abbacd8.svg`,\n CHAPTER_5: `${PREFIX}static/chapter-5.c774b439.svg`,\n CHAPTER_6: `${PREFIX}static/chapter-6.cb5cf1cb.svg`,\n CHAPTER_7: `${PREFIX}static/chapter-7.57b0beb4.svg`,\n CHAPTER_8: `${PREFIX}static/chapter-8.68d36477.svg`,\n CHAPTER_9: `${PREFIX}static/chapter-9.0c00e26f.svg`,\n CHAPTER_HEADER_BG: `${PREFIX}static/chapter-header-bg.4ed173c2.svg`,\n CHAPTER_HEADER_BG_2: `${PREFIX}static/chapter-header-bg-2.c8d96894.svg`,\n CIRCLE_CUEMATH_LOGO: `${PREFIX}static/circle-cuemath-logo.8bcb1ad4.svg`,\n CIRCLE_CUEMATH_LOGO_WHITE: `${PREFIX}static/circle-cuemath-logo-white.e9fafb91.svg`,\n CIRCLE_ICON: `${PREFIX}static/circle-icon.1027df3c.svg`,\n CIRCLE_OUTERCIRCLE_BG: `${PREFIX}static/circle-outercircle-bg.65f21460.svg`,\n CLOCK_BADGE: `${PREFIX}static/clock-badge.0adb4ba6.svg`,\n CLOCK_GREEN: `${PREFIX}static/clock-green.020570d3.svg`,\n CLOCK_ORANGE: `${PREFIX}static/clock-orange.c144059b.svg`,\n CLOCK_PURPLE: `${PREFIX}static/clock_purple.c774c9bf.svg`,\n CODING_REPORT_ICON: `${PREFIX}static/coding-report-icon.91a1e900.svg`,\n COMMON: `${PREFIX}static/common.9e8ceef1.svg`,\n COMMUNITY_BULB: `${PREFIX}static/community-bulb.3b42af21.svg`,\n COMMUNITY_BULB_YELLOW_2: `${PREFIX}static/community-bulb-yellow-2.f89c30f9.svg`,\n CROSSHAIR_CIRCLE: `${PREFIX}static/crosshair-circle.522a26ea.svg`,\n CROWN: `${PREFIX}static/crown.c18fa217.svg`,\n CROWN_OVERLAY: `${PREFIX}static/crown-overlay.11fb073c.svg`,\n CUECOIN_GOLD: `${PREFIX}static/cuecoin-gold.bcb8085e.svg`,\n CUEMATH_APP_QR_CODE: `${PREFIX}static/cuemath-app-qr-code.7205ee79.svg`,\n CW_ICON: `${PREFIX}static/cw-icon.c61f9779.svg`,\n DEC: `${PREFIX}static/dec.90729a5e.svg`,\n DESKTOP_WITH_PURPLE_FILL: `${PREFIX}static/desktop-with-purple-fill.dfec66cc.svg`,\n DOWN_ARROW_BADGE: `${PREFIX}static/down-arrow-badge.f462f615.svg`,\n DURATION_30MIN_GRAY: `${PREFIX}static/duration-30min-gray.f6442df4.svg`,\n DURATION_45MIN_GRAY: `${PREFIX}static/duration-45min-gray.ad90fb23.svg`,\n DURATION_60MIN_GRAY: `${PREFIX}static/duration-60min-gray.874e52a2.svg`,\n DURATION_90MIN_GRAY: `${PREFIX}static/duration-90min-gray.32a04cef.svg`,\n EARTH_GREEN: `${PREFIX}static/earth-green.e1329b7a.svg`,\n ELLIPSE_CLIP: `${PREFIX}static/ellipse-clip.dfb25608.svg`,\n ELP_ICON: `${PREFIX}static/elp-icon.d45b457d.svg`,\n EMPTY_REPORTS: `${PREFIX}static/empty-reports.fe92faad.svg`,\n ENGLISH_ICON: `${PREFIX}static/english-icon.50c2e005.svg`,\n EPIC: `${PREFIX}static/epic.37a0265a.svg`,\n EQUAL_OUTLINED: `${PREFIX}static/equal-outlined.b705bf5d.svg`,\n FEB: `${PREFIX}static/feb.a9ecd320.svg`,\n FEMALE_AVATAR: `${PREFIX}static/female-avatar.b8cd1012.svg`,\n FOCUS_BLUE: `${PREFIX}static/focus-blue.664be268.svg`,\n FULL_REPORT: `${PREFIX}static/full-report.00112c74.svg`,\n GAME_PLAY: `${PREFIX}static/game-play.4982b0cb.svg`,\n GLOBE_WITH_BLUE_FILL: `${PREFIX}static/globe-with-blue-fill.beae6ca4.svg`,\n GRADE_GRID_BACKGROUND: `${PREFIX}static/grade-grid-background.b17b4ccb.svg`,\n GRADUATE_HAT: `${PREFIX}static/graduate-hat.4b49eb44.svg`,\n GRADUATE_ICON_PINK: `${PREFIX}static/graduate-icon-pink.01fbfb1b.svg`,\n GRADUATE_PINK_FILLED_BG: `${PREFIX}static/graduate-pink-filled-bg.c91e9c53.svg`,\n GREEN_BALLOON: `${PREFIX}static/green-balloon.67ac8587.svg`,\n GREEN_FACE: `${PREFIX}static/green-face.1b4dd82f.svg`,\n GREEN_TICK: `${PREFIX}static/green-tick.43b94c3a.svg`,\n HANDSHAKE: `${PREFIX}static/handshake.287e7dfb.svg`,\n HANDSHAKE_GREEN: `${PREFIX}static/handshake-green.f8d24216.svg`,\n HEART_OUTLINED: `${PREFIX}static/heart-outlined.5b5415fe.svg`,\n HW_ICON: `${PREFIX}static/hw-icon.6d78e885.svg`,\n JAN: `${PREFIX}static/jan.f8fb9c39.svg`,\n JUL: `${PREFIX}static/jul.04a98cf0.svg`,\n JUN: `${PREFIX}static/jun.9b6ab6bf.svg`,\n KEY: `${PREFIX}static/key.fa0b4c98.svg`,\n KNOWLEDGE_BLUE: `${PREFIX}static/knowledge-blue.ead536f1.svg`,\n LEARNED_SHIELD_GRAY: `${PREFIX}static/learned-shield-gray.1495b0d5.svg`,\n LEARNED_SHIELD_GREEN: `${PREFIX}static/learned-shield-green.7c26b423.svg`,\n LEARNING_PUZZLE_BOT: `${PREFIX}static/learning-puzzle-bot.6fe93cf6.svg`,\n LEARNT: `${PREFIX}static/learnt.870c5e38.svg`,\n LEGENDARY: `${PREFIX}static/legendary.f15d09ca.svg`,\n LIKE: `${PREFIX}static/like.cb492460.svg`,\n LIVE_SESSION: `${PREFIX}static/live-session.a0d25c78.svg`,\n LIVE_SESSION_BLUE: `${PREFIX}static/live-session-blue.ec7fa85f.svg`,\n LOADER: `${PREFIX}static/loader.52f8c35c.svg`,\n LOADER_1: `${PREFIX}static/loader-1.6524355e.svg`,\n LOCKED: `${PREFIX}static/locked.0c3b7577.svg`,\n MAINTENANCE: `${PREFIX}static/maintenance.a26aca65.svg`,\n MALE_AVATAR: `${PREFIX}static/male-avatar.2febc9eb.svg`,\n MAR: `${PREFIX}static/mar.f8b372ef.svg`,\n MASTERED_BADGE: `${PREFIX}static/mastered-badge.81f156fb.svg`,\n MASTERED_SHIELD_GRAY: `${PREFIX}static/mastered-shield-gray.a58cbe19.svg`,\n MASTERED_SHIELD_GREEN: `${PREFIX}static/mastered-shield-green.070fa4eb.svg`,\n MATH_FIT_BG: `${PREFIX}static/math-fit-bg.4bfa3244.svg`,\n MATH_FIT_CARD_BG: `${PREFIX}static/math-fit-card-bg.20c826bb.svg`,\n MATH_FIT_GREY: `${PREFIX}static/math-fit-grey.c32f37b3.svg`,\n MAY: `${PREFIX}static/may.23adae48.svg`,\n MENTAL_MATH: `${PREFIX}static/mental-math.3c95f169.svg`,\n MILESTONE_INTRO_1: `${PREFIX}static/milestone-intro-1.281a354c.svg`,\n MILESTONE_INTRO_2: `${PREFIX}static/milestone-intro-2.19faee69.svg`,\n MILESTONE_INTRO_3: `${PREFIX}static/milestone-intro-3.6f6055d6.svg`,\n MISTAKE: `${PREFIX}static/mistake.476d1aa7.svg`,\n MONEY: `${PREFIX}static/money.332aacf1.svg`,\n MYSTERY: `${PREFIX}static/mystery.81ada5fb.svg`,\n MYTHIC: `${PREFIX}static/mythic.58ba0ae0.svg`,\n NODE_ACTIVITY_BG: `${PREFIX}static/node-activity-bg.122f7e01.svg`,\n NODE_ACTIVITY_LARGE_BG: `${PREFIX}static/node-activity-large-bg.369e64ee.svg`,\n NODE_CHALLENGE_ARENA_LARGE_BG: `${PREFIX}static/node-challenge-arena-large-bg.e04bccf4.svg`,\n NODE_CUSTOM_TEST_BG: `${PREFIX}static/node-custom-test-bg.d3b757be.svg`,\n NODE_DOWNLOAD_BG: `${PREFIX}static/node-download-bg.b8367de7.svg`,\n NODE_DOWNLOAD_LARGE_BG: `${PREFIX}static/node-download-large-bg.8cfb21ef.svg`,\n NODE_LEARN_BG: `${PREFIX}static/node-learn-bg.b61f815c.svg`,\n NODE_LEARN_LARGE_BG: `${PREFIX}static/node-learn-large-bg.faa03631.svg`,\n NODE_PRACTICE_BG: `${PREFIX}static/node-practice-bg.16cbaf2a.svg`,\n NODE_PROJECT_BG: `${PREFIX}static/node-project-bg.e6a33e28.svg`,\n NODE_PROJECT_LARGE_BG: `${PREFIX}static/node-project-large-bg.dc4e615f.svg`,\n NODE_PUZZLE_BG: `${PREFIX}static/node-puzzle-bg.3422135c.svg`,\n NODE_PUZZLE_LARGE_BG: `${PREFIX}static/node-puzzle-large-bg.ba23382e.svg`,\n NODE_RECAP_BG: `${PREFIX}static/node-recap-bg.546154e4.svg`,\n NODE_RECAP_LARGE_BG: `${PREFIX}static/node-recap-large-bg.eab915ad.svg`,\n NODE_SUBJECTIVE_BG: `${PREFIX}static/node-subjective-bg.d6013a16.svg`,\n NODE_SUBJECTIVE_LARGE_BG: `${PREFIX}static/node-subjective-large-bg.4f6b61e9.svg`,\n NODE_TEST_LARGE_BG: `${PREFIX}static/node-test-large-bg.e9120fd1.svg`,\n NODE_TEST_PREP_BG: `${PREFIX}static/node-test-prep-bg.42c0b9c4.svg`,\n NODE_VIDEO_BG: `${PREFIX}static/node-video-bg.3df3f73a.svg`,\n NODE_VIDEO_LARGE_BG: `${PREFIX}static/node-video-large-bg.49ae971d.svg`,\n NOV: `${PREFIX}static/nov.c44e4739.svg`,\n NO_ACTIVITY: `${PREFIX}static/no-activity.0451dcbb.svg`,\n NO_REPORT: `${PREFIX}static/no-report.4158fad3.svg`,\n NUMBER_1_ORANGE: `${PREFIX}static/number-1-orange.cbf526ed.svg`,\n NUMBER_2_ORANGE: `${PREFIX}static/number-2-orange.6f29eb72.svg`,\n NUMBER_3_ORANGE: `${PREFIX}static/number-3-orange.58baf717.svg`,\n NUMBER_4_ORANGE: `${PREFIX}static/number-4-orange.5ed1ec5e.svg`,\n OCT: `${PREFIX}static/oct.856b3b3f.svg`,\n ONE_STAR_FILLED: `${PREFIX}static/one-star-filled.b6084257.svg`,\n OPENED_BOOK_GREEN: `${PREFIX}static/opened-book-green.faacda34.svg`,\n ORANGE_FACE: `${PREFIX}static/orange-face.5824c2e9.svg`,\n PARENT_AVATAR: `${PREFIX}static/parent-avatar.822c7b9b.svg`,\n PATTERN_CUBES: `${PREFIX}static/pattern-cubes.113d8dda.svg`,\n PATTERN_DIAMOND: `${PREFIX}static/pattern-diamond.a51b202c.svg`,\n PATTERN_HONEYCOMB: `${PREFIX}static/pattern-honeycomb.ed7ad26a.svg`,\n PEOPLE_WITH_ORANGE_FILL: `${PREFIX}static/people-with-orange-fill.3835b8f1.svg`,\n PERCENTAGE_PATTERN_YELLOW: `${PREFIX}static/percentage-pattern-yellow.6a25e820.svg`,\n PERSONALIZATION: `${PREFIX}static/personalization.7a6c33e8.svg`,\n PI_ORANGE: `${PREFIX}static/pi-orange.132b108d.svg`,\n PLATFORM_GREEN: `${PREFIX}static/platform-green.eb853207.svg`,\n PLATFORM_PURPLE: `${PREFIX}static/platform-purple.ecf6fa46.svg`,\n PLAY: `${PREFIX}static/play.68d16dec.svg`,\n PLAY_ICON: `${PREFIX}static/play-icon.13baaa7d.svg`,\n POINTS_BADGE: `${PREFIX}static/points-badge.96bdecc9.svg`,\n POINTS_SUM: `${PREFIX}static/points-sum.360e63de.svg`,\n PRACTICED_SHIELD_GREEN: `${PREFIX}static/practiced-shield-green.90278855.svg`,\n PRACTICED_SHIELD_GREY: `${PREFIX}static/practiced-shield-grey.16cf4fe0.svg`,\n PROFICIENT_BADGE: `${PREFIX}static/proficient-badge.1a6dbb72.svg`,\n PROFILE_BOARD: `${PREFIX}static/profile-board.4f4a17e6.svg`,\n PROGRESS_BAR_PURPLE: `${PREFIX}static/progress_bar_purple.2ff4dfe2.svg`,\n PTM_REPORT_ICON: `${PREFIX}static/ptm-report-icon.5089218f.svg`,\n PUZZLE: `${PREFIX}static/puzzle.5aad5cf8.svg`,\n PUZZLE_DASHBOARD_BANNER: `${PREFIX}static/puzzle-dashboard-banner.b7956519.svg`,\n PUZZLE_PATTERN_BLUE: `${PREFIX}static/puzzle-pattern-blue.abff0164.svg`,\n PUZZLE_PATTERN_GREEN: `${PREFIX}static/puzzle-pattern-green.b8ba1840.svg`,\n PUZZLE_PATTERN_ORANGE: `${PREFIX}static/puzzle-pattern-orange.3f5a17ff.svg`,\n PUZZLE_PATTERN_PURPLE: `${PREFIX}static/puzzle-pattern-purple.14b09759.svg`,\n PUZZLE_PATTERN_YELLOW: `${PREFIX}static/puzzle-pattern-yellow.50917fab.svg`,\n PUZZLE_PURPLE: `${PREFIX}static/puzzle-purple.60ff4884.svg`,\n PUZZLE_STUDENT: `${PREFIX}static/puzzle-student.de530364.svg`,\n QUESTION_MARK_BLUE: `${PREFIX}static/question-mark-blue.b6a7f37d.svg`,\n QUESTION_MARK_YELLOW: `${PREFIX}static/question-mark-yellow.1925aa04.svg`,\n RADIAL_GRADIENT_BG: `${PREFIX}static/radial-gradient-bg.5ae0cde5.svg`,\n RADIAL_GRADIENT_BG_2: `${PREFIX}static/radial-gradient-bg-2.6657c758.svg`,\n RARE: `${PREFIX}static/rare.1ffaa311.svg`,\n REFUND_POLICY: `${PREFIX}static/refund-policy.912dbb4c.svg`,\n REFUND_POLICY_WITH_HEADPHONE: `${PREFIX}static/refund-policy-with-headphone.589398e0.svg`,\n RENEWAL_BLUE: `${PREFIX}static/renewal-blue.1ab3b2d4.svg`,\n REPORT_404: `${PREFIX}static/report-404.dd67785c.svg`,\n ROCKET_BROKEN: `${PREFIX}static/rocket-broken.1f86fa43.svg`,\n ROCKET_YELLOW: `${PREFIX}static/rocket-yellow.62d27e15.svg`,\n SAT_REPORT_ICON: `${PREFIX}static/sat-report-icon.4331be86.svg`,\n SCIENCE_REPORT_ICON: `${PREFIX}static/science-report-icon.a0014c40.svg`,\n SCORE: `${PREFIX}static/score.41971107.svg`,\n SEP: `${PREFIX}static/sep.2d547b31.svg`,\n SMILEY: `${PREFIX}static/smiley.49bb7d7c.svg`,\n STAR_BADGE: `${PREFIX}static/star-badge.5450c267.svg`,\n STAR_ORANGE: `${PREFIX}static/star-orange.a91a341f.svg`,\n STAR_ORANGE_FILLED: `${PREFIX}static/star-orange-filled.a7ff9c8f.svg`,\n STAR_OUTLINED: `${PREFIX}static/star-outlined.bde83c7c.svg`,\n STAR_WITH_GREEN_FILL: `${PREFIX}static/star-with-green-fill.86877d41.svg`,\n STREAK_GREEN: `${PREFIX}static/streak-green.b59bf4dd.svg`,\n STREAK_WHITE: `${PREFIX}static/streak-white.2cbdc9b8.svg`,\n STRIPE_BLURPLE: `${PREFIX}static/stripe-blurple.7f233048.svg`,\n STUDENT_AVATAR: `${PREFIX}static/student-avatar.24bc2875.svg`,\n TEST_DIFFICULTY_EASY: `${PREFIX}static/test-difficulty-easy.56df71dd.svg`,\n TEST_DIFFICULTY_HARD: `${PREFIX}static/test-difficulty-hard.7250f1f4.svg`,\n TEST_DIFFICULTY_MEDIUM: `${PREFIX}static/test-difficulty-medium.2fd9686e.svg`,\n THREE_STARS_FILLED: `${PREFIX}static/three-stars-filled.72b51f03.svg`,\n THUMBS_UP_GREEN: `${PREFIX}static/thumbs-up-green.6a03b9d2.svg`,\n THUMPS_DOWN: `${PREFIX}static/thumps-down.a1192a62.svg`,\n THUMPS_UP: `${PREFIX}static/thumps-up.caa35a98.svg`,\n TICK_GREEN: `${PREFIX}static/tick-green.a1654049.svg`,\n TIME_PURPLE: `${PREFIX}static/time-purple.ab1a458d.svg`,\n TROPHY_BLUE: `${PREFIX}static/trophy-blue.e684ba4c.svg`,\n TROPHY_BLUE_FILLED: `${PREFIX}static/trophy-blue-filled.7e2b40ab.svg`,\n TROPHY_CIRCLE: `${PREFIX}static/trophy-circle.b7b23e36.svg`,\n TROPHY_GREEN: `${PREFIX}static/trophy-green.6c0741c8.svg`,\n TROPHY_OUTLINED: `${PREFIX}static/trophy-outlined.f946b362.svg`,\n TRUSTPILOT: `${PREFIX}static/trustpilot.bd3d79e1.svg`,\n TRUSTPILOT_BLACK: `${PREFIX}static/trustpilot-black.3878bb6f.svg`,\n TWO_STARS_FILLED: `${PREFIX}static/two-stars-filled.a51a14b4.svg`,\n UP_ARROW: `${PREFIX}static/up-arrow.a6946bd3.svg`,\n UP_ARROW_BADGE: `${PREFIX}static/up-arrow-badge.71fe7ad1.svg`,\n USER_CROWN_GRID_BACKGROUND: `${PREFIX}static/user-crown-grid-background.c2875a73.svg`,\n USER_DOWN: `${PREFIX}static/user-down.a06f2f94.svg`,\n USER_PIN: `${PREFIX}static/user-pin.5f334465.svg`,\n USER_PROFILE_BACKGROUND: `${PREFIX}static/user-profile-background.199977a9.svg`,\n USER_TYPE_SELECTOR_GRID_BG: `${PREFIX}static/user-type-selector-grid-bg.aad0b059.svg`,\n USER_UP: `${PREFIX}static/user-up.2aecbbae.svg`,\n YELLOW_FACE: `${PREFIX}static/yellow-face.b7525a33.svg`,\n};\n\nexport { ILLUSTRATIONS };\n"],"names":["PREFIX","ILLUSTRATIONS"],"mappings":"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"}
@@ -0,0 +1,78 @@
1
+ import { jsxs as d, jsx as e } from "react/jsx-runtime";
2
+ import { memo as c, useState as u, useCallback as h, useEffect as m } from "react";
3
+ import { ILLUSTRATIONS as $ } from "../../../assets/illustrations/illustrations.js";
4
+ import g from "../../ui/modals/use-modal-actions.js";
5
+ import r from "../../ui/text/text.js";
6
+ import f from "../../ui/image/image.js";
7
+ import o from "../../ui/layout/flex-view.js";
8
+ import p from "../../ui/buttons/button/button.js";
9
+ import n from "../../ui/separator/separator.js";
10
+ const A = c(function() {
11
+ const { closeModal: i } = g(), [L, l] = u(10), t = h(() => {
12
+ i();
13
+ }, [i]);
14
+ return m(() => {
15
+ const s = setInterval(() => {
16
+ l((a) => a <= 1 ? (t(), 0) : a - 1);
17
+ }, 1e5);
18
+ return () => clearInterval(s);
19
+ }, [t]), /* @__PURE__ */ d(o, { $gapX: 1.5, $gutterX: 1.5, $background: "RED_1", children: [
20
+ /* @__PURE__ */ e(
21
+ o,
22
+ {
23
+ $justifyContent: "center",
24
+ $alignItems: "center",
25
+ $borderRadiusX: 4,
26
+ $heightX: 4.5,
27
+ $widthX: 4.5,
28
+ $background: "RED_2",
29
+ children: /* @__PURE__ */ e(
30
+ o,
31
+ {
32
+ $justifyContent: "center",
33
+ $alignItems: "center",
34
+ $borderRadiusX: 4,
35
+ $heightX: 3.5,
36
+ $widthX: 3.5,
37
+ $background: "RED_4",
38
+ children: /* @__PURE__ */ e(f, { src: $.ALERT_BULB, alt: "Fraud Alert", height: 40, width: 40 })
39
+ }
40
+ )
41
+ }
42
+ ),
43
+ /* @__PURE__ */ e(n, { heightX: 2 }),
44
+ /* @__PURE__ */ e(r, { $renderAs: "ah4-bold", $color: "RED_6", children: "Fraudulent Login Detected!" }),
45
+ /* @__PURE__ */ e(n, { height: 12 }),
46
+ /* @__PURE__ */ d(r, { $renderAs: "ub2", color: "BLACK_1", children: [
47
+ "You have logged into a student's LEAP account, which is strictly prohibited. This is considered",
48
+ " ",
49
+ /* @__PURE__ */ e(r, { as: "span", $renderAs: "ub2-bold", color: "BLACK_1", $inline: !0, children: "fraudulent activity" }),
50
+ " ",
51
+ "and may result in strict action, including a",
52
+ " ",
53
+ /* @__PURE__ */ e(r, { as: "span", $renderAs: "ub2-bold", color: "BLACK_1", $inline: !0, children: "heavy penalty" }),
54
+ " ",
55
+ "or",
56
+ " ",
57
+ /* @__PURE__ */ e(r, { as: "span", $renderAs: "ub2-bold", color: "BLACK_1", $inline: !0, children: "discontinuation" }),
58
+ " ",
59
+ "from conducting Cuemath classes."
60
+ ] }),
61
+ /* @__PURE__ */ e(n, { heightX: 2 }),
62
+ /* @__PURE__ */ e(
63
+ p,
64
+ {
65
+ renderAs: "primary",
66
+ alignSelf: "flex-end",
67
+ shape: "square",
68
+ onClick: t,
69
+ label: "Log out",
70
+ width: "50%"
71
+ }
72
+ )
73
+ ] });
74
+ }), x = A;
75
+ export {
76
+ x as default
77
+ };
78
+ //# sourceMappingURL=fraud-alert-modal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fraud-alert-modal.js","sources":["../../../../src/features/fraud-detection/fraud-alert-modal/fraud-alert-modal.tsx"],"sourcesContent":["/**\n * Fraud Alert Modal Component\n * Displays fraud detection details and auto-logout countdown\n */\n\nimport { memo, useCallback, useEffect, useState, type FC } from 'react';\n\nimport { ILLUSTRATIONS } from '../../../assets/illustrations/illustrations';\nimport useModalActions from '../../ui/modals/use-modal-actions';\nimport Text from '../../ui/text/text';\nimport Image from '../../ui/image/image';\nimport FlexView from '../../ui/layout/flex-view';\nimport Button from '../../ui/buttons/button/button';\nimport Separator from '../../ui/separator/separator';\n\nconst FraudAlertModal: FC = memo(function FraudAlertModal() {\n const { closeModal } = useModalActions();\n const [countdown, setCountdown] = useState(10); // 10 seconds countdown\n\n const handleLogout = useCallback(() => {\n closeModal();\n }, [closeModal]);\n\n useEffect(() => {\n const timer = setInterval(() => {\n setCountdown(prev => {\n if (prev <= 1) {\n handleLogout();\n\n return 0;\n }\n\n return prev - 1;\n });\n }, 100000);\n\n return () => clearInterval(timer);\n }, [handleLogout]);\n\n return (\n <FlexView $gapX={1.5} $gutterX={1.5} $background=\"RED_1\">\n <FlexView\n $justifyContent=\"center\"\n $alignItems=\"center\"\n $borderRadiusX={4}\n $heightX={4.5}\n $widthX={4.5}\n $background=\"RED_2\"\n >\n <FlexView\n $justifyContent=\"center\"\n $alignItems=\"center\"\n $borderRadiusX={4}\n $heightX={3.5}\n $widthX={3.5}\n $background=\"RED_4\"\n >\n <Image src={ILLUSTRATIONS.ALERT_BULB} alt=\"Fraud Alert\" height={40} width={40} />\n </FlexView>\n </FlexView>\n <Separator heightX={2} />\n <Text $renderAs=\"ah4-bold\" $color=\"RED_6\">\n Fraudulent Login Detected!\n </Text>\n <Separator height={12} />\n <Text $renderAs=\"ub2\" color=\"BLACK_1\">\n You have logged into a student's LEAP account, which is strictly prohibited. This is\n considered{' '}\n <Text as=\"span\" $renderAs=\"ub2-bold\" color=\"BLACK_1\" $inline>\n fraudulent activity\n </Text>{' '}\n and may result in strict action, including a{' '}\n <Text as=\"span\" $renderAs=\"ub2-bold\" color=\"BLACK_1\" $inline>\n heavy penalty\n </Text>{' '}\n or{' '}\n <Text as=\"span\" $renderAs=\"ub2-bold\" color=\"BLACK_1\" $inline>\n discontinuation\n </Text>{' '}\n from conducting Cuemath classes.\n </Text>\n <Separator heightX={2} />\n <Button\n renderAs=\"primary\"\n alignSelf=\"flex-end\"\n shape=\"square\"\n onClick={handleLogout}\n label=\"Log out\"\n width=\"50%\"\n />\n </FlexView>\n );\n});\n\nexport default FraudAlertModal;\n"],"names":["FraudAlertModal","memo","closeModal","useModalActions","countdown","setCountdown","useState","handleLogout","useCallback","useEffect","timer","prev","FlexView","jsx","Image","ILLUSTRATIONS","Separator","Text","jsxs","Button","FraudAlertModal$1"],"mappings":";;;;;;;;;AAeA,MAAMA,IAAsBC,EAAK,WAA2B;AACpD,QAAA,EAAE,YAAAC,MAAeC,KACjB,CAACC,GAAWC,CAAY,IAAIC,EAAS,EAAE,GAEvCC,IAAeC,EAAY,MAAM;AAC1B,IAAAN;EAAA,GACV,CAACA,CAAU,CAAC;AAEf,SAAAO,EAAU,MAAM;AACR,UAAAC,IAAQ,YAAY,MAAM;AAC9B,MAAAL,EAAa,CAAQM,MACfA,KAAQ,KACGJ,KAEN,KAGFI,IAAO,CACf;AAAA,OACA,GAAM;AAEF,WAAA,MAAM,cAAcD,CAAK;AAAA,EAAA,GAC/B,CAACH,CAAY,CAAC,qBAGdK,GAAS,EAAA,OAAO,KAAK,UAAU,KAAK,aAAY,SAC/C,UAAA;AAAA,IAAA,gBAAAC;AAAA,MAACD;AAAA,MAAA;AAAA,QACC,iBAAgB;AAAA,QAChB,aAAY;AAAA,QACZ,gBAAgB;AAAA,QAChB,UAAU;AAAA,QACV,SAAS;AAAA,QACT,aAAY;AAAA,QAEZ,UAAA,gBAAAC;AAAA,UAACD;AAAA,UAAA;AAAA,YACC,iBAAgB;AAAA,YAChB,aAAY;AAAA,YACZ,gBAAgB;AAAA,YAChB,UAAU;AAAA,YACV,SAAS;AAAA,YACT,aAAY;AAAA,YAEZ,UAAA,gBAAAC,EAACC,GAAM,EAAA,KAAKC,EAAc,YAAY,KAAI,eAAc,QAAQ,IAAI,OAAO,GAAI,CAAA;AAAA,UAAA;AAAA,QACjF;AAAA,MAAA;AAAA,IACF;AAAA,IACA,gBAAAF,EAACG,GAAU,EAAA,SAAS,EAAG,CAAA;AAAA,sBACtBC,GAAK,EAAA,WAAU,YAAW,QAAO,SAAQ,UAE1C,8BAAA;AAAA,IACA,gBAAAJ,EAACG,GAAU,EAAA,QAAQ,GAAI,CAAA;AAAA,IACtB,gBAAAE,EAAAD,GAAA,EAAK,WAAU,OAAM,OAAM,WAAU,UAAA;AAAA,MAAA;AAAA,MAEzB;AAAA,MACX,gBAAAJ,EAACI,GAAK,EAAA,IAAG,QAAO,WAAU,YAAW,OAAM,WAAU,SAAO,IAAC,UAE7D,sBAAA,CAAA;AAAA,MAAQ;AAAA,MAAI;AAAA,MACiC;AAAA,MAC7C,gBAAAJ,EAACI,GAAK,EAAA,IAAG,QAAO,WAAU,YAAW,OAAM,WAAU,SAAO,IAAC,UAE7D,gBAAA,CAAA;AAAA,MAAQ;AAAA,MAAI;AAAA,MACT;AAAA,MACH,gBAAAJ,EAACI,GAAK,EAAA,IAAG,QAAO,WAAU,YAAW,OAAM,WAAU,SAAO,IAAC,UAE7D,kBAAA,CAAA;AAAA,MAAQ;AAAA,MAAI;AAAA,IAAA,GAEd;AAAA,IACA,gBAAAJ,EAACG,GAAU,EAAA,SAAS,EAAG,CAAA;AAAA,IACvB,gBAAAH;AAAA,MAACM;AAAA,MAAA;AAAA,QACC,UAAS;AAAA,QACT,WAAU;AAAA,QACV,OAAM;AAAA,QACN,SAASZ;AAAA,QACT,OAAM;AAAA,QACN,OAAM;AAAA,MAAA;AAAA,IACR;AAAA,EACF,EAAA,CAAA;AAEJ,CAAC,GAEDa,IAAepB;"}
@@ -0,0 +1,28 @@
1
+ const o = (n) => {
2
+ const e = Object.keys(n).sort().map((r) => `${r}:${n[r]}`).join("|");
3
+ let t = 5381;
4
+ for (let r = 0; r < e.length; r++)
5
+ t = t * 33 ^ e.charCodeAt(r);
6
+ return Math.abs(t).toString(36);
7
+ }, a = (n) => {
8
+ const e = {
9
+ screen: `${window.screen.width}x${window.screen.height}`,
10
+ timezone: Intl.DateTimeFormat().resolvedOptions().timeZone,
11
+ platform: navigator.platform,
12
+ userAgent: navigator.userAgent
13
+ };
14
+ return "deviceMemory" in navigator && (e.deviceMemory = navigator.deviceMemory), "hardwareConcurrency" in navigator && (e.hardwareConcurrency = navigator.hardwareConcurrency), {
15
+ fingerprint: o(e),
16
+ screen: e.screen,
17
+ timezone: e.timezone,
18
+ platform: e.platform,
19
+ userAgent: e.userAgent,
20
+ deviceMemory: e.deviceMemory,
21
+ hardwareConcurrency: e.hardwareConcurrency,
22
+ ip_address: n
23
+ };
24
+ };
25
+ export {
26
+ a as generateDeviceFingerprint
27
+ };
28
+ //# sourceMappingURL=device-fingerprint.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"device-fingerprint.js","sources":["../../../../src/features/fraud-detection/utils/device-fingerprint.ts"],"sourcesContent":["/**\n * Device fingerprinting utility for fraud detection and session tracking.\n * Generates a unique fingerprint based on device and browser characteristics.\n */\n\nimport type { IDeviceFingerprint } from './fraud-detection-types';\n\n/**\n * Create a hash from component values using djb2 hash algorithm.\n */\nconst hashComponents = (components: Record<string, unknown>): string => {\n const str = Object.keys(components)\n .sort()\n .map(key => `${key}:${components[key]}`)\n .join('|');\n\n let hash = 5381;\n\n for (let i = 0; i < str.length; i++) {\n hash = (hash * 33) ^ str.charCodeAt(i);\n }\n\n return Math.abs(hash).toString(36);\n};\n\n/**\n * Generate a device fingerprint based on browser and device characteristics.\n * Only collects properties used for fraud detection.\n */\nexport const generateDeviceFingerprint = (ipAddress: string): IDeviceFingerprint => {\n const components: Record<string, unknown> = {\n screen: `${window.screen.width}x${window.screen.height}`,\n timezone: Intl.DateTimeFormat().resolvedOptions().timeZone,\n platform: navigator.platform,\n userAgent: navigator.userAgent,\n };\n\n if ('deviceMemory' in navigator) {\n components.deviceMemory = (navigator as Navigator & { deviceMemory?: number }).deviceMemory;\n }\n\n if ('hardwareConcurrency' in navigator) {\n components.hardwareConcurrency = navigator.hardwareConcurrency;\n }\n\n const fingerprint = hashComponents(components);\n\n return {\n fingerprint,\n screen: components.screen as string,\n timezone: components.timezone as string,\n platform: components.platform as string,\n userAgent: components.userAgent as string,\n deviceMemory: components.deviceMemory as number | undefined,\n hardwareConcurrency: components.hardwareConcurrency as number | undefined,\n ip_address: ipAddress,\n };\n};\n"],"names":["hashComponents","components","str","key","hash","i","generateDeviceFingerprint","ipAddress"],"mappings":"AAUA,MAAMA,IAAiB,CAACC,MAAgD;AACtE,QAAMC,IAAM,OAAO,KAAKD,CAAU,EAC/B,OACA,IAAI,CAAAE,MAAO,GAAGA,CAAG,IAAIF,EAAWE,CAAG,CAAC,EAAE,EACtC,KAAK,GAAG;AAEX,MAAIC,IAAO;AAEX,WAASC,IAAI,GAAGA,IAAIH,EAAI,QAAQG;AAC9B,IAAAD,IAAQA,IAAO,KAAMF,EAAI,WAAWG,CAAC;AAGvC,SAAO,KAAK,IAAID,CAAI,EAAE,SAAS,EAAE;AACnC,GAMaE,IAA4B,CAACC,MAA0C;AAClF,QAAMN,IAAsC;AAAA,IAC1C,QAAQ,GAAG,OAAO,OAAO,KAAK,IAAI,OAAO,OAAO,MAAM;AAAA,IACtD,UAAU,KAAK,iBAAiB,gBAAkB,EAAA;AAAA,IAClD,UAAU,UAAU;AAAA,IACpB,WAAW,UAAU;AAAA,EAAA;AAGvB,SAAI,kBAAkB,cACpBA,EAAW,eAAgB,UAAoD,eAG7E,yBAAyB,cAC3BA,EAAW,sBAAsB,UAAU,sBAKtC;AAAA,IACL,aAHkBD,EAAeC,CAAU;AAAA,IAI3C,QAAQA,EAAW;AAAA,IACnB,UAAUA,EAAW;AAAA,IACrB,UAAUA,EAAW;AAAA,IACrB,WAAWA,EAAW;AAAA,IACtB,cAAcA,EAAW;AAAA,IACzB,qBAAqBA,EAAW;AAAA,IAChC,YAAYM;AAAA,EAAA;AAEhB;"}
@@ -0,0 +1,38 @@
1
+ const s = (e, r) => {
2
+ const a = e.userAgent.toLowerCase();
3
+ let n = "unknown";
4
+ return a.includes("chrome") && !a.includes("edg") ? n = "chrome" : a.includes("safari") && !a.includes("chrome") ? n = "safari" : a.includes("firefox") ? n = "firefox" : a.includes("edg") && (n = "edge"), {
5
+ ip_address: r,
6
+ screen: e.screen,
7
+ platform: e.platform,
8
+ timezone: e.timezone,
9
+ deviceMemory: e.deviceMemory,
10
+ hardwareConcurrency: e.hardwareConcurrency,
11
+ userAgentBase: n
12
+ };
13
+ }, c = (e, r) => !(e.ip_address !== r.ip_address || e.ip_address === "unknown" || e.screen !== r.screen || e.platform !== r.platform || e.timezone !== r.timezone || e.deviceMemory && r.deviceMemory && e.deviceMemory !== r.deviceMemory || e.hardwareConcurrency && r.hardwareConcurrency && e.hardwareConcurrency !== r.hardwareConcurrency), d = (e, r) => {
14
+ let a = 0;
15
+ const n = {
16
+ ip_address: 30,
17
+ // IP is strong indicator
18
+ screen: 20,
19
+ // Screen resolution is unique
20
+ platform: 15,
21
+ // Platform is important
22
+ timezone: 10,
23
+ // Timezone helps
24
+ deviceMemory: 10,
25
+ // Hardware specs
26
+ hardwareConcurrency: 10,
27
+ // CPU cores
28
+ userAgentBase: 5
29
+ // Browser family (less important)
30
+ };
31
+ return e.ip_address === r.ip_address && e.ip_address !== "unknown" && (a += n.ip_address), e.screen === r.screen && (a += n.screen), e.platform === r.platform && (a += n.platform), e.timezone === r.timezone && (a += n.timezone), e.deviceMemory && r.deviceMemory && e.deviceMemory === r.deviceMemory && (a += n.deviceMemory), e.hardwareConcurrency && r.hardwareConcurrency && e.hardwareConcurrency === r.hardwareConcurrency && (a += n.hardwareConcurrency), e.userAgentBase === r.userAgentBase && (a += n.userAgentBase), a;
32
+ };
33
+ export {
34
+ s as extractHardwareProfile,
35
+ d as getHardwareComparison,
36
+ c as matchesCriticalHardware
37
+ };
38
+ //# sourceMappingURL=hardware-profile-matcher.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hardware-profile-matcher.js","sources":["../../../../src/features/fraud-detection/utils/hardware-profile-matcher.ts"],"sourcesContent":["/**\n * Hardware profile matching utility for detecting same physical device\n * across different browsers, incognito modes, or user profiles.\n *\n * Focuses on hardware characteristics that remain constant on the same device:\n * - IP address\n * - Screen resolution\n * - Platform (OS)\n * - Timezone\n * - Hardware specs (memory, CPU cores)\n * - User agent base (ignore version numbers)\n */\n\nimport type { IDeviceFingerprint, IHardwareProfile } from './fraud-detection-types';\n\n/**\n * Extract hardware profile from device fingerprint\n */\nexport const extractHardwareProfile = (\n fingerprint: IDeviceFingerprint,\n ipAddress: string,\n): IHardwareProfile => {\n // Extract browser name without version\n const userAgent = fingerprint.userAgent.toLowerCase();\n let userAgentBase = 'unknown';\n\n if (userAgent.includes('chrome') && !userAgent.includes('edg')) {\n userAgentBase = 'chrome';\n } else if (userAgent.includes('safari') && !userAgent.includes('chrome')) {\n userAgentBase = 'safari';\n } else if (userAgent.includes('firefox')) {\n userAgentBase = 'firefox';\n } else if (userAgent.includes('edg')) {\n userAgentBase = 'edge';\n }\n\n return {\n ip_address: ipAddress,\n screen: fingerprint.screen,\n platform: fingerprint.platform,\n timezone: fingerprint.timezone,\n deviceMemory: fingerprint.deviceMemory,\n hardwareConcurrency: fingerprint.hardwareConcurrency,\n userAgentBase,\n };\n};\n\n/**\n * Check if profiles match on critical hardware fields\n * These fields must ALL match for same device detection\n */\nexport const matchesCriticalHardware = (\n profile1: IHardwareProfile,\n profile2: IHardwareProfile,\n): boolean => {\n // Must have same IP\n if (profile1.ip_address !== profile2.ip_address || profile1.ip_address === 'unknown') {\n return false;\n }\n\n // Must have same screen resolution\n if (profile1.screen !== profile2.screen) {\n return false;\n }\n\n // Must have same platform\n if (profile1.platform !== profile2.platform) {\n return false;\n }\n\n // Must have same timezone\n if (profile1.timezone !== profile2.timezone) {\n return false;\n }\n\n // If both have hardware specs, they must match\n if (profile1.deviceMemory && profile2.deviceMemory) {\n if (profile1.deviceMemory !== profile2.deviceMemory) {\n return false;\n }\n }\n\n if (profile1.hardwareConcurrency && profile2.hardwareConcurrency) {\n if (profile1.hardwareConcurrency !== profile2.hardwareConcurrency) {\n return false;\n }\n }\n\n return true;\n};\n\n/**\n * Get detailed comparison for logging/debugging\n */\nexport const getHardwareComparison = (\n profile1: IHardwareProfile,\n profile2: IHardwareProfile,\n): number => {\n let score = 0;\n const weights = {\n ip_address: 30, // IP is strong indicator\n screen: 20, // Screen resolution is unique\n platform: 15, // Platform is important\n timezone: 10, // Timezone helps\n deviceMemory: 10, // Hardware specs\n hardwareConcurrency: 10, // CPU cores\n userAgentBase: 5, // Browser family (less important)\n };\n\n // IP address (exact match)\n if (profile1.ip_address === profile2.ip_address && profile1.ip_address !== 'unknown') {\n score += weights.ip_address;\n }\n\n // Screen resolution (exact match)\n if (profile1.screen === profile2.screen) {\n score += weights.screen;\n }\n\n // Platform (exact match)\n if (profile1.platform === profile2.platform) {\n score += weights.platform;\n }\n\n // Timezone (exact match)\n if (profile1.timezone === profile2.timezone) {\n score += weights.timezone;\n }\n\n // Device memory (exact match)\n if (\n profile1.deviceMemory &&\n profile2.deviceMemory &&\n profile1.deviceMemory === profile2.deviceMemory\n ) {\n score += weights.deviceMemory;\n }\n\n // Hardware concurrency (exact match)\n if (\n profile1.hardwareConcurrency &&\n profile2.hardwareConcurrency &&\n profile1.hardwareConcurrency === profile2.hardwareConcurrency\n ) {\n score += weights.hardwareConcurrency;\n }\n\n // User agent base (same browser family)\n if (profile1.userAgentBase === profile2.userAgentBase) {\n score += weights.userAgentBase;\n }\n\n return score;\n};\n"],"names":["extractHardwareProfile","fingerprint","ipAddress","userAgent","userAgentBase","matchesCriticalHardware","profile1","profile2","getHardwareComparison","score","weights"],"mappings":"AAkBa,MAAAA,IAAyB,CACpCC,GACAC,MACqB;AAEf,QAAAC,IAAYF,EAAY,UAAU,YAAY;AACpD,MAAIG,IAAgB;AAEhB,SAAAD,EAAU,SAAS,QAAQ,KAAK,CAACA,EAAU,SAAS,KAAK,IAC3CC,IAAA,WACPD,EAAU,SAAS,QAAQ,KAAK,CAACA,EAAU,SAAS,QAAQ,IACrDC,IAAA,WACPD,EAAU,SAAS,SAAS,IACrBC,IAAA,YACPD,EAAU,SAAS,KAAK,MACjBC,IAAA,SAGX;AAAA,IACL,YAAYF;AAAA,IACZ,QAAQD,EAAY;AAAA,IACpB,UAAUA,EAAY;AAAA,IACtB,UAAUA,EAAY;AAAA,IACtB,cAAcA,EAAY;AAAA,IAC1B,qBAAqBA,EAAY;AAAA,IACjC,eAAAG;AAAA,EAAA;AAEJ,GAMaC,IAA0B,CACrCC,GACAC,MAGI,EAAAD,EAAS,eAAeC,EAAS,cAAcD,EAAS,eAAe,aAKvEA,EAAS,WAAWC,EAAS,UAK7BD,EAAS,aAAaC,EAAS,YAK/BD,EAAS,aAAaC,EAAS,YAK/BD,EAAS,gBAAgBC,EAAS,gBAChCD,EAAS,iBAAiBC,EAAS,gBAKrCD,EAAS,uBAAuBC,EAAS,uBACvCD,EAAS,wBAAwBC,EAAS,sBAWrCC,IAAwB,CACnCF,GACAC,MACW;AACX,MAAIE,IAAQ;AACZ,QAAMC,IAAU;AAAA,IACd,YAAY;AAAA;AAAA,IACZ,QAAQ;AAAA;AAAA,IACR,UAAU;AAAA;AAAA,IACV,UAAU;AAAA;AAAA,IACV,cAAc;AAAA;AAAA,IACd,qBAAqB;AAAA;AAAA,IACrB,eAAe;AAAA;AAAA,EAAA;AAIjB,SAAIJ,EAAS,eAAeC,EAAS,cAAcD,EAAS,eAAe,cACzEG,KAASC,EAAQ,aAIfJ,EAAS,WAAWC,EAAS,WAC/BE,KAASC,EAAQ,SAIfJ,EAAS,aAAaC,EAAS,aACjCE,KAASC,EAAQ,WAIfJ,EAAS,aAAaC,EAAS,aACjCE,KAASC,EAAQ,WAKjBJ,EAAS,gBACTC,EAAS,gBACTD,EAAS,iBAAiBC,EAAS,iBAEnCE,KAASC,EAAQ,eAKjBJ,EAAS,uBACTC,EAAS,uBACTD,EAAS,wBAAwBC,EAAS,wBAE1CE,KAASC,EAAQ,sBAIfJ,EAAS,kBAAkBC,EAAS,kBACtCE,KAASC,EAAQ,gBAGZD;AACT;"}
@@ -0,0 +1,34 @@
1
+ import { useState as g, useMemo as h, useCallback as k, useEffect as D } from "react";
2
+ import { generateDeviceFingerprint as C } from "../../fraud-detection/utils/device-fingerprint.js";
3
+ import { extractHardwareProfile as u, getHardwareComparison as P, matchesCriticalHardware as v } from "../../fraud-detection/utils/hardware-profile-matcher.js";
4
+ const x = (f) => {
5
+ const { enabled: s = !1, deviceFingerprint: e, ipAddress: t } = f, [d, l] = g(!1), r = h(() => C(t || "unknown"), [t]), a = k(async () => {
6
+ if (r)
7
+ try {
8
+ let i = 0;
9
+ const p = 3;
10
+ for (; !e && i < p; )
11
+ await new Promise((F) => setTimeout(F, 500)), i++;
12
+ if (!e)
13
+ return;
14
+ const o = u(r, t || "unknown"), c = u(
15
+ e,
16
+ e.ip_address || "unknown"
17
+ ), m = P(o, c), w = v(o, c);
18
+ let n = !1;
19
+ (w || r.fingerprint === e.fingerprint || t === e.ip_address && t !== "unknown" && m.similarity > 70) && (n = !0), n && l(!0);
20
+ } catch (i) {
21
+ console.error("[FraudDetection] Error during fraud check:", i);
22
+ }
23
+ }, [e, r, t]);
24
+ return D(() => {
25
+ r && e && s && a();
26
+ }, [r, e, a, s]), {
27
+ isFraud: d,
28
+ deviceFingerprint: r
29
+ };
30
+ }, A = x;
31
+ export {
32
+ A as default
33
+ };
34
+ //# sourceMappingURL=use-fraud-detection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-fraud-detection.js","sources":["../../../../src/features/hooks/use-fraud-detection/use-fraud-detection.ts"],"sourcesContent":["import { useCallback, useEffect, useMemo, useState } from 'react';\n\nimport type { IUseFraudDetection } from './use-fraud-detection-types';\nimport { generateDeviceFingerprint } from '../../fraud-detection/utils/device-fingerprint';\nimport {\n extractHardwareProfile,\n getHardwareComparison,\n matchesCriticalHardware,\n} from '../../fraud-detection/utils/hardware-profile-matcher';\n\nconst useFraudDetection: IUseFraudDetection = props => {\n const { enabled = false, deviceFingerprint, ipAddress } = props;\n const [isFraud, setIsFraud] = useState(false);\n const fp = useMemo(() => generateDeviceFingerprint(ipAddress || 'unknown'), [ipAddress]);\n\n const checkFraudDetection = useCallback(async () => {\n if (!fp) {\n return;\n }\n\n try {\n let attempts = 0;\n const maxAttempts = 3;\n\n while (!deviceFingerprint && attempts < maxAttempts) {\n await new Promise(resolve => setTimeout(resolve, 500));\n attempts++;\n }\n\n if (!deviceFingerprint) {\n return;\n }\n\n const studentProfile = extractHardwareProfile(fp, ipAddress || 'unknown');\n const teacherProfile = extractHardwareProfile(\n deviceFingerprint,\n deviceFingerprint.ip_address || 'unknown',\n );\n\n const comparison = getHardwareComparison(studentProfile, teacherProfile);\n const isCriticalMatch = matchesCriticalHardware(studentProfile, teacherProfile);\n\n let fraudDetected = false;\n\n if (isCriticalMatch) {\n fraudDetected = true;\n } else if (fp.fingerprint === deviceFingerprint.fingerprint) {\n fraudDetected = true;\n } else if (ipAddress === deviceFingerprint.ip_address && ipAddress !== 'unknown') {\n if (comparison.similarity > 70) {\n fraudDetected = true;\n }\n }\n\n if (fraudDetected) {\n setIsFraud(true);\n }\n } catch (error) {\n console.error('[FraudDetection] Error during fraud check:', error);\n }\n }, [deviceFingerprint, fp, ipAddress]);\n\n // Automatically run fraud detection when fingerprint and teacher fingerprint are both available\n useEffect(() => {\n if (fp && deviceFingerprint && enabled) {\n checkFraudDetection();\n }\n }, [fp, deviceFingerprint, checkFraudDetection, enabled]);\n\n return {\n isFraud,\n deviceFingerprint: fp,\n };\n};\n\nexport default useFraudDetection;\n"],"names":["useFraudDetection","props","enabled","deviceFingerprint","ipAddress","isFraud","setIsFraud","useState","fp","useMemo","generateDeviceFingerprint","checkFraudDetection","useCallback","attempts","maxAttempts","resolve","studentProfile","extractHardwareProfile","teacherProfile","comparison","getHardwareComparison","isCriticalMatch","matchesCriticalHardware","fraudDetected","error","useEffect","useFraudDetection$1"],"mappings":";;;AAUA,MAAMA,IAAwC,CAASC,MAAA;AACrD,QAAM,EAAE,SAAAC,IAAU,IAAO,mBAAAC,GAAmB,WAAAC,MAAcH,GACpD,CAACI,GAASC,CAAU,IAAIC,EAAS,EAAK,GACtCC,IAAKC,EAAQ,MAAMC,EAA0BN,KAAa,SAAS,GAAG,CAACA,CAAS,CAAC,GAEjFO,IAAsBC,EAAY,YAAY;AAClD,QAAKJ;AAID,UAAA;AACF,YAAIK,IAAW;AACf,cAAMC,IAAc;AAEb,eAAA,CAACX,KAAqBU,IAAWC;AACtC,gBAAM,IAAI,QAAQ,CAAAC,MAAW,WAAWA,GAAS,GAAG,CAAC,GACrDF;AAGF,YAAI,CAACV;AACH;AAGF,cAAMa,IAAiBC,EAAuBT,GAAIJ,KAAa,SAAS,GAClEc,IAAiBD;AAAA,UACrBd;AAAA,UACAA,EAAkB,cAAc;AAAA,QAAA,GAG5BgB,IAAaC,EAAsBJ,GAAgBE,CAAc,GACjEG,IAAkBC,EAAwBN,GAAgBE,CAAc;AAE9E,YAAIK,IAAgB;AAEpB,SAAIF,KAEOb,EAAG,gBAAgBL,EAAkB,eAErCC,MAAcD,EAAkB,cAAcC,MAAc,aACjEe,EAAW,aAAa,QACVI,IAAA,KAIhBA,KACFjB,EAAW,EAAI;AAAA,eAEVkB,GAAO;AACN,gBAAA,MAAM,8CAA8CA,CAAK;AAAA,MACnE;AAAA,EACC,GAAA,CAACrB,GAAmBK,GAAIJ,CAAS,CAAC;AAGrC,SAAAqB,EAAU,MAAM;AACV,IAAAjB,KAAML,KAAqBD,KACTS;KAErB,CAACH,GAAIL,GAAmBQ,GAAqBT,CAAO,CAAC,GAEjD;AAAA,IACL,SAAAG;AAAA,IACA,mBAAmBG;AAAA,EAAA;AAEvB,GAEAkB,IAAe1B;"}
@@ -1,4 +1,4 @@
1
- const _ = {
1
+ const E = {
2
2
  YELLOW_1: "#FFF1CC",
3
3
  YELLOW_2: "#FFDB80",
4
4
  YELLOW_3: "#FFCC4D",
@@ -77,17 +77,20 @@ const _ = {
77
77
  GREEN_20: "rgba(0, 229, 115, 0.2)",
78
78
  PURPLE_20: "rgba(255, 128, 244, 0.20)",
79
79
  RED: "#C22300",
80
+ RED_1: "#FFDBDB",
81
+ RED_2: "#FFB2B2",
80
82
  RED_4: "#FF5B4D",
83
+ RED_6: "#B21E00",
81
84
  // TODO: REMOVE this color
82
85
  FLOWER: "#DE5EE0",
83
86
  TRANSPARENT: "transparent"
84
87
  };
85
- function E() {
86
- return _;
88
+ function _() {
89
+ return E;
87
90
  }
88
91
  const F = ["YELLOW", "ORANGE", "PURPLE", "GREEN", "BLUE"];
89
92
  export {
90
- E as default,
93
+ _ as default,
91
94
  F as hues
92
95
  };
93
96
  //# sourceMappingURL=clrs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"clrs.js","sources":["../../../../src/features/ui/theme/clrs.ts"],"sourcesContent":["import type { TColorNames, TColorsMap } from '../types';\n\nconst LightThemeColors: Record<TColorNames, string> = {\n YELLOW_1: '#FFF1CC',\n YELLOW_2: '#FFDB80',\n YELLOW_3: '#FFCC4D',\n YELLOW_4: '#FFB700',\n YELLOW_5: '#E58600',\n YELLOW_6: '#B25900',\n\n ORANGE_1: '#FFDDCC',\n ORANGE_2: '#FFC2A3',\n ORANGE_3: '#FFAA80',\n ORANGE_4: '#FF884D',\n ORANGE_5: '#EC5B13',\n ORANGE_6: '#B23C00',\n\n PURPLE_1: '#FFE0FD',\n PURPLE_2: '#FFC2FA',\n PURPLE_3: '#FFA3F7',\n PURPLE_4: '#FF80F4',\n PURPLE_5: '#D926CA',\n PURPLE_6: '#AA099C',\n\n GREEN_1: '#D0FBE5',\n GREEN_2: '#89F5BF',\n GREEN_3: '#40F098',\n GREEN_4: '#00E573',\n GREEN_5: '#00B259',\n GREEN_6: '#007038',\n\n BLUE_1: '#D6F5FF',\n BLUE_2: '#99E5FF',\n BLUE_3: '#66D9FF',\n BLUE_4: '#33CCFF',\n BLUE_5: '#0086E5',\n BLUE_6: '#0055CC',\n\n BLACK_1: '#0D0D0D',\n BLACK_2: '#141414',\n BLACK_3: '#191919',\n BLACK_4: '#252525',\n BLACK_5: '#313131',\n\n WHITE_1: '#FFFFFF',\n WHITE_2: '#FAFAFA',\n WHITE_3: '#F5F5F5',\n WHITE_4: '#EBEBEB',\n WHITE_5: '#DADADA',\n\n BLACK_T_02: 'rgba(0, 0, 0, 0.02)',\n BLACK_T_04: 'rgba(0, 0, 0, 0.04)',\n BLACK_T_08: 'rgba(0, 0, 0, 0.08)',\n BLACK_T_15: 'rgba(0, 0, 0, 0.15)',\n BLACK_T_20: 'rgba(0, 0, 0, 0.20)',\n BLACK_T_38: 'rgba(0, 0, 0, 0.38)',\n BLACK_T_60: 'rgba(0, 0, 0, 0.6)',\n BLACK_T_87: 'rgba(0, 0, 0, 0.87)',\n\n WHITE_T_03: 'rgba(255, 255, 255, 0.03)',\n WHITE_T_05: 'rgba(255, 255, 255, 0.05)',\n WHITE_T_10: 'rgba(255, 255, 255, 0.1)',\n WHITE_T_15: 'rgba(255, 255, 255, 0.15)',\n WHITE_T_38: 'rgba(255, 255, 255, 0.38)',\n WHITE_T_60: 'rgba(255, 255, 255, 0.6)',\n WHITE_T_87: 'rgba(255, 255, 255, 0.87)',\n\n GREY_1: '#F6F6F6',\n GREY_2: '#E0E0E0',\n GREY_3: '#B3B3B3',\n GREY_4: '#808080',\n\n REAL_BLACK: '#000000',\n REAL_BLACK_60: 'rgba(0, 0, 0, 0.6)',\n REAL_BLACK_50: 'rgba(0, 0, 0, 0.5)',\n REAL_BLACK_30: 'rgba(0, 0, 0, 0.3)',\n REAL_BLACK_15: 'rgba(0, 0, 0, 0.15)',\n REAL_BLACK_10: 'rgba(0, 0, 0, 0.1)',\n\n BLACK: '#2B2B2B',\n BLACK_65: 'rgba(43, 43, 43, 0.65)',\n BLACK_75: 'rgba(43, 43, 43, 0.75)',\n BLACK_50: 'rgba(43, 43, 43, 0.5)',\n BLACK_10: 'rgba(43, 43, 43, 0.1)',\n\n WHITE: '#FFFFFF',\n WHITE_10: '#D9D9D9',\n WHITE_20: '#E6E6E6',\n WHITE_30: '#F2F2F2',\n WHITE_70: 'rgba(255, 255, 255, 0.7)',\n\n GREEN_20: 'rgba(0, 229, 115, 0.2)',\n\n PURPLE_20: 'rgba(255, 128, 244, 0.20)',\n\n RED: '#C22300',\n RED_4: '#FF5B4D',\n // TODO: REMOVE this color\n FLOWER: '#DE5EE0',\n\n TRANSPARENT: 'transparent',\n} as const;\n\nfunction getColors(): TColorsMap {\n return LightThemeColors;\n}\n\nconst hues = ['YELLOW', 'ORANGE', 'PURPLE', 'GREEN', 'BLUE'] as const;\n\nexport { hues };\n\nexport default getColors;\n"],"names":["LightThemeColors","getColors","hues"],"mappings":"AAEA,MAAMA,IAAgD;AAAA,EACpD,UAAU;AAAA,EACV,UAAU;AAAA,EACV,UAAU;AAAA,EACV,UAAU;AAAA,EACV,UAAU;AAAA,EACV,UAAU;AAAA,EAEV,UAAU;AAAA,EACV,UAAU;AAAA,EACV,UAAU;AAAA,EACV,UAAU;AAAA,EACV,UAAU;AAAA,EACV,UAAU;AAAA,EAEV,UAAU;AAAA,EACV,UAAU;AAAA,EACV,UAAU;AAAA,EACV,UAAU;AAAA,EACV,UAAU;AAAA,EACV,UAAU;AAAA,EAEV,SAAS;AAAA,EACT,SAAS;AAAA,EACT,SAAS;AAAA,EACT,SAAS;AAAA,EACT,SAAS;AAAA,EACT,SAAS;AAAA,EAET,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,QAAQ;AAAA,EAER,SAAS;AAAA,EACT,SAAS;AAAA,EACT,SAAS;AAAA,EACT,SAAS;AAAA,EACT,SAAS;AAAA,EAET,SAAS;AAAA,EACT,SAAS;AAAA,EACT,SAAS;AAAA,EACT,SAAS;AAAA,EACT,SAAS;AAAA,EAET,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,YAAY;AAAA,EAEZ,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,YAAY;AAAA,EAEZ,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,QAAQ;AAAA,EAER,YAAY;AAAA,EACZ,eAAe;AAAA,EACf,eAAe;AAAA,EACf,eAAe;AAAA,EACf,eAAe;AAAA,EACf,eAAe;AAAA,EAEf,OAAO;AAAA,EACP,UAAU;AAAA,EACV,UAAU;AAAA,EACV,UAAU;AAAA,EACV,UAAU;AAAA,EAEV,OAAO;AAAA,EACP,UAAU;AAAA,EACV,UAAU;AAAA,EACV,UAAU;AAAA,EACV,UAAU;AAAA,EAEV,UAAU;AAAA,EAEV,WAAW;AAAA,EAEX,KAAK;AAAA,EACL,OAAO;AAAA;AAAA,EAEP,QAAQ;AAAA,EAER,aAAa;AACf;AAEA,SAASC,IAAwB;AACxB,SAAAD;AACT;AAEA,MAAME,IAAO,CAAC,UAAU,UAAU,UAAU,SAAS,MAAM;"}
1
+ {"version":3,"file":"clrs.js","sources":["../../../../src/features/ui/theme/clrs.ts"],"sourcesContent":["import type { TColorNames, TColorsMap } from '../types';\n\nconst LightThemeColors: Record<TColorNames, string> = {\n YELLOW_1: '#FFF1CC',\n YELLOW_2: '#FFDB80',\n YELLOW_3: '#FFCC4D',\n YELLOW_4: '#FFB700',\n YELLOW_5: '#E58600',\n YELLOW_6: '#B25900',\n\n ORANGE_1: '#FFDDCC',\n ORANGE_2: '#FFC2A3',\n ORANGE_3: '#FFAA80',\n ORANGE_4: '#FF884D',\n ORANGE_5: '#EC5B13',\n ORANGE_6: '#B23C00',\n\n PURPLE_1: '#FFE0FD',\n PURPLE_2: '#FFC2FA',\n PURPLE_3: '#FFA3F7',\n PURPLE_4: '#FF80F4',\n PURPLE_5: '#D926CA',\n PURPLE_6: '#AA099C',\n\n GREEN_1: '#D0FBE5',\n GREEN_2: '#89F5BF',\n GREEN_3: '#40F098',\n GREEN_4: '#00E573',\n GREEN_5: '#00B259',\n GREEN_6: '#007038',\n\n BLUE_1: '#D6F5FF',\n BLUE_2: '#99E5FF',\n BLUE_3: '#66D9FF',\n BLUE_4: '#33CCFF',\n BLUE_5: '#0086E5',\n BLUE_6: '#0055CC',\n\n BLACK_1: '#0D0D0D',\n BLACK_2: '#141414',\n BLACK_3: '#191919',\n BLACK_4: '#252525',\n BLACK_5: '#313131',\n\n WHITE_1: '#FFFFFF',\n WHITE_2: '#FAFAFA',\n WHITE_3: '#F5F5F5',\n WHITE_4: '#EBEBEB',\n WHITE_5: '#DADADA',\n\n BLACK_T_02: 'rgba(0, 0, 0, 0.02)',\n BLACK_T_04: 'rgba(0, 0, 0, 0.04)',\n BLACK_T_08: 'rgba(0, 0, 0, 0.08)',\n BLACK_T_15: 'rgba(0, 0, 0, 0.15)',\n BLACK_T_20: 'rgba(0, 0, 0, 0.20)',\n BLACK_T_38: 'rgba(0, 0, 0, 0.38)',\n BLACK_T_60: 'rgba(0, 0, 0, 0.6)',\n BLACK_T_87: 'rgba(0, 0, 0, 0.87)',\n\n WHITE_T_03: 'rgba(255, 255, 255, 0.03)',\n WHITE_T_05: 'rgba(255, 255, 255, 0.05)',\n WHITE_T_10: 'rgba(255, 255, 255, 0.1)',\n WHITE_T_15: 'rgba(255, 255, 255, 0.15)',\n WHITE_T_38: 'rgba(255, 255, 255, 0.38)',\n WHITE_T_60: 'rgba(255, 255, 255, 0.6)',\n WHITE_T_87: 'rgba(255, 255, 255, 0.87)',\n\n GREY_1: '#F6F6F6',\n GREY_2: '#E0E0E0',\n GREY_3: '#B3B3B3',\n GREY_4: '#808080',\n\n REAL_BLACK: '#000000',\n REAL_BLACK_60: 'rgba(0, 0, 0, 0.6)',\n REAL_BLACK_50: 'rgba(0, 0, 0, 0.5)',\n REAL_BLACK_30: 'rgba(0, 0, 0, 0.3)',\n REAL_BLACK_15: 'rgba(0, 0, 0, 0.15)',\n REAL_BLACK_10: 'rgba(0, 0, 0, 0.1)',\n\n BLACK: '#2B2B2B',\n BLACK_65: 'rgba(43, 43, 43, 0.65)',\n BLACK_75: 'rgba(43, 43, 43, 0.75)',\n BLACK_50: 'rgba(43, 43, 43, 0.5)',\n BLACK_10: 'rgba(43, 43, 43, 0.1)',\n\n WHITE: '#FFFFFF',\n WHITE_10: '#D9D9D9',\n WHITE_20: '#E6E6E6',\n WHITE_30: '#F2F2F2',\n WHITE_70: 'rgba(255, 255, 255, 0.7)',\n\n GREEN_20: 'rgba(0, 229, 115, 0.2)',\n\n PURPLE_20: 'rgba(255, 128, 244, 0.20)',\n\n RED: '#C22300',\n RED_1: '#FFDBDB',\n RED_2: '#FFB2B2',\n RED_4: '#FF5B4D',\n RED_6: '#B21E00',\n // TODO: REMOVE this color\n FLOWER: '#DE5EE0',\n\n TRANSPARENT: 'transparent',\n} as const;\n\nfunction getColors(): TColorsMap {\n return LightThemeColors;\n}\n\nconst hues = ['YELLOW', 'ORANGE', 'PURPLE', 'GREEN', 'BLUE'] as const;\n\nexport { hues };\n\nexport default getColors;\n"],"names":["LightThemeColors","getColors","hues"],"mappings":"AAEA,MAAMA,IAAgD;AAAA,EACpD,UAAU;AAAA,EACV,UAAU;AAAA,EACV,UAAU;AAAA,EACV,UAAU;AAAA,EACV,UAAU;AAAA,EACV,UAAU;AAAA,EAEV,UAAU;AAAA,EACV,UAAU;AAAA,EACV,UAAU;AAAA,EACV,UAAU;AAAA,EACV,UAAU;AAAA,EACV,UAAU;AAAA,EAEV,UAAU;AAAA,EACV,UAAU;AAAA,EACV,UAAU;AAAA,EACV,UAAU;AAAA,EACV,UAAU;AAAA,EACV,UAAU;AAAA,EAEV,SAAS;AAAA,EACT,SAAS;AAAA,EACT,SAAS;AAAA,EACT,SAAS;AAAA,EACT,SAAS;AAAA,EACT,SAAS;AAAA,EAET,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,QAAQ;AAAA,EAER,SAAS;AAAA,EACT,SAAS;AAAA,EACT,SAAS;AAAA,EACT,SAAS;AAAA,EACT,SAAS;AAAA,EAET,SAAS;AAAA,EACT,SAAS;AAAA,EACT,SAAS;AAAA,EACT,SAAS;AAAA,EACT,SAAS;AAAA,EAET,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,YAAY;AAAA,EAEZ,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,YAAY;AAAA,EAEZ,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,QAAQ;AAAA,EAER,YAAY;AAAA,EACZ,eAAe;AAAA,EACf,eAAe;AAAA,EACf,eAAe;AAAA,EACf,eAAe;AAAA,EACf,eAAe;AAAA,EAEf,OAAO;AAAA,EACP,UAAU;AAAA,EACV,UAAU;AAAA,EACV,UAAU;AAAA,EACV,UAAU;AAAA,EAEV,OAAO;AAAA,EACP,UAAU;AAAA,EACV,UAAU;AAAA,EACV,UAAU;AAAA,EACV,UAAU;AAAA,EAEV,UAAU;AAAA,EAEV,WAAW;AAAA,EAEX,KAAK;AAAA,EACL,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA;AAAA,EAEP,QAAQ;AAAA,EAER,aAAa;AACf;AAEA,SAASC,IAAwB;AACxB,SAAAD;AACT;AAEA,MAAME,IAAO,CAAC,UAAU,UAAU,UAAU,SAAS,MAAM;"}
@@ -0,0 +1,18 @@
1
+ const b = (n, t = 1) => {
2
+ if (t < 0 || t > 1)
3
+ throw new Error(`Invalid alpha value: ${t}. Alpha must be between 0 and 1.`);
4
+ const e = n.trim().replace(/^#/, "");
5
+ if (!/^[\da-f]{3}$|^[\da-f]{6}$/i.test(e))
6
+ throw new Error(
7
+ `Invalid hex color format: ${n}. Expected format: #RGB or #RRGGBB (e.g., #F57 or #FF5733)`
8
+ );
9
+ const r = e.length === 3 ? e.split("").map((i) => i + i).join("") : e, o = parseInt(r.slice(0, 2), 16), s = parseInt(r.slice(2, 4), 16), c = parseInt(r.slice(4, 6), 16), a = { r: o, g: s, b: c, a: t };
10
+ return {
11
+ string: `rgba(${o}, ${s}, ${c}, ${t})`,
12
+ object: a
13
+ };
14
+ };
15
+ export {
16
+ b as getRGBAFromHex
17
+ };
18
+ //# sourceMappingURL=get-rgba-from-hex.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-rgba-from-hex.js","sources":["../../../src/features/utils/get-rgba-from-hex.ts"],"sourcesContent":["/**\n * RGBA object representation with red, green, blue, and alpha channels\n */\nexport interface IRgbaObject {\n r: number;\n g: number;\n b: number;\n a: number;\n}\n\n/**\n * Result object containing both string and object representations of RGBA color\n */\nexport interface IRgbaResult {\n string: string;\n object: IRgbaObject;\n}\n\n/**\n * Converts a hex color string to RGBA format in both string and object representations\n *\n * @param color - Hex color string (e.g., '#FF5733' or '#F57')\n * @param alpha - Alpha value between 0 and 1 (default: 1 for fully opaque)\n * @returns Object containing both string ('rgba(255, 87, 51, 1)') and object ({ r: 255, g: 87, b: 51, a: 1 }) formats\n * @throws Error if hex color format is invalid or alpha is out of range\n *\n * @example\n * ```typescript\n * const result = getRGBAFromHex('#FF5733', 0.5);\n * // result.string: 'rgba(255, 87, 51, 0.5)'\n * // result.object: { r: 255, g: 87, b: 51, a: 0.5 }\n * ```\n */\nexport const getRGBAFromHex = (color: string, alpha = 1): IRgbaResult => {\n // Validate alpha range\n if (alpha < 0 || alpha > 1) {\n throw new Error(`Invalid alpha value: ${alpha}. Alpha must be between 0 and 1.`);\n }\n\n // Remove # if present and trim whitespace\n const hex = color.trim().replace(/^#/, '');\n\n // Validate hex format (3 or 6 characters)\n if (!/^[\\da-f]{3}$|^[\\da-f]{6}$/i.test(hex)) {\n throw new Error(\n `Invalid hex color format: ${color}. Expected format: #RGB or #RRGGBB (e.g., #F57 or #FF5733)`,\n );\n }\n\n // Convert 3-char hex to 6-char hex (e.g., F57 -> FF5577)\n const fullHex =\n hex.length === 3\n ? hex\n .split('')\n .map(char => char + char)\n .join('')\n : hex;\n\n // Parse RGB values\n const r = parseInt(fullHex.slice(0, 2), 16);\n const g = parseInt(fullHex.slice(2, 4), 16);\n const b = parseInt(fullHex.slice(4, 6), 16);\n\n // Create RGBA object\n const rgbaObject: IRgbaObject = { r, g, b, a: alpha };\n\n // Create RGBA string\n const rgbaString = `rgba(${r}, ${g}, ${b}, ${alpha})`;\n\n return {\n string: rgbaString,\n object: rgbaObject,\n };\n};\n"],"names":["getRGBAFromHex","color","alpha","hex","fullHex","char","r","g","b","rgbaObject"],"mappings":"AAiCO,MAAMA,IAAiB,CAACC,GAAeC,IAAQ,MAAmB;AAEnE,MAAAA,IAAQ,KAAKA,IAAQ;AACvB,UAAM,IAAI,MAAM,wBAAwBA,CAAK,kCAAkC;AAIjF,QAAMC,IAAMF,EAAM,KAAA,EAAO,QAAQ,MAAM,EAAE;AAGzC,MAAI,CAAC,6BAA6B,KAAKE,CAAG;AACxC,UAAM,IAAI;AAAA,MACR,6BAA6BF,CAAK;AAAA,IAAA;AAKtC,QAAMG,IACJD,EAAI,WAAW,IACXA,EACG,MAAM,EAAE,EACR,IAAI,OAAQE,IAAOA,CAAI,EACvB,KAAK,EAAE,IACVF,GAGAG,IAAI,SAASF,EAAQ,MAAM,GAAG,CAAC,GAAG,EAAE,GACpCG,IAAI,SAASH,EAAQ,MAAM,GAAG,CAAC,GAAG,EAAE,GACpCI,IAAI,SAASJ,EAAQ,MAAM,GAAG,CAAC,GAAG,EAAE,GAGpCK,IAA0B,EAAE,GAAAH,GAAG,GAAAC,GAAG,GAAAC,GAAG,GAAGN;AAKvC,SAAA;AAAA,IACL,QAHiB,QAAQI,CAAC,KAAKC,CAAC,KAAKC,CAAC,KAAKN,CAAK;AAAA,IAIhD,QAAQO;AAAA,EAAA;AAEZ;"}
@@ -1,43 +1,55 @@
1
- import { jsx as a, Fragment as t, jsxs as F } from "react/jsx-runtime";
2
- import { memo as o } from "react";
3
- import { AbsoluteFill as A, AbsolutePattern as i, ChildrenWrapper as d } from "./question-backdrop-styled.js";
4
- import { ILLUSTRATIONS as e } from "../../../../../assets/illustrations/illustrations.js";
5
- const l = {
6
- blue: e.PATTERN_DIAMOND,
7
- yellow: e.PATTERN_CUBES,
8
- purple: e.PATTERN_HONEYCOMB,
9
- orange: e.PATTERN_HONEYCOMB,
10
- green: e.PATTERN_DIAMOND,
11
- white: e.PATTERN_DIAMOND
12
- }, b = {
13
- blue: "linear-gradient(270deg, rgba(153, 229, 255, 0.5) 0%, #99e5ff 25%, #99e5ff 75%, rgba(153, 229, 255, 0.5) 100%)",
14
- yellow: "linear-gradient(270deg, rgba(255, 219, 128, 0.50) 0%, #FFDB80 25%, #FFDB80 75%, rgba(255, 219, 128, 0.50) 100%)",
15
- purple: "linear-gradient(270deg, rgba(255, 194, 250, 0.50) 0%, #FFC2FA 25%, #FFC2FA 75%, rgba(255, 194, 250, 0.50) 100%)",
16
- orange: "linear-gradient(270deg, rgba(255, 194, 250, 0.50) 0%, #FFC2FA 25%, #FFC2FA 75%, rgba(255, 194, 250, 0.50) 100%)",
17
- green: "linear-gradient(270deg, rgba(255, 194, 250, 0.50) 0%, #FFC2FA 25%, #FFC2FA 75%, rgba(255, 194, 250, 0.50) 100%)",
18
- white: "linear-gradient(270deg, rgba(255, 194, 250, 0.50) 0%, #FFC2FA 25%, #FFC2FA 75%, rgba(255, 194, 250, 0.50) 100%)"
19
- }, u = o(
20
- function({ paperColor: r, patternStrokeNumber: n = 1, children: g }) {
21
- return /* @__PURE__ */ a(t, { children: /* @__PURE__ */ F(A, { $backgroundColor: `${r.toUpperCase()}_3`, children: [
22
- /* @__PURE__ */ a(
23
- i,
1
+ import { jsx as l, Fragment as E, jsxs as _ } from "react/jsx-runtime";
2
+ import { memo as A } from "react";
3
+ import { AbsoluteFill as i, AbsolutePattern as T, ChildrenWrapper as g } from "./question-backdrop-styled.js";
4
+ import { ILLUSTRATIONS as o } from "../../../../../assets/illustrations/illustrations.js";
5
+ import { getRGBAFromHex as p } from "../../../../utils/get-rgba-from-hex.js";
6
+ import P from "../../../../ui/theme/clrs.js";
7
+ const c = {
8
+ blue: o.PATTERN_DIAMOND,
9
+ yellow: o.PATTERN_CUBES,
10
+ purple: o.PATTERN_HONEYCOMB,
11
+ orange: o.PATTERN_HONEYCOMB,
12
+ green: o.PATTERN_DIAMOND,
13
+ white: o.PATTERN_DIAMOND
14
+ }, m = {
15
+ blue: "BLUE_2",
16
+ yellow: "YELLOW_2",
17
+ purple: "PURPLE_2",
18
+ orange: "ORANGE_2",
19
+ green: "GREEN_2",
20
+ white: "BLUE_2"
21
+ }, t = (s) => {
22
+ const e = P(), n = m[s], r = e[n], { string: a } = p(r, 0.5);
23
+ return `linear-gradient(270deg, ${a} 0%, ${r} 25%, ${r} 75%, ${a} 100%)`;
24
+ }, u = {
25
+ blue: t("blue"),
26
+ yellow: t("yellow"),
27
+ purple: t("purple"),
28
+ orange: t("orange"),
29
+ green: t("green"),
30
+ white: t("white")
31
+ }, C = A(
32
+ function({ paperColor: e, patternStrokeNumber: n = 1, children: r }) {
33
+ return /* @__PURE__ */ l(E, { children: /* @__PURE__ */ _(i, { $backgroundColor: `${e.toUpperCase()}_3`, children: [
34
+ /* @__PURE__ */ l(
35
+ T,
24
36
  {
25
- $backgroundColor: `${r.toUpperCase()}_${n}`,
26
- $patternImage: l[r]
37
+ $backgroundColor: `${e.toUpperCase()}_${n}`,
38
+ $patternImage: c[e]
27
39
  }
28
40
  ),
29
- g && /* @__PURE__ */ a(
30
- d,
41
+ r && /* @__PURE__ */ l(
42
+ g,
31
43
  {
32
- $borderColor: `${r.toUpperCase()}_1`,
33
- $gradient: b[r],
34
- children: g
44
+ $borderColor: `${e.toUpperCase()}_1`,
45
+ $gradient: u[e],
46
+ children: r
35
47
  }
36
48
  )
37
49
  ] }) });
38
50
  }
39
51
  );
40
52
  export {
41
- u as default
53
+ C as default
42
54
  };
43
55
  //# sourceMappingURL=question-backdrop.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"question-backdrop.js","sources":["../../../../../../src/features/worksheet/worksheet/worksheet-question/question-backdrop/question-backdrop.tsx"],"sourcesContent":["import { memo, type FC, type PropsWithChildren } from 'react';\n\nimport type { TWorksheetQuestionPaperColor } from '../worksheet-question-types';\nimport * as Styled from './question-backdrop-styled';\nimport { ILLUSTRATIONS } from '../../../../../assets/illustrations/illustrations';\nimport { type TColorNames } from '../../../../ui/types';\n\ninterface IQuestionBackdropProps {\n paperColor: TWorksheetQuestionPaperColor;\n patternStrokeNumber?: number;\n}\n\nconst PATTERN_PAPER_MAP: Record<TWorksheetQuestionPaperColor, string> = {\n blue: ILLUSTRATIONS.PATTERN_DIAMOND,\n yellow: ILLUSTRATIONS.PATTERN_CUBES,\n purple: ILLUSTRATIONS.PATTERN_HONEYCOMB,\n orange: ILLUSTRATIONS.PATTERN_HONEYCOMB,\n green: ILLUSTRATIONS.PATTERN_DIAMOND,\n white: ILLUSTRATIONS.PATTERN_DIAMOND,\n};\n\nconst GRADIENT_PAPER_MAP: Record<TWorksheetQuestionPaperColor, string> = {\n blue: `linear-gradient(270deg, rgba(153, 229, 255, 0.5) 0%, #99e5ff 25%, #99e5ff 75%, rgba(153, 229, 255, 0.5) 100%)`,\n yellow: `linear-gradient(270deg, rgba(255, 219, 128, 0.50) 0%, #FFDB80 25%, #FFDB80 75%, rgba(255, 219, 128, 0.50) 100%)`,\n purple: `linear-gradient(270deg, rgba(255, 194, 250, 0.50) 0%, #FFC2FA 25%, #FFC2FA 75%, rgba(255, 194, 250, 0.50) 100%)`,\n orange: `linear-gradient(270deg, rgba(255, 194, 250, 0.50) 0%, #FFC2FA 25%, #FFC2FA 75%, rgba(255, 194, 250, 0.50) 100%)`,\n green: `linear-gradient(270deg, rgba(255, 194, 250, 0.50) 0%, #FFC2FA 25%, #FFC2FA 75%, rgba(255, 194, 250, 0.50) 100%)`,\n white: `linear-gradient(270deg, rgba(255, 194, 250, 0.50) 0%, #FFC2FA 25%, #FFC2FA 75%, rgba(255, 194, 250, 0.50) 100%)`,\n};\n\nconst QuestionBackdrop: FC<PropsWithChildren<IQuestionBackdropProps>> = memo(\n function QuestionBackdrop({ paperColor, patternStrokeNumber = 1, children }) {\n return (\n <>\n <Styled.AbsoluteFill $backgroundColor={`${paperColor.toUpperCase()}_3`}>\n <Styled.AbsolutePattern\n $backgroundColor={`${paperColor.toUpperCase()}_${patternStrokeNumber}` as TColorNames}\n $patternImage={PATTERN_PAPER_MAP[paperColor]}\n />\n {children && (\n <Styled.ChildrenWrapper\n $borderColor={`${paperColor.toUpperCase()}_1` as TColorNames}\n $gradient={GRADIENT_PAPER_MAP[paperColor]}\n >\n {children}\n </Styled.ChildrenWrapper>\n )}\n </Styled.AbsoluteFill>\n </>\n );\n },\n);\n\nexport default QuestionBackdrop;\n"],"names":["PATTERN_PAPER_MAP","ILLUSTRATIONS","GRADIENT_PAPER_MAP","QuestionBackdrop","memo","paperColor","patternStrokeNumber","children","jsx","Fragment","jsxs","Styled.AbsoluteFill","Styled.AbsolutePattern","Styled.ChildrenWrapper"],"mappings":";;;;AAYA,MAAMA,IAAkE;AAAA,EACtE,MAAMC,EAAc;AAAA,EACpB,QAAQA,EAAc;AAAA,EACtB,QAAQA,EAAc;AAAA,EACtB,QAAQA,EAAc;AAAA,EACtB,OAAOA,EAAc;AAAA,EACrB,OAAOA,EAAc;AACvB,GAEMC,IAAmE;AAAA,EACvE,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,OAAO;AACT,GAEMC,IAAkEC;AAAA,EACtE,SAA0B,EAAE,YAAAC,GAAY,qBAAAC,IAAsB,GAAG,UAAAC,KAAY;AAEzE,WAAA,gBAAAC,EAAAC,GAAA,EACE,UAAC,gBAAAC,EAAAC,GAAA,EAAoB,kBAAkB,GAAGN,EAAW,YAAa,CAAA,MAChE,UAAA;AAAA,MAAA,gBAAAG;AAAA,QAACI;AAAAA,QAAA;AAAA,UACC,kBAAkB,GAAGP,EAAW,YAAY,CAAC,IAAIC,CAAmB;AAAA,UACpE,eAAeN,EAAkBK,CAAU;AAAA,QAAA;AAAA,MAC7C;AAAA,MACCE,KACC,gBAAAC;AAAA,QAACK;AAAAA,QAAA;AAAA,UACC,cAAc,GAAGR,EAAW,YAAA,CAAa;AAAA,UACzC,WAAWH,EAAmBG,CAAU;AAAA,UAEvC,UAAAE;AAAA,QAAA;AAAA,MACH;AAAA,IAAA,EAEJ,CAAA,EACF,CAAA;AAAA,EAEJ;AACF;"}
1
+ {"version":3,"file":"question-backdrop.js","sources":["../../../../../../src/features/worksheet/worksheet/worksheet-question/question-backdrop/question-backdrop.tsx"],"sourcesContent":["import { memo, type FC, type PropsWithChildren } from 'react';\n\nimport type { TWorksheetQuestionPaperColor } from '../worksheet-question-types';\nimport * as Styled from './question-backdrop-styled';\nimport { ILLUSTRATIONS } from '../../../../../assets/illustrations/illustrations';\nimport { type TColorNames } from '../../../../ui/types';\nimport { getRGBAFromHex } from '../../../../utils/get-rgba-from-hex';\nimport getColors from '../../../../ui/theme/clrs';\n\ninterface IQuestionBackdropProps {\n paperColor: TWorksheetQuestionPaperColor;\n patternStrokeNumber?: number;\n}\n\nconst PATTERN_PAPER_MAP: Record<TWorksheetQuestionPaperColor, string> = {\n blue: ILLUSTRATIONS.PATTERN_DIAMOND,\n yellow: ILLUSTRATIONS.PATTERN_CUBES,\n purple: ILLUSTRATIONS.PATTERN_HONEYCOMB,\n orange: ILLUSTRATIONS.PATTERN_HONEYCOMB,\n green: ILLUSTRATIONS.PATTERN_DIAMOND,\n white: ILLUSTRATIONS.PATTERN_DIAMOND,\n};\n\n/**\n * Maps paper color to corresponding theme color name\n */\nconst PAPER_COLOR_TO_THEME_MAP: Record<TWorksheetQuestionPaperColor, TColorNames> = {\n blue: 'BLUE_2',\n yellow: 'YELLOW_2',\n purple: 'PURPLE_2',\n orange: 'ORANGE_2',\n green: 'GREEN_2',\n white: 'BLUE_2',\n};\n\n/**\n * Creates a gradient string using theme colors and getRGBAFromHex utility\n */\nconst createGradient = (paperColor: TWorksheetQuestionPaperColor): string => {\n const colors = getColors();\n const colorName = PAPER_COLOR_TO_THEME_MAP[paperColor];\n const hexColor = colors[colorName];\n\n const { string: rgbaTransparent } = getRGBAFromHex(hexColor, 0.5);\n\n return `linear-gradient(270deg, ${rgbaTransparent} 0%, ${hexColor} 25%, ${hexColor} 75%, ${rgbaTransparent} 100%)`;\n};\n\nconst GRADIENT_PAPER_MAP: Record<TWorksheetQuestionPaperColor, string> = {\n blue: createGradient('blue'),\n yellow: createGradient('yellow'),\n purple: createGradient('purple'),\n orange: createGradient('orange'),\n green: createGradient('green'),\n white: createGradient('white'),\n};\n\nconst QuestionBackdrop: FC<PropsWithChildren<IQuestionBackdropProps>> = memo(\n function QuestionBackdrop({ paperColor, patternStrokeNumber = 1, children }) {\n return (\n <>\n <Styled.AbsoluteFill $backgroundColor={`${paperColor.toUpperCase()}_3`}>\n <Styled.AbsolutePattern\n $backgroundColor={`${paperColor.toUpperCase()}_${patternStrokeNumber}` as TColorNames}\n $patternImage={PATTERN_PAPER_MAP[paperColor]}\n />\n {children && (\n <Styled.ChildrenWrapper\n $borderColor={`${paperColor.toUpperCase()}_1` as TColorNames}\n $gradient={GRADIENT_PAPER_MAP[paperColor]}\n >\n {children}\n </Styled.ChildrenWrapper>\n )}\n </Styled.AbsoluteFill>\n </>\n );\n },\n);\n\nexport default QuestionBackdrop;\n"],"names":["PATTERN_PAPER_MAP","ILLUSTRATIONS","PAPER_COLOR_TO_THEME_MAP","createGradient","paperColor","colors","getColors","colorName","hexColor","rgbaTransparent","getRGBAFromHex","GRADIENT_PAPER_MAP","QuestionBackdrop","memo","patternStrokeNumber","children","jsx","Fragment","jsxs","Styled.AbsoluteFill","Styled.AbsolutePattern","Styled.ChildrenWrapper"],"mappings":";;;;;;AAcA,MAAMA,IAAkE;AAAA,EACtE,MAAMC,EAAc;AAAA,EACpB,QAAQA,EAAc;AAAA,EACtB,QAAQA,EAAc;AAAA,EACtB,QAAQA,EAAc;AAAA,EACtB,OAAOA,EAAc;AAAA,EACrB,OAAOA,EAAc;AACvB,GAKMC,IAA8E;AAAA,EAClF,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,OAAO;AACT,GAKMC,IAAiB,CAACC,MAAqD;AAC3E,QAAMC,IAASC,KACTC,IAAYL,EAAyBE,CAAU,GAC/CI,IAAWH,EAAOE,CAAS,GAE3B,EAAE,QAAQE,EAAA,IAAoBC,EAAeF,GAAU,GAAG;AAEhE,SAAO,2BAA2BC,CAAe,QAAQD,CAAQ,SAASA,CAAQ,SAASC,CAAe;AAC5G,GAEME,IAAmE;AAAA,EACvE,MAAMR,EAAe,MAAM;AAAA,EAC3B,QAAQA,EAAe,QAAQ;AAAA,EAC/B,QAAQA,EAAe,QAAQ;AAAA,EAC/B,QAAQA,EAAe,QAAQ;AAAA,EAC/B,OAAOA,EAAe,OAAO;AAAA,EAC7B,OAAOA,EAAe,OAAO;AAC/B,GAEMS,IAAkEC;AAAA,EACtE,SAA0B,EAAE,YAAAT,GAAY,qBAAAU,IAAsB,GAAG,UAAAC,KAAY;AAEzE,WAAA,gBAAAC,EAAAC,GAAA,EACE,UAAC,gBAAAC,EAAAC,GAAA,EAAoB,kBAAkB,GAAGf,EAAW,YAAa,CAAA,MAChE,UAAA;AAAA,MAAA,gBAAAY;AAAA,QAACI;AAAAA,QAAA;AAAA,UACC,kBAAkB,GAAGhB,EAAW,YAAY,CAAC,IAAIU,CAAmB;AAAA,UACpE,eAAed,EAAkBI,CAAU;AAAA,QAAA;AAAA,MAC7C;AAAA,MACCW,KACC,gBAAAC;AAAA,QAACK;AAAAA,QAAA;AAAA,UACC,cAAc,GAAGjB,EAAW,YAAA,CAAa;AAAA,UACzC,WAAWO,EAAmBP,CAAU;AAAA,UAEvC,UAAAW;AAAA,QAAA;AAAA,MACH;AAAA,IAAA,EAEJ,CAAA,EACF,CAAA;AAAA,EAEJ;AACF;"}