dirk-cfx-react 1.1.78 → 1.1.80

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/index.d.cts CHANGED
@@ -1,4 +1,4 @@
1
- export { AdminPageTitle, AdminPageTitleProps, AsyncSaveButton, BlipColorSelect, BlipColorSelectProps, BlipDisplaySelect, BlipDisplaySelectProps, BlipIconSelect, BlipIconSelectProps, BorderedIcon, BorderedIconProps, ButtonProps, ConfigPanel, ConfigPanelProps, ConfirmModal, ConfirmModalProps, ControlMultiSelect, ControlMultiSelectProps, ControlSelect, ControlSelectProps, Counter, FiveMControls, FiveMKeyBindInput, FloatingParticles, FloatingParticlesProps, GroupName, GroupNameProps, GroupRank, GroupRankProps, GroupSelect, GroupSelectProps, GroupType, GroupValue, InfoBox, InfoBoxProps, InputContainer, InputContainerProps, LevelBanner, LevelPanel, MissingItemsBanner, Modal, ModalContext, ModalProps, ModalProvider, MotionFlex, MotionIcon, MotionImage, MotionText, NavBar, NavItem, NavigationContext, NavigationProvider, NavigationStore, ParticleState, PositionPicker, PositionPickerProps, ProgressProps, Prompt, PromptButton, PromptModal, SegmentProps, SegmentedControl, SegmentedControlProps, SegmentedProgress, SelectItem, SelectItemProps, StoreModalProps, TestBed, TestBedItem, TestBedPlacement, TestBedProps, ThemeOverrideSection, ThemeOverrideSectionProps, ThemeOverrideValue, Title, TitleProps, TitleSize, Vector4DeleteButton, Vector4Display, Vector4Value, WorldPositionGotoButton, WorldPositionSetButton, useMissingItemsAudit, useModal, useModalActions, useNavigation, useNavigationStore } from './components/index.cjs';
1
+ export { AdminPageTitle, AdminPageTitleProps, AnimPostFxSelect, AnimPostFxSelectProps, AsyncSaveButton, BlipColorSelect, BlipColorSelectProps, BlipDisplaySelect, BlipDisplaySelectProps, BlipIconSelect, BlipIconSelectProps, BorderedIcon, BorderedIconProps, ButtonProps, ConfigPanel, ConfigPanelProps, ConfirmModal, ConfirmModalProps, ControlMultiSelect, ControlMultiSelectProps, ControlSelect, ControlSelectProps, Counter, FiveMControls, FiveMKeyBindInput, FloatingParticles, FloatingParticlesProps, GroupName, GroupNameProps, GroupRank, GroupRankProps, GroupSelect, GroupSelectProps, GroupType, GroupValue, InfoBox, InfoBoxProps, InputContainer, InputContainerProps, LevelBanner, LevelPanel, MissingItemsBanner, Modal, ModalContext, ModalProps, ModalProvider, MotionFlex, MotionIcon, MotionImage, MotionText, NavBar, NavItem, NavigationContext, NavigationProvider, NavigationStore, ParticleState, PositionPicker, PositionPickerProps, ProgressProps, Prompt, PromptButton, PromptModal, SegmentProps, SegmentedControl, SegmentedControlProps, SegmentedProgress, SelectItem, SelectItemProps, StoreModalProps, SwitchPanel, SwitchPanelProps, TestBed, TestBedItem, TestBedPlacement, TestBedProps, ThemeOverrideSection, ThemeOverrideSectionProps, ThemeOverrideValue, Title, TitleProps, TitleSize, Vector4DeleteButton, Vector4Display, Vector4Value, WorldPositionGotoButton, WorldPositionSetButton, useMissingItemsAudit, useModal, useModalActions, useNavigation, useNavigationStore } from './components/index.cjs';
2
2
  export { FrameworkGrade, FrameworkGroup, GTA_CONTROLS, GTA_CONTROL_GROUP_ORDER, GtaControl, GtaControlGroup, INPUT_MAPPER_KEYS_BY_PRIMARY, INPUT_MAPPER_PRIMARY_OPTIONS, InitialFetch, InternalEvent, InventoryItem, InventoryItems, SettingsState, SkillSettings, UploadImageProps, colorWithAlpha, copyToClipboard, createSkill, extractDefaults, fetchLuaTable, fetchNui, formatGtaControl, gameToMap, getGtaControl, getImageShape, getItemImageUrl, initialFetches, internalEvent, isEnvBrowser, isProfanity, latPr100, locale, localeStore, mapCenter, mapToGame, noop, numberToRoman, openLink, registerInitialFetch, registerInitialLuaTableFetch, runFetches, selectAllGroups, splitFAString, updatePresignedURL, uploadImage, useAutoFetcher, useFrameworkGroups, useItems, useItemsList, useProfanityStore, useSettings } from './utils/index.cjs';
