@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.
- package/dist/assets/illustrations/illustrations.js +1 -0
- package/dist/assets/illustrations/illustrations.js.map +1 -1
- package/dist/features/fraud-detection/fraud-alert-modal/fraud-alert-modal.js +78 -0
- package/dist/features/fraud-detection/fraud-alert-modal/fraud-alert-modal.js.map +1 -0
- package/dist/features/fraud-detection/utils/device-fingerprint.js +28 -0
- package/dist/features/fraud-detection/utils/device-fingerprint.js.map +1 -0
- package/dist/features/fraud-detection/utils/hardware-profile-matcher.js +38 -0
- package/dist/features/fraud-detection/utils/hardware-profile-matcher.js.map +1 -0
- package/dist/features/hooks/use-fraud-detection/use-fraud-detection.js +34 -0
- package/dist/features/hooks/use-fraud-detection/use-fraud-detection.js.map +1 -0
- package/dist/features/ui/theme/clrs.js +7 -4
- package/dist/features/ui/theme/clrs.js.map +1 -1
- package/dist/features/utils/get-rgba-from-hex.js +18 -0
- package/dist/features/utils/get-rgba-from-hex.js.map +1 -0
- package/dist/features/worksheet/worksheet/worksheet-question/question-backdrop/question-backdrop.js +43 -31
- package/dist/features/worksheet/worksheet/worksheet-question/question-backdrop/question-backdrop.js.map +1 -1
- package/dist/index.d.ts +68 -1
- package/dist/index.js +597 -591
- package/dist/index.js.map +1 -1
- package/dist/static/alert-bulb.10cc6154.svg +1 -0
- package/package.json +1 -1
|
@@ -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":"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"}
|
|
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":"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,YAAY,GAAGA,CAAM;AAAA,EACrB,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;"}
|
|
@@ -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
|
|
86
|
-
return
|
|
88
|
+
function _() {
|
|
89
|
+
return E;
|
|
87
90
|
}
|
|
88
91
|
const F = ["YELLOW", "ORANGE", "PURPLE", "GREEN", "BLUE"];
|
|
89
92
|
export {
|
|
90
|
-
|
|
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;"}
|
package/dist/features/worksheet/worksheet/worksheet-question/question-backdrop/question-backdrop.js
CHANGED
|
@@ -1,43 +1,55 @@
|
|
|
1
|
-
import { jsx as
|
|
2
|
-
import { memo as
|
|
3
|
-
import { AbsoluteFill as
|
|
4
|
-
import { ILLUSTRATIONS as
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
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: `${
|
|
26
|
-
$patternImage:
|
|
37
|
+
$backgroundColor: `${e.toUpperCase()}_${n}`,
|
|
38
|
+
$patternImage: c[e]
|
|
27
39
|
}
|
|
28
40
|
),
|
|
29
|
-
|
|
30
|
-
|
|
41
|
+
r && /* @__PURE__ */ l(
|
|
42
|
+
g,
|
|
31
43
|
{
|
|
32
|
-
$borderColor: `${
|
|
33
|
-
$gradient:
|
|
34
|
-
children:
|
|
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
|
-
|
|
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
|
|
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;"}
|