dirk-cfx-react 1.1.70 → 1.1.71
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/index.cjs +163 -3
- package/dist/components/index.cjs.map +1 -1
- package/dist/components/index.d.cts +21 -1
- package/dist/components/index.d.ts +21 -1
- package/dist/components/index.js +160 -4
- package/dist/components/index.js.map +1 -1
- package/dist/index.cjs +163 -3
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +160 -4
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -10,6 +10,7 @@ var framerMotion = require('framer-motion');
|
|
|
10
10
|
var lucideReact = require('lucide-react');
|
|
11
11
|
var clickSoundUrl = require('./click_sound-PNCRRTM4.mp3');
|
|
12
12
|
var hoverSoundUrl = require('./hover_sound-NBUA222C.mp3');
|
|
13
|
+
var notifications = require('@mantine/notifications');
|
|
13
14
|
var reactQuery = require('@tanstack/react-query');
|
|
14
15
|
require('@mantine/core/styles.css');
|
|
15
16
|
require('@mantine/notifications/styles.css');
|
|
@@ -4817,12 +4818,25 @@ function ConfigPanel(props) {
|
|
|
4817
4818
|
if (result?.success) {
|
|
4818
4819
|
form.reinitialize(cloneConfig(form.values));
|
|
4819
4820
|
configPanelQueryClient.invalidateQueries({ queryKey: ["scriptConfigHistory"] });
|
|
4821
|
+
notifications.notifications.show({
|
|
4822
|
+
color: "green",
|
|
4823
|
+
title: locale("ConfigSaveSuccessTitle"),
|
|
4824
|
+
message: locale("ConfigSaveSuccessBody"),
|
|
4825
|
+
autoClose: 3e3
|
|
4826
|
+
});
|
|
4820
4827
|
return;
|
|
4821
4828
|
}
|
|
4822
4829
|
form.reinitialize(cloneConfig(store.getState()));
|
|
4823
|
-
|
|
4824
|
-
|
|
4825
|
-
|
|
4830
|
+
const err = result?._error || "Unknown";
|
|
4831
|
+
console.warn(`[ConfigPanel] config save failed: ${err}`);
|
|
4832
|
+
const titleKey = err === "NoPermission" ? "ConfigSaveNoPermissionTitle" : err === "VersionConflict" ? "ConfigSaveVersionConflictTitle" : err === "NotReady" ? "ConfigSaveNotReadyTitle" : "ConfigSaveFailedTitle";
|
|
4833
|
+
const bodyKey = err === "NoPermission" ? "ConfigSaveNoPermissionBody" : err === "VersionConflict" ? "ConfigSaveVersionConflictBody" : err === "NotReady" ? "ConfigSaveNotReadyBody" : "ConfigSaveFailedBody";
|
|
4834
|
+
notifications.notifications.show({
|
|
4835
|
+
color: "red",
|
|
4836
|
+
title: locale(titleKey),
|
|
4837
|
+
message: locale(bodyKey, err),
|
|
4838
|
+
autoClose: 6e3
|
|
4839
|
+
});
|
|
4826
4840
|
} finally {
|
|
4827
4841
|
setIsSaving(false);
|
|
4828
4842
|
}
|
|
@@ -5123,6 +5137,148 @@ function PickerButton({
|
|
|
5123
5137
|
}
|
|
5124
5138
|
) });
|
|
5125
5139
|
}
|
|
5140
|
+
function fmtV4(n) {
|
|
5141
|
+
return Number.isFinite(n) ? n.toFixed(2) : "0.00";
|
|
5142
|
+
}
|
|
5143
|
+
function Vector4Display({ value }) {
|
|
5144
|
+
const theme2 = core.useMantineTheme();
|
|
5145
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
5146
|
+
core.Flex,
|
|
5147
|
+
{
|
|
5148
|
+
align: "center",
|
|
5149
|
+
gap: "xs",
|
|
5150
|
+
p: "xs",
|
|
5151
|
+
style: {
|
|
5152
|
+
background: core.alpha(theme2.colors.dark[5], 0.35),
|
|
5153
|
+
border: "0.1vh solid rgba(255,255,255,0.05)",
|
|
5154
|
+
borderRadius: theme2.radius.xs
|
|
5155
|
+
},
|
|
5156
|
+
children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
5157
|
+
core.Text,
|
|
5158
|
+
{
|
|
5159
|
+
ff: "monospace",
|
|
5160
|
+
size: "xxs",
|
|
5161
|
+
c: "rgba(255,255,255,0.85)",
|
|
5162
|
+
style: { flex: 1, letterSpacing: "0.02em", whiteSpace: "nowrap", overflow: "hidden", textOverflow: "ellipsis" },
|
|
5163
|
+
children: [
|
|
5164
|
+
"vector4(",
|
|
5165
|
+
fmtV4(value.x),
|
|
5166
|
+
", ",
|
|
5167
|
+
fmtV4(value.y),
|
|
5168
|
+
", ",
|
|
5169
|
+
fmtV4(value.z),
|
|
5170
|
+
", ",
|
|
5171
|
+
fmtV4(value.w),
|
|
5172
|
+
")"
|
|
5173
|
+
]
|
|
5174
|
+
}
|
|
5175
|
+
)
|
|
5176
|
+
}
|
|
5177
|
+
);
|
|
5178
|
+
}
|
|
5179
|
+
function Vector4ActionButton({
|
|
5180
|
+
icon,
|
|
5181
|
+
label: label2,
|
|
5182
|
+
tooltip,
|
|
5183
|
+
onClick,
|
|
5184
|
+
color,
|
|
5185
|
+
compact
|
|
5186
|
+
}) {
|
|
5187
|
+
const theme2 = core.useMantineTheme();
|
|
5188
|
+
return /* @__PURE__ */ jsxRuntime.jsx(core.Tooltip, { label: tooltip, position: "top", withArrow: true, withinPortal: true, zIndex: 2e3, children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
5189
|
+
framerMotion.motion.button,
|
|
5190
|
+
{
|
|
5191
|
+
onClick,
|
|
5192
|
+
whileHover: { background: core.alpha(color, 0.18) },
|
|
5193
|
+
whileTap: { scale: 0.95 },
|
|
5194
|
+
style: {
|
|
5195
|
+
background: core.alpha(color, 0.1),
|
|
5196
|
+
border: `0.1vh solid ${core.alpha(color, 0.35)}`,
|
|
5197
|
+
borderRadius: theme2.radius.xs,
|
|
5198
|
+
padding: compact ? "0.25vh 0.6vh" : "0.5vh 0.8vh",
|
|
5199
|
+
cursor: "pointer",
|
|
5200
|
+
display: "flex",
|
|
5201
|
+
alignItems: "center",
|
|
5202
|
+
gap: compact ? "0.3vh" : "0.4vh"
|
|
5203
|
+
},
|
|
5204
|
+
children: [
|
|
5205
|
+
icon,
|
|
5206
|
+
/* @__PURE__ */ jsxRuntime.jsx(core.Text, { ff: "Akrobat Bold", size: "xxs", tt: "uppercase", lts: "0.06em", c: color, children: label2 })
|
|
5207
|
+
]
|
|
5208
|
+
}
|
|
5209
|
+
) });
|
|
5210
|
+
}
|
|
5211
|
+
function WorldPositionSetButton({
|
|
5212
|
+
value,
|
|
5213
|
+
onChange,
|
|
5214
|
+
compact
|
|
5215
|
+
}) {
|
|
5216
|
+
const theme2 = core.useMantineTheme();
|
|
5217
|
+
const color = theme2.colors[theme2.primaryColor][5];
|
|
5218
|
+
const grab = async () => {
|
|
5219
|
+
try {
|
|
5220
|
+
const resp = await fetchNui("GET_POSITION", {}, value);
|
|
5221
|
+
if (!resp || typeof resp !== "object") return;
|
|
5222
|
+
onChange({
|
|
5223
|
+
x: Number(resp.x ?? 0),
|
|
5224
|
+
y: Number(resp.y ?? 0),
|
|
5225
|
+
z: Number(resp.z ?? 0),
|
|
5226
|
+
w: Number(resp.w ?? 0)
|
|
5227
|
+
});
|
|
5228
|
+
} catch {
|
|
5229
|
+
}
|
|
5230
|
+
};
|
|
5231
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
5232
|
+
Vector4ActionButton,
|
|
5233
|
+
{
|
|
5234
|
+
icon: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Crosshair, { size: compact ? "1.1vh" : "1.3vh", color }),
|
|
5235
|
+
label: locale("Set"),
|
|
5236
|
+
tooltip: locale("SetWorldTooltip"),
|
|
5237
|
+
onClick: grab,
|
|
5238
|
+
color,
|
|
5239
|
+
compact
|
|
5240
|
+
}
|
|
5241
|
+
);
|
|
5242
|
+
}
|
|
5243
|
+
function WorldPositionGotoButton({
|
|
5244
|
+
value,
|
|
5245
|
+
compact
|
|
5246
|
+
}) {
|
|
5247
|
+
const theme2 = core.useMantineTheme();
|
|
5248
|
+
const color = theme2.colors[theme2.primaryColor][5];
|
|
5249
|
+
const goto = () => {
|
|
5250
|
+
fetchNui("GOTO_POSITION", value).catch(() => {
|
|
5251
|
+
});
|
|
5252
|
+
};
|
|
5253
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
5254
|
+
Vector4ActionButton,
|
|
5255
|
+
{
|
|
5256
|
+
icon: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.MapPin, { size: compact ? "1.1vh" : "1.3vh", color }),
|
|
5257
|
+
label: locale("Goto"),
|
|
5258
|
+
tooltip: locale("GotoWorldTooltip"),
|
|
5259
|
+
onClick: goto,
|
|
5260
|
+
color,
|
|
5261
|
+
compact
|
|
5262
|
+
}
|
|
5263
|
+
);
|
|
5264
|
+
}
|
|
5265
|
+
function Vector4DeleteButton({
|
|
5266
|
+
onClick,
|
|
5267
|
+
compact
|
|
5268
|
+
}) {
|
|
5269
|
+
const color = "#ef4444";
|
|
5270
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
5271
|
+
Vector4ActionButton,
|
|
5272
|
+
{
|
|
5273
|
+
icon: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Trash2, { size: compact ? "1.1vh" : "1.3vh", color }),
|
|
5274
|
+
label: locale("Delete"),
|
|
5275
|
+
tooltip: locale("Delete"),
|
|
5276
|
+
onClick,
|
|
5277
|
+
color,
|
|
5278
|
+
compact
|
|
5279
|
+
}
|
|
5280
|
+
);
|
|
5281
|
+
}
|
|
5126
5282
|
var GroupSelectContext = React6.createContext(null);
|
|
5127
5283
|
function GroupSelect({
|
|
5128
5284
|
value,
|
|
@@ -5923,6 +6079,10 @@ exports.SelectItem = SelectItem;
|
|
|
5923
6079
|
exports.TestBed = TestBed;
|
|
5924
6080
|
exports.Title = Title;
|
|
5925
6081
|
exports.TornEdgeSVGFilter = TornEdgeSVGFilter;
|
|
6082
|
+
exports.Vector4DeleteButton = Vector4DeleteButton;
|
|
6083
|
+
exports.Vector4Display = Vector4Display;
|
|
6084
|
+
exports.WorldPositionGotoButton = WorldPositionGotoButton;
|
|
6085
|
+
exports.WorldPositionSetButton = WorldPositionSetButton;
|
|
5926
6086
|
exports.colorWithAlpha = colorWithAlpha;
|
|
5927
6087
|
exports.copyToClipboard = copyToClipboard;
|
|
5928
6088
|
exports.createFormStore = createFormStore;
|