3
3
  export { FormProvider, FormState, NuiHandlerSignature, NuiMessageData, ScriptConfigHistoryChange, ScriptConfigHistoryEntry, ScriptConfigHistoryRequest, ScriptConfigHistoryResponse, ScriptConfigInstance, TornEdgeSVGFilter, ValidationRules, ValidatorFn, createFormStore, createScriptConfig, getScriptConfigInstance, useAudio, useForm, useFormActions, useFormError, useFormErrors, useFormField, useFormFields, useNuiEvent, useTornEdges } from './hooks/index.cjs';
4
4
  export { DirkProvider, DirkProviderProps } from './providers/index.cjs';
package/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- export { AdminPageTitle, AdminPageTitleProps, AsyncSaveButton, BlipColorSelect, BlipColorSelectProps, BlipDisplaySelect, BlipDisplaySelectProps, BlipIconSelect, BlipIconSelectProps, BorderedIcon, BorderedIconProps, ButtonProps, ConfigPanel, ConfigPanelProps, ConfirmModal, ConfirmModalProps, ControlMultiSelect, ControlMultiSelectProps, ControlSelect, ControlSelectProps, Counter, FiveMControls, FiveMKeyBindInput, FloatingParticles, FloatingParticlesProps, GroupName, GroupNameProps, GroupRank, GroupRankProps, GroupSelect, GroupSelectProps, GroupType, GroupValue, InfoBox, InfoBoxProps, InputContainer, InputContainerProps, LevelBanner, LevelPanel, MissingItemsBanner, Modal, ModalContext, ModalProps, ModalProvider, MotionFlex, MotionIcon, MotionImage, MotionText, NavBar, NavItem, NavigationContext, NavigationProvider, NavigationStore, ParticleState, PositionPicker, PositionPickerProps, ProgressProps, Prompt, PromptButton, PromptModal, SegmentProps, SegmentedControl, SegmentedControlProps, SegmentedProgress, SelectItem, SelectItemProps, StoreModalProps, TestBed, TestBedItem, TestBedPlacement, TestBedProps, ThemeOverrideSection, ThemeOverrideSectionProps, ThemeOverrideValue, Title, TitleProps, TitleSize, Vector4DeleteButton, Vector4Display, Vector4Value, WorldPositionGotoButton, WorldPositionSetButton, useMissingItemsAudit, useModal, useModalActions, useNavigation, useNavigationStore } from './components/index.js';
1
+ export { AdminPageTitle, AdminPageTitleProps, AnimPostFxSelect, AnimPostFxSelectProps, AsyncSaveButton, BlipColorSelect, BlipColorSelectProps, BlipDisplaySelect, BlipDisplaySelectProps, BlipIconSelect, BlipIconSelectProps, BorderedIcon, BorderedIconProps, ButtonProps, ConfigPanel, ConfigPanelProps, ConfirmModal, ConfirmModalProps, ControlMultiSelect, ControlMultiSelectProps, ControlSelect, ControlSelectProps, Counter, FiveMControls, FiveMKeyBindInput, FloatingParticles, FloatingParticlesProps, GroupName, GroupNameProps, GroupRank, GroupRankProps, GroupSelect, GroupSelectProps, GroupType, GroupValue, InfoBox, InfoBoxProps, InputContainer, InputContainerProps, LevelBanner, LevelPanel, MissingItemsBanner, Modal, ModalContext, ModalProps, ModalProvider, MotionFlex, MotionIcon, MotionImage, MotionText, NavBar, NavItem, NavigationContext, NavigationProvider, NavigationStore, ParticleState, PositionPicker, PositionPickerProps, ProgressProps, Prompt, PromptButton, PromptModal, SegmentProps, SegmentedControl, SegmentedControlProps, SegmentedProgress, SelectItem, SelectItemProps, StoreModalProps, SwitchPanel, SwitchPanelProps, TestBed, TestBedItem, TestBedPlacement, TestBedProps, ThemeOverrideSection, ThemeOverrideSectionProps, ThemeOverrideValue, Title, TitleProps, TitleSize, Vector4DeleteButton, Vector4Display, Vector4Value, WorldPositionGotoButton, WorldPositionSetButton, useMissingItemsAudit, useModal, useModalActions, useNavigation, useNavigationStore } from './components/index.js';
2
2
  export { FrameworkGrade, FrameworkGroup, GTA_CONTROLS, GTA_CONTROL_GROUP_ORDER, GtaControl, GtaControlGroup, INPUT_MAPPER_KEYS_BY_PRIMARY, INPUT_MAPPER_PRIMARY_OPTIONS, InitialFetch, InternalEvent, InventoryItem, InventoryItems, SettingsState, SkillSettings, UploadImageProps, colorWithAlpha, copyToClipboard, createSkill, extractDefaults, fetchLuaTable, fetchNui, formatGtaControl, gameToMap, getGtaControl, getImageShape, getItemImageUrl, initialFetches, internalEvent, isEnvBrowser, isProfanity, latPr100, locale, localeStore, mapCenter, mapToGame, noop, numberToRoman, openLink, registerInitialFetch, registerInitialLuaTableFetch, runFetches, selectAllGroups, splitFAString, updatePresignedURL, uploadImage, useAutoFetcher, useFrameworkGroups, useItems, useItemsList, useProfanityStore, useSettings } from './utils/index.js';
