@almadar/ui 4.33.0 → 4.34.0
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/avl/index.cjs +1484 -1527
- package/dist/avl/index.css +1 -1
- package/dist/avl/index.js +404 -447
- package/dist/components/index.cjs +1280 -1307
- package/dist/components/index.css +1 -1
- package/dist/components/index.js +381 -408
- package/dist/components/templates/DashboardLayout.d.ts +0 -7
- package/dist/context/index.cjs +0 -10
- package/dist/context/index.d.ts +0 -1
- package/dist/context/index.js +1 -8
- package/dist/docs/index.cjs +2 -2
- package/dist/docs/index.js +2 -2
- package/dist/marketing/index.cjs +2 -2
- package/dist/marketing/index.js +2 -2
- package/dist/providers/index.cjs +1105 -1132
- package/dist/providers/index.css +1 -1
- package/dist/providers/index.js +373 -400
- package/dist/runtime/createClientEffectHandlers.d.ts +1 -9
- package/dist/runtime/index.cjs +1146 -1189
- package/dist/runtime/index.css +1 -1
- package/dist/runtime/index.js +382 -425
- package/package.json +14 -8
- package/dist/context/CurrentPagePathContext.d.ts +0 -9
package/dist/avl/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
|
|
2
2
|
import { OrbitControls as OrbitControls$1, Grid as Grid$1, Stars, Sparkles, Html, RoundedBox } from '@react-three/drei';
|
|
3
|
-
import * as
|
|
4
|
-
import
|
|
3
|
+
import * as React118 from 'react';
|
|
4
|
+
import React118__default, { createContext, useContext, useRef, useState, useCallback, useMemo, useEffect, Suspense, useLayoutEffect, useReducer, lazy, useId, forwardRef, useImperativeHandle, Component } from 'react';
|
|
5
5
|
import * as LucideIcons from 'lucide-react';
|
|
6
6
|
import { Loader2, ChevronDown, X, Check, Copy, AlertTriangle, Info, AlertCircle, CheckCircle, List, Printer, ChevronRight, ChevronLeft, Code, FileText, WrapText, Trash2, Menu as Menu$1, Search, Bell, LogOut, ZoomOut, ZoomIn, Download, FileQuestion, Inbox, XCircle, Filter, Plus, Pause, Play, RotateCcw, Package, Calendar, Pencil, Eye, MoreHorizontal, Image as Image$1, Upload, Minus, ArrowLeft, HelpCircle, ChevronUp, Eraser, Star, TrendingUp, TrendingDown, ArrowUp, ArrowDown, MoreVertical, Sun, Moon, Circle, Clock, CheckCircle2, ArrowRight, FileWarning, SkipForward, Bug, Send, Wrench, User, Tag, DollarSign, Zap, Sword, Move, Heart, Shield } from 'lucide-react';
|
|
7
7
|
import { evaluate, createMinimalContext } from '@almadar/evaluator';
|
|
@@ -136,7 +136,7 @@ var init_types = __esm({
|
|
|
136
136
|
}
|
|
137
137
|
});
|
|
138
138
|
|
|
139
|
-
// node_modules
|
|
139
|
+
// node_modules/clsx/dist/clsx.mjs
|
|
140
140
|
function r(e) {
|
|
141
141
|
var t, f, n = "";
|
|
142
142
|
if ("string" == typeof e || "number" == typeof e) n += e;
|
|
@@ -151,11 +151,11 @@ function clsx() {
|
|
|
151
151
|
return n;
|
|
152
152
|
}
|
|
153
153
|
var init_clsx = __esm({
|
|
154
|
-
"node_modules
|
|
154
|
+
"node_modules/clsx/dist/clsx.mjs"() {
|
|
155
155
|
}
|
|
156
156
|
});
|
|
157
157
|
|
|
158
|
-
// node_modules
|
|
158
|
+
// node_modules/tailwind-merge/dist/bundle-mjs.mjs
|
|
159
159
|
function twJoin() {
|
|
160
160
|
let index = 0;
|
|
161
161
|
let argument;
|
|
@@ -199,7 +199,7 @@ function createTailwindMerge(createConfigFirst, ...createConfigRest) {
|
|
|
199
199
|
}
|
|
200
200
|
var CLASS_PART_SEPARATOR, createClassGroupUtils, getGroupRecursive, arbitraryPropertyRegex, getGroupIdForArbitraryProperty, createClassMap, processClassesRecursively, getPart, isThemeGetter, getPrefixedClassGroupEntries, createLruCache, IMPORTANT_MODIFIER, createParseClassName, sortModifiers, createConfigUtils, SPLIT_CLASSES_REGEX, mergeClassList, toValue, fromTheme, arbitraryValueRegex, fractionRegex, stringLengths, tshirtUnitRegex, lengthUnitRegex, colorFunctionRegex, shadowRegex, imageRegex, isLength, isArbitraryLength, isNumber, isArbitraryNumber, isInteger, isPercent, isArbitraryValue, isTshirtSize, sizeLabels, isArbitrarySize, isArbitraryPosition, imageLabels, isArbitraryImage, isArbitraryShadow, isAny, getIsArbitraryValue, isLengthOnly, isNever, isShadow, isImage, getDefaultConfig, twMerge;
|
|
201
201
|
var init_bundle_mjs = __esm({
|
|
202
|
-
"node_modules
|
|
202
|
+
"node_modules/tailwind-merge/dist/bundle-mjs.mjs"() {
|
|
203
203
|
CLASS_PART_SEPARATOR = "-";
|
|
204
204
|
createClassGroupUtils = (config) => {
|
|
205
205
|
const classMap = createClassMap(config);
|
|
@@ -3336,7 +3336,7 @@ var init_Box = __esm({
|
|
|
3336
3336
|
fixed: "fixed",
|
|
3337
3337
|
sticky: "sticky"
|
|
3338
3338
|
};
|
|
3339
|
-
Box =
|
|
3339
|
+
Box = React118__default.forwardRef(
|
|
3340
3340
|
({
|
|
3341
3341
|
padding,
|
|
3342
3342
|
paddingX,
|
|
@@ -5067,7 +5067,7 @@ function resolveIconProp(value, sizeClass) {
|
|
|
5067
5067
|
const IconComp = value;
|
|
5068
5068
|
return /* @__PURE__ */ jsx(IconComp, { className: sizeClass });
|
|
5069
5069
|
}
|
|
5070
|
-
if (
|
|
5070
|
+
if (React118__default.isValidElement(value)) {
|
|
5071
5071
|
return value;
|
|
5072
5072
|
}
|
|
5073
5073
|
if (typeof value === "object" && value !== null && "render" in value) {
|
|
@@ -5143,7 +5143,7 @@ var init_Button = __esm({
|
|
|
5143
5143
|
md: "h-4 w-4",
|
|
5144
5144
|
lg: "h-5 w-5"
|
|
5145
5145
|
};
|
|
5146
|
-
Button =
|
|
5146
|
+
Button = React118__default.forwardRef(
|
|
5147
5147
|
({
|
|
5148
5148
|
className,
|
|
5149
5149
|
variant = "primary",
|
|
@@ -5246,7 +5246,7 @@ var init_Badge = __esm({
|
|
|
5246
5246
|
md: "px-2.5 py-1 text-sm",
|
|
5247
5247
|
lg: "px-3 py-1.5 text-base"
|
|
5248
5248
|
};
|
|
5249
|
-
Badge =
|
|
5249
|
+
Badge = React118__default.forwardRef(
|
|
5250
5250
|
({ className, variant = "default", size = "sm", amount, label, icon, children, ...props }, ref) => {
|
|
5251
5251
|
const iconSizes2 = { sm: "w-3 h-3", md: "w-3.5 h-3.5", lg: "w-4 h-4" };
|
|
5252
5252
|
const resolvedIcon = typeof icon === "string" ? (() => {
|
|
@@ -5406,7 +5406,7 @@ var Input;
|
|
|
5406
5406
|
var init_Input = __esm({
|
|
5407
5407
|
"components/atoms/Input.tsx"() {
|
|
5408
5408
|
init_cn();
|
|
5409
|
-
Input =
|
|
5409
|
+
Input = React118__default.forwardRef(
|
|
5410
5410
|
({
|
|
5411
5411
|
className,
|
|
5412
5412
|
inputType,
|
|
@@ -5524,7 +5524,7 @@ var Label;
|
|
|
5524
5524
|
var init_Label = __esm({
|
|
5525
5525
|
"components/atoms/Label.tsx"() {
|
|
5526
5526
|
init_cn();
|
|
5527
|
-
Label =
|
|
5527
|
+
Label = React118__default.forwardRef(
|
|
5528
5528
|
({ className, required, children, ...props }, ref) => {
|
|
5529
5529
|
return /* @__PURE__ */ jsxs(
|
|
5530
5530
|
"label",
|
|
@@ -5550,7 +5550,7 @@ var Textarea;
|
|
|
5550
5550
|
var init_Textarea = __esm({
|
|
5551
5551
|
"components/atoms/Textarea.tsx"() {
|
|
5552
5552
|
init_cn();
|
|
5553
|
-
Textarea =
|
|
5553
|
+
Textarea = React118__default.forwardRef(
|
|
5554
5554
|
({ className, error, ...props }, ref) => {
|
|
5555
5555
|
return /* @__PURE__ */ jsx(
|
|
5556
5556
|
"textarea",
|
|
@@ -5579,7 +5579,7 @@ var Select;
|
|
|
5579
5579
|
var init_Select = __esm({
|
|
5580
5580
|
"components/atoms/Select.tsx"() {
|
|
5581
5581
|
init_cn();
|
|
5582
|
-
Select =
|
|
5582
|
+
Select = React118__default.forwardRef(
|
|
5583
5583
|
({ className, options, placeholder, error, ...props }, ref) => {
|
|
5584
5584
|
return /* @__PURE__ */ jsxs("div", { className: "relative", children: [
|
|
5585
5585
|
/* @__PURE__ */ jsxs(
|
|
@@ -5621,7 +5621,7 @@ var Checkbox;
|
|
|
5621
5621
|
var init_Checkbox = __esm({
|
|
5622
5622
|
"components/atoms/Checkbox.tsx"() {
|
|
5623
5623
|
init_cn();
|
|
5624
|
-
Checkbox =
|
|
5624
|
+
Checkbox = React118__default.forwardRef(
|
|
5625
5625
|
({ className, label, id, ...props }, ref) => {
|
|
5626
5626
|
const inputId = id || `checkbox-${Math.random().toString(36).substr(2, 9)}`;
|
|
5627
5627
|
return /* @__PURE__ */ jsxs("div", { className: "flex items-center", children: [
|
|
@@ -5703,7 +5703,7 @@ var init_Card = __esm({
|
|
|
5703
5703
|
md: "shadow",
|
|
5704
5704
|
lg: "shadow-lg"
|
|
5705
5705
|
};
|
|
5706
|
-
Card =
|
|
5706
|
+
Card = React118__default.forwardRef(
|
|
5707
5707
|
({
|
|
5708
5708
|
className,
|
|
5709
5709
|
variant = "bordered",
|
|
@@ -5739,9 +5739,9 @@ var init_Card = __esm({
|
|
|
5739
5739
|
}
|
|
5740
5740
|
);
|
|
5741
5741
|
Card.displayName = "Card";
|
|
5742
|
-
CardHeader =
|
|
5742
|
+
CardHeader = React118__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn("mb-4", className), ...props }));
|
|
5743
5743
|
CardHeader.displayName = "CardHeader";
|
|
5744
|
-
CardTitle =
|
|
5744
|
+
CardTitle = React118__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
5745
5745
|
"h3",
|
|
5746
5746
|
{
|
|
5747
5747
|
ref,
|
|
@@ -5754,11 +5754,11 @@ var init_Card = __esm({
|
|
|
5754
5754
|
}
|
|
5755
5755
|
));
|
|
5756
5756
|
CardTitle.displayName = "CardTitle";
|
|
5757
|
-
CardContent =
|
|
5757
|
+
CardContent = React118__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn("", className), ...props }));
|
|
5758
5758
|
CardContent.displayName = "CardContent";
|
|
5759
5759
|
CardBody = CardContent;
|
|
5760
5760
|
CardBody.displayName = "CardBody";
|
|
5761
|
-
CardFooter =
|
|
5761
|
+
CardFooter = React118__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
5762
5762
|
"div",
|
|
5763
5763
|
{
|
|
5764
5764
|
ref,
|
|
@@ -5779,7 +5779,7 @@ var init_Spinner = __esm({
|
|
|
5779
5779
|
md: "h-6 w-6",
|
|
5780
5780
|
lg: "h-8 w-8"
|
|
5781
5781
|
};
|
|
5782
|
-
Spinner =
|
|
5782
|
+
Spinner = React118__default.forwardRef(
|
|
5783
5783
|
({ className, size = "md", ...props }, ref) => {
|
|
5784
5784
|
return /* @__PURE__ */ jsx(
|
|
5785
5785
|
"div",
|
|
@@ -6227,7 +6227,7 @@ var Radio;
|
|
|
6227
6227
|
var init_Radio = __esm({
|
|
6228
6228
|
"components/atoms/Radio.tsx"() {
|
|
6229
6229
|
init_cn();
|
|
6230
|
-
Radio =
|
|
6230
|
+
Radio = React118__default.forwardRef(
|
|
6231
6231
|
({
|
|
6232
6232
|
label,
|
|
6233
6233
|
helperText,
|
|
@@ -6338,7 +6338,7 @@ var init_Switch = __esm({
|
|
|
6338
6338
|
"components/atoms/Switch.tsx"() {
|
|
6339
6339
|
"use client";
|
|
6340
6340
|
init_cn();
|
|
6341
|
-
Switch =
|
|
6341
|
+
Switch = React118.forwardRef(
|
|
6342
6342
|
({
|
|
6343
6343
|
checked,
|
|
6344
6344
|
defaultChecked = false,
|
|
@@ -6349,10 +6349,10 @@ var init_Switch = __esm({
|
|
|
6349
6349
|
name,
|
|
6350
6350
|
className
|
|
6351
6351
|
}, ref) => {
|
|
6352
|
-
const [isChecked, setIsChecked] =
|
|
6352
|
+
const [isChecked, setIsChecked] = React118.useState(
|
|
6353
6353
|
checked !== void 0 ? checked : defaultChecked
|
|
6354
6354
|
);
|
|
6355
|
-
|
|
6355
|
+
React118.useEffect(() => {
|
|
6356
6356
|
if (checked !== void 0) {
|
|
6357
6357
|
setIsChecked(checked);
|
|
6358
6358
|
}
|
|
@@ -6686,8 +6686,8 @@ var init_LawReferenceTooltip = __esm({
|
|
|
6686
6686
|
position = "top",
|
|
6687
6687
|
className
|
|
6688
6688
|
}) => {
|
|
6689
|
-
const [isVisible, setIsVisible] =
|
|
6690
|
-
const timeoutRef =
|
|
6689
|
+
const [isVisible, setIsVisible] = React118__default.useState(false);
|
|
6690
|
+
const timeoutRef = React118__default.useRef(null);
|
|
6691
6691
|
const handleMouseEnter = () => {
|
|
6692
6692
|
if (timeoutRef.current) clearTimeout(timeoutRef.current);
|
|
6693
6693
|
timeoutRef.current = setTimeout(() => setIsVisible(true), 200);
|
|
@@ -6696,7 +6696,7 @@ var init_LawReferenceTooltip = __esm({
|
|
|
6696
6696
|
if (timeoutRef.current) clearTimeout(timeoutRef.current);
|
|
6697
6697
|
setIsVisible(false);
|
|
6698
6698
|
};
|
|
6699
|
-
|
|
6699
|
+
React118__default.useEffect(() => {
|
|
6700
6700
|
return () => {
|
|
6701
6701
|
if (timeoutRef.current) clearTimeout(timeoutRef.current);
|
|
6702
6702
|
};
|
|
@@ -6906,7 +6906,7 @@ var init_StatusDot = __esm({
|
|
|
6906
6906
|
md: "w-2.5 h-2.5",
|
|
6907
6907
|
lg: "w-3 h-3"
|
|
6908
6908
|
};
|
|
6909
|
-
StatusDot =
|
|
6909
|
+
StatusDot = React118__default.forwardRef(
|
|
6910
6910
|
({ className, status = "offline", pulse = false, size = "md", label, ...props }, ref) => {
|
|
6911
6911
|
return /* @__PURE__ */ jsx(
|
|
6912
6912
|
"span",
|
|
@@ -6959,7 +6959,7 @@ var init_TrendIndicator = __esm({
|
|
|
6959
6959
|
down: TrendingDown,
|
|
6960
6960
|
flat: ArrowRight
|
|
6961
6961
|
};
|
|
6962
|
-
TrendIndicator =
|
|
6962
|
+
TrendIndicator = React118__default.forwardRef(
|
|
6963
6963
|
({
|
|
6964
6964
|
className,
|
|
6965
6965
|
value,
|
|
@@ -7026,7 +7026,7 @@ var init_RangeSlider = __esm({
|
|
|
7026
7026
|
md: "w-4 h-4",
|
|
7027
7027
|
lg: "w-5 h-5"
|
|
7028
7028
|
};
|
|
7029
|
-
RangeSlider =
|
|
7029
|
+
RangeSlider = React118__default.forwardRef(
|
|
7030
7030
|
({
|
|
7031
7031
|
className,
|
|
7032
7032
|
min = 0,
|
|
@@ -7673,9 +7673,9 @@ function ScoreDisplay({
|
|
|
7673
7673
|
...rest
|
|
7674
7674
|
}) {
|
|
7675
7675
|
const resolvedValue = typeof value === "number" && !Number.isNaN(value) ? value : typeof rest.score === "number" && !Number.isNaN(rest.score) ? rest.score : 0;
|
|
7676
|
-
const [displayValue, setDisplayValue] =
|
|
7677
|
-
const [isAnimating, setIsAnimating] =
|
|
7678
|
-
|
|
7676
|
+
const [displayValue, setDisplayValue] = React118.useState(resolvedValue);
|
|
7677
|
+
const [isAnimating, setIsAnimating] = React118.useState(false);
|
|
7678
|
+
React118.useEffect(() => {
|
|
7679
7679
|
if (!animated || displayValue === resolvedValue) {
|
|
7680
7680
|
setDisplayValue(resolvedValue);
|
|
7681
7681
|
return;
|
|
@@ -7745,9 +7745,9 @@ function ControlButton({
|
|
|
7745
7745
|
className
|
|
7746
7746
|
}) {
|
|
7747
7747
|
const eventBus = useEventBus();
|
|
7748
|
-
const [isPressed, setIsPressed] =
|
|
7748
|
+
const [isPressed, setIsPressed] = React118.useState(false);
|
|
7749
7749
|
const actualPressed = pressed ?? isPressed;
|
|
7750
|
-
const handlePointerDown =
|
|
7750
|
+
const handlePointerDown = React118.useCallback(
|
|
7751
7751
|
(e) => {
|
|
7752
7752
|
e.preventDefault();
|
|
7753
7753
|
if (disabled) return;
|
|
@@ -7757,7 +7757,7 @@ function ControlButton({
|
|
|
7757
7757
|
},
|
|
7758
7758
|
[disabled, pressEvent, eventBus, onPress]
|
|
7759
7759
|
);
|
|
7760
|
-
const handlePointerUp =
|
|
7760
|
+
const handlePointerUp = React118.useCallback(
|
|
7761
7761
|
(e) => {
|
|
7762
7762
|
e.preventDefault();
|
|
7763
7763
|
if (disabled) return;
|
|
@@ -7767,7 +7767,7 @@ function ControlButton({
|
|
|
7767
7767
|
},
|
|
7768
7768
|
[disabled, releaseEvent, eventBus, onRelease]
|
|
7769
7769
|
);
|
|
7770
|
-
const handlePointerLeave =
|
|
7770
|
+
const handlePointerLeave = React118.useCallback(
|
|
7771
7771
|
(e) => {
|
|
7772
7772
|
if (isPressed) {
|
|
7773
7773
|
setIsPressed(false);
|
|
@@ -8665,9 +8665,9 @@ function MiniMap({
|
|
|
8665
8665
|
viewportRect,
|
|
8666
8666
|
className
|
|
8667
8667
|
}) {
|
|
8668
|
-
const canvasRef =
|
|
8669
|
-
const frameRef =
|
|
8670
|
-
|
|
8668
|
+
const canvasRef = React118.useRef(null);
|
|
8669
|
+
const frameRef = React118.useRef(0);
|
|
8670
|
+
React118.useEffect(() => {
|
|
8671
8671
|
const canvas = canvasRef.current;
|
|
8672
8672
|
if (!canvas) return;
|
|
8673
8673
|
const ctx = canvas.getContext("2d");
|
|
@@ -8960,7 +8960,7 @@ var init_ErrorBoundary = __esm({
|
|
|
8960
8960
|
"use client";
|
|
8961
8961
|
init_cn();
|
|
8962
8962
|
init_ErrorState();
|
|
8963
|
-
ErrorBoundary = class extends
|
|
8963
|
+
ErrorBoundary = class extends React118__default.Component {
|
|
8964
8964
|
constructor(props) {
|
|
8965
8965
|
super(props);
|
|
8966
8966
|
__publicField(this, "reset", () => {
|
|
@@ -9407,8 +9407,8 @@ var init_Tooltip = __esm({
|
|
|
9407
9407
|
if (hideTimeoutRef.current) clearTimeout(hideTimeoutRef.current);
|
|
9408
9408
|
};
|
|
9409
9409
|
}, []);
|
|
9410
|
-
const triggerElement =
|
|
9411
|
-
const trigger =
|
|
9410
|
+
const triggerElement = React118__default.isValidElement(children) ? children : /* @__PURE__ */ jsx("span", { children });
|
|
9411
|
+
const trigger = React118__default.cloneElement(triggerElement, {
|
|
9412
9412
|
ref: triggerRef,
|
|
9413
9413
|
onMouseEnter: handleMouseEnter,
|
|
9414
9414
|
onMouseLeave: handleMouseLeave,
|
|
@@ -9529,8 +9529,8 @@ var init_Popover = __esm({
|
|
|
9529
9529
|
onMouseEnter: handleOpen,
|
|
9530
9530
|
onMouseLeave: handleClose
|
|
9531
9531
|
};
|
|
9532
|
-
const childElement =
|
|
9533
|
-
const triggerElement =
|
|
9532
|
+
const childElement = React118__default.isValidElement(children) ? children : /* @__PURE__ */ jsx("span", { children });
|
|
9533
|
+
const triggerElement = React118__default.cloneElement(
|
|
9534
9534
|
childElement,
|
|
9535
9535
|
{
|
|
9536
9536
|
ref: triggerRef,
|
|
@@ -9647,8 +9647,8 @@ var init_Menu = __esm({
|
|
|
9647
9647
|
"bottom-start": "top-full left-0 mt-2",
|
|
9648
9648
|
"bottom-end": "top-full right-0 mt-2"
|
|
9649
9649
|
};
|
|
9650
|
-
const triggerChild =
|
|
9651
|
-
const triggerElement =
|
|
9650
|
+
const triggerChild = React118__default.isValidElement(trigger) ? trigger : /* @__PURE__ */ jsx("span", { children: trigger });
|
|
9651
|
+
const triggerElement = React118__default.cloneElement(
|
|
9652
9652
|
triggerChild,
|
|
9653
9653
|
{
|
|
9654
9654
|
ref: triggerRef,
|
|
@@ -10167,7 +10167,7 @@ var init_MapView = __esm({
|
|
|
10167
10167
|
shadowSize: [41, 41]
|
|
10168
10168
|
});
|
|
10169
10169
|
L.Marker.prototype.options.icon = defaultIcon;
|
|
10170
|
-
const { useEffect: useEffect81, useRef: useRef81, useCallback: useCallback105, useState: useState107 } =
|
|
10170
|
+
const { useEffect: useEffect81, useRef: useRef81, useCallback: useCallback105, useState: useState107 } = React118__default;
|
|
10171
10171
|
const { Typography: Typography2 } = await Promise.resolve().then(() => (init_Typography(), Typography_exports));
|
|
10172
10172
|
const { useEventBus: useEventBus3 } = await Promise.resolve().then(() => (init_useEventBus(), useEventBus_exports));
|
|
10173
10173
|
function MapUpdater({ centerLat, centerLng, zoom }) {
|
|
@@ -10398,7 +10398,7 @@ function InputPattern({
|
|
|
10398
10398
|
fieldName
|
|
10399
10399
|
}) {
|
|
10400
10400
|
const { emit } = useEventBus();
|
|
10401
|
-
const [localValue, setLocalValue] =
|
|
10401
|
+
const [localValue, setLocalValue] = React118__default.useState(value);
|
|
10402
10402
|
const handleChange = (e) => {
|
|
10403
10403
|
setLocalValue(e.target.value);
|
|
10404
10404
|
if (onChange) {
|
|
@@ -10436,7 +10436,7 @@ function TextareaPattern({
|
|
|
10436
10436
|
fieldName
|
|
10437
10437
|
}) {
|
|
10438
10438
|
const { emit } = useEventBus();
|
|
10439
|
-
const [localValue, setLocalValue] =
|
|
10439
|
+
const [localValue, setLocalValue] = React118__default.useState(value);
|
|
10440
10440
|
const handleChange = (e) => {
|
|
10441
10441
|
setLocalValue(e.target.value);
|
|
10442
10442
|
if (onChange) {
|
|
@@ -10468,7 +10468,7 @@ function SelectPattern({
|
|
|
10468
10468
|
fieldName
|
|
10469
10469
|
}) {
|
|
10470
10470
|
const { emit } = useEventBus();
|
|
10471
|
-
const [localValue, setLocalValue] =
|
|
10471
|
+
const [localValue, setLocalValue] = React118__default.useState(value);
|
|
10472
10472
|
const handleChange = (e) => {
|
|
10473
10473
|
setLocalValue(e.target.value);
|
|
10474
10474
|
if (onChange) {
|
|
@@ -10497,7 +10497,7 @@ function CheckboxPattern({
|
|
|
10497
10497
|
className
|
|
10498
10498
|
}) {
|
|
10499
10499
|
const { emit } = useEventBus();
|
|
10500
|
-
const [localChecked, setLocalChecked] =
|
|
10500
|
+
const [localChecked, setLocalChecked] = React118__default.useState(checked);
|
|
10501
10501
|
const handleChange = (e) => {
|
|
10502
10502
|
setLocalChecked(e.target.checked);
|
|
10503
10503
|
if (onChange) {
|
|
@@ -10728,8 +10728,8 @@ function ActionButtons({
|
|
|
10728
10728
|
disabled
|
|
10729
10729
|
}) {
|
|
10730
10730
|
const eventBus = useEventBus();
|
|
10731
|
-
const [activeButtons, setActiveButtons] =
|
|
10732
|
-
const handlePress =
|
|
10731
|
+
const [activeButtons, setActiveButtons] = React118.useState(/* @__PURE__ */ new Set());
|
|
10732
|
+
const handlePress = React118.useCallback(
|
|
10733
10733
|
(id) => {
|
|
10734
10734
|
setActiveButtons((prev) => new Set(prev).add(id));
|
|
10735
10735
|
if (actionEvent) eventBus.emit(`UI:${actionEvent}`, { id, pressed: true });
|
|
@@ -10737,7 +10737,7 @@ function ActionButtons({
|
|
|
10737
10737
|
},
|
|
10738
10738
|
[actionEvent, eventBus, onAction]
|
|
10739
10739
|
);
|
|
10740
|
-
const handleRelease =
|
|
10740
|
+
const handleRelease = React118.useCallback(
|
|
10741
10741
|
(id) => {
|
|
10742
10742
|
setActiveButtons((prev) => {
|
|
10743
10743
|
const next = new Set(prev);
|
|
@@ -12792,9 +12792,9 @@ var init_ScaledDiagram = __esm({
|
|
|
12792
12792
|
}
|
|
12793
12793
|
});
|
|
12794
12794
|
|
|
12795
|
-
// node_modules
|
|
12795
|
+
// node_modules/katex/dist/katex.min.css
|
|
12796
12796
|
var init_katex_min = __esm({
|
|
12797
|
-
"node_modules
|
|
12797
|
+
"node_modules/katex/dist/katex.min.css"() {
|
|
12798
12798
|
}
|
|
12799
12799
|
});
|
|
12800
12800
|
var MarkdownContent;
|
|
@@ -12804,7 +12804,7 @@ var init_MarkdownContent = __esm({
|
|
|
12804
12804
|
init_Box();
|
|
12805
12805
|
init_useTranslate();
|
|
12806
12806
|
init_cn();
|
|
12807
|
-
MarkdownContent =
|
|
12807
|
+
MarkdownContent = React118__default.memo(
|
|
12808
12808
|
({ content, direction, className }) => {
|
|
12809
12809
|
const { t: _t } = useTranslate();
|
|
12810
12810
|
const safeContent = typeof content === "string" ? content : String(content ?? "");
|
|
@@ -13021,7 +13021,7 @@ var init_CodeBlock = __esm({
|
|
|
13021
13021
|
loloStyle = { ...dark, ...loloStyleOverrides };
|
|
13022
13022
|
LINE_PROPS_FN = (n) => ({ "data-line": String(n - 1) });
|
|
13023
13023
|
HIDDEN_LINE_NUMBERS = { display: "none" };
|
|
13024
|
-
CodeBlock =
|
|
13024
|
+
CodeBlock = React118__default.memo(
|
|
13025
13025
|
({
|
|
13026
13026
|
code: rawCode,
|
|
13027
13027
|
language = "text",
|
|
@@ -14330,7 +14330,7 @@ var init_StateMachineView = __esm({
|
|
|
14330
14330
|
style: { top: title ? 30 : 0 },
|
|
14331
14331
|
children: [
|
|
14332
14332
|
entity && /* @__PURE__ */ jsx(EntityBox, { entity, config }),
|
|
14333
|
-
states.map((state) => renderStateNode ? /* @__PURE__ */ jsx(
|
|
14333
|
+
states.map((state) => renderStateNode ? /* @__PURE__ */ jsx(React118__default.Fragment, { children: renderStateNode(state, config) }, state.id) : /* @__PURE__ */ jsx(
|
|
14334
14334
|
StateNode,
|
|
14335
14335
|
{
|
|
14336
14336
|
state,
|
|
@@ -20117,7 +20117,7 @@ function CraftingRecipe({
|
|
|
20117
20117
|
className
|
|
20118
20118
|
}) {
|
|
20119
20119
|
const eventBus = useEventBus();
|
|
20120
|
-
const handleCraft =
|
|
20120
|
+
const handleCraft = React118.useCallback(() => {
|
|
20121
20121
|
onCraft?.();
|
|
20122
20122
|
if (craftEvent) {
|
|
20123
20123
|
eventBus.emit(craftEvent, { output: output.label });
|
|
@@ -20134,7 +20134,7 @@ function CraftingRecipe({
|
|
|
20134
20134
|
children: [
|
|
20135
20135
|
/* @__PURE__ */ jsx(HStack, { gap: "xs", className: "flex-wrap items-center", children: inputs.map((ingredient, index) => {
|
|
20136
20136
|
const hasSufficient = ingredient.available >= ingredient.required;
|
|
20137
|
-
return /* @__PURE__ */ jsxs(
|
|
20137
|
+
return /* @__PURE__ */ jsxs(React118.Fragment, { children: [
|
|
20138
20138
|
/* @__PURE__ */ jsx(Box, { className: "relative", children: /* @__PURE__ */ jsx(
|
|
20139
20139
|
ItemSlot,
|
|
20140
20140
|
{
|
|
@@ -20428,8 +20428,8 @@ function DPad({
|
|
|
20428
20428
|
}) {
|
|
20429
20429
|
const eventBus = useEventBus();
|
|
20430
20430
|
const sizes = sizeMap15[size];
|
|
20431
|
-
const [activeDirections, setActiveDirections] =
|
|
20432
|
-
const handlePress =
|
|
20431
|
+
const [activeDirections, setActiveDirections] = React118.useState(/* @__PURE__ */ new Set());
|
|
20432
|
+
const handlePress = React118.useCallback(
|
|
20433
20433
|
(direction) => {
|
|
20434
20434
|
setActiveDirections((prev) => new Set(prev).add(direction));
|
|
20435
20435
|
if (directionEvent) eventBus.emit(`UI:${directionEvent}`, { direction, pressed: true });
|
|
@@ -20437,7 +20437,7 @@ function DPad({
|
|
|
20437
20437
|
},
|
|
20438
20438
|
[directionEvent, eventBus, onDirection]
|
|
20439
20439
|
);
|
|
20440
|
-
const handleRelease =
|
|
20440
|
+
const handleRelease = React118.useCallback(
|
|
20441
20441
|
(direction) => {
|
|
20442
20442
|
setActiveDirections((prev) => {
|
|
20443
20443
|
const next = new Set(prev);
|
|
@@ -20569,19 +20569,6 @@ var init_useAuthContext = __esm({
|
|
|
20569
20569
|
"hooks/useAuthContext.ts"() {
|
|
20570
20570
|
}
|
|
20571
20571
|
});
|
|
20572
|
-
var CurrentPagePathContext, CurrentPagePathProvider, useCurrentPagePath;
|
|
20573
|
-
var init_CurrentPagePathContext = __esm({
|
|
20574
|
-
"context/CurrentPagePathContext.tsx"() {
|
|
20575
|
-
"use client";
|
|
20576
|
-
CurrentPagePathContext = createContext(void 0);
|
|
20577
|
-
CurrentPagePathProvider = ({
|
|
20578
|
-
value,
|
|
20579
|
-
children
|
|
20580
|
-
}) => /* @__PURE__ */ jsx(CurrentPagePathContext.Provider, { value, children });
|
|
20581
|
-
CurrentPagePathProvider.displayName = "CurrentPagePathProvider";
|
|
20582
|
-
useCurrentPagePath = () => useContext(CurrentPagePathContext);
|
|
20583
|
-
}
|
|
20584
|
-
});
|
|
20585
20572
|
var DashboardLayout, NavLink;
|
|
20586
20573
|
var init_DashboardLayout = __esm({
|
|
20587
20574
|
"components/templates/DashboardLayout.tsx"() {
|
|
@@ -20595,7 +20582,6 @@ var init_DashboardLayout = __esm({
|
|
|
20595
20582
|
init_useAuthContext();
|
|
20596
20583
|
init_useEventBus();
|
|
20597
20584
|
init_useTranslate();
|
|
20598
|
-
init_CurrentPagePathContext();
|
|
20599
20585
|
DashboardLayout = ({
|
|
20600
20586
|
appName = "{{APP_TITLE}}",
|
|
20601
20587
|
logo,
|
|
@@ -20612,7 +20598,6 @@ var init_DashboardLayout = __esm({
|
|
|
20612
20598
|
showThemeToggle = true,
|
|
20613
20599
|
sidebarFooter,
|
|
20614
20600
|
onSignOut: onSignOutProp,
|
|
20615
|
-
currentPath,
|
|
20616
20601
|
children
|
|
20617
20602
|
}) => {
|
|
20618
20603
|
const eventBus = useEventBus();
|
|
@@ -20633,271 +20618,259 @@ var init_DashboardLayout = __esm({
|
|
|
20633
20618
|
const [sidebarOpen, setSidebarOpen] = useState(false);
|
|
20634
20619
|
const [userMenuOpen, setUserMenuOpen] = useState(false);
|
|
20635
20620
|
const location = useLocation();
|
|
20636
|
-
const ctxPagePath = useCurrentPagePath();
|
|
20637
|
-
const activePath = currentPath ?? ctxPagePath ?? location.pathname;
|
|
20638
20621
|
const { signOut: authSignOut } = useAuthContext();
|
|
20639
20622
|
const user = userProp || (null);
|
|
20640
20623
|
const { t } = useTranslate();
|
|
20641
20624
|
const handleSignOut = onSignOutProp || authSignOut;
|
|
20642
|
-
return /* @__PURE__ */ jsxs(
|
|
20643
|
-
|
|
20644
|
-
|
|
20645
|
-
|
|
20646
|
-
|
|
20647
|
-
|
|
20648
|
-
|
|
20649
|
-
|
|
20650
|
-
|
|
20651
|
-
|
|
20652
|
-
|
|
20653
|
-
|
|
20625
|
+
return /* @__PURE__ */ jsxs(Box, { className: "min-h-screen bg-background dark:bg-background", children: [
|
|
20626
|
+
sidebarOpen && /* @__PURE__ */ jsx(
|
|
20627
|
+
Box,
|
|
20628
|
+
{
|
|
20629
|
+
className: "fixed inset-0 bg-foreground/50 dark:bg-foreground/70 z-20 lg:hidden",
|
|
20630
|
+
onClick: () => setSidebarOpen(false)
|
|
20631
|
+
}
|
|
20632
|
+
),
|
|
20633
|
+
/* @__PURE__ */ jsxs(
|
|
20634
|
+
Box,
|
|
20635
|
+
{
|
|
20636
|
+
as: "aside",
|
|
20637
|
+
className: cn(
|
|
20638
|
+
"fixed inset-y-0 left-0 z-30 w-64 bg-card dark:bg-card border-r border-border dark:border-border",
|
|
20639
|
+
"transform transition-transform duration-200 ease-in-out lg:translate-x-0",
|
|
20640
|
+
sidebarOpen ? "translate-x-0" : "-translate-x-full"
|
|
20654
20641
|
),
|
|
20655
|
-
|
|
20656
|
-
|
|
20657
|
-
|
|
20658
|
-
|
|
20659
|
-
|
|
20660
|
-
|
|
20661
|
-
"
|
|
20662
|
-
|
|
20663
|
-
|
|
20664
|
-
|
|
20665
|
-
|
|
20666
|
-
|
|
20667
|
-
|
|
20668
|
-
|
|
20642
|
+
children: [
|
|
20643
|
+
/* @__PURE__ */ jsxs(
|
|
20644
|
+
HStack,
|
|
20645
|
+
{
|
|
20646
|
+
align: "center",
|
|
20647
|
+
justify: "between",
|
|
20648
|
+
className: "h-16 px-4 border-b border-border dark:border-border",
|
|
20649
|
+
children: [
|
|
20650
|
+
/* @__PURE__ */ jsxs(Link, { to: "/", className: "flex items-center gap-2", children: [
|
|
20651
|
+
logo || /* @__PURE__ */ jsx(Box, { className: "w-8 h-8 bg-primary-600 rounded-lg flex items-center justify-center", children: /* @__PURE__ */ jsx(
|
|
20652
|
+
Typography,
|
|
20653
|
+
{
|
|
20654
|
+
variant: "small",
|
|
20655
|
+
className: "text-white font-bold text-sm",
|
|
20656
|
+
as: "span",
|
|
20657
|
+
children: appName.charAt(0).toUpperCase()
|
|
20658
|
+
}
|
|
20659
|
+
) }),
|
|
20660
|
+
/* @__PURE__ */ jsx(
|
|
20661
|
+
Typography,
|
|
20662
|
+
{
|
|
20663
|
+
variant: "label",
|
|
20664
|
+
className: "font-semibold text-foreground dark:text-foreground",
|
|
20665
|
+
as: "span",
|
|
20666
|
+
children: appName
|
|
20667
|
+
}
|
|
20668
|
+
)
|
|
20669
|
+
] }),
|
|
20670
|
+
/* @__PURE__ */ jsx(
|
|
20671
|
+
Button,
|
|
20672
|
+
{
|
|
20673
|
+
variant: "ghost",
|
|
20674
|
+
className: "lg:hidden p-2 rounded-md hover:bg-muted dark:hover:bg-muted text-muted-foreground dark:text-muted-foreground",
|
|
20675
|
+
onClick: () => setSidebarOpen(false),
|
|
20676
|
+
children: /* @__PURE__ */ jsx(X, { className: "h-5 w-5" })
|
|
20677
|
+
}
|
|
20678
|
+
)
|
|
20679
|
+
]
|
|
20680
|
+
}
|
|
20681
|
+
),
|
|
20682
|
+
/* @__PURE__ */ jsx(
|
|
20683
|
+
VStack,
|
|
20684
|
+
{
|
|
20685
|
+
as: "nav",
|
|
20686
|
+
gap: "none",
|
|
20687
|
+
className: "flex-1 px-3 py-4 space-y-1 overflow-y-auto",
|
|
20688
|
+
children: navItems.map((item) => /* @__PURE__ */ jsx(
|
|
20689
|
+
NavLink,
|
|
20669
20690
|
{
|
|
20670
|
-
|
|
20671
|
-
|
|
20672
|
-
|
|
20673
|
-
|
|
20674
|
-
|
|
20675
|
-
|
|
20676
|
-
|
|
20677
|
-
|
|
20678
|
-
|
|
20679
|
-
|
|
20680
|
-
|
|
20681
|
-
|
|
20682
|
-
|
|
20683
|
-
|
|
20684
|
-
|
|
20685
|
-
|
|
20686
|
-
|
|
20687
|
-
|
|
20688
|
-
|
|
20689
|
-
|
|
20690
|
-
|
|
20691
|
+
item,
|
|
20692
|
+
currentPath: location.pathname
|
|
20693
|
+
},
|
|
20694
|
+
item.href
|
|
20695
|
+
))
|
|
20696
|
+
}
|
|
20697
|
+
),
|
|
20698
|
+
sidebarFooter && /* @__PURE__ */ jsx(Box, { className: "p-4 border-t border-border dark:border-border", children: sidebarFooter })
|
|
20699
|
+
]
|
|
20700
|
+
}
|
|
20701
|
+
),
|
|
20702
|
+
/* @__PURE__ */ jsxs(Box, { className: "lg:pl-64", children: [
|
|
20703
|
+
/* @__PURE__ */ jsx(
|
|
20704
|
+
Box,
|
|
20705
|
+
{
|
|
20706
|
+
as: "header",
|
|
20707
|
+
className: "sticky top-0 z-20 h-16 bg-card dark:bg-card border-b border-border dark:border-border",
|
|
20708
|
+
children: /* @__PURE__ */ jsxs(
|
|
20709
|
+
HStack,
|
|
20710
|
+
{
|
|
20711
|
+
align: "center",
|
|
20712
|
+
justify: "between",
|
|
20713
|
+
className: "h-full px-4 gap-4",
|
|
20714
|
+
children: [
|
|
20715
|
+
/* @__PURE__ */ jsx(
|
|
20716
|
+
Button,
|
|
20717
|
+
{
|
|
20718
|
+
variant: "ghost",
|
|
20719
|
+
className: "lg:hidden p-2 rounded-md hover:bg-muted dark:hover:bg-muted text-muted-foreground dark:text-muted-foreground touch-manipulation min-h-[44px] min-w-[44px] flex items-center justify-center",
|
|
20720
|
+
onClick: () => setSidebarOpen(true),
|
|
20721
|
+
"aria-label": "Open sidebar",
|
|
20722
|
+
children: /* @__PURE__ */ jsx(Menu$1, { className: "h-5 w-5" })
|
|
20723
|
+
}
|
|
20724
|
+
),
|
|
20725
|
+
searchEnabled && /* @__PURE__ */ jsx(Box, { className: "hidden sm:block flex-1 max-w-md", children: /* @__PURE__ */ jsxs(Box, { className: "relative", children: [
|
|
20726
|
+
/* @__PURE__ */ jsx(Search, { className: "absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground dark:text-muted-foreground" }),
|
|
20727
|
+
/* @__PURE__ */ jsx(
|
|
20728
|
+
Input,
|
|
20729
|
+
{
|
|
20730
|
+
type: "search",
|
|
20731
|
+
placeholder: t("common.search"),
|
|
20732
|
+
className: "pl-10 w-full",
|
|
20733
|
+
onKeyDown: (e) => {
|
|
20734
|
+
if (e.key === "Enter") {
|
|
20735
|
+
handleSearchSubmit(e.target.value);
|
|
20691
20736
|
}
|
|
20692
|
-
)
|
|
20693
|
-
] }),
|
|
20694
|
-
/* @__PURE__ */ jsx(
|
|
20695
|
-
Button,
|
|
20696
|
-
{
|
|
20697
|
-
variant: "ghost",
|
|
20698
|
-
className: "lg:hidden p-2 rounded-md hover:bg-muted dark:hover:bg-muted text-muted-foreground dark:text-muted-foreground",
|
|
20699
|
-
onClick: () => setSidebarOpen(false),
|
|
20700
|
-
children: /* @__PURE__ */ jsx(X, { className: "h-5 w-5" })
|
|
20701
20737
|
}
|
|
20702
|
-
|
|
20703
|
-
|
|
20704
|
-
}
|
|
20705
|
-
|
|
20706
|
-
|
|
20707
|
-
|
|
20708
|
-
|
|
20709
|
-
|
|
20710
|
-
gap: "none",
|
|
20711
|
-
className: "flex-1 px-3 py-4 space-y-1 overflow-y-auto",
|
|
20712
|
-
children: navItems.map((item) => /* @__PURE__ */ jsx(
|
|
20713
|
-
NavLink,
|
|
20738
|
+
}
|
|
20739
|
+
)
|
|
20740
|
+
] }) }),
|
|
20741
|
+
/* @__PURE__ */ jsxs(HStack, { align: "center", gap: "xs", children: [
|
|
20742
|
+
headerActions,
|
|
20743
|
+
showThemeToggle && /* @__PURE__ */ jsx(ThemeToggle, {}),
|
|
20744
|
+
topBarActions.map((action, idx) => /* @__PURE__ */ jsxs(
|
|
20745
|
+
Button,
|
|
20714
20746
|
{
|
|
20715
|
-
|
|
20716
|
-
|
|
20747
|
+
variant: "ghost",
|
|
20748
|
+
className: "relative p-2 rounded-full hover:bg-muted dark:hover:bg-muted",
|
|
20749
|
+
onClick: () => handleTopBarActionClick(action.event),
|
|
20750
|
+
"aria-label": action.label ?? action.icon,
|
|
20751
|
+
children: [
|
|
20752
|
+
/* @__PURE__ */ jsx(Icon, { name: action.icon, className: "h-5 w-5 text-muted-foreground dark:text-muted-foreground" }),
|
|
20753
|
+
action.badge !== void 0 && action.badge !== null && action.badge !== 0 && action.badge !== "" && /* @__PURE__ */ jsx(
|
|
20754
|
+
Box,
|
|
20755
|
+
{
|
|
20756
|
+
as: "span",
|
|
20757
|
+
className: cn(
|
|
20758
|
+
"absolute -top-0.5 -right-0.5 min-w-[18px] h-[18px] px-1 rounded-full text-[10px] font-semibold text-white flex items-center justify-center",
|
|
20759
|
+
action.variant === "danger" ? "bg-error" : action.variant === "primary" ? "bg-primary" : "bg-foreground"
|
|
20760
|
+
),
|
|
20761
|
+
children: action.badge
|
|
20762
|
+
}
|
|
20763
|
+
)
|
|
20764
|
+
]
|
|
20717
20765
|
},
|
|
20718
|
-
|
|
20719
|
-
))
|
|
20720
|
-
|
|
20721
|
-
|
|
20722
|
-
|
|
20723
|
-
|
|
20724
|
-
|
|
20725
|
-
|
|
20726
|
-
|
|
20727
|
-
|
|
20728
|
-
|
|
20729
|
-
|
|
20730
|
-
|
|
20731
|
-
|
|
20732
|
-
|
|
20733
|
-
|
|
20734
|
-
|
|
20735
|
-
|
|
20736
|
-
|
|
20737
|
-
|
|
20738
|
-
|
|
20739
|
-
|
|
20766
|
+
`${action.event}-${idx}`
|
|
20767
|
+
)),
|
|
20768
|
+
notificationsEnabled && /* @__PURE__ */ jsxs(
|
|
20769
|
+
Button,
|
|
20770
|
+
{
|
|
20771
|
+
variant: "ghost",
|
|
20772
|
+
className: "relative p-2 rounded-full hover:bg-muted dark:hover:bg-muted",
|
|
20773
|
+
onClick: handleNotificationClick,
|
|
20774
|
+
"aria-label": t("common.notifications"),
|
|
20775
|
+
children: [
|
|
20776
|
+
/* @__PURE__ */ jsx(Bell, { className: "h-5 w-5 text-muted-foreground dark:text-muted-foreground" }),
|
|
20777
|
+
unreadCount > 0 && /* @__PURE__ */ jsx(
|
|
20778
|
+
Box,
|
|
20779
|
+
{
|
|
20780
|
+
as: "span",
|
|
20781
|
+
className: "absolute -top-0.5 -right-0.5 min-w-[18px] h-[18px] px-1 bg-error rounded-full text-[10px] font-semibold text-white flex items-center justify-center",
|
|
20782
|
+
children: unreadCount > 99 ? "99+" : unreadCount
|
|
20783
|
+
}
|
|
20784
|
+
)
|
|
20785
|
+
]
|
|
20786
|
+
}
|
|
20787
|
+
),
|
|
20788
|
+
user && /* @__PURE__ */ jsxs(Box, { className: "relative", children: [
|
|
20789
|
+
/* @__PURE__ */ jsxs(
|
|
20740
20790
|
Button,
|
|
20741
20791
|
{
|
|
20742
20792
|
variant: "ghost",
|
|
20743
|
-
className: "
|
|
20744
|
-
onClick: () =>
|
|
20745
|
-
|
|
20746
|
-
|
|
20793
|
+
className: "flex items-center gap-2 p-2 rounded-lg hover:bg-muted dark:hover:bg-muted",
|
|
20794
|
+
onClick: () => setUserMenuOpen(!userMenuOpen),
|
|
20795
|
+
children: [
|
|
20796
|
+
/* @__PURE__ */ jsx(
|
|
20797
|
+
Avatar,
|
|
20798
|
+
{
|
|
20799
|
+
src: user.avatar,
|
|
20800
|
+
alt: user.name,
|
|
20801
|
+
initials: user.name.split(" ").map((n) => n[0]).join("").substring(0, 2),
|
|
20802
|
+
size: "sm"
|
|
20803
|
+
}
|
|
20804
|
+
),
|
|
20805
|
+
/* @__PURE__ */ jsx(
|
|
20806
|
+
Typography,
|
|
20807
|
+
{
|
|
20808
|
+
variant: "small",
|
|
20809
|
+
className: "hidden sm:block text-sm font-medium text-foreground dark:text-foreground",
|
|
20810
|
+
as: "span",
|
|
20811
|
+
children: user.name
|
|
20812
|
+
}
|
|
20813
|
+
),
|
|
20814
|
+
/* @__PURE__ */ jsx(ChevronDown, { className: "hidden sm:block h-4 w-4 text-muted-foreground dark:text-muted-foreground" })
|
|
20815
|
+
]
|
|
20747
20816
|
}
|
|
20748
20817
|
),
|
|
20749
|
-
|
|
20750
|
-
/* @__PURE__ */ jsx(Search, { className: "absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground dark:text-muted-foreground" }),
|
|
20818
|
+
userMenuOpen && /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
20751
20819
|
/* @__PURE__ */ jsx(
|
|
20752
|
-
|
|
20753
|
-
{
|
|
20754
|
-
type: "search",
|
|
20755
|
-
placeholder: t("common.search"),
|
|
20756
|
-
className: "pl-10 w-full",
|
|
20757
|
-
onKeyDown: (e) => {
|
|
20758
|
-
if (e.key === "Enter") {
|
|
20759
|
-
handleSearchSubmit(e.target.value);
|
|
20760
|
-
}
|
|
20761
|
-
}
|
|
20762
|
-
}
|
|
20763
|
-
)
|
|
20764
|
-
] }) }),
|
|
20765
|
-
!searchEnabled && /* @__PURE__ */ jsx(Box, { className: "flex-1" }),
|
|
20766
|
-
/* @__PURE__ */ jsxs(HStack, { align: "center", gap: "xs", children: [
|
|
20767
|
-
headerActions,
|
|
20768
|
-
showThemeToggle && /* @__PURE__ */ jsx(ThemeToggle, {}),
|
|
20769
|
-
topBarActions.map((action, idx) => /* @__PURE__ */ jsxs(
|
|
20770
|
-
Button,
|
|
20771
|
-
{
|
|
20772
|
-
variant: "ghost",
|
|
20773
|
-
className: "relative p-2 rounded-full hover:bg-muted dark:hover:bg-muted",
|
|
20774
|
-
onClick: () => handleTopBarActionClick(action.event),
|
|
20775
|
-
"aria-label": action.label ?? action.icon,
|
|
20776
|
-
children: [
|
|
20777
|
-
/* @__PURE__ */ jsx(Icon, { name: action.icon, className: "h-5 w-5 text-muted-foreground dark:text-muted-foreground" }),
|
|
20778
|
-
action.badge !== void 0 && action.badge !== null && action.badge !== 0 && action.badge !== "" && /* @__PURE__ */ jsx(
|
|
20779
|
-
Box,
|
|
20780
|
-
{
|
|
20781
|
-
as: "span",
|
|
20782
|
-
className: cn(
|
|
20783
|
-
"absolute -top-0.5 -right-0.5 min-w-[18px] h-[18px] px-1 rounded-full text-[10px] font-semibold text-white flex items-center justify-center",
|
|
20784
|
-
action.variant === "danger" ? "bg-error" : action.variant === "primary" ? "bg-primary" : "bg-foreground"
|
|
20785
|
-
),
|
|
20786
|
-
children: action.badge
|
|
20787
|
-
}
|
|
20788
|
-
)
|
|
20789
|
-
]
|
|
20790
|
-
},
|
|
20791
|
-
`${action.event}-${idx}`
|
|
20792
|
-
)),
|
|
20793
|
-
notificationsEnabled && /* @__PURE__ */ jsxs(
|
|
20794
|
-
Button,
|
|
20820
|
+
Box,
|
|
20795
20821
|
{
|
|
20796
|
-
|
|
20797
|
-
|
|
20798
|
-
onClick: handleNotificationClick,
|
|
20799
|
-
"aria-label": t("common.notifications"),
|
|
20800
|
-
children: [
|
|
20801
|
-
/* @__PURE__ */ jsx(Bell, { className: "h-5 w-5 text-muted-foreground dark:text-muted-foreground" }),
|
|
20802
|
-
unreadCount > 0 && /* @__PURE__ */ jsx(
|
|
20803
|
-
Box,
|
|
20804
|
-
{
|
|
20805
|
-
as: "span",
|
|
20806
|
-
className: "absolute -top-0.5 -right-0.5 min-w-[18px] h-[18px] px-1 bg-error rounded-full text-[10px] font-semibold text-white flex items-center justify-center",
|
|
20807
|
-
children: unreadCount > 99 ? "99+" : unreadCount
|
|
20808
|
-
}
|
|
20809
|
-
)
|
|
20810
|
-
]
|
|
20822
|
+
className: "fixed inset-0 z-20",
|
|
20823
|
+
onClick: () => setUserMenuOpen(false)
|
|
20811
20824
|
}
|
|
20812
20825
|
),
|
|
20813
|
-
|
|
20826
|
+
/* @__PURE__ */ jsxs(Box, { className: "absolute right-0 mt-2 w-48 bg-card dark:bg-card rounded-lg shadow-lg border border-border dark:border-border py-1 z-30", children: [
|
|
20827
|
+
/* @__PURE__ */ jsxs(Box, { className: "px-4 py-2 border-b border-border dark:border-border", children: [
|
|
20828
|
+
/* @__PURE__ */ jsx(
|
|
20829
|
+
Typography,
|
|
20830
|
+
{
|
|
20831
|
+
variant: "small",
|
|
20832
|
+
className: "text-sm font-medium text-foreground dark:text-foreground",
|
|
20833
|
+
as: "p",
|
|
20834
|
+
children: user.name
|
|
20835
|
+
}
|
|
20836
|
+
),
|
|
20837
|
+
/* @__PURE__ */ jsx(
|
|
20838
|
+
Typography,
|
|
20839
|
+
{
|
|
20840
|
+
variant: "caption",
|
|
20841
|
+
className: "text-xs text-muted-foreground dark:text-muted-foreground",
|
|
20842
|
+
as: "p",
|
|
20843
|
+
children: user.email
|
|
20844
|
+
}
|
|
20845
|
+
)
|
|
20846
|
+
] }),
|
|
20814
20847
|
/* @__PURE__ */ jsxs(
|
|
20815
20848
|
Button,
|
|
20816
20849
|
{
|
|
20817
20850
|
variant: "ghost",
|
|
20818
|
-
|
|
20819
|
-
|
|
20851
|
+
onClick: () => {
|
|
20852
|
+
setUserMenuOpen(false);
|
|
20853
|
+
handleSignOut?.();
|
|
20854
|
+
},
|
|
20855
|
+
className: "w-full flex items-center gap-2 px-4 py-2 text-sm text-error dark:text-error hover:bg-error/10 dark:hover:bg-error/20",
|
|
20820
20856
|
children: [
|
|
20821
|
-
/* @__PURE__ */ jsx(
|
|
20822
|
-
|
|
20823
|
-
{
|
|
20824
|
-
src: user.avatar,
|
|
20825
|
-
alt: user.name,
|
|
20826
|
-
initials: user.name.split(" ").map((n) => n[0]).join("").substring(0, 2),
|
|
20827
|
-
size: "sm"
|
|
20828
|
-
}
|
|
20829
|
-
),
|
|
20830
|
-
/* @__PURE__ */ jsx(
|
|
20831
|
-
Typography,
|
|
20832
|
-
{
|
|
20833
|
-
variant: "small",
|
|
20834
|
-
className: "hidden sm:block text-sm font-medium text-foreground dark:text-foreground",
|
|
20835
|
-
as: "span",
|
|
20836
|
-
children: user.name
|
|
20837
|
-
}
|
|
20838
|
-
),
|
|
20839
|
-
/* @__PURE__ */ jsx(ChevronDown, { className: "hidden sm:block h-4 w-4 text-muted-foreground dark:text-muted-foreground" })
|
|
20857
|
+
/* @__PURE__ */ jsx(LogOut, { className: "h-4 w-4" }),
|
|
20858
|
+
t("auth.signOut")
|
|
20840
20859
|
]
|
|
20841
20860
|
}
|
|
20842
|
-
)
|
|
20843
|
-
userMenuOpen && /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
20844
|
-
/* @__PURE__ */ jsx(
|
|
20845
|
-
Box,
|
|
20846
|
-
{
|
|
20847
|
-
className: "fixed inset-0 z-20",
|
|
20848
|
-
onClick: () => setUserMenuOpen(false)
|
|
20849
|
-
}
|
|
20850
|
-
),
|
|
20851
|
-
/* @__PURE__ */ jsxs(Box, { className: "absolute right-0 mt-2 w-48 bg-card dark:bg-card rounded-lg shadow-lg border border-border dark:border-border py-1 z-30", children: [
|
|
20852
|
-
/* @__PURE__ */ jsxs(Box, { className: "px-4 py-2 border-b border-border dark:border-border", children: [
|
|
20853
|
-
/* @__PURE__ */ jsx(
|
|
20854
|
-
Typography,
|
|
20855
|
-
{
|
|
20856
|
-
variant: "small",
|
|
20857
|
-
className: "text-sm font-medium text-foreground dark:text-foreground",
|
|
20858
|
-
as: "p",
|
|
20859
|
-
children: user.name
|
|
20860
|
-
}
|
|
20861
|
-
),
|
|
20862
|
-
/* @__PURE__ */ jsx(
|
|
20863
|
-
Typography,
|
|
20864
|
-
{
|
|
20865
|
-
variant: "caption",
|
|
20866
|
-
className: "text-xs text-muted-foreground dark:text-muted-foreground",
|
|
20867
|
-
as: "p",
|
|
20868
|
-
children: user.email
|
|
20869
|
-
}
|
|
20870
|
-
)
|
|
20871
|
-
] }),
|
|
20872
|
-
/* @__PURE__ */ jsxs(
|
|
20873
|
-
Button,
|
|
20874
|
-
{
|
|
20875
|
-
variant: "ghost",
|
|
20876
|
-
onClick: () => {
|
|
20877
|
-
setUserMenuOpen(false);
|
|
20878
|
-
handleSignOut?.();
|
|
20879
|
-
},
|
|
20880
|
-
className: "w-full flex items-center gap-2 px-4 py-2 text-sm text-error dark:text-error hover:bg-error/10 dark:hover:bg-error/20",
|
|
20881
|
-
children: [
|
|
20882
|
-
/* @__PURE__ */ jsx(LogOut, { className: "h-4 w-4" }),
|
|
20883
|
-
t("auth.signOut")
|
|
20884
|
-
]
|
|
20885
|
-
}
|
|
20886
|
-
)
|
|
20887
|
-
] })
|
|
20888
|
-
] })
|
|
20861
|
+
)
|
|
20889
20862
|
] })
|
|
20890
20863
|
] })
|
|
20891
|
-
]
|
|
20892
|
-
}
|
|
20893
|
-
|
|
20864
|
+
] })
|
|
20865
|
+
] })
|
|
20866
|
+
]
|
|
20894
20867
|
}
|
|
20895
|
-
)
|
|
20896
|
-
|
|
20897
|
-
|
|
20898
|
-
|
|
20899
|
-
}
|
|
20900
|
-
);
|
|
20868
|
+
)
|
|
20869
|
+
}
|
|
20870
|
+
),
|
|
20871
|
+
/* @__PURE__ */ jsx(Box, { as: "main", className: "p-4 sm:p-6", children })
|
|
20872
|
+
] })
|
|
20873
|
+
] });
|
|
20901
20874
|
};
|
|
20902
20875
|
DashboardLayout.displayName = "DashboardLayout";
|
|
20903
20876
|
NavLink = ({
|
|
@@ -21391,13 +21364,13 @@ function DataList({
|
|
|
21391
21364
|
}) {
|
|
21392
21365
|
const eventBus = useEventBus();
|
|
21393
21366
|
const { t } = useTranslate();
|
|
21394
|
-
const [visibleCount, setVisibleCount] =
|
|
21367
|
+
const [visibleCount, setVisibleCount] = React118__default.useState(pageSize || Infinity);
|
|
21395
21368
|
const fieldDefs = fields ?? columns ?? [];
|
|
21396
21369
|
const allData = Array.isArray(entity) ? entity : entity ? [entity] : [];
|
|
21397
21370
|
const data = pageSize > 0 ? allData.slice(0, visibleCount) : allData;
|
|
21398
21371
|
const hasMoreLocal = pageSize > 0 && visibleCount < allData.length;
|
|
21399
21372
|
const hasRenderProp = typeof children === "function";
|
|
21400
|
-
|
|
21373
|
+
React118__default.useEffect(() => {
|
|
21401
21374
|
const renderItemTypeOf = typeof schemaRenderItem;
|
|
21402
21375
|
const childrenTypeOf = typeof children;
|
|
21403
21376
|
if (data.length > 0 && !hasRenderProp) {
|
|
@@ -21453,7 +21426,7 @@ function DataList({
|
|
|
21453
21426
|
const items2 = data.map((item) => item);
|
|
21454
21427
|
const groups2 = groupBy ? groupData(items2, groupBy) : [{ label: "", items: items2 }];
|
|
21455
21428
|
const contentField = titleField?.name ?? fieldDefs[0]?.name ?? "";
|
|
21456
|
-
return /* @__PURE__ */ jsx(VStack, { gap: "sm", className: cn("py-2", className), children: groups2.map((group, gi) => /* @__PURE__ */ jsxs(
|
|
21429
|
+
return /* @__PURE__ */ jsx(VStack, { gap: "sm", className: cn("py-2", className), children: groups2.map((group, gi) => /* @__PURE__ */ jsxs(React118__default.Fragment, { children: [
|
|
21457
21430
|
group.label && /* @__PURE__ */ jsx(Divider, { label: group.label, className: "my-2" }),
|
|
21458
21431
|
group.items.map((itemData, index) => {
|
|
21459
21432
|
const id = itemData.id || `${gi}-${index}`;
|
|
@@ -21644,7 +21617,7 @@ function DataList({
|
|
|
21644
21617
|
className
|
|
21645
21618
|
),
|
|
21646
21619
|
children: [
|
|
21647
|
-
groups.map((group, gi) => /* @__PURE__ */ jsxs(
|
|
21620
|
+
groups.map((group, gi) => /* @__PURE__ */ jsxs(React118__default.Fragment, { children: [
|
|
21648
21621
|
group.label && /* @__PURE__ */ jsx(Divider, { label: group.label, className: gi > 0 ? "mt-4" : "mt-0" }),
|
|
21649
21622
|
group.items.map(
|
|
21650
21623
|
(itemData, index) => renderItem(itemData, index, gi === groups.length - 1 && index === group.items.length - 1)
|
|
@@ -22791,7 +22764,7 @@ var init_WizardProgress = __esm({
|
|
|
22791
22764
|
children: /* @__PURE__ */ jsx("div", { className: "flex items-center gap-2", children: normalizedSteps.map((step, index) => {
|
|
22792
22765
|
const isActive = index === currentStep;
|
|
22793
22766
|
const isCompleted = index < currentStep;
|
|
22794
|
-
return /* @__PURE__ */ jsxs(
|
|
22767
|
+
return /* @__PURE__ */ jsxs(React118__default.Fragment, { children: [
|
|
22795
22768
|
/* @__PURE__ */ jsx(
|
|
22796
22769
|
"button",
|
|
22797
22770
|
{
|
|
@@ -23702,7 +23675,7 @@ function InventoryGrid({
|
|
|
23702
23675
|
const eventBus = useEventBus();
|
|
23703
23676
|
const slotCount = totalSlots ?? items.length;
|
|
23704
23677
|
const emptySlotCount = Math.max(0, slotCount - items.length);
|
|
23705
|
-
const handleSelect =
|
|
23678
|
+
const handleSelect = React118.useCallback(
|
|
23706
23679
|
(id) => {
|
|
23707
23680
|
onSelect?.(id);
|
|
23708
23681
|
if (selectEvent) {
|
|
@@ -23915,15 +23888,15 @@ function GameCanvas2D({
|
|
|
23915
23888
|
fps = 60,
|
|
23916
23889
|
className
|
|
23917
23890
|
}) {
|
|
23918
|
-
const canvasRef =
|
|
23919
|
-
const rafRef =
|
|
23920
|
-
const frameRef =
|
|
23921
|
-
const lastTimeRef =
|
|
23922
|
-
const onDrawRef =
|
|
23891
|
+
const canvasRef = React118.useRef(null);
|
|
23892
|
+
const rafRef = React118.useRef(0);
|
|
23893
|
+
const frameRef = React118.useRef(0);
|
|
23894
|
+
const lastTimeRef = React118.useRef(0);
|
|
23895
|
+
const onDrawRef = React118.useRef(onDraw);
|
|
23923
23896
|
onDrawRef.current = onDraw;
|
|
23924
|
-
const onTickRef =
|
|
23897
|
+
const onTickRef = React118.useRef(onTick);
|
|
23925
23898
|
onTickRef.current = onTick;
|
|
23926
|
-
|
|
23899
|
+
React118.useEffect(() => {
|
|
23927
23900
|
const canvas = canvasRef.current;
|
|
23928
23901
|
if (!canvas) return;
|
|
23929
23902
|
const ctx = canvas.getContext("2d");
|
|
@@ -24212,7 +24185,7 @@ function TurnPanel({
|
|
|
24212
24185
|
className
|
|
24213
24186
|
}) {
|
|
24214
24187
|
const eventBus = useEventBus();
|
|
24215
|
-
const handleAction =
|
|
24188
|
+
const handleAction = React118.useCallback(
|
|
24216
24189
|
(event) => {
|
|
24217
24190
|
if (event) {
|
|
24218
24191
|
eventBus.emit(event, { turn: currentTurn, phase, activeTeam });
|
|
@@ -24358,7 +24331,7 @@ function UnitCommandBar({
|
|
|
24358
24331
|
className
|
|
24359
24332
|
}) {
|
|
24360
24333
|
const eventBus = useEventBus();
|
|
24361
|
-
const handleCommand =
|
|
24334
|
+
const handleCommand = React118.useCallback(
|
|
24362
24335
|
(event) => {
|
|
24363
24336
|
if (event) {
|
|
24364
24337
|
eventBus.emit(event, { unitId: selectedUnitId });
|
|
@@ -24843,7 +24816,7 @@ function GameMenu({
|
|
|
24843
24816
|
} catch {
|
|
24844
24817
|
}
|
|
24845
24818
|
const eventBus = eventBusProp || eventBusFromHook;
|
|
24846
|
-
const handleOptionClick =
|
|
24819
|
+
const handleOptionClick = React118.useCallback(
|
|
24847
24820
|
(option) => {
|
|
24848
24821
|
if (option.event && eventBus) {
|
|
24849
24822
|
eventBus.emit(`UI:${option.event}`, { option });
|
|
@@ -24957,7 +24930,7 @@ function GameOverScreen({
|
|
|
24957
24930
|
} catch {
|
|
24958
24931
|
}
|
|
24959
24932
|
const eventBus = eventBusProp || eventBusFromHook;
|
|
24960
|
-
const handleActionClick =
|
|
24933
|
+
const handleActionClick = React118.useCallback(
|
|
24961
24934
|
(action) => {
|
|
24962
24935
|
if (action.event && eventBus) {
|
|
24963
24936
|
eventBus.emit(`UI:${action.event}`, { action });
|
|
@@ -28446,7 +28419,7 @@ var init_DocumentViewer = __esm({
|
|
|
28446
28419
|
}
|
|
28447
28420
|
});
|
|
28448
28421
|
function extractTitle(children) {
|
|
28449
|
-
if (!
|
|
28422
|
+
if (!React118__default.isValidElement(children)) return void 0;
|
|
28450
28423
|
const props = children.props;
|
|
28451
28424
|
if (typeof props.title === "string") {
|
|
28452
28425
|
return props.title;
|
|
@@ -28501,7 +28474,7 @@ function LinearView({
|
|
|
28501
28474
|
/* @__PURE__ */ jsx(HStack, { className: "flex-wrap items-center", gap: "xs", children: trait.states.map((state, i) => {
|
|
28502
28475
|
const isDone = i < currentIdx;
|
|
28503
28476
|
const isCurrent = i === currentIdx;
|
|
28504
|
-
return /* @__PURE__ */ jsxs(
|
|
28477
|
+
return /* @__PURE__ */ jsxs(React118__default.Fragment, { children: [
|
|
28505
28478
|
i > 0 && /* @__PURE__ */ jsx(
|
|
28506
28479
|
Typography,
|
|
28507
28480
|
{
|
|
@@ -29285,12 +29258,12 @@ var init_Form = __esm({
|
|
|
29285
29258
|
const isSchemaEntity = isOrbitalEntitySchema(entity);
|
|
29286
29259
|
const resolvedEntity = isSchemaEntity ? entity : void 0;
|
|
29287
29260
|
const entityName = typeof entity === "string" ? entity : resolvedEntity?.name;
|
|
29288
|
-
const normalizedInitialData =
|
|
29261
|
+
const normalizedInitialData = React118__default.useMemo(() => {
|
|
29289
29262
|
const entityRowAsInitial = isPlainEntityRow(entity) ? entity : void 0;
|
|
29290
29263
|
const callerInitial = initialData !== null && typeof initialData === "object" && !Array.isArray(initialData) ? initialData : {};
|
|
29291
29264
|
return entityRowAsInitial !== void 0 ? { ...entityRowAsInitial, ...callerInitial } : callerInitial;
|
|
29292
29265
|
}, [entity, initialData]);
|
|
29293
|
-
const entityDerivedFields =
|
|
29266
|
+
const entityDerivedFields = React118__default.useMemo(() => {
|
|
29294
29267
|
if (fields && fields.length > 0) return void 0;
|
|
29295
29268
|
if (!resolvedEntity) return void 0;
|
|
29296
29269
|
return resolvedEntity.fields.map(
|
|
@@ -29309,16 +29282,16 @@ var init_Form = __esm({
|
|
|
29309
29282
|
const conditionalFields = typeof conditionalFieldsRaw === "boolean" ? {} : conditionalFieldsRaw;
|
|
29310
29283
|
const hiddenCalculations = typeof hiddenCalculationsRaw === "boolean" ? [] : hiddenCalculationsRaw;
|
|
29311
29284
|
const violationTriggers = typeof violationTriggersRaw === "boolean" ? [] : violationTriggersRaw;
|
|
29312
|
-
const [formData, setFormData] =
|
|
29285
|
+
const [formData, setFormData] = React118__default.useState(
|
|
29313
29286
|
normalizedInitialData
|
|
29314
29287
|
);
|
|
29315
|
-
const [collapsedSections, setCollapsedSections] =
|
|
29288
|
+
const [collapsedSections, setCollapsedSections] = React118__default.useState(
|
|
29316
29289
|
/* @__PURE__ */ new Set()
|
|
29317
29290
|
);
|
|
29318
|
-
const [submitError, setSubmitError] =
|
|
29319
|
-
const formRef =
|
|
29291
|
+
const [submitError, setSubmitError] = React118__default.useState(null);
|
|
29292
|
+
const formRef = React118__default.useRef(null);
|
|
29320
29293
|
const formMode = props.mode;
|
|
29321
|
-
const mountedRef =
|
|
29294
|
+
const mountedRef = React118__default.useRef(false);
|
|
29322
29295
|
if (!mountedRef.current) {
|
|
29323
29296
|
mountedRef.current = true;
|
|
29324
29297
|
debug("forms", "mount", {
|
|
@@ -29331,7 +29304,7 @@ var init_Form = __esm({
|
|
|
29331
29304
|
});
|
|
29332
29305
|
}
|
|
29333
29306
|
const shouldShowCancel = showCancel ?? (fields && fields.length > 0);
|
|
29334
|
-
const evalContext =
|
|
29307
|
+
const evalContext = React118__default.useMemo(
|
|
29335
29308
|
() => ({
|
|
29336
29309
|
formValues: formData,
|
|
29337
29310
|
globalVariables: externalContext?.globalVariables ?? {},
|
|
@@ -29340,7 +29313,7 @@ var init_Form = __esm({
|
|
|
29340
29313
|
}),
|
|
29341
29314
|
[formData, externalContext]
|
|
29342
29315
|
);
|
|
29343
|
-
|
|
29316
|
+
React118__default.useEffect(() => {
|
|
29344
29317
|
debug("forms", "initialData-sync", {
|
|
29345
29318
|
mode: formMode,
|
|
29346
29319
|
normalizedInitialData,
|
|
@@ -29351,7 +29324,7 @@ var init_Form = __esm({
|
|
|
29351
29324
|
setFormData(normalizedInitialData);
|
|
29352
29325
|
}
|
|
29353
29326
|
}, [normalizedInitialData]);
|
|
29354
|
-
const processCalculations =
|
|
29327
|
+
const processCalculations = React118__default.useCallback(
|
|
29355
29328
|
(changedFieldId, newFormData) => {
|
|
29356
29329
|
if (!hiddenCalculations.length) return;
|
|
29357
29330
|
const context = {
|
|
@@ -29376,7 +29349,7 @@ var init_Form = __esm({
|
|
|
29376
29349
|
},
|
|
29377
29350
|
[hiddenCalculations, externalContext, eventBus]
|
|
29378
29351
|
);
|
|
29379
|
-
const checkViolations =
|
|
29352
|
+
const checkViolations = React118__default.useCallback(
|
|
29380
29353
|
(changedFieldId, newFormData) => {
|
|
29381
29354
|
if (!violationTriggers.length) return;
|
|
29382
29355
|
const context = {
|
|
@@ -29414,7 +29387,7 @@ var init_Form = __esm({
|
|
|
29414
29387
|
processCalculations(name, newFormData);
|
|
29415
29388
|
checkViolations(name, newFormData);
|
|
29416
29389
|
};
|
|
29417
|
-
const isFieldVisible =
|
|
29390
|
+
const isFieldVisible = React118__default.useCallback(
|
|
29418
29391
|
(fieldName) => {
|
|
29419
29392
|
const condition = conditionalFields[fieldName];
|
|
29420
29393
|
if (!condition) return true;
|
|
@@ -29422,7 +29395,7 @@ var init_Form = __esm({
|
|
|
29422
29395
|
},
|
|
29423
29396
|
[conditionalFields, evalContext]
|
|
29424
29397
|
);
|
|
29425
|
-
const isSectionVisible =
|
|
29398
|
+
const isSectionVisible = React118__default.useCallback(
|
|
29426
29399
|
(section) => {
|
|
29427
29400
|
if (!section.condition) return true;
|
|
29428
29401
|
return Boolean(evaluateFormExpression(section.condition, evalContext));
|
|
@@ -29498,7 +29471,7 @@ var init_Form = __esm({
|
|
|
29498
29471
|
eventBus.emit(`UI:${onCancel}`);
|
|
29499
29472
|
}
|
|
29500
29473
|
};
|
|
29501
|
-
const renderField =
|
|
29474
|
+
const renderField = React118__default.useCallback(
|
|
29502
29475
|
(field) => {
|
|
29503
29476
|
const fieldName = field.name || field.field;
|
|
29504
29477
|
if (!fieldName) return null;
|
|
@@ -29519,7 +29492,7 @@ var init_Form = __esm({
|
|
|
29519
29492
|
[formData, isFieldVisible, relationsData, relationsLoading, isLoading]
|
|
29520
29493
|
);
|
|
29521
29494
|
const effectiveFields = entityDerivedFields ?? fields;
|
|
29522
|
-
const normalizedFields =
|
|
29495
|
+
const normalizedFields = React118__default.useMemo(() => {
|
|
29523
29496
|
if (!effectiveFields || effectiveFields.length === 0) return [];
|
|
29524
29497
|
return effectiveFields.map((field) => {
|
|
29525
29498
|
if (typeof field === "string") {
|
|
@@ -29541,7 +29514,7 @@ var init_Form = __esm({
|
|
|
29541
29514
|
return field;
|
|
29542
29515
|
});
|
|
29543
29516
|
}, [effectiveFields, resolvedEntity]);
|
|
29544
|
-
const schemaFields =
|
|
29517
|
+
const schemaFields = React118__default.useMemo(() => {
|
|
29545
29518
|
if (normalizedFields.length === 0) return null;
|
|
29546
29519
|
if (isDebugEnabled()) {
|
|
29547
29520
|
debugGroup(`Form: ${entityName || "unknown"}`);
|
|
@@ -29551,7 +29524,7 @@ var init_Form = __esm({
|
|
|
29551
29524
|
}
|
|
29552
29525
|
return normalizedFields.map(renderField).filter(Boolean);
|
|
29553
29526
|
}, [normalizedFields, renderField, entityName, conditionalFields]);
|
|
29554
|
-
const sectionElements =
|
|
29527
|
+
const sectionElements = React118__default.useMemo(() => {
|
|
29555
29528
|
if (!sections || sections.length === 0) return null;
|
|
29556
29529
|
return sections.map((section) => {
|
|
29557
29530
|
if (!isSectionVisible(section)) {
|
|
@@ -31083,7 +31056,7 @@ var init_List = __esm({
|
|
|
31083
31056
|
if (entity && typeof entity === "object" && "id" in entity) return [entity];
|
|
31084
31057
|
return [];
|
|
31085
31058
|
}, [entity]);
|
|
31086
|
-
const getItemActions =
|
|
31059
|
+
const getItemActions = React118__default.useCallback(
|
|
31087
31060
|
(item) => {
|
|
31088
31061
|
if (!itemActions) return [];
|
|
31089
31062
|
if (typeof itemActions === "function") {
|
|
@@ -31520,7 +31493,7 @@ var init_MediaGallery = __esm({
|
|
|
31520
31493
|
[selectable, selectedItems, selectionEvent, eventBus]
|
|
31521
31494
|
);
|
|
31522
31495
|
const entityData = Array.isArray(entity) ? entity : [];
|
|
31523
|
-
const items =
|
|
31496
|
+
const items = React118__default.useMemo(() => {
|
|
31524
31497
|
if (propItems) return propItems;
|
|
31525
31498
|
if (entityData.length === 0) return [];
|
|
31526
31499
|
return entityData.map((record, idx) => ({
|
|
@@ -31684,7 +31657,7 @@ var init_MediaGallery = __esm({
|
|
|
31684
31657
|
}
|
|
31685
31658
|
});
|
|
31686
31659
|
function extractTitle2(children) {
|
|
31687
|
-
if (!
|
|
31660
|
+
if (!React118__default.isValidElement(children)) return void 0;
|
|
31688
31661
|
const props = children.props;
|
|
31689
31662
|
if (typeof props.title === "string") {
|
|
31690
31663
|
return props.title;
|
|
@@ -32397,7 +32370,7 @@ var init_PageHeader = __esm({
|
|
|
32397
32370
|
info: "bg-info/10 text-info"
|
|
32398
32371
|
};
|
|
32399
32372
|
return /* @__PURE__ */ jsxs(Box, { className: cn("mb-6", className), children: [
|
|
32400
|
-
breadcrumbs && breadcrumbs.length > 0 && /* @__PURE__ */ jsx(Box, { as: "nav", className: "mb-4", children: /* @__PURE__ */ jsx(Box, { as: "ol", className: "flex items-center gap-2 text-sm", children: breadcrumbs.map((crumb, idx) => /* @__PURE__ */ jsxs(
|
|
32373
|
+
breadcrumbs && breadcrumbs.length > 0 && /* @__PURE__ */ jsx(Box, { as: "nav", className: "mb-4", children: /* @__PURE__ */ jsx(Box, { as: "ol", className: "flex items-center gap-2 text-sm", children: breadcrumbs.map((crumb, idx) => /* @__PURE__ */ jsxs(React118__default.Fragment, { children: [
|
|
32401
32374
|
idx > 0 && /* @__PURE__ */ jsx(Typography, { variant: "small", color: "muted", children: "/" }),
|
|
32402
32375
|
crumb.href ? /* @__PURE__ */ jsx(
|
|
32403
32376
|
"a",
|
|
@@ -32590,7 +32563,7 @@ var init_debugRegistry = __esm({
|
|
|
32590
32563
|
}
|
|
32591
32564
|
});
|
|
32592
32565
|
function useDebugData() {
|
|
32593
|
-
const [data, setData] =
|
|
32566
|
+
const [data, setData] = React118.useState(() => ({
|
|
32594
32567
|
traits: [],
|
|
32595
32568
|
ticks: [],
|
|
32596
32569
|
guards: [],
|
|
@@ -32604,7 +32577,7 @@ function useDebugData() {
|
|
|
32604
32577
|
},
|
|
32605
32578
|
lastUpdate: Date.now()
|
|
32606
32579
|
}));
|
|
32607
|
-
|
|
32580
|
+
React118.useEffect(() => {
|
|
32608
32581
|
const updateData = () => {
|
|
32609
32582
|
setData({
|
|
32610
32583
|
traits: getAllTraits(),
|
|
@@ -32713,12 +32686,12 @@ function layoutGraph(states, transitions, initialState, width, height) {
|
|
|
32713
32686
|
return positions;
|
|
32714
32687
|
}
|
|
32715
32688
|
function WalkMinimap() {
|
|
32716
|
-
const [walkStep, setWalkStep] =
|
|
32717
|
-
const [traits2, setTraits] =
|
|
32718
|
-
const [coveredEdges, setCoveredEdges] =
|
|
32719
|
-
const [completedTraits, setCompletedTraits] =
|
|
32720
|
-
const prevTraitRef =
|
|
32721
|
-
|
|
32689
|
+
const [walkStep, setWalkStep] = React118.useState(null);
|
|
32690
|
+
const [traits2, setTraits] = React118.useState([]);
|
|
32691
|
+
const [coveredEdges, setCoveredEdges] = React118.useState([]);
|
|
32692
|
+
const [completedTraits, setCompletedTraits] = React118.useState(/* @__PURE__ */ new Set());
|
|
32693
|
+
const prevTraitRef = React118.useRef(null);
|
|
32694
|
+
React118.useEffect(() => {
|
|
32722
32695
|
const interval = setInterval(() => {
|
|
32723
32696
|
const w = window;
|
|
32724
32697
|
const step = w.__orbitalWalkStep;
|
|
@@ -33165,15 +33138,15 @@ var init_EntitiesTab = __esm({
|
|
|
33165
33138
|
}
|
|
33166
33139
|
});
|
|
33167
33140
|
function EventFlowTab({ events: events2 }) {
|
|
33168
|
-
const [filter, setFilter] =
|
|
33169
|
-
const containerRef =
|
|
33170
|
-
const [autoScroll, setAutoScroll] =
|
|
33171
|
-
|
|
33141
|
+
const [filter, setFilter] = React118.useState("all");
|
|
33142
|
+
const containerRef = React118.useRef(null);
|
|
33143
|
+
const [autoScroll, setAutoScroll] = React118.useState(true);
|
|
33144
|
+
React118.useEffect(() => {
|
|
33172
33145
|
if (autoScroll && containerRef.current) {
|
|
33173
33146
|
containerRef.current.scrollTop = containerRef.current.scrollHeight;
|
|
33174
33147
|
}
|
|
33175
33148
|
}, [events2.length, autoScroll]);
|
|
33176
|
-
const filteredEvents =
|
|
33149
|
+
const filteredEvents = React118.useMemo(() => {
|
|
33177
33150
|
if (filter === "all") return events2;
|
|
33178
33151
|
return events2.filter((e) => e.type === filter);
|
|
33179
33152
|
}, [events2, filter]);
|
|
@@ -33292,7 +33265,7 @@ var init_EventFlowTab = __esm({
|
|
|
33292
33265
|
}
|
|
33293
33266
|
});
|
|
33294
33267
|
function GuardsPanel({ guards }) {
|
|
33295
|
-
const [filter, setFilter] =
|
|
33268
|
+
const [filter, setFilter] = React118.useState("all");
|
|
33296
33269
|
if (guards.length === 0) {
|
|
33297
33270
|
return /* @__PURE__ */ jsx(
|
|
33298
33271
|
EmptyState,
|
|
@@ -33305,7 +33278,7 @@ function GuardsPanel({ guards }) {
|
|
|
33305
33278
|
}
|
|
33306
33279
|
const passedCount = guards.filter((g) => g.result).length;
|
|
33307
33280
|
const failedCount = guards.length - passedCount;
|
|
33308
|
-
const filteredGuards =
|
|
33281
|
+
const filteredGuards = React118.useMemo(() => {
|
|
33309
33282
|
if (filter === "all") return guards;
|
|
33310
33283
|
if (filter === "passed") return guards.filter((g) => g.result);
|
|
33311
33284
|
return guards.filter((g) => !g.result);
|
|
@@ -33466,10 +33439,10 @@ function EffectBadge({ effect }) {
|
|
|
33466
33439
|
] });
|
|
33467
33440
|
}
|
|
33468
33441
|
function TransitionTimeline({ transitions }) {
|
|
33469
|
-
const containerRef =
|
|
33470
|
-
const [autoScroll, setAutoScroll] =
|
|
33471
|
-
const [expandedId, setExpandedId] =
|
|
33472
|
-
|
|
33442
|
+
const containerRef = React118.useRef(null);
|
|
33443
|
+
const [autoScroll, setAutoScroll] = React118.useState(true);
|
|
33444
|
+
const [expandedId, setExpandedId] = React118.useState(null);
|
|
33445
|
+
React118.useEffect(() => {
|
|
33473
33446
|
if (autoScroll && containerRef.current) {
|
|
33474
33447
|
containerRef.current.scrollTop = containerRef.current.scrollHeight;
|
|
33475
33448
|
}
|
|
@@ -33755,9 +33728,9 @@ function getAllEvents(traits2) {
|
|
|
33755
33728
|
}
|
|
33756
33729
|
function EventDispatcherTab({ traits: traits2, schema }) {
|
|
33757
33730
|
const eventBus = useEventBus();
|
|
33758
|
-
const [log4, setLog] =
|
|
33759
|
-
const prevStatesRef =
|
|
33760
|
-
|
|
33731
|
+
const [log4, setLog] = React118.useState([]);
|
|
33732
|
+
const prevStatesRef = React118.useRef(/* @__PURE__ */ new Map());
|
|
33733
|
+
React118.useEffect(() => {
|
|
33761
33734
|
for (const trait of traits2) {
|
|
33762
33735
|
const prev = prevStatesRef.current.get(trait.id);
|
|
33763
33736
|
if (prev && prev !== trait.currentState) {
|
|
@@ -33927,10 +33900,10 @@ function VerifyModePanel({
|
|
|
33927
33900
|
serverCount,
|
|
33928
33901
|
localCount
|
|
33929
33902
|
}) {
|
|
33930
|
-
const [expanded, setExpanded] =
|
|
33931
|
-
const scrollRef =
|
|
33932
|
-
const prevCountRef =
|
|
33933
|
-
|
|
33903
|
+
const [expanded, setExpanded] = React118.useState(true);
|
|
33904
|
+
const scrollRef = React118.useRef(null);
|
|
33905
|
+
const prevCountRef = React118.useRef(0);
|
|
33906
|
+
React118.useEffect(() => {
|
|
33934
33907
|
if (expanded && transitions.length > prevCountRef.current && scrollRef.current) {
|
|
33935
33908
|
scrollRef.current.scrollTop = scrollRef.current.scrollHeight;
|
|
33936
33909
|
}
|
|
@@ -33996,10 +33969,10 @@ function RuntimeDebugger({
|
|
|
33996
33969
|
defaultTab,
|
|
33997
33970
|
schema
|
|
33998
33971
|
}) {
|
|
33999
|
-
const [isCollapsed, setIsCollapsed] =
|
|
34000
|
-
const [isVisible, setIsVisible] =
|
|
33972
|
+
const [isCollapsed, setIsCollapsed] = React118.useState(mode === "verify" ? true : defaultCollapsed);
|
|
33973
|
+
const [isVisible, setIsVisible] = React118.useState(mode === "inline" || mode === "verify" || isDebugEnabled2());
|
|
34001
33974
|
const debugData = useDebugData();
|
|
34002
|
-
|
|
33975
|
+
React118.useEffect(() => {
|
|
34003
33976
|
if (mode === "inline") return;
|
|
34004
33977
|
return onDebugToggle((enabled) => {
|
|
34005
33978
|
setIsVisible(enabled);
|
|
@@ -34008,7 +33981,7 @@ function RuntimeDebugger({
|
|
|
34008
33981
|
}
|
|
34009
33982
|
});
|
|
34010
33983
|
}, [mode]);
|
|
34011
|
-
|
|
33984
|
+
React118.useEffect(() => {
|
|
34012
33985
|
if (mode === "inline") return;
|
|
34013
33986
|
const handleKeyDown = (e) => {
|
|
34014
33987
|
if (e.key === "`" && isVisible) {
|
|
@@ -34557,7 +34530,7 @@ function SequenceBar({
|
|
|
34557
34530
|
onSlotRemove(index);
|
|
34558
34531
|
}, [onSlotRemove, playing]);
|
|
34559
34532
|
const paddedSlots = Array.from({ length: maxSlots }, (_, i) => slots[i]);
|
|
34560
|
-
return /* @__PURE__ */ jsx(HStack, { className: cn("items-center", className), gap: "sm", children: paddedSlots.map((slot, i) => /* @__PURE__ */ jsxs(
|
|
34533
|
+
return /* @__PURE__ */ jsx(HStack, { className: cn("items-center", className), gap: "sm", children: paddedSlots.map((slot, i) => /* @__PURE__ */ jsxs(React118__default.Fragment, { children: [
|
|
34561
34534
|
i > 0 && /* @__PURE__ */ jsx(
|
|
34562
34535
|
Typography,
|
|
34563
34536
|
{
|
|
@@ -35902,7 +35875,7 @@ var init_StatCard = __esm({
|
|
|
35902
35875
|
const labelToUse = propLabel ?? propTitle;
|
|
35903
35876
|
const eventBus = useEventBus();
|
|
35904
35877
|
const { t } = useTranslate();
|
|
35905
|
-
const handleActionClick =
|
|
35878
|
+
const handleActionClick = React118__default.useCallback(() => {
|
|
35906
35879
|
if (action?.event) {
|
|
35907
35880
|
eventBus.emit(`UI:${action.event}`, {});
|
|
35908
35881
|
}
|
|
@@ -35913,7 +35886,7 @@ var init_StatCard = __esm({
|
|
|
35913
35886
|
const data = Array.isArray(entity) ? entity : entity ? [entity] : [];
|
|
35914
35887
|
const isLoading = externalLoading ?? false;
|
|
35915
35888
|
const error = externalError;
|
|
35916
|
-
const computeMetricValue =
|
|
35889
|
+
const computeMetricValue = React118__default.useCallback(
|
|
35917
35890
|
(metric, items) => {
|
|
35918
35891
|
if (metric.value !== void 0) {
|
|
35919
35892
|
return metric.value;
|
|
@@ -35952,7 +35925,7 @@ var init_StatCard = __esm({
|
|
|
35952
35925
|
},
|
|
35953
35926
|
[]
|
|
35954
35927
|
);
|
|
35955
|
-
const schemaStats =
|
|
35928
|
+
const schemaStats = React118__default.useMemo(() => {
|
|
35956
35929
|
if (!metrics || metrics.length === 0) return null;
|
|
35957
35930
|
return metrics.map((metric) => ({
|
|
35958
35931
|
label: metric.label,
|
|
@@ -35960,7 +35933,7 @@ var init_StatCard = __esm({
|
|
|
35960
35933
|
format: metric.format
|
|
35961
35934
|
}));
|
|
35962
35935
|
}, [metrics, data, computeMetricValue]);
|
|
35963
|
-
const calculatedTrend =
|
|
35936
|
+
const calculatedTrend = React118__default.useMemo(() => {
|
|
35964
35937
|
if (manualTrend !== void 0) return manualTrend;
|
|
35965
35938
|
if (previousValue === void 0 || currentValue === void 0)
|
|
35966
35939
|
return void 0;
|
|
@@ -36944,7 +36917,7 @@ var init_Timeline = __esm({
|
|
|
36944
36917
|
}) => {
|
|
36945
36918
|
const { t } = useTranslate();
|
|
36946
36919
|
const entityData = Array.isArray(entity) ? entity : [];
|
|
36947
|
-
const items =
|
|
36920
|
+
const items = React118__default.useMemo(() => {
|
|
36948
36921
|
if (propItems) return propItems;
|
|
36949
36922
|
if (entityData.length === 0) return [];
|
|
36950
36923
|
return entityData.map((record, idx) => {
|
|
@@ -37051,7 +37024,7 @@ var init_Timeline = __esm({
|
|
|
37051
37024
|
}
|
|
37052
37025
|
});
|
|
37053
37026
|
function extractToastProps(children) {
|
|
37054
|
-
if (!
|
|
37027
|
+
if (!React118__default.isValidElement(children)) {
|
|
37055
37028
|
if (typeof children === "string") {
|
|
37056
37029
|
return { message: children };
|
|
37057
37030
|
}
|
|
@@ -37089,7 +37062,7 @@ var init_ToastSlot = __esm({
|
|
|
37089
37062
|
eventBus.emit("UI:CLOSE");
|
|
37090
37063
|
};
|
|
37091
37064
|
if (!isVisible) return null;
|
|
37092
|
-
const isCustomContent =
|
|
37065
|
+
const isCustomContent = React118__default.isValidElement(children) && !message;
|
|
37093
37066
|
return /* @__PURE__ */ jsx(Box, { className: "fixed bottom-4 right-4 z-50", children: isCustomContent ? children : /* @__PURE__ */ jsx(
|
|
37094
37067
|
Toast,
|
|
37095
37068
|
{
|
|
@@ -37358,7 +37331,7 @@ var init_WizardContainer = __esm({
|
|
|
37358
37331
|
const isCompleted = index < currentStep;
|
|
37359
37332
|
const stepKey = step.id ?? step.tabId ?? `step-${index}`;
|
|
37360
37333
|
const stepTitle = step.title ?? step.name ?? `Step ${index + 1}`;
|
|
37361
|
-
return /* @__PURE__ */ jsxs(
|
|
37334
|
+
return /* @__PURE__ */ jsxs(React118__default.Fragment, { children: [
|
|
37362
37335
|
/* @__PURE__ */ jsx(
|
|
37363
37336
|
Button,
|
|
37364
37337
|
{
|
|
@@ -39547,7 +39520,7 @@ function UnitRenderer({
|
|
|
39547
39520
|
onAnimationStateChange,
|
|
39548
39521
|
animationSpeed = 1
|
|
39549
39522
|
}) {
|
|
39550
|
-
const handleUnitClick =
|
|
39523
|
+
const handleUnitClick = React118__default.useCallback(
|
|
39551
39524
|
(unit) => {
|
|
39552
39525
|
onUnitClick?.(unit);
|
|
39553
39526
|
},
|
|
@@ -42741,7 +42714,7 @@ var init_Avl3DViewer = __esm({
|
|
|
42741
42714
|
const handleTraitClick = useCallback((name) => {
|
|
42742
42715
|
dispatch({ type: "ZOOM_INTO_TRAIT", trait: name, targetPosition: { x: 0, y: 0 } });
|
|
42743
42716
|
}, []);
|
|
42744
|
-
const [highlightedTrait, setHighlightedTrait] =
|
|
42717
|
+
const [highlightedTrait, setHighlightedTrait] = React118__default.useState(null);
|
|
42745
42718
|
const handleTransitionClick = useCallback((index) => {
|
|
42746
42719
|
dispatch({ type: "ZOOM_INTO_TRANSITION", transitionIndex: index, targetPosition: { x: 0, y: 0 } });
|
|
42747
42720
|
}, []);
|
|
@@ -42828,7 +42801,7 @@ var init_Avl3DViewer = __esm({
|
|
|
42828
42801
|
gap: "xs",
|
|
42829
42802
|
align: "center",
|
|
42830
42803
|
className: "absolute top-2 left-2 z-10 bg-surface/80 backdrop-blur rounded-md px-3 py-1.5",
|
|
42831
|
-
children: breadcrumbs.map((crumb, i) => /* @__PURE__ */ jsxs(
|
|
42804
|
+
children: breadcrumbs.map((crumb, i) => /* @__PURE__ */ jsxs(React118__default.Fragment, { children: [
|
|
42832
42805
|
i > 0 && /* @__PURE__ */ jsx(Typography, { variant: "small", color: "muted", className: "mx-1", children: "/" }),
|
|
42833
42806
|
i < breadcrumbs.length - 1 ? /* @__PURE__ */ jsx(
|
|
42834
42807
|
Box,
|
|
@@ -43206,12 +43179,12 @@ var init_three = __esm({
|
|
|
43206
43179
|
}
|
|
43207
43180
|
});
|
|
43208
43181
|
function lazyThree(name, loader) {
|
|
43209
|
-
const Lazy =
|
|
43182
|
+
const Lazy = React118__default.lazy(() => loader().then((m) => ({ default: m[name] })));
|
|
43210
43183
|
function ThreeWrapper(props) {
|
|
43211
|
-
return
|
|
43212
|
-
|
|
43184
|
+
return React118__default.createElement(
|
|
43185
|
+
React118__default.Suspense,
|
|
43213
43186
|
{ fallback: null },
|
|
43214
|
-
|
|
43187
|
+
React118__default.createElement(Lazy, props)
|
|
43215
43188
|
);
|
|
43216
43189
|
}
|
|
43217
43190
|
ThreeWrapper.displayName = `Lazy(${name})`;
|
|
@@ -43699,7 +43672,7 @@ function SuspenseConfigProvider({
|
|
|
43699
43672
|
config,
|
|
43700
43673
|
children
|
|
43701
43674
|
}) {
|
|
43702
|
-
return
|
|
43675
|
+
return React118__default.createElement(
|
|
43703
43676
|
SuspenseConfigContext.Provider,
|
|
43704
43677
|
{ value: config },
|
|
43705
43678
|
children
|
|
@@ -44182,7 +44155,7 @@ function renderPatternChildren(children, onDismiss, parentId = "root", parentPat
|
|
|
44182
44155
|
const key = `${parentId}-${index}-trait:${traitName}`;
|
|
44183
44156
|
return /* @__PURE__ */ jsx(TraitFrame, { traitName }, key);
|
|
44184
44157
|
}
|
|
44185
|
-
return /* @__PURE__ */ jsx(
|
|
44158
|
+
return /* @__PURE__ */ jsx(React118__default.Fragment, { children: child }, `${parentId}-${index}`);
|
|
44186
44159
|
}
|
|
44187
44160
|
if (!child || typeof child !== "object") return null;
|
|
44188
44161
|
const childId = `${parentId}-${index}`;
|
|
@@ -44219,14 +44192,14 @@ function isPatternConfig(value) {
|
|
|
44219
44192
|
if (value === null || value === void 0) return false;
|
|
44220
44193
|
if (typeof value !== "object") return false;
|
|
44221
44194
|
if (Array.isArray(value)) return false;
|
|
44222
|
-
if (
|
|
44195
|
+
if (React118__default.isValidElement(value)) return false;
|
|
44223
44196
|
if (value instanceof Date) return false;
|
|
44224
44197
|
if (typeof value === "function") return false;
|
|
44225
44198
|
const record = value;
|
|
44226
44199
|
return "type" in record && typeof record.type === "string";
|
|
44227
44200
|
}
|
|
44228
44201
|
function isPlainConfigObject(value) {
|
|
44229
|
-
if (
|
|
44202
|
+
if (React118__default.isValidElement(value)) return false;
|
|
44230
44203
|
if (value instanceof Date) return false;
|
|
44231
44204
|
const proto = Object.getPrototypeOf(value);
|
|
44232
44205
|
return proto === Object.prototype || proto === null;
|
|
@@ -44887,7 +44860,7 @@ var AvlTransition = ({
|
|
|
44887
44860
|
opacity = 1,
|
|
44888
44861
|
className
|
|
44889
44862
|
}) => {
|
|
44890
|
-
const ids =
|
|
44863
|
+
const ids = React118__default.useMemo(() => {
|
|
44891
44864
|
avlTransitionId += 1;
|
|
44892
44865
|
return { arrow: `avl-tr-${avlTransitionId}-arrow` };
|
|
44893
44866
|
}, []);
|
|
@@ -45648,7 +45621,7 @@ var AvlStateMachine = ({
|
|
|
45648
45621
|
color = "var(--color-primary)",
|
|
45649
45622
|
animated = false
|
|
45650
45623
|
}) => {
|
|
45651
|
-
const ids =
|
|
45624
|
+
const ids = React118__default.useMemo(() => {
|
|
45652
45625
|
avlSmId += 1;
|
|
45653
45626
|
const base = `avl-sm-${avlSmId}`;
|
|
45654
45627
|
return { glow: `${base}-glow`, grad: `${base}-grad` };
|
|
@@ -45843,7 +45816,7 @@ var AvlOrbitalUnit = ({
|
|
|
45843
45816
|
color = "var(--color-primary)",
|
|
45844
45817
|
animated = false
|
|
45845
45818
|
}) => {
|
|
45846
|
-
const ids =
|
|
45819
|
+
const ids = React118__default.useMemo(() => {
|
|
45847
45820
|
avlOuId += 1;
|
|
45848
45821
|
const base = `avl-ou-${avlOuId}`;
|
|
45849
45822
|
return { glow: `${base}-glow`, grad: `${base}-grad` };
|
|
@@ -45935,7 +45908,7 @@ var AvlClosedCircuit = ({
|
|
|
45935
45908
|
color = "var(--color-primary)",
|
|
45936
45909
|
animated = false
|
|
45937
45910
|
}) => {
|
|
45938
|
-
const ids =
|
|
45911
|
+
const ids = React118__default.useMemo(() => {
|
|
45939
45912
|
avlCcId += 1;
|
|
45940
45913
|
const base = `avl-cc-${avlCcId}`;
|
|
45941
45914
|
return { glow: `${base}-glow`, grad: `${base}-grad`, arrow: `${base}-arrow` };
|
|
@@ -46088,7 +46061,7 @@ var AvlEmitListen = ({
|
|
|
46088
46061
|
color = "var(--color-primary)",
|
|
46089
46062
|
animated = false
|
|
46090
46063
|
}) => {
|
|
46091
|
-
const ids =
|
|
46064
|
+
const ids = React118__default.useMemo(() => {
|
|
46092
46065
|
avlElId += 1;
|
|
46093
46066
|
const base = `avl-el-${avlElId}`;
|
|
46094
46067
|
return { arrow: `${base}-arrow`, grad: `${base}-grad` };
|
|
@@ -46361,7 +46334,7 @@ function renderNode(node, color, glowId) {
|
|
|
46361
46334
|
const baseR = node.type === "operator" ? 20 : 16;
|
|
46362
46335
|
const r2 = Math.max(baseR, labelLen * 3.5 + 6);
|
|
46363
46336
|
const nc = nodeColor(node.type, color);
|
|
46364
|
-
return /* @__PURE__ */ jsxs(
|
|
46337
|
+
return /* @__PURE__ */ jsxs(React118__default.Fragment, { children: [
|
|
46365
46338
|
node.children.map((child, i) => {
|
|
46366
46339
|
const childR = Math.max(
|
|
46367
46340
|
child.type === "operator" ? 20 : 16,
|
|
@@ -46418,7 +46391,7 @@ var AvlExprTree = ({
|
|
|
46418
46391
|
className,
|
|
46419
46392
|
color = "var(--color-primary)"
|
|
46420
46393
|
}) => {
|
|
46421
|
-
const ids =
|
|
46394
|
+
const ids = React118__default.useMemo(() => {
|
|
46422
46395
|
avlEtId += 1;
|
|
46423
46396
|
return { glow: `avl-et-${avlEtId}-glow` };
|
|
46424
46397
|
}, []);
|
|
@@ -47392,7 +47365,7 @@ var SystemNode = ({ data }) => {
|
|
|
47392
47365
|
stateChain.length > 0 && /* @__PURE__ */ jsx("svg", { width: stateChain.length * 14 + 2, height: 10, viewBox: `0 0 ${stateChain.length * 14 + 2} 10`, children: stateChain.map((s, i) => {
|
|
47393
47366
|
const tc = transitionCounts[s.name] ?? 0;
|
|
47394
47367
|
const role = getStateRole(s.name, s.isInitial, s.isTerminal, tc, maxTC);
|
|
47395
|
-
return /* @__PURE__ */ jsxs(
|
|
47368
|
+
return /* @__PURE__ */ jsxs(React118__default.Fragment, { children: [
|
|
47396
47369
|
/* @__PURE__ */ jsx(AvlState, { x: i * 14 + 1, y: 1, width: 10, height: 8, name: "", role, isInitial: s.isInitial, isTerminal: s.isTerminal }),
|
|
47397
47370
|
i < stateChain.length - 1 && /* @__PURE__ */ jsx("line", { x1: i * 14 + 12, y1: 5, x2: i * 14 + 15, y2: 5, stroke: "var(--color-border)", strokeWidth: 0.5 })
|
|
47398
47371
|
] }, s.name);
|
|
@@ -47432,7 +47405,7 @@ var MiniStateMachine = ({ data, className }) => {
|
|
|
47432
47405
|
const x = 2 + i * (NODE_W + GAP + ARROW_W + GAP);
|
|
47433
47406
|
const tc = transitionCounts[s.name] ?? 0;
|
|
47434
47407
|
const role = getStateRole(s.name, s.isInitial, s.isTerminal, tc, maxTC);
|
|
47435
|
-
return /* @__PURE__ */ jsxs(
|
|
47408
|
+
return /* @__PURE__ */ jsxs(React118__default.Fragment, { children: [
|
|
47436
47409
|
/* @__PURE__ */ jsx(
|
|
47437
47410
|
AvlState,
|
|
47438
47411
|
{
|
|
@@ -48894,7 +48867,7 @@ function resolveLambdaBindings(body, argName, arg) {
|
|
|
48894
48867
|
if (Array.isArray(body)) {
|
|
48895
48868
|
return body.map((b) => resolveLambdaBindings(b, argName, arg));
|
|
48896
48869
|
}
|
|
48897
|
-
if (body !== null && typeof body === "object" && !
|
|
48870
|
+
if (body !== null && typeof body === "object" && !React118__default.isValidElement(body) && !(body instanceof Date) && typeof body !== "function") {
|
|
48898
48871
|
const out = {};
|
|
48899
48872
|
for (const [k, v] of Object.entries(body)) {
|
|
48900
48873
|
out[k] = resolveLambdaBindings(v, argName, arg);
|
|
@@ -48913,7 +48886,7 @@ function getSlotContentRenderer2() {
|
|
|
48913
48886
|
function makeLambdaFn(argName, lambdaBody, callerKey) {
|
|
48914
48887
|
return (item, index) => {
|
|
48915
48888
|
const resolvedBody = resolveLambdaBindings(lambdaBody, argName, item);
|
|
48916
|
-
if (resolvedBody === null || typeof resolvedBody !== "object" || Array.isArray(resolvedBody) || typeof resolvedBody === "function" ||
|
|
48889
|
+
if (resolvedBody === null || typeof resolvedBody !== "object" || Array.isArray(resolvedBody) || typeof resolvedBody === "function" || React118__default.isValidElement(resolvedBody) || resolvedBody instanceof Date) {
|
|
48917
48890
|
return null;
|
|
48918
48891
|
}
|
|
48919
48892
|
const record = resolvedBody;
|
|
@@ -48931,7 +48904,7 @@ function makeLambdaFn(argName, lambdaBody, callerKey) {
|
|
|
48931
48904
|
props: childProps,
|
|
48932
48905
|
priority: 0
|
|
48933
48906
|
};
|
|
48934
|
-
return
|
|
48907
|
+
return React118__default.createElement(SlotContentRenderer2, { content: childContent });
|
|
48935
48908
|
};
|
|
48936
48909
|
}
|
|
48937
48910
|
function convertNode(node, callerKey) {
|
|
@@ -48950,7 +48923,7 @@ function convertNode(node, callerKey) {
|
|
|
48950
48923
|
});
|
|
48951
48924
|
return anyChanged ? mapped : node;
|
|
48952
48925
|
}
|
|
48953
|
-
if (typeof node === "object" && !
|
|
48926
|
+
if (typeof node === "object" && !React118__default.isValidElement(node) && !(node instanceof Date)) {
|
|
48954
48927
|
return convertObjectProps(node);
|
|
48955
48928
|
}
|
|
48956
48929
|
return node;
|
|
@@ -48986,7 +48959,7 @@ init_logger();
|
|
|
48986
48959
|
|
|
48987
48960
|
// runtime/createClientEffectHandlers.ts
|
|
48988
48961
|
function createClientEffectHandlers(options) {
|
|
48989
|
-
const { eventBus, slotSetter, navigate, notify
|
|
48962
|
+
const { eventBus, slotSetter, navigate, notify } = options;
|
|
48990
48963
|
return {
|
|
48991
48964
|
emit: (event, payload) => {
|
|
48992
48965
|
const prefixedEvent = event.startsWith("UI:") ? event : `UI:${event}`;
|
|
@@ -48998,24 +48971,9 @@ function createClientEffectHandlers(options) {
|
|
|
48998
48971
|
set: () => {
|
|
48999
48972
|
console.warn("[ClientEffectHandlers] set is server-side only, ignored on client");
|
|
49000
48973
|
},
|
|
49001
|
-
callService: async (
|
|
49002
|
-
|
|
49003
|
-
|
|
49004
|
-
const paramsEcho = {};
|
|
49005
|
-
if (params) {
|
|
49006
|
-
for (const [k, v] of Object.entries(params)) {
|
|
49007
|
-
if (v !== void 0 && (typeof v === "string" || typeof v === "number" || typeof v === "boolean" || v === null || v instanceof Date)) {
|
|
49008
|
-
paramsEcho[k] = v;
|
|
49009
|
-
}
|
|
49010
|
-
}
|
|
49011
|
-
}
|
|
49012
|
-
return {
|
|
49013
|
-
id: mockId,
|
|
49014
|
-
clientSecret: `secret_${mockId}`,
|
|
49015
|
-
success: true,
|
|
49016
|
-
status: "succeeded",
|
|
49017
|
-
...paramsEcho
|
|
49018
|
-
};
|
|
48974
|
+
callService: async () => {
|
|
48975
|
+
console.warn("[ClientEffectHandlers] callService is server-side only, ignored on client");
|
|
48976
|
+
return {};
|
|
49019
48977
|
},
|
|
49020
48978
|
renderUI: (slot, pattern, props) => {
|
|
49021
48979
|
if (pattern === null) {
|
|
@@ -49398,8 +49356,7 @@ function useTraitStateMachine(traitBindings, uiSlots, options) {
|
|
|
49398
49356
|
}
|
|
49399
49357
|
},
|
|
49400
49358
|
navigate: optionsRef.current?.navigate,
|
|
49401
|
-
notify: optionsRef.current?.notify
|
|
49402
|
-
callService: optionsRef.current?.callService
|
|
49359
|
+
notify: optionsRef.current?.notify
|
|
49403
49360
|
});
|
|
49404
49361
|
const persistence = optionsRef.current?.persistence;
|
|
49405
49362
|
let handlers = clientHandlers;
|
|
@@ -50936,7 +50893,7 @@ var OrbPreviewNodeInner = (props) => {
|
|
|
50936
50893
|
}
|
|
50937
50894
|
);
|
|
50938
50895
|
};
|
|
50939
|
-
var OrbPreviewNode =
|
|
50896
|
+
var OrbPreviewNode = React118__default.memo(OrbPreviewNodeInner);
|
|
50940
50897
|
OrbPreviewNode.displayName = "OrbPreviewNode";
|
|
50941
50898
|
var EventFlowEdgeInner = (props) => {
|
|
50942
50899
|
const {
|
|
@@ -51013,7 +50970,7 @@ var EventFlowEdgeInner = (props) => {
|
|
|
51013
50970
|
) })
|
|
51014
50971
|
] });
|
|
51015
50972
|
};
|
|
51016
|
-
var EventFlowEdge =
|
|
50973
|
+
var EventFlowEdge = React118__default.memo(EventFlowEdgeInner);
|
|
51017
50974
|
EventFlowEdge.displayName = "EventFlowEdge";
|
|
51018
50975
|
|
|
51019
50976
|
// components/molecules/avl/BehaviorComposeNode.tsx
|
|
@@ -51152,7 +51109,7 @@ var BehaviorComposeNodeInner = (props) => {
|
|
|
51152
51109
|
}
|
|
51153
51110
|
);
|
|
51154
51111
|
};
|
|
51155
|
-
var BehaviorComposeNode =
|
|
51112
|
+
var BehaviorComposeNode = React118__default.memo(BehaviorComposeNodeInner);
|
|
51156
51113
|
BehaviorComposeNode.displayName = "BehaviorComposeNode";
|
|
51157
51114
|
|
|
51158
51115
|
// components/molecules/avl/avl-behavior-compose-converter.ts
|
|
@@ -52084,7 +52041,7 @@ var ZoomBreadcrumb = ({
|
|
|
52084
52041
|
if (eventName && band === "detail") {
|
|
52085
52042
|
segments.push({ icon: "\u26A1", label: eventName });
|
|
52086
52043
|
}
|
|
52087
|
-
return /* @__PURE__ */ jsx("div", { className: "absolute top-2 left-2 z-10 flex items-center gap-1 px-2 py-1 rounded-md bg-card/90 border border-border text-[11px] text-muted-foreground backdrop-blur-sm", children: segments.map((seg, i) => /* @__PURE__ */ jsxs(
|
|
52044
|
+
return /* @__PURE__ */ jsx("div", { className: "absolute top-2 left-2 z-10 flex items-center gap-1 px-2 py-1 rounded-md bg-card/90 border border-border text-[11px] text-muted-foreground backdrop-blur-sm", children: segments.map((seg, i) => /* @__PURE__ */ jsxs(React118__default.Fragment, { children: [
|
|
52088
52045
|
i > 0 && /* @__PURE__ */ jsx("span", { className: "opacity-40", children: ">" }),
|
|
52089
52046
|
/* @__PURE__ */ jsx("span", { className: "opacity-60", children: seg.icon }),
|
|
52090
52047
|
/* @__PURE__ */ jsx("span", { children: seg.label })
|
|
@@ -52543,7 +52500,7 @@ var EventWireOverlay = ({
|
|
|
52543
52500
|
containerW,
|
|
52544
52501
|
containerH
|
|
52545
52502
|
}) => {
|
|
52546
|
-
const ids =
|
|
52503
|
+
const ids = React118__default.useMemo(() => {
|
|
52547
52504
|
avlOczWireId += 1;
|
|
52548
52505
|
return { arrow: `avl-ocz-wire-${avlOczWireId}-arrow` };
|
|
52549
52506
|
}, []);
|
|
@@ -52861,7 +52818,7 @@ var AvlOrbitalsCosmicZoom = ({
|
|
|
52861
52818
|
borderRadius: 6,
|
|
52862
52819
|
border: `1px solid ${color}`
|
|
52863
52820
|
},
|
|
52864
|
-
children: /* @__PURE__ */ jsx(HStack, { gap: "xs", align: "center", children: breadcrumbs.map((crumb, i) => /* @__PURE__ */ jsxs(
|
|
52821
|
+
children: /* @__PURE__ */ jsx(HStack, { gap: "xs", align: "center", children: breadcrumbs.map((crumb, i) => /* @__PURE__ */ jsxs(React118__default.Fragment, { children: [
|
|
52865
52822
|
i > 0 && /* @__PURE__ */ jsx(Typography, { variant: "small", style: { opacity: 0.5, color }, children: "/" }),
|
|
52866
52823
|
i < breadcrumbs.length - 1 ? /* @__PURE__ */ jsx(
|
|
52867
52824
|
Box,
|