dirk-cfx-react 1.1.8 → 1.1.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/index.cjs +1 -1
- package/dist/components/index.cjs.map +1 -1
- package/dist/components/index.js +2 -2
- package/dist/components/index.js.map +1 -1
- package/dist/index.cjs +26 -65
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +27 -66
- package/dist/index.js.map +1 -1
- package/dist/providers/index.cjs +25 -64
- package/dist/providers/index.cjs.map +1 -1
- package/dist/providers/index.js +25 -64
- package/dist/providers/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -571,7 +571,7 @@ function InputContainer(props) {
|
|
|
571
571
|
direction: "column",
|
|
572
572
|
h: props.h,
|
|
573
573
|
gap: props.title ? "xs" : 0,
|
|
574
|
-
bg: props.bg ||
|
|
574
|
+
bg: props.bg || core.alpha(theme.colors.dark[9], 0.65),
|
|
575
575
|
p: props.p || "sm",
|
|
576
576
|
style: {
|
|
577
577
|
borderRadius: theme.radius.xs,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/utils/colorWithAlpha.ts","../../src/utils/misc.ts","../../src/utils/fetchNui.ts","../../src/utils/locales.ts","../../src/utils/useSettings.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","FontAwesomeIcon","motion","Flex","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 { useEffect } from \"react\";\r\nimport { isEnvBrowser } from \"./misc\";\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) 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 resourceName = (window as any).GetParentResourceName\r\n ? (window as any).GetParentResourceName()\r\n : \"nui-frame-app\";\r\n\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","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});\r\n","import { create } from \"zustand\";\r\nimport { registerInitialFetch } from \"./fetchNui\";\r\nimport { MantineColorsTuple } from \"@mantine/core\";\r\n\r\nexport type SettingsState = {\r\n game: \"fivem\" | \"rdr3\";\r\n primaryColor: string;\r\n primaryShade: number;\r\n itemImgPath: string;\r\n customTheme?: MantineColorsTuple;\r\n};\r\n\r\nexport const useSettings = create<SettingsState>(() => ({\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\r\nregisterInitialFetch<Partial<SettingsState>>(\"GET_SETTINGS\")\r\n .then((data) => {\r\n useSettings.setState({\r\n ...data,\r\n });\r\n }).catch((err) => {\r\n console.error(\"Failed to fetch initial settings within dirk-cfx-react:\", err);\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 { 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 <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 // backgroundColor: colorWithAlpha(props.color ? props.color : theme.colors[theme.primaryColor][7 as number], (props.hoverable ? (props.hovered ? 0.3 : 0.2) : 0.2)),\r\n backgroundColor: 'rgba(0, 0, 0, 0.5)',\r\n \r\n padding: props.p || theme.spacing.xs,\r\n transition: 'all 0.2s ease-in-out',\r\n aspectRatio: '1/1', \r\n fontSize: props.fontSize ? props.fontSize: '2.5vh',\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}","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 || colorWithAlpha('var(--mantine-color-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 width: `${100 / props.segments}%`, // Ensures equal width distribution\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 || '0'}\r\n style={{\r\n userSelect: 'none',\r\n borderBottom: props.removeBorder ? 'none' : `0.2vh 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 { Flex, Text, useMantineTheme } from \"@mantine/core\";\r\nimport { useClickOutside } from \"@mantine/hooks\";\r\nimport { AnimatePresence } from \"framer-motion\";\r\nimport { MotionFlex, MotionIcon } from \"./Motion\";\r\nimport { useModal, useModalActions } from \"./ModalStore\";\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={'rgba(48, 48, 48, 0.84)'}\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/utils/colorWithAlpha.ts","../../src/utils/misc.ts","../../src/utils/fetchNui.ts","../../src/utils/locales.ts","../../src/utils/useSettings.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","FontAwesomeIcon","motion","Flex","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 { useEffect } from \"react\";\r\nimport { isEnvBrowser } from \"./misc\";\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) 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 resourceName = (window as any).GetParentResourceName\r\n ? (window as any).GetParentResourceName()\r\n : \"nui-frame-app\";\r\n\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","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});\r\n","import { create } from \"zustand\";\r\nimport { registerInitialFetch } from \"./fetchNui\";\r\nimport { MantineColorsTuple } from \"@mantine/core\";\r\n\r\nexport type SettingsState = {\r\n game: \"fivem\" | \"rdr3\";\r\n primaryColor: string;\r\n primaryShade: number;\r\n itemImgPath: string;\r\n customTheme?: MantineColorsTuple;\r\n};\r\n\r\nexport const useSettings = create<SettingsState>(() => ({\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\r\nregisterInitialFetch<Partial<SettingsState>>(\"GET_SETTINGS\")\r\n .then((data) => {\r\n useSettings.setState({\r\n ...data,\r\n });\r\n }).catch((err) => {\r\n console.error(\"Failed to fetch initial settings within dirk-cfx-react:\", err);\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 { 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 <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 // backgroundColor: colorWithAlpha(props.color ? props.color : theme.colors[theme.primaryColor][7 as number], (props.hoverable ? (props.hovered ? 0.3 : 0.2) : 0.2)),\r\n backgroundColor: 'rgba(0, 0, 0, 0.5)',\r\n \r\n padding: props.p || theme.spacing.xs,\r\n transition: 'all 0.2s ease-in-out',\r\n aspectRatio: '1/1', \r\n fontSize: props.fontSize ? props.fontSize: '2.5vh',\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}","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 width: `${100 / props.segments}%`, // Ensures equal width distribution\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 || '0'}\r\n style={{\r\n userSelect: 'none',\r\n borderBottom: props.removeBorder ? 'none' : `0.2vh 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 { Flex, Text, useMantineTheme } from \"@mantine/core\";\r\nimport { useClickOutside } from \"@mantine/hooks\";\r\nimport { AnimatePresence } from \"framer-motion\";\r\nimport { MotionFlex, MotionIcon } from \"./Motion\";\r\nimport { useModal, useModalActions } from \"./ModalStore\";\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={'rgba(48, 48, 48, 0.84)'}\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"]}
|
package/dist/components/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { createContext, useRef, useState, useEffect, useContext } from 'react';
|
|
2
2
|
import { create, useStore } from 'zustand';
|
|
3
3
|
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
|
|
4
|
-
import { Flex, Text, Image, useMantineTheme, Progress, RingProgress, Button } from '@mantine/core';
|
|
4
|
+
import { Flex, Text, Image, useMantineTheme, alpha, Progress, RingProgress, Button } from '@mantine/core';
|
|
5
5
|
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
6
6
|
import { motion, AnimatePresence, useMotionValue } from 'framer-motion';
|
|
7
7
|
import clickSoundUrl from '../click_sound-PNCRRTM4.mp3';
|
|
@@ -564,7 +564,7 @@ function InputContainer(props) {
|
|
|
564
564
|
direction: "column",
|
|
565
565
|
h: props.h,
|
|
566
566
|
gap: props.title ? "xs" : 0,
|
|
567
|
-
bg: props.bg ||
|
|
567
|
+
bg: props.bg || alpha(theme.colors.dark[9], 0.65),
|
|
568
568
|
p: props.p || "sm",
|
|
569
569
|
style: {
|
|
570
570
|
borderRadius: theme.radius.xs,
|