3
3
  export { FormProvider, FormState, NuiHandlerSignature, NuiMessageData, ScriptConfigHistoryChange, ScriptConfigHistoryEntry, ScriptConfigHistoryRequest, ScriptConfigHistoryResponse, ScriptConfigInstance, TornEdgeSVGFilter, ValidationRules, ValidatorFn, createFormStore, createScriptConfig, getScriptConfigInstance, useAudio, useForm, useFormActions, useFormError, useFormErrors, useFormField, useFormFields, useNuiEvent, useTornEdges } from './hooks/index.js';
4
4
  export { DirkProvider, DirkProviderProps } from './providers/index.js';
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- import { Flex, Text, Image as Image$1, createTheme, Box, Stack, Title as Title$1, Code, TextInput, Select, useMantineTheme, Tooltip, alpha, Progress, RingProgress, Portal, Button, NumberInput, MultiSelect, Loader, ActionIcon, Switch, ColorInput, Popover, MantineProvider, BackgroundImage, Group, JsonInput } from '@mantine/core';
1
+ import { Flex, Text, Image as Image$1, createTheme, Box, Stack, Title as Title$1, Code, TextInput, Select, useMantineTheme, Tooltip, alpha, Progress, RingProgress, Portal, Button, NumberInput, MultiSelect, Loader, Switch, ActionIcon, ColorInput, Popover, MantineProvider, BackgroundImage, Group, JsonInput } from '@mantine/core';
2
2
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
3
3
  import React6, { createContext, useContext, useEffect, useRef, useState, useCallback, useMemo, useLayoutEffect } from 'react';
4
4
  import { create, useStore, createStore } from 'zustand';
@@ -1244,11 +1244,11 @@ var colorNames = {
1244
1244
  Yellow: { r: 255, g: 255, b: 0 },
1245
1245
  YellowGreen: { r: 154, g: 205, b: 50 }
1246
1246
  };
1247
- function colorWithAlpha(color, alpha10) {
1247
+ function colorWithAlpha(color, alpha11) {
1248
1248
  const lowerCasedColor = color.toLowerCase();
1249
1249
  if (colorNames[lowerCasedColor]) {
1250
1250
  const rgb = colorNames[lowerCasedColor];
1251
- return `rgba(${rgb.r}, ${rgb.g}, ${rgb.b}, ${alpha10})`;
1251
+ return `rgba(${rgb.r}, ${rgb.g}, ${rgb.b}, ${alpha11})`;
1252
1252
  }
1253
1253
  if (/^#([A-Fa-f0-9]{6})$/.test(color)) {
1254
1254
  const hex = color.slice(1);
@@ -1256,12 +1256,12 @@ function colorWithAlpha(color, alpha10) {
1256
1256
  const r = bigint >> 16 & 255;
1257
1257
  const g = bigint >> 8 & 255;
1258
1258
  const b = bigint & 255;
1259
- return `rgba(${r}, ${g}, ${b}, ${alpha10})`;
1259
+ return `rgba(${r}, ${g}, ${b}, ${alpha11})`;
1260
1260
  }
1261
1261
  if (/^rgb\((\d{1,3}), (\d{1,3}), (\d{1,3})\)$/.test(color)) {
1262
1262
  const result = color.match(/^rgb\((\d{1,3}), (\d{1,3}), (\d{1,3})\)$/);
1263
1263
  if (result) {
1264
- return `rgba(${result[1]}, ${result[2]}, ${result[3]}, ${alpha10})`;
1264
+ return `rgba(${result[1]}, ${result[2]}, ${result[3]}, ${alpha11})`;
1265
1265
  }
1266
1266
  }
1267
1267
  return color;
@@ -5852,6 +5852,45 @@ function AdminPageTitle(props) {
5852
5852
  /* @__PURE__ */ jsx(Text, { ff: "Akrobat Bold", tt: "uppercase", lts: "0.1em", size: "sm", c: "rgba(255,255,255,0.6)", children: locale(props.title) })
5853
5853
  ] });
5854
5854
  }
