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