{"version":3,"file":"js/scripts_react_shared_components_Picture_index_js-scripts_react_shared_containers_ReactApp_ind-7b2f2f.js?_t=de1a328c4828581c43c6","mappings":";;;;;;;;;;;;;AAAA;AAAA;AACA;AAEA;AAEA;;;;;;;;;;;;;;;;;;ACLA;AACA;AAEA;AACA;AAAA;AACA;AAGA;AAKA;AACA;AAAA;AAEA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AAAA;AAEA;AAEA;;;;;;;;;;;;;;;;ACvBA;;;;;;;;;;;;;;;;;;;ACAA;AACA;AACA;AAEA;AACA;AAGA;AAAA;AAAA;AACA;AAAA;AAEA;AAKA;AAEA;;;;;;;;;;;;;;;;AClBA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACAA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AAAA;AACA;AACA;AACA;AACA;AAGA;AACA;AAEA;AAAA;AAGA;AAEA;AAEA;AAAA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AAEA;AACA;AAAA;AACA;AAGA;AAAA;AACA;AACA;AACA;AAGA;AACA;AACA;AAAA;AACA;AAKA;AAAA;AACA;AACA;AAAA;AACA;AACA;AACA;AAEA;AAAA;AACA;AAEA;AAAA;AACA;AAKA;AACA;AAKA;AACA;AACA;AAEA;AACA;AAEA;AAAA;AACA;AACA;AACA;AAEA;AAEA;;;;;;;;;;;;;;;;;;;;;;;ACnGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AAGA;AAEA;AAAA;AACA;AACA;AACA;AACA;AAGA;AAEA;AAkBA;AAGA;AAEA;;;;;;;;;;;;;;;;ACjDA;;;;;;;;;;;;;;;;;;;;;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AAEA;AAAA;AACA;AACA;AAGA;AAAA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AAEA;AACA;AACA;AACA;AAAA;AAGA;AACA;AAAA;AAGA;AACA;AACA;AAAA;AACA;AAGA;AAEA;AAIA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAIA;AAIA;AACA;AAEA;AAAA;AAAA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AAIA;AAGA;AAEA;;;;;;;;;;;;;;;;ACpGA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAAA;AAEA;AAAA;AAGA;AACA;AAEA;AACA;AACA;AAAA;AACA;AAGA;AACA;;;;;;;;;;;;;;;;;;;;;;ACzBA;AACA;AAeA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AAAA;AAGA;AAEA;AACA;AACA;AACA;AAAA;AAGA;AAAA;AAGA;AACA;AACA;AAAA;AAEA;AACA;AAAA;AAGA;AAGA;AACA;AACA;AAAA;AAIA;AACA;AAGA;AAGA;AAEA;AACA;AACA;AACA;AAEA;AAAA;AACA;AACA;AACA;AAIA;AACA;AAEA;AACA;AAAA;AAGA;AAGA;AACA;AAAA;AACA;AAEA;AAAA;AAEA;AAAA;AAIA;AACA;AACA;AACA;AAAA;AACA;AACA;AAGA;AAAA;AACA;AAEA;AAEA;;;;;;;;;;;;;;;;;;;ACnHA;AACA;AACA;AACA;AAEA;AAAA;AAEA;AAEA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AAEA;;;;;;;;;;;;;;;AC9BA;AAAA;AAEA;;;;;;;;;;;;;;;;;;;;;ACFA;AAEA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AAEA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AAAA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AAAA;AACA;AAEA;AAEA;AAAA;AACA;AAEA;AAEA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AAAA;AACA;AAEA;AAEA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA","sources":["webpack://@mlssoccer/netcore/./scripts/react/shared/api/geoLocationEndpoints.js","webpack://@mlssoccer/netcore/./scripts/react/shared/components/Image/Image.js","webpack://@mlssoccer/netcore/./scripts/react/shared/components/Image/index.js","webpack://@mlssoccer/netcore/./scripts/react/shared/components/Picture/Picture.js","webpack://@mlssoccer/netcore/./scripts/react/shared/components/Picture/index.js","webpack://@mlssoccer/netcore/./scripts/react/shared/containers/ReactApp/MatchHandler.js","webpack://@mlssoccer/netcore/./scripts/react/shared/containers/ReactApp/ReactApp.js","webpack://@mlssoccer/netcore/./scripts/react/shared/containers/ReactApp/index.js","webpack://@mlssoccer/netcore/./scripts/react/shared/containers/ReactDataLayer/ReactDataLayer.js","webpack://@mlssoccer/netcore/./scripts/react/shared/hooks/useMedia.js","webpack://@mlssoccer/netcore/./scripts/react/shared/hooks/useScheduledMatchRefetch.js","webpack://@mlssoccer/netcore/./scripts/react/shared/i18n.js","webpack://@mlssoccer/netcore/./scripts/react/shared/styled/StyledMixins.js","webpack://@mlssoccer/netcore/./scripts/react/shared/styled/Theme.js"],"sourcesContent":["const geoLocationEndpoints = {\r\n baseUrl: 'https://mlssoccer.com',\r\n geolocation: '/api/v1/geolocation',\r\n};\r\n\r\nexport default geoLocationEndpoints;","import React from 'react';\nimport { useImage } from 'react-image';\n\nfunction Image({ src, title, extraClasses, ...otherProps }) {\n const { src: composedSrc, error } = useImage({\n srcList: src,\n });\n\n const renderEmptyAltAttr = (\n otherProps.hasOwnProperty(\"role\") &&\n otherProps.role === \"presentation\"\n );\n \n if (error) {\n throw new Error(`image error: ${error}`);\n }\n return {renderEmptyAltAttr;\n}\n\nexport default Image;\n","export { default } from './Image';\n","import React, { Suspense } from 'react';\nimport Image from \"../Image\";\nimport { ErrorBoundary } from \"react-error-boundary\";\n\nconst Picture = ({ src, title, extraClasses, fallbackSrc = \"/assets/images/Fallbacklogo-grey.png\", loadingSrc = \"/assets/images/Fallbacklogo-grey.png\", ...otherProps }) => {\n return (\n \n }>\n }\n >\n {src ? : null}\n \n \n \n );\n};\n\nexport default Picture;\n","export { default } from './Picture';\n","import { useMemo, useEffect } from 'react';\nimport { useQuery } from 'react-query';\nimport { parse, format, subDays, addDays, parseISO } from 'date-fns';\nimport useScheduledMatchRefetch from '../../hooks/useScheduledMatchRefetch';\n\nimport { useReactAppState } from '../utils';\nimport { mlsGetMatches } from '../../api/variables';\nimport { fetchClient } from '../../api/fetching';\nimport { formatStatsAPIMatches } from '../../../mls-horizontal-scoreboard/utils';\nimport { filterMlsMatchesByCompetitionsToSkip } from '../../../mls-match-list/utils';\nimport useMLSMatch from '../../../mls-match-list/hooks/useMLSMatch';\n\nfunction MatchHandler({ children, queryClient }) {\n const { apiList } = useReactAppState();\n\n const { forgeMatchDate, matchSportecId, seasonSportecId } = useMemo(() => {\n return {\n forgeMatchDate: window?.forgeVariables?.match?.matchDateTime,\n matchSportecId: window?.forgeVariables?.match?.sportecId,\n seasonSportecId: window?.forgeVariables?.match?.season\n }\n }, []);\n\n const { from, to } = useMemo(() => {\n const { dayBefore: from, dayAfter: to } = parseDateWithBeforeAndAfter(forgeMatchDate);\n\n return { from, to }\n }, [forgeMatchDate]);\n\n const { data: mlsMatch, isError: mlsMatchError } = useMLSMatch({ matchSportecId });\n\n const mlsMatchesEndpoint = mlsGetMatches({ from, to, seasonSportecId });\n\n const { data: mlsMatchByDate } = useQuery({\n queryKey: [\"mls-matches-date-range\", { from, to }],\n queryFn: () => fetchClient({ endpoint: mlsMatchesEndpoint, apiURL: apiList?.statsAPI }),\n refetchOnWindowFocus: false,\n select: response => {\n if (response?.schedule) {\n const sortedMatches = [...response?.schedule?.sort((a, b) => parseISO(a.planned_kickoff_time) - parseISO(b.planned_kickoff_time))];\n const matches = formatStatsAPIMatches(filterMlsMatchesByCompetitionsToSkip(sortedMatches));\n\n const match = matches.find(match => match.match_id === matchSportecId);\n\n if (match) {\n return match;\n }\n }\n\n return [];\n },\n enabled: !!from && !!to && mlsMatchError,\n staleTime: Infinity\n });\n\n useEffect(() => {\n if (mlsMatchError && mlsMatchByDate) {\n queryClient.setQueryData([\"mls-match\", matchSportecId], mlsMatchByDate)\n }\n }, [mlsMatchByDate, matchSportecId, mlsMatchError])\n\n // Use our custom hook to schedule refetches based on match date\n // Only enabled when we have an error with the primary match data source\n useScheduledMatchRefetch({\n matchDate: mlsMatchByDate?.planned_kickoff_time,\n minutesBefore: 60, // 1 hour before match\n queryKey: [\"mls-match\", matchSportecId],\n queryClient,\n enabled: !!mlsMatchError && !!mlsMatchByDate?.planned_kickoff_time,\n onSchedule: ({ scheduledRefetchTime }) => {\n console.log(`MatchHandler scheduled refetch for match ${matchSportecId} at ${scheduledRefetchTime.toLocaleString()}`);\n },\n onRefetch: () => {\n console.log(`MatchHandler executing refetch for match ${matchSportecId}`);\n }\n });\n\n\n\n return mlsMatchByDate || mlsMatch ? children : null;\n}\n\n\n\n\nconst parseDateWithBeforeAndAfter = (dateTimeString) => {\n const [dateString] = dateTimeString.split(' ');\n const parsedDate = parse(dateString, 'MM/dd/yyyy', new Date());\n\n const dayBefore = subDays(parsedDate, 1);\n const dayAfter = addDays(parsedDate, 1);\n\n return {\n originalDate: format(parsedDate, 'yyyy-MM-dd'),\n dayBefore: format(dayBefore, 'yyyy-MM-dd'),\n dayAfter: format(dayAfter, 'yyyy-MM-dd')\n };\n};\n\nexport default MatchHandler;","import { QueryClientProvider } from \"react-query\";\nimport React from \"react\";\nimport { ReactQueryDevtools } from \"react-query/devtools\";\nimport { mediaQueries } from \"../../../../libraries/_helpers\";\nimport ReactDataLayer from \"../ReactDataLayer/ReactDataLayer\";\nimport { useMedia } from \"../../hooks/useMedia\";\nimport { composeForgeVariables } from \"../../api/variables\";\nimport MatchHandler from \"./MatchHandler\";\n\nfunction ReactApp({ children, queryClient, queryParams }) {\n const { enableQueryTools } = queryParams || {};\n\n const forgeVariables = composeForgeVariables() || {};\n\n //MediaQueries\n const { screenMediumLargeMin, screenMediumMin, screenXLargeMin, screenLargeMin } = mediaQueries;\n\n const mediaQueriesSizes = {\n isXLargeMin: useMedia(screenXLargeMin),\n isMediumLargeMin: useMedia(screenMediumLargeMin),\n isMediumMin: useMedia(screenMediumMin),\n isLargeMin: useMedia(screenLargeMin)\n };\n\n const hasMatchSportecId = !!window?.forgeVariables?.match?.sportecId;\n\n return (\n \n \n {hasMatchSportecId ? (\n \n {children}\n \n ) : (\n children\n )}\n \n {\n enableQueryTools?.[0] === \"true\"\n ? \n : null\n }\n \n );\n}\n\n// eslint-disable-next-line no-func-assign\nReactApp = React.memo(ReactApp);\n\nexport default ReactApp;\n","export { default } from \"./ReactApp\";\n","import React, { useEffect, useState } from \"react\";\nimport { useQuery } from \"react-query\";\nimport { useTranslation } from \"react-i18next\";\nimport { ReactAppState } from \"../utils\";\nimport '../../../shared/i18n';\nimport { modalActionTypes, modalTypes, useModalOptions } from \"../../hooks/useModalOptions\";\nimport MatchModal from \"../../../mls-match-list/components/MatchModal/MatchModal\";\nimport { composeMatchStatus } from \"../../../mls-match-list/utils\";\nimport { queryStatusTypes, roleTypes } from \"../../utils\";\nimport { fetchClient } from \"../../api/fetching\";\nimport geoLocationEndpoints from \"../../api/geoLocationEndpoints\";\n\nfunction ReactDataLayer({ forgeVariables, children, mediaQueries, queryParams, queryClient }) {\n const { t, ready } = useTranslation();\n\n const { period } = queryParams || {};\n const matchStatusOverride = period?.[0] ? composeMatchStatus({ period: period?.[0] }) : null;\n\n const { status: locationStatus, data: location } = useQuery({\n queryKey: [`geolocation`],\n queryFn: () => fetchClient({ apiURL: geoLocationEndpoints.baseUrl, endpoint: geoLocationEndpoints.geolocation }),\n });\n\n const { state, Component, Modal, updateModalOptions } = useModalOptions({\n initialState: {\n label: \"match modal\",\n component: MatchModal,\n modalType: modalTypes.animated\n }\n });\n\n const [isRecentGoal, setIsRecentGoal] = useState(false);\n const [roleType, setRoleType] = useState(roleTypes.clubs);\n\n useEffect(() => {\n if (roleType === roleTypes.clubs) {\n document.querySelectorAll(\"section[data-toggle=players]\").forEach(item => item.style.display = \"none\");\n document.querySelectorAll(\"section[data-toggle=clubs]\").forEach(item => item.style.display = \"block\");\n }\n else {\n document.querySelectorAll(\"section[data-toggle=clubs]\").forEach(item => item.style.display = \"none\");\n document.querySelectorAll(\"section[data-toggle=players]\").forEach(item => item.style.display = \"block\");\n }\n\n return () => {\n document.querySelectorAll(\"section[data-toggle=players]\").forEach(item => item.style.display = \"block\");\n document.querySelectorAll(\"section[data-toggle=clubs]\").forEach(item => item.style.display = \"block\");\n };\n }, [roleType]);\n\n const { show, modalData, label, modalClassName } = state || {};\n\n return (\n locationStatus === queryStatusTypes.loading || !ready\n ? null\n : (\n \n {\n React.Children.map(children, child => {\n return !child\n ? null\n : typeof child.type === 'string'\n ? child\n : React.cloneElement(child);\n })\n }\n updateModalOptions({ type: modalActionTypes.show, payload: false })}>\n updateModalOptions({ type: modalActionTypes.show, payload: false })} />\n \n \n )\n );\n}\n\n// eslint-disable-next-line no-func-assign\nReactDataLayer = React.memo(ReactDataLayer);\n\nexport default ReactDataLayer;\n","import React, { useState } from 'react';\n\nexport function useMedia(query, initialState = false) {\n const [state, setState] = useState(initialState);\n\n React.useLayoutEffect(() => {\n let mounted = true;\n const mql = window.matchMedia(query);\n function onChange() {\n if (!mounted) {\n return;\n }\n setState(Boolean(mql.matches));\n }\n\n mql.addListener(onChange);\n setState(mql.matches);\n\n return () => {\n mounted = false;\n mql.removeListener(onChange);\n };\n }, [query]);\n\n return state;\n}\n","import { useEffect, useRef } from 'react';\nimport { parseISO, isValid, subMinutes, differenceInMilliseconds, formatISO, differenceInMinutes } from 'date-fns';\n\n/**\n * Hook to schedule a query refetch at a specific time before a match date\n * \n * @param {Object} options - Configuration options\n * @param {Date|string} options.matchDate - The match date (ISO string or Date object)\n * @param {number} options.minutesBefore - Minutes before match to schedule refetch (default: 60)\n * @param {Array} options.queryKey - The React Query key to invalidate\n * @param {Object} options.queryClient - The React Query client instance to use\n * @param {boolean} options.enabled - Whether the scheduling is enabled\n * @param {Function} options.onSchedule - Optional callback when a refetch is scheduled\n * @param {Function} options.onRefetch - Optional callback when the refetch occurs\n * @returns {{ scheduledTime: Date|null }} The scheduled refetch time if any\n */\nconst useScheduledMatchRefetch = ({\n matchDate,\n minutesBefore = 60,\n queryKey,\n queryClient,\n enabled = true,\n onSchedule,\n onRefetch\n}) => {\n const refetchTimeoutRef = useRef(null);\n const scheduledTimeRef = useRef(null);\n\n if (!queryClient && enabled) {\n console.warn('useScheduledMatchRefetch: queryClient is required when enabled is true');\n return { scheduledTime: null };\n }\n\n useEffect(() => {\n // Clear any existing timeout when dependencies change\n if (refetchTimeoutRef.current) {\n clearTimeout(refetchTimeoutRef.current);\n refetchTimeoutRef.current = null;\n scheduledTimeRef.current = null;\n }\n\n if (!enabled || !matchDate) return;\n\n // Parse the match date if it's a string\n let matchTime;\n try {\n matchTime = matchDate instanceof Date ? matchDate : parseISO(matchDate);\n } catch (error) {\n console.error('Error parsing match date:', error);\n return;\n }\n\n const now = new Date();\n\n // Validate the match time\n if (!isValid(matchTime)) {\n console.warn('Invalid match date provided to useScheduledMatchRefetch:', matchDate);\n return;\n }\n\n // Calculate the scheduled refetch time\n const scheduledRefetchTime = subMinutes(matchTime, minutesBefore);\n scheduledTimeRef.current = scheduledRefetchTime;\n\n // Only schedule if the refetch time is in the future\n const timeUntilRefetch = differenceInMilliseconds(scheduledRefetchTime, now);\n\n // Only refetch if the time until the match is less than an hour (3,600,000 ms)\n const ONE_HOUR_MS = 3600000;\n\n if (timeUntilRefetch > 0 && timeUntilRefetch <= ONE_HOUR_MS) {\n console.log(`Match time: ${formatISO(matchTime)}`);\n console.log(`Scheduling refetch for: ${formatISO(scheduledRefetchTime)}, in ${differenceInMinutes(scheduledRefetchTime, now)} minutes`);\n console.log(`Time until refetch: ${timeUntilRefetch}ms (${timeUntilRefetch / 60000} minutes)`);\n\n onSchedule?.({\n matchTime,\n scheduledRefetchTime,\n timeUntilRefetch\n });\n\n // Set the timeout\n refetchTimeoutRef.current = setTimeout(() => {\n console.log('Executing scheduled refetch');\n\n if (queryKey) {\n queryClient.invalidateQueries(queryKey);\n }\n\n onRefetch?.();\n\n // Clean up\n scheduledTimeRef.current = null;\n refetchTimeoutRef.current = null;\n }, timeUntilRefetch);\n } else if (timeUntilRefetch > ONE_HOUR_MS) {\n console.log(`Match is more than an hour away (${timeUntilRefetch / 60000} minutes), not scheduling refetch yet`);\n } else {\n console.log(`Scheduled refetch time (${formatISO(scheduledRefetchTime)}) is in the past, not scheduling`);\n }\n\n // Cleanup function\n return () => {\n if (refetchTimeoutRef.current) {\n clearTimeout(refetchTimeoutRef.current);\n refetchTimeoutRef.current = null;\n }\n };\n }, [matchDate, minutesBefore, queryKey, enabled, queryClient, onSchedule, onRefetch]);\n\n return {\n scheduledTime: scheduledTimeRef.current\n };\n};\n\nexport default useScheduledMatchRefetch;\n","import i18n from \"i18next\";\nimport detector from \"i18next-browser-languagedetector\";\nimport backend from \"i18next-http-backend\";\nimport { initReactI18next } from \"react-i18next\";\n\nconst backendOptions = {\n loadPath: location.origin + '/vocabs/{{lng}}'\n};\n\ni18n\n .use(detector)\n .use(backend)\n .use(initReactI18next)\n .init({\n react: {\n useSuspense: false,\n wait: false,\n },\n initImmediate: false,\n lng: window?.forgeVariables?.currentSite?.culture ? window.forgeVariables?.currentSite.culture : \"en-US\",\n fallbackLng: \"en-US\",\n interpolation: {\n escapeValue: false\n },\n debug: true,\n backend: backendOptions,\n keySeparator: true,\n\n });\n\nexport default i18n;\n","export const mixins = {\n pxToRem: (px) => `${px / 16}rem;`\n };","import { mixins } from \"./StyledMixins\";\n\nexport const query = {\n xxs: {\n minWidth: 0,\n maxWidth: 319,\n },\n xs: {\n minWidth: 320,\n maxWidth: 374,\n },\n sm: {\n minWidth: 375,\n maxWidth: 767,\n },\n md: {\n minWidth: 768,\n maxWidth: 1079,\n },\n lg: {\n minWidth: 1080,\n maxWidth: 1439,\n },\n xl: {\n minWidth: 1440,\n maxWidth: 1647,\n },\n xxl: {\n minWidth: 1648,\n maxWidth: 1799,\n },\n xxxl: {\n minWidth: 1800,\n },\n};\n\nexport const isMobile = [\"xxs\", \"xs\", \"sm\"];\n\nconst figmaBase = {\n base: {\n color_freshred_100: \"rgba(219,49,49,1)\",\n color_black_25: \"rgba(0,0,0,0.25)\",\n color_black_50: \"rgba(0,0,0,0.5)\",\n color_black_60: \"rgba(0,0,0,0.60)\",\n color_black_65: \"rgba(0,0,0,0.65)\",\n color_black_100: \"rgba(0,0,0,1)\",\n color_offblack_10: \"rgba(31,32,33,0.1)\",\n color_offblack_25: \"rgba(31,32,33,0.25)\",\n color_offblack_50: \"rgba(31,32,33,0.5)\",\n color_offblack_100: \"rgba(31,32,33,1)\",\n color_offwhite_50: \"rgba(221,221,221,0.5)\",\n color_offwhite_20: \"rgba(221,221,221,0.2)\",\n color_offwhite_100: \"rgba(221,221,221,1)\",\n color_white_10: \"rgba(255,255,255,0.1)\",\n color_white_25: \"rgba(255,255,255,0.25)\",\n color_white_50: \"rgba(255,255,255,0.5)\",\n color_white_75: \"rgba(255,255,255,0.75)\",\n color_white_80: \"rgba(255,255,255,0.80)\",\n color_white_100: \"rgba(255,255,255,1)\",\n scale_0: 0,\n scale_px: 1,\n scale_0_25: 2,\n scale_0_50: 4,\n scale_0_75: 6,\n scale_1: 8,\n scale_1_25: 10,\n scale_1_375: 11,\n scale_1_50: 12,\n scale_1_75: 14,\n scale_2: 16,\n scale_2_25: 18,\n scale_2_50: 20,\n scale_2_75: 22,\n scale_3: 24,\n scale_3_25: 26,\n scale_3_50: 28,\n scale_3_75: 30,\n scale_4: 32,\n scale_4_50: 36,\n scale_5: 40,\n scale_6: 48,\n scale_7: 56,\n scale_7_50: 60,\n scale_8: 64,\n scale_9: 72,\n scale_10: 80,\n scale_11: 88,\n scale_12: 96,\n scale_13: 104,\n scale_14: 112,\n scale_15: 120,\n scale_16: 128,\n scale_17: 136,\n scale_18: 144,\n scale_19: 152,\n scale_20: 160,\n scale_21: 168,\n scale_22: 176,\n scale_23: 184,\n scale_24: 192,\n scale_25: 200,\n scale_26: 208,\n scale_27: 216,\n scale_28: 224,\n scale_29: 232,\n scale_30: 240,\n scale_40: 320,\n scale_50: 400,\n scale_60: 480,\n scale_70: 560,\n scale_80: 640,\n scale_90: 720,\n scale_100: 800,\n scale_200: 1600,\n fontfamily_mlstifo_standard: \"MLSTifo\",\n fontfamily_mlstifo_headline: \"MLSTifoHeadline\",\n fontfamily_mlstifo_micro: \"MLSTifoMicro\",\n fontweight_bold: \"bold\",\n },\n};\n\nconst figmaCommon = {\n common: {\n color_time_light: figmaBase.color_black_65,\n color_time_dark: figmaBase.color_white_100,\n letterspacing_expanded: \"2%\",\n letterspacing_tight: \"-2%\",\n },\n};\n\nconst figmaComponent = {\n component: {\n color_scorebug_bg_live: figmaBase.base.color_offblack_100,\n color_scorebug_divider_live: figmaBase.base.color_white_50,\n color_scorebug_bg_post_light: figmaBase.base.color_offblack_10,\n color_scorebug_divider_post_light: figmaBase.base.color_offblack_25,\n color_scorebug_bg_post_dark: figmaBase.base.color_white_10,\n color_scorebug_divider_post_dark: figmaBase.base.color_white_25,\n color_scorebug_score_dark: figmaBase.base.color_white_100,\n color_scorebug_score_light: figmaBase.base.color_off_black100,\n radius_scorebug_bg: figmaBase.base.scale_0_50,\n width_scorebug: figmaBase.base.scale_7_50,\n typography_scorebug_score: {\n fontFamily: figmaBase.base.fontfamily_mlstifo_standard,\n fontWeight: figmaBase.base.fontweight_bold,\n lineHeight: figmaBase.base.scale_1_75,\n fontSize: figmaBase.base.scale_2,\n },\n },\n};\n\nconst figmaGlobal = {\n ...figmaBase,\n ...figmaCommon,\n};\n\nexport const themeTypes = {\n light: \"light\",\n dark: \"dark\",\n};\n\nexport const rgba = {\n white_100: \"rgba(255, 255, 255, 1)\",\n white_100_60: \"rgba(255, 255, 255, 0.6)\",\n white_111: \"rgba(111, 111, 111, 1)\",\n white_120: \"rgba(120, 120, 120, 1)\",\n white_240: \"rgba(240, 240, 240, 1)\",\n white_178: \"rgba(178, 178, 178, 1)\",\n white_238: \"rgba(238, 238, 238, 1)\",\n black_33_25: \"rgba(33, 33, 33, .25)\",\n black_33: \"rgba(33, 33, 33, 1)\",\n black_65: \"rgba(65, 65, 65, 1)\",\n black_45: \"rgba(45, 45, 45, 1)\",\n black_100: \"rgba(0, 0, 0, 1)\",\n black_33_1: \"rgba(33, 33, 33, 0.1)\",\n black_100_60: \"rgba(0, 0, 0, 0.6)\",\n black_100_40: \"rgba(0, 0, 0, 0.4)\",\n black_100_50: \"rgba(0, 0, 0, 0.5)\",\n violet_34_17_34: \"rgba(34, 17, 34, 1)\",\n};\n\nexport const backgroundTypes = {\n white: \"white\",\n black: \"black\",\n};\n\nexport const Theme = {\n type: themeTypes.light,\n rgba,\n figma: {\n ...figmaGlobal,\n ...figmaComponent,\n },\n mixins: { ...mixins },\n query,\n};\n"],"names":[],"sourceRoot":""}