dirk-cfx-react 1.1.77 → 1.1.79

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, 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, 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
@@ -6293,6 +6293,246 @@ function SwatchTile({
6293
6293
  ) })
6294
6294
  ] });
6295
6295
  }
6296
+
6297
+ // src/utils/gtaAnimPostFx.ts
6298
+ var GTA_ANIM_POST_FX_GROUP_ORDER = [
6299
+ "Wake Up / Sleep",
6300
+ "Character Switch",
6301
+ "Cinematic Push-In",
6302
+ "Death / Fail",
6303
+ "Heist",
6304
+ "Minigame",
6305
+ "Drug / Trip",
6306
+ "Color Filter / Tint",
6307
+ "Multiplayer",
6308
+ "Misc"
6309
+ ];
6310
+ var GTA_ANIM_POST_FX = [
6311
+ // ── Wake Up / Sleep (community-known; not in altV docs) ────────────────────
6312
+ { name: "ULP_PlayerWakeUp", label: "Player Wake Up", group: "Wake Up / Sleep" },
6313
+ { name: "MinigameEndNeutral", label: "Minigame End \u2014 Neutral", group: "Wake Up / Sleep" },
6314
+ { name: "MinigameEndFranklin", label: "Minigame End \u2014 Franklin", group: "Wake Up / Sleep" },
6315
+ { name: "MinigameEndMichael", label: "Minigame End \u2014 Michael", group: "Wake Up / Sleep" },
6316
+ { name: "MinigameEndTrevor", label: "Minigame End \u2014 Trevor", group: "Wake Up / Sleep" },
6317
+ // ── Character Switch (Franklin / Michael / Trevor / Neutral variants) ─────
6318
+ { name: "SwitchHUDIn", group: "Character Switch" },
6319
+ { name: "SwitchHUDOut", group: "Character Switch" },
6320
+ { name: "SwitchHUDFranklinIn", group: "Character Switch" },
6321
+ { name: "SwitchHUDFranklinOut", group: "Character Switch" },
6322
+ { name: "SwitchHUDMichaelIn", group: "Character Switch" },
6323
+ { name: "SwitchHUDMichaelOut", group: "Character Switch" },
6324
+ { name: "SwitchHUDTrevorIn", group: "Character Switch" },
6325
+ { name: "SwitchHUDTrevorOut", group: "Character Switch" },
6326
+ { name: "SwitchOpenFranklin", group: "Character Switch" },
6327
+ { name: "SwitchOpenFranklinIn", group: "Character Switch" },
6328
+ { name: "SwitchOpenFranklinOut", group: "Character Switch" },
6329
+ { name: "SwitchOpenMichaelIn", group: "Character Switch" },
6330
+ { name: "SwitchOpenMichaelMid", group: "Character Switch" },
6331
+ { name: "SwitchOpenMichaelOut", group: "Character Switch" },
6332
+ { name: "SwitchOpenTrevorIn", group: "Character Switch" },
6333
+ { name: "SwitchOpenTrevorOut", group: "Character Switch" },
6334
+ { name: "SwitchOpenNeutralFIB5", group: "Character Switch" },
6335
+ { name: "SwitchOpenNeutralOutHeist", group: "Character Switch" },
6336
+ { name: "SwitchSceneFranklin", group: "Character Switch" },
6337
+ { name: "SwitchSceneMichael", group: "Character Switch" },
6338
+ { name: "SwitchSceneNeutral", group: "Character Switch" },
6339
+ { name: "SwitchSceneTrevor", group: "Character Switch" },
6340
+ { name: "SwitchShortFranklinIn", group: "Character Switch" },
6341
+ { name: "SwitchShortFranklinMid", group: "Character Switch" },
6342
+ { name: "SwitchShortMichaelIn", group: "Character Switch" },
6343
+ { name: "SwitchShortMichaelMid", group: "Character Switch" },
6344
+ { name: "SwitchShortNeutralIn", group: "Character Switch" },
6345
+ { name: "SwitchShortNeutralMid", group: "Character Switch" },
6346
+ { name: "SwitchShortTrevorIn", group: "Character Switch" },
6347
+ { name: "SwitchShortTrevorMid", group: "Character Switch" },
6348
+ { name: "switch_cam_1", group: "Character Switch" },
6349
+ { name: "switch_cam_2", group: "Character Switch" },
6350
+ // ── Cinematic Push-In (slow zoom intro to a character) ────────────────────
6351
+ { name: "CamPushInFranklin", group: "Cinematic Push-In" },
6352
+ { name: "CamPushInMichael", group: "Cinematic Push-In" },
6353
+ { name: "CamPushInTrevor", group: "Cinematic Push-In" },
6354
+ { name: "CamPushInNeutral", group: "Cinematic Push-In" },
6355
+ { name: "BeastIntroScene", label: "Beast Intro", group: "Cinematic Push-In" },
6356
+ { name: "BeastLaunch", group: "Cinematic Push-In" },
6357
+ { name: "BeastTransition", group: "Cinematic Push-In" },
6358
+ // ── Death / Fail (red tint, slow-mo blur) ─────────────────────────────────
6359
+ { name: "DeathFailNeutralIn", group: "Death / Fail" },
6360
+ { name: "DeathFailFranklinIn", group: "Death / Fail" },
6361
+ { name: "DeathFailMichaelIn", group: "Death / Fail" },
6362
+ { name: "DeathFailTrevorIn", group: "Death / Fail" },
6363
+ { name: "DeathFailMPIn", label: "Death Fail \u2014 MP", group: "Death / Fail" },
6364
+ { name: "DeathFailMPDark", label: "Death Fail \u2014 MP Dark", group: "Death / Fail" },
6365
+ { name: "DeathFailOut", group: "Death / Fail" },
6366
+ { name: "Rampage", group: "Death / Fail" },
6367
+ { name: "RampageOut", group: "Death / Fail" },
6368
+ // ── Heist (celebration / locate / pass) ───────────────────────────────────
6369
+ { name: "HeistCelebEnd", group: "Heist" },
6370
+ { name: "HeistCelebPass", group: "Heist" },
6371
+ { name: "HeistCelebPassBW", label: "Heist Celeb Pass (B/W)", group: "Heist" },
6372
+ { name: "HeistCelebToast", group: "Heist" },
6373
+ { name: "HeistLocate", group: "Heist" },
6374
+ { name: "HeistTripSkipFade", group: "Heist" },
6375
+ // ── Minigame / Menu ───────────────────────────────────────────────────────
6376
+ { name: "MenuMGIn", group: "Minigame" },
6377
+ { name: "MenuMGHeistIn", group: "Minigame" },
6378
+ { name: "MenuMGHeistIntro", group: "Minigame" },
6379
+ { name: "MenuMGHeistOut", group: "Minigame" },
6380
+ { name: "MenuMGHeistTint", group: "Minigame" },
6381
+ { name: "MenuMGSelectionIn", group: "Minigame" },
6382
+ { name: "MenuMGSelectionTint", group: "Minigame" },
6383
+ { name: "MenuMGTournamentIn", group: "Minigame" },
6384
+ { name: "MenuMGTournamentTint", group: "Minigame" },
6385
+ { name: "MinigameTransitionIn", group: "Minigame" },
6386
+ { name: "MinigameTransitionOut", group: "Minigame" },
6387
+ // ── Drug / Trip (psychedelic, blur, distortion) ───────────────────────────
6388
+ { name: "DMT_flight", group: "Drug / Trip" },
6389
+ { name: "DMT_flight_intro", group: "Drug / Trip" },
6390
+ { name: "PeyoteIn", group: "Drug / Trip" },
6391
+ { name: "PeyoteOut", group: "Drug / Trip" },
6392
+ { name: "PeyoteEndIn", group: "Drug / Trip" },
6393
+ { name: "PeyoteEndOut", group: "Drug / Trip" },
6394
+ { name: "DrugsDrivingIn", group: "Drug / Trip" },
6395
+ { name: "DrugsDrivingOut", group: "Drug / Trip" },
6396
+ { name: "DrugsMichaelAliensFight", group: "Drug / Trip" },
6397
+ { name: "DrugsMichaelAliensFightIn", group: "Drug / Trip" },
6398
+ { name: "DrugsMichaelAliensFightOut", group: "Drug / Trip" },
6399
+ { name: "DrugsTrevorClownsFight", group: "Drug / Trip" },
6400
+ { name: "DrugsTrevorClownsFightIn", group: "Drug / Trip" },
6401
+ { name: "DrugsTrevorClownsFightOut", group: "Drug / Trip" },
6402
+ { name: "ChopVision", label: "Chop Vision (dog)", group: "Drug / Trip" },
6403
+ // ── Color Filter / Tint (one-off and biker formation filters) ─────────────
6404
+ { name: "PPFilter", group: "Color Filter / Tint" },
6405
+ { name: "PPFilterOut", group: "Color Filter / Tint" },
6406
+ { name: "PPGreen", group: "Color Filter / Tint" },
6407
+ { name: "PPGreenOut", group: "Color Filter / Tint" },
6408
+ { name: "PPOrange", group: "Color Filter / Tint" },
6409
+ { name: "PPOrangeOut", group: "Color Filter / Tint" },
6410
+ { name: "PPPink", group: "Color Filter / Tint" },
6411
+ { name: "PPPinkOut", group: "Color Filter / Tint" },
6412
+ { name: "PPPurple", group: "Color Filter / Tint" },
6413
+ { name: "PPPurpleOut", group: "Color Filter / Tint" },
6414
+ { name: "BikerFilter", group: "Color Filter / Tint" },
6415
+ { name: "BikerFilterOut", group: "Color Filter / Tint" },
6416
+ { name: "BikerFormation", group: "Color Filter / Tint" },
6417
+ { name: "BikerFormationOut", group: "Color Filter / Tint" },
6418
+ { name: "InchOrange", group: "Color Filter / Tint" },
6419
+ { name: "InchOrangeOut", group: "Color Filter / Tint" },
6420
+ { name: "InchPurple", group: "Color Filter / Tint" },
6421
+ { name: "InchPurpleOut", group: "Color Filter / Tint" },
6422
+ { name: "InchPickup", group: "Color Filter / Tint" },
6423
+ { name: "InchPickupOut", group: "Color Filter / Tint" },
6424
+ { name: "TinyRacerGreen", group: "Color Filter / Tint" },
6425
+ { name: "TinyRacerGreenOut", group: "Color Filter / Tint" },
6426
+ { name: "TinyRacerPink", group: "Color Filter / Tint" },
6427
+ { name: "TinyRacerPinkOut", group: "Color Filter / Tint" },
6428
+ { name: "TinyRacerIntroCam", group: "Color Filter / Tint" },
6429
+ { name: "DeadlineNeon", group: "Color Filter / Tint" },
6430
+ // ── Multiplayer (celeb, killstreak, race, etc.) ───────────────────────────
6431
+ { name: "MP_Celeb_Win", group: "Multiplayer" },
6432
+ { name: "MP_Celeb_Win_Out", group: "Multiplayer" },
6433
+ { name: "MP_Celeb_Lose", group: "Multiplayer" },
6434
+ { name: "MP_Celeb_Lose_Out", group: "Multiplayer" },
6435
+ { name: "MP_Celeb_Preload", group: "Multiplayer" },
6436
+ { name: "MP_Celeb_Preload_Fade", group: "Multiplayer" },
6437
+ { name: "MP_Bull_tost", group: "Multiplayer" },
6438
+ { name: "MP_Bull_tost_Out", group: "Multiplayer" },
6439
+ { name: "MP_Killstreak", group: "Multiplayer" },
6440
+ { name: "MP_Killstreak_Out", group: "Multiplayer" },
6441
+ { name: "MP_Loser_Streak_Out", group: "Multiplayer" },
6442
+ { name: "MP_OrbitalCannon", group: "Multiplayer" },
6443
+ { name: "MP_Powerplay", group: "Multiplayer" },
6444
+ { name: "MP_Powerplay_Out", group: "Multiplayer" },
6445
+ { name: "MP_SmugglerCheckpoint", group: "Multiplayer" },
6446
+ { name: "MP_TransformRaceFlash", group: "Multiplayer" },
6447
+ { name: "MP_WarpCheckpoint", group: "Multiplayer" },
6448
+ { name: "MP_corona_switch", group: "Multiplayer" },
6449
+ { name: "MP_intro_logo", group: "Multiplayer" },
6450
+ { name: "MP_job_load", group: "Multiplayer" },
6451
+ { name: "MP_race_crash", group: "Multiplayer" },
6452
+ // ── Misc (success notifs, special weapons, sniper / pause / explosions) ───
6453
+ { name: "SuccessFranklin", group: "Misc" },
6454
+ { name: "SuccessMichael", group: "Misc" },
6455
+ { name: "SuccessNeutral", group: "Misc" },
6456
+ { name: "SuccessTrevor", group: "Misc" },
6457
+ { name: "FocusIn", group: "Misc" },
6458
+ { name: "FocusOut", group: "Misc" },
6459
+ { name: "CrossLine", group: "Misc" },
6460
+ { name: "CrossLineOut", group: "Misc" },
6461
+ { name: "SniperOverlay", group: "Misc" },
6462
+ { name: "ExplosionJosh3", group: "Misc" },
6463
+ { name: "WeaponUpgrade", group: "Misc" },
6464
+ { name: "Dont_tazeme_bro", label: "Don't Taze Me Bro", group: "Misc" },
6465
+ { name: "LostTimeDay", group: "Misc" },
6466
+ { name: "LostTimeNight", group: "Misc" },
6467
+ { name: "PauseMenuOut", group: "Misc" },
6468
+ { name: "pennedIn", group: "Misc" },
6469
+ { name: "PennedInOut", group: "Misc" },
6470
+ { name: "RaceTurbo", group: "Misc" },
6471
+ { name: "DefaultFlash", group: "Misc" }
6472
+ ];
6473
+ function formatGtaAnimPostFx(name) {
6474
+ const entry = GTA_ANIM_POST_FX.find((fx) => fx.name === name);
6475
+ return entry?.label ?? name;
6476
+ }
6477
+ function buildGroupedData2(extraNames = []) {
6478
+ const groups = /* @__PURE__ */ new Map();
6479
+ const seen = /* @__PURE__ */ new Set();
6480
+ for (const fx of GTA_ANIM_POST_FX) {
6481
+ if (seen.has(fx.name)) continue;
6482
+ seen.add(fx.name);
6483
+ if (!groups.has(fx.group)) groups.set(fx.group, []);
6484
+ groups.get(fx.group).push(fx);
6485
+ }
6486
+ const data = GTA_ANIM_POST_FX_GROUP_ORDER.flatMap((g) => {
6487
+ const items = groups.get(g);
6488
+ if (!items || items.length === 0) return [];
6489
+ return [
6490
+ {
6491
+ group: g,
6492
+ items: items.map((fx) => ({
6493
+ value: fx.name,
6494
+ label: formatGtaAnimPostFx(fx.name)
6495
+ }))
6496
+ }
6497
+ ];
6498
+ });
6499
+ const knownNames = new Set(GTA_ANIM_POST_FX.map((fx) => fx.name));
6500
+ const customs = extraNames.filter((n) => n && !knownNames.has(n));
6501
+ if (customs.length > 0) {
6502
+ data.push({
6503
+ group: "Custom",
6504
+ items: customs.map((n) => ({ value: n, label: n }))
6505
+ });
6506
+ }
6507
+ return data;
6508
+ }
6509
+ function AnimPostFxSelect({
6510
+ value,
6511
+ onChange,
6512
+ label: label2 = "Screen FX",
6513
+ size = "xs",
6514
+ searchable = true,
6515
+ clearable = true,
6516
+ ...rest
6517
+ }) {
6518
+ const data = buildGroupedData2([value]);
6519
+ return /* @__PURE__ */ jsx(
6520
+ Select,
6521
+ {
6522
+ label: label2,
6523
+ size,
6524
+ searchable,
6525
+ clearable,
6526
+ maxDropdownHeight: 320,
6527
+ nothingFoundMessage: "No matching effects",
6528
+ placeholder: "Pick an effect...",
6529
+ ...rest,
6530
+ data,
6531
+ value: value || null,
6532
+ onChange: (v) => onChange(v ?? "")
6533
+ }
6534
+ );
6535
+ }
6296
6536
  function useTornEdges() {
6297
6537
  const game = useSettings((state) => state.game);
6298
6538
  return game === "rdr3" ? "torn-edge-wrapper" : "";
@@ -6552,6 +6792,7 @@ function DirkProvider({ children, overideResourceName, themeOverride }) {
6552
6792
  game
6553
6793
  } = useSettings();
6554
6794
  localeStore((s) => s.locales);
6795
+ const [scTheme, setScTheme] = useState(null);
6555
6796
  useLayoutEffect(() => {
6556
6797
  useSettings.setState({
6557
6798
  overideResourceName
@@ -6574,26 +6815,53 @@ function DirkProvider({ children, overideResourceName, themeOverride }) {
6574
6815
  }, []);
6575
6816
  useNuiEvent("UPDATE_DIRK_LIB_SETTINGS", (data) => {
6576
6817
  if (!data || typeof data !== "object") return;
6577
- const carriesOverrideFlag = Object.prototype.hasOwnProperty.call(data, "themeOverride");
6578
- if (carriesOverrideFlag) {
6579
- useSettings.setState(data);
6580
- return;
6581
- }
6582
- const current = useSettings.getState();
6583
- if (current.themeOverride) {
6584
- const { primaryColor: _pc, primaryShade: _ps, customTheme: _ct, ...rest } = data;
6585
- useSettings.setState(rest);
6586
- return;
6587
- }
6588
6818
  useSettings.setState(data);
6589
6819
  });
6820
+ useNuiEvent(
6821
+ "UPDATE_SCRIPT_CONFIG",
6822
+ (data) => {
6823
+ if (!data || !data.config || typeof data.config !== "object") return;
6824
+ try {
6825
+ const inst = getScriptConfigInstance();
6826
+ inst.store.setState((prev) => ({ ...prev, ...data.config }));
6827
+ } catch {
6828
+ }
6829
+ }
6830
+ );
6831
+ useEffect(() => {
6832
+ let unsubscribe;
6833
+ try {
6834
+ const inst = getScriptConfigInstance();
6835
+ setScTheme(inst.store.getState()?.theme ?? null);
6836
+ const subscribable = inst.store;
6837
+ if (typeof subscribable.subscribe === "function") {
6838
+ unsubscribe = subscribable.subscribe((s) => {
6839
+ setScTheme(s?.theme ?? null);
6840
+ });
6841
+ }
6842
+ inst.fetchConfig?.().then((full) => {
6843
+ if (full && typeof full === "object") {
6844
+ setScTheme(full.theme ?? null);
6845
+ }
6846
+ }).catch(() => {
6847
+ });
6848
+ } catch {
6849
+ }
6850
+ return () => {
6851
+ unsubscribe?.();
6852
+ };
6853
+ }, []);
6854
+ const overrideActive = scTheme?.useOverride === true;
6855
+ const effectivePrimaryColor = overrideActive ? scTheme.primaryColor ?? primaryColor : primaryColor;
6856
+ const effectivePrimaryShade = overrideActive ? scTheme.primaryShade ?? primaryShade : primaryShade;
6857
+ const effectiveCustomTheme = overrideActive ? scTheme.customTheme ?? customTheme : customTheme;
6590
6858
  const mergedTheme = useMemo(
6591
6859
  () => mergeMantineThemeSafe(
6592
- { ...theme_default, primaryColor, primaryShade },
6593
- customTheme,
6860
+ { ...theme_default, primaryColor: effectivePrimaryColor, primaryShade: effectivePrimaryShade },
6861
+ effectiveCustomTheme,
6594
6862
  themeOverride
6595
6863
  ),
6596
- [primaryColor, primaryShade, customTheme, themeOverride]
6864
+ [effectivePrimaryColor, effectivePrimaryShade, effectiveCustomTheme, themeOverride]
6597
6865
  );
6598
6866
  useEffect(() => {
6599
6867
  document.body.style.fontFamily = game === "rdr3" ? '"Red Dead", sans-serif' : '"Akrobat Regular", sans-serif';
@@ -6625,6 +6893,6 @@ var Vector4Schema = z.object({
6625
6893
  w: z.number()
6626
6894
  });
6627
6895
 
6628
- 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 };
6896
+ 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, 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 };
6629
6897
  //# sourceMappingURL=index.js.map
6630
6898
  //# sourceMappingURL=index.js.map