5855
+ function SwitchPanel({ label: label2, description: description2, checked, onChange, disabled }) {
5856
+ const theme2 = useMantineTheme();
5857
+ const pc = theme2.colors[theme2.primaryColor];
5858
+ return /* @__PURE__ */ jsxs(
5859
+ Flex,
5860
+ {
5861
+ justify: "space-between",
5862
+ align: "center",
5863
+ p: "xs",
5864
+ style: {
5865
+ background: alpha(theme2.colors.dark[5], 0.35),
5866
+ border: "0.1vh solid rgba(255,255,255,0.05)",
5867
+ borderRadius: theme2.radius.xs,
5868
+ opacity: disabled ? 0.5 : 1
5869
+ },
5870
+ children: [
5871
+ /* @__PURE__ */ jsxs(Flex, { direction: "column", gap: "xxs", style: { flex: 1, minWidth: 0 }, children: [
5872
+ typeof label2 === "string" ? /* @__PURE__ */ jsx(Text, { ff: "Akrobat Bold", size: "xs", c: "rgba(255,255,255,0.85)", children: label2 }) : label2,
5873
+ description2 && (typeof description2 === "string" ? /* @__PURE__ */ jsx(Text, { ff: "Akrobat Bold", size: "xxs", c: "rgba(255,255,255,0.45)", children: description2 }) : description2)
5874
+ ] }),
5875
+ /* @__PURE__ */ jsx(
5876
+ Switch,
5877
+ {
5878
+ checked,
5879
+ disabled,
5880
+ onChange: (e) => onChange(e.currentTarget.checked),
5881
+ size: "md",
5882
+ styles: {
5883
+ track: {
5884
+ background: checked ? alpha(pc[6], 0.4) : "rgba(255,255,255,0.08)",
5885
+ borderColor: checked ? alpha(pc[6], 0.6) : "rgba(255,255,255,0.1)"
5886
+ }
5887
+ }
5888
+ }
5889
+ )
5890
+ ]
5891
+ }
5892
+ );
5893
+ }
5855
5894
  var placementStyle = (placement) => {
5856
5895
  switch (placement) {
5857
5896
  case "top-center":
@@ -6102,32 +6141,13 @@ function ThemeOverrideSection({
6102
6141
  color
6103
6142
  }
6104
6143
  ),
6105
- /* @__PURE__ */ jsxs(
6106
- Flex,
6144
+ /* @__PURE__ */ jsx(
6145
+ SwitchPanel,
6107
6146
  {
6108
- align: "center",
6109
- justify: "space-between",
6110
- p: "xs",
6111
- style: {
6112
- background: `rgba(255,255,255,${editable ? 0.04 : 0.02})`,
6113
- border: `0.1vh solid ${editable ? color : "rgba(255,255,255,0.08)"}`,
6114
- borderRadius: mantineTheme.radius.xs,
6115
- transition: "background 0.15s, border-color 0.15s"
6116
- },
6117
- children: [
6118
- /* @__PURE__ */ jsxs(Flex, { direction: "column", gap: "xxs", style: { flex: 1, minWidth: 0 }, children: [
6119
- /* @__PURE__ */ jsx(Text, { ff: "Akrobat Bold", size: "xs", c: "rgba(255,255,255,0.9)", children: locale("OverrideGlobalTheme") || "Override global theme" }),
6120
- /* @__PURE__ */ jsx(Text, { ff: "Akrobat Bold", size: "xxs", c: "rgba(255,255,255,0.4)", children: locale("OverrideGlobalThemeDesc") || "When on, this resource uses its own primary colour and palette instead of dirk_lib's. Turn off to fall back to the global theme \u2014 your custom palette is kept." })
6121
- ] }),
6122
- /* @__PURE__ */ jsx(
6123
- Switch,
6124
- {
6125
- size: "md",
6126
- checked: value.useOverride,
6127
- onChange: (e) => set("useOverride", e.currentTarget.checked)
6128
- }
6129
- )
6130
- ]
6147
+ label: locale("OverrideGlobalTheme") || "Override global theme",
6148
+ description: locale("OverrideGlobalThemeDesc") || "When on, this resource uses its own primary colour and palette instead of dirk_lib's. Turn off to fall back to the global theme \u2014 your custom palette is kept.",
6149
+ checked: value.useOverride,
6150
+ onChange: (v) => set("useOverride", v)
6131
6151
  }
6132
6152
  ),
6133
6153
  /* @__PURE__ */ jsxs(
@@ -6293,6 +6313,246 @@ function SwatchTile({
6293
6313
  ) })
6294
6314
  ] });
6295
6315
  }
