dirk-cfx-react 1.1.53 → 1.1.55

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.
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/utils/colorWithAlpha.ts","../../src/utils/misc.ts","../../src/utils/useSettings.ts","../../src/utils/fetchNui.ts","../../src/utils/locales.ts","../../src/components/BorderedIcon.tsx","../../src/components/Motion.tsx","../../src/components/Counter.tsx","../../src/components/FloatingParticles.tsx","../../src/components/InfoBox.tsx","../../src/components/InputContainer.tsx","../../src/hooks/useAudio/store.ts","../../src/components/SegmentedControl.tsx","../../src/components/Navigation.tsx","../../src/components/SegmentedProgress.tsx","../../src/components/Title.tsx","../../src/components/LevelBanner.tsx","../../src/components/LevelPanel.tsx","../../src/components/ModalStore.tsx","../../src/components/Modal.tsx","../../src/components/PromptModal.tsx"],"names":["alpha","create","useMantineTheme","jsx","Flex","FontAwesomeIcon","motion","Text","Image","AnimatePresence","useRef","useState","useMotionValue","useEffect","jsxs","clickSoundUrl","hoverSoundUrl","createContext","useContext","useStore","Progress","RingProgress","useClickOutside","Button"],"mappings":"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","file":"index.cjs","sourcesContent":["\r\nconst colorNames = {\r\n AliceBlue: { r: 240, g: 248, b: 255 },\r\n AntiqueWhite: { r: 250, g: 235, b: 215 },\r\n Aqua: { r: 0, g: 255, b: 255 },\r\n Aquamarine: { r: 127, g: 255, b: 212 },\r\n Azure: { r: 240, g: 255, b: 255 },\r\n Beige: { r: 245, g: 245, b: 220 },\r\n Bisque: { r: 255, g: 228, b: 196 },\r\n Black: { r: 0, g: 0, b: 0 },\r\n BlanchedAlmond: { r: 255, g: 235, b: 205 },\r\n Blue: { r: 0, g: 0, b: 255 },\r\n BlueViolet: { r: 138, g: 43, b: 226 },\r\n Brown: { r: 165, g: 42, b: 42 },\r\n BurlyWood: { r: 222, g: 184, b: 135 },\r\n CadetBlue: { r: 95, g: 158, b: 160 },\r\n Chartreuse: { r: 127, g: 255, b: 0 },\r\n Chocolate: { r: 210, g: 105, b: 30 },\r\n Coral: { r: 255, g: 127, b: 80 },\r\n CornflowerBlue: { r: 100, g: 149, b: 237 },\r\n Cornsilk: { r: 255, g: 248, b: 220 },\r\n Crimson: { r: 220, g: 20, b: 60 },\r\n Cyan: { r: 0, g: 255, b: 255 },\r\n DarkBlue: { r: 0, g: 0, b: 139 },\r\n DarkCyan: { r: 0, g: 139, b: 139 },\r\n DarkGoldenRod: { r: 184, g: 134, b: 11 },\r\n DarkGray: { r: 169, g: 169, b: 169 },\r\n DarkGreen: { r: 0, g: 100, b: 0 },\r\n DarkKhaki: { r: 189, g: 183, b: 107 },\r\n DarkMagenta: { r: 139, g: 0, b: 139 },\r\n DarkOliveGreen: { r: 85, g: 107, b: 47 },\r\n DarkOrange: { r: 255, g: 140, b: 0 },\r\n DarkOrchid: { r: 153, g: 50, b: 204 },\r\n DarkRed: { r: 139, g: 0, b: 0 },\r\n DarkSalmon: { r: 233, g: 150, b: 122 },\r\n DarkSeaGreen: { r: 143, g: 188, b: 143 },\r\n DarkSlateBlue: { r: 72, g: 61, b: 139 },\r\n DarkSlateGray: { r: 47, g: 79, b: 79 },\r\n DarkTurquoise: { r: 0, g: 206, b: 209 },\r\n DarkViolet: { r: 148, g: 0, b: 211 },\r\n DeepPink: { r: 255, g: 20, b: 147 },\r\n DeepSkyBlue: { r: 0, g: 191, b: 255 },\r\n DimGray: { r: 105, g: 105, b: 105 },\r\n DodgerBlue: { r: 30, g: 144, b: 255 },\r\n FireBrick: { r: 178, g: 34, b: 34 },\r\n FloralWhite: { r: 255, g: 250, b: 240 },\r\n ForestGreen: { r: 34, g: 139, b: 34 },\r\n Fuchsia: { r: 255, g: 0, b: 255 },\r\n Gainsboro: { r: 220, g: 220, b: 220 },\r\n GhostWhite: { r: 248, g: 248, b: 255 },\r\n Gold: { r: 255, g: 215, b: 0 },\r\n GoldenRod: { r: 218, g: 165, b: 32 },\r\n Gray: { r: 128, g: 128, b: 128 },\r\n Green: { r: 0, g: 128, b: 0 },\r\n GreenYellow: { r: 173, g: 255, b: 47 },\r\n HoneyDew: { r: 240, g: 255, b: 240 },\r\n HotPink: { r: 255, g: 105, b: 180 },\r\n IndianRed: { r: 205, g: 92, b: 92 },\r\n Indigo: { r: 75, g: 0, b: 130 },\r\n Ivory: { r: 255, g: 255, b: 240 },\r\n Khaki: { r: 240, g: 230, b: 140 },\r\n Lavender: { r: 230, g: 230, b: 250 },\r\n LavenderBlush: { r: 255, g: 240, b: 245 },\r\n LawnGreen: { r: 124, g: 252, b: 0 },\r\n LemonChiffon: { r: 255, g: 250, b: 205 },\r\n LightBlue: { r: 173, g: 216, b: 230 },\r\n LightCoral: { r: 240, g: 128, b: 128 },\r\n LightCyan: { r: 224, g: 255, b: 255 },\r\n LightGoldenRodYellow: { r: 250, g: 250, b: 210 },\r\n LightGray: { r: 211, g: 211, b: 211 },\r\n LightGreen: { r: 144, g: 238, b: 144 },\r\n LightPink: { r: 255, g: 182, b: 193 },\r\n LightSalmon: { r: 255, g: 160, b: 122 },\r\n LightSeaGreen: { r: 32, g: 178, b: 170 },\r\n LightSkyBlue: { r: 135, g: 206, b: 250 },\r\n LightSlateGray: { r: 119, g: 136, b: 153 },\r\n LightSteelBlue: { r: 176, g: 196, b: 222 },\r\n LightYellow: { r: 255, g: 255, b: 224 },\r\n Lime: { r: 0, g: 255, b: 0 },\r\n LimeGreen: { r: 50, g: 205, b: 50 },\r\n Linen: { r: 250, g: 240, b: 230 },\r\n Magenta: { r: 255, g: 0, b: 255 },\r\n Maroon: { r: 128, g: 0, b: 0 }, // Maroon\r\n MediumAquaMarine: { r: 102, g: 205, b: 170 },\r\n MediumBlue: { r: 0, g: 0, b: 205 },\r\n MediumOrchid: { r: 186, g: 85, b: 211 },\r\n MediumPurple: { r: 147, g: 112, b: 219 },\r\n MediumSeaGreen: { r: 60, g: 179, b: 113 },\r\n MediumSlateBlue: { r: 123, g: 104, b: 238 },\r\n MediumSpringGreen: { r: 0, g: 250, b: 154 },\r\n MediumTurquoise: { r: 72, g: 209, b: 204 },\r\n MediumVioletRed: { r: 199, g: 21, b: 133 },\r\n MidnightBlue: { r: 25, g: 25, b: 112 },\r\n MintCream: { r: 245, g: 255, b: 250 },\r\n MistyRose: { r: 255, g: 228, b: 225 },\r\n Moccasin: { r: 255, g: 228, b: 181 },\r\n NavajoWhite: { r: 255, g: 222, b: 173 },\r\n Navy: { r: 0, g: 0, b: 128 },\r\n OldLace: { r: 253, g: 245, b: 230 },\r\n Olive: { r: 128, g: 128, b: 0 },\r\n OliveDrab: { r: 107, g: 142, b: 35 },\r\n Orange: { r: 255, g: 165, b: 0 },\r\n OrangeRed: { r: 255, g: 69, b: 0 },\r\n Orchid: { r: 218, g: 112, b: 214 },\r\n PaleGoldenRod: { r: 238, g: 232, b: 170 },\r\n PaleGreen: { r: 152, g: 251, b: 152 },\r\n PaleTurquoise: { r: 175, g: 238, b: 238 },\r\n PaleVioletRed: { r: 219, g: 112, b: 147 },\r\n PapayaWhip: { r: 255, g: 239, b: 213 },\r\n PeachPuff: { r: 255, g: 218, b: 185 },\r\n Peru: { r: 205, g: 133, b: 63 },\r\n Pink: { r: 255, g: 192, b: 203 },\r\n Plum: { r: 221, g: 160, b: 221 },\r\n PowderBlue: { r: 176, g: 224, b: 230 },\r\n Purple: { r: 128, g: 0, b: 128 },\r\n RebeccaPurple: { r: 102, g: 51, b: 153 },\r\n Red: { r: 255, g: 0, b: 0 },\r\n RosyBrown: { r: 188, g: 143, b: 143 },\r\n RoyalBlue: { r: 65, g: 105, b: 225 },\r\n SaddleBrown: { r: 139, g: 69, b: 19 },\r\n Salmon: { r: 250, g: 128, b: 114 },\r\n SandyBrown: { r: 244, g: 164, b: 96 },\r\n SeaGreen: { r: 46, g: 139, b: 87 },\r\n SeaShell: { r: 255, g: 245, b: 238 },\r\n Sienna: { r: 160, g: 82, b: 45 },\r\n Silver: { r: 192, g: 192, b: 192 },\r\n SkyBlue: { r: 135, g: 206, b: 235 },\r\n SlateBlue: { r: 106, g: 90, b: 205 },\r\n SlateGray: { r: 112, g: 128, b: 144 },\r\n Snow: { r: 255, g: 250, b: 250 },\r\n SpringGreen: { r: 0, g: 255, b: 127 },\r\n SteelBlue: { r: 70, g: 130, b: 180 },\r\n Tan: { r: 210, g: 180, b: 140 },\r\n Teal: { r: 0, g: 128, b: 128 },\r\n Thistle: { r: 216, g: 191, b: 216 },\r\n Tomato: { r: 255, g: 99, b: 71 },\r\n Turquoise: { r: 64, g: 224, b: 208 },\r\n Violet: { r: 238, g: 130, b: 238 },\r\n Wheat: { r: 245, g: 222, b: 179 },\r\n White: { r: 255, g: 255, b: 255 },\r\n WhiteSmoke: { r: 245, g: 245, b: 245 },\r\n Yellow: { r: 255, g: 255, b: 0 },\r\n YellowGreen: { r: 154, g: 205, b: 50 }\r\n};\r\n\r\n\r\n\r\n\r\nexport function colorWithAlpha(color: string, alpha: number): string {\r\n const lowerCasedColor = color.toLowerCase() as keyof typeof colorNames;\r\n \r\n if (colorNames[lowerCasedColor]) {\r\n const rgb = colorNames[lowerCasedColor];\r\n return `rgba(${rgb.r}, ${rgb.g}, ${rgb.b}, ${alpha})`;\r\n }\r\n \r\n // If color is in hex format (#RRGGBB)\r\n if (/^#([A-Fa-f0-9]{6})$/.test(color)) {\r\n const hex = color.slice(1);\r\n const bigint = parseInt(hex, 16);\r\n const r = (bigint >> 16) & 255;\r\n const g = (bigint >> 8) & 255;\r\n const b = bigint & 255;\r\n return `rgba(${r}, ${g}, ${b}, ${alpha})`;\r\n }\r\n \r\n // If color is in rgb format (rgb(r, g, b))\r\n if (/^rgb\\((\\d{1,3}), (\\d{1,3}), (\\d{1,3})\\)$/.test(color)) {\r\n const result = color.match(/^rgb\\((\\d{1,3}), (\\d{1,3}), (\\d{1,3})\\)$/);\r\n if (result) {\r\n return `rgba(${result[1]}, ${result[2]}, ${result[3]}, ${alpha})`;\r\n }\r\n }\r\n \r\n // Default to original color if format is not recognized\r\n return color;\r\n}","export const isEnvBrowser = (): boolean => !(window as any).invokeNative;\r\n\r\n// Basic no operation function\r\nexport const noop = () => {};\r\n\r\nexport const splitFAString = (faString:string) => {\r\n const [prefix, newIcon] = faString.split('-');\r\n if (!prefix || !newIcon) return {prefix: 'fas', newIcon: 'question'};\r\n return {prefix, newIcon};\r\n}\r\n\r\nexport const numberToRoman = (num:number) => {\r\n const romanNumerals = ['I', 'II', 'III', 'IV', 'V', 'VI', 'VII', 'VIII', 'IX', 'X', 'XI', 'XII', 'XIII', 'XIV', 'XV', 'XVI', 'XVII', 'XVIII', 'XIX', 'XX'] \r\n return romanNumerals[num]\r\n}\r\n\r\nexport const copyToClipboard = (text:string) => {\r\n const el = document.createElement('textarea');\r\n el.value = text;\r\n document.body.appendChild(el);\r\n el.select();\r\n document.execCommand('copy');\r\n document.body.removeChild(el);\r\n}\r\n\r\nexport const openLink = (url:string) => {\r\n if (isEnvBrowser()) {\r\n window.open(url, '_blank');\r\n } else {\r\n // @ts-expect-error -- invokeNative exists in NUI\r\n window.invokeNative('openLink', url);\r\n } \r\n}","import { MantineColorsTuple } from \"@mantine/core\";\r\nimport { create } from \"zustand\";\r\n\r\nexport type SettingsState = {\r\n game: \"fivem\" | \"rdr3\";\r\n currency: string;\r\n primaryColor: string;\r\n primaryShade: number;\r\n itemImgPath: string;\r\n customTheme?: MantineColorsTuple;\r\n overideResourceName?: string;\r\n};\r\n\r\nexport const useSettings = create<SettingsState>(() => ({\r\n currency: \"$\",\r\n game: \"fivem\",\r\n primaryColor: \"dirk\",\r\n primaryShade: 9,\r\n itemImgPath: \"\",\r\n customTheme: [\r\n \"#f0f4ff\",\r\n \"#d9e3ff\",\r\n \"#bfcfff\",\r\n \"#a6bbff\",\r\n \"#8ca7ff\",\r\n \"#7393ff\",\r\n \"#5a7fff\",\r\n \"#406bff\",\r\n \"#2547ff\",\r\n \"#0b33ff\",\r\n ],\r\n}));\r\n\r\n// registerInitialFetch<Partial<SettingsState>>('GET_SETTINGS', undefined).then((data) => {\r\n// if (!data) {\r\n// console.warn('No settings data received from GET_SETTINGS fetch.');\r\n// return;\r\n// }\r\n// useSettings.setState({\r\n// ...data,\r\n// });\r\n// })\r\n","import { useEffect } from \"react\";\r\nimport { isEnvBrowser } from \"./misc\";\r\nimport { useSettings } from \"./useSettings\";\r\n\r\n/**\r\n * Simple wrapper around fetch API tailored for CEF/NUI use.\r\n */\r\nexport async function fetchNui<T = unknown>(\r\n eventName: string,\r\n data?: unknown,\r\n mockData?: T,\r\n): Promise<T> {\r\n const options = {\r\n method: \"post\",\r\n headers: {\r\n \"Content-Type\": \"application/json; charset=UTF-8\",\r\n },\r\n body: JSON.stringify(data),\r\n };\r\n\r\n if (isEnvBrowser() && mockData !== undefined) return mockData;\r\n if (isEnvBrowser() && mockData === undefined) {\r\n console.warn(\r\n `[fetchNui] Called fetchNui for event \"${eventName}\" in browser environment without mockData. Returning empty object.`,\r\n );\r\n return {} as T;\r\n }\r\n\r\n const overrideResourceName = useSettings.getState().overideResourceName;\r\n\r\n const resourceName = (window as any).GetParentResourceName\r\n ? (window as any).GetParentResourceName()\r\n : overrideResourceName ? overrideResourceName : \"dirk-cfx-react\";\r\n const resp = await fetch(`https://${resourceName}/${eventName}`, options);\r\n return await resp.json();\r\n}\r\n\r\n// -----------------------------\r\n// Initial fetch registration\r\n// -----------------------------\r\nexport type InitialFetch<T> = () => Promise<T>;\r\nexport const initialFetches: Record<string, InitialFetch<unknown>> = {};\r\n\r\n/**\r\n * Registers an initial fetch that automatically uses fetchNui.\r\n * Works like:\r\n * ```ts\r\n * registerInitialFetch<{ name: string }>(\"MY_EVENT_NAME\", undefined, { name: \"Mocky\" });\r\n * ```\r\n * and returns a Promise resolving to the same type as fetchNui.\r\n */\r\nexport async function registerInitialFetch<T = unknown>(\r\n eventName: string,\r\n data?: unknown,\r\n mockData?: T,\r\n): Promise<T> {\r\n const fetcher = () => fetchNui<T>(eventName, data, mockData);\r\n initialFetches[eventName] = fetcher;\r\n return fetcher(); // run immediately if needed\r\n}\r\n\r\n/**\r\n * Runs all registered initial fetches in parallel.\r\n */\r\nexport async function runFetches() {\r\n return Promise.all(\r\n Object.entries(initialFetches).map(async ([eventName, fetcher]) => {\r\n const data = await fetcher();\r\n return { eventName, data };\r\n }),\r\n );\r\n}\r\n\r\n/**\r\n * React hook to automatically run all registered fetches on mount.\r\n */\r\nexport const useAutoFetcher = () => {\r\n useEffect(() => {\r\n if (isEnvBrowser()) return;\r\n const run = async () => {\r\n const results = await runFetches();\r\n };\r\n run();\r\n }, []);\r\n};\r\n\r\n\r\nexport const fetchLuaTable = <T>(tableName: string, mockData?: T): Promise<T> => { \r\n return fetchNui<T>('FETCH_LUA_TABLE', { tableName }, mockData);\r\n} \r\n\r\nexport const registerInitialLuaTableFetch = <T>(tableName: string, mockData?: T): Promise<T> => { \r\n return registerInitialFetch<T>('FETCH_LUA_TABLE', { tableName }, mockData);\r\n} \r\n\r\n\r\n\r\n// useage example:\r\n// registerInitialLuaTableFetch<{ [key: string]: string }>('my_lua_table', { key1: 'value1', key2: 'value2' }); \r\n","import { create } from \"zustand\";\r\nimport { registerInitialFetch } from \"../utils/fetchNui\";\r\n\r\n\r\ntype localeType = (key: string, ...args: string[]) => string;\r\n\r\ntype LocalesProps = {\r\n [key: string]: string;\r\n}\r\n\r\ntype LocaleStoreProps = {\r\n locale: localeType;\r\n locales: LocalesProps;\r\n};\r\n\r\n\r\nexport const localeStore = create<LocaleStoreProps>((set, get) => {\r\n return {\r\n locales: {\r\n \"OccupantsDesc\": \"Here you can view and manage the occupants of your traphouse. These occupants can be used mainly for selling drugs to the NPCs surrounding your traphouse. However they have other uses to so be careful who you add as an occupant.\", \r\n },\r\n locale: (key: string, ...args: (string|number)[]): string => {\r\n const exists = get().locales[key];\r\n if (!exists){\r\n // add to a jsonfile called missing_locales.json within src of project \r\n \r\n }\r\n let translation = exists || key;\r\n if (args.length) {\r\n // convert the arg to a string and replace the %s in the translation\r\n \r\n\r\n translation = translation.replace(/%s/g, () => String(args.shift() || ''));\r\n }\r\n return translation;\r\n },\r\n };\r\n});\r\n\r\n// export locale as a standalone function \r\nexport const locale = localeStore.getState().locale;\r\n\r\nregisterInitialFetch<LocalesProps>('GET_LOCALES', undefined).then((data) => {\r\n localeStore.setState({ locales: data });\r\n})","import { colorWithAlpha } from \"@/utils\";\r\nimport { IconName } from \"@fortawesome/fontawesome-svg-core\";\r\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\r\nimport { Flex, useMantineTheme } from \"@mantine/core\";\r\n\r\nexport type BorderedIconProps = {\r\n icon: string;\r\n color?: string;\r\n fontSize?: string;\r\n hovered?: boolean;\r\n hoverable?: boolean;\r\n radius?: string;\r\n p?: string;\r\n}\r\n\r\nexport function BorderedIcon(props: BorderedIconProps){\r\n const theme = useMantineTheme();\r\n return (\r\n <Flex\r\n bg='rgba(0, 0, 0, 0.5)'\r\n p={props.p || 'xs'}\r\n justify='center'\r\n align='center'\r\n style={{\r\n aspectRatio: '1/1', \r\n \r\n borderRadius: theme.radius.xs,\r\n // border: `2px solid var(--mantine-primary-color-9)`,\r\n outline: `0.2vh solid ${colorWithAlpha(props.color ? props.color : theme.colors[theme.primaryColor][9], 0.8)}`,\r\n boxShadow: `inset 0 0 2vh ${colorWithAlpha(props.color ? props.color : theme.colors[theme.primaryColor][7], 0.5)}`\r\n }}\r\n \r\n >\r\n <FontAwesomeIcon\r\n icon={props.icon as IconName}\r\n color={colorWithAlpha(props.color ? props.color : theme.colors[theme.primaryColor][theme.primaryShade as number], props.hovered ? 0.9: 0.9)}\r\n style={{\r\n fontSize: props.fontSize ? props.fontSize: '2.5vh',\r\n }}\r\n />\r\n </Flex>\r\n )\r\n}","import { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\r\nimport { Flex, Image, Text } from \"@mantine/core\";\r\nimport { motion } from \"framer-motion\";\r\nimport React from \"react\";\r\n\r\n// @ts-expect-error ts-migrate(7006) FIXME: Parameter 'Flex' implicitly has an 'any' type.\r\nexport const MotionFlex = motion.create(Flex) as React.ComponentType<any>;\r\n// @ts-expect-error ts-migrate(7006) FIXME: Parameter 'Text' implicitly has an 'any' type.\r\nexport const MotionText = motion.create(Text) as React.ComponentType<any>;\r\n// @ts-expect-error ts-migrate(7006) FIXME: Parameter 'Image' implicitly has an 'any' type.\r\nexport const MotionImage = motion.create(Image) as React.ComponentType<any>;\r\n\r\nexport const MotionIcon = motion.create(FontAwesomeIcon);\r\n\r\n\r\n\r\n\r\n","import { AnimatePresence } from \"framer-motion\";\r\nimport { MotionFlex } from \"./Motion\";\r\n\r\nexport function Counter(props: {count: number, color?: string, style?: React.CSSProperties}) {\r\n return (\r\n <AnimatePresence>\r\n {props.count > 0 && (\r\n <MotionFlex\r\n key='counter'\r\n initial={{ opacity: 0 }}\r\n animate={{ opacity: 1 }}\r\n exit={{ opacity: 0 }}\r\n\r\n fz='1.25vh'\r\n h='1.75vh'\r\n justify={'center'}\r\n align='center'\r\n bg={props.color || 'rgba(0, 0, 0, 0.51)'}\r\n style={{\r\n borderRadius: '50%',\r\n aspectRatio: '1/1',\r\n marginBottom: '0.3vh',\r\n fontFamily: 'Akrobat Bold',\r\n boxShadow: '0 0 5px rgba(0, 0, 0, 0.3)',\r\n ...props.style\r\n }}\r\n >\r\n {props.count}\r\n </MotionFlex> \r\n )}\r\n </AnimatePresence>\r\n\r\n )\r\n}","import React, { useRef, useEffect, useState } from 'react';\r\nimport { motion, useMotionValue } from 'framer-motion';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\n\r\nexport type FloatingParticlesProps = {\r\n icons?: React.ReactNode[];\r\n particleCount?: number;\r\n color?: string;\r\n size?: number;\r\n speed?: 'slow' | 'medium' | 'fast';\r\n opacity?: number;\r\n className?: string;\r\n style?: React.CSSProperties;\r\n mouseRepelDistance?: number;\r\n mouseRepelStrength?: number;\r\n backgroundColor?: string;\r\n}\r\n\r\nexport type ParticleState = {\r\n id: number;\r\n baseX: number;\r\n baseY: number;\r\n currentX: number;\r\n currentY: number;\r\n icon: React.ReactNode | null;\r\n animationDuration: number;\r\n}\r\n\r\n\r\n\r\nexport const FloatingParticles: React.FC<FloatingParticlesProps> = ({\r\n icons = [],\r\n particleCount = 55,\r\n color = '#00a552ff',\r\n size = 32,\r\n speed = 'slow',\r\n opacity = 0.3,\r\n style = {},\r\n mouseRepelDistance = 150,\r\n mouseRepelStrength = 50,\r\n backgroundColor = 'transparent',\r\n}) => {\r\n const containerRef = useRef<HTMLDivElement>(null);\r\n const [particles, setParticles] = useState<ParticleState[]>([]);\r\n \r\n const mouseX = useMotionValue(0);\r\n const mouseY = useMotionValue(0);\r\n\r\n const durationMap = {\r\n slow: { base: 10, variance: 10 },\r\n medium: { base: 2, variance: 2},\r\n fast: { base: 4, variance: 2 },\r\n };\r\n\r\n const duration = durationMap[speed];\r\n\r\n const seededRandom = (seed: number) => {\r\n const x = Math.sin(seed) * 10000;\r\n return x - Math.floor(x);\r\n };\r\n\r\n useEffect(() => {\r\n if (!containerRef.current) return;\r\n\r\n const bounds = containerRef.current.getBoundingClientRect();\r\n\r\n const newParticles: ParticleState[] = [...Array(particleCount)].map((_, i) => {\r\n const seedX = i * 123.456;\r\n const seedY = i * 789.012;\r\n const seedDuration = i * 345.678;\r\n \r\n const baseX = seededRandom(seedX) * bounds.width;\r\n const baseY = seededRandom(seedY) * bounds.height;\r\n \r\n return {\r\n id: i,\r\n baseX,\r\n baseY,\r\n currentX: baseX,\r\n currentY: baseY,\r\n icon: icons.length > 0 ? icons[i % icons.length] : null,\r\n animationDuration: duration.base + seededRandom(seedDuration) * duration.variance,\r\n };\r\n });\r\n\r\n setParticles(newParticles);\r\n }, [particleCount, icons.length, duration.base, duration.variance]);\r\n\r\n useEffect(() => {\r\n if (!containerRef.current) return;\r\n\r\n const handleMouseMove = (e: MouseEvent) => {\r\n const bounds = containerRef.current!.getBoundingClientRect();\r\n const x = e.clientX - bounds.left;\r\n const y = e.clientY - bounds.top;\r\n \r\n mouseX.set(x);\r\n mouseY.set(y);\r\n\r\n setParticles(prevParticles => \r\n prevParticles.map(particle => {\r\n const dx = x - particle.baseX;\r\n const dy = y - particle.baseY;\r\n const distance = Math.sqrt(dx * dx + dy * dy);\r\n\r\n if (distance < mouseRepelDistance && distance > 0) {\r\n const force = (mouseRepelDistance - distance) / mouseRepelDistance;\r\n const repelX = (dx / distance) * force * mouseRepelStrength * -1;\r\n const repelY = (dy / distance) * force * mouseRepelStrength * -1;\r\n\r\n return {\r\n ...particle,\r\n currentX: particle.baseX + repelX,\r\n currentY: particle.baseY + repelY,\r\n };\r\n } else {\r\n return {\r\n ...particle,\r\n currentX: particle.baseX,\r\n currentY: particle.baseY,\r\n };\r\n }\r\n })\r\n );\r\n };\r\n\r\n const handleMouseLeave = () => {\r\n setParticles(prevParticles =>\r\n prevParticles.map(particle => ({\r\n ...particle,\r\n currentX: particle.baseX,\r\n currentY: particle.baseY,\r\n }))\r\n );\r\n };\r\n\r\n const container = containerRef.current;\r\n container.addEventListener('mousemove', handleMouseMove);\r\n container.addEventListener('mouseleave', handleMouseLeave);\r\n\r\n return () => {\r\n container.removeEventListener('mousemove', handleMouseMove);\r\n container.removeEventListener('mouseleave', handleMouseLeave);\r\n };\r\n }, [mouseX, mouseY, mouseRepelDistance, mouseRepelStrength]);\r\n\r\n useEffect(() => {\r\n const handleResize = () => {\r\n if (!containerRef.current) return;\r\n \r\n const bounds = containerRef.current.getBoundingClientRect();\r\n \r\n setParticles(prevParticles =>\r\n prevParticles.map((particle, i) => {\r\n const seedX = i * 123.456 + bounds.width;\r\n const seedY = i * 789.012 + bounds.height;\r\n \r\n const newBaseX = seededRandom(seedX) * bounds.width;\r\n const newBaseY = seededRandom(seedY) * bounds.height;\r\n \r\n return {\r\n ...particle,\r\n baseX: newBaseX,\r\n baseY: newBaseY,\r\n currentX: newBaseX,\r\n currentY: newBaseY,\r\n };\r\n })\r\n );\r\n };\r\n\r\n window.addEventListener('resize', handleResize);\r\n return () => window.removeEventListener('resize', handleResize);\r\n }, []);\r\n\r\n return (\r\n <div \r\n ref={containerRef}\r\n style={{\r\n position: 'absolute',\r\n overflow: 'hidden',\r\n width: '100%',\r\n height: '100%',\r\n zIndex: -1,\r\n \r\n backgroundColor,\r\n ...style,\r\n }}\r\n >\r\n <div style={{ position: 'absolute', inset: 0, pointerEvents: 'none' }}>\r\n {particles.map((particle) => (\r\n <motion.div\r\n key={particle.id}\r\n style={{\r\n position: 'absolute',\r\n width: size,\r\n height: size,\r\n color,\r\n opacity,\r\n left: 0,\r\n top: 0,\r\n }}\r\n animate={{\r\n x: particle.currentX,\r\n y: particle.currentY,\r\n scale: [0.8, 1.1, 0.8],\r\n opacity: [opacity * 0.5, opacity, opacity * 0.5],\r\n // random rotate between 0 and 360 so that not all particles rotate the same\r\n rotate: particle.id % 2 === 0 ? [0, 360] : [360, 0],\r\n }}\r\n transition={{\r\n x: { type: \"spring\", stiffness: 150, damping: 20 },\r\n y: { type: \"spring\", stiffness: 150, damping: 20 },\r\n rotate: {\r\n duration: particle.animationDuration,\r\n repeat: Infinity,\r\n ease: 'linear',\r\n \r\n },\r\n scale: {\r\n duration: particle.animationDuration,\r\n repeat: Infinity,\r\n delay: seededRandom(particle.id * 111.222) * 5,\r\n ease: 'easeInOut',\r\n },\r\n opacity: {\r\n duration: particle.animationDuration,\r\n repeat: Infinity,\r\n delay: seededRandom(particle.id * 333.444) * 5,\r\n ease: 'easeInOut',\r\n },\r\n }}\r\n >\r\n {particle.icon ? (\r\n <div style={{ width: '100%', height: '100%', display: 'flex', alignItems: 'center', justifyContent: 'center' }}>\r\n <FontAwesomeIcon icon={particle.icon as any} style={{ width: '70%', height: '70%' }} />\r\n </div>\r\n ) : (\r\n <div\r\n style={{\r\n width: '100%',\r\n height: '100%',\r\n borderRadius: '50%',\r\n backgroundColor: color,\r\n }}\r\n />\r\n )}\r\n </motion.div>\r\n ))}\r\n </div>\r\n </div>\r\n );\r\n};\r\n\r\n","import { useMantineTheme, Flex, Text } from \"@mantine/core\";\r\n\r\nexport type InfoBoxProps = {\r\n leftSide: string;\r\n rightSide: string;\r\n};\r\n\r\nexport function InfoBox(props: InfoBoxProps) {\r\n const theme = useMantineTheme();\r\n\r\n\r\n return (\r\n <Flex\r\n w='fit-content'\r\n h='fit-content'\r\n style={{\r\n borderRadius: theme.radius.xs,\r\n overflow: 'hidden',\r\n border: `0.2vh solid rgba(77,77,77,0.3)`\r\n }}\r\n align='center'\r\n >\r\n <Flex\r\n miw='4vh'\r\n p='xxs'\r\n bg='rgba(77,77,77,0.2)'\r\n direction='column'\r\n justify='center'\r\n align='center'\r\n >\r\n <Text c='lightgrey' size='xxs'\r\n style={{\r\n fontFamily: 'Akrobat Bold',\r\n letterSpacing: '0.05em',\r\n textTransform: 'uppercase',\r\n }}>{props.leftSide}</Text>\r\n </Flex>\r\n\r\n <Flex\r\n p='xxs'\r\n flex={1}\r\n miw='4vh'\r\n bg='rgba(77,77,77,0.5)'\r\n direction='column'\r\n align='center'\r\n justify='center'\r\n >\r\n <Text c='lightgrey' size='xxs'\r\n style={{\r\n fontFamily: 'Akrobat Bold',\r\n letterSpacing: '0.05em',\r\n textTransform: 'uppercase',\r\n }}\r\n >{props.rightSide}</Text>\r\n </Flex>\r\n\r\n </Flex>\r\n );\r\n}\r\n","import { useMantineTheme, Flex, Text, alpha } from \"@mantine/core\";\r\nimport { MotionFlex } from \"./Motion\";\r\nimport { Variants } from \"framer-motion\";\r\nimport { colorWithAlpha } from \"@/utils\";\r\n\r\nexport type InputContainerProps = {\r\n title?:string;\r\n error?: string;\r\n description?:string;\r\n children?:React.ReactNode;\r\n w?:string | number;\r\n flex?:number | string;\r\n h?:string | number;\r\n bg?:string;\r\n p?:string | number;\r\n variants?: Variants;\r\n style?:React.CSSProperties;\r\n rightSection?:React.ReactNode;\r\n}\r\n\r\nexport function InputContainer(props: InputContainerProps){\r\n const theme = useMantineTheme()\r\n return (\r\n <MotionFlex\r\n w={props.w || '100%'}\r\n flex={props.flex}\r\n direction='column'\r\n h={props.h}\r\n gap={props.title ? 'xs' : 0}\r\n \r\n\r\n bg={props.bg || alpha(theme.colors.dark[9], 0.65)}\r\n p={props.p || 'sm'}\r\n style={{\r\n borderRadius: theme.radius.xs,\r\n boxShadow: theme.shadows.sm,\r\n overflow: 'hidden',\r\n border: props.error ? `1px solid rgba(255, 100, 100, 0.8)` : '1px solid var(--mantine-color-dark-7)', \r\n ...props.style,\r\n }}\r\n variants={props.variants}\r\n >\r\n\r\n <Flex\r\n align='center'\r\n gap='xs'\r\n \r\n >\r\n {(props.title || props.description) && (\r\n <Flex\r\n direction={'column'}\r\n gap='xxs'\r\n p={props.p == '0' ? 'sm' : 0}\r\n >\r\n {props.title && (\r\n <Text\r\n size=\"sm\"\r\n style={{\r\n lineHeight: '1.25vh',\r\n fontFamily: 'Akrobat Bold',\r\n letterSpacing: '0.05em',\r\n textTransform: 'uppercase',\r\n }}\r\n >{props.title}</Text> \r\n )}\r\n {props.description && (\r\n <Text\r\n size='xs'\r\n c='rgba(255, 255, 255, 0.8)'\r\n fw={400}\r\n >{props.description}</Text> \r\n )}\r\n\r\n </Flex>\r\n )}\r\n {props.error && (\r\n <Text\r\n size='xs'\r\n c={theme.colors.red[9]}\r\n fw={600}\r\n mb='auto'\r\n lh='0.8'\r\n >\r\n {props.error}\r\n </Text> \r\n )}\r\n <Flex\r\n ml='auto'\r\n >\r\n {props.rightSection}\r\n </Flex>\r\n </Flex>\r\n {props.children} \r\n </MotionFlex>\r\n )\r\n}","import { create } from 'zustand';\r\n\r\n// Import sounds as URLs (TypeScript-safe)\r\nimport clickSoundUrl from './click_sound.mp3';\r\nimport hoverSoundUrl from './hover_sound.mp3';\r\n\r\n// Define a type for the store state and actions\r\ntype AudioPlayerStore = {\r\n play: (sound: string) => void;\r\n stop: (sound: string) => void;\r\n};\r\n\r\n// Create the store using Zustand\r\nexport const useAudio = create<AudioPlayerStore>(() => {\r\n const audioRefs: Record<string, HTMLAudioElement> = {};\r\n\r\n // Predefined sounds\r\n const sounds: Record<string, string> = {\r\n click: clickSoundUrl,\r\n hover: hoverSoundUrl,\r\n };\r\n\r\n // Initialize audio elements for each sound\r\n for (const [key, src] of Object.entries(sounds)) {\r\n audioRefs[key] = new Audio(src);\r\n }\r\n\r\n return {\r\n play: (sound) => {\r\n const audio = audioRefs[sound];\r\n if (!audio) return console.warn(`Sound '${sound}' not found.`);\r\n audio.currentTime = 0;\r\n audio.volume = 0.1;\r\n audio.play();\r\n },\r\n stop: (sound) => {\r\n const audio = audioRefs[sound];\r\n if (!audio) return console.warn(`Sound '${sound}' not found.`);\r\n audio.pause();\r\n audio.currentTime = 0;\r\n },\r\n };\r\n});\r\n","\r\nimport { useAudio } from \"@/hooks/useAudio/store\";\r\nimport { colorWithAlpha } from \"@/utils\";\r\nimport { IconProp } from \"@fortawesome/fontawesome-svg-core\";\r\nimport { alpha, Flex, FlexProps, useMantineTheme } from \"@mantine/core\";\r\nimport { motion } from \"framer-motion\";\r\nimport { MotionFlex, MotionIcon, MotionText } from \"./Motion\";\r\n\r\n\r\nexport type SegmentProps = {\r\n label: string;\r\n value: string;\r\n icon?: string; // Optional icon for the segment\r\n rightSection?: React.ReactNode;\r\n color?: string;\r\n}\r\n\r\nexport type SegmentedControlProps = {\r\n w?: string; // Width of the entire control\r\n multi?: boolean; // Optional prop to allow multiple selections\r\n value?: string | string[]; // Controlled value, if provided\r\n onChange?: (value: string | string[]) => void; // Callback for value change\r\n fz?: string; // Font size for the segments\r\n justify?: FlexProps['justify']; \r\n items: SegmentProps[];\r\n sounds?: boolean;\r\n roundEdges?: boolean;\r\n color?: string;\r\n} & FlexProps;\r\n\r\nexport function SegmentedControl(props: SegmentedControlProps) {\r\n const theme = useMantineTheme();\r\n const play = useAudio((state) => state.play);\r\n\r\n const handleChange = (newValue: string | string[]) => {\r\n if (props.sounds) play('click');\r\n if (props.onChange) {\r\n props.onChange(newValue);\r\n }\r\n };\r\n\r\n return (\r\n <Flex\r\n bg='rgba(33, 33, 33, 0.6)'\r\n w={props.w || 'fit-content'}\r\n style={{\r\n borderRadius: props.roundEdges !== false ? theme.radius.xs : 0,\r\n overflow: 'hidden',\r\n }}\r\n {...props}\r\n >\r\n {props.items.map((item, index) => (\r\n <motion.div\r\n key={index}\r\n initial={{ x: -100, opacity: 0 }}\r\n animate={{ x: 0, opacity: 1 }}\r\n transition={{ duration: 0.3, delay: index * 0.1, ease: 'easeInOut' }}\r\n\r\n style={{\r\n display: 'flex',\r\n flexDirection: 'row',\r\n alignItems: 'center',\r\n flex: 1,\r\n }}\r\n >\r\n <Segment\r\n key={item.value}\r\n label={item.label}\r\n value={item.value}\r\n icon={item.icon}\r\n rightSection={item.rightSection}\r\n fz={props.fz}\r\n color={props.color}\r\n selected={!props.multi ? props.value === item.value : Array.isArray(props.value) && props.value.includes(item.value)}\r\n onClick={() => {\r\n\r\n if (props.multi) {\r\n const newValue = Array.isArray(props.value)\r\n ? props.value.includes(item.value)\r\n ? props.value.filter((v) => v !== item.value)\r\n : [...props.value, item.value]\r\n : [item.value];\r\n\r\n handleChange(newValue);\r\n } else {\r\n handleChange(item.value);\r\n }\r\n }}\r\n />\r\n </motion.div>\r\n ))}\r\n </Flex>\r\n )\r\n}\r\n\r\nfunction Segment(props: SegmentProps & {\r\n selected: boolean;\r\n onClick: () => void;\r\n fz?: string;\r\n}) {\r\n const theme = useMantineTheme();\r\n\r\n return (\r\n <MotionFlex\r\n onClick={props.onClick}\r\n w='100%'\r\n direction=\"column\"\r\n align=\"center\"\r\n // p='xs'\r\n h='100%'\r\n bg={props.selected ? props.color ? colorWithAlpha(props.color, 0.2) : colorWithAlpha(theme.colors[theme.primaryColor][theme.primaryShade as number], 0.2) : 'transparent'}\r\n pos=\"relative\"\r\n style={{\r\n // position: \"relative\",\r\n cursor: \"pointer\",\r\n }}\r\n justify={'center'}\r\n whileHover={{ scale: 1.05 }}\r\n whileTap={{ scale: 0.95 }}\r\n >\r\n <Flex\r\n align='center'\r\n gap='xs'\r\n // bg='red'\r\n p='xs'\r\n >\r\n \r\n {props.icon && \r\n <MotionIcon\r\n icon={props.icon as IconProp}\r\n // size='sm'\r\n initial={{\r\n color: props.selected ? props.color || theme.colors[theme.primaryColor][5] : 'inherit', \r\n }}\r\n animate={{\r\n color: props.selected ? props.color || theme.colors[theme.primaryColor][5] : 'inherit', \r\n }}\r\n exit={{\r\n color: 'inherit',\r\n }}\r\n style={{\r\n fontSize: theme.fontSizes.xs,\r\n marginBottom: '0.2vh',\r\n }}\r\n />\r\n }\r\n <MotionText\r\n size={props.fz || 'xs'}\r\n initial={{\r\n color: props.selected ? props.color || theme.colors[theme.primaryColor][5] : 'rgba(255, 255, 255, 0.7)', \r\n }}\r\n animate={{\r\n color: props.selected ? props.color || theme.colors[theme.primaryColor][5] : 'rgba(255, 255, 255, 0.7)', \r\n }}\r\n exit={{\r\n color: 'rgba(255, 255, 255, 0.7)',\r\n }}\r\n style={{\r\n fontFamily: 'Akrobat Bold',\r\n letterSpacing: '0.1em',\r\n textTransform: 'uppercase',\r\n }}\r\n >{props.label.toUpperCase()}</MotionText>\r\n {props.rightSection}\r\n </Flex>\r\n\r\n {/* Enhanced bottom border with smooth animation */}\r\n <motion.div\r\n initial={false}\r\n animate={{\r\n scaleX: props.selected ? 1 : 0,\r\n opacity: props.selected ? 1 : 0,\r\n }}\r\n transition={{\r\n duration: 0.3,\r\n ease: [0.4, 0, 0.2, 1], // Custom easing curve for smooth feel\r\n }}\r\n style={{\r\n position: 'absolute',\r\n bottom: 0,\r\n left: 0,\r\n right: 0,\r\n height: '0.2vh',\r\n backgroundColor: props.color || theme.colors[theme.primaryColor][5],\r\n transformOrigin: 'center',\r\n }}\r\n />\r\n </MotionFlex>\r\n );\r\n}","import { createContext, useContext, useRef } from \"react\";\r\nimport { create, StoreApi, useStore } from \"zustand\";\r\nimport {SegmentedControl, SegmentProps} from \"./SegmentedControl\";\r\n\r\nexport type NavigationStore = {\r\n pageId: string;\r\n}\r\n\r\nexport const NavigationContext = createContext<StoreApi<NavigationStore> | null>(null);\r\n\r\nexport function useNavigation<T>(selector: (state: NavigationStore) => T){\r\n const navigation = useContext(NavigationContext);\r\n if(!navigation){\r\n throw new Error('useNavigation must be used within a NavigationProvider');\r\n }\r\n return useStore(navigation, selector);\r\n}\r\n\r\n// Hook to get the store API for setting state\r\nexport function useNavigationStore(){\r\n const navigation = useContext(NavigationContext);\r\n if(!navigation){\r\n throw new Error('useNavigationStore must be used within a NavigationProvider');\r\n }\r\n return navigation;\r\n}\r\n\r\nexport function NavigationProvider({ children, defaultPage }: { children: React.ReactNode, defaultPage?: string }){\r\n const storeRef = useRef<StoreApi<NavigationStore>>(\r\n create<NavigationStore>(() => ({\r\n pageId: defaultPage || 'home',\r\n }))\r\n );\r\n\r\n return (\r\n <NavigationContext.Provider value={storeRef.current}>\r\n {children}\r\n </NavigationContext.Provider>\r\n );\r\n}\r\n\r\nexport function NavBar(props: {\r\n items: SegmentProps[];\r\n}){\r\n const pageId = useNavigation((state) => state.pageId);\r\n const store = useNavigationStore();\r\n \r\n return (\r\n <SegmentedControl\r\n sounds\r\n w='100%'\r\n value={pageId}\r\n items={props.items}\r\n onChange={(value) => {\r\n store.setState({ pageId: value as string });\r\n }}\r\n />\r\n )\r\n}","import { motion, Variants } from \"framer-motion\";\r\nimport { MotionFlex } from \"./Motion\";\r\n\r\nexport type ProgressProps = {\r\n progress: number; // 0 - 100 range\r\n segments: number; // Number of segments (e.g., 5, 10, etc.)\r\n size?: string | number;\r\n};\r\n\r\nconst containerVariants: Variants = {\r\n hidden: { opacity: 0 },\r\n visible: {\r\n opacity: 1,\r\n transition: {\r\n staggerChildren: 0.1,\r\n delayChildren: 0.05,\r\n }\r\n },\r\n exit: {\r\n opacity: 0,\r\n transition: {\r\n staggerChildren: 0.05,\r\n staggerDirection: -1,\r\n }\r\n }\r\n};\r\n\r\n// Child item variants\r\nconst itemVariants: Variants = {\r\n hidden: { \r\n opacity: 0, \r\n x: 20,\r\n scale: 0.95,\r\n },\r\n visible: {\r\n opacity: 1,\r\n x: 0,\r\n scale: 1,\r\n transition: {\r\n type: \"spring\",\r\n stiffness: 300,\r\n damping: 24,\r\n }\r\n },\r\n exit: {\r\n opacity: 0,\r\n x: -10,\r\n scale: 0.95,\r\n transition: {\r\n duration: 0.2,\r\n }\r\n }\r\n};\r\n\r\n\r\n\r\nexport function SegmentedProgress(props: ProgressProps) {\r\n const progressPerSegment = 100 / props.segments; // Percentage per segment\r\n const filledSegments = Math.floor(props.progress / progressPerSegment);\r\n const partialFill = (props.progress % progressPerSegment) / progressPerSegment; // 0 to 1 range for partial fill\r\n\r\n return (\r\n <MotionFlex \r\n w=\"100%\" \r\n h={props.size || '1vh'}\r\n gap='xs'\r\n initial='hidden'\r\n animate='visible'\r\n variants={containerVariants}\r\n >\r\n {[...Array(props.segments)].map((_, index) => {\r\n const isFilled = index < filledSegments;\r\n const isPartial = index === filledSegments;\r\n\r\n return (\r\n <motion.div\r\n key={index}\r\n variants={itemVariants}\r\n style={{\r\n flex: 1,\r\n height: \"100%\",\r\n background: isFilled\r\n ? \"rgba(255, 255, 255, 0.8)\"\r\n : isPartial\r\n ? `linear-gradient(to right, rgba(255, 255, 255, 0.8) ${partialFill * 100}%, rgba(255, 255, 255, 0.2) ${partialFill * 100}%)`\r\n : \"rgba(255, 255, 255, 0.2)\",\r\n transition: \"background 0.3s ease\",\r\n }}\r\n />\r\n );\r\n })}\r\n </MotionFlex>\r\n );\r\n}","import { colorWithAlpha } from \"@/utils\";\r\nimport { IconName } from \"@fortawesome/fontawesome-svg-core\";\r\nimport { Flex, Text, useMantineTheme } from \"@mantine/core\";\r\nimport { BorderedIcon } from \"./BorderedIcon\";\r\nimport { useSettings } from \"@/utils/useSettings\";\r\n\r\nexport type ButtonProps = {\r\n icon: string;\r\n onClick?: () => void;\r\n};\r\n\r\nexport type TitleProps = {\r\n title: string\r\n description: string;\r\n icon: string;\r\n iconColor?: string;\r\n bg?: string;\r\n w?: string;\r\n removeBorder?: boolean;\r\n borderColor?: string;\r\n p?: string;\r\n rightSection?: React.ReactNode;\r\n};\r\n\r\n\r\nexport function Title(props: TitleProps) {\r\n const game = useSettings((state) => state.game); \r\n const theme = useMantineTheme();\r\n return (\r\n <Flex\r\n direction='column'\r\n bg={props.bg || 'transparent'}\r\n gap='xs'\r\n w={props.w || '100%'}\r\n p={props.p || 'unset'}\r\n pb={!props.p ? 'sm' : props.p}\r\n // bg='red'\r\n style={{\r\n userSelect: 'none',\r\n borderBottom: props.removeBorder ? 'none' : `0.3vh solid ${props.borderColor || colorWithAlpha(theme.colors[theme.primaryColor][9], 0.5)}`\r\n }}\r\n >\r\n <Flex\r\n align='center'\r\n justify={'center'}\r\n >\r\n\r\n <Flex\r\n align='center'\r\n gap='sm'\r\n pr='xs' \r\n >\r\n <BorderedIcon\r\n icon={props.icon as IconName}\r\n fontSize={theme.fontSizes.md}\r\n color={props.iconColor}\r\n />\r\n <Flex\r\n direction='column'\r\n gap='0.25vh'\r\n // w='30%'\r\n >\r\n <Text p='0' size='sm' style={{\r\n lineHeight: theme.fontSizes.md,\r\n fontFamily: game == 'fivem' ? 'Akrobat Bold' : 'Red Dead',\r\n letterSpacing: '0.05em',\r\n textTransform: 'uppercase',\r\n }}>{props.title}</Text>\r\n <Text \r\n size='xs'\r\n c='grey'\r\n style={{ whiteSpace: 'normal', wordWrap: 'break-word' }}\r\n >{props.description}</Text>\r\n </Flex>\r\n </Flex>\r\n <Flex\r\n ml='auto'\r\n align='center'\r\n gap='xs'\r\n >\r\n {props.rightSection}\r\n </Flex>\r\n </Flex>\r\n </Flex>\r\n );\r\n}\r\n","\r\nimport { Flex, Progress, Text, useMantineTheme } from \"@mantine/core\";\r\nimport { MotionFlex } from \"./Motion\";\r\n\r\n\r\nexport function LevelBanner(props: {\r\n exp: number;\r\n level: number;\r\n nextLevelXP: number;\r\n progressToLevel: number;\r\n\r\n color?: string;\r\n}){ \r\n return (\r\n <MotionFlex\r\n // bg='rgba(77, 77, 77, 0.3)'\r\n w='35vh'\r\n pos='absolute'\r\n left='50%'\r\n align='center'\r\n gap='xs'\r\n style={{\r\n \r\n borderRadius: useMantineTheme().radius.xxs,\r\n }}\r\n // direction={'column'}\r\n initial={{ opacity: 0, y: -10, transform: 'translateX(-50%)' }}\r\n animate={{ opacity: 1, y: 0, transform: 'translateX(-50%)' }}\r\n exit={{ opacity: 0, y: -10, transform: 'translateX(-50%)' }}\r\n transition={{ duration: 0.3 }}\r\n direction={'column'}\r\n >\r\n <Flex\r\n w='100%'\r\n justify={'space-between'}\r\n >\r\n <Text\r\n size='xxs'\r\n c='rgba(255, 255, 255, 0.9)'\r\n style={{\r\n fontFamily: 'Akrobat Bold',\r\n letterSpacing: '0.1em',\r\n }}\r\n >LVL {props.level}</Text>\r\n <Text\r\n size='xxs'\r\n c='rgba(255, 255, 255, 0.7)'\r\n style={{\r\n fontFamily: 'Akrobat Bold',\r\n letterSpacing: '0.1em',\r\n }}\r\n >{props.exp}/{props.nextLevelXP} XP</Text>\r\n <Text\r\n size='xxs'\r\n c='rgba(255, 255, 255, 0.7)'\r\n style={{\r\n fontFamily: 'Akrobat Bold',\r\n letterSpacing: '0.1em', \r\n }}\r\n >LVL {props.level + 1}</Text>\r\n </Flex>\r\n <Progress\r\n color={props.color}\r\n w='100%'\r\n size='sm'\r\n value={props.progressToLevel}\r\n />\r\n </MotionFlex>\r\n\r\n )\r\n}\r\n\r\n","import { colorWithAlpha, locale } from \"@/utils\";\r\nimport { Flex, RingProgress, Text, alpha, useMantineTheme } from \"@mantine/core\";\r\n\r\nexport function LevelPanel(props: {\r\n exp: number;\r\n level: number;\r\n nextLevelXP: number;\r\n progressToLevel: number;\r\n text?: string;\r\n color?: string;\r\n}){\r\n const theme = useMantineTheme();\r\n\r\n return (\r\n <Flex\r\n w='fit-content'\r\n pr='8vh'\r\n pl='8vh'\r\n \r\n bg='linear-gradient(180deg, rgba(30, 30, 30, 0.82) 0%, rgba(30, 30, 30, 0.3) 50%, rgba(30, 30, 30, 0.6) 100%)' \r\n style={{\r\n borderRadius: theme.radius.xs,\r\n boxShadow: theme.shadows.sm,\r\n outline: '0.2vh solid rgba(255,255,255,0.1)',\r\n }}\r\n justify={'center'}\r\n align={'center'}\r\n direction={'column'}\r\n p='sm'\r\n >\r\n\r\n <RingProgress\r\n size={190}\r\n roundCaps\r\n thickness={10}\r\n sections={[{ value: props.progressToLevel, color:colorWithAlpha(props.color || theme.colors[theme.primaryColor][theme.primaryShade as number], 0.9) }]}\r\n label={\r\n <Flex\r\n justify={'center'}\r\n align={'center'}\r\n direction={'column'}\r\n >\r\n <Text\r\n size='6vh'\r\n c={colorWithAlpha(props.color || theme.colors[theme.primaryColor][theme.primaryShade as number], 0.9)}\r\n style={{\r\n fontFamily: 'Akrobat Black',\r\n textShadow: `0 0 10px ${colorWithAlpha(props.color || theme.colors[theme.primaryColor][theme.primaryShade as number], 0.7)}`, \r\n }}\r\n >\r\n {props.level}\r\n </Text>\r\n </Flex>\r\n }\r\n />\r\n <Text\r\n size='sm'\r\n style={{\r\n fontFamily: 'Akrobat Black',\r\n letterSpacing: '0.05em',\r\n textTransform: 'uppercase',\r\n }}\r\n >\r\n {props.text || locale('Level')}\r\n </Text>\r\n <Text\r\n size='xs'\r\n c='rgba(255,255,255,0.6)'\r\n >\r\n {props.exp}/{props.nextLevelXP} {locale('EXP')}\r\n </Text>\r\n </Flex>\r\n )\r\n}\r\n","import { createContext, useContext, useRef } from \"react\";\r\nimport { create, StoreApi, useStore } from \"zustand\";\r\nimport Modal from \"./Modal\";\r\n\r\ntype ModalProps = {\r\n children: React.ReactNode;\r\n title: string;\r\n icon: string;\r\n description?: string;\r\n height?: string;\r\n width?: string;\r\n clickOutside?: boolean;\r\n};\r\n\r\ntype ModalStore = {\r\n active: ModalProps | null;\r\n}\r\n\r\nexport const ModalContext = createContext<StoreApi<ModalStore> | null>(null);\r\n\r\nexport function useModal<T>(selector: (state: ModalStore) => T): T {\r\n const modal = useContext(ModalContext);\r\n if(!modal){\r\n throw new Error('useModal must be used within a ModalProvider');\r\n }\r\n return useStore(modal, selector);\r\n}\r\n\r\nexport function ModalProvider({ children, defaultPage }: { children: React.ReactNode, defaultPage?: string }){\r\n const storeRef = useRef<StoreApi<ModalStore>>(\r\n create<ModalStore>(() => ({\r\n active: null,\r\n }))\r\n );\r\n\r\n return (\r\n <ModalContext.Provider value={storeRef.current}>\r\n <Modal/>\r\n {children}\r\n </ModalContext.Provider>\r\n );\r\n}\r\n\r\nexport function useModalActions() {\r\n const modal = useContext(ModalContext);\r\n if (!modal) throw new Error(\"useModalActions must be used within a ModalProvider\");\r\n\r\n const showModal = (openModal: ModalProps) => {\r\n modal.setState({ active: openModal });\r\n };\r\n\r\n const hideModal = () => {\r\n modal.setState({ active: null });\r\n };\r\n\r\n return { showModal, hideModal };\r\n}\r\n\r\n","\r\nimport { IconProp } from \"@fortawesome/fontawesome-svg-core\";\r\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\r\nimport { alpha, Flex, Text, useMantineTheme } from \"@mantine/core\";\r\nimport { useClickOutside } from \"@mantine/hooks\";\r\nimport { AnimatePresence } from \"framer-motion\";\r\nimport { useModal, useModalActions } from \"./ModalStore\";\r\nimport { MotionFlex, MotionIcon } from \"./Motion\";\r\n\r\nexport default function Modal(){\r\n const active = useModal((state) => state.active);\r\n const {hideModal} = useModalActions();\r\n \r\n const ref = useClickOutside(() => {\r\n if (!active) return;\r\n if (active.clickOutside == false) return;\r\n if (active) {\r\n \r\n hideModal();\r\n }\r\n });\r\n\r\n const theme = useMantineTheme();\r\n \r\n return (\r\n \r\n <AnimatePresence>\r\n {active && (\r\n <MotionFlex\r\n h='100%'\r\n w='100%'\r\n bg='rgba(0, 0, 0, 0.3)'\r\n pos='absolute'\r\n style={{\r\n zIndex: 2000,\r\n filter: 'drop-shadow(0 0 2vh black)',\r\n\r\n }}\r\n initial={{ opacity: 0 }}\r\n animate={{ opacity: 1 }}\r\n exit={{ opacity: 0 }}\r\n align='center'\r\n justify='center'\r\n >\r\n\r\n <MotionFlex\r\n pos='absolute'\r\n top='50%'\r\n left='50%'\r\n ref={ref}\r\n w={active.width || '40%'}\r\n style={{\r\n transform: 'translate(-50%, -50%)',\r\n borderRadius: theme.radius.xs,\r\n boxShadow: theme.shadows.xl,\r\n zIndex: 2100,\r\n }}\r\n bg={alpha(theme.colors.dark[9], 0.9)}\r\n \r\n initial={{ scale: 0.8, opacity: 0, transform: 'translate(-50%, -50%)' }}\r\n animate={{ scale: 1, opacity: 1, transform: 'translate(-50%, -50%)' }}\r\n exit={{ scale: 0.8, opacity: 0, transform: 'translate(-50%, -50%)' }}\r\n p='sm'\r\n direction='column'\r\n // align='flex-start'\r\n // mah='80%'\r\n maw='70%'\r\n gap='xs'\r\n >\r\n\r\n <Flex\r\n direction={'column'}\r\n w='100%'\r\n >\r\n <Flex\r\n w='100%'\r\n align='center'\r\n gap='xs'\r\n >\r\n {active.icon && (\r\n <FontAwesomeIcon \r\n icon={active.icon as IconProp} \r\n style={{\r\n fontSize: theme.fontSizes.xs,\r\n }} \r\n />\r\n )}\r\n <Text\r\n size='sm'\r\n >\r\n {active.title}\r\n </Text>\r\n <MotionIcon\r\n icon='times'\r\n color='rgba(255, 255, 255, 0.7)'\r\n whileHover={{\r\n scale: 1.1,\r\n filter: 'brightness(1.2)',\r\n }}\r\n style={{\r\n marginLeft: 'auto',\r\n cursor: 'pointer',\r\n fontSize: theme.fontSizes.sm,\r\n }}\r\n onClick={() => {\r\n hideModal();\r\n }}\r\n />\r\n </Flex>\r\n {active.description && (\r\n <Text\r\n size=\"xs\"\r\n c='rgba(255, 255, 255, 0.7)'\r\n >\r\n {active.description}\r\n </Text>\r\n )}\r\n </Flex>\r\n {active.children}\r\n </MotionFlex>\r\n </MotionFlex>\r\n )}\r\n </AnimatePresence>\r\n )\r\n}\r\n\r\n","import { IconProp } from \"@fortawesome/fontawesome-svg-core\";\r\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\r\nimport { Button, Flex, Text, useMantineTheme } from \"@mantine/core\";\r\nimport { MotionFlex } from \"./Motion\";\r\n\r\n\r\nexport type PromptButton = {\r\n icon?: string;\r\n text: string;\r\n color?: string;\r\n variant?: 'filled' | 'outline' | 'light' | 'subtle' | 'default';\r\n onClick: () => void;\r\n}\r\n\r\nexport type Prompt = {\r\n message: string;\r\n buttons: PromptButton[];\r\n};\r\n\r\nexport function PromptModal(props: Prompt) {\r\n const theme = useMantineTheme();\r\n return (\r\n <MotionFlex\r\n gap='sm'\r\n direction={'column'}\r\n flex={1}\r\n >\r\n <Text\r\n size='xs'\r\n c='rgba(255, 255, 255, 0.8)'\r\n >{props.message}</Text>\r\n <Flex\r\n gap='sm'\r\n >\r\n {props.buttons.map((button, index) => (\r\n <Button\r\n key={index}\r\n variant={button.variant}\r\n color={button.color}\r\n flex={0.5}\r\n onClick={button.onClick}\r\n leftSection={button.icon ? (\r\n <FontAwesomeIcon\r\n icon={button.icon as IconProp}\r\n style={{\r\n fontSize: theme.fontSizes.xs,\r\n }}\r\n />\r\n ): undefined}\r\n >\r\n {button.text}\r\n </Button>\r\n ))}\r\n </Flex>\r\n </MotionFlex>\r\n )\r\n} \r\n\r\n"]}
1
+ {"version":3,"sources":["../../src/components/BlipSelect.tsx","../../src/utils/colorWithAlpha.ts","../../src/utils/misc.ts","../../src/utils/useSettings.ts","../../src/utils/fetchNui.ts","../../src/utils/locales.ts","../../src/utils/useItems.ts","../../src/utils/inputMapper.ts","../../src/components/BorderedIcon.tsx","../../src/components/Motion.tsx","../../src/components/Counter.tsx","../../src/components/FloatingParticles.tsx","../../src/components/InfoBox.tsx","../../src/components/InputContainer.tsx","../../src/hooks/useAudio/store.ts","../../src/components/SegmentedControl.tsx","../../src/components/Navigation.tsx","../../src/components/SegmentedProgress.tsx","../../src/components/Title.tsx","../../src/components/LevelBanner.tsx","../../src/components/LevelPanel.tsx","../../src/components/Modal.tsx","../../src/components/PromptModal.tsx","../../src/components/ModalStore.tsx","../../src/components/ConfirmModal.tsx","../../src/hooks/useForm.tsx","../../src/hooks/useScriptSettings.ts","../../src/components/SettingsPanel.tsx","../../src/components/SelectItem.tsx","../../src/components/FiveMKeyBindInput.tsx","../../src/components/AsyncSaveButton.tsx","../../src/components/AdminPageTitle.tsx"],"names":["jsxs","Group","jsx","Image","Text","Box","Select","alpha","create","useMantineTheme","Flex","FontAwesomeIcon","motion","AnimatePresence","useRef","useState","useMotionValue","useEffect","clickSoundUrl","hoverSoundUrl","createContext","useContext","useStore","Progress","RingProgress","Portal","X","Button","AlertTriangle","TextInput","Trash2","createStore","useMemo","QueryClient","Code2","JsonInput","Check","ChevronDown","useInfiniteQuery","History","Search","Filter","User","Loader","Fragment","Undo2","Redo2","SaveIcon","XCircle","RotateCcw","QueryClientProvider"],"mappings":"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","file":"index.cjs","sourcesContent":["import {\r\n Group,\r\n Text,\r\n Image,\r\n Box,\r\n Select,\r\n} from \"@mantine/core\";\r\nimport type { ComboboxItem, SelectProps } from \"@mantine/core\";\r\n\r\n// ── Blip icons: [id, name, extension] ──────────────────────────────────────\r\n\r\nconst BLIP_ENTRIES: [number, string, string][] = [\r\n [0,\"radar_higher\",\"gif\"],[1,\"radar_level\",\"png\"],[2,\"radar_lower\",\"gif\"],[3,\"radar_police_ped\",\"gif\"],\r\n [4,\"radar_wanted_radius\",\"png\"],[5,\"radar_area_blip\",\"png\"],[6,\"radar_centre\",\"png\"],[7,\"radar_north\",\"png\"],\r\n [8,\"radar_waypoint\",\"png\"],[9,\"radar_radius_blip\",\"png\"],[10,\"radar_radius_outline_blip\",\"png\"],\r\n [11,\"radar_weapon_higher\",\"gif\"],[12,\"radar_weapon_lower\",\"gif\"],[13,\"radar_higher_ai\",\"gif\"],\r\n [14,\"radar_lower_ai\",\"gif\"],[15,\"radar_police_heli_spin\",\"gif\"],[16,\"radar_police_plane_move\",\"png\"],\r\n [27,\"radar_mp_crew\",\"png\"],[28,\"radar_mp_friendlies\",\"png\"],[36,\"radar_cable_car\",\"png\"],\r\n [37,\"radar_activities\",\"png\"],[38,\"radar_raceflag\",\"png\"],[40,\"radar_safehouse\",\"png\"],\r\n [41,\"radar_police\",\"gif\"],[42,\"radar_police_chase\",\"gif\"],[43,\"radar_police_heli\",\"png\"],\r\n [44,\"radar_bomb_a\",\"png\"],[47,\"radar_snitch\",\"png\"],[48,\"radar_planning_locations\",\"png\"],\r\n [50,\"radar_crim_carsteal\",\"png\"],[51,\"radar_crim_drugs\",\"png\"],[52,\"radar_crim_holdups\",\"png\"],\r\n [54,\"radar_crim_player\",\"png\"],[56,\"radar_cop_patrol\",\"png\"],[57,\"radar_cop_player\",\"png\"],\r\n [58,\"radar_crim_wanted\",\"png\"],[59,\"radar_heist\",\"png\"],[60,\"radar_police_station\",\"png\"],\r\n [61,\"radar_hospital\",\"png\"],[62,\"radar_assassins_mark\",\"png\"],[63,\"radar_elevator\",\"png\"],\r\n [64,\"radar_helicopter\",\"png\"],[66,\"radar_random_character\",\"png\"],[67,\"radar_security_van\",\"png\"],\r\n [68,\"radar_tow_truck\",\"png\"],[70,\"radar_illegal_parking\",\"png\"],[71,\"radar_barber\",\"png\"],\r\n [72,\"radar_car_mod_shop\",\"png\"],[73,\"radar_clothes_store\",\"png\"],[75,\"radar_tattoo\",\"png\"],\r\n [76,\"radar_armenian_family\",\"png\"],[77,\"radar_lester_family\",\"png\"],[78,\"radar_michael_family\",\"png\"],\r\n [79,\"radar_trevor_family\",\"png\"],[80,\"radar_jewelry_heist\",\"png\"],[82,\"radar_drag_race_finish\",\"png\"],\r\n [84,\"radar_rampage\",\"png\"],[85,\"radar_vinewood_tours\",\"png\"],[86,\"radar_lamar_family\",\"png\"],\r\n [88,\"radar_franklin_family\",\"png\"],[89,\"radar_chinese_strand\",\"png\"],[90,\"radar_flight_school\",\"png\"],\r\n [91,\"radar_eye_sky\",\"png\"],[92,\"radar_air_hockey\",\"png\"],[93,\"radar_bar\",\"png\"],\r\n [94,\"radar_base_jump\",\"png\"],[95,\"radar_basketball\",\"png\"],[96,\"radar_biolab_heist\",\"png\"],\r\n [99,\"radar_cabaret_club\",\"png\"],[100,\"radar_car_wash\",\"png\"],[102,\"radar_comedy_club\",\"png\"],\r\n [103,\"radar_darts\",\"png\"],[104,\"radar_docks_heist\",\"png\"],[105,\"radar_fbi_heist\",\"png\"],\r\n [106,\"radar_fbi_officers_strand\",\"png\"],[107,\"radar_finale_bank_heist\",\"png\"],\r\n [108,\"radar_financier_strand\",\"png\"],[109,\"radar_golf\",\"png\"],[110,\"radar_gun_shop\",\"png\"],\r\n [111,\"radar_internet_cafe\",\"png\"],[112,\"radar_michael_family_exile\",\"png\"],\r\n [113,\"radar_nice_house_heist\",\"png\"],[114,\"radar_random_female\",\"png\"],[115,\"radar_random_male\",\"png\"],\r\n [118,\"radar_rural_bank_heist\",\"png\"],[119,\"radar_shooting_range\",\"png\"],\r\n [120,\"radar_solomon_strand\",\"png\"],[121,\"radar_strip_club\",\"png\"],[122,\"radar_tennis\",\"png\"],\r\n [123,\"radar_trevor_family_exile\",\"png\"],[124,\"radar_michael_trevor_family\",\"png\"],\r\n [126,\"radar_triathlon\",\"png\"],[127,\"radar_off_road_racing\",\"png\"],[128,\"radar_gang_cops\",\"png\"],\r\n [129,\"radar_gang_mexicans\",\"png\"],[130,\"radar_gang_bikers\",\"png\"],[133,\"radar_snitch_red\",\"png\"],\r\n [134,\"radar_crim_cuff_keys\",\"png\"],[135,\"radar_cinema\",\"png\"],[136,\"radar_music_venue\",\"png\"],\r\n [137,\"radar_police_station_blue\",\"png\"],[138,\"radar_airport\",\"png\"],\r\n [139,\"radar_crim_saved_vehicle\",\"png\"],[140,\"radar_weed_stash\",\"png\"],[141,\"radar_hunting\",\"png\"],\r\n [142,\"radar_pool\",\"png\"],[143,\"radar_objective_blue\",\"png\"],[144,\"radar_objective_green\",\"png\"],\r\n [145,\"radar_objective_red\",\"png\"],[146,\"radar_objective_yellow\",\"png\"],[147,\"radar_arms_dealing\",\"png\"],\r\n [148,\"radar_mp_friend\",\"png\"],[149,\"radar_celebrity_theft\",\"png\"],\r\n [150,\"radar_weapon_assault_rifle\",\"png\"],[151,\"radar_weapon_bat\",\"png\"],\r\n [152,\"radar_weapon_grenade\",\"png\"],[153,\"radar_weapon_health\",\"png\"],[154,\"radar_weapon_knife\",\"png\"],\r\n [155,\"radar_weapon_molotov\",\"png\"],[156,\"radar_weapon_pistol\",\"png\"],[157,\"radar_weapon_rocket\",\"png\"],\r\n [158,\"radar_weapon_shotgun\",\"png\"],[159,\"radar_weapon_smg\",\"png\"],[160,\"radar_weapon_sniper\",\"png\"],\r\n [161,\"radar_mp_noise\",\"gif\"],[162,\"radar_poi\",\"png\"],[163,\"radar_passive\",\"png\"],\r\n [164,\"radar_usingmenu\",\"png\"],[171,\"radar_gang_cops_partner\",\"png\"],[173,\"radar_weapon_minigun\",\"png\"],\r\n [175,\"radar_weapon_armour\",\"png\"],[176,\"radar_property_takeover\",\"png\"],\r\n [177,\"radar_gang_mexicans_highlight\",\"png\"],[178,\"radar_gang_bikers_highlight\",\"png\"],\r\n [179,\"radar_triathlon_cycling\",\"png\"],[180,\"radar_triathlon_swimming\",\"png\"],\r\n [181,\"radar_property_takeover_bikers\",\"png\"],[182,\"radar_property_takeover_cops\",\"png\"],\r\n [183,\"radar_property_takeover_vagos\",\"png\"],[184,\"radar_camera\",\"png\"],\r\n [185,\"radar_centre_red\",\"png\"],[186,\"radar_handcuff_keys_bikers\",\"png\"],\r\n [187,\"radar_handcuff_keys_vagos\",\"png\"],[188,\"radar_handcuffs_closed_bikers\",\"png\"],\r\n [189,\"radar_handcuffs_closed_vagos\",\"png\"],[192,\"radar_camera_badger\",\"png\"],\r\n [193,\"radar_camera_facade\",\"png\"],[194,\"radar_camera_ifruit\",\"png\"],[197,\"radar_yoga\",\"png\"],\r\n [198,\"radar_taxi\",\"png\"],[205,\"radar_shrink\",\"png\"],[206,\"radar_epsilon\",\"png\"],\r\n [207,\"radar_financier_strand_grey\",\"png\"],[208,\"radar_trevor_family_grey\",\"png\"],\r\n [209,\"radar_trevor_family_red\",\"png\"],[210,\"radar_franklin_family_grey\",\"png\"],\r\n [211,\"radar_franklin_family_blue\",\"png\"],[212,\"radar_franklin_a\",\"png\"],[213,\"radar_franklin_b\",\"png\"],\r\n [214,\"radar_franklin_c\",\"png\"],[225,\"radar_gang_vehicle\",\"png\"],\r\n [226,\"radar_gang_vehicle_bikers\",\"png\"],[227,\"radar_gang_vehicle_cops\",\"png\"],\r\n [228,\"radar_gang_vehicle_vagos\",\"png\"],[229,\"radar_guncar\",\"png\"],\r\n [230,\"radar_driving_bikers\",\"png\"],[231,\"radar_driving_cops\",\"png\"],\r\n [232,\"radar_driving_vagos\",\"png\"],[233,\"radar_gang_cops_highlight\",\"png\"],\r\n [234,\"radar_shield_bikers\",\"png\"],[235,\"radar_shield_cops\",\"png\"],\r\n [236,\"radar_shield_vagos\",\"png\"],[237,\"radar_custody_bikers\",\"png\"],\r\n [238,\"radar_custody_vagos\",\"png\"],[251,\"radar_arms_dealing_air\",\"png\"],\r\n [252,\"radar_playerstate_arrested\",\"png\"],[253,\"radar_playerstate_custody\",\"png\"],\r\n [254,\"radar_playerstate_driving\",\"png\"],[255,\"radar_playerstate_keyholder\",\"png\"],\r\n [256,\"radar_playerstate_partner\",\"png\"],[262,\"radar_ztype\",\"png\"],[263,\"radar_stinger\",\"png\"],\r\n [264,\"radar_packer\",\"png\"],[265,\"radar_monroe\",\"png\"],[266,\"radar_fairground\",\"png\"],\r\n [267,\"radar_property\",\"png\"],[268,\"radar_gang_highlight\",\"png\"],[269,\"radar_altruist\",\"png\"],\r\n [270,\"radar_ai\",\"png\"],[271,\"radar_on_mission\",\"png\"],[272,\"radar_cash_pickup\",\"png\"],\r\n [273,\"radar_chop\",\"png\"],[274,\"radar_dead\",\"png\"],[275,\"radar_territory_locked\",\"png\"],\r\n [276,\"radar_cash_lost\",\"png\"],[277,\"radar_cash_vagos\",\"png\"],[278,\"radar_cash_cops\",\"png\"],\r\n [279,\"radar_hooker\",\"png\"],[280,\"radar_friend\",\"png\"],[281,\"radar_mission_2to4\",\"png\"],\r\n [282,\"radar_mission_2to8\",\"png\"],[283,\"radar_mission_2to12\",\"png\"],[284,\"radar_mission_2to16\",\"png\"],\r\n [285,\"radar_custody_dropoff\",\"png\"],[286,\"radar_onmission_cops\",\"png\"],\r\n [287,\"radar_onmission_lost\",\"png\"],[288,\"radar_onmission_vagos\",\"png\"],\r\n [289,\"radar_crim_carsteal_cops\",\"png\"],[290,\"radar_crim_carsteal_bikers\",\"png\"],\r\n [291,\"radar_crim_carsteal_vagos\",\"png\"],[292,\"radar_band_strand\",\"png\"],\r\n [293,\"radar_simeon_family\",\"png\"],[294,\"radar_mission_1\",\"png\"],[295,\"radar_mission_2\",\"png\"],\r\n [296,\"radar_friend_darts\",\"png\"],[297,\"radar_friend_comedyclub\",\"png\"],\r\n [298,\"radar_friend_cinema\",\"png\"],[299,\"radar_friend_tennis\",\"png\"],\r\n [300,\"radar_friend_stripclub\",\"png\"],[301,\"radar_friend_livemusic\",\"png\"],\r\n [302,\"radar_friend_golf\",\"png\"],[303,\"radar_bounty_hit\",\"png\"],[304,\"radar_ugc_mission\",\"png\"],\r\n [305,\"radar_horde\",\"png\"],[306,\"radar_cratedrop\",\"png\"],[307,\"radar_plane_drop\",\"png\"],\r\n [308,\"radar_sub\",\"png\"],[309,\"radar_race\",\"png\"],[310,\"radar_deathmatch\",\"png\"],\r\n [311,\"radar_arm_wrestling\",\"png\"],[312,\"radar_mission_1to2\",\"png\"],\r\n [313,\"radar_shootingrange_gunshop\",\"png\"],[314,\"radar_race_air\",\"png\"],\r\n [315,\"radar_race_land\",\"png\"],[316,\"radar_race_sea\",\"png\"],[317,\"radar_tow\",\"png\"],\r\n [318,\"radar_garbage\",\"png\"],[319,\"radar_drill\",\"png\"],[320,\"radar_spikes\",\"png\"],\r\n [321,\"radar_firetruck\",\"png\"],[322,\"radar_minigun2\",\"png\"],[323,\"radar_bugstar\",\"png\"],\r\n [324,\"radar_submarine\",\"png\"],[325,\"radar_chinook\",\"png\"],[326,\"radar_getaway_car\",\"png\"],\r\n [327,\"radar_mission_bikers_1\",\"png\"],[328,\"radar_mission_bikers_1to2\",\"png\"],\r\n [329,\"radar_mission_bikers_2\",\"png\"],[330,\"radar_mission_bikers_2to4\",\"png\"],\r\n [331,\"radar_mission_bikers_2to8\",\"png\"],[332,\"radar_mission_bikers_2to12\",\"png\"],\r\n [333,\"radar_mission_bikers_2to16\",\"png\"],[334,\"radar_mission_cops_1\",\"png\"],\r\n [335,\"radar_mission_cops_1to2\",\"png\"],[336,\"radar_mission_cops_2\",\"png\"],\r\n [337,\"radar_mission_cops_2to4\",\"png\"],[338,\"radar_mission_cops_2to8\",\"png\"],\r\n [339,\"radar_mission_cops_2to12\",\"png\"],[340,\"radar_mission_cops_2to16\",\"png\"],\r\n [341,\"radar_mission_vagos_1\",\"png\"],[342,\"radar_mission_vagos_1to2\",\"png\"],\r\n [343,\"radar_mission_vagos_2\",\"png\"],[344,\"radar_mission_vagos_2to4\",\"png\"],\r\n [345,\"radar_mission_vagos_2to8\",\"png\"],[346,\"radar_mission_vagos_2to12\",\"png\"],\r\n [347,\"radar_mission_vagos_2to16\",\"png\"],[348,\"radar_gang_bike\",\"png\"],\r\n [349,\"radar_gas_grenade\",\"png\"],[350,\"radar_property_for_sale\",\"png\"],\r\n [351,\"radar_gang_attack_package\",\"png\"],[352,\"radar_martin_madrazzo\",\"png\"],\r\n [353,\"radar_enemy_heli_spin\",\"gif\"],[354,\"radar_boost\",\"png\"],[355,\"radar_devin\",\"png\"],\r\n [356,\"radar_dock\",\"png\"],[357,\"radar_garage\",\"png\"],[358,\"radar_golf_flag\",\"png\"],\r\n [359,\"radar_hangar\",\"png\"],[360,\"radar_helipad\",\"png\"],[361,\"radar_jerry_can\",\"png\"],\r\n [362,\"radar_mask\",\"png\"],[363,\"radar_heist_prep\",\"png\"],[364,\"radar_incapacitated\",\"png\"],\r\n [365,\"radar_spawn_point_pickup\",\"png\"],[366,\"radar_boilersuit\",\"png\"],\r\n [367,\"radar_completed\",\"png\"],[368,\"radar_rockets\",\"png\"],[369,\"radar_garage_for_sale\",\"png\"],\r\n [370,\"radar_helipad_for_sale\",\"png\"],[371,\"radar_dock_for_sale\",\"png\"],\r\n [372,\"radar_hangar_for_sale\",\"png\"],[373,\"radar_placeholder_6\",\"png\"],\r\n [374,\"radar_business\",\"png\"],[375,\"radar_business_for_sale\",\"png\"],\r\n [376,\"radar_race_bike\",\"png\"],[377,\"radar_parachute\",\"png\"],[378,\"radar_team_deathmatch\",\"png\"],\r\n [379,\"radar_race_foot\",\"png\"],[380,\"radar_vehicle_deathmatch\",\"png\"],\r\n [381,\"radar_barry\",\"png\"],[382,\"radar_dom\",\"png\"],[383,\"radar_maryann\",\"png\"],\r\n [384,\"radar_cletus\",\"png\"],[385,\"radar_josh\",\"png\"],[386,\"radar_minute\",\"png\"],\r\n [387,\"radar_omega\",\"png\"],[388,\"radar_tonya\",\"png\"],[389,\"radar_paparazzo\",\"png\"],\r\n [390,\"radar_aim\",\"png\"],[391,\"radar_cratedrop_background\",\"png\"],\r\n [392,\"radar_green_and_net_player1\",\"png\"],[393,\"radar_green_and_net_player2\",\"png\"],\r\n [394,\"radar_green_and_net_player3\",\"png\"],[395,\"radar_green_and_friendly\",\"png\"],\r\n [396,\"radar_net_player1_and_net_player2\",\"png\"],[397,\"radar_net_player1_and_net_player3\",\"png\"],\r\n [398,\"radar_creator\",\"png\"],[399,\"radar_creator_direction\",\"png\"],[400,\"radar_abigail\",\"png\"],\r\n [401,\"radar_blimp\",\"png\"],[402,\"radar_repair\",\"png\"],[403,\"radar_testosterone\",\"png\"],\r\n [404,\"radar_dinghy\",\"png\"],[405,\"radar_fanatic\",\"png\"],[407,\"radar_info_icon\",\"png\"],\r\n [408,\"radar_capture_the_flag\",\"png\"],[409,\"radar_last_team_standing\",\"png\"],\r\n [410,\"radar_boat\",\"png\"],[411,\"radar_capture_the_flag_base\",\"png\"],\r\n [412,\"radar_mp_crew\",\"png\"],[413,\"radar_capture_the_flag_outline\",\"png\"],\r\n [414,\"radar_capture_the_flag_base_nobag\",\"png\"],[415,\"radar_weapon_jerrycan\",\"png\"],\r\n [416,\"radar_rp\",\"png\"],[417,\"radar_level_inside\",\"png\"],[418,\"radar_bounty_hit_inside\",\"png\"],\r\n [419,\"radar_capture_the_usaflag\",\"png\"],[420,\"radar_capture_the_usaflag_outline\",\"png\"],\r\n [421,\"radar_tank\",\"png\"],[422,\"radar_player_heli\",\"gif\"],[423,\"radar_player_plane\",\"png\"],\r\n [424,\"radar_player_jet\",\"png\"],[425,\"radar_centre_stroke\",\"png\"],\r\n [426,\"radar_player_guncar\",\"png\"],[427,\"radar_player_boat\",\"png\"],\r\n [428,\"radar_mp_heist\",\"png\"],[429,\"radar_temp_1\",\"png\"],[430,\"radar_temp_2\",\"png\"],\r\n [431,\"radar_temp_3\",\"png\"],[432,\"radar_temp_4\",\"png\"],[433,\"radar_temp_5\",\"png\"],\r\n [434,\"radar_temp_6\",\"png\"],[435,\"radar_race_stunt\",\"png\"],[436,\"radar_hot_property\",\"png\"],\r\n [437,\"radar_urbanwarfare_versus\",\"png\"],[438,\"radar_king_of_the_castle\",\"png\"],\r\n [439,\"radar_player_king\",\"png\"],[440,\"radar_dead_drop\",\"png\"],[441,\"radar_penned_in\",\"png\"],\r\n [442,\"radar_beast\",\"png\"],[443,\"radar_edge_pointer\",\"png\"],[444,\"radar_edge_crosstheline\",\"png\"],\r\n [445,\"radar_mp_lamar\",\"png\"],[446,\"radar_bennys\",\"png\"],[447,\"radar_corner_number_1\",\"png\"],\r\n [448,\"radar_corner_number_2\",\"png\"],[449,\"radar_corner_number_3\",\"png\"],\r\n [450,\"radar_corner_number_4\",\"png\"],[451,\"radar_corner_number_5\",\"png\"],\r\n [452,\"radar_corner_number_6\",\"png\"],[453,\"radar_corner_number_7\",\"png\"],\r\n [454,\"radar_corner_number_8\",\"png\"],[455,\"radar_yacht\",\"png\"],\r\n [456,\"radar_finders_keepers\",\"png\"],[457,\"radar_assault_package\",\"png\"],\r\n [458,\"radar_hunt_the_boss\",\"png\"],[459,\"radar_sightseer\",\"png\"],\r\n [460,\"radar_turreted_limo\",\"png\"],[461,\"radar_belly_of_the_beast\",\"png\"],\r\n [462,\"radar_yacht_location\",\"png\"],[463,\"radar_pickup_beast\",\"png\"],\r\n [464,\"radar_pickup_zoned\",\"png\"],[465,\"radar_pickup_random\",\"png\"],\r\n [466,\"radar_pickup_slow_time\",\"png\"],[467,\"radar_pickup_swap\",\"png\"],\r\n [468,\"radar_pickup_thermal\",\"png\"],[469,\"radar_pickup_weed\",\"png\"],\r\n [470,\"radar_weapon_railgun\",\"png\"],[471,\"radar_seashark\",\"png\"],\r\n [472,\"radar_pickup_hidden\",\"png\"],[473,\"radar_warehouse\",\"png\"],\r\n [474,\"radar_warehouse_for_sale\",\"png\"],[475,\"radar_office\",\"png\"],\r\n [476,\"radar_office_for_sale\",\"png\"],[477,\"radar_truck\",\"png\"],\r\n [478,\"radar_contraband\",\"png\"],[479,\"radar_trailer\",\"png\"],[480,\"radar_vip\",\"png\"],\r\n [481,\"radar_cargobob\",\"png\"],[482,\"radar_area_outline_blip\",\"png\"],\r\n [483,\"radar_pickup_accelerator\",\"png\"],[484,\"radar_pickup_ghost\",\"png\"],\r\n [485,\"radar_pickup_detonator\",\"png\"],[486,\"radar_pickup_bomb\",\"png\"],\r\n [487,\"radar_pickup_armoured\",\"png\"],[488,\"radar_stunt\",\"png\"],\r\n [489,\"radar_weapon_lives\",\"png\"],[490,\"radar_stunt_premium\",\"png\"],\r\n [491,\"radar_adversary\",\"png\"],[492,\"radar_biker_clubhouse\",\"png\"],\r\n [493,\"radar_biker_caged_in\",\"png\"],[494,\"radar_biker_turf_war\",\"png\"],\r\n [495,\"radar_biker_joust\",\"png\"],[496,\"radar_production_weed\",\"png\"],\r\n [497,\"radar_production_crack\",\"png\"],[498,\"radar_production_fake_id\",\"png\"],\r\n [499,\"radar_production_meth\",\"png\"],[500,\"radar_production_money\",\"png\"],\r\n [501,\"radar_package\",\"png\"],[502,\"radar_capture_1\",\"png\"],[503,\"radar_capture_2\",\"png\"],\r\n [504,\"radar_capture_3\",\"png\"],[505,\"radar_capture_4\",\"png\"],[506,\"radar_capture_5\",\"png\"],\r\n [507,\"radar_capture_6\",\"png\"],[508,\"radar_capture_7\",\"png\"],[509,\"radar_capture_8\",\"png\"],\r\n [510,\"radar_capture_9\",\"png\"],[511,\"radar_capture_10\",\"png\"],[512,\"radar_quad\",\"png\"],\r\n [513,\"radar_bus\",\"png\"],[514,\"radar_drugs_package\",\"png\"],[515,\"radar_pickup_jump\",\"png\"],\r\n [516,\"radar_adversary_4\",\"png\"],[517,\"radar_adversary_8\",\"png\"],\r\n [518,\"radar_adversary_10\",\"png\"],[519,\"radar_adversary_12\",\"png\"],\r\n [520,\"radar_adversary_16\",\"png\"],[521,\"radar_laptop\",\"png\"],\r\n [522,\"radar_pickup_deadline\",\"png\"],[523,\"radar_sports_car\",\"png\"],\r\n [524,\"radar_warehouse_vehicle\",\"png\"],[525,\"radar_reg_papers\",\"png\"],\r\n [526,\"radar_police_station_dropoff\",\"png\"],[527,\"radar_junkyard\",\"png\"],\r\n [528,\"radar_ex_vech_1\",\"png\"],[529,\"radar_ex_vech_2\",\"png\"],[530,\"radar_ex_vech_3\",\"png\"],\r\n [531,\"radar_ex_vech_4\",\"png\"],[532,\"radar_ex_vech_5\",\"png\"],[533,\"radar_ex_vech_6\",\"png\"],\r\n [534,\"radar_ex_vech_7\",\"png\"],[535,\"radar_target_a\",\"png\"],[536,\"radar_target_b\",\"png\"],\r\n [537,\"radar_target_c\",\"png\"],[538,\"radar_target_d\",\"png\"],[539,\"radar_target_e\",\"png\"],\r\n [540,\"radar_target_f\",\"png\"],[541,\"radar_target_g\",\"png\"],[542,\"radar_target_h\",\"png\"],\r\n [543,\"radar_jugg\",\"png\"],[544,\"radar_pickup_repair\",\"png\"],[545,\"radar_steeringwheel\",\"png\"],\r\n [546,\"radar_trophy\",\"png\"],[547,\"radar_pickup_rocket_boost\",\"png\"],\r\n [548,\"radar_pickup_homing_rocket\",\"png\"],[549,\"radar_pickup_machinegun\",\"png\"],\r\n [550,\"radar_pickup_parachute\",\"png\"],[551,\"radar_pickup_time_5\",\"png\"],\r\n [552,\"radar_pickup_time_10\",\"png\"],[553,\"radar_pickup_time_15\",\"png\"],\r\n [554,\"radar_pickup_time_20\",\"png\"],[555,\"radar_pickup_time_30\",\"png\"],\r\n [556,\"radar_supplies\",\"png\"],[557,\"radar_property_bunker\",\"png\"],\r\n [558,\"radar_gr_wvm_1\",\"png\"],[559,\"radar_gr_wvm_2\",\"png\"],[560,\"radar_gr_wvm_3\",\"png\"],\r\n [561,\"radar_gr_wvm_4\",\"png\"],[562,\"radar_gr_wvm_5\",\"png\"],[563,\"radar_gr_wvm_6\",\"png\"],\r\n [564,\"radar_gr_covert_ops\",\"png\"],[565,\"radar_adversary_bunker\",\"png\"],\r\n [566,\"radar_gr_moc_upgrade\",\"png\"],[567,\"radar_gr_w_upgrade\",\"png\"],\r\n [568,\"radar_sm_cargo\",\"png\"],[569,\"radar_sm_hangar\",\"png\"],[570,\"radar_tf_checkpoint\",\"png\"],\r\n [571,\"radar_race_tf\",\"png\"],[572,\"radar_sm_wp1\",\"png\"],[573,\"radar_sm_wp2\",\"png\"],\r\n [574,\"radar_sm_wp3\",\"png\"],[575,\"radar_sm_wp4\",\"png\"],[576,\"radar_sm_wp5\",\"png\"],\r\n [577,\"radar_sm_wp6\",\"png\"],[578,\"radar_sm_wp7\",\"png\"],[579,\"radar_sm_wp8\",\"png\"],\r\n [580,\"radar_sm_wp9\",\"png\"],[581,\"radar_sm_wp10\",\"png\"],[582,\"radar_sm_wp11\",\"png\"],\r\n [583,\"radar_sm_wp12\",\"png\"],[584,\"radar_sm_wp13\",\"png\"],[585,\"radar_sm_wp14\",\"png\"],\r\n [586,\"radar_nhp_bag\",\"png\"],[587,\"radar_nhp_chest\",\"png\"],[588,\"radar_nhp_orbit\",\"png\"],\r\n [589,\"radar_nhp_veh1\",\"png\"],[590,\"radar_nhp_base\",\"png\"],[591,\"radar_nhp_overlay\",\"png\"],\r\n [592,\"radar_nhp_turret\",\"png\"],[593,\"radar_nhp_mg_firewall\",\"png\"],\r\n [594,\"radar_nhp_mg_node\",\"png\"],[595,\"radar_nhp_wp1\",\"png\"],[596,\"radar_nhp_wp2\",\"png\"],\r\n [597,\"radar_nhp_wp3\",\"png\"],[598,\"radar_nhp_wp4\",\"png\"],[599,\"radar_nhp_wp5\",\"png\"],\r\n [600,\"radar_nhp_wp6\",\"png\"],[601,\"radar_nhp_wp7\",\"png\"],[602,\"radar_nhp_wp8\",\"png\"],\r\n [603,\"radar_nhp_wp9\",\"png\"],[604,\"radar_nhp_cctv\",\"png\"],[605,\"radar_nhp_starterpack\",\"png\"],\r\n [606,\"radar_nhp_turret_console\",\"png\"],[607,\"radar_nhp_mg_mir_rotate\",\"png\"],\r\n [608,\"radar_nhp_mg_mir_static\",\"png\"],[609,\"radar_nhp_mg_proxy\",\"png\"],\r\n [610,\"radar_acsr_race_target\",\"png\"],[611,\"radar_acsr_race_hotring\",\"png\"],\r\n [612,\"radar_acsr_wp1\",\"png\"],[613,\"radar_acsr_wp2\",\"png\"],\r\n [614,\"radar_bat_club_property\",\"png\"],[615,\"radar_bat_cargo\",\"png\"],\r\n [616,\"radar_bat_truck\",\"png\"],[617,\"radar_bat_hack_jewel\",\"png\"],\r\n [618,\"radar_bat_hack_gold\",\"png\"],[619,\"radar_bat_keypad\",\"png\"],\r\n [620,\"radar_bat_hack_target\",\"png\"],[621,\"radar_pickup_dtb_health\",\"png\"],\r\n [622,\"radar_pickup_dtb_blast_increase\",\"png\"],[623,\"radar_pickup_dtb_blast_decrease\",\"png\"],\r\n [624,\"radar_pickup_dtb_bomb_increase\",\"png\"],[625,\"radar_pickup_dtb_bomb_decrease\",\"png\"],\r\n [626,\"radar_bat_rival_club\",\"png\"],[627,\"radar_bat_drone\",\"png\"],\r\n [628,\"radar_bat_cash_reg\",\"png\"],[629,\"radar_cctv\",\"png\"],\r\n [630,\"radar_bat_assassinate\",\"png\"],[631,\"radar_bat_pbus\",\"png\"],\r\n [632,\"radar_bat_wp1\",\"png\"],[633,\"radar_bat_wp2\",\"png\"],[634,\"radar_bat_wp3\",\"png\"],\r\n [635,\"radar_bat_wp4\",\"png\"],[636,\"radar_bat_wp5\",\"png\"],[637,\"radar_bat_wp6\",\"png\"],\r\n [638,\"radar_blimp_2\",\"png\"],[639,\"radar_oppressor_2\",\"png\"],[640,\"radar_bat_wp7\",\"png\"],\r\n [641,\"radar_arena_series\",\"png\"],[642,\"radar_arena_premium\",\"png\"],\r\n [643,\"radar_arena_workshop\",\"png\"],[644,\"radar_race_wars\",\"png\"],\r\n [645,\"radar_arena_turret\",\"png\"],[646,\"radar_arena_rc_car\",\"png\"],\r\n [647,\"radar_arena_rc_workshop\",\"png\"],[648,\"radar_arena_trap_fire\",\"png\"],\r\n [649,\"radar_arena_trap_flip\",\"png\"],[650,\"radar_arena_trap_sea\",\"png\"],\r\n [651,\"radar_arena_trap_turn\",\"png\"],[652,\"radar_arena_trap_pit\",\"png\"],\r\n [653,\"radar_arena_trap_mine\",\"png\"],[654,\"radar_arena_trap_bomb\",\"png\"],\r\n [655,\"radar_arena_trap_wall\",\"png\"],[656,\"radar_arena_trap_brd\",\"png\"],\r\n [657,\"radar_arena_trap_sbrd\",\"png\"],[658,\"radar_arena_bruiser\",\"png\"],\r\n [659,\"radar_arena_brutus\",\"png\"],[660,\"radar_arena_cerberus\",\"png\"],\r\n [661,\"radar_arena_deathbike\",\"png\"],[662,\"radar_arena_dominator\",\"png\"],\r\n [663,\"radar_arena_impaler\",\"png\"],[664,\"radar_arena_imperator\",\"png\"],\r\n [665,\"radar_arena_issi\",\"png\"],[666,\"radar_arena_sasquatch\",\"png\"],\r\n [667,\"radar_arena_scarab\",\"png\"],[668,\"radar_arena_slamvan\",\"png\"],\r\n [669,\"radar_arena_zr380\",\"png\"],[670,\"radar_ap\",\"png\"],[671,\"radar_comic_store\",\"png\"],\r\n [672,\"radar_cop_car\",\"png\"],[673,\"radar_rc_time_trials\",\"png\"],\r\n [674,\"radar_king_of_the_hill\",\"png\"],[675,\"radar_king_of_the_hill_teams\",\"png\"],\r\n [676,\"radar_rucksack\",\"png\"],[677,\"radar_shipping_container\",\"png\"],\r\n [678,\"radar_agatha\",\"png\"],[679,\"radar_casino\",\"png\"],\r\n [680,\"radar_casino_table_games\",\"png\"],[681,\"radar_casino_wheel\",\"png\"],\r\n [682,\"radar_casino_concierge\",\"png\"],[683,\"radar_casino_chips\",\"png\"],\r\n [684,\"radar_casino_horse_racing\",\"png\"],[685,\"radar_adversary_featured\",\"png\"],\r\n [686,\"radar_roulette_1\",\"png\"],[687,\"radar_roulette_2\",\"png\"],\r\n [688,\"radar_roulette_3\",\"png\"],[689,\"radar_roulette_4\",\"png\"],\r\n [690,\"radar_roulette_5\",\"png\"],[691,\"radar_roulette_6\",\"png\"],\r\n [692,\"radar_roulette_7\",\"png\"],[693,\"radar_roulette_8\",\"png\"],\r\n [694,\"radar_roulette_9\",\"png\"],[695,\"radar_roulette_10\",\"png\"],\r\n [696,\"radar_roulette_11\",\"png\"],[697,\"radar_roulette_12\",\"png\"],\r\n [698,\"radar_roulette_13\",\"png\"],[699,\"radar_roulette_14\",\"png\"],\r\n [700,\"radar_roulette_15\",\"png\"],[701,\"radar_roulette_16\",\"png\"],\r\n [702,\"radar_roulette_17\",\"png\"],[703,\"radar_roulette_18\",\"png\"],\r\n [704,\"radar_roulette_19\",\"png\"],[705,\"radar_roulette_20\",\"png\"],\r\n [706,\"radar_roulette_21\",\"png\"],[707,\"radar_roulette_22\",\"png\"],\r\n [708,\"radar_roulette_23\",\"png\"],[709,\"radar_roulette_24\",\"png\"],\r\n [710,\"radar_roulette_25\",\"png\"],[711,\"radar_roulette_26\",\"png\"],\r\n [712,\"radar_roulette_27\",\"png\"],[713,\"radar_roulette_28\",\"png\"],\r\n [714,\"radar_roulette_29\",\"png\"],[715,\"radar_roulette_30\",\"png\"],\r\n [716,\"radar_roulette_31\",\"png\"],[717,\"radar_roulette_32\",\"png\"],\r\n [718,\"radar_roulette_33\",\"png\"],[719,\"radar_roulette_34\",\"png\"],\r\n [720,\"radar_roulette_35\",\"png\"],[721,\"radar_roulette_36\",\"png\"],\r\n [722,\"radar_roulette_0\",\"png\"],[723,\"radar_roulette_00\",\"png\"],\r\n [724,\"radar_limo\",\"png\"],[725,\"radar_weapon_alien\",\"png\"],\r\n [726,\"radar_race_open_wheel\",\"png\"],[727,\"radar_rappel\",\"png\"],\r\n [728,\"radar_swap_car\",\"png\"],[729,\"radar_scuba_gear\",\"png\"],\r\n [730,\"radar_cpanel_1\",\"png\"],[731,\"radar_cpanel_2\",\"png\"],\r\n [732,\"radar_cpanel_3\",\"png\"],[733,\"radar_cpanel_4\",\"png\"],\r\n [734,\"radar_snow_truck\",\"png\"],[735,\"radar_buggy_1\",\"png\"],[736,\"radar_buggy_2\",\"png\"],\r\n [737,\"radar_zhaba\",\"png\"],[738,\"radar_gerald\",\"png\"],[739,\"radar_ron\",\"png\"],\r\n [740,\"radar_arcade\",\"png\"],[741,\"radar_drone_controls\",\"png\"],[742,\"radar_rc_tank\",\"png\"],\r\n [743,\"radar_stairs\",\"png\"],[744,\"radar_camera_2\",\"png\"],[745,\"radar_winky\",\"png\"],\r\n [746,\"radar_mini_sub\",\"png\"],[747,\"radar_kart_retro\",\"png\"],[748,\"radar_kart_modern\",\"png\"],\r\n [749,\"radar_military_quad\",\"png\"],[750,\"radar_military_truck\",\"png\"],\r\n [751,\"radar_ship_wheel\",\"png\"],[752,\"radar_ufo\",\"png\"],[753,\"radar_seasparrow2\",\"png\"],\r\n [754,\"radar_dinghy2\",\"png\"],[755,\"radar_patrol_boat\",\"png\"],\r\n [756,\"radar_retro_sports_car\",\"png\"],[757,\"radar_squadee\",\"png\"],\r\n [758,\"radar_folding_wing_jet\",\"png\"],[759,\"radar_valkyrie2\",\"png\"],\r\n [760,\"radar_sub2\",\"png\"],[761,\"radar_bolt_cutters\",\"png\"],\r\n [762,\"radar_rappel_gear\",\"png\"],[763,\"radar_keycard\",\"png\"],\r\n [764,\"radar_password\",\"png\"],[765,\"radar_island_heist_prep\",\"png\"],\r\n [766,\"radar_island_party\",\"png\"],[767,\"radar_control_tower\",\"png\"],\r\n [768,\"radar_underwater_gate\",\"png\"],[769,\"radar_power_switch\",\"png\"],\r\n [770,\"radar_compound_gate\",\"png\"],[771,\"radar_rappel_point\",\"png\"],\r\n [772,\"radar_keypad\",\"png\"],[773,\"radar_sub_controls\",\"png\"],\r\n [774,\"radar_sub_periscope\",\"png\"],[775,\"radar_sub_missile\",\"png\"],\r\n [776,\"radar_painting\",\"png\"],[777,\"radar_car_meet\",\"png\"],\r\n [778,\"radar_car_test_area\",\"png\"],[779,\"radar_auto_shop_property\",\"png\"],\r\n [780,\"radar_docks_export\",\"png\"],[781,\"radar_prize_car\",\"png\"],\r\n [782,\"radar_test_car\",\"png\"],[783,\"radar_car_robbery_board\",\"png\"],\r\n [784,\"radar_car_robbery_prep\",\"png\"],[785,\"radar_street_race_series\",\"png\"],\r\n [786,\"radar_pursuit_series\",\"png\"],[787,\"radar_car_meet_organiser\",\"png\"],\r\n [788,\"radar_securoserv\",\"png\"],[789,\"radar_bounty_collectibles\",\"png\"],\r\n [790,\"radar_movie_collectibles\",\"png\"],[791,\"radar_trailer_ramp\",\"png\"],\r\n [792,\"radar_race_organiser\",\"png\"],[793,\"radar_chalkboard_list\",\"png\"],\r\n [794,\"radar_export_vehicle\",\"png\"],[795,\"radar_train\",\"png\"],\r\n [796,\"radar_heist_diamond\",\"png\"],[797,\"radar_heist_doomsday\",\"png\"],\r\n [798,\"radar_heist_island\",\"png\"],[799,\"radar_slamvan2\",\"png\"],\r\n [800,\"radar_crusader\",\"png\"],[801,\"radar_construction_outfit\",\"png\"],\r\n [802,\"radar_overlay_jammed\",\"png\"],[803,\"radar_heist_island_unavailable\",\"png\"],\r\n [804,\"radar_heist_diamond_unavailable\",\"png\"],[805,\"radar_heist_doomsday_unavailable\",\"png\"],\r\n [806,\"radar_placeholder_7\",\"png\"],[807,\"radar_placeholder_8\",\"png\"],\r\n [808,\"radar_placeholder_9\",\"png\"],[809,\"radar_featured_series\",\"png\"],\r\n [810,\"radar_vehicle_for_sale\",\"png\"],[811,\"radar_van_keys\",\"png\"],\r\n [812,\"radar_suv_service\",\"png\"],[813,\"radar_security_contract\",\"png\"],\r\n [814,\"radar_safe\",\"png\"],[815,\"radar_ped_r\",\"png\"],[816,\"radar_ped_e\",\"png\"],\r\n [817,\"radar_payphone\",\"png\"],[818,\"radar_patriot3\",\"png\"],\r\n [819,\"radar_music_studio\",\"png\"],[820,\"radar_jubilee\",\"png\"],\r\n [821,\"radar_granger2\",\"png\"],[822,\"radar_explosive_charge\",\"png\"],\r\n [823,\"radar_deity\",\"png\"],[824,\"radar_d_champion\",\"png\"],[825,\"radar_buffalo4\",\"png\"],\r\n [826,\"radar_agency\",\"png\"],[827,\"radar_biker_bar\",\"png\"],\r\n [828,\"radar_simeon_overlay\",\"png\"],[829,\"radar_junk_skydive\",\"png\"],\r\n [830,\"radar_luxury_car_showroom\",\"png\"],[831,\"radar_car_showroom\",\"png\"],\r\n [832,\"radar_car_showroom_simeon\",\"png\"],[833,\"radar_flaming_skull\",\"png\"],\r\n [834,\"radar_weapon_ammo\",\"png\"],[835,\"radar_community_series\",\"png\"],\r\n [836,\"radar_cayo_series\",\"png\"],[837,\"radar_clubhouse_contract\",\"png\"],\r\n [838,\"radar_agent_ulp\",\"png\"],[839,\"radar_acid\",\"png\"],[840,\"radar_acid_lab\",\"png\"],\r\n [841,\"radar_dax_overlay\",\"png\"],[842,\"radar_dead_drop_package\",\"png\"],\r\n [843,\"radar_downtown_cab\",\"png\"],[844,\"radar_gun_van\",\"png\"],\r\n [845,\"radar_stash_house\",\"png\"],[846,\"radar_tractor\",\"png\"],\r\n [847,\"radar_warehouse_juggalo\",\"png\"],[848,\"radar_warehouse_juggalo_dax\",\"png\"],\r\n [849,\"radar_weapon_crowbar\",\"png\"],[850,\"radar_duffel_bag\",\"png\"],\r\n [851,\"radar_oil_tanker\",\"png\"],[852,\"radar_acid_lab_tent\",\"png\"],\r\n [853,\"radar_van_burrito\",\"png\"],[854,\"radar_acid_boost\",\"png\"],\r\n [855,\"radar_ped_gang_leader\",\"png\"],[856,\"radar_multistorey_garage\",\"png\"],\r\n [857,\"radar_seized_asset_sales\",\"png\"],[858,\"radar_cayo_attrition\",\"png\"],\r\n [859,\"radar_bicycle\",\"png\"],[860,\"radar_bicycle_trial\",\"png\"],\r\n [861,\"radar_raiju\",\"png\"],[862,\"radar_conada2\",\"png\"],\r\n [863,\"radar_overlay_ready_for_sell\",\"png\"],[864,\"radar_overlay_missing_supplies\",\"png\"],\r\n [865,\"radar_streamer216\",\"png\"],[866,\"radar_signal_jammer\",\"png\"],\r\n [867,\"radar_salvage_yard\",\"png\"],[868,\"radar_robbery_prep_equipment\",\"png\"],\r\n [869,\"radar_robbery_prep_overlay\",\"png\"],[870,\"radar_yusuf\",\"png\"],\r\n [871,\"radar_vincent\",\"png\"],[872,\"radar_vinewood_garage\",\"png\"],\r\n [873,\"radar_lstb\",\"png\"],[874,\"radar_cctv_workstation\",\"png\"],\r\n [875,\"radar_hacking_device\",\"png\"],[876,\"radar_race_drag\",\"png\"],\r\n [877,\"radar_race_drift\",\"png\"],[878,\"radar_casino_prep\",\"png\"],\r\n [879,\"radar_planning_wall\",\"png\"],[880,\"radar_weapon_crate\",\"png\"],\r\n [881,\"radar_weapon_snowball\",\"png\"],[882,\"radar_train_signals_green\",\"png\"],\r\n [883,\"radar_train_signals_red\",\"png\"],[884,\"radar_office_transporter\",\"png\"],\r\n [885,\"radar_yankton_survival\",\"png\"],[886,\"radar_daily_bounty\",\"png\"],\r\n [887,\"radar_bounty_target\",\"png\"],[888,\"radar_filming_schedule\",\"png\"],\r\n [889,\"radar_pizza_this\",\"png\"],[890,\"radar_aircraft_carrier\",\"png\"],\r\n [891,\"radar_weapon_emp\",\"png\"],[892,\"radar_maude_eccles\",\"png\"],\r\n [893,\"radar_bail_bonds_office\",\"png\"],[894,\"radar_weapon_emp_mine\",\"png\"],\r\n [895,\"radar_zombie_disease\",\"png\"],[896,\"radar_zombie_proximity\",\"png\"],\r\n [897,\"radar_zombie_fire\",\"png\"],[898,\"radar_animal_possessed\",\"png\"],\r\n [899,\"radar_mobile_phone\",\"png\"],[900,\"radar_garment_factory\",\"png\"],\r\n [901,\"radar_garment_factory_for_sale\",\"png\"],[902,\"radar_garment_factory_equipment\",\"png\"],\r\n [903,\"radar_field_hangar\",\"png\"],[904,\"radar_field_hangar_for_sale\",\"png\"],\r\n [905,\"radar_cargobob_ch53\",\"png\"],[906,\"radar_chopper_lift_ammo\",\"png\"],\r\n [907,\"radar_chopper_lift_armor\",\"png\"],[908,\"radar_chopper_lift_explosives\",\"png\"],\r\n [909,\"radar_chopper_lift_upgrade\",\"png\"],[910,\"radar_chopper_lift_weapon\",\"png\"],\r\n [911,\"radar_cargo_ship\",\"png\"],[912,\"radar_submarine_missile\",\"png\"],\r\n [913,\"radar_propeller_engine\",\"png\"],[914,\"radar_shark\",\"png\"],\r\n [915,\"radar_fast_travel\",\"png\"],[916,\"radar_plane_duster2\",\"png\"],\r\n [917,\"radar_plane_titan2\",\"png\"],[918,\"radar_collectible\",\"png\"],\r\n [919,\"radar_field_hangar_discount\",\"png\"],[920,\"radar_garment_factory_discount\",\"png\"],\r\n [921,\"radar_weapon_gusenberg_sweeper\",\"png\"],[922,\"radar_weapon_tear_gas\",\"png\"],\r\n [923,\"radar_dog\",\"png\"],[924,\"radar_bobcat_security\",\"png\"],\r\n [925,\"radar_smoke_shop\",\"png\"],[926,\"radar_smoke_shop_for_sale\",\"png\"],\r\n [927,\"radar_smoke_shop_attention\",\"png\"],[928,\"radar_helitours\",\"png\"],\r\n [929,\"radar_helitours_for_sale\",\"png\"],[930,\"radar_helitours_attention\",\"png\"],\r\n [931,\"radar_car_wash_business\",\"png\"],[932,\"radar_car_wash_business_for_sale\",\"png\"],\r\n [933,\"radar_car_wash_business_attention\",\"png\"],[934,\"radar_attention\",\"png\"],\r\n [935,\"radar_alarm\",\"png\"],[936,\"radar_helitours_discount\",\"png\"],\r\n [937,\"radar_smoke_shop_discount\",\"png\"],[938,\"radar_car_wash_business_discount\",\"png\"],\r\n [939,\"radar_real_estate\",\"png\"],[940,\"radar_medical_courier\",\"png\"],\r\n [941,\"radar_gruppe_sechs\",\"png\"],[942,\"radar_fire_station\",\"png\"],\r\n [943,\"radar_fire_truck\",\"png\"],[944,\"radar_alpha_mail\",\"png\"],\r\n [945,\"radar_ls_meteor\",\"png\"],[946,\"radar_four20_survival\",\"png\"],\r\n [947,\"radar_community_mission_series\",\"png\"],[948,\"radar_property_mansion\",\"png\"],\r\n [949,\"radar_ai_keypad\",\"png\"],[950,\"radar_taxi_self_drive\",\"png\"],\r\n [951,\"radar_train_subway\",\"png\"],[952,\"radar_trashbag\",\"png\"],\r\n [953,\"radar_mission_creator\",\"png\"],[954,\"radar_cat\",\"png\"],\r\n [955,\"radar_mansion_ai_m\",\"png\"],[956,\"radar_mansion_ai_f\",\"png\"],\r\n [957,\"radar_mansion_ai_gang\",\"png\"],\r\n];\r\n\r\nconst BLIP_BASE = \"https://docs.fivem.net/blips/\";\r\n\r\nfunction blipUrl(name: string, ext: string) {\r\n return `${BLIP_BASE}${name}.${ext}`;\r\n}\r\n\r\n// ── Blip colors: [id, label, hex] ──────────────────────────────────────────\r\n\r\nconst BLIP_COLORS: [number, string, string][] = [\r\n [0,\"White\",\"#FFFFFF\"],[1,\"Red\",\"#E54141\"],[2,\"Green\",\"#3FA83F\"],\r\n [3,\"Blue\",\"#5B8CCF\"],[4,\"White\",\"#FFFFFF\"],[5,\"Yellow\",\"#F0D453\"],\r\n [6,\"Light Red\",\"#E88888\"],[7,\"Violet\",\"#8C5FA8\"],[8,\"Pink\",\"#E878C8\"],\r\n [9,\"Light Orange\",\"#F0A861\"],[10,\"Light Brown\",\"#C1A470\"],[11,\"Light Green\",\"#94D468\"],\r\n [12,\"Light Blue\",\"#68C8E8\"],[13,\"Light Purple\",\"#B898E8\"],[14,\"Dark Purple\",\"#583E8E\"],\r\n [15,\"Cyan\",\"#48C8B8\"],[16,\"Light Yellow\",\"#E8E898\"],[17,\"Orange\",\"#E87830\"],\r\n [18,\"Light Blue\",\"#78A8E8\"],[19,\"Dark Pink\",\"#C83878\"],[20,\"Dark Yellow\",\"#A0A038\"],\r\n [21,\"Dark Orange\",\"#B07828\"],[22,\"Light Gray\",\"#B0B0B0\"],[23,\"Light Pink\",\"#E8A8C0\"],\r\n [24,\"Lemon Green\",\"#88F068\"],[25,\"Forest Green\",\"#388038\"],[26,\"Electric Blue\",\"#2060E0\"],\r\n [27,\"Bright Purple\",\"#9840E0\"],[28,\"Dark Yellow\",\"#7C7C28\"],[29,\"Dark Blue\",\"#283878\"],\r\n [30,\"Dark Cyan\",\"#287078\"],[31,\"Light Brown\",\"#A08858\"],[32,\"Light Blue\",\"#78B0E8\"],\r\n [33,\"Light Yellow\",\"#E8E868\"],[34,\"Light Pink\",\"#F0A0C0\"],[35,\"Light Red\",\"#E07868\"],\r\n [36,\"Beige\",\"#D8C898\"],[37,\"White\",\"#FFFFFF\"],[38,\"Blue\",\"#4870A0\"],\r\n [39,\"Light Gray\",\"#909898\"],[40,\"Dark Gray\",\"#585858\"],[41,\"Pink Red\",\"#E07088\"],\r\n [42,\"Blue\",\"#5090B8\"],[43,\"Light Green\",\"#88C868\"],[44,\"Light Orange\",\"#E09048\"],\r\n [45,\"White\",\"#F0F0F0\"],[46,\"Gold\",\"#D8B838\"],[47,\"Orange\",\"#E07020\"],\r\n];\r\n\r\n// ── Data for Select ────────────────────────────────────────────────────────\r\n\r\nconst BLIP_ICON_DATA: ComboboxItem[] = BLIP_ENTRIES.map(([id, name]) => ({\r\n value: String(id),\r\n label: `${id} — ${name}`,\r\n}));\r\n\r\nconst BLIP_COLOR_DATA: ComboboxItem[] = BLIP_COLORS.map(([id, label]) => ({\r\n value: String(id),\r\n label: `${id} — ${label}`,\r\n}));\r\n\r\n// lookup maps for rendering\r\nconst blipEntryMap = new Map(BLIP_ENTRIES.map(([id, name, ext]) => [String(id), { id, name, ext }]));\r\nconst blipColorMap = new Map(BLIP_COLORS.map(([id, label, hex]) => [String(id), { id, label, hex }]));\r\n\r\n// ── Render helpers ─────────────────────────────────────────────────────────\r\n\r\nconst renderBlipOption: SelectProps[\"renderOption\"] = ({ option }) => {\r\n const entry = blipEntryMap.get(option.value);\r\n if (!entry) return option.label;\r\n return (\r\n <Group gap=\"sm\" wrap=\"nowrap\">\r\n <Image\r\n src={blipUrl(entry.name, entry.ext)}\r\n alt={entry.name}\r\n w={24} h={24}\r\n fit=\"contain\"\r\n style={{ imageRendering: \"pixelated\" }}\r\n />\r\n <Text size=\"xs\" truncate>\r\n {entry.id} — {entry.name}\r\n </Text>\r\n </Group>\r\n );\r\n};\r\n\r\nconst renderColorOption: SelectProps[\"renderOption\"] = ({ option }) => {\r\n const entry = blipColorMap.get(option.value);\r\n if (!entry) return option.label;\r\n return (\r\n <Group gap=\"sm\" wrap=\"nowrap\">\r\n <Box\r\n w={24} h={24}\r\n style={{\r\n borderRadius: 4,\r\n backgroundColor: entry.hex,\r\n border: \"1px solid rgba(255,255,255,0.15)\",\r\n flexShrink: 0,\r\n }}\r\n />\r\n <Text size=\"xs\" truncate>\r\n {entry.id} — {entry.label}\r\n </Text>\r\n </Group>\r\n );\r\n};\r\n\r\n// ── BlipIconSelect ─────────────────────────────────────────────────────────\r\n\r\nexport type BlipIconSelectProps = Omit<SelectProps, \"data\" | \"value\" | \"onChange\" | \"searchable\" | \"renderOption\"> & {\r\n value: number | null;\r\n onChange: (id: number) => void;\r\n};\r\n\r\nexport function BlipIconSelect({ value, onChange, label = \"Blip Icon\", size = \"xs\", ...rest }: BlipIconSelectProps) {\r\n const entry = value != null ? blipEntryMap.get(String(value)) : undefined;\r\n\r\n return (\r\n <Select\r\n label={label}\r\n size={size}\r\n {...rest}\r\n searchable\r\n data={BLIP_ICON_DATA}\r\n value={value != null ? String(value) : null}\r\n onChange={(val) => val != null && onChange(Number(val))}\r\n renderOption={renderBlipOption}\r\n maxDropdownHeight={300}\r\n nothingFoundMessage=\"No results\"\r\n leftSection={\r\n entry ? (\r\n <Image\r\n src={blipUrl(entry.name, entry.ext)}\r\n alt={entry.name}\r\n w={18} h={18}\r\n fit=\"contain\"\r\n style={{ imageRendering: \"pixelated\" }}\r\n />\r\n ) : undefined\r\n }\r\n />\r\n );\r\n}\r\n\r\n// ── BlipColorSelect ────────────────────────────────────────────────────────\r\n\r\nexport type BlipColorSelectProps = Omit<SelectProps, \"data\" | \"value\" | \"onChange\" | \"searchable\" | \"renderOption\"> & {\r\n value: number | null;\r\n onChange: (id: number) => void;\r\n};\r\n\r\nexport function BlipColorSelect({ value, onChange, label = \"Blip Color\", size = \"xs\", ...rest }: BlipColorSelectProps) {\r\n const entry = value != null ? blipColorMap.get(String(value)) : undefined;\r\n\r\n return (\r\n <Select\r\n label={label}\r\n size={size}\r\n {...rest}\r\n searchable\r\n data={BLIP_COLOR_DATA}\r\n value={value != null ? String(value) : null}\r\n onChange={(val) => val != null && onChange(Number(val))}\r\n renderOption={renderColorOption}\r\n maxDropdownHeight={300}\r\n nothingFoundMessage=\"No results\"\r\n leftSection={\r\n entry ? (\r\n <Box\r\n w={18} h={18}\r\n style={{\r\n borderRadius: 4,\r\n backgroundColor: entry.hex,\r\n border: \"1px solid rgba(255,255,255,0.15)\",\r\n flexShrink: 0,\r\n }}\r\n />\r\n ) : undefined\r\n }\r\n />\r\n );\r\n}\r\n","\r\nconst colorNames = {\r\n AliceBlue: { r: 240, g: 248, b: 255 },\r\n AntiqueWhite: { r: 250, g: 235, b: 215 },\r\n Aqua: { r: 0, g: 255, b: 255 },\r\n Aquamarine: { r: 127, g: 255, b: 212 },\r\n Azure: { r: 240, g: 255, b: 255 },\r\n Beige: { r: 245, g: 245, b: 220 },\r\n Bisque: { r: 255, g: 228, b: 196 },\r\n Black: { r: 0, g: 0, b: 0 },\r\n BlanchedAlmond: { r: 255, g: 235, b: 205 },\r\n Blue: { r: 0, g: 0, b: 255 },\r\n BlueViolet: { r: 138, g: 43, b: 226 },\r\n Brown: { r: 165, g: 42, b: 42 },\r\n BurlyWood: { r: 222, g: 184, b: 135 },\r\n CadetBlue: { r: 95, g: 158, b: 160 },\r\n Chartreuse: { r: 127, g: 255, b: 0 },\r\n Chocolate: { r: 210, g: 105, b: 30 },\r\n Coral: { r: 255, g: 127, b: 80 },\r\n CornflowerBlue: { r: 100, g: 149, b: 237 },\r\n Cornsilk: { r: 255, g: 248, b: 220 },\r\n Crimson: { r: 220, g: 20, b: 60 },\r\n Cyan: { r: 0, g: 255, b: 255 },\r\n DarkBlue: { r: 0, g: 0, b: 139 },\r\n DarkCyan: { r: 0, g: 139, b: 139 },\r\n DarkGoldenRod: { r: 184, g: 134, b: 11 },\r\n DarkGray: { r: 169, g: 169, b: 169 },\r\n DarkGreen: { r: 0, g: 100, b: 0 },\r\n DarkKhaki: { r: 189, g: 183, b: 107 },\r\n DarkMagenta: { r: 139, g: 0, b: 139 },\r\n DarkOliveGreen: { r: 85, g: 107, b: 47 },\r\n DarkOrange: { r: 255, g: 140, b: 0 },\r\n DarkOrchid: { r: 153, g: 50, b: 204 },\r\n DarkRed: { r: 139, g: 0, b: 0 },\r\n DarkSalmon: { r: 233, g: 150, b: 122 },\r\n DarkSeaGreen: { r: 143, g: 188, b: 143 },\r\n DarkSlateBlue: { r: 72, g: 61, b: 139 },\r\n DarkSlateGray: { r: 47, g: 79, b: 79 },\r\n DarkTurquoise: { r: 0, g: 206, b: 209 },\r\n DarkViolet: { r: 148, g: 0, b: 211 },\r\n DeepPink: { r: 255, g: 20, b: 147 },\r\n DeepSkyBlue: { r: 0, g: 191, b: 255 },\r\n DimGray: { r: 105, g: 105, b: 105 },\r\n DodgerBlue: { r: 30, g: 144, b: 255 },\r\n FireBrick: { r: 178, g: 34, b: 34 },\r\n FloralWhite: { r: 255, g: 250, b: 240 },\r\n ForestGreen: { r: 34, g: 139, b: 34 },\r\n Fuchsia: { r: 255, g: 0, b: 255 },\r\n Gainsboro: { r: 220, g: 220, b: 220 },\r\n GhostWhite: { r: 248, g: 248, b: 255 },\r\n Gold: { r: 255, g: 215, b: 0 },\r\n GoldenRod: { r: 218, g: 165, b: 32 },\r\n Gray: { r: 128, g: 128, b: 128 },\r\n Green: { r: 0, g: 128, b: 0 },\r\n GreenYellow: { r: 173, g: 255, b: 47 },\r\n HoneyDew: { r: 240, g: 255, b: 240 },\r\n HotPink: { r: 255, g: 105, b: 180 },\r\n IndianRed: { r: 205, g: 92, b: 92 },\r\n Indigo: { r: 75, g: 0, b: 130 },\r\n Ivory: { r: 255, g: 255, b: 240 },\r\n Khaki: { r: 240, g: 230, b: 140 },\r\n Lavender: { r: 230, g: 230, b: 250 },\r\n LavenderBlush: { r: 255, g: 240, b: 245 },\r\n LawnGreen: { r: 124, g: 252, b: 0 },\r\n LemonChiffon: { r: 255, g: 250, b: 205 },\r\n LightBlue: { r: 173, g: 216, b: 230 },\r\n LightCoral: { r: 240, g: 128, b: 128 },\r\n LightCyan: { r: 224, g: 255, b: 255 },\r\n LightGoldenRodYellow: { r: 250, g: 250, b: 210 },\r\n LightGray: { r: 211, g: 211, b: 211 },\r\n LightGreen: { r: 144, g: 238, b: 144 },\r\n LightPink: { r: 255, g: 182, b: 193 },\r\n LightSalmon: { r: 255, g: 160, b: 122 },\r\n LightSeaGreen: { r: 32, g: 178, b: 170 },\r\n LightSkyBlue: { r: 135, g: 206, b: 250 },\r\n LightSlateGray: { r: 119, g: 136, b: 153 },\r\n LightSteelBlue: { r: 176, g: 196, b: 222 },\r\n LightYellow: { r: 255, g: 255, b: 224 },\r\n Lime: { r: 0, g: 255, b: 0 },\r\n LimeGreen: { r: 50, g: 205, b: 50 },\r\n Linen: { r: 250, g: 240, b: 230 },\r\n Magenta: { r: 255, g: 0, b: 255 },\r\n Maroon: { r: 128, g: 0, b: 0 }, // Maroon\r\n MediumAquaMarine: { r: 102, g: 205, b: 170 },\r\n MediumBlue: { r: 0, g: 0, b: 205 },\r\n MediumOrchid: { r: 186, g: 85, b: 211 },\r\n MediumPurple: { r: 147, g: 112, b: 219 },\r\n MediumSeaGreen: { r: 60, g: 179, b: 113 },\r\n MediumSlateBlue: { r: 123, g: 104, b: 238 },\r\n MediumSpringGreen: { r: 0, g: 250, b: 154 },\r\n MediumTurquoise: { r: 72, g: 209, b: 204 },\r\n MediumVioletRed: { r: 199, g: 21, b: 133 },\r\n MidnightBlue: { r: 25, g: 25, b: 112 },\r\n MintCream: { r: 245, g: 255, b: 250 },\r\n MistyRose: { r: 255, g: 228, b: 225 },\r\n Moccasin: { r: 255, g: 228, b: 181 },\r\n NavajoWhite: { r: 255, g: 222, b: 173 },\r\n Navy: { r: 0, g: 0, b: 128 },\r\n OldLace: { r: 253, g: 245, b: 230 },\r\n Olive: { r: 128, g: 128, b: 0 },\r\n OliveDrab: { r: 107, g: 142, b: 35 },\r\n Orange: { r: 255, g: 165, b: 0 },\r\n OrangeRed: { r: 255, g: 69, b: 0 },\r\n Orchid: { r: 218, g: 112, b: 214 },\r\n PaleGoldenRod: { r: 238, g: 232, b: 170 },\r\n PaleGreen: { r: 152, g: 251, b: 152 },\r\n PaleTurquoise: { r: 175, g: 238, b: 238 },\r\n PaleVioletRed: { r: 219, g: 112, b: 147 },\r\n PapayaWhip: { r: 255, g: 239, b: 213 },\r\n PeachPuff: { r: 255, g: 218, b: 185 },\r\n Peru: { r: 205, g: 133, b: 63 },\r\n Pink: { r: 255, g: 192, b: 203 },\r\n Plum: { r: 221, g: 160, b: 221 },\r\n PowderBlue: { r: 176, g: 224, b: 230 },\r\n Purple: { r: 128, g: 0, b: 128 },\r\n RebeccaPurple: { r: 102, g: 51, b: 153 },\r\n Red: { r: 255, g: 0, b: 0 },\r\n RosyBrown: { r: 188, g: 143, b: 143 },\r\n RoyalBlue: { r: 65, g: 105, b: 225 },\r\n SaddleBrown: { r: 139, g: 69, b: 19 },\r\n Salmon: { r: 250, g: 128, b: 114 },\r\n SandyBrown: { r: 244, g: 164, b: 96 },\r\n SeaGreen: { r: 46, g: 139, b: 87 },\r\n SeaShell: { r: 255, g: 245, b: 238 },\r\n Sienna: { r: 160, g: 82, b: 45 },\r\n Silver: { r: 192, g: 192, b: 192 },\r\n SkyBlue: { r: 135, g: 206, b: 235 },\r\n SlateBlue: { r: 106, g: 90, b: 205 },\r\n SlateGray: { r: 112, g: 128, b: 144 },\r\n Snow: { r: 255, g: 250, b: 250 },\r\n SpringGreen: { r: 0, g: 255, b: 127 },\r\n SteelBlue: { r: 70, g: 130, b: 180 },\r\n Tan: { r: 210, g: 180, b: 140 },\r\n Teal: { r: 0, g: 128, b: 128 },\r\n Thistle: { r: 216, g: 191, b: 216 },\r\n Tomato: { r: 255, g: 99, b: 71 },\r\n Turquoise: { r: 64, g: 224, b: 208 },\r\n Violet: { r: 238, g: 130, b: 238 },\r\n Wheat: { r: 245, g: 222, b: 179 },\r\n White: { r: 255, g: 255, b: 255 },\r\n WhiteSmoke: { r: 245, g: 245, b: 245 },\r\n Yellow: { r: 255, g: 255, b: 0 },\r\n YellowGreen: { r: 154, g: 205, b: 50 }\r\n};\r\n\r\n\r\n\r\n\r\nexport function colorWithAlpha(color: string, alpha: number): string {\r\n const lowerCasedColor = color.toLowerCase() as keyof typeof colorNames;\r\n \r\n if (colorNames[lowerCasedColor]) {\r\n const rgb = colorNames[lowerCasedColor];\r\n return `rgba(${rgb.r}, ${rgb.g}, ${rgb.b}, ${alpha})`;\r\n }\r\n \r\n // If color is in hex format (#RRGGBB)\r\n if (/^#([A-Fa-f0-9]{6})$/.test(color)) {\r\n const hex = color.slice(1);\r\n const bigint = parseInt(hex, 16);\r\n const r = (bigint >> 16) & 255;\r\n const g = (bigint >> 8) & 255;\r\n const b = bigint & 255;\r\n return `rgba(${r}, ${g}, ${b}, ${alpha})`;\r\n }\r\n \r\n // If color is in rgb format (rgb(r, g, b))\r\n if (/^rgb\\((\\d{1,3}), (\\d{1,3}), (\\d{1,3})\\)$/.test(color)) {\r\n const result = color.match(/^rgb\\((\\d{1,3}), (\\d{1,3}), (\\d{1,3})\\)$/);\r\n if (result) {\r\n return `rgba(${result[1]}, ${result[2]}, ${result[3]}, ${alpha})`;\r\n }\r\n }\r\n \r\n // Default to original color if format is not recognized\r\n return color;\r\n}","export const isEnvBrowser = (): boolean => !(window as any).invokeNative;\r\n\r\n// Basic no operation function\r\nexport const noop = () => {};\r\n\r\nexport const splitFAString = (faString:string) => {\r\n const [prefix, newIcon] = faString.split('-');\r\n if (!prefix || !newIcon) return {prefix: 'fas', newIcon: 'question'};\r\n return {prefix, newIcon};\r\n}\r\n\r\nexport const numberToRoman = (num:number) => {\r\n const romanNumerals = ['I', 'II', 'III', 'IV', 'V', 'VI', 'VII', 'VIII', 'IX', 'X', 'XI', 'XII', 'XIII', 'XIV', 'XV', 'XVI', 'XVII', 'XVIII', 'XIX', 'XX'] \r\n return romanNumerals[num]\r\n}\r\n\r\nexport const copyToClipboard = (text:string) => {\r\n const el = document.createElement('textarea');\r\n el.value = text;\r\n document.body.appendChild(el);\r\n el.select();\r\n document.execCommand('copy');\r\n document.body.removeChild(el);\r\n}\r\n\r\nexport const openLink = (url:string) => {\r\n if (isEnvBrowser()) {\r\n window.open(url, '_blank');\r\n } else {\r\n // @ts-expect-error -- invokeNative exists in NUI\r\n window.invokeNative('openLink', url);\r\n } \r\n}","import { MantineColorsTuple } from \"@mantine/core\";\r\nimport { create } from \"zustand\";\r\n\r\nexport type SettingsState = {\r\n game: \"fivem\" | \"rdr3\";\r\n currency: string;\r\n primaryColor: string;\r\n primaryShade: number;\r\n itemImgPath: string;\r\n resourceVersion?: string;\r\n customTheme?: MantineColorsTuple;\r\n overideResourceName?: string;\r\n};\r\n\r\nexport const useSettings = create<SettingsState>(() => ({\r\n currency: \"$\",\r\n game: \"fivem\",\r\n primaryColor: \"dirk\",\r\n primaryShade: 9,\r\n itemImgPath: \"\",\r\n resourceVersion: \"dev\",\r\n customTheme: [\r\n \"#f0f4ff\",\r\n \"#d9e3ff\",\r\n \"#bfcfff\",\r\n \"#a6bbff\",\r\n \"#8ca7ff\",\r\n \"#7393ff\",\r\n \"#5a7fff\",\r\n \"#406bff\",\r\n \"#2547ff\",\r\n \"#0b33ff\",\r\n ],\r\n}));\r\n\r\n// registerInitialFetch<Partial<SettingsState>>('GET_SETTINGS', undefined).then((data) => {\r\n// if (!data) {\r\n// console.warn('No settings data received from GET_SETTINGS fetch.');\r\n// return;\r\n// }\r\n// useSettings.setState({\r\n// ...data,\r\n// });\r\n// })\r\n","import { useEffect } from \"react\";\r\nimport { isEnvBrowser } from \"./misc\";\r\nimport { useSettings } from \"./useSettings\";\r\n\r\n/**\r\n * Simple wrapper around fetch API tailored for CEF/NUI use.\r\n */\r\nexport async function fetchNui<T = unknown>(\r\n eventName: string,\r\n data?: unknown,\r\n mockData?: T,\r\n): Promise<T> {\r\n const options = {\r\n method: \"post\",\r\n headers: {\r\n \"Content-Type\": \"application/json; charset=UTF-8\",\r\n },\r\n body: JSON.stringify(data),\r\n };\r\n\r\n if (isEnvBrowser() && mockData !== undefined) return mockData;\r\n if (isEnvBrowser() && mockData === undefined) {\r\n console.warn(\r\n `[fetchNui] Called fetchNui for event \"${eventName}\" in browser environment without mockData. Returning empty object.`,\r\n );\r\n return {} as T;\r\n }\r\n\r\n const overrideResourceName = useSettings.getState().overideResourceName;\r\n\r\n const resourceName = (window as any).GetParentResourceName\r\n ? (window as any).GetParentResourceName()\r\n : overrideResourceName ? overrideResourceName : \"dirk-cfx-react\";\r\n const resp = await fetch(`https://${resourceName}/${eventName}`, options);\r\n return await resp.json();\r\n}\r\n\r\n// -----------------------------\r\n// Initial fetch registration\r\n// -----------------------------\r\nexport type InitialFetch<T> = () => Promise<T>;\r\nexport const initialFetches: Record<string, InitialFetch<unknown>> = {};\r\n\r\n/**\r\n * Registers an initial fetch that automatically uses fetchNui.\r\n * Works like:\r\n * ```ts\r\n * registerInitialFetch<{ name: string }>(\"MY_EVENT_NAME\", undefined, { name: \"Mocky\" });\r\n * ```\r\n * and returns a Promise resolving to the same type as fetchNui.\r\n */\r\nexport async function registerInitialFetch<T = unknown>(\r\n eventName: string,\r\n data?: unknown,\r\n mockData?: T,\r\n): Promise<T> {\r\n const fetcher = () => fetchNui<T>(eventName, data, mockData);\r\n initialFetches[eventName] = fetcher;\r\n return fetcher(); // run immediately if needed\r\n}\r\n\r\n/**\r\n * Runs all registered initial fetches in parallel.\r\n */\r\nexport async function runFetches() {\r\n return Promise.all(\r\n Object.entries(initialFetches).map(async ([eventName, fetcher]) => {\r\n const data = await fetcher();\r\n return { eventName, data };\r\n }),\r\n );\r\n}\r\n\r\n/**\r\n * React hook to automatically run all registered fetches on mount.\r\n */\r\nexport const useAutoFetcher = () => {\r\n useEffect(() => {\r\n if (isEnvBrowser()) return;\r\n const run = async () => {\r\n const results = await runFetches();\r\n };\r\n run();\r\n }, []);\r\n};\r\n\r\n\r\nexport const fetchLuaTable = <T>(tableName: string, mockData?: T): Promise<T> => { \r\n return fetchNui<T>('FETCH_LUA_TABLE', { tableName }, mockData);\r\n} \r\n\r\nexport const registerInitialLuaTableFetch = <T>(tableName: string, mockData?: T): Promise<T> => { \r\n return registerInitialFetch<T>('FETCH_LUA_TABLE', { tableName }, mockData);\r\n} \r\n\r\n\r\n\r\n// useage example:\r\n// registerInitialLuaTableFetch<{ [key: string]: string }>('my_lua_table', { key1: 'value1', key2: 'value2' }); \r\n","import { create } from \"zustand\";\r\nimport { registerInitialFetch } from \"../utils/fetchNui\";\r\n\r\n\r\ntype localeType = (key: string, ...args: string[]) => string;\r\n\r\ntype LocalesProps = {\r\n [key: string]: string;\r\n}\r\n\r\ntype LocaleStoreProps = {\r\n locale: localeType;\r\n locales: LocalesProps;\r\n};\r\n\r\n\r\nexport const localeStore = create<LocaleStoreProps>((set, get) => {\r\n return {\r\n locales: {\r\n \"OccupantsDesc\": \"Here you can view and manage the occupants of your traphouse. These occupants can be used mainly for selling drugs to the NPCs surrounding your traphouse. However they have other uses to so be careful who you add as an occupant.\", \r\n },\r\n locale: (key: string, ...args: (string|number)[]): string => {\r\n const exists = get().locales[key];\r\n if (!exists){\r\n // add to a jsonfile called missing_locales.json within src of project \r\n \r\n }\r\n let translation = exists || key;\r\n if (args.length) {\r\n // convert the arg to a string and replace the %s in the translation\r\n \r\n\r\n translation = translation.replace(/%s/g, () => String(args.shift() || ''));\r\n }\r\n return translation;\r\n },\r\n };\r\n});\r\n\r\n// export locale as a standalone function \r\nexport const locale = localeStore.getState().locale;\r\n\r\nregisterInitialFetch<LocalesProps>('GET_LOCALES', undefined).then((data) => {\r\n localeStore.setState({ locales: data });\r\n})","import { create } from \"zustand\";\r\nimport { registerInitialFetch } from \"./fetchNui\";\r\n\r\nexport type InventoryItem = {\r\n name: string;\r\n label: string;\r\n weight: number;\r\n image: string;\r\n};\r\n\r\nexport type InventoryItems = Record<string, InventoryItem>;\r\n\r\nexport const useItems = create<InventoryItems>(() => ({}));\r\n\r\nexport const useItemsList = (excludeItemNames: string[] = []): InventoryItem[] => {\r\n const excludeSet = new Set(excludeItemNames);\r\n return Object.values(useItems.getState()).filter((item) => !excludeSet.has(item.name));\r\n};\r\n\r\nexport const getItemImageUrl = (itemName: string): string => {\r\n return useItems.getState()[itemName]?.image || \"\";\r\n};\r\n\r\nregisterInitialFetch<InventoryItems>(\"FETCH_ALL_ITEMS\", null, {\r\n item1: { name: \"item1\", label: \"Item 1\", weight: 0.5, image: \"item1.png\" },\r\n item2: { name: \"item2\", label: \"Item 2\", weight: 1.0, image: \"item2.png\" },\r\n item3: { name: \"item3\", label: \"Item 3\", weight: 2.5, image: \"item3.png\" },\r\n}).then((fetchedItems) => {\r\n if (!fetchedItems) return;\r\n useItems.setState(fetchedItems);\r\n});\r\n","export const INPUT_MAPPER_PRIMARY_OPTIONS = [\r\n \"DIGITALBUTTON_AXIS\",\r\n \"GAME_CONTROLLED\",\r\n \"JOYSTICK_AXIS\",\r\n \"JOYSTICK_AXIS_NEGATIVE\",\r\n \"JOYSTICK_AXIS_POSITIVE\",\r\n \"JOYSTICK_BUTTON\",\r\n \"JOYSTICK_IAXIS\",\r\n \"JOYSTICK_POV\",\r\n \"JOYSTICK_POV_AXIS\",\r\n \"KEYBOARD\",\r\n \"MKB_AXIS\",\r\n \"MOUSE_ABSOLUTEAXIS\",\r\n \"MOUSE_BUTTON\",\r\n \"MOUSE_CENTEREDAXIS\",\r\n \"MOUSE_NORMALIZED\",\r\n \"MOUSE_RELATIVEAXIS\",\r\n \"MOUSE_SCALEDAXIS\",\r\n \"MOUSE_WHEEL\",\r\n \"PAD_ANALOGBUTTON\",\r\n \"PAD_AXIS\",\r\n \"PAD_DEBUGBUTTON\",\r\n \"PAD_DIGITALBUTTON\",\r\n \"TOUCHPAD_ABSOLUTE_AXIS\",\r\n \"TOUCHPAD_CENTERED_AXIS\",\r\n] as const;\r\n\r\nconst KEYBOARD_KEYS = [\r\n \"BACK\", \"TAB\", \"RETURN\", \"PAUSE\", \"CAPITAL\", \"ESCAPE\", \"SPACE\", \"PAGEUP\", \"PAGEDOWN\",\r\n \"END\", \"HOME\", \"LEFT\", \"UP\", \"RIGHT\", \"DOWN\", \"INSERT\", \"DELETE\",\r\n \"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\",\r\n \"A\", \"B\", \"C\", \"D\", \"E\", \"F\", \"G\", \"H\", \"I\", \"J\", \"K\", \"L\", \"M\", \"N\", \"O\", \"P\", \"Q\", \"R\", \"S\", \"T\", \"U\", \"V\", \"W\", \"X\", \"Y\", \"Z\",\r\n \"F1\", \"F2\", \"F3\", \"F4\", \"F5\", \"F6\", \"F7\", \"F8\", \"F9\", \"F10\", \"F11\", \"F12\",\r\n \"NUMPAD0\", \"NUMPAD1\", \"NUMPAD2\", \"NUMPAD3\", \"NUMPAD4\", \"NUMPAD5\", \"NUMPAD6\", \"NUMPAD7\", \"NUMPAD8\", \"NUMPAD9\",\r\n \"MULTIPLY\", \"ADD\", \"SUBTRACT\", \"DECIMAL\", \"DIVIDE\", \"NUMPADENTER\",\r\n \"LSHIFT\", \"RSHIFT\", \"LCONTROL\", \"RCONTROL\", \"LMENU\", \"RMENU\",\r\n \"LWIN\", \"RWIN\", \"APPS\", \"NUMLOCK\", \"SCROLL\",\r\n \"OEM_1\", \"SEMICOLON\", \"EQUALS\", \"PLUS\", \"COMMA\", \"MINUS\", \"PERIOD\", \"SLASH\", \"OEM_2\", \"OEM_3\", \"GRAVE\",\r\n \"LBRACKET\", \"OEM_4\", \"BACKSLASH\", \"OEM_5\", \"RBRACKET\", \"OEM_6\", \"APOSTROPHE\", \"OEM_7\", \"OEM_102\",\r\n] as const;\r\n\r\nconst MOUSE_BUTTON_KEYS = [\r\n \"MOUSE_LEFT\",\r\n \"MOUSE_RIGHT\",\r\n \"MOUSE_MIDDLE\",\r\n \"MOUSE_EXTRABTN1\",\r\n \"MOUSE_EXTRABTN2\",\r\n \"MOUSE_EXTRABTN3\",\r\n \"MOUSE_EXTRABTN4\",\r\n \"MOUSE_EXTRABTN5\",\r\n \"IOM_WHEEL_UP\",\r\n \"IOM_WHEEL_DOWN\",\r\n] as const;\r\n\r\nconst MOUSE_WHEEL_KEYS = [\"IOM_WHEEL_UP\", \"IOM_WHEEL_DOWN\"] as const;\r\n\r\nconst MOUSE_AXIS_KEYS = [\r\n \"IOM_AXIS_X\",\r\n \"IOM_AXIS_Y\",\r\n \"IOM_AXIS_WHEEL\",\r\n \"IOM_AXIS_WHEEL_DELTA\",\r\n \"IOM_AXIS_WHEEL_RELATIVE\",\r\n \"IOM_IAXIS_X\",\r\n \"IOM_IAXIS_Y\",\r\n \"IOM_IAXIS_WHEEL\",\r\n \"IOM_IAXIS_WHEEL_DELTA\",\r\n \"IOM_IAXIS_WHEEL_RELATIVE\",\r\n \"IOM_AXIS_X_LEFT\",\r\n \"IOM_AXIS_X_RIGHT\",\r\n \"IOM_AXIS_Y_UP\",\r\n \"IOM_AXIS_Y_DOWN\",\r\n \"BASIC_MOUSE_AXIS_MAX\",\r\n \"MOUSE_AXIS_MAX\",\r\n] as const;\r\n\r\nconst PAD_BUTTON_KEYS = [\r\n \"L1_INDEX\",\r\n \"R1_INDEX\",\r\n \"L2_INDEX\",\r\n \"R2_INDEX\",\r\n \"L3_INDEX\",\r\n \"R3_INDEX\",\r\n \"LUP_INDEX\",\r\n \"LRIGHT_INDEX\",\r\n \"LDOWN_INDEX\",\r\n \"LLEFT_INDEX\",\r\n \"RUP_INDEX\",\r\n \"RRIGHT_INDEX\",\r\n \"RDOWN_INDEX\",\r\n \"RLEFT_INDEX\",\r\n \"SELECT_INDEX\",\r\n \"START_INDEX\",\r\n \"TOUCH_INDEX\",\r\n] as const;\r\n\r\nconst PAD_DEBUG_KEYS = [\r\n \"L1\",\r\n \"R1\",\r\n \"L2\",\r\n \"R2\",\r\n \"L3\",\r\n \"R3\",\r\n \"LUP\",\r\n \"LRIGHT\",\r\n \"LDOWN\",\r\n \"LLEFT\",\r\n \"RUP\",\r\n \"RRIGHT\",\r\n \"RDOWN\",\r\n \"RLEFT\",\r\n \"SELECT\",\r\n \"START\",\r\n \"TOUCH\",\r\n] as const;\r\n\r\nconst PAD_AXIS_KEYS = [\r\n \"IOM_AXIS_LX\",\r\n \"IOM_AXIS_LY\",\r\n \"IOM_AXIS_RX\",\r\n \"IOM_AXIS_RY\",\r\n \"IOM_AXIS_LUP\",\r\n \"IOM_AXIS_LDOWN\",\r\n \"IOM_AXIS_LLEFT\",\r\n \"IOM_AXIS_LRIGHT\",\r\n \"IOM_AXIS_LUR\",\r\n \"IOM_AXIS_LUL\",\r\n \"IOM_AXIS_LDR\",\r\n \"IOM_AXIS_LDL\",\r\n \"IOM_AXIS_RUP\",\r\n \"IOM_AXIS_RDOWN\",\r\n \"IOM_AXIS_RLEFT\",\r\n \"IOM_AXIS_RRIGHT\",\r\n \"IOM_AXIS_RUR\",\r\n \"IOM_AXIS_RUL\",\r\n \"IOM_AXIS_RDR\",\r\n \"IOM_AXIS_RDL\",\r\n \"IOM_AXIS_DPADX\",\r\n \"IOM_AXIS_DPADY\",\r\n \"IOM_AXIS_LY_UP\",\r\n \"IOM_AXIS_LY_DOWN\",\r\n \"IOM_AXIS_LX_LEFT\",\r\n \"IOM_AXIS_LX_RIGHT\",\r\n \"IOM_AXIS_RY_UP\",\r\n \"IOM_AXIS_RY_DOWN\",\r\n \"IOM_AXIS_RX_LEFT\",\r\n \"IOM_AXIS_RX_RIGHT\",\r\n] as const;\r\n\r\nconst JOYSTICK_AXIS_KEYS = Array.from({ length: 8 }, (_, i) => `IOM_JOYSTICK_AXIS${i + 1}`);\r\nconst JOYSTICK_BUTTON_KEYS = Array.from({ length: 32 }, (_, i) => `IOM_JOYSTICK_BUTTON${i + 1}`);\r\nconst JOYSTICK_POV_KEYS = Array.from({ length: 4 }, (_, p) => {\r\n const idx = p + 1;\r\n return [\r\n `IOM_POV${idx}_UP`,\r\n `IOM_POV${idx}_RIGHT`,\r\n `IOM_POV${idx}_DOWN`,\r\n `IOM_POV${idx}_LEFT`,\r\n ];\r\n}).flat();\r\n\r\nexport const INPUT_MAPPER_KEYS_BY_PRIMARY: Record<string, string[]> = {\r\n DIGITALBUTTON_AXIS: [],\r\n GAME_CONTROLLED: [],\r\n JOYSTICK_AXIS: [...JOYSTICK_AXIS_KEYS],\r\n JOYSTICK_AXIS_NEGATIVE: [...JOYSTICK_AXIS_KEYS],\r\n JOYSTICK_AXIS_POSITIVE: [...JOYSTICK_AXIS_KEYS],\r\n JOYSTICK_BUTTON: [...JOYSTICK_BUTTON_KEYS],\r\n JOYSTICK_IAXIS: [...JOYSTICK_AXIS_KEYS],\r\n JOYSTICK_POV: [...JOYSTICK_POV_KEYS],\r\n JOYSTICK_POV_AXIS: [...JOYSTICK_POV_KEYS],\r\n KEYBOARD: [...KEYBOARD_KEYS],\r\n MKB_AXIS: [],\r\n MOUSE_ABSOLUTEAXIS: [...MOUSE_AXIS_KEYS],\r\n MOUSE_BUTTON: [...MOUSE_BUTTON_KEYS],\r\n MOUSE_CENTEREDAXIS: [...MOUSE_AXIS_KEYS],\r\n MOUSE_NORMALIZED: [...MOUSE_AXIS_KEYS],\r\n MOUSE_RELATIVEAXIS: [...MOUSE_AXIS_KEYS],\r\n MOUSE_SCALEDAXIS: [...MOUSE_AXIS_KEYS],\r\n MOUSE_WHEEL: [...MOUSE_WHEEL_KEYS],\r\n PAD_ANALOGBUTTON: [...PAD_BUTTON_KEYS],\r\n PAD_AXIS: [...PAD_AXIS_KEYS],\r\n PAD_DEBUGBUTTON: [...PAD_DEBUG_KEYS],\r\n PAD_DIGITALBUTTON: [...PAD_BUTTON_KEYS],\r\n TOUCHPAD_ABSOLUTE_AXIS: [],\r\n TOUCHPAD_CENTERED_AXIS: [],\r\n};\r\n","import { colorWithAlpha } from \"@/utils\";\r\nimport { IconName } from \"@fortawesome/fontawesome-svg-core\";\r\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\r\nimport { Flex, useMantineTheme } from \"@mantine/core\";\r\n\r\nexport type BorderedIconProps = {\r\n icon: string;\r\n color?: string;\r\n fontSize?: string;\r\n hovered?: boolean;\r\n hoverable?: boolean;\r\n radius?: string;\r\n p?: string;\r\n}\r\n\r\nexport function BorderedIcon(props: BorderedIconProps){\r\n const theme = useMantineTheme();\r\n return (\r\n <Flex\r\n bg='rgba(0, 0, 0, 0.5)'\r\n p={props.p || 'xs'}\r\n justify='center'\r\n align='center'\r\n style={{\r\n aspectRatio: '1/1', \r\n \r\n borderRadius: theme.radius.xs,\r\n // border: `2px solid var(--mantine-primary-color-9)`,\r\n outline: `0.2vh solid ${colorWithAlpha(props.color ? props.color : theme.colors[theme.primaryColor][9], 0.8)}`,\r\n boxShadow: `inset 0 0 2vh ${colorWithAlpha(props.color ? props.color : theme.colors[theme.primaryColor][7], 0.5)}`\r\n }}\r\n \r\n >\r\n <FontAwesomeIcon\r\n icon={props.icon as IconName}\r\n color={colorWithAlpha(props.color ? props.color : theme.colors[theme.primaryColor][theme.primaryShade as number], props.hovered ? 0.9: 0.9)}\r\n style={{\r\n fontSize: props.fontSize ? props.fontSize: '2.5vh',\r\n }}\r\n />\r\n </Flex>\r\n )\r\n}","import { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\r\nimport { Flex, Image, Text } from \"@mantine/core\";\r\nimport { motion } from \"framer-motion\";\r\nimport React from \"react\";\r\n\r\n// @ts-expect-error ts-migrate(7006) FIXME: Parameter 'Flex' implicitly has an 'any' type.\r\nexport const MotionFlex = motion.create(Flex) as React.ComponentType<any>;\r\n// @ts-expect-error ts-migrate(7006) FIXME: Parameter 'Text' implicitly has an 'any' type.\r\nexport const MotionText = motion.create(Text) as React.ComponentType<any>;\r\n// @ts-expect-error ts-migrate(7006) FIXME: Parameter 'Image' implicitly has an 'any' type.\r\nexport const MotionImage = motion.create(Image) as React.ComponentType<any>;\r\n\r\nexport const MotionIcon = motion.create(FontAwesomeIcon);\r\n\r\n\r\n\r\n\r\n","import { AnimatePresence } from \"framer-motion\";\r\nimport { MotionFlex } from \"./Motion\";\r\n\r\nexport function Counter(props: {count: number, color?: string, style?: React.CSSProperties}) {\r\n return (\r\n <AnimatePresence>\r\n {props.count > 0 && (\r\n <MotionFlex\r\n key='counter'\r\n initial={{ opacity: 0 }}\r\n animate={{ opacity: 1 }}\r\n exit={{ opacity: 0 }}\r\n\r\n fz='1.25vh'\r\n h='1.75vh'\r\n justify={'center'}\r\n align='center'\r\n bg={props.color || 'rgba(0, 0, 0, 0.51)'}\r\n style={{\r\n borderRadius: '50%',\r\n aspectRatio: '1/1',\r\n marginBottom: '0.3vh',\r\n fontFamily: 'Akrobat Bold',\r\n boxShadow: '0 0 5px rgba(0, 0, 0, 0.3)',\r\n ...props.style\r\n }}\r\n >\r\n {props.count}\r\n </MotionFlex> \r\n )}\r\n </AnimatePresence>\r\n\r\n )\r\n}","import React, { useRef, useEffect, useState } from 'react';\r\nimport { motion, useMotionValue } from 'framer-motion';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\n\r\nexport type FloatingParticlesProps = {\r\n icons?: React.ReactNode[];\r\n particleCount?: number;\r\n color?: string;\r\n size?: number;\r\n speed?: 'slow' | 'medium' | 'fast';\r\n opacity?: number;\r\n className?: string;\r\n style?: React.CSSProperties;\r\n mouseRepelDistance?: number;\r\n mouseRepelStrength?: number;\r\n backgroundColor?: string;\r\n}\r\n\r\nexport type ParticleState = {\r\n id: number;\r\n baseX: number;\r\n baseY: number;\r\n currentX: number;\r\n currentY: number;\r\n icon: React.ReactNode | null;\r\n animationDuration: number;\r\n}\r\n\r\n\r\n\r\nexport const FloatingParticles: React.FC<FloatingParticlesProps> = ({\r\n icons = [],\r\n particleCount = 55,\r\n color = '#00a552ff',\r\n size = 32,\r\n speed = 'slow',\r\n opacity = 0.3,\r\n style = {},\r\n mouseRepelDistance = 150,\r\n mouseRepelStrength = 50,\r\n backgroundColor = 'transparent',\r\n}) => {\r\n const containerRef = useRef<HTMLDivElement>(null);\r\n const [particles, setParticles] = useState<ParticleState[]>([]);\r\n \r\n const mouseX = useMotionValue(0);\r\n const mouseY = useMotionValue(0);\r\n\r\n const durationMap = {\r\n slow: { base: 10, variance: 10 },\r\n medium: { base: 2, variance: 2},\r\n fast: { base: 4, variance: 2 },\r\n };\r\n\r\n const duration = durationMap[speed];\r\n\r\n const seededRandom = (seed: number) => {\r\n const x = Math.sin(seed) * 10000;\r\n return x - Math.floor(x);\r\n };\r\n\r\n useEffect(() => {\r\n if (!containerRef.current) return;\r\n\r\n const bounds = containerRef.current.getBoundingClientRect();\r\n\r\n const newParticles: ParticleState[] = [...Array(particleCount)].map((_, i) => {\r\n const seedX = i * 123.456;\r\n const seedY = i * 789.012;\r\n const seedDuration = i * 345.678;\r\n \r\n const baseX = seededRandom(seedX) * bounds.width;\r\n const baseY = seededRandom(seedY) * bounds.height;\r\n \r\n return {\r\n id: i,\r\n baseX,\r\n baseY,\r\n currentX: baseX,\r\n currentY: baseY,\r\n icon: icons.length > 0 ? icons[i % icons.length] : null,\r\n animationDuration: duration.base + seededRandom(seedDuration) * duration.variance,\r\n };\r\n });\r\n\r\n setParticles(newParticles);\r\n }, [particleCount, icons.length, duration.base, duration.variance]);\r\n\r\n useEffect(() => {\r\n if (!containerRef.current) return;\r\n\r\n const handleMouseMove = (e: MouseEvent) => {\r\n const bounds = containerRef.current!.getBoundingClientRect();\r\n const x = e.clientX - bounds.left;\r\n const y = e.clientY - bounds.top;\r\n \r\n mouseX.set(x);\r\n mouseY.set(y);\r\n\r\n setParticles(prevParticles => \r\n prevParticles.map(particle => {\r\n const dx = x - particle.baseX;\r\n const dy = y - particle.baseY;\r\n const distance = Math.sqrt(dx * dx + dy * dy);\r\n\r\n if (distance < mouseRepelDistance && distance > 0) {\r\n const force = (mouseRepelDistance - distance) / mouseRepelDistance;\r\n const repelX = (dx / distance) * force * mouseRepelStrength * -1;\r\n const repelY = (dy / distance) * force * mouseRepelStrength * -1;\r\n\r\n return {\r\n ...particle,\r\n currentX: particle.baseX + repelX,\r\n currentY: particle.baseY + repelY,\r\n };\r\n } else {\r\n return {\r\n ...particle,\r\n currentX: particle.baseX,\r\n currentY: particle.baseY,\r\n };\r\n }\r\n })\r\n );\r\n };\r\n\r\n const handleMouseLeave = () => {\r\n setParticles(prevParticles =>\r\n prevParticles.map(particle => ({\r\n ...particle,\r\n currentX: particle.baseX,\r\n currentY: particle.baseY,\r\n }))\r\n );\r\n };\r\n\r\n const container = containerRef.current;\r\n container.addEventListener('mousemove', handleMouseMove);\r\n container.addEventListener('mouseleave', handleMouseLeave);\r\n\r\n return () => {\r\n container.removeEventListener('mousemove', handleMouseMove);\r\n container.removeEventListener('mouseleave', handleMouseLeave);\r\n };\r\n }, [mouseX, mouseY, mouseRepelDistance, mouseRepelStrength]);\r\n\r\n useEffect(() => {\r\n const handleResize = () => {\r\n if (!containerRef.current) return;\r\n \r\n const bounds = containerRef.current.getBoundingClientRect();\r\n \r\n setParticles(prevParticles =>\r\n prevParticles.map((particle, i) => {\r\n const seedX = i * 123.456 + bounds.width;\r\n const seedY = i * 789.012 + bounds.height;\r\n \r\n const newBaseX = seededRandom(seedX) * bounds.width;\r\n const newBaseY = seededRandom(seedY) * bounds.height;\r\n \r\n return {\r\n ...particle,\r\n baseX: newBaseX,\r\n baseY: newBaseY,\r\n currentX: newBaseX,\r\n currentY: newBaseY,\r\n };\r\n })\r\n );\r\n };\r\n\r\n window.addEventListener('resize', handleResize);\r\n return () => window.removeEventListener('resize', handleResize);\r\n }, []);\r\n\r\n return (\r\n <div \r\n ref={containerRef}\r\n style={{\r\n position: 'absolute',\r\n overflow: 'hidden',\r\n width: '100%',\r\n height: '100%',\r\n zIndex: -1,\r\n \r\n backgroundColor,\r\n ...style,\r\n }}\r\n >\r\n <div style={{ position: 'absolute', inset: 0, pointerEvents: 'none' }}>\r\n {particles.map((particle) => (\r\n <motion.div\r\n key={particle.id}\r\n style={{\r\n position: 'absolute',\r\n width: size,\r\n height: size,\r\n color,\r\n opacity,\r\n left: 0,\r\n top: 0,\r\n }}\r\n animate={{\r\n x: particle.currentX,\r\n y: particle.currentY,\r\n scale: [0.8, 1.1, 0.8],\r\n opacity: [opacity * 0.5, opacity, opacity * 0.5],\r\n // random rotate between 0 and 360 so that not all particles rotate the same\r\n rotate: particle.id % 2 === 0 ? [0, 360] : [360, 0],\r\n }}\r\n transition={{\r\n x: { type: \"spring\", stiffness: 150, damping: 20 },\r\n y: { type: \"spring\", stiffness: 150, damping: 20 },\r\n rotate: {\r\n duration: particle.animationDuration,\r\n repeat: Infinity,\r\n ease: 'linear',\r\n \r\n },\r\n scale: {\r\n duration: particle.animationDuration,\r\n repeat: Infinity,\r\n delay: seededRandom(particle.id * 111.222) * 5,\r\n ease: 'easeInOut',\r\n },\r\n opacity: {\r\n duration: particle.animationDuration,\r\n repeat: Infinity,\r\n delay: seededRandom(particle.id * 333.444) * 5,\r\n ease: 'easeInOut',\r\n },\r\n }}\r\n >\r\n {particle.icon ? (\r\n <div style={{ width: '100%', height: '100%', display: 'flex', alignItems: 'center', justifyContent: 'center' }}>\r\n <FontAwesomeIcon icon={particle.icon as any} style={{ width: '70%', height: '70%' }} />\r\n </div>\r\n ) : (\r\n <div\r\n style={{\r\n width: '100%',\r\n height: '100%',\r\n borderRadius: '50%',\r\n backgroundColor: color,\r\n }}\r\n />\r\n )}\r\n </motion.div>\r\n ))}\r\n </div>\r\n </div>\r\n );\r\n};\r\n\r\n","import { useMantineTheme, Flex, Text } from \"@mantine/core\";\r\n\r\nexport type InfoBoxProps = {\r\n leftSide: string;\r\n rightSide: string;\r\n};\r\n\r\nexport function InfoBox(props: InfoBoxProps) {\r\n const theme = useMantineTheme();\r\n\r\n\r\n return (\r\n <Flex\r\n w='fit-content'\r\n h='fit-content'\r\n style={{\r\n borderRadius: theme.radius.xs,\r\n overflow: 'hidden',\r\n border: `0.2vh solid rgba(77,77,77,0.3)`\r\n }}\r\n align='center'\r\n >\r\n <Flex\r\n miw='4vh'\r\n p='xxs'\r\n bg='rgba(77,77,77,0.2)'\r\n direction='column'\r\n justify='center'\r\n align='center'\r\n >\r\n <Text c='lightgrey' size='xxs'\r\n style={{\r\n fontFamily: 'Akrobat Bold',\r\n letterSpacing: '0.05em',\r\n textTransform: 'uppercase',\r\n }}>{props.leftSide}</Text>\r\n </Flex>\r\n\r\n <Flex\r\n p='xxs'\r\n flex={1}\r\n miw='4vh'\r\n bg='rgba(77,77,77,0.5)'\r\n direction='column'\r\n align='center'\r\n justify='center'\r\n >\r\n <Text c='lightgrey' size='xxs'\r\n style={{\r\n fontFamily: 'Akrobat Bold',\r\n letterSpacing: '0.05em',\r\n textTransform: 'uppercase',\r\n }}\r\n >{props.rightSide}</Text>\r\n </Flex>\r\n\r\n </Flex>\r\n );\r\n}\r\n","import { useMantineTheme, Flex, Text, alpha } from \"@mantine/core\";\r\nimport { MotionFlex } from \"./Motion\";\r\nimport { Variants } from \"framer-motion\";\r\nimport { colorWithAlpha } from \"@/utils\";\r\n\r\nexport type InputContainerProps = {\r\n title?:string;\r\n error?: string;\r\n description?:string;\r\n children?:React.ReactNode;\r\n w?:string | number;\r\n flex?:number | string;\r\n h?:string | number;\r\n bg?:string;\r\n p?:string | number;\r\n variants?: Variants;\r\n style?:React.CSSProperties;\r\n rightSection?:React.ReactNode;\r\n}\r\n\r\nexport function InputContainer(props: InputContainerProps){\r\n const theme = useMantineTheme()\r\n return (\r\n <MotionFlex\r\n w={props.w || '100%'}\r\n flex={props.flex}\r\n direction='column'\r\n h={props.h}\r\n gap={props.title ? 'xs' : 0}\r\n \r\n\r\n bg={props.bg || alpha(theme.colors.dark[9], 0.65)}\r\n p={props.p || 'sm'}\r\n style={{\r\n borderRadius: theme.radius.xs,\r\n boxShadow: theme.shadows.sm,\r\n overflow: 'hidden',\r\n border: props.error ? `1px solid rgba(255, 100, 100, 0.8)` : '1px solid var(--mantine-color-dark-7)', \r\n ...props.style,\r\n }}\r\n variants={props.variants}\r\n >\r\n\r\n <Flex\r\n align='center'\r\n gap='xs'\r\n \r\n >\r\n {(props.title || props.description) && (\r\n <Flex\r\n direction={'column'}\r\n gap='xxs'\r\n p={props.p == '0' ? 'sm' : 0}\r\n >\r\n {props.title && (\r\n <Text\r\n size=\"sm\"\r\n style={{\r\n lineHeight: '1.25vh',\r\n fontFamily: 'Akrobat Bold',\r\n letterSpacing: '0.05em',\r\n textTransform: 'uppercase',\r\n }}\r\n >{props.title}</Text> \r\n )}\r\n {props.description && (\r\n <Text\r\n size='xs'\r\n c='rgba(255, 255, 255, 0.8)'\r\n fw={400}\r\n >{props.description}</Text> \r\n )}\r\n\r\n </Flex>\r\n )}\r\n {props.error && (\r\n <Text\r\n size='xs'\r\n c={theme.colors.red[9]}\r\n fw={600}\r\n mb='auto'\r\n lh='0.8'\r\n >\r\n {props.error}\r\n </Text> \r\n )}\r\n <Flex\r\n ml='auto'\r\n >\r\n {props.rightSection}\r\n </Flex>\r\n </Flex>\r\n {props.children} \r\n </MotionFlex>\r\n )\r\n}","import { create } from 'zustand';\r\n\r\n// Import sounds as URLs (TypeScript-safe)\r\nimport clickSoundUrl from './click_sound.mp3';\r\nimport hoverSoundUrl from './hover_sound.mp3';\r\n\r\n// Define a type for the store state and actions\r\ntype AudioPlayerStore = {\r\n play: (sound: string) => void;\r\n stop: (sound: string) => void;\r\n};\r\n\r\n// Create the store using Zustand\r\nexport const useAudio = create<AudioPlayerStore>(() => {\r\n const audioRefs: Record<string, HTMLAudioElement> = {};\r\n\r\n // Predefined sounds\r\n const sounds: Record<string, string> = {\r\n click: clickSoundUrl,\r\n hover: hoverSoundUrl,\r\n };\r\n\r\n // Initialize audio elements for each sound\r\n for (const [key, src] of Object.entries(sounds)) {\r\n audioRefs[key] = new Audio(src);\r\n }\r\n\r\n return {\r\n play: (sound) => {\r\n const audio = audioRefs[sound];\r\n if (!audio) return console.warn(`Sound '${sound}' not found.`);\r\n audio.currentTime = 0;\r\n audio.volume = 0.1;\r\n audio.play();\r\n },\r\n stop: (sound) => {\r\n const audio = audioRefs[sound];\r\n if (!audio) return console.warn(`Sound '${sound}' not found.`);\r\n audio.pause();\r\n audio.currentTime = 0;\r\n },\r\n };\r\n});\r\n","\r\nimport { useAudio } from \"@/hooks/useAudio/store\";\r\nimport { colorWithAlpha } from \"@/utils\";\r\nimport { IconProp } from \"@fortawesome/fontawesome-svg-core\";\r\nimport { alpha, Flex, FlexProps, useMantineTheme } from \"@mantine/core\";\r\nimport { motion } from \"framer-motion\";\r\nimport { MotionFlex, MotionIcon, MotionText } from \"./Motion\";\r\n\r\n\r\nexport type SegmentProps = {\r\n label: string;\r\n value: string;\r\n icon?: string; // Optional icon for the segment\r\n rightSection?: React.ReactNode;\r\n color?: string;\r\n}\r\n\r\nexport type SegmentedControlProps = {\r\n w?: string; // Width of the entire control\r\n multi?: boolean; // Optional prop to allow multiple selections\r\n value?: string | string[]; // Controlled value, if provided\r\n onChange?: (value: string | string[]) => void; // Callback for value change\r\n fz?: string; // Font size for the segments\r\n justify?: FlexProps['justify']; \r\n items: SegmentProps[];\r\n sounds?: boolean;\r\n roundEdges?: boolean;\r\n color?: string;\r\n} & FlexProps;\r\n\r\nexport function SegmentedControl(props: SegmentedControlProps) {\r\n const theme = useMantineTheme();\r\n const play = useAudio((state) => state.play);\r\n\r\n const handleChange = (newValue: string | string[]) => {\r\n if (props.sounds) play('click');\r\n if (props.onChange) {\r\n props.onChange(newValue);\r\n }\r\n };\r\n\r\n return (\r\n <Flex\r\n bg='rgba(33, 33, 33, 0.6)'\r\n w={props.w || 'fit-content'}\r\n style={{\r\n borderRadius: props.roundEdges !== false ? theme.radius.xs : 0,\r\n overflow: 'hidden',\r\n }}\r\n {...props}\r\n >\r\n {props.items.map((item, index) => (\r\n <motion.div\r\n key={index}\r\n initial={{ x: -100, opacity: 0 }}\r\n animate={{ x: 0, opacity: 1 }}\r\n transition={{ duration: 0.3, delay: index * 0.1, ease: 'easeInOut' }}\r\n\r\n style={{\r\n display: 'flex',\r\n flexDirection: 'row',\r\n alignItems: 'center',\r\n flex: 1,\r\n }}\r\n >\r\n <Segment\r\n key={item.value}\r\n label={item.label}\r\n value={item.value}\r\n icon={item.icon}\r\n rightSection={item.rightSection}\r\n fz={props.fz}\r\n color={props.color}\r\n selected={!props.multi ? props.value === item.value : Array.isArray(props.value) && props.value.includes(item.value)}\r\n onClick={() => {\r\n\r\n if (props.multi) {\r\n const newValue = Array.isArray(props.value)\r\n ? props.value.includes(item.value)\r\n ? props.value.filter((v) => v !== item.value)\r\n : [...props.value, item.value]\r\n : [item.value];\r\n\r\n handleChange(newValue);\r\n } else {\r\n handleChange(item.value);\r\n }\r\n }}\r\n />\r\n </motion.div>\r\n ))}\r\n </Flex>\r\n )\r\n}\r\n\r\nfunction Segment(props: SegmentProps & {\r\n selected: boolean;\r\n onClick: () => void;\r\n fz?: string;\r\n}) {\r\n const theme = useMantineTheme();\r\n\r\n return (\r\n <MotionFlex\r\n onClick={props.onClick}\r\n w='100%'\r\n direction=\"column\"\r\n align=\"center\"\r\n // p='xs'\r\n h='100%'\r\n bg={props.selected ? props.color ? colorWithAlpha(props.color, 0.2) : colorWithAlpha(theme.colors[theme.primaryColor][theme.primaryShade as number], 0.2) : 'transparent'}\r\n pos=\"relative\"\r\n style={{\r\n // position: \"relative\",\r\n cursor: \"pointer\",\r\n }}\r\n justify={'center'}\r\n whileHover={{ scale: 1.05 }}\r\n whileTap={{ scale: 0.95 }}\r\n >\r\n <Flex\r\n align='center'\r\n gap='xs'\r\n // bg='red'\r\n p='xs'\r\n >\r\n \r\n {props.icon && \r\n <MotionIcon\r\n icon={props.icon as IconProp}\r\n // size='sm'\r\n initial={{\r\n color: props.selected ? props.color || theme.colors[theme.primaryColor][5] : 'inherit', \r\n }}\r\n animate={{\r\n color: props.selected ? props.color || theme.colors[theme.primaryColor][5] : 'inherit', \r\n }}\r\n exit={{\r\n color: 'inherit',\r\n }}\r\n style={{\r\n fontSize: theme.fontSizes.xs,\r\n marginBottom: '0.2vh',\r\n }}\r\n />\r\n }\r\n <MotionText\r\n size={props.fz || 'xs'}\r\n initial={{\r\n color: props.selected ? props.color || theme.colors[theme.primaryColor][5] : 'rgba(255, 255, 255, 0.7)', \r\n }}\r\n animate={{\r\n color: props.selected ? props.color || theme.colors[theme.primaryColor][5] : 'rgba(255, 255, 255, 0.7)', \r\n }}\r\n exit={{\r\n color: 'rgba(255, 255, 255, 0.7)',\r\n }}\r\n style={{\r\n fontFamily: 'Akrobat Bold',\r\n letterSpacing: '0.1em',\r\n textTransform: 'uppercase',\r\n }}\r\n >{props.label.toUpperCase()}</MotionText>\r\n {props.rightSection}\r\n </Flex>\r\n\r\n {/* Enhanced bottom border with smooth animation */}\r\n <motion.div\r\n initial={false}\r\n animate={{\r\n scaleX: props.selected ? 1 : 0,\r\n opacity: props.selected ? 1 : 0,\r\n }}\r\n transition={{\r\n duration: 0.3,\r\n ease: [0.4, 0, 0.2, 1], // Custom easing curve for smooth feel\r\n }}\r\n style={{\r\n position: 'absolute',\r\n bottom: 0,\r\n left: 0,\r\n right: 0,\r\n height: '0.2vh',\r\n backgroundColor: props.color || theme.colors[theme.primaryColor][5],\r\n transformOrigin: 'center',\r\n }}\r\n />\r\n </MotionFlex>\r\n );\r\n}","import { createContext, useContext, useRef } from \"react\";\r\nimport { create, StoreApi, useStore } from \"zustand\";\r\nimport {SegmentedControl, SegmentProps} from \"./SegmentedControl\";\r\n\r\nexport type NavigationStore = {\r\n pageId: string;\r\n}\r\n\r\nexport const NavigationContext = createContext<StoreApi<NavigationStore> | null>(null);\r\n\r\nexport function useNavigation<T>(selector: (state: NavigationStore) => T){\r\n const navigation = useContext(NavigationContext);\r\n if(!navigation){\r\n throw new Error('useNavigation must be used within a NavigationProvider');\r\n }\r\n return useStore(navigation, selector);\r\n}\r\n\r\n// Hook to get the store API for setting state\r\nexport function useNavigationStore(){\r\n const navigation = useContext(NavigationContext);\r\n if(!navigation){\r\n throw new Error('useNavigationStore must be used within a NavigationProvider');\r\n }\r\n return navigation;\r\n}\r\n\r\nexport function NavigationProvider({ children, defaultPage }: { children: React.ReactNode, defaultPage?: string }){\r\n const storeRef = useRef<StoreApi<NavigationStore>>(\r\n create<NavigationStore>(() => ({\r\n pageId: defaultPage || 'home',\r\n }))\r\n );\r\n\r\n return (\r\n <NavigationContext.Provider value={storeRef.current}>\r\n {children}\r\n </NavigationContext.Provider>\r\n );\r\n}\r\n\r\nexport function NavBar(props: {\r\n items: SegmentProps[];\r\n}){\r\n const pageId = useNavigation((state) => state.pageId);\r\n const store = useNavigationStore();\r\n \r\n return (\r\n <SegmentedControl\r\n sounds\r\n w='100%'\r\n value={pageId}\r\n items={props.items}\r\n onChange={(value) => {\r\n store.setState({ pageId: value as string });\r\n }}\r\n />\r\n )\r\n}","import { motion, Variants } from \"framer-motion\";\r\nimport { MotionFlex } from \"./Motion\";\r\n\r\nexport type ProgressProps = {\r\n progress: number; // 0 - 100 range\r\n segments: number; // Number of segments (e.g., 5, 10, etc.)\r\n size?: string | number;\r\n};\r\n\r\nconst containerVariants: Variants = {\r\n hidden: { opacity: 0 },\r\n visible: {\r\n opacity: 1,\r\n transition: {\r\n staggerChildren: 0.1,\r\n delayChildren: 0.05,\r\n }\r\n },\r\n exit: {\r\n opacity: 0,\r\n transition: {\r\n staggerChildren: 0.05,\r\n staggerDirection: -1,\r\n }\r\n }\r\n};\r\n\r\n// Child item variants\r\nconst itemVariants: Variants = {\r\n hidden: { \r\n opacity: 0, \r\n x: 20,\r\n scale: 0.95,\r\n },\r\n visible: {\r\n opacity: 1,\r\n x: 0,\r\n scale: 1,\r\n transition: {\r\n type: \"spring\",\r\n stiffness: 300,\r\n damping: 24,\r\n }\r\n },\r\n exit: {\r\n opacity: 0,\r\n x: -10,\r\n scale: 0.95,\r\n transition: {\r\n duration: 0.2,\r\n }\r\n }\r\n};\r\n\r\n\r\n\r\nexport function SegmentedProgress(props: ProgressProps) {\r\n const progressPerSegment = 100 / props.segments; // Percentage per segment\r\n const filledSegments = Math.floor(props.progress / progressPerSegment);\r\n const partialFill = (props.progress % progressPerSegment) / progressPerSegment; // 0 to 1 range for partial fill\r\n\r\n return (\r\n <MotionFlex \r\n w=\"100%\" \r\n h={props.size || '1vh'}\r\n gap='xs'\r\n initial='hidden'\r\n animate='visible'\r\n variants={containerVariants}\r\n >\r\n {[...Array(props.segments)].map((_, index) => {\r\n const isFilled = index < filledSegments;\r\n const isPartial = index === filledSegments;\r\n\r\n return (\r\n <motion.div\r\n key={index}\r\n variants={itemVariants}\r\n style={{\r\n flex: 1,\r\n height: \"100%\",\r\n background: isFilled\r\n ? \"rgba(255, 255, 255, 0.8)\"\r\n : isPartial\r\n ? `linear-gradient(to right, rgba(255, 255, 255, 0.8) ${partialFill * 100}%, rgba(255, 255, 255, 0.2) ${partialFill * 100}%)`\r\n : \"rgba(255, 255, 255, 0.2)\",\r\n transition: \"background 0.3s ease\",\r\n }}\r\n />\r\n );\r\n })}\r\n </MotionFlex>\r\n );\r\n}","import { colorWithAlpha } from \"@/utils\";\r\nimport { IconName } from \"@fortawesome/fontawesome-svg-core\";\r\nimport { Flex, Text, useMantineTheme } from \"@mantine/core\";\r\nimport { BorderedIcon } from \"./BorderedIcon\";\r\nimport { useSettings } from \"@/utils/useSettings\";\r\n\r\nexport type ButtonProps = {\r\n icon: string;\r\n onClick?: () => void;\r\n};\r\n\r\nexport type TitleProps = {\r\n title: string\r\n description: string;\r\n icon: string;\r\n iconColor?: string;\r\n bg?: string;\r\n w?: string;\r\n removeBorder?: boolean;\r\n borderColor?: string;\r\n p?: string;\r\n rightSection?: React.ReactNode;\r\n};\r\n\r\n\r\nexport function Title(props: TitleProps) {\r\n const game = useSettings((state) => state.game); \r\n const theme = useMantineTheme();\r\n return (\r\n <Flex\r\n direction='column'\r\n bg={props.bg || 'transparent'}\r\n gap='xs'\r\n w={props.w || '100%'}\r\n p={props.p || 'unset'}\r\n pb={!props.p ? 'sm' : props.p}\r\n // bg='red'\r\n style={{\r\n userSelect: 'none',\r\n borderBottom: props.removeBorder ? 'none' : `0.3vh solid ${props.borderColor || colorWithAlpha(theme.colors[theme.primaryColor][9], 0.5)}`\r\n }}\r\n >\r\n <Flex\r\n align='center'\r\n justify={'center'}\r\n >\r\n\r\n <Flex\r\n align='center'\r\n gap='sm'\r\n pr='xs' \r\n >\r\n <BorderedIcon\r\n icon={props.icon as IconName}\r\n fontSize={theme.fontSizes.md}\r\n color={props.iconColor}\r\n />\r\n <Flex\r\n direction='column'\r\n gap='0.25vh'\r\n // w='30%'\r\n >\r\n <Text p='0' size='sm' style={{\r\n lineHeight: theme.fontSizes.md,\r\n fontFamily: game == 'fivem' ? 'Akrobat Bold' : 'Red Dead',\r\n letterSpacing: '0.05em',\r\n textTransform: 'uppercase',\r\n }}>{props.title}</Text>\r\n <Text \r\n size='xs'\r\n c='grey'\r\n style={{ whiteSpace: 'normal', wordWrap: 'break-word' }}\r\n >{props.description}</Text>\r\n </Flex>\r\n </Flex>\r\n <Flex\r\n ml='auto'\r\n align='center'\r\n gap='xs'\r\n >\r\n {props.rightSection}\r\n </Flex>\r\n </Flex>\r\n </Flex>\r\n );\r\n}\r\n","\r\nimport { Flex, Progress, Text, useMantineTheme } from \"@mantine/core\";\r\nimport { MotionFlex } from \"./Motion\";\r\n\r\n\r\nexport function LevelBanner(props: {\r\n exp: number;\r\n level: number;\r\n nextLevelXP: number;\r\n progressToLevel: number;\r\n\r\n color?: string;\r\n}){ \r\n return (\r\n <MotionFlex\r\n // bg='rgba(77, 77, 77, 0.3)'\r\n w='35vh'\r\n pos='absolute'\r\n left='50%'\r\n align='center'\r\n gap='xs'\r\n style={{\r\n \r\n borderRadius: useMantineTheme().radius.xxs,\r\n }}\r\n // direction={'column'}\r\n initial={{ opacity: 0, y: -10, transform: 'translateX(-50%)' }}\r\n animate={{ opacity: 1, y: 0, transform: 'translateX(-50%)' }}\r\n exit={{ opacity: 0, y: -10, transform: 'translateX(-50%)' }}\r\n transition={{ duration: 0.3 }}\r\n direction={'column'}\r\n >\r\n <Flex\r\n w='100%'\r\n justify={'space-between'}\r\n >\r\n <Text\r\n size='xxs'\r\n c='rgba(255, 255, 255, 0.9)'\r\n style={{\r\n fontFamily: 'Akrobat Bold',\r\n letterSpacing: '0.1em',\r\n }}\r\n >LVL {props.level}</Text>\r\n <Text\r\n size='xxs'\r\n c='rgba(255, 255, 255, 0.7)'\r\n style={{\r\n fontFamily: 'Akrobat Bold',\r\n letterSpacing: '0.1em',\r\n }}\r\n >{props.exp}/{props.nextLevelXP} XP</Text>\r\n <Text\r\n size='xxs'\r\n c='rgba(255, 255, 255, 0.7)'\r\n style={{\r\n fontFamily: 'Akrobat Bold',\r\n letterSpacing: '0.1em', \r\n }}\r\n >LVL {props.level + 1}</Text>\r\n </Flex>\r\n <Progress\r\n color={props.color}\r\n w='100%'\r\n size='sm'\r\n value={props.progressToLevel}\r\n />\r\n </MotionFlex>\r\n\r\n )\r\n}\r\n\r\n","import { colorWithAlpha, locale } from \"@/utils\";\r\nimport { Flex, RingProgress, Text, alpha, useMantineTheme } from \"@mantine/core\";\r\n\r\nexport function LevelPanel(props: {\r\n exp: number;\r\n level: number;\r\n nextLevelXP: number;\r\n progressToLevel: number;\r\n text?: string;\r\n color?: string;\r\n}){\r\n const theme = useMantineTheme();\r\n\r\n return (\r\n <Flex\r\n w='fit-content'\r\n pr='8vh'\r\n pl='8vh'\r\n \r\n bg='linear-gradient(180deg, rgba(30, 30, 30, 0.82) 0%, rgba(30, 30, 30, 0.3) 50%, rgba(30, 30, 30, 0.6) 100%)' \r\n style={{\r\n borderRadius: theme.radius.xs,\r\n boxShadow: theme.shadows.sm,\r\n outline: '0.2vh solid rgba(255,255,255,0.1)',\r\n }}\r\n justify={'center'}\r\n align={'center'}\r\n direction={'column'}\r\n p='sm'\r\n >\r\n\r\n <RingProgress\r\n size={190}\r\n roundCaps\r\n thickness={10}\r\n sections={[{ value: props.progressToLevel, color:colorWithAlpha(props.color || theme.colors[theme.primaryColor][theme.primaryShade as number], 0.9) }]}\r\n label={\r\n <Flex\r\n justify={'center'}\r\n align={'center'}\r\n direction={'column'}\r\n >\r\n <Text\r\n size='6vh'\r\n c={colorWithAlpha(props.color || theme.colors[theme.primaryColor][theme.primaryShade as number], 0.9)}\r\n style={{\r\n fontFamily: 'Akrobat Black',\r\n textShadow: `0 0 10px ${colorWithAlpha(props.color || theme.colors[theme.primaryColor][theme.primaryShade as number], 0.7)}`, \r\n }}\r\n >\r\n {props.level}\r\n </Text>\r\n </Flex>\r\n }\r\n />\r\n <Text\r\n size='sm'\r\n style={{\r\n fontFamily: 'Akrobat Black',\r\n letterSpacing: '0.05em',\r\n textTransform: 'uppercase',\r\n }}\r\n >\r\n {props.text || locale('Level')}\r\n </Text>\r\n <Text\r\n size='xs'\r\n c='rgba(255,255,255,0.6)'\r\n >\r\n {props.exp}/{props.nextLevelXP} {locale('EXP')}\r\n </Text>\r\n </Flex>\r\n )\r\n}\r\n","import { alpha, Flex, Portal, Text, useMantineTheme } from \"@mantine/core\";\r\nimport { motion } from \"framer-motion\";\r\nimport { X } from \"lucide-react\";\r\nimport React from \"react\";\r\n\r\nexport type ModalProps = {\r\n title: string;\r\n icon?: React.ElementType;\r\n iconColor?: string;\r\n description?: string;\r\n badge?: { label: string; color: string };\r\n onClose: () => void;\r\n width?: string;\r\n maxHeight?: string;\r\n height?: string;\r\n zIndex?: number;\r\n clickOutside?: boolean;\r\n children: React.ReactNode;\r\n};\r\n\r\nexport function Modal({\r\n title,\r\n icon: Icon,\r\n iconColor,\r\n description,\r\n badge,\r\n onClose,\r\n width = \"52vh\",\r\n maxHeight = \"85vh\",\r\n height,\r\n zIndex = 100,\r\n clickOutside = true,\r\n children,\r\n}: ModalProps) {\r\n const theme = useMantineTheme();\r\n\r\n return (\r\n <Portal>\r\n <motion.div\r\n initial={{ opacity: 0 }}\r\n animate={{ opacity: 1 }}\r\n exit={{ opacity: 0 }}\r\n style={{\r\n position: \"fixed\",\r\n inset: 0,\r\n zIndex,\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"center\",\r\n background: \"rgba(0,0,0,0.65)\",\r\n }}\r\n onClick={clickOutside ? onClose : undefined}\r\n >\r\n <motion.div\r\n initial={{ opacity: 0, scale: 0.96, y: 8 }}\r\n animate={{ opacity: 1, scale: 1, y: 0 }}\r\n exit={{ opacity: 0, scale: 0.96, y: 8 }}\r\n transition={{ duration: 0.18, ease: \"easeOut\" }}\r\n onClick={(e) => e.stopPropagation()}\r\n style={{\r\n background: alpha(theme.colors.dark[9], 0.98),\r\n border: `0.1vh solid ${theme.colors.dark[7]}`,\r\n borderRadius: theme.radius.sm,\r\n width,\r\n maxHeight,\r\n height,\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n overflow: \"hidden\",\r\n userSelect: \"none\",\r\n }}\r\n >\r\n {/* Header */}\r\n <Flex\r\n justify=\"space-between\"\r\n align=\"center\"\r\n px=\"sm\"\r\n py=\"xs\"\r\n style={{\r\n borderBottom: `0.1vh solid ${theme.colors.dark[7]}`,\r\n flexShrink: 0,\r\n }}\r\n >\r\n <Flex align=\"center\" gap=\"xs\">\r\n {Icon && (\r\n <Icon\r\n color={iconColor ?? \"rgba(255,255,255,0.6)\"}\r\n size=\"2vh\"\r\n />\r\n )}\r\n <Text\r\n ff=\"Akrobat Bold\"\r\n size=\"sm\"\r\n tt=\"uppercase\"\r\n lts=\"0.06em\"\r\n c=\"rgba(255,255,255,0.85)\"\r\n >\r\n {title}\r\n </Text>\r\n {badge && (\r\n <div\r\n style={{\r\n background: alpha(badge.color, 0.12),\r\n border: `0.1vh solid ${alpha(badge.color, 0.35)}`,\r\n borderRadius: theme.radius.xs,\r\n padding: `0 ${theme.spacing.xxs}`,\r\n }}\r\n >\r\n <Text\r\n ff=\"Akrobat Bold\"\r\n size=\"xxs\"\r\n tt=\"uppercase\"\r\n lts=\"0.06em\"\r\n c={badge.color}\r\n >\r\n {badge.label}\r\n </Text>\r\n </div>\r\n )}\r\n </Flex>\r\n <motion.button\r\n onClick={onClose}\r\n whileHover={{ background: alpha(theme.colors.dark[7], 0.5) }}\r\n style={{\r\n background: \"transparent\",\r\n border: \"none\",\r\n cursor: \"pointer\",\r\n padding: theme.spacing.xxs,\r\n borderRadius: theme.radius.xs,\r\n display: \"flex\",\r\n }}\r\n >\r\n <X color=\"rgba(255,255,255,0.4)\" />\r\n </motion.button>\r\n </Flex>\r\n\r\n {/* Description */}\r\n {description && (\r\n <Flex px=\"sm\" pt=\"xs\">\r\n <Text\r\n ff=\"Akrobat Regular\"\r\n size=\"xs\"\r\n c=\"rgba(255,255,255,0.65)\"\r\n style={{ lineHeight: 1.5 }}\r\n >\r\n {description}\r\n </Text>\r\n </Flex>\r\n )}\r\n\r\n {/* Content */}\r\n {children}\r\n </motion.div>\r\n </motion.div>\r\n </Portal>\r\n );\r\n}\r\n\r\nexport default Modal;\r\n","import { IconProp } from \"@fortawesome/fontawesome-svg-core\";\r\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\r\nimport { Button, Flex, Text, useMantineTheme } from \"@mantine/core\";\r\nimport { MotionFlex } from \"./Motion\";\r\n\r\n\r\nexport type PromptButton = {\r\n icon?: string;\r\n text: string;\r\n color?: string;\r\n variant?: 'filled' | 'outline' | 'light' | 'subtle' | 'default';\r\n onClick: () => void;\r\n}\r\n\r\nexport type Prompt = {\r\n message: string;\r\n buttons: PromptButton[];\r\n};\r\n\r\nexport function PromptModal(props: Prompt) {\r\n const theme = useMantineTheme();\r\n return (\r\n <MotionFlex\r\n gap='sm'\r\n direction={'column'}\r\n flex={1}\r\n >\r\n <Text\r\n size='xs'\r\n c='rgba(255, 255, 255, 0.8)'\r\n >{props.message}</Text>\r\n <Flex\r\n gap='sm'\r\n >\r\n {props.buttons.map((button, index) => (\r\n <Button\r\n key={index}\r\n variant={button.variant}\r\n color={button.color}\r\n flex={0.5}\r\n onClick={button.onClick}\r\n leftSection={button.icon ? (\r\n <FontAwesomeIcon\r\n icon={button.icon as IconProp}\r\n style={{\r\n fontSize: theme.fontSizes.xs,\r\n }}\r\n />\r\n ): undefined}\r\n >\r\n {button.text}\r\n </Button>\r\n ))}\r\n </Flex>\r\n </MotionFlex>\r\n )\r\n} \r\n\r\n","import { createContext, useContext, useRef } from \"react\";\r\nimport { create, StoreApi, useStore } from \"zustand\";\r\nimport { Modal } from \"./Modal\";\r\nimport { AnimatePresence } from \"framer-motion\";\r\nimport React from \"react\";\r\n\r\nexport type StoreModalProps = {\r\n children: React.ReactNode;\r\n title: string;\r\n icon?: React.ElementType;\r\n iconColor?: string;\r\n description?: string;\r\n badge?: { label: string; color: string };\r\n height?: string;\r\n width?: string;\r\n maxHeight?: string;\r\n zIndex?: number;\r\n clickOutside?: boolean;\r\n};\r\n\r\ntype ModalStore = {\r\n active: StoreModalProps | null;\r\n}\r\n\r\nexport const ModalContext = createContext<StoreApi<ModalStore> | null>(null);\r\n\r\nexport function useModal<T>(selector: (state: ModalStore) => T): T {\r\n const modal = useContext(ModalContext);\r\n if(!modal){\r\n throw new Error('useModal must be used within a ModalProvider');\r\n }\r\n return useStore(modal, selector);\r\n}\r\n\r\nfunction StoreModal() {\r\n const active = useModal((state) => state.active);\r\n const { hideModal } = useModalActions();\r\n\r\n return (\r\n <AnimatePresence>\r\n {active && (\r\n <Modal\r\n title={active.title}\r\n icon={active.icon}\r\n iconColor={active.iconColor}\r\n description={active.description}\r\n badge={active.badge}\r\n onClose={hideModal}\r\n width={active.width}\r\n maxHeight={active.maxHeight}\r\n height={active.height}\r\n zIndex={active.zIndex}\r\n clickOutside={active.clickOutside}\r\n >\r\n {active.children}\r\n </Modal>\r\n )}\r\n </AnimatePresence>\r\n );\r\n}\r\n\r\nexport function ModalProvider({ children }: { children: React.ReactNode }){\r\n const storeRef = useRef<StoreApi<ModalStore>>(\r\n create<ModalStore>(() => ({\r\n active: null,\r\n }))\r\n );\r\n\r\n return (\r\n <ModalContext.Provider value={storeRef.current}>\r\n <StoreModal/>\r\n {children}\r\n </ModalContext.Provider>\r\n );\r\n}\r\n\r\nexport function useModalActions() {\r\n const modal = useContext(ModalContext);\r\n if (!modal) throw new Error(\"useModalActions must be used within a ModalProvider\");\r\n\r\n const showModal = (openModal: StoreModalProps) => {\r\n modal.setState({ active: openModal });\r\n };\r\n\r\n const hideModal = () => {\r\n modal.setState({ active: null });\r\n };\r\n\r\n return { showModal, hideModal };\r\n}\r\n\r\n","import { alpha, Flex, Portal, Text, TextInput, useMantineTheme } from \"@mantine/core\";\r\nimport { motion } from \"framer-motion\";\r\nimport { AlertTriangle, Trash2, X } from \"lucide-react\";\r\nimport { useState } from \"react\";\r\n\r\nexport type ConfirmModalProps = {\r\n title: string;\r\n description: string;\r\n confirmLabel?: string;\r\n /** If provided, user must type this exact string to enable the confirm button */\r\n confirmText?: string;\r\n onConfirm: () => void;\r\n onClose: () => void;\r\n zIndex?: number;\r\n};\r\n\r\nexport function ConfirmModal({\r\n title,\r\n description,\r\n confirmLabel = \"Delete\",\r\n confirmText,\r\n onConfirm,\r\n onClose,\r\n zIndex = 200,\r\n}: ConfirmModalProps) {\r\n const theme = useMantineTheme();\r\n const [typed, setTyped] = useState(\"\");\r\n const canConfirm = !confirmText || typed === confirmText;\r\n\r\n return (\r\n <Portal>\r\n <motion.div\r\n initial={{ opacity: 0 }}\r\n animate={{ opacity: 1 }}\r\n exit={{ opacity: 0 }}\r\n style={{\r\n position: \"fixed\",\r\n inset: 0,\r\n zIndex,\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"center\",\r\n background: \"rgba(0,0,0,0.7)\",\r\n }}\r\n onClick={onClose}\r\n >\r\n <motion.div\r\n initial={{ opacity: 0, scale: 0.95, y: 8 }}\r\n animate={{ opacity: 1, scale: 1, y: 0 }}\r\n exit={{ opacity: 0, scale: 0.95, y: 8 }}\r\n transition={{ duration: 0.18, ease: \"easeOut\" }}\r\n onClick={(e) => e.stopPropagation()}\r\n style={{\r\n background: alpha(theme.colors.dark[9], 0.98),\r\n border: `0.1vh solid ${alpha(\"#ef4444\", 0.3)}`,\r\n borderRadius: theme.radius.sm,\r\n width: \"44vh\",\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n overflow: \"hidden\",\r\n }}\r\n >\r\n {/* Header */}\r\n <Flex\r\n justify=\"space-between\"\r\n align=\"center\"\r\n px=\"sm\"\r\n py=\"xs\"\r\n style={{\r\n borderBottom: `0.1vh solid ${alpha(\"#ef4444\", 0.2)}`,\r\n background: alpha(\"#ef4444\", 0.06),\r\n flexShrink: 0,\r\n }}\r\n >\r\n <Flex align=\"center\" gap=\"xs\">\r\n <AlertTriangle size=\"1.8vh\" color=\"#ef4444\" />\r\n <Text\r\n ff=\"Akrobat Bold\"\r\n size=\"sm\"\r\n tt=\"uppercase\"\r\n lts=\"0.05em\"\r\n c=\"#ef4444\"\r\n >\r\n {title}\r\n </Text>\r\n </Flex>\r\n <motion.button\r\n onClick={onClose}\r\n whileHover={{ background: alpha(theme.colors.dark[7], 0.5) }}\r\n style={{\r\n background: \"transparent\",\r\n border: \"none\",\r\n cursor: \"pointer\",\r\n padding: theme.spacing.xxs,\r\n borderRadius: theme.radius.xs,\r\n display: \"flex\",\r\n }}\r\n >\r\n <X color=\"rgba(255,255,255,0.4)\" />\r\n </motion.button>\r\n </Flex>\r\n\r\n {/* Body */}\r\n <Flex direction=\"column\" gap=\"sm\" p=\"sm\">\r\n <Text\r\n ff=\"Akrobat Regular\"\r\n size=\"xs\"\r\n c=\"rgba(255,255,255,0.65)\"\r\n style={{ lineHeight: 1.5 }}\r\n >\r\n {description}\r\n </Text>\r\n\r\n {confirmText && (\r\n <Flex direction=\"column\" gap=\"xxs\">\r\n <Text\r\n ff=\"Akrobat Bold\"\r\n size=\"xxs\"\r\n tt=\"uppercase\"\r\n lts=\"0.07em\"\r\n c=\"rgba(255,255,255,0.35)\"\r\n >\r\n Type{\" \"}\r\n <Text component=\"span\" ff=\"Akrobat Bold\" c=\"#ef4444\">\r\n {confirmText}\r\n </Text>{\" \"}\r\n to confirm\r\n </Text>\r\n <TextInput\r\n size=\"xs\"\r\n placeholder={confirmText}\r\n value={typed}\r\n onChange={(e) => setTyped(e.currentTarget.value)}\r\n styles={(t) => ({\r\n input: {\r\n backgroundColor: alpha(t.colors.dark[7], 0.5),\r\n border: `0.1vh solid ${alpha(\r\n typed === confirmText\r\n ? \"#ef4444\"\r\n : t.colors.dark[5],\r\n 0.5\r\n )}`,\r\n color: \"rgba(255,255,255,0.85)\",\r\n fontFamily: \"Akrobat Regular\",\r\n },\r\n })}\r\n autoFocus\r\n />\r\n </Flex>\r\n )}\r\n </Flex>\r\n\r\n {/* Footer */}\r\n <Flex\r\n justify=\"flex-end\"\r\n gap=\"xs\"\r\n px=\"sm\"\r\n py=\"sm\"\r\n style={{\r\n borderTop: `0.1vh solid ${theme.colors.dark[7]}`,\r\n flexShrink: 0,\r\n }}\r\n >\r\n <motion.button\r\n onClick={onClose}\r\n whileHover={{ background: alpha(theme.colors.dark[7], 0.5) }}\r\n whileTap={{ scale: 0.97 }}\r\n style={{\r\n background: \"transparent\",\r\n border: `0.1vh solid ${theme.colors.dark[6]}`,\r\n borderRadius: theme.radius.xs,\r\n padding: \"0.5vh 1vh\",\r\n cursor: \"pointer\",\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n gap: \"0.4vh\",\r\n }}\r\n >\r\n <X size=\"1.4vh\" color=\"rgba(255,255,255,0.4)\" />\r\n <Text\r\n ff=\"Akrobat Bold\"\r\n size=\"xxs\"\r\n tt=\"uppercase\"\r\n lts=\"0.05em\"\r\n c=\"rgba(255,255,255,0.4)\"\r\n >\r\n Cancel\r\n </Text>\r\n </motion.button>\r\n\r\n <motion.button\r\n onClick={() => {\r\n if (canConfirm) {\r\n onConfirm();\r\n onClose();\r\n }\r\n }}\r\n whileHover={\r\n canConfirm\r\n ? {\r\n background: alpha(\"#ef4444\", 0.22),\r\n borderColor: alpha(\"#ef4444\", 0.6),\r\n }\r\n : undefined\r\n }\r\n whileTap={canConfirm ? { scale: 0.97 } : undefined}\r\n style={{\r\n background: alpha(\"#ef4444\", canConfirm ? 0.14 : 0.05),\r\n border: `0.1vh solid ${alpha(\r\n \"#ef4444\",\r\n canConfirm ? 0.45 : 0.15\r\n )}`,\r\n borderRadius: theme.radius.xs,\r\n padding: \"0.5vh 1vh\",\r\n cursor: canConfirm ? \"pointer\" : \"not-allowed\",\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n gap: \"0.4vh\",\r\n opacity: canConfirm ? 1 : 0.45,\r\n transition: \"opacity 0.15s\",\r\n }}\r\n >\r\n <Trash2 size=\"1.4vh\" color=\"#ef4444\" />\r\n <Text\r\n ff=\"Akrobat Bold\"\r\n size=\"xxs\"\r\n tt=\"uppercase\"\r\n lts=\"0.05em\"\r\n c=\"#ef4444\"\r\n >\r\n {confirmLabel}\r\n </Text>\r\n </motion.button>\r\n </Flex>\r\n </motion.div>\r\n </motion.div>\r\n </Portal>\r\n );\r\n}\r\n","/* eslint-disable @typescript-eslint/no-explicit-any */\r\n\r\nimport React, { createContext, useContext, useMemo, useRef } from \"react\";\r\nimport { createStore, StoreApi, useStore } from \"zustand\";\r\n\r\n/* ======================================================\r\n Type Utilities\r\n====================================================== */\r\n\r\ntype PathValue<T, P extends string> = P extends keyof T\r\n ? T[P]\r\n : P extends `${infer K}.${infer R}`\r\n ? K extends keyof T\r\n ? PathValue<T[K], R>\r\n : never\r\n : never;\r\n\r\ntype Paths<T> = T extends object\r\n ? {\r\n [K in keyof T]: K extends string\r\n ? T[K] extends object\r\n ? T[K] extends any[] | Date | Function\r\n ? K\r\n : K | `${K}.${Paths<T[K]>}`\r\n : K\r\n : never;\r\n }[keyof T]\r\n : never;\r\n\r\ntype LoosePaths<T> = Paths<T> | (string & {});\r\n\r\n/* ======================================================\r\n Utilities\r\n====================================================== */\r\n\r\nfunction getNested(obj: any, path: string): any {\r\n return path.split(\".\").reduce((acc, key) => (acc ? acc[key] : undefined), obj);\r\n}\r\n\r\nfunction setNested(obj: any, path: string, value: any): any {\r\n const keys = path.split(\".\");\r\n const root = Array.isArray(obj) ? [...obj] : { ...obj };\r\n let current = root;\r\n\r\n for (let i = 0; i < keys.length - 1; i++) {\r\n const key = keys[i];\r\n const nextKey = keys[i + 1];\r\n const isIndex = !isNaN(Number(nextKey));\r\n\r\n const existing = current[key];\r\n\r\n current[key] =\r\n existing != null\r\n ? Array.isArray(existing)\r\n ? [...existing]\r\n : { ...existing }\r\n : isIndex\r\n ? []\r\n : {};\r\n\r\n current = current[key];\r\n }\r\n\r\n current[keys[keys.length - 1]] = value;\r\n return root;\r\n}\r\n\r\nfunction deleteNested(obj: any, path: string): any {\r\n const keys = path.split(\".\");\r\n const newObj = { ...obj };\r\n let current = newObj;\r\n\r\n for (let i = 0; i < keys.length - 1; i++) {\r\n const key = keys[i];\r\n if (!current[key]) return obj;\r\n current[key] = { ...current[key] };\r\n current = current[key];\r\n }\r\n\r\n delete current[keys[keys.length - 1]];\r\n return newObj;\r\n}\r\n\r\nfunction isPlainObject(value: any): value is Record<string, any> {\r\n return (\r\n value !== null &&\r\n typeof value === \"object\" &&\r\n !Array.isArray(value) &&\r\n !(value instanceof Date)\r\n );\r\n}\r\n\r\nfunction collectChangedPaths(values: any, initial: any, prefix = \"\"): string[] {\r\n if (Object.is(values, initial)) return [];\r\n\r\n const valuesIsObj = isPlainObject(values);\r\n const initialIsObj = isPlainObject(initial);\r\n const valuesIsArr = Array.isArray(values);\r\n const initialIsArr = Array.isArray(initial);\r\n\r\n if (valuesIsArr || initialIsArr) {\r\n const maxLen = Math.max(values?.length ?? 0, initial?.length ?? 0);\r\n const fields: string[] = [];\r\n for (let i = 0; i < maxLen; i++) {\r\n const nextPrefix = prefix ? `${prefix}.${i}` : `${i}`;\r\n fields.push(...collectChangedPaths(values?.[i], initial?.[i], nextPrefix));\r\n }\r\n return fields;\r\n }\r\n\r\n if (valuesIsObj || initialIsObj) {\r\n const keys = new Set([\r\n ...Object.keys(values ?? {}),\r\n ...Object.keys(initial ?? {}),\r\n ]);\r\n const fields: string[] = [];\r\n for (const key of keys) {\r\n const nextPrefix = prefix ? `${prefix}.${key}` : key;\r\n fields.push(...collectChangedPaths(values?.[key], initial?.[key], nextPrefix));\r\n }\r\n return fields;\r\n }\r\n\r\n return prefix ? [prefix] : [];\r\n}\r\n\r\nfunction computeChangedState<T>(\r\n values: Partial<T>,\r\n initialVals: Partial<T>\r\n): { fields: string[]; partial: Partial<T> } {\r\n const fields = collectChangedPaths(values, initialVals);\r\n let partial: Partial<T> = {};\r\n\r\n for (const path of fields) {\r\n partial = setNested(partial, path, getNested(values, path));\r\n }\r\n\r\n return { fields, partial };\r\n}\r\n\r\nfunction flattenRules(\r\n rules: any,\r\n prefix = \"\"\r\n): Record<string, ValidatorFn> {\r\n const result: Record<string, ValidatorFn> = {};\r\n\r\n for (const key in rules) {\r\n const fullPath = prefix ? `${prefix}.${key}` : key;\r\n const val = rules[key];\r\n\r\n if (typeof val === \"function\") result[fullPath] = val;\r\n else if (typeof val === \"object\")\r\n Object.assign(result, flattenRules(val, fullPath));\r\n }\r\n\r\n return result;\r\n}\r\n\r\nasync function runRule(\r\n rule: ValidatorFn,\r\n value: any,\r\n values: any\r\n): Promise<string | null> {\r\n const result = rule(value, values);\r\n return result instanceof Promise ? await result : result;\r\n}\r\n\r\n/* ======================================================\r\n Types\r\n====================================================== */\r\n\r\nexport type ValidatorFn<T = any> =\r\n | ((value: any, values: Partial<T>) => string | null)\r\n | ((value: any, values: Partial<T>) => Promise<string | null>);\r\n\r\nexport type ValidationRules<T> = {\r\n [K in keyof T]?: T[K] extends object\r\n ? ValidationRules<T[K]>\r\n : ValidatorFn<T>;\r\n};\r\n\r\nexport type FormState<T> = {\r\n values: Partial<T>;\r\n initialValues: Partial<T>;\r\n errors: Record<string, string>;\r\n\r\n partialChanged: Partial<T>;\r\n\r\n getInputProps: (path: string) => {\r\n value: any;\r\n error?: string;\r\n onChange: (e: React.ChangeEvent<HTMLInputElement>) => void;\r\n };\r\n\r\n setValue: (path: string, value: any, options?: { validate?: boolean }) => void;\r\n setInitialValues: (newInitialValues: Partial<T>) => void;\r\n\r\n setError: (path: string, message: string) => void;\r\n clearError: (path: string) => void;\r\n\r\n validate: () => Promise<boolean>;\r\n validateField: (path: string) => Promise<boolean>;\r\n\r\n reset: () => void;\r\n reinitialize: (newValues: Partial<T>) => void;\r\n\r\n back: () => void;\r\n forward: () => void;\r\n canBack: boolean;\r\n canForward: boolean;\r\n\r\n changedFields: string[];\r\n changedCount: number;\r\n resetChangeCount: () => void;\r\n\r\n onSubmit?: (form: FormState<T>) => void;\r\n submit: () => Promise<void>;\r\n};\r\n\r\n/* ======================================================\r\n Store\r\n====================================================== */\r\n\r\nexport function createFormStore<T>(\r\n initialValues: Partial<T>,\r\n validationRules?: ValidationRules<T>,\r\n onSubmit?: (form: FormState<T>) => void\r\n) {\r\n const flatRules = validationRules ? flattenRules(validationRules) : {};\r\n\r\n const history: Partial<T>[] = [];\r\n const future: Partial<T>[] = [];\r\n const changed = new Set<string>();\r\n\r\n return createStore<FormState<T>>((set, get) => ({\r\n initialValues,\r\n values: initialValues,\r\n errors: {},\r\n partialChanged: {},\r\n canBack: false,\r\n canForward: false,\r\n changedFields: [],\r\n changedCount: 0,\r\n onSubmit,\r\n\r\n submit: async () => {\r\n const state = get();\r\n const isValid = await state.validate();\r\n if (isValid && state.onSubmit) {\r\n state.onSubmit(get());\r\n }\r\n },\r\n\r\n getInputProps: (path: string) => {\r\n return {\r\n value: getNested(get().values, path) ?? \"\",\r\n error: get().errors[path],\r\n onChange: (e: React.ChangeEvent<HTMLInputElement>) => {\r\n get().setValue(path, e.target.value, { validate: true });\r\n },\r\n };\r\n },\r\n\r\n resetChangeCount: () => {\r\n changed.clear();\r\n set({ changedFields: [], changedCount: 0, partialChanged: {} });\r\n },\r\n\r\n setInitialValues: (newInitialValues) =>\r\n set({ initialValues: newInitialValues }),\r\n\r\n setValue: (path, value, options) => {\r\n const state = get();\r\n const currentValues = state.values;\r\n const newValues = setNested(currentValues, path, value);\r\n\r\n const oldValue = getNested(state.initialValues, path);\r\n const hasChanged = value !== oldValue;\r\n\r\n history.push(currentValues);\r\n future.length = 0;\r\n\r\n let newPartial = state.partialChanged;\r\n\r\n if (hasChanged) {\r\n changed.add(path);\r\n newPartial = setNested(newPartial, path, value);\r\n } else {\r\n changed.delete(path);\r\n newPartial = deleteNested(newPartial, path);\r\n }\r\n\r\n set({\r\n values: newValues,\r\n partialChanged: newPartial,\r\n canBack: history.length > 0,\r\n canForward: false,\r\n changedFields: Array.from(changed),\r\n changedCount: changed.size,\r\n });\r\n\r\n if (!options?.validate) return;\r\n\r\n const rule = flatRules[path];\r\n if (!rule) return;\r\n\r\n Promise.resolve(runRule(rule, value, newValues)).then((error) => {\r\n if (error)\r\n set((s) => ({ errors: setNested(s.errors, path, error) }));\r\n else\r\n set((s) => ({ errors: deleteNested(s.errors, path) }));\r\n });\r\n },\r\n\r\n setError: (path, message) =>\r\n set((s) => ({ errors: setNested(s.errors, path, message) })),\r\n\r\n clearError: (path) =>\r\n set((s) => ({ errors: deleteNested(s.errors, path) })),\r\n\r\n validateField: async (path) => {\r\n const state = get();\r\n const rule = flatRules[path];\r\n if (!rule) return true;\r\n\r\n const value = getNested(state.values, path);\r\n const error = await runRule(rule, value, state.values);\r\n\r\n if (error) {\r\n set((s) => ({ errors: setNested(s.errors, path, error) }));\r\n return false;\r\n }\r\n\r\n set((s) => ({ errors: deleteNested(s.errors, path) }));\r\n return true;\r\n },\r\n\r\n validate: async () => {\r\n const state = get();\r\n let isValid = true;\r\n let newErrors: Record<string, string> = {};\r\n\r\n for (const path in flatRules) {\r\n const rule = flatRules[path];\r\n const value = getNested(state.values, path);\r\n const error = await runRule(rule, value, state.values);\r\n\r\n if (error) {\r\n isValid = false;\r\n newErrors = setNested(newErrors, path, error);\r\n }\r\n }\r\n\r\n set({ errors: newErrors });\r\n return isValid;\r\n },\r\n\r\n reset: () => {\r\n history.length = 0;\r\n future.length = 0;\r\n changed.clear();\r\n\r\n set({\r\n values: get().initialValues,\r\n errors: {},\r\n partialChanged: {},\r\n canBack: false,\r\n canForward: false,\r\n changedFields: [],\r\n changedCount: 0,\r\n });\r\n },\r\n\r\n reinitialize: (newValues) => {\r\n history.length = 0;\r\n future.length = 0;\r\n changed.clear();\r\n\r\n set({\r\n values: newValues,\r\n initialValues: newValues,\r\n errors: {},\r\n partialChanged: {},\r\n canBack: false,\r\n canForward: false,\r\n changedFields: [],\r\n changedCount: 0,\r\n });\r\n },\r\n\r\n back: () => {\r\n if (!history.length) return;\r\n\r\n const prev = history.pop()!;\r\n future.push(get().values);\r\n\r\n const { fields, partial } = computeChangedState(prev, get().initialValues);\r\n\r\n set({\r\n values: prev,\r\n partialChanged: partial,\r\n canBack: history.length > 0,\r\n canForward: true,\r\n changedFields: fields,\r\n changedCount: fields.length,\r\n });\r\n },\r\n\r\n forward: () => {\r\n if (!future.length) return;\r\n\r\n const next = future.pop()!;\r\n history.push(get().values);\r\n\r\n const { fields, partial } = computeChangedState(next, get().initialValues);\r\n\r\n set({\r\n values: next,\r\n partialChanged: partial,\r\n canBack: true,\r\n canForward: future.length > 0,\r\n changedFields: fields,\r\n changedCount: fields.length,\r\n });\r\n },\r\n }));\r\n}\r\n\r\n/* ======================================================\r\n Context + Hook\r\n====================================================== */\r\n\r\nconst FormContext = createContext<StoreApi<FormState<any>> | null>(null);\r\n\r\nexport function FormProvider<T>({\r\n initialValues,\r\n validate,\r\n onSubmit,\r\n children,\r\n}: {\r\n initialValues: Partial<T>;\r\n validate?: ValidationRules<T>;\r\n onSubmit?: (form: FormState<T>) => void;\r\n children: React.ReactNode;\r\n}) {\r\n const storeRef = useRef(\r\n createFormStore<T>(initialValues, validate, onSubmit)\r\n );\r\n\r\n return (\r\n <FormContext.Provider value={storeRef.current}>\r\n {children}\r\n </FormContext.Provider>\r\n );\r\n}\r\n\r\nexport function useForm<T>() {\r\n const store = useContext(FormContext);\r\n if (!store) {\r\n throw new Error(\"useForm must be used inside <FormProvider>\");\r\n }\r\n const state = useStore(store) as FormState<T>;\r\n\r\n const changedFields = useMemo(() => {\r\n return collectChangedPaths(state.values, state.initialValues);\r\n }, [state.values, state.initialValues]);\r\n\r\n return { ...state, changedFields, changedCount: changedFields.length } as FormState<T>;\r\n}\r\n\r\nexport function useFormField<T, P extends LoosePaths<T> = LoosePaths<T>>(\r\n path: P\r\n): P extends Paths<T> ? PathValue<T, P> | undefined : any {\r\n const store = useContext(FormContext);\r\n if (!store) {\r\n throw new Error(\"useFormField must be used inside <FormProvider>\");\r\n }\r\n return useStore(store, (s) => getNested(s.values, path));\r\n}\r\n\r\nexport function useFormFields<T, P extends LoosePaths<T> = LoosePaths<T>>(\r\n ...paths: P[]\r\n): { [K in P]: K extends Paths<T> ? PathValue<T, K> | undefined : any } {\r\n const store = useContext(FormContext);\r\n if (!store) {\r\n throw new Error(\"useFormFields must be used inside <FormProvider>\");\r\n }\r\n \r\n return useStore(store, (s) => {\r\n const result = {} as { [K in P]: K extends Paths<T> ? PathValue<T, K> | undefined : any };\r\n for (const path of paths) {\r\n result[path] = getNested(s.values, path);\r\n }\r\n return result;\r\n });\r\n}\r\n\r\nexport function useFormError(path: string) {\r\n const store = useContext(FormContext);\r\n if (!store) {\r\n throw new Error(\"useFormError must be used inside <FormProvider>\");\r\n }\r\n return useStore(store, (s) => s.errors[path]);\r\n}\r\n\r\nexport function useFormErrors(...paths: string[]) {\r\n const store = useContext(FormContext);\r\n if (!store) {\r\n throw new Error(\"useFormErrors must be used inside <FormProvider>\");\r\n }\r\n return useStore(store, (s) => {\r\n const result: Record<string, string | undefined> = {};\r\n for (const path of paths) {\r\n result[path] = s.errors[path];\r\n }\r\n return result;\r\n });\r\n}\r\n\r\nexport function useFormActions<T>() {\r\n const store = useContext(FormContext);\r\n if (!store) {\r\n throw new Error(\"useFormActions must be used inside <FormProvider>\");\r\n }\r\n return store.getState() as Pick<\r\n FormState<T>,\r\n | \"setValue\"\r\n | \"setError\"\r\n | \"clearError\"\r\n | \"validate\"\r\n | \"validateField\"\r\n | \"reset\"\r\n | \"reinitialize\"\r\n | \"back\"\r\n | \"forward\"\r\n | \"canBack\"\r\n | \"canForward\"\r\n | \"submit\"\r\n >;\r\n}","import { fetchNui } from \"@/utils\";\r\nimport { useNuiEvent } from \"@/hooks/useNuiEvent\";\r\nimport { create } from \"zustand\";\r\n\r\ntype ScriptSettingsUpdateMeta<T> = {\r\n client_version?: number;\r\n latestVersion?: number;\r\n latestData?: Partial<T>;\r\n changed_paths?: Array<{ path: string; old: unknown; new: unknown }>;\r\n lastEditor?: { source?: number; name?: string; identifier?: string };\r\n};\r\n\r\nexport type ScriptSettingsHistoryChange = {\r\n path: string;\r\n old: unknown;\r\n new: unknown;\r\n};\r\n\r\nexport type ScriptSettingsHistoryEntry = {\r\n at_unix: number;\r\n at_utc: string;\r\n script: string;\r\n admin?: { source?: number; name?: string; identifier?: string };\r\n expected_version?: number;\r\n applied_version?: number;\r\n changes: ScriptSettingsHistoryChange[];\r\n};\r\n\r\nexport type ScriptSettingsHistoryRequest = {\r\n offset?: number;\r\n limit?: number;\r\n query?: string;\r\n path?: string;\r\n admin?: string;\r\n fromUnix?: number;\r\n toUnix?: number;\r\n};\r\n\r\nexport type ScriptSettingsHistoryResponse = {\r\n success: boolean;\r\n _error?: string;\r\n data?: {\r\n items: ScriptSettingsHistoryEntry[];\r\n total: number;\r\n limit: number;\r\n offset: number;\r\n nextOffset?: number;\r\n };\r\n};\r\n\r\ntype NuiResponse<T> = {\r\n success: boolean;\r\n message?: string;\r\n _error?: string;\r\n meta?: ScriptSettingsUpdateMeta<T>;\r\n};\r\n\r\n// ── Singleton registry ────────────────────────────────────────────────────────\r\n\r\nexport interface ScriptSettingsInstance<T = any> {\r\n store: { getState: () => T; setState: (partial: Partial<T> | ((prev: T) => T)) => void };\r\n updateSettings: (newSettings: Partial<T>) => Promise<NuiResponse<T>>;\r\n getHistory: (params?: ScriptSettingsHistoryRequest) => Promise<ScriptSettingsHistoryResponse>;\r\n fetchSettings: () => Promise<T | null>;\r\n}\r\n\r\nlet _instance: ScriptSettingsInstance | null = null;\r\n\r\nexport function getScriptSettingsInstance<T = any>(): ScriptSettingsInstance<T> {\r\n if (!_instance) throw new Error(\"[dirk-cfx-react] createScriptSettings must be called before using SettingsPanel\");\r\n return _instance as ScriptSettingsInstance<T>;\r\n}\r\n\r\nexport function createScriptSettings<T>(defaultValue: T) {\r\n const store = create<T>(() => defaultValue);\r\n let clientVersion = 0;\r\n\r\n const useScriptSettingHooks = () => {\r\n useNuiEvent<{ settings?: Partial<T>; clientVersion?: number }>(\"UPDATE_SCRIPT_SETTINGS\", (data) => {\r\n if (!data) return;\r\n\r\n if (typeof data.clientVersion === \"number\") {\r\n clientVersion = data.clientVersion as number;\r\n }\r\n\r\n if (data.settings && typeof data.settings === \"object\") {\r\n store.setState((prev) => ({ ...prev, ...(data.settings as Partial<T>) }));\r\n }\r\n });\r\n };\r\n\r\n const fetchScriptSettings = async (): Promise<T | null> => {\r\n try {\r\n const response = await fetchNui<{\r\n success: boolean;\r\n data?: { settings: T; clientVersion: number };\r\n }>(\"GET_FULL_SCRIPT_SETTINGS\");\r\n\r\n if (response?.success && response.data?.settings) {\r\n store.setState(() => response.data!.settings as T);\r\n if (typeof response.data.clientVersion === \"number\") {\r\n clientVersion = response.data.clientVersion;\r\n }\r\n return response.data.settings;\r\n }\r\n } catch { /* fallback to current store state */ }\r\n return null;\r\n };\r\n\r\n const updateScriptSettings = async (newSettings: Partial<T>): Promise<NuiResponse<T>> => {\r\n store.setState((prev) => ({ ...prev, ...newSettings }));\r\n\r\n const response = await fetchNui<NuiResponse<T>>(\"UPDATE_SCRIPT_SETTINGS\", {\r\n data: newSettings,\r\n expectedVersion: clientVersion,\r\n });\r\n\r\n if (response?.meta?.client_version != null) {\r\n clientVersion = response.meta.client_version as number;\r\n }\r\n\r\n if (response?.success === false && response?.meta?.latestData) {\r\n store.setState((prev) => ({ ...prev, ...(response.meta!.latestData as Partial<T>) }));\r\n }\r\n\r\n return response;\r\n };\r\n\r\n const getScriptSettingsHistory = async (\r\n params: ScriptSettingsHistoryRequest = {}\r\n ): Promise<ScriptSettingsHistoryResponse> => {\r\n return fetchNui<ScriptSettingsHistoryResponse>('GET_SCRIPT_SETTINGS_HISTORY', params);\r\n };\r\n\r\n _instance = {\r\n store,\r\n updateSettings: updateScriptSettings,\r\n getHistory: getScriptSettingsHistory,\r\n fetchSettings: fetchScriptSettings,\r\n };\r\n\r\n return {store, updateScriptSettings, getScriptSettingsHistory, useScriptSettingHooks, fetchScriptSettings}\r\n} \r\n\r\n\r\n","import { alpha, Box, Flex, JsonInput, Loader, Text, TextInput, useMantineTheme } from \"@mantine/core\";\r\nimport { useInfiniteQuery, QueryClient, QueryClientProvider } from \"@tanstack/react-query\";\r\nimport { AnimatePresence, motion } from \"framer-motion\";\r\nimport {\r\n Check, ChevronDown, Code2, Filter, History, Redo2, RotateCcw,\r\n Save as SaveIcon, Search, Undo2, User, X, XCircle,\r\n} from \"lucide-react\";\r\nimport React, { useEffect, useMemo, useState } from \"react\";\r\nimport type { UIEvent } from \"react\";\r\nimport { ConfirmModal } from \"./ConfirmModal\";\r\nimport { Modal } from \"./Modal\";\r\nimport { MotionFlex } from \"./Motion\";\r\nimport { FormProvider, useForm } from \"../hooks/useForm\";\r\nimport { useSettings } from \"../utils/useSettings\";\r\nimport { fetchNui } from \"../utils/fetchNui\";\r\nimport { getScriptSettingsInstance } from \"../hooks/useScriptSettings\";\r\nimport type {\r\n ScriptSettingsHistoryEntry,\r\n ScriptSettingsHistoryRequest,\r\n ScriptSettingsHistoryResponse,\r\n} from \"../hooks/useScriptSettings\";\r\n\r\n// ── Types ─────────────────────────────────────────────────────────────────────\r\n\r\nexport interface NavItem {\r\n id: string;\r\n icon: React.ElementType;\r\n label: string;\r\n}\r\n\r\nexport interface SettingsPanelProps<T extends Record<string, any> = Record<string, any>> {\r\n navItems: readonly NavItem[];\r\n title: string;\r\n subtitle?: string;\r\n open: boolean;\r\n /** Defaults to fetchNui(\"CLOSE_ADMIN_SECTION\") */\r\n onClose?: () => void;\r\n children: (activeTab: string) => React.ReactNode;\r\n /** Default settings for reset */\r\n defaultSettings: T;\r\n /** Zod schema for JSON validation (.safeParse) */\r\n schema?: { safeParse: (data: unknown) => { success: boolean; data?: T; error?: { issues: { path: PropertyKey[]; message: string }[] } } };\r\n /** Reset confirm typed text (e.g. \"dirk_fishing\") */\r\n resetConfirmText?: string;\r\n width?: string;\r\n height?: string;\r\n}\r\n\r\n// ── Internal query client ─────────────────────────────────────────────────────\r\n\r\nconst settingsPanelQueryClient = new QueryClient({\r\n defaultOptions: { queries: { staleTime: 30_000, gcTime: 5 * 60_000 } },\r\n});\r\n\r\n// ── NavItem Button ────────────────────────────────────────────────────────────\r\n\r\nfunction NavItemButton({\r\n icon: Icon, label, active, onClick,\r\n}: {\r\n icon: React.ElementType;\r\n label: string;\r\n active: boolean;\r\n onClick: () => void;\r\n}) {\r\n const theme = useMantineTheme();\r\n const color = theme.colors[theme.primaryColor][5];\r\n\r\n return (\r\n <motion.button\r\n onClick={onClick}\r\n whileHover={{ background: active ? alpha(color, 0.15) : \"rgba(255,255,255,0.04)\" }}\r\n whileTap={{ scale: 0.97 }}\r\n style={{\r\n width: \"100%\",\r\n background: active ? alpha(color, 0.12) : \"transparent\",\r\n border: \"none\",\r\n borderLeft: `0.2vh solid ${active ? color : \"transparent\"}`,\r\n borderRadius: `0 ${theme.radius.xs} ${theme.radius.xs} 0`,\r\n padding: \"0.7vh 1vh\",\r\n cursor: \"pointer\",\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n gap: \"0.7vh\",\r\n transition: \"border-color 0.15s, background 0.15s\",\r\n }}\r\n >\r\n <Icon color={active ? color : \"rgba(255,255,255,0.35)\"} />\r\n <Text ff=\"Akrobat Bold\" size=\"xs\" tt=\"uppercase\" lts=\"0.06em\" c={active ? color : \"rgba(255,255,255,0.35)\"}>\r\n {label}\r\n </Text>\r\n {active && (\r\n <motion.div\r\n layoutId=\"nav-active-dot\"\r\n style={{ marginLeft: \"auto\", width: \"0.4vh\", height: \"0.4vh\", borderRadius: \"50%\", background: color }}\r\n />\r\n )}\r\n </motion.button>\r\n );\r\n}\r\n\r\n// ── Settings JSON Modal ───────────────────────────────────────────────────────\r\n\r\nfunction SettingsJsonModal<T extends Record<string, any>>({\r\n onClose, schema,\r\n}: {\r\n onClose: () => void;\r\n schema?: SettingsPanelProps<T>[\"schema\"];\r\n}) {\r\n const theme = useMantineTheme();\r\n const color = theme.colors[theme.primaryColor][5];\r\n const form = useForm<T>();\r\n const [json, setJson] = useState(() => JSON.stringify(form.values, null, 2));\r\n const [error, setError] = useState<string | null>(null);\r\n\r\n const handleSave = () => {\r\n try {\r\n const parsed = JSON.parse(json);\r\n if (schema) {\r\n const result = schema.safeParse(parsed);\r\n if (!result.success) {\r\n setError(result.error!.issues.map((i) => `${i.path.join(\".\")}: ${i.message}`).join(\"\\n\"));\r\n return;\r\n }\r\n const current = form.values as T;\r\n (Object.keys(result.data!) as (keyof T)[]).forEach((key) => {\r\n if (JSON.stringify(result.data![key]) !== JSON.stringify(current[key])) {\r\n form.setValue(key as string, result.data![key]);\r\n }\r\n });\r\n } else {\r\n const current = form.values as T;\r\n (Object.keys(parsed) as (keyof T)[]).forEach((key) => {\r\n if (JSON.stringify(parsed[key]) !== JSON.stringify(current[key])) {\r\n form.setValue(key as string, parsed[key]);\r\n }\r\n });\r\n }\r\n onClose();\r\n } catch (e: any) {\r\n setError(e.message);\r\n }\r\n };\r\n\r\n return (\r\n <Modal title=\"Settings JSON\" icon={Code2} iconColor={color} onClose={onClose} width=\"60vh\" maxHeight=\"80vh\" zIndex={200}>\r\n <Box flex={1} p=\"0.8vh\" style={{ overflowY: \"auto\" }}>\r\n <JsonInput\r\n value={json}\r\n spellCheck={false}\r\n onChange={setJson}\r\n rows={22}\r\n formatOnBlur\r\n validationError=\"Invalid JSON\"\r\n styles={() => ({\r\n input: { fontFamily: \"monospace\", fontSize: \"1.3vh\", lineHeight: 1.6, resize: \"none\" },\r\n })}\r\n />\r\n {error && <Text ff=\"Akrobat Bold\" size=\"xxs\" c=\"#ef4444\" mt=\"xxs\">{error}</Text>}\r\n </Box>\r\n <Flex justify=\"flex-end\" gap=\"xs\" px=\"sm\" py=\"xs\" style={{ borderTop: `0.1vh solid ${theme.colors.dark[7]}`, flexShrink: 0 }}>\r\n <motion.button onClick={onClose} whileHover={{ background: alpha(theme.colors.dark[7], 0.5) }} whileTap={{ scale: 0.97 }}\r\n style={{ background: \"transparent\", border: `0.1vh solid ${theme.colors.dark[6]}`, borderRadius: theme.radius.xs, padding: `${theme.spacing.xxs} ${theme.spacing.xs}`, cursor: \"pointer\", display: \"flex\", alignItems: \"center\", gap: theme.spacing.xxs }}>\r\n <X color=\"rgba(255,255,255,0.4)\" />\r\n <Text ff=\"Akrobat Bold\" size=\"xs\" tt=\"uppercase\" lts=\"0.05em\" c=\"rgba(255,255,255,0.4)\">Cancel</Text>\r\n </motion.button>\r\n <motion.button onClick={handleSave} whileHover={{ background: alpha(color, 0.25) }} whileTap={{ scale: 0.97 }}\r\n style={{ background: alpha(color, 0.14), border: `0.1vh solid ${alpha(color, 0.4)}`, borderRadius: theme.radius.xs, padding: `${theme.spacing.xxs} ${theme.spacing.xs}`, cursor: \"pointer\", display: \"flex\", alignItems: \"center\", gap: theme.spacing.xxs }}>\r\n <Check color={color} />\r\n <Text ff=\"Akrobat Bold\" size=\"xs\" tt=\"uppercase\" lts=\"0.05em\" c={color}>Apply</Text>\r\n </motion.button>\r\n </Flex>\r\n </Modal>\r\n );\r\n}\r\n\r\n// ── History helpers ───────────────────────────────────────────────────────────\r\n\r\nfunction formatValue(value: unknown): string {\r\n if (value === null) return \"null\";\r\n if (value === undefined) return \"undefined\";\r\n if (typeof value === \"string\") return value;\r\n if (typeof value === \"number\" || typeof value === \"boolean\") return String(value);\r\n try { return JSON.stringify(value); } catch { return String(value); }\r\n}\r\n\r\nfunction formatHistoryDateTime(entry: ScriptSettingsHistoryEntry): string {\r\n if (entry.at_unix) {\r\n const date = new Date(entry.at_unix * 1000);\r\n if (!Number.isNaN(date.getTime())) {\r\n return date.toLocaleString(undefined, { year: \"numeric\", month: \"short\", day: \"2-digit\", hour: \"2-digit\", minute: \"2-digit\", second: \"2-digit\" });\r\n }\r\n }\r\n if (entry.at_utc) {\r\n const date = new Date(entry.at_utc);\r\n if (!Number.isNaN(date.getTime())) {\r\n return date.toLocaleString(undefined, { year: \"numeric\", month: \"short\", day: \"2-digit\", hour: \"2-digit\", minute: \"2-digit\", second: \"2-digit\" });\r\n }\r\n }\r\n return \"Unknown time\";\r\n}\r\n\r\nfunction historyEntryKey(entry: ScriptSettingsHistoryEntry, index: number) {\r\n return `${entry.at_unix}-${entry.applied_version}-${index}`;\r\n}\r\n\r\n// ── History sub-components ────────────────────────────────────────────────────\r\n\r\nfunction ChangeDetails({ entry }: { entry: ScriptSettingsHistoryEntry }) {\r\n const theme = useMantineTheme();\r\n return (\r\n <Flex direction=\"column\" gap=\"0.45vh\" p=\"0.8vh\" style={{ border: `0.1vh solid ${alpha(theme.colors.dark[6], 0.8)}`, borderRadius: theme.radius.xs, background: alpha(theme.colors.dark[9], 0.35) }}>\r\n <Text ff=\"Akrobat Bold\" size=\"xxs\" c=\"rgba(255,255,255,0.45)\">\r\n Version {entry.expected_version ?? \"?\"} {\"\\u2192\"} {entry.applied_version ?? \"?\"}\r\n </Text>\r\n <div style={{ display: \"grid\", gridTemplateColumns: \"minmax(18vh, 22vh) minmax(0, 1fr) minmax(0, 1fr)\", gap: \"0.1vh\", border: `0.1vh solid ${alpha(theme.colors.dark[6], 0.9)}`, borderRadius: theme.radius.xs, overflow: \"hidden\", background: alpha(theme.colors.dark[6], 0.8) }}>\r\n <Text ff=\"Akrobat Bold\" size=\"xxs\" c=\"rgba(255,255,255,0.45)\" px=\"0.6vh\" py=\"0.45vh\" style={{ background: alpha(theme.colors.dark[8], 0.85) }}>Path</Text>\r\n <Text ff=\"Akrobat Bold\" size=\"xxs\" c=\"rgba(255,255,255,0.45)\" px=\"0.6vh\" py=\"0.45vh\" style={{ background: alpha(theme.colors.dark[8], 0.85) }}>From</Text>\r\n <Text ff=\"Akrobat Bold\" size=\"xxs\" c=\"rgba(255,255,255,0.45)\" px=\"0.6vh\" py=\"0.45vh\" style={{ background: alpha(theme.colors.dark[8], 0.85) }}>To</Text>\r\n {(entry.changes || []).map((change, idx) => {\r\n const bg = idx % 2 === 0 ? alpha(theme.colors.dark[9], 0.5) : alpha(theme.colors.dark[8], 0.42);\r\n return [\r\n <Text key={`${idx}-p`} ff=\"Akrobat Bold\" size=\"xxs\" c=\"#8ad1ff\" px=\"0.6vh\" py=\"0.55vh\" style={{ background: bg, wordBreak: \"break-word\" }}>{change.path}</Text>,\r\n <Text key={`${idx}-o`} ff=\"monospace\" size=\"xxs\" c=\"rgba(255,255,255,0.5)\" px=\"0.6vh\" py=\"0.55vh\" style={{ background: bg, wordBreak: \"break-word\", whiteSpace: \"pre-wrap\" }}>{formatValue(change.old)}</Text>,\r\n <Text key={`${idx}-n`} ff=\"monospace\" size=\"xxs\" c=\"rgba(255,255,255,0.78)\" px=\"0.6vh\" py=\"0.55vh\" style={{ background: bg, wordBreak: \"break-word\", whiteSpace: \"pre-wrap\" }}>{formatValue(change.new)}</Text>,\r\n ];\r\n })}\r\n </div>\r\n </Flex>\r\n );\r\n}\r\n\r\nfunction HistoryTableRow({ entry, expanded, onToggle }: { entry: ScriptSettingsHistoryEntry; expanded: boolean; onToggle: () => void }) {\r\n const theme = useMantineTheme();\r\n const admin = entry.admin?.name || entry.admin?.identifier || \"unknown\";\r\n const firstPath = entry.changes?.[0]?.path || \"-\";\r\n const changeCount = entry.changes?.length || 0;\r\n const versionText = `${entry.expected_version ?? \"?\"} \\u2192 ${entry.applied_version ?? \"?\"}`;\r\n\r\n return (\r\n <motion.div layout initial={{ opacity: 0, y: 6 }} animate={{ opacity: 1, y: 0 }} transition={{ duration: 0.16, ease: \"easeOut\" }}>\r\n <Flex direction=\"column\" gap=\"0.45vh\">\r\n <motion.button onClick={onToggle} whileHover={{ scale: 1.002 }} whileTap={{ scale: 0.997 }} transition={{ duration: 0.12 }}\r\n style={{ background: expanded ? alpha(theme.colors.dark[7], 0.45) : alpha(theme.colors.dark[8], 0.35), border: `0.1vh solid ${expanded ? alpha(theme.colors[theme.primaryColor][5], 0.35) : alpha(theme.colors.dark[6], 0.75)}`, borderRadius: theme.radius.xs, padding: \"0.65vh 0.75vh\", cursor: \"pointer\", textAlign: \"left\" }}>\r\n <div style={{ display: \"grid\", gridTemplateColumns: \"2.2vh 20vh 12vh 6vh 1fr minmax(16vh, auto)\", gap: \"0.8vh\", alignItems: \"center\" }}>\r\n <div style={{ display: \"flex\", justifyContent: \"center\" }}>\r\n <motion.div animate={{ rotate: expanded ? 0 : -90 }} transition={{ duration: 0.18, ease: \"easeOut\" }}>\r\n <ChevronDown size=\"1.5vh\" color={expanded ? \"rgba(255,255,255,0.6)\" : \"rgba(255,255,255,0.45)\"} />\r\n </motion.div>\r\n </div>\r\n <Text ff=\"Akrobat Bold\" size=\"xxs\" c=\"rgba(255,255,255,0.75)\" lineClamp={1}>{formatHistoryDateTime(entry)}</Text>\r\n <Text ff=\"Akrobat Bold\" size=\"xxs\" c=\"rgba(255,255,255,0.68)\" lineClamp={1}>{admin}</Text>\r\n <Text ff=\"Akrobat Bold\" size=\"xxs\" c=\"rgba(255,255,255,0.68)\">{changeCount}</Text>\r\n <Text ff=\"Akrobat Bold\" size=\"xxs\" c=\"rgba(255,255,255,0.58)\" lineClamp={1}>{firstPath}</Text>\r\n <Text ff=\"monospace\" size=\"xxs\" c=\"rgba(255,255,255,0.68)\">{versionText}</Text>\r\n </div>\r\n </motion.button>\r\n <AnimatePresence initial={false}>\r\n {expanded && (\r\n <motion.div key=\"details\" initial={{ opacity: 0, height: 0, y: -4 }} animate={{ opacity: 1, height: \"auto\", y: 0 }} exit={{ opacity: 0, height: 0, y: -4 }} transition={{ duration: 0.2, ease: \"easeInOut\" }} style={{ overflow: \"hidden\" }}>\r\n <ChangeDetails entry={entry} />\r\n </motion.div>\r\n )}\r\n </AnimatePresence>\r\n </Flex>\r\n </motion.div>\r\n );\r\n}\r\n\r\nfunction HistoryTableHeader() {\r\n const theme = useMantineTheme();\r\n return (\r\n <div style={{ display: \"grid\", gridTemplateColumns: \"2.2vh 20vh 12vh 6vh 1fr minmax(16vh, auto)\", gap: \"0.8vh\", alignItems: \"center\", border: `0.1vh solid ${alpha(theme.colors.dark[6], 0.8)}`, borderRadius: theme.radius.xs, background: alpha(theme.colors.dark[8], 0.55), padding: \"0.55vh 0.75vh\" }}>\r\n <Text ff=\"Akrobat Bold\" size=\"xxs\" c=\"rgba(255,255,255,0.35)\"> </Text>\r\n <Text ff=\"Akrobat Bold\" size=\"xxs\" c=\"rgba(255,255,255,0.45)\">Time</Text>\r\n <Text ff=\"Akrobat Bold\" size=\"xxs\" c=\"rgba(255,255,255,0.45)\">Admin</Text>\r\n <Text ff=\"Akrobat Bold\" size=\"xxs\" c=\"rgba(255,255,255,0.45)\">#</Text>\r\n <Text ff=\"Akrobat Bold\" size=\"xxs\" c=\"rgba(255,255,255,0.45)\">First Change</Text>\r\n <Text ff=\"Akrobat Bold\" size=\"xxs\" c=\"rgba(255,255,255,0.45)\">Version</Text>\r\n </div>\r\n );\r\n}\r\n\r\n// ── History Modal ─────────────────────────────────────────────────────────────\r\n\r\nfunction SettingsHistoryModal({\r\n onClose,\r\n}: {\r\n onClose: () => void;\r\n}) {\r\n const { getHistory } = getScriptSettingsInstance();\r\n const theme = useMantineTheme();\r\n const color = theme.colors[theme.primaryColor][5];\r\n const [queryInput, setQueryInput] = useState(\"\");\r\n const [pathInput, setPathInput] = useState(\"\");\r\n const [adminInput, setAdminInput] = useState(\"\");\r\n const [query, setQuery] = useState(\"\");\r\n const [path, setPath] = useState(\"\");\r\n const [admin, setAdmin] = useState(\"\");\r\n const [expandedKey, setExpandedKey] = useState<string | null>(null);\r\n\r\n const filters = useMemo(() => ({ query, path, admin }), [query, path, admin]);\r\n\r\n const historyQuery = useInfiniteQuery({\r\n queryKey: [\"scriptSettingsHistory\", filters],\r\n initialPageParam: 0,\r\n queryFn: async ({ pageParam }) => {\r\n const response = await getHistory({\r\n offset: pageParam,\r\n limit: 25,\r\n query: filters.query || undefined,\r\n path: filters.path || undefined,\r\n admin: filters.admin || undefined,\r\n });\r\n if (!response?.success || !response.data) {\r\n throw new Error(response?._error || \"Failed to load settings history\");\r\n }\r\n return response.data;\r\n },\r\n getNextPageParam: (lastPage) => lastPage.nextOffset,\r\n });\r\n\r\n const rows = historyQuery.data?.pages.flatMap((page) => page.items) ?? [];\r\n const total = historyQuery.data?.pages[0]?.total ?? 0;\r\n\r\n const handleListScroll = (e: UIEvent<HTMLDivElement>) => {\r\n const el = e.currentTarget;\r\n if (el.scrollHeight - el.scrollTop - el.clientHeight < 280 && historyQuery.hasNextPage && !historyQuery.isFetchingNextPage) {\r\n historyQuery.fetchNextPage();\r\n }\r\n };\r\n\r\n return (\r\n <Modal title=\"Settings History\" icon={History} iconColor={color} onClose={onClose} width=\"88vh\" maxHeight=\"82vh\" zIndex={260}>\r\n <Flex direction=\"column\" style={{ flex: 1, minHeight: 0 }}>\r\n <Flex gap=\"xs\" p=\"sm\" style={{ borderBottom: `0.1vh solid ${alpha(theme.colors.dark[7], 0.8)}` }}>\r\n <TextInput leftSection={<Search size=\"1.4vh\" />} placeholder=\"Search path/admin/value\" value={queryInput} onChange={(e) => setQueryInput(e.currentTarget.value)} size=\"xs\" style={{ flex: 1 }} />\r\n <TextInput leftSection={<Filter size=\"1.4vh\" />} placeholder=\"Path filter (e.g. basic.weightUnit)\" value={pathInput} onChange={(e) => setPathInput(e.currentTarget.value)} size=\"xs\" style={{ flex: 1 }} />\r\n <TextInput leftSection={<User size=\"1.4vh\" />} placeholder=\"Admin filter\" value={adminInput} onChange={(e) => setAdminInput(e.currentTarget.value)} size=\"xs\" style={{ flex: 1 }} />\r\n <motion.button\r\n onClick={() => { setExpandedKey(null); setQuery(queryInput.trim()); setPath(pathInput.trim().toLowerCase()); setAdmin(adminInput.trim().toLowerCase()); }}\r\n whileHover={{ background: alpha(color, 0.2) }} whileTap={{ scale: 0.97 }}\r\n style={{ background: alpha(color, 0.12), border: `0.1vh solid ${alpha(color, 0.35)}`, borderRadius: theme.radius.xs, padding: \"0.55vh 0.85vh\", cursor: \"pointer\" }}>\r\n <Text ff=\"Akrobat Bold\" size=\"xxs\" c={color}>Apply</Text>\r\n </motion.button>\r\n </Flex>\r\n\r\n <Flex direction=\"column\" gap=\"xs\" p=\"sm\" style={{ flex: 1, minHeight: 0, overflowY: \"auto\" }} onScroll={handleListScroll}>\r\n <Text ff=\"Akrobat Bold\" size=\"xxs\" c=\"rgba(255,255,255,0.45)\">\r\n {historyQuery.isFetching && !historyQuery.data ? \"Loading history...\" : `${total} entries`}\r\n </Text>\r\n <HistoryTableHeader />\r\n {historyQuery.isError && <Text ff=\"Akrobat Bold\" size=\"xs\" c=\"#ef4444\">{(historyQuery.error as Error).message}</Text>}\r\n {!historyQuery.isLoading && rows.length === 0 && !historyQuery.isError && (\r\n <Text ff=\"Akrobat Bold\" size=\"xs\" c=\"rgba(255,255,255,0.45)\">No history found for current filters.</Text>\r\n )}\r\n <AnimatePresence initial={false}>\r\n {rows.map((entry, index) => {\r\n const key = historyEntryKey(entry, index);\r\n return <HistoryTableRow key={key} entry={entry} expanded={expandedKey === key} onToggle={() => setExpandedKey(expandedKey === key ? null : key)} />;\r\n })}\r\n </AnimatePresence>\r\n {(historyQuery.isFetchingNextPage || historyQuery.isLoading) && (\r\n <Flex justify=\"center\" py=\"sm\"><Loader size=\"sm\" color={color} /></Flex>\r\n )}\r\n </Flex>\r\n </Flex>\r\n <Flex justify=\"flex-end\" gap=\"xs\" px=\"sm\" py=\"xs\" style={{ borderTop: `0.1vh solid ${theme.colors.dark[7]}`, flexShrink: 0 }}>\r\n <motion.button onClick={onClose} whileHover={{ background: alpha(theme.colors.dark[7], 0.5) }} whileTap={{ scale: 0.97 }}\r\n style={{ background: \"transparent\", border: `0.1vh solid ${theme.colors.dark[6]}`, borderRadius: theme.radius.xs, padding: `${theme.spacing.xxs} ${theme.spacing.xs}`, cursor: \"pointer\", display: \"flex\", alignItems: \"center\", gap: theme.spacing.xxs }}>\r\n <X color=\"rgba(255,255,255,0.4)\" size=\"1.5vh\" />\r\n <Text ff=\"Akrobat Bold\" size=\"xs\" tt=\"uppercase\" lts=\"0.05em\" c=\"rgba(255,255,255,0.4)\">Close</Text>\r\n </motion.button>\r\n </Flex>\r\n </Modal>\r\n );\r\n}\r\n\r\n// ── SettingsPanel Inner ───────────────────────────────────────────────────────\r\n\r\nfunction SettingsPanelInner<T extends Record<string, any>>({\r\n navItems, title, subtitle, children, isSaving, onClose,\r\n schema, resetConfirmText, defaultSettings,\r\n width, height,\r\n}: Omit<SettingsPanelProps<T>, \"open\" | \"onClose\"> & { isSaving: boolean; onClose: () => void }) {\r\n const { updateSettings, getHistory } = getScriptSettingsInstance<T>();\r\n const form = useForm<T>();\r\n const theme = useMantineTheme();\r\n const color = theme.colors[theme.primaryColor][5];\r\n const version = useSettings((s) => s.resourceVersion);\r\n const [activeTab, setActiveTab] = useState(navItems[0]?.id ?? \"\");\r\n const [jsonOpen, setJsonOpen] = useState(false);\r\n const [historyOpen, setHistoryOpen] = useState(false);\r\n const [resetOpen, setResetOpen] = useState(false);\r\n const [closeConfirmOpen, setCloseConfirmOpen] = useState(false);\r\n const changedCount = form.changedCount ?? 0;\r\n const isDirty = changedCount > 0;\r\n\r\n useEffect(() => {\r\n function handleKeyDown(e: KeyboardEvent) {\r\n if (e.key !== \"Escape\") return;\r\n if (isDirty) {\r\n e.preventDefault();\r\n setCloseConfirmOpen(true);\r\n return;\r\n }\r\n onClose();\r\n }\r\n window.addEventListener(\"keydown\", handleKeyDown);\r\n return () => window.removeEventListener(\"keydown\", handleKeyDown);\r\n }, [isDirty, onClose]);\r\n\r\n return (\r\n <>\r\n <AnimatePresence>{jsonOpen && <SettingsJsonModal onClose={() => setJsonOpen(false)} schema={schema} />}</AnimatePresence>\r\n <AnimatePresence>{historyOpen && <SettingsHistoryModal onClose={() => setHistoryOpen(false)} />}</AnimatePresence>\r\n <AnimatePresence>\r\n {resetOpen && (\r\n <ConfirmModal\r\n title=\"Reset to Defaults\"\r\n description=\"This will permanently reset ALL settings back to their defaults. Every setting you have configured will be overwritten. This cannot be undone.\"\r\n confirmLabel=\"Reset Settings\"\r\n confirmText={resetConfirmText}\r\n onConfirm={() => {\r\n updateSettings(defaultSettings).then(() => form.reinitialize(cloneSettings(defaultSettings)));\r\n setResetOpen(false);\r\n }}\r\n onClose={() => setResetOpen(false)}\r\n zIndex={300}\r\n />\r\n )}\r\n </AnimatePresence>\r\n <AnimatePresence>\r\n {closeConfirmOpen && (\r\n <ConfirmModal\r\n title=\"Discard Unsaved Changes?\"\r\n description=\"You have unsaved changes. Closing now will discard them.\"\r\n confirmLabel=\"Close Without Saving\"\r\n onConfirm={() => { setCloseConfirmOpen(false); onClose(); }}\r\n onClose={() => setCloseConfirmOpen(false)}\r\n zIndex={300}\r\n />\r\n )}\r\n </AnimatePresence>\r\n\r\n <MotionFlex\r\n pos=\"absolute\" left=\"50%\" top=\"50%\"\r\n bg={alpha(theme.colors.dark[9], 0.9)}\r\n w={width ?? \"120vh\"} h={height ?? \"80vh\"} bdrs=\"sm\"\r\n style={{\r\n userSelect: \"none\", overflow: \"hidden\",\r\n transform: \"translate(-50%, -50%)\",\r\n boxShadow: \"0 0 10px rgba(0,0,0,0.5)\",\r\n border: `0.1vh solid ${theme.colors.dark[7]}`,\r\n }}\r\n direction=\"row\"\r\n initial={{ scale: 0.3, opacity: 0, transform: \"translate(-50%, -50%)\" }}\r\n animate={{ scale: 1, opacity: 1, transform: \"translate(-50%, -50%)\" }}\r\n exit={{ scale: 0.3, opacity: 0, transform: \"translate(-50%, -50%)\" }}\r\n >\r\n {/* ── Sidebar ── */}\r\n <Flex direction=\"column\" style={{ width: \"18vh\", flexShrink: 0, borderRight: `0.1vh solid ${alpha(theme.colors.dark[6], 0.8)}`, background: alpha(theme.colors.dark[8], 0.6), overflow: \"hidden\" }}>\r\n <Flex align=\"baseline\" gap=\"0.3vh\" px=\"sm\" py=\"sm\" style={{ borderBottom: `0.1vh solid ${alpha(theme.colors.dark[6], 0.5)}`, flexShrink: 0 }}>\r\n <Text size=\"lg\" ff=\"Akrobat Bold\" tt=\"uppercase\">{title}</Text>\r\n {subtitle && <Text tt=\"uppercase\" fw={600} c={color}>{subtitle}</Text>}\r\n </Flex>\r\n\r\n {/* Quick controls */}\r\n <Flex gap=\"xxs\" px=\"xs\" py=\"xs\" style={{ borderBottom: `0.1vh solid ${alpha(theme.colors.dark[6], 0.4)}`, flexShrink: 0 }}>\r\n <motion.button title=\"Undo\" onClick={() => form.canBack && form.back()} disabled={!form.canBack}\r\n whileHover={form.canBack ? { background: \"rgba(255,255,255,0.07)\" } : undefined}\r\n whileTap={form.canBack ? { scale: 0.97 } : undefined}\r\n style={{ flex: 1, aspectRatio: \"1 / 1\", background: \"transparent\", border: `0.1vh solid ${alpha(theme.colors.dark[5], form.canBack ? 0.6 : 0.3)}`, borderRadius: theme.radius.xs, cursor: form.canBack ? \"pointer\" : \"default\", display: \"flex\", alignItems: \"center\", justifyContent: \"center\", opacity: form.canBack ? 1 : 0.35, transition: \"opacity 0.2s\" }}>\r\n <Undo2 size=\"1.5vh\" color=\"rgba(255,255,255,0.7)\" />\r\n </motion.button>\r\n <motion.button title=\"Redo\" onClick={() => form.canForward && form.forward()} disabled={!form.canForward}\r\n whileHover={form.canForward ? { background: \"rgba(255,255,255,0.07)\" } : undefined}\r\n whileTap={form.canForward ? { scale: 0.97 } : undefined}\r\n style={{ flex: 1, aspectRatio: \"1 / 1\", background: \"transparent\", border: `0.1vh solid ${alpha(theme.colors.dark[5], form.canForward ? 0.6 : 0.3)}`, borderRadius: theme.radius.xs, cursor: form.canForward ? \"pointer\" : \"default\", display: \"flex\", alignItems: \"center\", justifyContent: \"center\", opacity: form.canForward ? 1 : 0.35, transition: \"opacity 0.2s\" }}>\r\n <Redo2 size=\"1.5vh\" color=\"rgba(255,255,255,0.7)\" />\r\n </motion.button>\r\n <motion.button title={isSaving ? \"Saving...\" : isDirty ? `Save (${changedCount})` : \"Save\"}\r\n onClick={() => isDirty && !isSaving && form.submit()} disabled={!isDirty || isSaving}\r\n whileHover={isDirty && !isSaving ? { background: alpha(color, 0.25), borderColor: alpha(color, 0.5) } : undefined}\r\n whileTap={isDirty && !isSaving ? { scale: 0.97 } : undefined}\r\n style={{ flex: 1, aspectRatio: \"1 / 1\", background: isDirty ? alpha(color, 0.14) : \"transparent\", border: `0.1vh solid ${isDirty ? alpha(color, 0.35) : alpha(theme.colors.dark[5], 0.3)}`, borderRadius: theme.radius.xs, cursor: isDirty && !isSaving ? \"pointer\" : \"default\", display: \"flex\", alignItems: \"center\", justifyContent: \"center\", opacity: isDirty ? 1 : 0.35, transition: \"opacity 0.2s, background 0.15s\" }}>\r\n {isSaving ? <Loader size=\"1.5vh\" color={color} type=\"dots\" /> : <SaveIcon color={isDirty ? color : \"rgba(255,255,255,0.35)\"} size=\"1.5vh\" />}\r\n </motion.button>\r\n <motion.button title=\"History\" onClick={() => setHistoryOpen(true)}\r\n whileHover={{ background: alpha(\"#22d3ee\", 0.16), borderColor: alpha(\"#22d3ee\", 0.5) }}\r\n whileTap={{ scale: 0.97 }}\r\n style={{ flex: 1, aspectRatio: \"1 / 1\", background: alpha(\"#22d3ee\", 0.07), border: `0.1vh solid ${alpha(\"#22d3ee\", 0.25)}`, borderRadius: theme.radius.xs, cursor: \"pointer\", display: \"flex\", alignItems: \"center\", justifyContent: \"center\" }}>\r\n <History color=\"#22d3ee\" size=\"1.5vh\" />\r\n </motion.button>\r\n </Flex>\r\n\r\n {/* Nav items */}\r\n <Flex direction=\"column\" gap=\"xxs\" p=\"xs\" style={{ flex: 1, overflowY: \"auto\" }}>\r\n {navItems.map((item) => (\r\n <NavItemButton key={item.id} icon={item.icon} label={item.label} active={activeTab === item.id} onClick={() => setActiveTab(item.id)} />\r\n ))}\r\n </Flex>\r\n\r\n {/* Bottom actions */}\r\n <Flex direction=\"column\" p=\"xs\" gap=\"xs\" style={{ borderTop: `0.1vh solid ${alpha(theme.colors.dark[6], 0.5)}`, flexShrink: 0 }}>\r\n <motion.button onClick={() => isDirty && form.reset()} disabled={!isDirty}\r\n whileHover={isDirty ? { background: alpha(\"#f97316\", 0.12), borderColor: alpha(\"#f97316\", 0.45) } : undefined}\r\n whileTap={isDirty ? { scale: 0.97 } : undefined}\r\n style={{ width: \"100%\", background: \"transparent\", border: `0.1vh solid ${isDirty ? alpha(\"#f97316\", 0.35) : alpha(theme.colors.dark[5], 0.3)}`, borderRadius: theme.radius.xs, padding: \"0.65vh 0.8vh\", cursor: isDirty ? \"pointer\" : \"default\", display: \"flex\", alignItems: \"center\", gap: \"0.55vh\", opacity: isDirty ? 1 : 0.35, transition: \"opacity 0.2s\" }}>\r\n <XCircle color={isDirty ? \"#f97316\" : \"rgba(255,255,255,0.35)\"} size=\"1.6vh\" />\r\n <Text ff=\"Akrobat Bold\" size=\"xxs\" tt=\"uppercase\" lts=\"0.06em\" c={isDirty ? \"#f97316\" : \"rgba(255,255,255,0.35)\"}>Discard</Text>\r\n </motion.button>\r\n\r\n <div style={{ height: \"0.05vh\", background: \"rgba(255,255,255,0.07)\", margin: \"0.1vh 0\" }} />\r\n\r\n <motion.button onClick={() => setJsonOpen(true)}\r\n whileHover={{ background: alpha(color, 0.16), borderColor: alpha(color, 0.45) }}\r\n whileTap={{ scale: 0.97 }}\r\n style={{ width: \"100%\", background: alpha(color, 0.07), border: `0.1vh solid ${alpha(color, 0.28)}`, borderRadius: theme.radius.xs, padding: \"0.65vh 0.8vh\", cursor: \"pointer\", display: \"flex\", alignItems: \"center\", gap: \"0.55vh\" }}>\r\n <Code2 color={color} size=\"1.6vh\" />\r\n <Text ff=\"Akrobat Bold\" size=\"xxs\" tt=\"uppercase\" lts=\"0.06em\" c={color}>Manual Edit</Text>\r\n </motion.button>\r\n\r\n <motion.button onClick={() => setResetOpen(true)}\r\n whileHover={{ background: alpha(\"#ef4444\", 0.16), borderColor: alpha(\"#ef4444\", 0.5) }}\r\n whileTap={{ scale: 0.97 }}\r\n style={{ width: \"100%\", background: alpha(\"#ef4444\", 0.07), border: `0.1vh solid ${alpha(\"#ef4444\", 0.25)}`, borderRadius: theme.radius.xs, padding: \"0.65vh 0.8vh\", cursor: \"pointer\", display: \"flex\", alignItems: \"center\", gap: \"0.55vh\" }}>\r\n <RotateCcw color=\"#ef4444\" size=\"1.6vh\" />\r\n <Text ff=\"Akrobat Bold\" size=\"xxs\" tt=\"uppercase\" lts=\"0.06em\" c=\"#ef4444\">Reset Defaults</Text>\r\n </motion.button>\r\n\r\n {version && (\r\n <Text size=\"0.95vh\" c=\"dimmed\" ta=\"center\" style={{ letterSpacing: \"0.04em\", opacity: 0.8 }}>\r\n Version {version}\r\n </Text>\r\n )}\r\n </Flex>\r\n </Flex>\r\n\r\n {/* ── Content ── */}\r\n <AnimatePresence mode=\"wait\">\r\n <motion.div key={activeTab} initial={{ opacity: 0, y: 4 }} animate={{ opacity: 1, y: 0 }} exit={{ opacity: 0, y: -4 }} transition={{ duration: 0.15 }}\r\n style={{ flex: 1, display: \"flex\", flexDirection: \"column\", overflowY: \"auto\" }}>\r\n {children(activeTab)}\r\n </motion.div>\r\n </AnimatePresence>\r\n </MotionFlex>\r\n </>\r\n );\r\n}\r\n\r\n// ── Utility ───────────────────────────────────────────────────────────────────\r\n\r\nfunction cloneSettings<T>(value: T): T {\r\n return JSON.parse(JSON.stringify(value)) as T;\r\n}\r\n\r\n// ── Public SettingsPanel ──────────────────────────────────────────────────────\r\n\r\nconst defaultOnClose = () => fetchNui(\"CLOSE_ADMIN_SECTION\");\r\n\r\nexport function SettingsPanel<T extends Record<string, any>>(props: SettingsPanelProps<T>) {\r\n const { open, onClose = defaultOnClose } = props;\r\n const { store, updateSettings, fetchSettings } = getScriptSettingsInstance<T>();\r\n const [isSaving, setIsSaving] = useState(false);\r\n const [loaded, setLoaded] = useState(false);\r\n\r\n // Fetch fresh settings from the server every time the panel opens.\r\n // This ensures the form is populated with real DB values, not stale defaults.\r\n useEffect(() => {\r\n if (!open) {\r\n setLoaded(false);\r\n return;\r\n }\r\n let cancelled = false;\r\n fetchSettings()\r\n .then(() => { if (!cancelled) setLoaded(true); })\r\n .catch(() => { if (!cancelled) setLoaded(true); });\r\n return () => { cancelled = true; };\r\n }, [open]);\r\n\r\n if (!open || !loaded) return null;\r\n\r\n return (\r\n <QueryClientProvider client={settingsPanelQueryClient}>\r\n <FormProvider<T>\r\n initialValues={cloneSettings(store.getState())}\r\n onSubmit={async (form) => {\r\n if (isSaving) return;\r\n setIsSaving(true);\r\n try {\r\n const result: any = await updateSettings(form.values as T);\r\n if (result?.success) {\r\n form.reinitialize(cloneSettings(form.values as T));\r\n settingsPanelQueryClient.invalidateQueries({ queryKey: [\"scriptSettingsHistory\"] });\r\n return;\r\n }\r\n form.reinitialize(cloneSettings(store.getState()));\r\n if (result?._error) {\r\n console.warn(`[SettingsPanel] settings save failed: ${result._error}`);\r\n }\r\n } finally {\r\n setIsSaving(false);\r\n }\r\n }}\r\n >\r\n <AnimatePresence>\r\n {open && (\r\n <SettingsPanelInner<T>\r\n {...props}\r\n onClose={onClose}\r\n isSaving={isSaving}\r\n />\r\n )}\r\n </AnimatePresence>\r\n </FormProvider>\r\n </QueryClientProvider>\r\n );\r\n}\r\n","import { Flex, Image, Select, Text, useMantineTheme } from \"@mantine/core\";\r\nimport { useEffect, useMemo, useRef, useState } from \"react\";\r\nimport { locale } from \"../utils/locales\";\r\nimport { useItems, useItemsList } from \"../utils/useItems\";\r\n\r\nexport type SelectItemProps = {\r\n label: string;\r\n value: string;\r\n onChange: (value: string) => void;\r\n style?: React.CSSProperties;\r\n excludeItemNames?: string[];\r\n};\r\n\r\nfunction LazyImage({ src, alt, style }: { src: string; alt: string; style?: React.CSSProperties }) {\r\n const [visible, setVisible] = useState(false);\r\n const ref = useRef<HTMLDivElement>(null);\r\n\r\n useEffect(() => {\r\n const observer = new IntersectionObserver(([entry]) => {\r\n if (entry.isIntersecting) {\r\n setVisible(true);\r\n observer.disconnect();\r\n }\r\n });\r\n if (ref.current) observer.observe(ref.current);\r\n return () => observer.disconnect();\r\n }, []);\r\n\r\n return (\r\n <div ref={ref} style={{ width: \"4vh\", height: \"4vh\" }}>\r\n {visible && <Image src={src} alt={alt} fit=\"contain\" style={style} />}\r\n </div>\r\n );\r\n}\r\n\r\nexport function SelectItem(props: SelectItemProps) {\r\n const invItems = useItems();\r\n const formattedItems = useMemo(() => {\r\n const seen = new Set<string>();\r\n return useItemsList(props.excludeItemNames ?? [])\r\n .filter((item) => {\r\n if (seen.has(item.name)) return false;\r\n seen.add(item.name);\r\n return true;\r\n })\r\n .map((item) => ({ value: item.name, label: item.label, image: item.image }));\r\n }, [invItems, props.excludeItemNames]);\r\n\r\n return (\r\n <Select\r\n maxDropdownHeight=\"30vh\"\r\n label={locale(props.label)}\r\n size=\"xs\"\r\n flex={1}\r\n style={props.style}\r\n limit={50}\r\n value={props.value}\r\n onChange={(v) => props.onChange(v as string)}\r\n data={formattedItems}\r\n allowDeselect={false}\r\n searchable\r\n leftSectionWidth=\"4vh\"\r\n leftSection={\r\n props.value ? (\r\n <Image\r\n fallbackSrc=\"/placeholder.png\"\r\n src={invItems[props.value]?.image || \"\"}\r\n alt={props.value}\r\n fit=\"contain\"\r\n maw=\"4vh\"\r\n style={{ aspectRatio: \"1 / 1\" }}\r\n />\r\n ) : null\r\n }\r\n nothingFoundMessage={locale(\"NoItemsFound\")}\r\n renderOption={(item) => (\r\n <Flex align=\"center\" gap=\"xs\" w=\"100%\">\r\n <LazyImage\r\n src={invItems[item.option.value]?.image || \"\"}\r\n alt={item.option.label}\r\n style={{ aspectRatio: \"1 / 1\" }}\r\n />\r\n <Flex direction=\"column\">\r\n <Text size=\"sm\">{item.option.label}</Text>\r\n <Text size=\"xxs\" c=\"dimmed\">{item.option.value}</Text>\r\n </Flex>\r\n </Flex>\r\n )}\r\n />\r\n );\r\n}\r\n","import { createContext, useContext, type ReactNode } from \"react\";\r\nimport { Flex, Select, TextInput } from \"@mantine/core\";\r\nimport { INPUT_MAPPER_KEYS_BY_PRIMARY, INPUT_MAPPER_PRIMARY_OPTIONS } from \"@/utils/inputMapper\";\r\n\r\nexport type FiveMControls = {\r\n _type: string;\r\n _key: string;\r\n};\r\n\r\ntype KeyBindContextValue = {\r\n value: FiveMControls;\r\n onChange: (next: FiveMControls) => void;\r\n};\r\n\r\nconst KeyBindContext = createContext<KeyBindContextValue | null>(null);\r\n\r\nfunction useKeyBindContext(): KeyBindContextValue {\r\n const ctx = useContext(KeyBindContext);\r\n if (!ctx) {\r\n throw new Error(\"FiveMKeyBindInput.* must be used inside <FiveMKeyBindInput>\");\r\n }\r\n return ctx;\r\n}\r\n\r\ntype RootProps = {\r\n value: FiveMControls;\r\n onChange: (next: FiveMControls) => void;\r\n children: ReactNode;\r\n};\r\n\r\nfunction Root({ value, onChange, children }: RootProps) {\r\n return (\r\n <KeyBindContext.Provider value={{ value, onChange }}>\r\n <Flex gap=\"xs\" style={{ flex: 1 }}>\r\n {children}\r\n </Flex>\r\n </KeyBindContext.Provider>\r\n );\r\n}\r\n\r\ntype CategoryProps = {\r\n label?: string;\r\n};\r\n\r\nfunction Category({ label = \"Primary\" }: CategoryProps) {\r\n const { value, onChange } = useKeyBindContext();\r\n\r\n return (\r\n <Select\r\n label={label}\r\n size=\"xs\"\r\n style={{ flex: 1 }}\r\n value={value._type}\r\n data={[...INPUT_MAPPER_PRIMARY_OPTIONS]}\r\n onChange={(nextType) => {\r\n if (!nextType) return;\r\n\r\n const keyOptions = INPUT_MAPPER_KEYS_BY_PRIMARY[nextType] ?? [];\r\n const hasCurrentKey = keyOptions.includes(value._key);\r\n const nextKey = hasCurrentKey ? value._key : (keyOptions[0] ?? value._key);\r\n\r\n onChange({\r\n ...value,\r\n _type: nextType,\r\n _key: nextKey,\r\n });\r\n }}\r\n searchable\r\n allowDeselect={false}\r\n />\r\n );\r\n}\r\n\r\ntype KeyProps = {\r\n label?: string;\r\n};\r\n\r\nfunction Key({ label = \"Key\" }: KeyProps) {\r\n const { value, onChange } = useKeyBindContext();\r\n\r\n const keyOptions = INPUT_MAPPER_KEYS_BY_PRIMARY[value._type] ?? [];\r\n\r\n if (keyOptions.length === 0) {\r\n return (\r\n <TextInput\r\n label={label}\r\n size=\"xs\"\r\n style={{ flex: 1 }}\r\n value={value._key}\r\n onChange={(e) => onChange({ ...value, _key: e.currentTarget.value })}\r\n placeholder=\"Type key value\"\r\n />\r\n );\r\n }\r\n\r\n return (\r\n <Select\r\n label={label}\r\n size=\"xs\"\r\n style={{ flex: 1 }}\r\n value={value._key}\r\n data={keyOptions}\r\n onChange={(nextKey) => {\r\n if (!nextKey) return;\r\n onChange({ ...value, _key: nextKey });\r\n }}\r\n searchable\r\n allowDeselect={false}\r\n />\r\n );\r\n}\r\n\r\nexport const FiveMKeyBindInput = Object.assign(Root, {\r\n Category,\r\n Key,\r\n});\r\n","import { alpha, Loader, Text, useMantineTheme } from \"@mantine/core\";\r\nimport { motion } from \"framer-motion\";\r\nimport { Check, X } from \"lucide-react\";\r\nimport { useState } from \"react\";\r\n\r\ntype SaveState = \"idle\" | \"pending\" | \"success\" | \"error\";\r\n\r\nexport function AsyncSaveButton({\r\n onSave,\r\n color,\r\n label = \"Save Changes\",\r\n style,\r\n}: {\r\n onSave: () => Promise<any>;\r\n color: string;\r\n label?: string;\r\n style?: React.CSSProperties;\r\n}) {\r\n const theme = useMantineTheme();\r\n const [state, setState] = useState<SaveState>(\"idle\");\r\n\r\n const handleClick = async () => {\r\n if (state === \"pending\") return;\r\n setState(\"pending\");\r\n try {\r\n const result = await onSave();\r\n setState(result?.success === false ? \"error\" : \"success\");\r\n } catch {\r\n setState(\"error\");\r\n }\r\n setTimeout(() => setState(\"idle\"), 2000);\r\n };\r\n\r\n const c = state === \"error\" ? \"#ef4444\" : color;\r\n\r\n return (\r\n <motion.button\r\n onClick={handleClick}\r\n disabled={state === \"pending\"}\r\n whileHover={state === \"pending\" ? {} : { background: alpha(c, 0.25) }}\r\n whileTap={state === \"pending\" ? {} : { scale: 0.98 }}\r\n style={{\r\n background: alpha(c, 0.14),\r\n border: `0.1vh solid ${alpha(c, 0.4)}`,\r\n borderRadius: theme.radius.xs,\r\n padding: `${theme.spacing.xxs} ${theme.spacing.xs}`,\r\n cursor: state === \"pending\" ? \"default\" : \"pointer\",\r\n display: \"flex\", alignItems: \"center\",\r\n justifyContent: \"center\", gap: theme.spacing.xxs,\r\n transition: \"background 0.2s, border-color 0.2s\",\r\n alignSelf: \"flex-end\",\r\n ...style,\r\n }}\r\n >\r\n {state === \"pending\"\r\n ? <Loader size=\"1.4vh\" color={c} type=\"oval\" />\r\n : state === \"error\"\r\n ? <X size=\"1.4vh\" color={c} />\r\n : <Check size=\"1.4vh\" color={c} />\r\n }\r\n <Text ff=\"Akrobat Bold\" size=\"xs\" tt=\"uppercase\" lts=\"0.06em\" c={c}>\r\n {state === \"success\" ? \"Saved!\" : state === \"error\" ? \"Failed!\" : label}\r\n </Text>\r\n </motion.button>\r\n );\r\n}\r\n","import { Flex, Text } from \"@mantine/core\";\r\nimport { locale } from \"@/utils\";\r\nimport { LucideProps } from \"lucide-react\";\r\nimport { ComponentType } from \"react\";\r\n\r\nexport type AdminPageTitleProps = {\r\n title: string;\r\n icon: ComponentType<LucideProps>;\r\n color: string;\r\n};\r\n\r\nexport function AdminPageTitle(props: AdminPageTitleProps) {\r\n return (\r\n <Flex align=\"center\" gap=\"xs\">\r\n <props.icon color={props.color} />\r\n <Text ff=\"Akrobat Bold\" tt=\"uppercase\" lts=\"0.1em\" size=\"sm\" c=\"rgba(255,255,255,0.6)\">\r\n {locale(props.title)}\r\n </Text>\r\n </Flex>\r\n );\r\n}\r\n"]}