dirk-cfx-react 1.1.87 → 1.1.89

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.
@@ -7,8 +7,24 @@ import { Variants } from 'framer-motion';
7
7
  import * as _fortawesome_fontawesome_svg_core from '@fortawesome/fontawesome-svg-core';
8
8
  import * as zustand from 'zustand';
9
9
  import { StoreApi } from 'zustand';
10
- import { LucideProps } from 'lucide-react';
10
+ import { LucideProps, LucideIcon } from 'lucide-react';
11
+ import { P as Player } from '../usePlayers-BlGBBevs.cjs';
11
12
 
13
+ declare function blipUrl(name: string, ext: string): string;
14
+ /** Look up a blip entry by sprite id. Returns `{ id, name, ext }` or undefined. */
15
+ declare function getBlipEntry(spriteId: number | string | null | undefined): {
16
+ id: number;
17
+ name: string;
18
+ ext: string;
19
+ } | undefined;
20
+ /** Look up a blip color by color id. Returns `{ id, label, hex }` or undefined. */
21
+ declare function getBlipColor(colorId: number | string | null | undefined): {
22
+ id: number;
23
+ label: string;
24
+ hex: string;
25
+ } | undefined;
26
+ /** Convenience: build the sprite URL straight from a sprite id. */
27
+ declare function blipUrlForSprite(spriteId: number | string | null | undefined): string | null;
12
28
  type BlipIconSelectProps = Omit<SelectProps, "data" | "value" | "onChange" | "searchable" | "renderOption"> & {
13
29
  value: number | null;
14
30
  onChange: (id: number) => void;
@@ -1122,4 +1138,178 @@ type MultiProps = SharedProps & {
1122
1138
  type AccountSelectProps = SingleProps | MultiProps;
1123
1139
  declare function AccountSelect(props: AccountSelectProps): react_jsx_runtime.JSX.Element;
1124
1140
 
1125
- export { AccountSelect, type AccountSelectProps, AdminPageTitle, type AdminPageTitleProps, AnimPostFxSelect, type AnimPostFxSelectProps, AsyncSaveButton, BlipColorSelect, type BlipColorSelectProps, BlipDisplaySelect, type BlipDisplaySelectProps, BlipIconSelect, type BlipIconSelectProps, BorderedIcon, type BorderedIconProps, type ButtonProps, ConfigPanel, type ConfigPanelProps, ConfirmModal, type ConfirmModalProps, ControlMultiSelect, type ControlMultiSelectProps, ControlSelect, type ControlSelectProps, Counter, type DiscordRole, DiscordRoleSelect, type DiscordRoleSelectProps, type FiveMControls, FiveMKeyBindInput, FloatingParticles, type FloatingParticlesProps, type FrameworkAccount, GroupName, type GroupNameProps, GroupRank, type GroupRankProps, GroupSelect, type GroupSelectProps, type GroupType, type GroupValue, InfoBox, type InfoBoxProps, InputContainer, type InputContainerProps, LevelBanner, LevelPanel, MissingItemsBanner, Modal, ModalContext, type ModalProps, ModalProvider, MotionFlex, MotionIcon, MotionImage, MotionText, NavBar, type NavItem, NavigationContext, NavigationProvider, type NavigationStore, type ParticleState, PositionPicker, type PositionPickerProps, type ProgressProps, type Prompt, type PromptButton, PromptModal, ScenarioSelect, type ScenarioSelectProps, type SegmentProps, SegmentedControl, type SegmentedControlProps, SegmentedProgress, SelectItem, type SelectItemProps, type StoreModalProps, SwitchPanel, type SwitchPanelProps, TestBed, type TestBedItem, type TestBedPlacement, type TestBedProps, ThemeOverrideSection, type ThemeOverrideSectionProps, type ThemeOverrideValue, Title, type TitleProps, type TitleSize, Vector4DeleteButton, Vector4Display, type Vector4Value, WorldPositionGotoButton, WorldPositionSetButton, useMissingItemsAudit, useModal, useModalActions, useNavigation, useNavigationStore };
1141
+ type InstructionKey = {
1142
+ /** Short label drawn inside the key cap (e.g. "E", "⌫", "F"). */
1143
+ key: string;
1144
+ /** What the key does (e.g. "Set", "Cancel"). */
1145
+ action: string;
1146
+ };
1147
+ type InstructionPanelProps = {
1148
+ visible: boolean;
1149
+ title: string;
1150
+ /** One- or two-line subtext explaining what to do. */
1151
+ hint?: string;
1152
+ /** List of key bindings shown as labelled key caps. */
1153
+ keys?: InstructionKey[];
1154
+ /** Override the default MapPin icon next to the title. */
1155
+ icon?: LucideIcon;
1156
+ /**
1157
+ * When true (default) every direct child of <body> except this overlay is
1158
+ * hidden via a CSS rule. Lets the admin panel stay mounted (React state
1159
+ * preserved) while the player sees only the game world + this card.
1160
+ * Set false if you want the card to sit alongside other UI.
1161
+ */
1162
+ hideRestOfAdmin?: boolean;
1163
+ };
1164
+ declare function InstructionPanel({ visible, title, hint, keys, icon: Icon, hideRestOfAdmin, }: InstructionPanelProps): React$1.ReactPortal | null;
1165
+
1166
+ type WorldPositionPickerSlot = {
1167
+ value: Vector4Value;
1168
+ onChange: (v: Vector4Value) => void;
1169
+ compact?: boolean;
1170
+ /** Show only the Set button (no Goto). Defaults to false. */
1171
+ setOnly?: boolean;
1172
+ /** Show only the Goto button (no Set). Defaults to false. */
1173
+ gotoOnly?: boolean;
1174
+ };
1175
+ declare function WorldPositionPicker({ value, onChange, compact, setOnly, gotoOnly }: WorldPositionPickerSlot): react_jsx_runtime.JSX.Element;
1176
+
1177
+ type PlayerSelectProps = Omit<SelectProps, "data" | "value" | "onChange" | "rightSection" | "renderOption"> & {
1178
+ value: string | null;
1179
+ onChange: (player: Player | null) => void;
1180
+ /** When true, runs a DB-backed search across offline + online. Enables
1181
+ * the search box behaviour. Default false (online only). */
1182
+ includeOffline?: boolean;
1183
+ /** Cap on results returned (max 50, server-enforced). */
1184
+ limit?: number;
1185
+ /** Localisable label overrides. Defaults are English. Pass locale()'d
1186
+ * strings from the consumer to translate the dropdown chrome. */
1187
+ loadingLabel?: string;
1188
+ onlineLabel?: string;
1189
+ offlineLabel?: string;
1190
+ refreshLabel?: string;
1191
+ };
1192
+ declare function PlayerSelect({ value, onChange, includeOffline, limit, searchable: searchableProp, placeholder, nothingFoundMessage: nothingFoundMessageProp, loadingLabel, onlineLabel, offlineLabel, refreshLabel, ...rest }: PlayerSelectProps): react_jsx_runtime.JSX.Element;
1193
+
1194
+ /** A single picked door panel — one entity the admin LMB'd in-world. */
1195
+ type PickedDoor = {
1196
+ /** Door entity model hash. */
1197
+ model: number;
1198
+ /** Resolved model name (e.g. 'v_ilev_meth_loaddoor'). nil when the
1199
+ * hash isn't in dirk_lib's lookup table (custom prop, MLO asset). */
1200
+ modelName?: string | null;
1201
+ /** World coords of the door entity, snapshotted at pick time. */
1202
+ coords: {
1203
+ x: number;
1204
+ y: number;
1205
+ z: number;
1206
+ };
1207
+ /** Door entity heading in degrees. */
1208
+ heading: number;
1209
+ /** True when IsEntityADoor() flagged the entity as a real door (vs a
1210
+ * prop the admin happened to aim at). Informational — pickers accept
1211
+ * any entity. */
1212
+ isDoor?: boolean;
1213
+ };
1214
+ /**
1215
+ * A confirmed pick from the multi-pick door tool. `doors` is 1-2 entries:
1216
+ * length 1 = single door, length 2 = double-door pair. Maps cleanly onto
1217
+ * ox_doorlock's single-door vs double-door spec.
1218
+ */
1219
+ type PickedDoorGroup = {
1220
+ doors: PickedDoor[];
1221
+ };
1222
+ /**
1223
+ * Returns a function that triggers the in-world door picker. Renders the
1224
+ * standard InstructionPanel while the player is aiming. Resolves with
1225
+ * `null` on cancel or backend failure.
1226
+ */
1227
+ declare function usePickDoor(): () => Promise<PickedDoorGroup | null>;
1228
+ /**
1229
+ * Drop-in button — same styling as WorldPositionSetButton. Triggers the
1230
+ * picker on click and calls `onPick` with the result (or never fires on
1231
+ * cancel).
1232
+ */
1233
+ declare function DoorPickerButton({ onPick, compact, label, tooltip, }: {
1234
+ onPick: (picked: PickedDoorGroup) => void;
1235
+ compact?: boolean;
1236
+ /** Override the button label. Defaults to locale("PickDoor"). */
1237
+ label?: string;
1238
+ /** Override the tooltip. Defaults to locale("PickDoorTooltip"). */
1239
+ tooltip?: string;
1240
+ }): react_jsx_runtime.JSX.Element;
1241
+
1242
+ type MapStyle = "game" | "render" | "print";
1243
+ type MapProps = {
1244
+ children?: ReactNode;
1245
+ initialZoom?: number;
1246
+ initialCenter?: [number, number];
1247
+ mapStyle?: MapStyle;
1248
+ className?: string;
1249
+ };
1250
+ declare const Map: React$1.MemoExoticComponent<({ children, initialZoom, initialCenter, mapStyle, }: MapProps) => react_jsx_runtime.JSX.Element>;
1251
+ type MapLayerProps = {
1252
+ mapLayer: MapStyle;
1253
+ };
1254
+ declare const MapLayer: ({ mapLayer }: MapLayerProps) => null;
1255
+ declare function ZoomControls(): react_jsx_runtime.JSX.Element;
1256
+
1257
+ type BlipMarkerProps = {
1258
+ /** Game-world coordinates. z is ignored; map is 2D. */
1259
+ position: {
1260
+ x: number;
1261
+ y: number;
1262
+ };
1263
+ /** Blip sprite id (0..830ish) — see BLIP_ENTRIES. */
1264
+ sprite?: number | null;
1265
+ /** Blip color id (0..85) — see BLIP_COLORS. */
1266
+ color?: number | null;
1267
+ /** Display scale multiplier. Default 1.0 → ~3vh visual size. */
1268
+ scale?: number;
1269
+ /** Click handler. Fires `e.originalEvent.stopPropagation()` before yours. */
1270
+ onClick?: () => void;
1271
+ /** When true, marker gets a brighter glow + bigger size to indicate
1272
+ * this is the currently-selected entry. */
1273
+ selected?: boolean;
1274
+ /** When true, marker is rendered at low opacity and clicks no-op —
1275
+ * for "this entry is broken / unavailable" states. */
1276
+ disabled?: boolean;
1277
+ /** Sprite id used when `sprite` is null/missing. Defaults to 162
1278
+ * (radar_poi — neutral grey dot). */
1279
+ fallbackSprite?: number;
1280
+ /** Color id used when `color` is null/missing. Defaults to 0 (white). */
1281
+ fallbackColor?: number;
1282
+ };
1283
+ declare function BlipMarker({ position, sprite, color, scale, onClick, selected, disabled, fallbackSprite, fallbackColor, }: BlipMarkerProps): react_jsx_runtime.JSX.Element;
1284
+
1285
+ type ActiveTool<Result = unknown> = {
1286
+ /** Tool id matching the SendNUIMessage event names from Lua. */
1287
+ id: string;
1288
+ /** Title shown in the InstructionPanel header. */
1289
+ title: string;
1290
+ /** Optional sub-text under the title. */
1291
+ hint?: string;
1292
+ /** Key bindings shown as labelled key caps. */
1293
+ keys?: {
1294
+ key: string;
1295
+ action: string;
1296
+ }[];
1297
+ /** Resolve handler for the in-flight Promise. */
1298
+ resolve: (v: Result | null) => void;
1299
+ };
1300
+ type AdminToolStore = {
1301
+ active: ActiveTool | null;
1302
+ /**
1303
+ * Begin a tool flow. Returns a Promise resolving to the tool's typed
1304
+ * result (or null on cancel / replacement). Replaces any currently-active
1305
+ * tool by cancelling it first — only one in-world prompt at a time.
1306
+ */
1307
+ begin: <Result>(spec: Omit<ActiveTool<Result>, "resolve">) => Promise<Result | null>;
1308
+ /** Settle the currently-active tool with a value (called by SendNUIMessage handler). */
1309
+ resolveActive: (value: unknown) => void;
1310
+ /** Cancel the currently-active tool (called by SendNUIMessage handler or programmatic cancel). */
1311
+ cancelActive: () => void;
1312
+ };
1313
+ declare const useAdminToolStore: zustand.UseBoundStore<zustand.StoreApi<AdminToolStore>>;
1314
+
1315
+ export { AccountSelect, type AccountSelectProps, type ActiveTool, AdminPageTitle, type AdminPageTitleProps, AnimPostFxSelect, type AnimPostFxSelectProps, AsyncSaveButton, BlipColorSelect, type BlipColorSelectProps, BlipDisplaySelect, type BlipDisplaySelectProps, BlipIconSelect, type BlipIconSelectProps, BlipMarker, type BlipMarkerProps, BorderedIcon, type BorderedIconProps, type ButtonProps, ConfigPanel, type ConfigPanelProps, ConfirmModal, type ConfirmModalProps, ControlMultiSelect, type ControlMultiSelectProps, ControlSelect, type ControlSelectProps, Counter, type DiscordRole, DiscordRoleSelect, type DiscordRoleSelectProps, DoorPickerButton, type FiveMControls, FiveMKeyBindInput, FloatingParticles, type FloatingParticlesProps, type FrameworkAccount, GroupName, type GroupNameProps, GroupRank, type GroupRankProps, GroupSelect, type GroupSelectProps, type GroupType, type GroupValue, InfoBox, type InfoBoxProps, InputContainer, type InputContainerProps, type InstructionKey, InstructionPanel, type InstructionPanelProps, LevelBanner, LevelPanel, Map, MapLayer, type MapProps, type MapStyle, MissingItemsBanner, Modal, ModalContext, type ModalProps, ModalProvider, MotionFlex, MotionIcon, MotionImage, MotionText, NavBar, type NavItem, NavigationContext, NavigationProvider, type NavigationStore, type ParticleState, type PickedDoor, type PickedDoorGroup, PlayerSelect, type PlayerSelectProps, PositionPicker, type PositionPickerProps, type ProgressProps, type Prompt, type PromptButton, PromptModal, ScenarioSelect, type ScenarioSelectProps, type SegmentProps, SegmentedControl, type SegmentedControlProps, SegmentedProgress, SelectItem, type SelectItemProps, type StoreModalProps, SwitchPanel, type SwitchPanelProps, TestBed, type TestBedItem, type TestBedPlacement, type TestBedProps, ThemeOverrideSection, type ThemeOverrideSectionProps, type ThemeOverrideValue, Title, type TitleProps, type TitleSize, Vector4DeleteButton, Vector4Display, type Vector4Value, WorldPositionGotoButton, WorldPositionPicker, type WorldPositionPickerSlot, WorldPositionSetButton, ZoomControls, blipUrl, blipUrlForSprite, getBlipColor, getBlipEntry, useAdminToolStore, useMissingItemsAudit, useModal, useModalActions, useNavigation, useNavigationStore, usePickDoor };
@@ -7,8 +7,24 @@ import { Variants } from 'framer-motion';
7
7
  import * as _fortawesome_fontawesome_svg_core from '@fortawesome/fontawesome-svg-core';
8
8
  import * as zustand from 'zustand';
9
9
  import { StoreApi } from 'zustand';
10
- import { LucideProps } from 'lucide-react';
10
+ import { LucideProps, LucideIcon } from 'lucide-react';
11
+ import { P as Player } from '../usePlayers-BlGBBevs.js';
11
12
 
13
+ declare function blipUrl(name: string, ext: string): string;
14
+ /** Look up a blip entry by sprite id. Returns `{ id, name, ext }` or undefined. */
15
+ declare function getBlipEntry(spriteId: number | string | null | undefined): {
16
+ id: number;
17
+ name: string;
18
+ ext: string;
19
+ } | undefined;
20
+ /** Look up a blip color by color id. Returns `{ id, label, hex }` or undefined. */
21
+ declare function getBlipColor(colorId: number | string | null | undefined): {
22
+ id: number;
23
+ label: string;
24
+ hex: string;
25
+ } | undefined;
26
+ /** Convenience: build the sprite URL straight from a sprite id. */
27
+ declare function blipUrlForSprite(spriteId: number | string | null | undefined): string | null;
12
28
  type BlipIconSelectProps = Omit<SelectProps, "data" | "value" | "onChange" | "searchable" | "renderOption"> & {
13
29
  value: number | null;
14
30
  onChange: (id: number) => void;
@@ -1122,4 +1138,178 @@ type MultiProps = SharedProps & {
1122
1138
  type AccountSelectProps = SingleProps | MultiProps;
1123
1139
  declare function AccountSelect(props: AccountSelectProps): react_jsx_runtime.JSX.Element;
1124
1140
 
1125
- export { AccountSelect, type AccountSelectProps, AdminPageTitle, type AdminPageTitleProps, AnimPostFxSelect, type AnimPostFxSelectProps, AsyncSaveButton, BlipColorSelect, type BlipColorSelectProps, BlipDisplaySelect, type BlipDisplaySelectProps, BlipIconSelect, type BlipIconSelectProps, BorderedIcon, type BorderedIconProps, type ButtonProps, ConfigPanel, type ConfigPanelProps, ConfirmModal, type ConfirmModalProps, ControlMultiSelect, type ControlMultiSelectProps, ControlSelect, type ControlSelectProps, Counter, type DiscordRole, DiscordRoleSelect, type DiscordRoleSelectProps, type FiveMControls, FiveMKeyBindInput, FloatingParticles, type FloatingParticlesProps, type FrameworkAccount, GroupName, type GroupNameProps, GroupRank, type GroupRankProps, GroupSelect, type GroupSelectProps, type GroupType, type GroupValue, InfoBox, type InfoBoxProps, InputContainer, type InputContainerProps, LevelBanner, LevelPanel, MissingItemsBanner, Modal, ModalContext, type ModalProps, ModalProvider, MotionFlex, MotionIcon, MotionImage, MotionText, NavBar, type NavItem, NavigationContext, NavigationProvider, type NavigationStore, type ParticleState, PositionPicker, type PositionPickerProps, type ProgressProps, type Prompt, type PromptButton, PromptModal, ScenarioSelect, type ScenarioSelectProps, type SegmentProps, SegmentedControl, type SegmentedControlProps, SegmentedProgress, SelectItem, type SelectItemProps, type StoreModalProps, SwitchPanel, type SwitchPanelProps, TestBed, type TestBedItem, type TestBedPlacement, type TestBedProps, ThemeOverrideSection, type ThemeOverrideSectionProps, type ThemeOverrideValue, Title, type TitleProps, type TitleSize, Vector4DeleteButton, Vector4Display, type Vector4Value, WorldPositionGotoButton, WorldPositionSetButton, useMissingItemsAudit, useModal, useModalActions, useNavigation, useNavigationStore };
1141
+ type InstructionKey = {
1142
+ /** Short label drawn inside the key cap (e.g. "E", "⌫", "F"). */
1143
+ key: string;
1144
+ /** What the key does (e.g. "Set", "Cancel"). */
1145
+ action: string;
1146
+ };
1147
+ type InstructionPanelProps = {
1148
+ visible: boolean;
1149
+ title: string;
1150
+ /** One- or two-line subtext explaining what to do. */
1151
+ hint?: string;
1152
+ /** List of key bindings shown as labelled key caps. */
1153
+ keys?: InstructionKey[];
1154
+ /** Override the default MapPin icon next to the title. */
1155
+ icon?: LucideIcon;
1156
+ /**
1157
+ * When true (default) every direct child of <body> except this overlay is
1158
+ * hidden via a CSS rule. Lets the admin panel stay mounted (React state
1159
+ * preserved) while the player sees only the game world + this card.
1160
+ * Set false if you want the card to sit alongside other UI.
1161
+ */
1162
+ hideRestOfAdmin?: boolean;
1163
+ };
1164
+ declare function InstructionPanel({ visible, title, hint, keys, icon: Icon, hideRestOfAdmin, }: InstructionPanelProps): React$1.ReactPortal | null;
1165
+
1166
+ type WorldPositionPickerSlot = {
1167
+ value: Vector4Value;
1168
+ onChange: (v: Vector4Value) => void;
1169
+ compact?: boolean;
1170
+ /** Show only the Set button (no Goto). Defaults to false. */
1171
+ setOnly?: boolean;
1172
+ /** Show only the Goto button (no Set). Defaults to false. */
1173
+ gotoOnly?: boolean;
1174
+ };
1175
+ declare function WorldPositionPicker({ value, onChange, compact, setOnly, gotoOnly }: WorldPositionPickerSlot): react_jsx_runtime.JSX.Element;
1176
+
1177
+ type PlayerSelectProps = Omit<SelectProps, "data" | "value" | "onChange" | "rightSection" | "renderOption"> & {
1178
+ value: string | null;
1179
+ onChange: (player: Player | null) => void;
1180
+ /** When true, runs a DB-backed search across offline + online. Enables
1181
+ * the search box behaviour. Default false (online only). */
1182
+ includeOffline?: boolean;
1183
+ /** Cap on results returned (max 50, server-enforced). */
1184
+ limit?: number;
1185
+ /** Localisable label overrides. Defaults are English. Pass locale()'d
1186
+ * strings from the consumer to translate the dropdown chrome. */
1187
+ loadingLabel?: string;
1188
+ onlineLabel?: string;
1189
+ offlineLabel?: string;
1190
+ refreshLabel?: string;
1191
+ };
1192
+ declare function PlayerSelect({ value, onChange, includeOffline, limit, searchable: searchableProp, placeholder, nothingFoundMessage: nothingFoundMessageProp, loadingLabel, onlineLabel, offlineLabel, refreshLabel, ...rest }: PlayerSelectProps): react_jsx_runtime.JSX.Element;
1193
+
1194
+ /** A single picked door panel — one entity the admin LMB'd in-world. */
1195
+ type PickedDoor = {
1196
+ /** Door entity model hash. */
1197
+ model: number;
1198
+ /** Resolved model name (e.g. 'v_ilev_meth_loaddoor'). nil when the
1199
+ * hash isn't in dirk_lib's lookup table (custom prop, MLO asset). */
1200
+ modelName?: string | null;
1201
+ /** World coords of the door entity, snapshotted at pick time. */
1202
+ coords: {
1203
+ x: number;
1204
+ y: number;
1205
+ z: number;
1206
+ };
1207
+ /** Door entity heading in degrees. */
1208
+ heading: number;
1209
+ /** True when IsEntityADoor() flagged the entity as a real door (vs a
1210
+ * prop the admin happened to aim at). Informational — pickers accept
1211
+ * any entity. */
1212
+ isDoor?: boolean;
1213
+ };
1214
+ /**
1215
+ * A confirmed pick from the multi-pick door tool. `doors` is 1-2 entries:
1216
+ * length 1 = single door, length 2 = double-door pair. Maps cleanly onto
1217
+ * ox_doorlock's single-door vs double-door spec.
1218
+ */
1219
+ type PickedDoorGroup = {
1220
+ doors: PickedDoor[];
1221
+ };
1222
+ /**
1223
+ * Returns a function that triggers the in-world door picker. Renders the
1224
+ * standard InstructionPanel while the player is aiming. Resolves with
1225
+ * `null` on cancel or backend failure.
1226
+ */
1227
+ declare function usePickDoor(): () => Promise<PickedDoorGroup | null>;
1228
+ /**
1229
+ * Drop-in button — same styling as WorldPositionSetButton. Triggers the
1230
+ * picker on click and calls `onPick` with the result (or never fires on
1231
+ * cancel).
1232
+ */
1233
+ declare function DoorPickerButton({ onPick, compact, label, tooltip, }: {
1234
+ onPick: (picked: PickedDoorGroup) => void;
1235
+ compact?: boolean;
1236
+ /** Override the button label. Defaults to locale("PickDoor"). */
1237
+ label?: string;
1238
+ /** Override the tooltip. Defaults to locale("PickDoorTooltip"). */
1239
+ tooltip?: string;
1240
+ }): react_jsx_runtime.JSX.Element;
1241
+
1242
+ type MapStyle = "game" | "render" | "print";
1243
+ type MapProps = {
1244
+ children?: ReactNode;
1245
+ initialZoom?: number;
1246
+ initialCenter?: [number, number];
1247
+ mapStyle?: MapStyle;
1248
+ className?: string;
1249
+ };
1250
+ declare const Map: React$1.MemoExoticComponent<({ children, initialZoom, initialCenter, mapStyle, }: MapProps) => react_jsx_runtime.JSX.Element>;
1251
+ type MapLayerProps = {
1252
+ mapLayer: MapStyle;
1253
+ };
1254
+ declare const MapLayer: ({ mapLayer }: MapLayerProps) => null;
1255
+ declare function ZoomControls(): react_jsx_runtime.JSX.Element;
1256
+
1257
+ type BlipMarkerProps = {
1258
+ /** Game-world coordinates. z is ignored; map is 2D. */
1259
+ position: {
1260
+ x: number;
1261
+ y: number;
1262
+ };
1263
+ /** Blip sprite id (0..830ish) — see BLIP_ENTRIES. */
1264
+ sprite?: number | null;
1265
+ /** Blip color id (0..85) — see BLIP_COLORS. */
1266
+ color?: number | null;
1267
+ /** Display scale multiplier. Default 1.0 → ~3vh visual size. */
1268
+ scale?: number;
1269
+ /** Click handler. Fires `e.originalEvent.stopPropagation()` before yours. */
1270
+ onClick?: () => void;
1271
+ /** When true, marker gets a brighter glow + bigger size to indicate
1272
+ * this is the currently-selected entry. */
1273
+ selected?: boolean;
1274
+ /** When true, marker is rendered at low opacity and clicks no-op —
1275
+ * for "this entry is broken / unavailable" states. */
1276
+ disabled?: boolean;
1277
+ /** Sprite id used when `sprite` is null/missing. Defaults to 162
1278
+ * (radar_poi — neutral grey dot). */
1279
+ fallbackSprite?: number;
1280
+ /** Color id used when `color` is null/missing. Defaults to 0 (white). */
1281
+ fallbackColor?: number;
1282
+ };
1283
+ declare function BlipMarker({ position, sprite, color, scale, onClick, selected, disabled, fallbackSprite, fallbackColor, }: BlipMarkerProps): react_jsx_runtime.JSX.Element;
1284
+
1285
+ type ActiveTool<Result = unknown> = {
1286
+ /** Tool id matching the SendNUIMessage event names from Lua. */
1287
+ id: string;
1288
+ /** Title shown in the InstructionPanel header. */
1289
+ title: string;
1290
+ /** Optional sub-text under the title. */
1291
+ hint?: string;
1292
+ /** Key bindings shown as labelled key caps. */
1293
+ keys?: {
1294
+ key: string;
1295
+ action: string;
1296
+ }[];
1297
+ /** Resolve handler for the in-flight Promise. */
1298
+ resolve: (v: Result | null) => void;
1299
+ };
1300
+ type AdminToolStore = {
1301
+ active: ActiveTool | null;
1302
+ /**
1303
+ * Begin a tool flow. Returns a Promise resolving to the tool's typed
1304
+ * result (or null on cancel / replacement). Replaces any currently-active
1305
+ * tool by cancelling it first — only one in-world prompt at a time.
1306
+ */
1307
+ begin: <Result>(spec: Omit<ActiveTool<Result>, "resolve">) => Promise<Result | null>;
1308
+ /** Settle the currently-active tool with a value (called by SendNUIMessage handler). */
1309
+ resolveActive: (value: unknown) => void;
1310
+ /** Cancel the currently-active tool (called by SendNUIMessage handler or programmatic cancel). */
1311
+ cancelActive: () => void;
1312
+ };
1313
+ declare const useAdminToolStore: zustand.UseBoundStore<zustand.StoreApi<AdminToolStore>>;
1314
+
1315
+ export { AccountSelect, type AccountSelectProps, type ActiveTool, AdminPageTitle, type AdminPageTitleProps, AnimPostFxSelect, type AnimPostFxSelectProps, AsyncSaveButton, BlipColorSelect, type BlipColorSelectProps, BlipDisplaySelect, type BlipDisplaySelectProps, BlipIconSelect, type BlipIconSelectProps, BlipMarker, type BlipMarkerProps, BorderedIcon, type BorderedIconProps, type ButtonProps, ConfigPanel, type ConfigPanelProps, ConfirmModal, type ConfirmModalProps, ControlMultiSelect, type ControlMultiSelectProps, ControlSelect, type ControlSelectProps, Counter, type DiscordRole, DiscordRoleSelect, type DiscordRoleSelectProps, DoorPickerButton, type FiveMControls, FiveMKeyBindInput, FloatingParticles, type FloatingParticlesProps, type FrameworkAccount, GroupName, type GroupNameProps, GroupRank, type GroupRankProps, GroupSelect, type GroupSelectProps, type GroupType, type GroupValue, InfoBox, type InfoBoxProps, InputContainer, type InputContainerProps, type InstructionKey, InstructionPanel, type InstructionPanelProps, LevelBanner, LevelPanel, Map, MapLayer, type MapProps, type MapStyle, MissingItemsBanner, Modal, ModalContext, type ModalProps, ModalProvider, MotionFlex, MotionIcon, MotionImage, MotionText, NavBar, type NavItem, NavigationContext, NavigationProvider, type NavigationStore, type ParticleState, type PickedDoor, type PickedDoorGroup, PlayerSelect, type PlayerSelectProps, PositionPicker, type PositionPickerProps, type ProgressProps, type Prompt, type PromptButton, PromptModal, ScenarioSelect, type ScenarioSelectProps, type SegmentProps, SegmentedControl, type SegmentedControlProps, SegmentedProgress, SelectItem, type SelectItemProps, type StoreModalProps, SwitchPanel, type SwitchPanelProps, TestBed, type TestBedItem, type TestBedPlacement, type TestBedProps, ThemeOverrideSection, type ThemeOverrideSectionProps, type ThemeOverrideValue, Title, type TitleProps, type TitleSize, Vector4DeleteButton, Vector4Display, type Vector4Value, WorldPositionGotoButton, WorldPositionPicker, type WorldPositionPickerSlot, WorldPositionSetButton, ZoomControls, blipUrl, blipUrlForSprite, getBlipColor, getBlipEntry, useAdminToolStore, useMissingItemsAudit, useModal, useModalActions, useNavigation, useNavigationStore, usePickDoor };