6316
+
6317
+ // src/utils/gtaAnimPostFx.ts
6318
+ var GTA_ANIM_POST_FX_GROUP_ORDER = [
6319
+ "Wake Up / Sleep",
6320
+ "Character Switch",
6321
+ "Cinematic Push-In",
6322
+ "Death / Fail",
6323
+ "Heist",
6324
+ "Minigame",
6325
+ "Drug / Trip",
6326
+ "Color Filter / Tint",
6327
+ "Multiplayer",
6328
+ "Misc"
6329
+ ];
6330
+ var GTA_ANIM_POST_FX = [
6331
+ // ── Wake Up / Sleep (community-known; not in altV docs) ────────────────────
6332
+ { name: "ULP_PlayerWakeUp", label: "Player Wake Up", group: "Wake Up / Sleep" },
6333
+ { name: "MinigameEndNeutral", label: "Minigame End \u2014 Neutral", group: "Wake Up / Sleep" },
6334
+ { name: "MinigameEndFranklin", label: "Minigame End \u2014 Franklin", group: "Wake Up / Sleep" },
6335
+ { name: "MinigameEndMichael", label: "Minigame End \u2014 Michael", group: "Wake Up / Sleep" },
6336
+ { name: "MinigameEndTrevor", label: "Minigame End \u2014 Trevor", group: "Wake Up / Sleep" },
6337
+ // ── Character Switch (Franklin / Michael / Trevor / Neutral variants) ─────
6338
+ { name: "SwitchHUDIn", group: "Character Switch" },
6339
+ { name: "SwitchHUDOut", group: "Character Switch" },
6340
+ { name: "SwitchHUDFranklinIn", group: "Character Switch" },
6341
+ { name: "SwitchHUDFranklinOut", group: "Character Switch" },
6342
+ { name: "SwitchHUDMichaelIn", group: "Character Switch" },
6343
+ { name: "SwitchHUDMichaelOut", group: "Character Switch" },
6344
+ { name: "SwitchHUDTrevorIn", group: "Character Switch" },
6345
+ { name: "SwitchHUDTrevorOut", group: "Character Switch" },
6346
+ { name: "SwitchOpenFranklin", group: "Character Switch" },
6347
+ { name: "SwitchOpenFranklinIn", group: "Character Switch" },
6348
+ { name: "SwitchOpenFranklinOut", group: "Character Switch" },
6349
+ { name: "SwitchOpenMichaelIn", group: "Character Switch" },
6350
+ { name: "SwitchOpenMichaelMid", group: "Character Switch" },
6351
+ { name: "SwitchOpenMichaelOut", group: "Character Switch" },
6352
+ { name: "SwitchOpenTrevorIn", group: "Character Switch" },
6353
+ { name: "SwitchOpenTrevorOut", group: "Character Switch" },
6354
+ { name: "SwitchOpenNeutralFIB5", group: "Character Switch" },
6355
+ { name: "SwitchOpenNeutralOutHeist", group: "Character Switch" },
6356
+ { name: "SwitchSceneFranklin", group: "Character Switch" },
6357
+ { name: "SwitchSceneMichael", group: "Character Switch" },
6358
+ { name: "SwitchSceneNeutral", group: "Character Switch" },
6359
+ { name: "SwitchSceneTrevor", group: "Character Switch" },
6360
+ { name: "SwitchShortFranklinIn", group: "Character Switch" },
6361
+ { name: "SwitchShortFranklinMid", group: "Character Switch" },
6362
+ { name: "SwitchShortMichaelIn", group: "Character Switch" },
6363
+ { name: "SwitchShortMichaelMid", group: "Character Switch" },
6364
+ { name: "SwitchShortNeutralIn", group: "Character Switch" },
6365
+ { name: "SwitchShortNeutralMid", group: "Character Switch" },
6366
+ { name: "SwitchShortTrevorIn", group: "Character Switch" },
6367
+ { name: "SwitchShortTrevorMid", group: "Character Switch" },
6368
+ { name: "switch_cam_1", group: "Character Switch" },
6369
+ { name: "switch_cam_2", group: "Character Switch" },
6370
+ // ── Cinematic Push-In (slow zoom intro to a character) ────────────────────
6371
+ { name: "CamPushInFranklin", group: "Cinematic Push-In" },
6372
+ { name: "CamPushInMichael", group: "Cinematic Push-In" },
6373
+ { name: "CamPushInTrevor", group: "Cinematic Push-In" },
6374
+ { name: "CamPushInNeutral", group: "Cinematic Push-In" },
6375
+ { name: "BeastIntroScene", label: "Beast Intro", group: "Cinematic Push-In" },
6376
+ { name: "BeastLaunch", group: "Cinematic Push-In" },
6377
+ { name: "BeastTransition", group: "Cinematic Push-In" },
6378
+ // ── Death / Fail (red tint, slow-mo blur) ─────────────────────────────────
6379
+ { name: "DeathFailNeutralIn", group: "Death / Fail" },
6380
+ { name: "DeathFailFranklinIn", group: "Death / Fail" },
6381
+ { name: "DeathFailMichaelIn", group: "Death / Fail" },
6382
+ { name: "DeathFailTrevorIn", group: "Death / Fail" },
6383
+ { name: "DeathFailMPIn", label: "Death Fail \u2014 MP", group: "Death / Fail" },
6384
+ { name: "DeathFailMPDark", label: "Death Fail \u2014 MP Dark", group: "Death / Fail" },
6385
+ { name: "DeathFailOut", group: "Death / Fail" },
6386
+ { name: "Rampage", group: "Death / Fail" },
6387
+ { name: "RampageOut", group: "Death / Fail" },
6388
+ // ── Heist (celebration / locate / pass) ───────────────────────────────────
6389
+ { name: "HeistCelebEnd", group: "Heist" },
6390
+ { name: "HeistCelebPass", group: "Heist" },
6391
+ { name: "HeistCelebPassBW", label: "Heist Celeb Pass (B/W)", group: "Heist" },
6392
+ { name: "HeistCelebToast", group: "Heist" },
6393
+ { name: "HeistLocate", group: "Heist" },
6394
+ { name: "HeistTripSkipFade", group: "Heist" },
6395
+ // ── Minigame / Menu ───────────────────────────────────────────────────────
6396
+ { name: "MenuMGIn", group: "Minigame" },
6397
+ { name: "MenuMGHeistIn", group: "Minigame" },
6398
+ { name: "MenuMGHeistIntro", group: "Minigame" },
6399
+ { name: "MenuMGHeistOut", group: "Minigame" },
6400
+ { name: "MenuMGHeistTint", group: "Minigame" },
6401
+ { name: "MenuMGSelectionIn", group: "Minigame" },
6402
+ { name: "MenuMGSelectionTint", group: "Minigame" },
6403
+ { name: "MenuMGTournamentIn", group: "Minigame" },
6404
+ { name: "MenuMGTournamentTint", group: "Minigame" },
6405
+ { name: "MinigameTransitionIn", group: "Minigame" },
6406
+ { name: "MinigameTransitionOut", group: "Minigame" },
6407
+ // ── Drug / Trip (psychedelic, blur, distortion) ───────────────────────────
6408
+ { name: "DMT_flight", group: "Drug / Trip" },
6409
+ { name: "DMT_flight_intro", group: "Drug / Trip" },
6410
+ { name: "PeyoteIn", group: "Drug / Trip" },
6411
+ { name: "PeyoteOut", group: "Drug / Trip" },
6412
+ { name: "PeyoteEndIn", group: "Drug / Trip" },
6413
+ { name: "PeyoteEndOut", group: "Drug / Trip" },
6414
+ { name: "DrugsDrivingIn", group: "Drug / Trip" },
6415
+ { name: "DrugsDrivingOut", group: "Drug / Trip" },
6416
+ { name: "DrugsMichaelAliensFight", group: "Drug / Trip" },
6417
+ { name: "DrugsMichaelAliensFightIn", group: "Drug / Trip" },
6418
+ { name: "DrugsMichaelAliensFightOut", group: "Drug / Trip" },
6419
+ { name: "DrugsTrevorClownsFight", group: "Drug / Trip" },
6420
+ { name: "DrugsTrevorClownsFightIn", group: "Drug / Trip" },
6421
+ { name: "DrugsTrevorClownsFightOut", group: "Drug / Trip" },
6422
+ { name: "ChopVision", label: "Chop Vision (dog)", group: "Drug / Trip" },
6423
+ // ── Color Filter / Tint (one-off and biker formation filters) ─────────────
6424
+ { name: "PPFilter", group: "Color Filter / Tint" },
6425
+ { name: "PPFilterOut", group: "Color Filter / Tint" },
6426
+ { name: "PPGreen", group: "Color Filter / Tint" },
6427
+ { name: "PPGreenOut", group: "Color Filter / Tint" },
6428
+ { name: "PPOrange", group: "Color Filter / Tint" },
6429
+ { name: "PPOrangeOut", group: "Color Filter / Tint" },
6430
+ { name: "PPPink", group: "Color Filter / Tint" },
6431
+ { name: "PPPinkOut", group: "Color Filter / Tint" },
6432
+ { name: "PPPurple", group: "Color Filter / Tint" },
6433
+ { name: "PPPurpleOut", group: "Color Filter / Tint" },
6434
+ { name: "BikerFilter", group: "Color Filter / Tint" },
6435
+ { name: "BikerFilterOut", group: "Color Filter / Tint" },
6436
+ { name: "BikerFormation", group: "Color Filter / Tint" },
6437
+ { name: "BikerFormationOut", group: "Color Filter / Tint" },
6438
+ { name: "InchOrange", group: "Color Filter / Tint" },
6439
+ { name: "InchOrangeOut", group: "Color Filter / Tint" },
6440
+ { name: "InchPurple", group: "Color Filter / Tint" },
6441
+ { name: "InchPurpleOut", group: "Color Filter / Tint" },
6442
+ { name: "InchPickup", group: "Color Filter / Tint" },
6443
+ { name: "InchPickupOut", group: "Color Filter / Tint" },
6444
+ { name: "TinyRacerGreen", group: "Color Filter / Tint" },
6445
+ { name: "TinyRacerGreenOut", group: "Color Filter / Tint" },
6446
+ { name: "TinyRacerPink", group: "Color Filter / Tint" },
6447
+ { name: "TinyRacerPinkOut", group: "Color Filter / Tint" },
6448
+ { name: "TinyRacerIntroCam", group: "Color Filter / Tint" },
6449
+ { name: "DeadlineNeon", group: "Color Filter / Tint" },
6450
+ // ── Multiplayer (celeb, killstreak, race, etc.) ───────────────────────────
6451
+ { name: "MP_Celeb_Win", group: "Multiplayer" },
6452
+ { name: "MP_Celeb_Win_Out", group: "Multiplayer" },
6453
+ { name: "MP_Celeb_Lose", group: "Multiplayer" },
6454
+ { name: "MP_Celeb_Lose_Out", group: "Multiplayer" },
6455
+ { name: "MP_Celeb_Preload", group: "Multiplayer" },
6456
+ { name: "MP_Celeb_Preload_Fade", group: "Multiplayer" },
6457
+ { name: "MP_Bull_tost", group: "Multiplayer" },
6458
+ { name: "MP_Bull_tost_Out", group: "Multiplayer" },
6459
+ { name: "MP_Killstreak", group: "Multiplayer" },
6460
+ { name: "MP_Killstreak_Out", group: "Multiplayer" },
6461
+ { name: "MP_Loser_Streak_Out", group: "Multiplayer" },
6462
+ { name: "MP_OrbitalCannon", group: "Multiplayer" },
6463
+ { name: "MP_Powerplay", group: "Multiplayer" },
6464
+ { name: "MP_Powerplay_Out", group: "Multiplayer" },
6465
+ { name: "MP_SmugglerCheckpoint", group: "Multiplayer" },
6466
+ { name: "MP_TransformRaceFlash", group: "Multiplayer" },
6467
+ { name: "MP_WarpCheckpoint", group: "Multiplayer" },
6468
+ { name: "MP_corona_switch", group: "Multiplayer" },
6469
+ { name: "MP_intro_logo", group: "Multiplayer" },
6470
+ { name: "MP_job_load", group: "Multiplayer" },
6471
+ { name: "MP_race_crash", group: "Multiplayer" },
6472
+ // ── Misc (success notifs, special weapons, sniper / pause / explosions) ───
6473
+ { name: "SuccessFranklin", group: "Misc" },
6474
+ { name: "SuccessMichael", group: "Misc" },
6475
+ { name: "SuccessNeutral", group: "Misc" },
6476
+ { name: "SuccessTrevor", group: "Misc" },
6477
+ { name: "FocusIn", group: "Misc" },
6478
+ { name: "FocusOut", group: "Misc" },
6479
+ { name: "CrossLine", group: "Misc" },
6480
+ { name: "CrossLineOut", group: "Misc" },
6481
+ { name: "SniperOverlay", group: "Misc" },
6482
+ { name: "ExplosionJosh3", group: "Misc" },
6483
+ { name: "WeaponUpgrade", group: "Misc" },
6484
+ { name: "Dont_tazeme_bro", label: "Don't Taze Me Bro", group: "Misc" },
6485
+ { name: "LostTimeDay", group: "Misc" },
6486
+ { name: "LostTimeNight", group: "Misc" },
6487
+ { name: "PauseMenuOut", group: "Misc" },
6488
+ { name: "pennedIn", group: "Misc" },
6489
+ { name: "PennedInOut", group: "Misc" },
6490
+ { name: "RaceTurbo", group: "Misc" },
6491
+ { name: "DefaultFlash", group: "Misc" }
6492
+ ];
6493
+ function formatGtaAnimPostFx(name) {
6494
+ const entry = GTA_ANIM_POST_FX.find((fx) => fx.name === name);
6495
+ return entry?.label ?? name;
6496
+ }
6497
+ function buildGroupedData2(extraNames = []) {
6498
+ const groups = /* @__PURE__ */ new Map();
6499
+ const seen = /* @__PURE__ */ new Set();
6500
+ for (const fx of GTA_ANIM_POST_FX) {
6501
+ if (seen.has(fx.name)) continue;
6502
+ seen.add(fx.name);
6503
+ if (!groups.has(fx.group)) groups.set(fx.group, []);
6504
+ groups.get(fx.group).push(fx);
6505
+ }
6506
+ const data = GTA_ANIM_POST_FX_GROUP_ORDER.flatMap((g) => {
6507
+ const items = groups.get(g);
6508
+ if (!items || items.length === 0) return [];
6509
+ return [
6510
+ {
6511
+ group: g,
6512
+ items: items.map((fx) => ({
6513
+ value: fx.name,
6514
+ label: formatGtaAnimPostFx(fx.name)
6515
+ }))
6516
+ }
6517
+ ];
6518
+ });
6519
+ const knownNames = new Set(GTA_ANIM_POST_FX.map((fx) => fx.name));
6520
+ const customs = extraNames.filter((n) => n && !knownNames.has(n));
6521
+ if (customs.length > 0) {
6522
+ data.push({
6523
+ group: "Custom",
6524
+ items: customs.map((n) => ({ value: n, label: n }))
6525
+ });
6526
+ }
6527
+ return data;
6528
+ }
6529
+ function AnimPostFxSelect({
6530
+ value,
6531
+ onChange,
6532
+ label: label2 = "Screen FX",
6533
+ size = "xs",
6534
+ searchable = true,
6535
+ clearable = true,
6536
+ ...rest
6537
+ }) {
6538
+ const data = buildGroupedData2([value]);
6539
+ return /* @__PURE__ */ jsx(
6540
+ Select,
6541
+ {
6542
+ label: label2,
6543
+ size,
6544
+ searchable,
6545
+ clearable,
6546
+ maxDropdownHeight: 320,
6547
+ nothingFoundMessage: "No matching effects",
6548
+ placeholder: "Pick an effect...",
6549
+ ...rest,
6550
+ data,
6551
+ value: value || null,
6552
+ onChange: (v) => onChange(v ?? "")
6553
+ }
6554
+ );
6555
+ }
6296
6556
  function useTornEdges() {
6297
6557
  const game = useSettings((state) => state.game);
6298
6558
  return game === "rdr3" ? "torn-edge-wrapper" : "";
@@ -6653,6 +6913,6 @@ var Vector4Schema = z.object({
6653
6913
  w: z.number()
6654
6914
  });
6655
6915
 
6656
- export { AdminPageTitle, AsyncSaveButton, BlipColorSelect, BlipDisplaySelect, BlipIconSelect, BorderedIcon, ConfigPanel, ConfirmModal, ControlMultiSelect, ControlSelect, Counter, DirkProvider, FiveMKeyBindInput, FloatingParticles, FormProvider, GTA_CONTROLS, GTA_CONTROL_GROUP_ORDER, GroupName, GroupRank, GroupSelect, INPUT_MAPPER_KEYS_BY_PRIMARY, INPUT_MAPPER_PRIMARY_OPTIONS, InfoBox, InputContainer, LevelBanner, LevelPanel, MissingItemsBanner, Modal, ModalContext, ModalProvider, MotionFlex, MotionIcon, MotionImage, MotionText, NavBar, NavigationContext, NavigationProvider, PositionPicker, PromptModal, SegmentedControl, SegmentedProgress, SelectItem, TestBed, ThemeOverrideSection, Title, TornEdgeSVGFilter, Vector2Schema, Vector3Schema, Vector4DeleteButton, Vector4Display, Vector4Schema, WorldPositionGotoButton, WorldPositionSetButton, colorWithAlpha, copyToClipboard, createFormStore, createScriptConfig, createSkill, extractDefaults, fetchLuaTable, fetchNui, formatGtaControl, gameToMap, getGtaControl, getImageShape, getItemImageUrl, getScriptConfigInstance, initialFetches, internalEvent, isEnvBrowser, isProfanity, latPr100, locale, localeStore, mapCenter, mapToGame, noop, numberToRoman, openLink, registerInitialFetch, registerInitialLuaTableFetch, runFetches, selectAllGroups, splitFAString, updatePresignedURL, uploadImage, useAudio, useAutoFetcher, useForm, useFormActions, useFormError, useFormErrors, useFormField, useFormFields, useFrameworkGroups, useItems, useItemsList, useMissingItemsAudit, useModal, useModalActions, useNavigation, useNavigationStore, useNuiEvent, useProfanityStore, useSettings, useTornEdges };
6916
+ export { AdminPageTitle, AnimPostFxSelect, AsyncSaveButton, BlipColorSelect, BlipDisplaySelect, BlipIconSelect, BorderedIcon, ConfigPanel, ConfirmModal, ControlMultiSelect, ControlSelect, Counter, DirkProvider, FiveMKeyBindInput, FloatingParticles, FormProvider, GTA_CONTROLS, GTA_CONTROL_GROUP_ORDER, GroupName, GroupRank, GroupSelect, INPUT_MAPPER_KEYS_BY_PRIMARY, INPUT_MAPPER_PRIMARY_OPTIONS, InfoBox, InputContainer, LevelBanner, LevelPanel, MissingItemsBanner, Modal, ModalContext, ModalProvider, MotionFlex, MotionIcon, MotionImage, MotionText, NavBar, NavigationContext, NavigationProvider, PositionPicker, PromptModal, SegmentedControl, SegmentedProgress, SelectItem, SwitchPanel, TestBed, ThemeOverrideSection, Title, TornEdgeSVGFilter, Vector2Schema, Vector3Schema, Vector4DeleteButton, Vector4Display, Vector4Schema, WorldPositionGotoButton, WorldPositionSetButton, colorWithAlpha, copyToClipboard, createFormStore, createScriptConfig, createSkill, extractDefaults, fetchLuaTable, fetchNui, formatGtaControl, gameToMap, getGtaControl, getImageShape, getItemImageUrl, getScriptConfigInstance, initialFetches, internalEvent, isEnvBrowser, isProfanity, latPr100, locale, localeStore, mapCenter, mapToGame, noop, numberToRoman, openLink, registerInitialFetch, registerInitialLuaTableFetch, runFetches, selectAllGroups, splitFAString, updatePresignedURL, uploadImage, useAudio, useAutoFetcher, useForm, useFormActions, useFormError, useFormErrors, useFormField, useFormFields, useFrameworkGroups, useItems, useItemsList, useMissingItemsAudit, useModal, useModalActions, useNavigation, useNavigationStore, useNuiEvent, useProfanityStore, useSettings, useTornEdges };
6657
6917
  //# sourceMappingURL=index.js.map
6658
6918
  //# sourceMappingURL=index.js.map