@almadar/ui 5.87.0 → 5.89.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 +1450 -1364
- package/dist/avl/index.js +439 -353
- package/dist/components/game/2d/molecules/StateGraph.d.ts +38 -0
- package/dist/components/game/2d/molecules/index.d.ts +1 -0
- package/dist/components/index.cjs +214 -126
- package/dist/components/index.js +214 -127
- package/dist/providers/index.cjs +1317 -1231
- package/dist/providers/index.js +415 -329
- package/dist/runtime/index.cjs +1311 -1225
- package/dist/runtime/index.js +419 -333
- package/package.json +1 -1
package/dist/runtime/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import * as
|
|
2
|
-
import
|
|
1
|
+
import * as React96 from 'react';
|
|
2
|
+
import React96__default, { useContext, useMemo, useRef, useEffect, useCallback, Suspense, useState, createContext, useSyncExternalStore, useLayoutEffect, lazy, useId } from 'react';
|
|
3
3
|
import { EventBusContext, useTraitScope, useEntitySchemaOptional, useEntitySchema, getAllPages, OrbitalProvider, TraitScopeProvider, ServerBridgeProvider, useCurrentPagePath, VerificationProvider, EntitySchemaProvider, OrbitalThemeProvider, useServerBridge } from '@almadar/ui/providers';
|
|
4
4
|
export { EntitySchemaProvider, ServerBridgeProvider, TraitContext, TraitProvider, useEntitySchema, useEntitySchemaOptional, useServerBridge, useTrait, useTraitContext } from '@almadar/ui/providers';
|
|
5
5
|
import { createLogger, isLogLevelEnabled } from '@almadar/logger';
|
|
@@ -937,7 +937,7 @@ var init_Box = __esm({
|
|
|
937
937
|
fixed: "fixed",
|
|
938
938
|
sticky: "sticky"
|
|
939
939
|
};
|
|
940
|
-
Box =
|
|
940
|
+
Box = React96__default.forwardRef(
|
|
941
941
|
({
|
|
942
942
|
padding,
|
|
943
943
|
paddingX,
|
|
@@ -1002,7 +1002,7 @@ var init_Box = __esm({
|
|
|
1002
1002
|
onPointerDown?.(e);
|
|
1003
1003
|
}, [hoverEvent, tapReveal, triggerProps, onPointerDown]);
|
|
1004
1004
|
const isClickable = action || onClick;
|
|
1005
|
-
return
|
|
1005
|
+
return React96__default.createElement(
|
|
1006
1006
|
Component,
|
|
1007
1007
|
{
|
|
1008
1008
|
ref,
|
|
@@ -1098,7 +1098,7 @@ function loadLib(key, importer) {
|
|
|
1098
1098
|
return p;
|
|
1099
1099
|
}
|
|
1100
1100
|
function lazyFamilyIcon(libKey, importer, pick, fallbackName, family) {
|
|
1101
|
-
const Lazy =
|
|
1101
|
+
const Lazy = React96__default.lazy(async () => {
|
|
1102
1102
|
const lib = await loadLib(libKey, importer);
|
|
1103
1103
|
const Comp = pick(lib);
|
|
1104
1104
|
if (!Comp) {
|
|
@@ -1108,7 +1108,7 @@ function lazyFamilyIcon(libKey, importer, pick, fallbackName, family) {
|
|
|
1108
1108
|
return { default: Comp };
|
|
1109
1109
|
});
|
|
1110
1110
|
const Wrapped = (props) => /* @__PURE__ */ jsx(
|
|
1111
|
-
|
|
1111
|
+
React96__default.Suspense,
|
|
1112
1112
|
{
|
|
1113
1113
|
fallback: /* @__PURE__ */ jsx(
|
|
1114
1114
|
"span",
|
|
@@ -1839,7 +1839,7 @@ var init_Icon = __esm({
|
|
|
1839
1839
|
const directIcon = typeof icon === "string" ? void 0 : icon;
|
|
1840
1840
|
const effectiveName = typeof icon === "string" ? icon : name;
|
|
1841
1841
|
const family = useIconFamily();
|
|
1842
|
-
const RenderedComponent =
|
|
1842
|
+
const RenderedComponent = React96__default.useMemo(() => {
|
|
1843
1843
|
if (directIcon) return null;
|
|
1844
1844
|
return effectiveName ? resolveIconForFamily(effectiveName, family) : null;
|
|
1845
1845
|
}, [directIcon, effectiveName, family]);
|
|
@@ -1901,7 +1901,7 @@ function resolveIconProp(value, sizeClass) {
|
|
|
1901
1901
|
const IconComp = value;
|
|
1902
1902
|
return /* @__PURE__ */ jsx(IconComp, { className: sizeClass });
|
|
1903
1903
|
}
|
|
1904
|
-
if (
|
|
1904
|
+
if (React96__default.isValidElement(value)) {
|
|
1905
1905
|
return value;
|
|
1906
1906
|
}
|
|
1907
1907
|
if (typeof value === "object" && value !== null && isIconLike(value)) {
|
|
@@ -1977,7 +1977,7 @@ var init_Button = __esm({
|
|
|
1977
1977
|
md: "h-icon-default w-icon-default",
|
|
1978
1978
|
lg: "h-icon-default w-icon-default"
|
|
1979
1979
|
};
|
|
1980
|
-
Button =
|
|
1980
|
+
Button = React96__default.forwardRef(
|
|
1981
1981
|
({
|
|
1982
1982
|
className,
|
|
1983
1983
|
variant = "primary",
|
|
@@ -2045,7 +2045,7 @@ var Dialog;
|
|
|
2045
2045
|
var init_Dialog = __esm({
|
|
2046
2046
|
"components/core/atoms/Dialog.tsx"() {
|
|
2047
2047
|
init_cn();
|
|
2048
|
-
Dialog =
|
|
2048
|
+
Dialog = React96__default.forwardRef(
|
|
2049
2049
|
({
|
|
2050
2050
|
role = "dialog",
|
|
2051
2051
|
"aria-modal": ariaModal = true,
|
|
@@ -2163,7 +2163,7 @@ var init_Typography = __esm({
|
|
|
2163
2163
|
}) => {
|
|
2164
2164
|
const variant = variantProp ?? (level ? `h${level}` : "body1");
|
|
2165
2165
|
const Component = as || defaultElements[variant];
|
|
2166
|
-
return
|
|
2166
|
+
return React96__default.createElement(
|
|
2167
2167
|
Component,
|
|
2168
2168
|
{
|
|
2169
2169
|
id,
|
|
@@ -2658,7 +2658,7 @@ var init_Badge = __esm({
|
|
|
2658
2658
|
md: "px-2.5 py-1 text-sm",
|
|
2659
2659
|
lg: "px-3 py-1.5 text-base"
|
|
2660
2660
|
};
|
|
2661
|
-
Badge =
|
|
2661
|
+
Badge = React96__default.forwardRef(
|
|
2662
2662
|
({ className, variant = "default", size = "sm", amount, label, icon, iconAsset, children, onRemove, removeLabel, ...props }, ref) => {
|
|
2663
2663
|
const iconSizes3 = {
|
|
2664
2664
|
sm: "h-icon-default w-icon-default",
|
|
@@ -2995,7 +2995,7 @@ var init_SvgFlow = __esm({
|
|
|
2995
2995
|
width = 100,
|
|
2996
2996
|
height = 100
|
|
2997
2997
|
}) => {
|
|
2998
|
-
const markerId =
|
|
2998
|
+
const markerId = React96__default.useMemo(() => {
|
|
2999
2999
|
flowIdCounter += 1;
|
|
3000
3000
|
return `almadar-flow-arrow-${flowIdCounter}`;
|
|
3001
3001
|
}, []);
|
|
@@ -3588,7 +3588,7 @@ var init_SvgRing = __esm({
|
|
|
3588
3588
|
width = 100,
|
|
3589
3589
|
height = 100
|
|
3590
3590
|
}) => {
|
|
3591
|
-
const gradientId =
|
|
3591
|
+
const gradientId = React96__default.useMemo(() => {
|
|
3592
3592
|
ringIdCounter += 1;
|
|
3593
3593
|
return `almadar-ring-glow-${ringIdCounter}`;
|
|
3594
3594
|
}, []);
|
|
@@ -3769,7 +3769,7 @@ var init_Input = __esm({
|
|
|
3769
3769
|
init_cn();
|
|
3770
3770
|
init_Icon();
|
|
3771
3771
|
init_useEventBus();
|
|
3772
|
-
Input =
|
|
3772
|
+
Input = React96__default.forwardRef(
|
|
3773
3773
|
({
|
|
3774
3774
|
className,
|
|
3775
3775
|
inputType,
|
|
@@ -3929,7 +3929,7 @@ var Label;
|
|
|
3929
3929
|
var init_Label = __esm({
|
|
3930
3930
|
"components/core/atoms/Label.tsx"() {
|
|
3931
3931
|
init_cn();
|
|
3932
|
-
Label =
|
|
3932
|
+
Label = React96__default.forwardRef(
|
|
3933
3933
|
({ className, required, children, ...props }, ref) => {
|
|
3934
3934
|
return /* @__PURE__ */ jsxs(
|
|
3935
3935
|
"label",
|
|
@@ -3956,7 +3956,7 @@ var init_Textarea = __esm({
|
|
|
3956
3956
|
"components/core/atoms/Textarea.tsx"() {
|
|
3957
3957
|
init_cn();
|
|
3958
3958
|
init_useEventBus();
|
|
3959
|
-
Textarea =
|
|
3959
|
+
Textarea = React96__default.forwardRef(
|
|
3960
3960
|
({ className, error, onChange, ...props }, ref) => {
|
|
3961
3961
|
const eventBus = useEventBus();
|
|
3962
3962
|
const handleChange = (e) => {
|
|
@@ -4195,7 +4195,7 @@ var init_Select = __esm({
|
|
|
4195
4195
|
init_cn();
|
|
4196
4196
|
init_Icon();
|
|
4197
4197
|
init_useEventBus();
|
|
4198
|
-
Select =
|
|
4198
|
+
Select = React96__default.forwardRef(
|
|
4199
4199
|
(props, _ref) => {
|
|
4200
4200
|
const { multiple, searchable, clearable } = props;
|
|
4201
4201
|
if (multiple || searchable || clearable) {
|
|
@@ -4212,7 +4212,7 @@ var init_Checkbox = __esm({
|
|
|
4212
4212
|
"components/core/atoms/Checkbox.tsx"() {
|
|
4213
4213
|
init_cn();
|
|
4214
4214
|
init_useEventBus();
|
|
4215
|
-
Checkbox =
|
|
4215
|
+
Checkbox = React96__default.forwardRef(
|
|
4216
4216
|
({ className, label, id, onChange, ...props }, ref) => {
|
|
4217
4217
|
const inputId = id || `checkbox-${Math.random().toString(36).substr(2, 9)}`;
|
|
4218
4218
|
const eventBus = useEventBus();
|
|
@@ -4266,7 +4266,7 @@ var init_Spinner = __esm({
|
|
|
4266
4266
|
md: "h-6 w-6",
|
|
4267
4267
|
lg: "h-8 w-8"
|
|
4268
4268
|
};
|
|
4269
|
-
Spinner =
|
|
4269
|
+
Spinner = React96__default.forwardRef(
|
|
4270
4270
|
({ className, size = "md", overlay, ...props }, ref) => {
|
|
4271
4271
|
if (overlay) {
|
|
4272
4272
|
return /* @__PURE__ */ jsx(
|
|
@@ -4356,7 +4356,7 @@ var init_Card = __esm({
|
|
|
4356
4356
|
chip: "shadow-none rounded-pill border-[length:var(--border-width)] border-border",
|
|
4357
4357
|
"tile-image-first": "p-0 overflow-hidden"
|
|
4358
4358
|
};
|
|
4359
|
-
Card =
|
|
4359
|
+
Card = React96__default.forwardRef(
|
|
4360
4360
|
({
|
|
4361
4361
|
className,
|
|
4362
4362
|
variant = "bordered",
|
|
@@ -4404,9 +4404,9 @@ var init_Card = __esm({
|
|
|
4404
4404
|
}
|
|
4405
4405
|
);
|
|
4406
4406
|
Card.displayName = "Card";
|
|
4407
|
-
CardHeader =
|
|
4407
|
+
CardHeader = React96__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn("mb-4", className), ...props }));
|
|
4408
4408
|
CardHeader.displayName = "CardHeader";
|
|
4409
|
-
CardTitle =
|
|
4409
|
+
CardTitle = React96__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
4410
4410
|
"h3",
|
|
4411
4411
|
{
|
|
4412
4412
|
ref,
|
|
@@ -4419,11 +4419,11 @@ var init_Card = __esm({
|
|
|
4419
4419
|
}
|
|
4420
4420
|
));
|
|
4421
4421
|
CardTitle.displayName = "CardTitle";
|
|
4422
|
-
CardContent =
|
|
4422
|
+
CardContent = React96__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn("", className), ...props }));
|
|
4423
4423
|
CardContent.displayName = "CardContent";
|
|
4424
4424
|
CardBody = CardContent;
|
|
4425
4425
|
CardBody.displayName = "CardBody";
|
|
4426
|
-
CardFooter =
|
|
4426
|
+
CardFooter = React96__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
4427
4427
|
"div",
|
|
4428
4428
|
{
|
|
4429
4429
|
ref,
|
|
@@ -4478,7 +4478,7 @@ var init_FilterPill = __esm({
|
|
|
4478
4478
|
md: "w-3.5 h-3.5",
|
|
4479
4479
|
lg: "w-4 h-4"
|
|
4480
4480
|
};
|
|
4481
|
-
FilterPill =
|
|
4481
|
+
FilterPill = React96__default.forwardRef(
|
|
4482
4482
|
({
|
|
4483
4483
|
className,
|
|
4484
4484
|
variant = "default",
|
|
@@ -4607,8 +4607,8 @@ var init_Avatar = __esm({
|
|
|
4607
4607
|
actionPayload
|
|
4608
4608
|
}) => {
|
|
4609
4609
|
const eventBus = useEventBus();
|
|
4610
|
-
const [imgFailed, setImgFailed] =
|
|
4611
|
-
|
|
4610
|
+
const [imgFailed, setImgFailed] = React96__default.useState(false);
|
|
4611
|
+
React96__default.useEffect(() => {
|
|
4612
4612
|
setImgFailed(false);
|
|
4613
4613
|
}, [src]);
|
|
4614
4614
|
const initials = providedInitials ?? (name ? generateInitials(name) : void 0);
|
|
@@ -4721,7 +4721,7 @@ var init_Center = __esm({
|
|
|
4721
4721
|
as: Component = "div"
|
|
4722
4722
|
}) => {
|
|
4723
4723
|
const mergedStyle = minHeight ? { minHeight, ...style } : style;
|
|
4724
|
-
return
|
|
4724
|
+
return React96__default.createElement(Component, {
|
|
4725
4725
|
className: cn(
|
|
4726
4726
|
inline ? "inline-flex" : "flex",
|
|
4727
4727
|
horizontal && "justify-center",
|
|
@@ -4989,7 +4989,7 @@ var init_Radio = __esm({
|
|
|
4989
4989
|
md: "w-2.5 h-2.5",
|
|
4990
4990
|
lg: "w-3 h-3"
|
|
4991
4991
|
};
|
|
4992
|
-
Radio =
|
|
4992
|
+
Radio = React96__default.forwardRef(
|
|
4993
4993
|
({
|
|
4994
4994
|
label,
|
|
4995
4995
|
helperText,
|
|
@@ -5006,12 +5006,12 @@ var init_Radio = __esm({
|
|
|
5006
5006
|
onChange,
|
|
5007
5007
|
...props
|
|
5008
5008
|
}, ref) => {
|
|
5009
|
-
const reactId =
|
|
5009
|
+
const reactId = React96__default.useId();
|
|
5010
5010
|
const baseId = id || `radio-${reactId}`;
|
|
5011
5011
|
const hasError = !!error;
|
|
5012
5012
|
const eventBus = useEventBus();
|
|
5013
|
-
const [selected, setSelected] =
|
|
5014
|
-
|
|
5013
|
+
const [selected, setSelected] = React96__default.useState(value);
|
|
5014
|
+
React96__default.useEffect(() => {
|
|
5015
5015
|
if (value !== void 0) setSelected(value);
|
|
5016
5016
|
}, [value]);
|
|
5017
5017
|
const pick = (next, e) => {
|
|
@@ -5193,7 +5193,7 @@ var init_Switch = __esm({
|
|
|
5193
5193
|
"components/core/atoms/Switch.tsx"() {
|
|
5194
5194
|
"use client";
|
|
5195
5195
|
init_cn();
|
|
5196
|
-
Switch =
|
|
5196
|
+
Switch = React96.forwardRef(
|
|
5197
5197
|
({
|
|
5198
5198
|
checked,
|
|
5199
5199
|
defaultChecked = false,
|
|
@@ -5204,10 +5204,10 @@ var init_Switch = __esm({
|
|
|
5204
5204
|
name,
|
|
5205
5205
|
className
|
|
5206
5206
|
}, ref) => {
|
|
5207
|
-
const [isChecked, setIsChecked] =
|
|
5207
|
+
const [isChecked, setIsChecked] = React96.useState(
|
|
5208
5208
|
checked !== void 0 ? checked : defaultChecked
|
|
5209
5209
|
);
|
|
5210
|
-
|
|
5210
|
+
React96.useEffect(() => {
|
|
5211
5211
|
if (checked !== void 0) {
|
|
5212
5212
|
setIsChecked(checked);
|
|
5213
5213
|
}
|
|
@@ -5370,7 +5370,7 @@ var init_Stack = __esm({
|
|
|
5370
5370
|
};
|
|
5371
5371
|
const isHorizontal = direction === "horizontal";
|
|
5372
5372
|
const directionClass = responsive && isHorizontal ? reverse ? "flex-col-reverse md:flex-row-reverse" : "flex-col md:flex-row" : isHorizontal ? reverse ? "flex-row-reverse" : "flex-row" : reverse ? "flex-col-reverse" : "flex-col";
|
|
5373
|
-
return
|
|
5373
|
+
return React96__default.createElement(
|
|
5374
5374
|
Component,
|
|
5375
5375
|
{
|
|
5376
5376
|
className: cn(
|
|
@@ -5570,7 +5570,7 @@ var Aside;
|
|
|
5570
5570
|
var init_Aside = __esm({
|
|
5571
5571
|
"components/core/atoms/Aside.tsx"() {
|
|
5572
5572
|
init_cn();
|
|
5573
|
-
Aside =
|
|
5573
|
+
Aside = React96__default.forwardRef(
|
|
5574
5574
|
({ className, children, ...rest }, ref) => /* @__PURE__ */ jsx("aside", { ref, className: cn(className), ...rest, children })
|
|
5575
5575
|
);
|
|
5576
5576
|
Aside.displayName = "Aside";
|
|
@@ -5649,9 +5649,9 @@ var init_LawReferenceTooltip = __esm({
|
|
|
5649
5649
|
className
|
|
5650
5650
|
}) => {
|
|
5651
5651
|
const { t } = useTranslate();
|
|
5652
|
-
const [isVisible, setIsVisible] =
|
|
5653
|
-
const timeoutRef =
|
|
5654
|
-
const triggerRef =
|
|
5652
|
+
const [isVisible, setIsVisible] = React96__default.useState(false);
|
|
5653
|
+
const timeoutRef = React96__default.useRef(null);
|
|
5654
|
+
const triggerRef = React96__default.useRef(null);
|
|
5655
5655
|
const handleMouseEnter = () => {
|
|
5656
5656
|
if (timeoutRef.current) clearTimeout(timeoutRef.current);
|
|
5657
5657
|
timeoutRef.current = setTimeout(() => setIsVisible(true), 200);
|
|
@@ -5662,7 +5662,7 @@ var init_LawReferenceTooltip = __esm({
|
|
|
5662
5662
|
};
|
|
5663
5663
|
const { revealed, triggerProps } = useTapReveal({ refs: [triggerRef] });
|
|
5664
5664
|
const open = isVisible || revealed;
|
|
5665
|
-
|
|
5665
|
+
React96__default.useEffect(() => {
|
|
5666
5666
|
return () => {
|
|
5667
5667
|
if (timeoutRef.current) clearTimeout(timeoutRef.current);
|
|
5668
5668
|
};
|
|
@@ -5872,7 +5872,7 @@ var init_StatusDot = __esm({
|
|
|
5872
5872
|
md: "w-2.5 h-2.5",
|
|
5873
5873
|
lg: "w-3 h-3"
|
|
5874
5874
|
};
|
|
5875
|
-
StatusDot =
|
|
5875
|
+
StatusDot = React96__default.forwardRef(
|
|
5876
5876
|
({ className, status = "offline", pulse = false, size = "md", label, ...props }, ref) => {
|
|
5877
5877
|
return /* @__PURE__ */ jsx(
|
|
5878
5878
|
"span",
|
|
@@ -5926,7 +5926,7 @@ var init_TrendIndicator = __esm({
|
|
|
5926
5926
|
down: "trending-down",
|
|
5927
5927
|
flat: "arrow-right"
|
|
5928
5928
|
};
|
|
5929
|
-
TrendIndicator =
|
|
5929
|
+
TrendIndicator = React96__default.forwardRef(
|
|
5930
5930
|
({
|
|
5931
5931
|
className,
|
|
5932
5932
|
value,
|
|
@@ -5993,7 +5993,7 @@ var init_RangeSlider = __esm({
|
|
|
5993
5993
|
md: "w-4 h-4",
|
|
5994
5994
|
lg: "w-5 h-5"
|
|
5995
5995
|
};
|
|
5996
|
-
RangeSlider =
|
|
5996
|
+
RangeSlider = React96__default.forwardRef(
|
|
5997
5997
|
({
|
|
5998
5998
|
className,
|
|
5999
5999
|
min = 0,
|
|
@@ -6552,7 +6552,7 @@ var init_ContentSection = __esm({
|
|
|
6552
6552
|
md: "py-16",
|
|
6553
6553
|
lg: "py-24"
|
|
6554
6554
|
};
|
|
6555
|
-
ContentSection =
|
|
6555
|
+
ContentSection = React96__default.forwardRef(
|
|
6556
6556
|
({ children, background = "default", padding = "lg", id, className }, ref) => {
|
|
6557
6557
|
return /* @__PURE__ */ jsx(
|
|
6558
6558
|
Box,
|
|
@@ -7086,7 +7086,7 @@ var init_AnimatedReveal = __esm({
|
|
|
7086
7086
|
"scale-up": { opacity: 1, transform: "scale(1) translateY(0)" },
|
|
7087
7087
|
"none": {}
|
|
7088
7088
|
};
|
|
7089
|
-
AnimatedReveal =
|
|
7089
|
+
AnimatedReveal = React96__default.forwardRef(
|
|
7090
7090
|
({
|
|
7091
7091
|
trigger = "scroll",
|
|
7092
7092
|
animation = "fade-up",
|
|
@@ -7246,7 +7246,7 @@ var init_AnimatedGraphic = __esm({
|
|
|
7246
7246
|
"components/marketing/atoms/AnimatedGraphic.tsx"() {
|
|
7247
7247
|
"use client";
|
|
7248
7248
|
init_cn();
|
|
7249
|
-
AnimatedGraphic =
|
|
7249
|
+
AnimatedGraphic = React96__default.forwardRef(
|
|
7250
7250
|
({
|
|
7251
7251
|
src,
|
|
7252
7252
|
svgContent,
|
|
@@ -7269,7 +7269,7 @@ var init_AnimatedGraphic = __esm({
|
|
|
7269
7269
|
const fetchedSvg = useFetchedSvg(svgContent ? void 0 : src);
|
|
7270
7270
|
const resolvedSvg = svgContent ?? fetchedSvg;
|
|
7271
7271
|
const prevAnimateRef = useRef(animate);
|
|
7272
|
-
const setRef =
|
|
7272
|
+
const setRef = React96__default.useCallback(
|
|
7273
7273
|
(node) => {
|
|
7274
7274
|
containerRef.current = node;
|
|
7275
7275
|
if (typeof ref === "function") ref(node);
|
|
@@ -7876,7 +7876,7 @@ function GameCard({
|
|
|
7876
7876
|
className
|
|
7877
7877
|
}) {
|
|
7878
7878
|
const eventBus = useEventBus();
|
|
7879
|
-
const handleClick =
|
|
7879
|
+
const handleClick = React96.useCallback(() => {
|
|
7880
7880
|
if (disabled) return;
|
|
7881
7881
|
onClick?.(id);
|
|
7882
7882
|
if (clickEvent) eventBus.emit(`UI:${clickEvent}`, { cardId: id });
|
|
@@ -8158,9 +8158,9 @@ function ControlButton({
|
|
|
8158
8158
|
className
|
|
8159
8159
|
}) {
|
|
8160
8160
|
const eventBus = useEventBus();
|
|
8161
|
-
const [isPressed, setIsPressed] =
|
|
8161
|
+
const [isPressed, setIsPressed] = React96.useState(false);
|
|
8162
8162
|
const actualPressed = pressed ?? isPressed;
|
|
8163
|
-
const handlePointerDown =
|
|
8163
|
+
const handlePointerDown = React96.useCallback(
|
|
8164
8164
|
(e) => {
|
|
8165
8165
|
e.preventDefault();
|
|
8166
8166
|
if (disabled) return;
|
|
@@ -8170,7 +8170,7 @@ function ControlButton({
|
|
|
8170
8170
|
},
|
|
8171
8171
|
[disabled, pressEvent, eventBus, onPress]
|
|
8172
8172
|
);
|
|
8173
|
-
const handlePointerUp =
|
|
8173
|
+
const handlePointerUp = React96.useCallback(
|
|
8174
8174
|
(e) => {
|
|
8175
8175
|
e.preventDefault();
|
|
8176
8176
|
if (disabled) return;
|
|
@@ -8180,7 +8180,7 @@ function ControlButton({
|
|
|
8180
8180
|
},
|
|
8181
8181
|
[disabled, releaseEvent, eventBus, onRelease]
|
|
8182
8182
|
);
|
|
8183
|
-
const handlePointerLeave =
|
|
8183
|
+
const handlePointerLeave = React96.useCallback(
|
|
8184
8184
|
(e) => {
|
|
8185
8185
|
if (isPressed) {
|
|
8186
8186
|
setIsPressed(false);
|
|
@@ -9199,8 +9199,8 @@ function MiniMap({
|
|
|
9199
9199
|
tileAssets,
|
|
9200
9200
|
unitAssets
|
|
9201
9201
|
}) {
|
|
9202
|
-
const canvasRef =
|
|
9203
|
-
const imgCacheRef =
|
|
9202
|
+
const canvasRef = React96.useRef(null);
|
|
9203
|
+
const imgCacheRef = React96.useRef(/* @__PURE__ */ new Map());
|
|
9204
9204
|
function loadImg(url) {
|
|
9205
9205
|
const cached = imgCacheRef.current.get(url);
|
|
9206
9206
|
if (cached) return cached.complete ? cached : null;
|
|
@@ -9215,7 +9215,7 @@ function MiniMap({
|
|
|
9215
9215
|
imgCacheRef.current.set(url, img);
|
|
9216
9216
|
return null;
|
|
9217
9217
|
}
|
|
9218
|
-
|
|
9218
|
+
React96.useEffect(() => {
|
|
9219
9219
|
const canvas = canvasRef.current;
|
|
9220
9220
|
if (!canvas) return;
|
|
9221
9221
|
const ctx = canvas.getContext("2d");
|
|
@@ -9350,8 +9350,8 @@ function ControlGrid({
|
|
|
9350
9350
|
className
|
|
9351
9351
|
}) {
|
|
9352
9352
|
const eventBus = useEventBus();
|
|
9353
|
-
const [active, setActive] =
|
|
9354
|
-
const handlePress =
|
|
9353
|
+
const [active, setActive] = React96.useState(/* @__PURE__ */ new Set());
|
|
9354
|
+
const handlePress = React96.useCallback(
|
|
9355
9355
|
(id) => {
|
|
9356
9356
|
setActive((prev) => new Set(prev).add(id));
|
|
9357
9357
|
if (actionEvent) eventBus.emit(`UI:${actionEvent}`, { id, pressed: true });
|
|
@@ -9365,7 +9365,7 @@ function ControlGrid({
|
|
|
9365
9365
|
},
|
|
9366
9366
|
[kind, actionEvent, directionEvent, directionEvents, eventBus, onAction, onDirection]
|
|
9367
9367
|
);
|
|
9368
|
-
const handleRelease =
|
|
9368
|
+
const handleRelease = React96.useCallback(
|
|
9369
9369
|
(id) => {
|
|
9370
9370
|
setActive((prev) => {
|
|
9371
9371
|
const next = new Set(prev);
|
|
@@ -9623,7 +9623,7 @@ function InventoryGrid({
|
|
|
9623
9623
|
const eventBus = useEventBus();
|
|
9624
9624
|
const slotCount = totalSlots ?? items.length;
|
|
9625
9625
|
const emptySlotCount = Math.max(0, slotCount - items.length);
|
|
9626
|
-
const handleSelect =
|
|
9626
|
+
const handleSelect = React96.useCallback(
|
|
9627
9627
|
(id) => {
|
|
9628
9628
|
onSelect?.(id);
|
|
9629
9629
|
if (selectEvent) {
|
|
@@ -9840,7 +9840,7 @@ function GameMenu({
|
|
|
9840
9840
|
}) {
|
|
9841
9841
|
const resolvedOptions = options ?? menuItems ?? DEFAULT_MENU_OPTIONS;
|
|
9842
9842
|
const eventBus = useEventBus();
|
|
9843
|
-
const handleOptionClick =
|
|
9843
|
+
const handleOptionClick = React96.useCallback(
|
|
9844
9844
|
(option) => {
|
|
9845
9845
|
if (option.event) {
|
|
9846
9846
|
eventBus.emit(`UI:${option.event}`, { option });
|
|
@@ -9917,6 +9917,214 @@ var init_GameMenu = __esm({
|
|
|
9917
9917
|
GameMenu.displayName = "GameMenu";
|
|
9918
9918
|
}
|
|
9919
9919
|
});
|
|
9920
|
+
function StateNode({
|
|
9921
|
+
name,
|
|
9922
|
+
isCurrent = false,
|
|
9923
|
+
isSelected = false,
|
|
9924
|
+
isInitial = false,
|
|
9925
|
+
position,
|
|
9926
|
+
onClick,
|
|
9927
|
+
className
|
|
9928
|
+
}) {
|
|
9929
|
+
return /* @__PURE__ */ jsx(
|
|
9930
|
+
Box,
|
|
9931
|
+
{
|
|
9932
|
+
position: "absolute",
|
|
9933
|
+
display: "flex",
|
|
9934
|
+
className: cn(
|
|
9935
|
+
"items-center justify-center rounded-pill border-3 transition-all cursor-pointer select-none",
|
|
9936
|
+
"min-w-[80px] h-[80px] px-3",
|
|
9937
|
+
isCurrent && "bg-primary/20 border-primary shadow-lg shadow-primary/30 scale-110",
|
|
9938
|
+
isSelected && !isCurrent && "bg-accent/20 border-accent ring-2 ring-accent/50",
|
|
9939
|
+
!isCurrent && !isSelected && "bg-card border-border hover:border-muted-foreground hover:scale-105",
|
|
9940
|
+
className
|
|
9941
|
+
),
|
|
9942
|
+
style: {
|
|
9943
|
+
left: position.x,
|
|
9944
|
+
top: position.y,
|
|
9945
|
+
transform: "translate(-50%, -50%)"
|
|
9946
|
+
},
|
|
9947
|
+
onClick,
|
|
9948
|
+
children: /* @__PURE__ */ jsxs(Box, { className: "text-center", children: [
|
|
9949
|
+
isInitial && /* @__PURE__ */ jsx(Typography, { variant: "caption", className: "text-muted-foreground text-xs block", children: "\u25B6 start" }),
|
|
9950
|
+
/* @__PURE__ */ jsx(
|
|
9951
|
+
Typography,
|
|
9952
|
+
{
|
|
9953
|
+
variant: "body2",
|
|
9954
|
+
className: cn(
|
|
9955
|
+
"font-bold whitespace-nowrap",
|
|
9956
|
+
isCurrent ? "text-primary" : "text-foreground"
|
|
9957
|
+
),
|
|
9958
|
+
children: name
|
|
9959
|
+
}
|
|
9960
|
+
)
|
|
9961
|
+
] })
|
|
9962
|
+
}
|
|
9963
|
+
);
|
|
9964
|
+
}
|
|
9965
|
+
var init_StateNode = __esm({
|
|
9966
|
+
"components/game/2d/organisms/StateNode.tsx"() {
|
|
9967
|
+
init_atoms();
|
|
9968
|
+
init_cn();
|
|
9969
|
+
StateNode.displayName = "StateNode";
|
|
9970
|
+
}
|
|
9971
|
+
});
|
|
9972
|
+
function TransitionArrow({
|
|
9973
|
+
from,
|
|
9974
|
+
to,
|
|
9975
|
+
eventLabel,
|
|
9976
|
+
guardHint,
|
|
9977
|
+
isActive = false,
|
|
9978
|
+
onClick,
|
|
9979
|
+
className
|
|
9980
|
+
}) {
|
|
9981
|
+
const dx = to.x - from.x;
|
|
9982
|
+
const dy = to.y - from.y;
|
|
9983
|
+
const dist = Math.sqrt(dx * dx + dy * dy);
|
|
9984
|
+
if (dist === 0) return /* @__PURE__ */ jsx(Fragment, {});
|
|
9985
|
+
const nx = dx / dist;
|
|
9986
|
+
const ny = dy / dist;
|
|
9987
|
+
const startX = from.x + nx * NODE_RADIUS;
|
|
9988
|
+
const startY = from.y + ny * NODE_RADIUS;
|
|
9989
|
+
const endX = to.x - nx * NODE_RADIUS;
|
|
9990
|
+
const endY = to.y - ny * NODE_RADIUS;
|
|
9991
|
+
const midX = (startX + endX) / 2;
|
|
9992
|
+
const midY = (startY + endY) / 2;
|
|
9993
|
+
const perpX = -ny * 20;
|
|
9994
|
+
const perpY = nx * 20;
|
|
9995
|
+
const ctrlX = midX + perpX;
|
|
9996
|
+
const ctrlY = midY + perpY;
|
|
9997
|
+
const path = `M ${startX} ${startY} Q ${ctrlX} ${ctrlY} ${endX} ${endY}`;
|
|
9998
|
+
return /* @__PURE__ */ jsxs("g", { className: cn("cursor-pointer", className), onClick, children: [
|
|
9999
|
+
/* @__PURE__ */ jsx(
|
|
10000
|
+
"path",
|
|
10001
|
+
{
|
|
10002
|
+
d: path,
|
|
10003
|
+
fill: "none",
|
|
10004
|
+
stroke: isActive ? "var(--color-primary)" : "var(--color-border)",
|
|
10005
|
+
strokeWidth: isActive ? 3 : 2,
|
|
10006
|
+
markerEnd: isActive ? "url(#arrowhead-active)" : "url(#arrowhead)"
|
|
10007
|
+
}
|
|
10008
|
+
),
|
|
10009
|
+
/* @__PURE__ */ jsx(
|
|
10010
|
+
"text",
|
|
10011
|
+
{
|
|
10012
|
+
x: ctrlX,
|
|
10013
|
+
y: ctrlY - 8,
|
|
10014
|
+
textAnchor: "middle",
|
|
10015
|
+
fill: isActive ? "var(--color-primary)" : "var(--color-foreground)",
|
|
10016
|
+
fontSize: 12,
|
|
10017
|
+
fontWeight: isActive ? "bold" : "normal",
|
|
10018
|
+
className: "select-none",
|
|
10019
|
+
children: eventLabel
|
|
10020
|
+
}
|
|
10021
|
+
),
|
|
10022
|
+
guardHint && /* @__PURE__ */ jsx(
|
|
10023
|
+
"text",
|
|
10024
|
+
{
|
|
10025
|
+
x: ctrlX,
|
|
10026
|
+
y: ctrlY + 6,
|
|
10027
|
+
textAnchor: "middle",
|
|
10028
|
+
fill: "var(--color-warning)",
|
|
10029
|
+
fontSize: 10,
|
|
10030
|
+
className: "select-none",
|
|
10031
|
+
children: "\u26A0 " + guardHint
|
|
10032
|
+
}
|
|
10033
|
+
)
|
|
10034
|
+
] });
|
|
10035
|
+
}
|
|
10036
|
+
var NODE_RADIUS;
|
|
10037
|
+
var init_TransitionArrow = __esm({
|
|
10038
|
+
"components/game/2d/organisms/TransitionArrow.tsx"() {
|
|
10039
|
+
init_cn();
|
|
10040
|
+
NODE_RADIUS = 40;
|
|
10041
|
+
TransitionArrow.displayName = "TransitionArrow";
|
|
10042
|
+
}
|
|
10043
|
+
});
|
|
10044
|
+
function layoutStates(states, width, height) {
|
|
10045
|
+
const cx = width / 2;
|
|
10046
|
+
const cy = height / 2;
|
|
10047
|
+
const radius = Math.min(cx, cy) - 60;
|
|
10048
|
+
const positions = {};
|
|
10049
|
+
states.forEach((state, i) => {
|
|
10050
|
+
const angle = 2 * Math.PI * i / Math.max(states.length, 1) - Math.PI / 2;
|
|
10051
|
+
positions[state] = { x: cx + radius * Math.cos(angle), y: cy + radius * Math.sin(angle) };
|
|
10052
|
+
});
|
|
10053
|
+
return positions;
|
|
10054
|
+
}
|
|
10055
|
+
function StateGraph({
|
|
10056
|
+
states,
|
|
10057
|
+
transitions = [],
|
|
10058
|
+
currentState,
|
|
10059
|
+
selectedState,
|
|
10060
|
+
addingFrom,
|
|
10061
|
+
initialState,
|
|
10062
|
+
width = 500,
|
|
10063
|
+
height = 400,
|
|
10064
|
+
nodeClickEvent,
|
|
10065
|
+
className
|
|
10066
|
+
}) {
|
|
10067
|
+
const eventBus = useEventBus();
|
|
10068
|
+
const nodes = states ?? [];
|
|
10069
|
+
const positions = React96.useMemo(() => layoutStates(nodes, width, height), [nodes, width, height]);
|
|
10070
|
+
return /* @__PURE__ */ jsxs(
|
|
10071
|
+
Box,
|
|
10072
|
+
{
|
|
10073
|
+
position: "relative",
|
|
10074
|
+
className: cn("rounded-container border border-border bg-background overflow-hidden", className),
|
|
10075
|
+
style: { width, height },
|
|
10076
|
+
children: [
|
|
10077
|
+
/* @__PURE__ */ jsxs("svg", { width, height, className: "absolute inset-0", style: { pointerEvents: "none" }, children: [
|
|
10078
|
+
/* @__PURE__ */ jsxs("defs", { children: [
|
|
10079
|
+
/* @__PURE__ */ jsx("marker", { id: "arrowhead", markerWidth: "10", markerHeight: "7", refX: "10", refY: "3.5", orient: "auto", children: /* @__PURE__ */ jsx("polygon", { points: "0 0, 10 3.5, 0 7", fill: "var(--color-border)" }) }),
|
|
10080
|
+
/* @__PURE__ */ jsx("marker", { id: "arrowhead-active", markerWidth: "10", markerHeight: "7", refX: "10", refY: "3.5", orient: "auto", children: /* @__PURE__ */ jsx("polygon", { points: "0 0, 10 3.5, 0 7", fill: "var(--color-primary)" }) })
|
|
10081
|
+
] }),
|
|
10082
|
+
transitions.map((tr, i) => {
|
|
10083
|
+
const fromPos = positions[tr.from];
|
|
10084
|
+
const toPos = positions[tr.to];
|
|
10085
|
+
if (!fromPos || !toPos) return null;
|
|
10086
|
+
return /* @__PURE__ */ jsx(
|
|
10087
|
+
TransitionArrow,
|
|
10088
|
+
{
|
|
10089
|
+
from: fromPos,
|
|
10090
|
+
to: toPos,
|
|
10091
|
+
eventLabel: tr.event,
|
|
10092
|
+
guardHint: tr.guardHint,
|
|
10093
|
+
isActive: tr.from === currentState
|
|
10094
|
+
},
|
|
10095
|
+
`${tr.from}-${tr.event}-${tr.to}-${i}`
|
|
10096
|
+
);
|
|
10097
|
+
})
|
|
10098
|
+
] }),
|
|
10099
|
+
nodes.map((state) => {
|
|
10100
|
+
const pos = positions[state];
|
|
10101
|
+
if (!pos) return null;
|
|
10102
|
+
return /* @__PURE__ */ jsx(
|
|
10103
|
+
StateNode,
|
|
10104
|
+
{
|
|
10105
|
+
name: state,
|
|
10106
|
+
position: pos,
|
|
10107
|
+
isCurrent: state === currentState,
|
|
10108
|
+
isSelected: state === selectedState || state === addingFrom,
|
|
10109
|
+
isInitial: state === initialState,
|
|
10110
|
+
onClick: nodeClickEvent ? () => eventBus.emit(`UI:${nodeClickEvent}`, { stateId: state }) : void 0
|
|
10111
|
+
},
|
|
10112
|
+
state
|
|
10113
|
+
);
|
|
10114
|
+
})
|
|
10115
|
+
]
|
|
10116
|
+
}
|
|
10117
|
+
);
|
|
10118
|
+
}
|
|
10119
|
+
var init_StateGraph = __esm({
|
|
10120
|
+
"components/game/2d/molecules/StateGraph.tsx"() {
|
|
10121
|
+
init_atoms();
|
|
10122
|
+
init_cn();
|
|
10123
|
+
init_useEventBus();
|
|
10124
|
+
init_StateNode();
|
|
10125
|
+
init_TransitionArrow();
|
|
10126
|
+
}
|
|
10127
|
+
});
|
|
9920
10128
|
function useCamera() {
|
|
9921
10129
|
const cameraRef = useRef({ x: 0, y: 0, zoom: 1 });
|
|
9922
10130
|
const targetCameraRef = useRef(null);
|
|
@@ -11335,7 +11543,7 @@ function LinearView({
|
|
|
11335
11543
|
/* @__PURE__ */ jsx(HStack, { className: "flex-wrap items-center", gap: "xs", children: trait.states.map((state, i) => {
|
|
11336
11544
|
const isDone = i < currentIdx;
|
|
11337
11545
|
const isCurrent = i === currentIdx;
|
|
11338
|
-
return /* @__PURE__ */ jsxs(
|
|
11546
|
+
return /* @__PURE__ */ jsxs(React96__default.Fragment, { children: [
|
|
11339
11547
|
i > 0 && /* @__PURE__ */ jsx(
|
|
11340
11548
|
Typography,
|
|
11341
11549
|
{
|
|
@@ -11863,7 +12071,7 @@ function SequenceBar({
|
|
|
11863
12071
|
onSlotRemove(index);
|
|
11864
12072
|
}, [onSlotRemove, playing]);
|
|
11865
12073
|
const paddedSlots = Array.from({ length: maxSlots }, (_, i) => slots[i]);
|
|
11866
|
-
return /* @__PURE__ */ jsx(HStack, { className: cn("items-center", className), gap: "sm", children: paddedSlots.map((slot, i) => /* @__PURE__ */ jsxs(
|
|
12074
|
+
return /* @__PURE__ */ jsx(HStack, { className: cn("items-center", className), gap: "sm", children: paddedSlots.map((slot, i) => /* @__PURE__ */ jsxs(React96__default.Fragment, { children: [
|
|
11867
12075
|
i > 0 && /* @__PURE__ */ jsx(
|
|
11868
12076
|
Typography,
|
|
11869
12077
|
{
|
|
@@ -12604,130 +12812,6 @@ var init_EventHandlerBoard = __esm({
|
|
|
12604
12812
|
EventHandlerBoard.displayName = "EventHandlerBoard";
|
|
12605
12813
|
}
|
|
12606
12814
|
});
|
|
12607
|
-
function StateNode({
|
|
12608
|
-
name,
|
|
12609
|
-
isCurrent = false,
|
|
12610
|
-
isSelected = false,
|
|
12611
|
-
isInitial = false,
|
|
12612
|
-
position,
|
|
12613
|
-
onClick,
|
|
12614
|
-
className
|
|
12615
|
-
}) {
|
|
12616
|
-
return /* @__PURE__ */ jsx(
|
|
12617
|
-
Box,
|
|
12618
|
-
{
|
|
12619
|
-
position: "absolute",
|
|
12620
|
-
display: "flex",
|
|
12621
|
-
className: cn(
|
|
12622
|
-
"items-center justify-center rounded-pill border-3 transition-all cursor-pointer select-none",
|
|
12623
|
-
"min-w-[80px] h-[80px] px-3",
|
|
12624
|
-
isCurrent && "bg-primary/20 border-primary shadow-lg shadow-primary/30 scale-110",
|
|
12625
|
-
isSelected && !isCurrent && "bg-accent/20 border-accent ring-2 ring-accent/50",
|
|
12626
|
-
!isCurrent && !isSelected && "bg-card border-border hover:border-muted-foreground hover:scale-105",
|
|
12627
|
-
className
|
|
12628
|
-
),
|
|
12629
|
-
style: {
|
|
12630
|
-
left: position.x,
|
|
12631
|
-
top: position.y,
|
|
12632
|
-
transform: "translate(-50%, -50%)"
|
|
12633
|
-
},
|
|
12634
|
-
onClick,
|
|
12635
|
-
children: /* @__PURE__ */ jsxs(Box, { className: "text-center", children: [
|
|
12636
|
-
isInitial && /* @__PURE__ */ jsx(Typography, { variant: "caption", className: "text-muted-foreground text-xs block", children: "\u25B6 start" }),
|
|
12637
|
-
/* @__PURE__ */ jsx(
|
|
12638
|
-
Typography,
|
|
12639
|
-
{
|
|
12640
|
-
variant: "body2",
|
|
12641
|
-
className: cn(
|
|
12642
|
-
"font-bold whitespace-nowrap",
|
|
12643
|
-
isCurrent ? "text-primary" : "text-foreground"
|
|
12644
|
-
),
|
|
12645
|
-
children: name
|
|
12646
|
-
}
|
|
12647
|
-
)
|
|
12648
|
-
] })
|
|
12649
|
-
}
|
|
12650
|
-
);
|
|
12651
|
-
}
|
|
12652
|
-
var init_StateNode = __esm({
|
|
12653
|
-
"components/game/2d/organisms/StateNode.tsx"() {
|
|
12654
|
-
init_atoms();
|
|
12655
|
-
init_cn();
|
|
12656
|
-
StateNode.displayName = "StateNode";
|
|
12657
|
-
}
|
|
12658
|
-
});
|
|
12659
|
-
function TransitionArrow({
|
|
12660
|
-
from,
|
|
12661
|
-
to,
|
|
12662
|
-
eventLabel,
|
|
12663
|
-
guardHint,
|
|
12664
|
-
isActive = false,
|
|
12665
|
-
onClick,
|
|
12666
|
-
className
|
|
12667
|
-
}) {
|
|
12668
|
-
const dx = to.x - from.x;
|
|
12669
|
-
const dy = to.y - from.y;
|
|
12670
|
-
const dist = Math.sqrt(dx * dx + dy * dy);
|
|
12671
|
-
if (dist === 0) return /* @__PURE__ */ jsx(Fragment, {});
|
|
12672
|
-
const nx = dx / dist;
|
|
12673
|
-
const ny = dy / dist;
|
|
12674
|
-
const startX = from.x + nx * NODE_RADIUS;
|
|
12675
|
-
const startY = from.y + ny * NODE_RADIUS;
|
|
12676
|
-
const endX = to.x - nx * NODE_RADIUS;
|
|
12677
|
-
const endY = to.y - ny * NODE_RADIUS;
|
|
12678
|
-
const midX = (startX + endX) / 2;
|
|
12679
|
-
const midY = (startY + endY) / 2;
|
|
12680
|
-
const perpX = -ny * 20;
|
|
12681
|
-
const perpY = nx * 20;
|
|
12682
|
-
const ctrlX = midX + perpX;
|
|
12683
|
-
const ctrlY = midY + perpY;
|
|
12684
|
-
const path = `M ${startX} ${startY} Q ${ctrlX} ${ctrlY} ${endX} ${endY}`;
|
|
12685
|
-
return /* @__PURE__ */ jsxs("g", { className: cn("cursor-pointer", className), onClick, children: [
|
|
12686
|
-
/* @__PURE__ */ jsx(
|
|
12687
|
-
"path",
|
|
12688
|
-
{
|
|
12689
|
-
d: path,
|
|
12690
|
-
fill: "none",
|
|
12691
|
-
stroke: isActive ? "var(--color-primary)" : "var(--color-border)",
|
|
12692
|
-
strokeWidth: isActive ? 3 : 2,
|
|
12693
|
-
markerEnd: isActive ? "url(#arrowhead-active)" : "url(#arrowhead)"
|
|
12694
|
-
}
|
|
12695
|
-
),
|
|
12696
|
-
/* @__PURE__ */ jsx(
|
|
12697
|
-
"text",
|
|
12698
|
-
{
|
|
12699
|
-
x: ctrlX,
|
|
12700
|
-
y: ctrlY - 8,
|
|
12701
|
-
textAnchor: "middle",
|
|
12702
|
-
fill: isActive ? "var(--color-primary)" : "var(--color-foreground)",
|
|
12703
|
-
fontSize: 12,
|
|
12704
|
-
fontWeight: isActive ? "bold" : "normal",
|
|
12705
|
-
className: "select-none",
|
|
12706
|
-
children: eventLabel
|
|
12707
|
-
}
|
|
12708
|
-
),
|
|
12709
|
-
guardHint && /* @__PURE__ */ jsx(
|
|
12710
|
-
"text",
|
|
12711
|
-
{
|
|
12712
|
-
x: ctrlX,
|
|
12713
|
-
y: ctrlY + 6,
|
|
12714
|
-
textAnchor: "middle",
|
|
12715
|
-
fill: "var(--color-warning)",
|
|
12716
|
-
fontSize: 10,
|
|
12717
|
-
className: "select-none",
|
|
12718
|
-
children: "\u26A0 " + guardHint
|
|
12719
|
-
}
|
|
12720
|
-
)
|
|
12721
|
-
] });
|
|
12722
|
-
}
|
|
12723
|
-
var NODE_RADIUS;
|
|
12724
|
-
var init_TransitionArrow = __esm({
|
|
12725
|
-
"components/game/2d/organisms/TransitionArrow.tsx"() {
|
|
12726
|
-
init_cn();
|
|
12727
|
-
NODE_RADIUS = 40;
|
|
12728
|
-
TransitionArrow.displayName = "TransitionArrow";
|
|
12729
|
-
}
|
|
12730
|
-
});
|
|
12731
12815
|
function VariablePanel({
|
|
12732
12816
|
entityName,
|
|
12733
12817
|
variables,
|
|
@@ -12813,7 +12897,7 @@ var init_StateJsonView = __esm({
|
|
|
12813
12897
|
StateJsonView.displayName = "StateJsonView";
|
|
12814
12898
|
}
|
|
12815
12899
|
});
|
|
12816
|
-
function
|
|
12900
|
+
function layoutStates2(states, width, height) {
|
|
12817
12901
|
const cx = width / 2;
|
|
12818
12902
|
const cy = height / 2;
|
|
12819
12903
|
const radius = Math.min(cx, cy) - 60;
|
|
@@ -12881,7 +12965,7 @@ function StateArchitectBoard({
|
|
|
12881
12965
|
}, []);
|
|
12882
12966
|
const GRAPH_W = 500;
|
|
12883
12967
|
const GRAPH_H = 400;
|
|
12884
|
-
const positions = useMemo(() =>
|
|
12968
|
+
const positions = useMemo(() => layoutStates2(entityStates, GRAPH_W, GRAPH_H), [entityStates]);
|
|
12885
12969
|
const handleStateClick = useCallback((state) => {
|
|
12886
12970
|
if (isTesting) return;
|
|
12887
12971
|
if (addingFrom) {
|
|
@@ -14863,7 +14947,7 @@ var init_ErrorBoundary = __esm({
|
|
|
14863
14947
|
}
|
|
14864
14948
|
);
|
|
14865
14949
|
};
|
|
14866
|
-
ErrorBoundary = class extends
|
|
14950
|
+
ErrorBoundary = class extends React96__default.Component {
|
|
14867
14951
|
constructor(props) {
|
|
14868
14952
|
super(props);
|
|
14869
14953
|
__publicField(this, "reset", () => {
|
|
@@ -15145,7 +15229,7 @@ var init_Container = __esm({
|
|
|
15145
15229
|
as: Component = "div"
|
|
15146
15230
|
}) => {
|
|
15147
15231
|
const resolvedSize = maxWidth ?? size ?? "lg";
|
|
15148
|
-
return
|
|
15232
|
+
return React96__default.createElement(
|
|
15149
15233
|
Component,
|
|
15150
15234
|
{
|
|
15151
15235
|
className: cn(
|
|
@@ -17813,7 +17897,7 @@ var init_CodeBlock = __esm({
|
|
|
17813
17897
|
DIFF_STYLE_FALLBACK = { bg: "", prefix: " ", text: "text-foreground" };
|
|
17814
17898
|
LINE_PROPS_FN = (n) => ({ "data-line": String(n - 1) });
|
|
17815
17899
|
HIDDEN_LINE_NUMBERS = { display: "none" };
|
|
17816
|
-
CodeBlock =
|
|
17900
|
+
CodeBlock = React96__default.memo(
|
|
17817
17901
|
({
|
|
17818
17902
|
code: rawCode,
|
|
17819
17903
|
language = "text",
|
|
@@ -18400,7 +18484,7 @@ var init_MarkdownContent = __esm({
|
|
|
18400
18484
|
init_Box();
|
|
18401
18485
|
init_CodeBlock();
|
|
18402
18486
|
init_cn();
|
|
18403
|
-
MarkdownContent =
|
|
18487
|
+
MarkdownContent = React96__default.memo(
|
|
18404
18488
|
({ content, direction = "ltr", className }) => {
|
|
18405
18489
|
const { t: _t } = useTranslate();
|
|
18406
18490
|
const safeContent = typeof content === "string" ? content : String(content ?? "");
|
|
@@ -19677,7 +19761,7 @@ var init_StateMachineView = __esm({
|
|
|
19677
19761
|
style: { top: title ? 30 : 0 },
|
|
19678
19762
|
children: [
|
|
19679
19763
|
entity && /* @__PURE__ */ jsx(EntityBox, { entity, config }),
|
|
19680
|
-
states.map((state) => renderStateNode ? /* @__PURE__ */ jsx(
|
|
19764
|
+
states.map((state) => renderStateNode ? /* @__PURE__ */ jsx(React96__default.Fragment, { children: renderStateNode(state, config) }, state.id) : /* @__PURE__ */ jsx(
|
|
19681
19765
|
StateNode2,
|
|
19682
19766
|
{
|
|
19683
19767
|
state,
|
|
@@ -25234,8 +25318,8 @@ var init_Menu = __esm({
|
|
|
25234
25318
|
"bottom-end": "bottom-start"
|
|
25235
25319
|
};
|
|
25236
25320
|
const effectivePosition = direction === "rtl" ? rtlMirror[position] ?? position : position;
|
|
25237
|
-
const triggerChild =
|
|
25238
|
-
const triggerElement =
|
|
25321
|
+
const triggerChild = React96__default.isValidElement(trigger) ? trigger : /* @__PURE__ */ jsx(Typography, { variant: "small", as: "span", children: trigger });
|
|
25322
|
+
const triggerElement = React96__default.cloneElement(
|
|
25239
25323
|
triggerChild,
|
|
25240
25324
|
{
|
|
25241
25325
|
ref: triggerRef,
|
|
@@ -25330,14 +25414,14 @@ function useDataDnd(args) {
|
|
|
25330
25414
|
const isZone = Boolean(dragGroup || accepts || sortable);
|
|
25331
25415
|
const enabled = isZone || Boolean(dndRoot);
|
|
25332
25416
|
const eventBus = useEventBus();
|
|
25333
|
-
const parentRoot =
|
|
25417
|
+
const parentRoot = React96__default.useContext(RootCtx);
|
|
25334
25418
|
const isRoot = enabled && parentRoot === null;
|
|
25335
|
-
const zoneId =
|
|
25419
|
+
const zoneId = React96__default.useId();
|
|
25336
25420
|
const ownGroup = dragGroup ?? accepts ?? zoneId;
|
|
25337
|
-
const [optimisticOrders, setOptimisticOrders] =
|
|
25338
|
-
const optimisticOrdersRef =
|
|
25421
|
+
const [optimisticOrders, setOptimisticOrders] = React96__default.useState(() => /* @__PURE__ */ new Map());
|
|
25422
|
+
const optimisticOrdersRef = React96__default.useRef(optimisticOrders);
|
|
25339
25423
|
optimisticOrdersRef.current = optimisticOrders;
|
|
25340
|
-
const clearOptimisticOrder =
|
|
25424
|
+
const clearOptimisticOrder = React96__default.useCallback((group) => {
|
|
25341
25425
|
setOptimisticOrders((prev) => {
|
|
25342
25426
|
if (!prev.has(group)) return prev;
|
|
25343
25427
|
const next = new Map(prev);
|
|
@@ -25362,7 +25446,7 @@ function useDataDnd(args) {
|
|
|
25362
25446
|
const raw = it[dndItemIdField];
|
|
25363
25447
|
return raw != null ? String(raw) : `__idx_${idx}`;
|
|
25364
25448
|
}).join("|");
|
|
25365
|
-
const itemIds =
|
|
25449
|
+
const itemIds = React96__default.useMemo(
|
|
25366
25450
|
() => orderedItems.map((it, idx) => {
|
|
25367
25451
|
const raw = it[dndItemIdField];
|
|
25368
25452
|
return raw != null ? String(raw) : `__idx_${idx}`;
|
|
@@ -25373,7 +25457,7 @@ function useDataDnd(args) {
|
|
|
25373
25457
|
const raw = it[dndItemIdField];
|
|
25374
25458
|
return raw != null ? String(raw) : `__${idx}`;
|
|
25375
25459
|
}).join("|");
|
|
25376
|
-
|
|
25460
|
+
React96__default.useEffect(() => {
|
|
25377
25461
|
const root = isRoot ? null : parentRoot;
|
|
25378
25462
|
if (root) {
|
|
25379
25463
|
root.clearOptimisticOrder(ownGroup);
|
|
@@ -25381,20 +25465,20 @@ function useDataDnd(args) {
|
|
|
25381
25465
|
clearOptimisticOrder(ownGroup);
|
|
25382
25466
|
}
|
|
25383
25467
|
}, [itemsContentSig, ownGroup]);
|
|
25384
|
-
const zonesRef =
|
|
25385
|
-
const registerZone =
|
|
25468
|
+
const zonesRef = React96__default.useRef(/* @__PURE__ */ new Map());
|
|
25469
|
+
const registerZone = React96__default.useCallback((zoneId2, meta2) => {
|
|
25386
25470
|
zonesRef.current.set(zoneId2, meta2);
|
|
25387
25471
|
}, []);
|
|
25388
|
-
const unregisterZone =
|
|
25472
|
+
const unregisterZone = React96__default.useCallback((zoneId2) => {
|
|
25389
25473
|
zonesRef.current.delete(zoneId2);
|
|
25390
25474
|
}, []);
|
|
25391
|
-
const [activeDrag, setActiveDrag] =
|
|
25392
|
-
const [overZoneGroup, setOverZoneGroup] =
|
|
25393
|
-
const meta =
|
|
25475
|
+
const [activeDrag, setActiveDrag] = React96__default.useState(null);
|
|
25476
|
+
const [overZoneGroup, setOverZoneGroup] = React96__default.useState(null);
|
|
25477
|
+
const meta = React96__default.useMemo(
|
|
25394
25478
|
() => ({ group: ownGroup, dropEvent, reorderEvent, positionEvent, itemIds, rawItems: items, idField: dndItemIdField }),
|
|
25395
25479
|
[ownGroup, dropEvent, reorderEvent, positionEvent, itemIds, items, dndItemIdField]
|
|
25396
25480
|
);
|
|
25397
|
-
|
|
25481
|
+
React96__default.useEffect(() => {
|
|
25398
25482
|
const target = isRoot ? null : parentRoot;
|
|
25399
25483
|
if (!target) {
|
|
25400
25484
|
zonesRef.current.set(zoneId, meta);
|
|
@@ -25413,7 +25497,7 @@ function useDataDnd(args) {
|
|
|
25413
25497
|
}, [parentRoot, isRoot, zoneId, meta]);
|
|
25414
25498
|
const sensors = useAlmadarDndSensors(true);
|
|
25415
25499
|
const collisionDetection = almadarDndCollisionDetection;
|
|
25416
|
-
const findZoneByItem =
|
|
25500
|
+
const findZoneByItem = React96__default.useCallback(
|
|
25417
25501
|
(id) => {
|
|
25418
25502
|
for (const z of zonesRef.current.values()) {
|
|
25419
25503
|
if (z.itemIds.includes(id)) return z;
|
|
@@ -25422,7 +25506,7 @@ function useDataDnd(args) {
|
|
|
25422
25506
|
},
|
|
25423
25507
|
[]
|
|
25424
25508
|
);
|
|
25425
|
-
|
|
25509
|
+
React96__default.useCallback(
|
|
25426
25510
|
(group) => {
|
|
25427
25511
|
for (const z of zonesRef.current.values()) {
|
|
25428
25512
|
if (z.group === group) return z;
|
|
@@ -25431,7 +25515,7 @@ function useDataDnd(args) {
|
|
|
25431
25515
|
},
|
|
25432
25516
|
[]
|
|
25433
25517
|
);
|
|
25434
|
-
const handleDragEnd =
|
|
25518
|
+
const handleDragEnd = React96__default.useCallback(
|
|
25435
25519
|
(event) => {
|
|
25436
25520
|
const { active, over } = event;
|
|
25437
25521
|
const activeIdStr = String(active.id);
|
|
@@ -25522,8 +25606,8 @@ function useDataDnd(args) {
|
|
|
25522
25606
|
},
|
|
25523
25607
|
[eventBus]
|
|
25524
25608
|
);
|
|
25525
|
-
const sortableData =
|
|
25526
|
-
const SortableItem =
|
|
25609
|
+
const sortableData = React96__default.useMemo(() => ({ dndGroup: ownGroup }), [ownGroup]);
|
|
25610
|
+
const SortableItem = React96__default.useCallback(
|
|
25527
25611
|
({ id, children }) => {
|
|
25528
25612
|
const {
|
|
25529
25613
|
attributes,
|
|
@@ -25563,7 +25647,7 @@ function useDataDnd(args) {
|
|
|
25563
25647
|
id: droppableId,
|
|
25564
25648
|
data: sortableData
|
|
25565
25649
|
});
|
|
25566
|
-
const ctx =
|
|
25650
|
+
const ctx = React96__default.useContext(RootCtx);
|
|
25567
25651
|
const activeDrag2 = ctx?.activeDrag ?? null;
|
|
25568
25652
|
const overZoneGroup2 = ctx?.overZoneGroup ?? null;
|
|
25569
25653
|
const isThisZoneOver = overZoneGroup2 === ownGroup;
|
|
@@ -25578,7 +25662,7 @@ function useDataDnd(args) {
|
|
|
25578
25662
|
showForeignPlaceholder,
|
|
25579
25663
|
ctxAvailable: ctx != null
|
|
25580
25664
|
});
|
|
25581
|
-
|
|
25665
|
+
React96__default.useEffect(() => {
|
|
25582
25666
|
dndLog.info("dropzone:isOver:change", { droppableId, group: ownGroup, isOver, isThisZoneOver, showForeignPlaceholder, activeDragSourceGroup: activeDrag2?.sourceGroup ?? null });
|
|
25583
25667
|
}, [droppableId, isOver, isThisZoneOver, showForeignPlaceholder]);
|
|
25584
25668
|
return /* @__PURE__ */ jsx(
|
|
@@ -25592,11 +25676,11 @@ function useDataDnd(args) {
|
|
|
25592
25676
|
}
|
|
25593
25677
|
);
|
|
25594
25678
|
};
|
|
25595
|
-
const rootContextValue =
|
|
25679
|
+
const rootContextValue = React96__default.useMemo(
|
|
25596
25680
|
() => ({ registerZone, unregisterZone, activeDrag, overZoneGroup, optimisticOrders, clearOptimisticOrder }),
|
|
25597
25681
|
[registerZone, unregisterZone, activeDrag, overZoneGroup, optimisticOrders, clearOptimisticOrder]
|
|
25598
25682
|
);
|
|
25599
|
-
const handleDragStart =
|
|
25683
|
+
const handleDragStart = React96__default.useCallback((event) => {
|
|
25600
25684
|
const sourceZone = findZoneByItem(event.active.id);
|
|
25601
25685
|
const rect = event.active.rect.current.initial;
|
|
25602
25686
|
const height = rect?.height && rect.height > 0 ? rect.height : 64;
|
|
@@ -25615,7 +25699,7 @@ function useDataDnd(args) {
|
|
|
25615
25699
|
isRoot
|
|
25616
25700
|
});
|
|
25617
25701
|
}, [findZoneByItem, isRoot, zoneId]);
|
|
25618
|
-
const handleDragOver =
|
|
25702
|
+
const handleDragOver = React96__default.useCallback((event) => {
|
|
25619
25703
|
const { active, over } = event;
|
|
25620
25704
|
const overData = over?.data?.current;
|
|
25621
25705
|
const overGroup = overData?.dndGroup ?? null;
|
|
@@ -25685,7 +25769,7 @@ function useDataDnd(args) {
|
|
|
25685
25769
|
return next;
|
|
25686
25770
|
});
|
|
25687
25771
|
}, []);
|
|
25688
|
-
const handleDragCancel =
|
|
25772
|
+
const handleDragCancel = React96__default.useCallback((event) => {
|
|
25689
25773
|
setActiveDrag(null);
|
|
25690
25774
|
setOverZoneGroup(null);
|
|
25691
25775
|
dndLog.warn("dragCancel", {
|
|
@@ -25693,12 +25777,12 @@ function useDataDnd(args) {
|
|
|
25693
25777
|
reason: "dnd-kit cancelled the drag (escape key, pointer interrupted, or external)"
|
|
25694
25778
|
});
|
|
25695
25779
|
}, []);
|
|
25696
|
-
const handleDragEndWithCleanup =
|
|
25780
|
+
const handleDragEndWithCleanup = React96__default.useCallback((event) => {
|
|
25697
25781
|
handleDragEnd(event);
|
|
25698
25782
|
setActiveDrag(null);
|
|
25699
25783
|
setOverZoneGroup(null);
|
|
25700
25784
|
}, [handleDragEnd]);
|
|
25701
|
-
const wrapContainer =
|
|
25785
|
+
const wrapContainer = React96__default.useCallback(
|
|
25702
25786
|
(children) => {
|
|
25703
25787
|
if (!enabled) return children;
|
|
25704
25788
|
const strategy = layout === "grid" ? rectSortingStrategy : verticalListSortingStrategy;
|
|
@@ -25752,7 +25836,7 @@ var init_useDataDnd = __esm({
|
|
|
25752
25836
|
init_useAlmadarDndCollision();
|
|
25753
25837
|
init_Box();
|
|
25754
25838
|
dndLog = createLogger("almadar:ui:dnd");
|
|
25755
|
-
RootCtx =
|
|
25839
|
+
RootCtx = React96__default.createContext(null);
|
|
25756
25840
|
}
|
|
25757
25841
|
});
|
|
25758
25842
|
function renderIconInput(icon, props) {
|
|
@@ -26278,7 +26362,7 @@ function DataList({
|
|
|
26278
26362
|
}) {
|
|
26279
26363
|
const eventBus = useEventBus();
|
|
26280
26364
|
const { t } = useTranslate();
|
|
26281
|
-
const [visibleCount, setVisibleCount] =
|
|
26365
|
+
const [visibleCount, setVisibleCount] = React96__default.useState(pageSize || Infinity);
|
|
26282
26366
|
const fieldDefs = fields ?? columns ?? [];
|
|
26283
26367
|
const allDataRaw = Array.isArray(entity) ? entity : entity ? [entity] : [];
|
|
26284
26368
|
const dnd = useDataDnd({
|
|
@@ -26297,7 +26381,7 @@ function DataList({
|
|
|
26297
26381
|
const data = pageSize > 0 ? allData.slice(0, visibleCount) : allData;
|
|
26298
26382
|
const hasMoreLocal = pageSize > 0 && visibleCount < allData.length;
|
|
26299
26383
|
const hasRenderProp = typeof children === "function";
|
|
26300
|
-
|
|
26384
|
+
React96__default.useEffect(() => {
|
|
26301
26385
|
const renderItemTypeOf = typeof schemaRenderItem;
|
|
26302
26386
|
const childrenTypeOf = typeof children;
|
|
26303
26387
|
if (data.length > 0 && !hasRenderProp) {
|
|
@@ -26401,7 +26485,7 @@ function DataList({
|
|
|
26401
26485
|
const items2 = [...data];
|
|
26402
26486
|
const groups2 = groupBy ? groupData(items2, groupBy) : [{ label: "", items: items2 }];
|
|
26403
26487
|
const contentField = titleField?.name ?? fieldDefs[0]?.name ?? "";
|
|
26404
|
-
return /* @__PURE__ */ jsx(VStack, { gap: "sm", className: cn("py-2", className), children: groups2.map((group, gi) => /* @__PURE__ */ jsxs(
|
|
26488
|
+
return /* @__PURE__ */ jsx(VStack, { gap: "sm", className: cn("py-2", className), children: groups2.map((group, gi) => /* @__PURE__ */ jsxs(React96__default.Fragment, { children: [
|
|
26405
26489
|
group.label && /* @__PURE__ */ jsx(Divider, { label: group.label, className: "my-2" }),
|
|
26406
26490
|
group.items.map((itemData, index) => {
|
|
26407
26491
|
const id = itemData.id || `${gi}-${index}`;
|
|
@@ -26542,7 +26626,7 @@ function DataList({
|
|
|
26542
26626
|
className
|
|
26543
26627
|
),
|
|
26544
26628
|
children: [
|
|
26545
|
-
groups.map((group, gi) => /* @__PURE__ */ jsxs(
|
|
26629
|
+
groups.map((group, gi) => /* @__PURE__ */ jsxs(React96__default.Fragment, { children: [
|
|
26546
26630
|
group.label && /* @__PURE__ */ jsx(Divider, { label: group.label, className: gi > 0 ? "mt-4" : "mt-0" }),
|
|
26547
26631
|
group.items.map(
|
|
26548
26632
|
(itemData, index) => renderItem(itemData, index, gi === groups.length - 1 && index === group.items.length - 1)
|
|
@@ -26627,7 +26711,7 @@ var init_FormSection = __esm({
|
|
|
26627
26711
|
columns = 1,
|
|
26628
26712
|
className
|
|
26629
26713
|
}) => {
|
|
26630
|
-
const [collapsed, setCollapsed] =
|
|
26714
|
+
const [collapsed, setCollapsed] = React96__default.useState(defaultCollapsed);
|
|
26631
26715
|
const { t } = useTranslate();
|
|
26632
26716
|
const eventBus = useEventBus();
|
|
26633
26717
|
const gridClass = {
|
|
@@ -26635,7 +26719,7 @@ var init_FormSection = __esm({
|
|
|
26635
26719
|
2: "grid-cols-1 md:grid-cols-2",
|
|
26636
26720
|
3: "grid-cols-1 md:grid-cols-2 lg:grid-cols-3"
|
|
26637
26721
|
}[columns];
|
|
26638
|
-
|
|
26722
|
+
React96__default.useCallback(() => {
|
|
26639
26723
|
if (collapsible) {
|
|
26640
26724
|
setCollapsed((prev) => !prev);
|
|
26641
26725
|
eventBus.emit("UI:TOGGLE_COLLAPSE", { collapsed: !collapsed });
|
|
@@ -27521,7 +27605,7 @@ var init_Flex = __esm({
|
|
|
27521
27605
|
flexStyle.flexBasis = typeof basis === "number" ? `${basis}px` : basis;
|
|
27522
27606
|
}
|
|
27523
27607
|
}
|
|
27524
|
-
return
|
|
27608
|
+
return React96__default.createElement(Component, {
|
|
27525
27609
|
className: cn(
|
|
27526
27610
|
inline ? "inline-flex" : "flex",
|
|
27527
27611
|
directionStyles[direction],
|
|
@@ -27640,7 +27724,7 @@ var init_Grid = __esm({
|
|
|
27640
27724
|
as: Component = "div"
|
|
27641
27725
|
}) => {
|
|
27642
27726
|
const mergedStyle = rows2 ? { gridTemplateRows: `repeat(${rows2}, minmax(0, 1fr))`, ...style } : style;
|
|
27643
|
-
return
|
|
27727
|
+
return React96__default.createElement(
|
|
27644
27728
|
Component,
|
|
27645
27729
|
{
|
|
27646
27730
|
className: cn(
|
|
@@ -27836,9 +27920,9 @@ var init_Popover = __esm({
|
|
|
27836
27920
|
onMouseLeave: handleClose,
|
|
27837
27921
|
onPointerDown: tapTriggerProps.onPointerDown
|
|
27838
27922
|
};
|
|
27839
|
-
const childElement =
|
|
27923
|
+
const childElement = React96__default.isValidElement(children) ? children : /* @__PURE__ */ jsx("span", { children });
|
|
27840
27924
|
const childPointerDown = childElement.props.onPointerDown;
|
|
27841
|
-
const triggerElement =
|
|
27925
|
+
const triggerElement = React96__default.cloneElement(
|
|
27842
27926
|
childElement,
|
|
27843
27927
|
{
|
|
27844
27928
|
ref: triggerRef,
|
|
@@ -28440,9 +28524,9 @@ var init_Tooltip = __esm({
|
|
|
28440
28524
|
if (hideTimeoutRef.current) clearTimeout(hideTimeoutRef.current);
|
|
28441
28525
|
};
|
|
28442
28526
|
}, []);
|
|
28443
|
-
const triggerElement =
|
|
28527
|
+
const triggerElement = React96__default.isValidElement(children) ? children : /* @__PURE__ */ jsx("span", { children });
|
|
28444
28528
|
const childPointerDown = triggerElement.props.onPointerDown;
|
|
28445
|
-
const trigger =
|
|
28529
|
+
const trigger = React96__default.cloneElement(triggerElement, {
|
|
28446
28530
|
ref: triggerRef,
|
|
28447
28531
|
onMouseEnter: handleMouseEnter,
|
|
28448
28532
|
onMouseLeave: handleMouseLeave,
|
|
@@ -28532,7 +28616,7 @@ var init_WizardProgress = __esm({
|
|
|
28532
28616
|
children: /* @__PURE__ */ jsx("div", { className: "flex items-center gap-2", children: normalizedSteps.map((step, index) => {
|
|
28533
28617
|
const isActive = index === currentStep;
|
|
28534
28618
|
const isCompleted = index < currentStep;
|
|
28535
|
-
return /* @__PURE__ */ jsxs(
|
|
28619
|
+
return /* @__PURE__ */ jsxs(React96__default.Fragment, { children: [
|
|
28536
28620
|
/* @__PURE__ */ jsx(
|
|
28537
28621
|
"button",
|
|
28538
28622
|
{
|
|
@@ -30092,7 +30176,7 @@ var init_MapView = __esm({
|
|
|
30092
30176
|
shadowSize: [41, 41]
|
|
30093
30177
|
});
|
|
30094
30178
|
L.Marker.prototype.options.icon = defaultIcon;
|
|
30095
|
-
const { useEffect: useEffect67, useRef: useRef65, useCallback: useCallback99, useState: useState97 } =
|
|
30179
|
+
const { useEffect: useEffect67, useRef: useRef65, useCallback: useCallback99, useState: useState97 } = React96__default;
|
|
30096
30180
|
const { Typography: Typography2 } = await Promise.resolve().then(() => (init_Typography(), Typography_exports));
|
|
30097
30181
|
const { useEventBus: useEventBus2 } = await Promise.resolve().then(() => (init_useEventBus(), useEventBus_exports));
|
|
30098
30182
|
function MapUpdater({ centerLat, centerLng, zoom }) {
|
|
@@ -31007,8 +31091,8 @@ function TableView({
|
|
|
31007
31091
|
}) {
|
|
31008
31092
|
const eventBus = useEventBus();
|
|
31009
31093
|
const { t } = useTranslate();
|
|
31010
|
-
const [visibleCount, setVisibleCount] =
|
|
31011
|
-
const [localSelected, setLocalSelected] =
|
|
31094
|
+
const [visibleCount, setVisibleCount] = React96__default.useState(pageSize > 0 ? pageSize : Infinity);
|
|
31095
|
+
const [localSelected, setLocalSelected] = React96__default.useState(/* @__PURE__ */ new Set());
|
|
31012
31096
|
const colDefs = columns ?? fields ?? [];
|
|
31013
31097
|
const allDataRaw = Array.isArray(entity) ? entity : entity ? [entity] : [];
|
|
31014
31098
|
const dnd = useDataDnd({
|
|
@@ -31203,12 +31287,12 @@ function TableView({
|
|
|
31203
31287
|
]
|
|
31204
31288
|
}
|
|
31205
31289
|
);
|
|
31206
|
-
return dnd.isZone ? /* @__PURE__ */ jsx(dnd.SortableItem, { id: row[idField] ?? id, children: rowInner }, id) : /* @__PURE__ */ jsx(
|
|
31290
|
+
return dnd.isZone ? /* @__PURE__ */ jsx(dnd.SortableItem, { id: row[idField] ?? id, children: rowInner }, id) : /* @__PURE__ */ jsx(React96__default.Fragment, { children: rowInner }, id);
|
|
31207
31291
|
};
|
|
31208
31292
|
const items = Array.from(data);
|
|
31209
31293
|
const groups = groupBy ? groupData2(items, groupBy) : [{ label: "", items }];
|
|
31210
31294
|
let runningIndex = 0;
|
|
31211
|
-
const body = /* @__PURE__ */ jsx(Box, { role: "rowgroup", children: groups.map((group, gi) => /* @__PURE__ */ jsxs(
|
|
31295
|
+
const body = /* @__PURE__ */ jsx(Box, { role: "rowgroup", children: groups.map((group, gi) => /* @__PURE__ */ jsxs(React96__default.Fragment, { children: [
|
|
31212
31296
|
group.label && /* @__PURE__ */ jsx(Divider, { label: group.label, className: gi > 0 ? "mt-3" : "mt-0" }),
|
|
31213
31297
|
group.items.map((row) => renderRow(row, runningIndex++))
|
|
31214
31298
|
] }, gi)) });
|
|
@@ -32427,7 +32511,7 @@ var init_StepFlow = __esm({
|
|
|
32427
32511
|
className
|
|
32428
32512
|
}) => {
|
|
32429
32513
|
if (orientation === "vertical") {
|
|
32430
|
-
return /* @__PURE__ */ jsx(VStack, { gap: "none", className: cn("w-full", className), children: steps.map((step, index) => /* @__PURE__ */ jsx(
|
|
32514
|
+
return /* @__PURE__ */ jsx(VStack, { gap: "none", className: cn("w-full", className), children: steps.map((step, index) => /* @__PURE__ */ jsx(React96__default.Fragment, { children: /* @__PURE__ */ jsxs(HStack, { gap: "md", align: "start", className: "w-full", children: [
|
|
32431
32515
|
/* @__PURE__ */ jsxs(VStack, { gap: "none", align: "center", children: [
|
|
32432
32516
|
/* @__PURE__ */ jsx(StepCircle, { step, index }),
|
|
32433
32517
|
showConnectors && index < steps.length - 1 && /* @__PURE__ */ jsx(Box, { className: "w-px h-8 bg-border" })
|
|
@@ -32438,7 +32522,7 @@ var init_StepFlow = __esm({
|
|
|
32438
32522
|
] })
|
|
32439
32523
|
] }) }, index)) });
|
|
32440
32524
|
}
|
|
32441
|
-
return /* @__PURE__ */ jsx(Box, { className: cn("w-full flex flex-col md:flex-row items-start gap-0", className), children: steps.map((step, index) => /* @__PURE__ */ jsxs(
|
|
32525
|
+
return /* @__PURE__ */ jsx(Box, { className: cn("w-full flex flex-col md:flex-row items-start gap-0", className), children: steps.map((step, index) => /* @__PURE__ */ jsxs(React96__default.Fragment, { children: [
|
|
32442
32526
|
/* @__PURE__ */ jsxs(VStack, { gap: "sm", align: "center", className: "flex-1 w-full md:w-auto", children: [
|
|
32443
32527
|
/* @__PURE__ */ jsx(StepCircle, { step, index }),
|
|
32444
32528
|
/* @__PURE__ */ jsx(Typography, { variant: "h4", className: "text-center", children: step.title }),
|
|
@@ -33423,7 +33507,7 @@ var init_LikertScale = __esm({
|
|
|
33423
33507
|
md: "text-base",
|
|
33424
33508
|
lg: "text-lg"
|
|
33425
33509
|
};
|
|
33426
|
-
LikertScale =
|
|
33510
|
+
LikertScale = React96__default.forwardRef(
|
|
33427
33511
|
({
|
|
33428
33512
|
question,
|
|
33429
33513
|
options = DEFAULT_LIKERT_OPTIONS,
|
|
@@ -33435,7 +33519,7 @@ var init_LikertScale = __esm({
|
|
|
33435
33519
|
variant = "radios",
|
|
33436
33520
|
className
|
|
33437
33521
|
}, ref) => {
|
|
33438
|
-
const groupId =
|
|
33522
|
+
const groupId = React96__default.useId();
|
|
33439
33523
|
const eventBus = useEventBus();
|
|
33440
33524
|
const handleSelect = useCallback(
|
|
33441
33525
|
(next) => {
|
|
@@ -35717,7 +35801,7 @@ var init_DocBreadcrumb = __esm({
|
|
|
35717
35801
|
"aria-label": t("aria.breadcrumb"),
|
|
35718
35802
|
children: /* @__PURE__ */ jsx(HStack, { gap: "xs", align: "center", wrap: true, children: items.map((item, idx) => {
|
|
35719
35803
|
const isLast = idx === items.length - 1;
|
|
35720
|
-
return /* @__PURE__ */ jsxs(
|
|
35804
|
+
return /* @__PURE__ */ jsxs(React96__default.Fragment, { children: [
|
|
35721
35805
|
idx > 0 && /* @__PURE__ */ jsx(
|
|
35722
35806
|
Icon,
|
|
35723
35807
|
{
|
|
@@ -36586,7 +36670,7 @@ var init_MiniStateMachine = __esm({
|
|
|
36586
36670
|
const x = 2 + i * (NODE_W + GAP + ARROW_W + GAP);
|
|
36587
36671
|
const tc = transitionCounts[s.name] ?? 0;
|
|
36588
36672
|
const role = getStateRole(s.name, s.isInitial ?? void 0, s.isTerminal ?? void 0, tc, maxTC);
|
|
36589
|
-
return /* @__PURE__ */ jsxs(
|
|
36673
|
+
return /* @__PURE__ */ jsxs(React96__default.Fragment, { children: [
|
|
36590
36674
|
/* @__PURE__ */ jsx(
|
|
36591
36675
|
AvlState,
|
|
36592
36676
|
{
|
|
@@ -36790,7 +36874,7 @@ var init_PageHeader = __esm({
|
|
|
36790
36874
|
info: "bg-info/10 text-info"
|
|
36791
36875
|
};
|
|
36792
36876
|
return /* @__PURE__ */ jsxs(Box, { className: cn("mb-6", className), children: [
|
|
36793
|
-
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(
|
|
36877
|
+
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(React96__default.Fragment, { children: [
|
|
36794
36878
|
idx > 0 && /* @__PURE__ */ jsx(Typography, { variant: "small", color: "muted", children: "/" }),
|
|
36795
36879
|
crumb.href ? /* @__PURE__ */ jsx(
|
|
36796
36880
|
"a",
|
|
@@ -37148,7 +37232,7 @@ var init_Section = __esm({
|
|
|
37148
37232
|
as: Component = "section"
|
|
37149
37233
|
}) => {
|
|
37150
37234
|
const hasHeader = title || description || action;
|
|
37151
|
-
return
|
|
37235
|
+
return React96__default.createElement(
|
|
37152
37236
|
Component,
|
|
37153
37237
|
{
|
|
37154
37238
|
className: cn(
|
|
@@ -37522,7 +37606,7 @@ var init_WizardContainer = __esm({
|
|
|
37522
37606
|
const isCompleted = index < currentStep;
|
|
37523
37607
|
const stepKey = step.id ?? step.tabId ?? `step-${index}`;
|
|
37524
37608
|
const stepTitle = step.title ?? step.name ?? `Step ${index + 1}`;
|
|
37525
|
-
return /* @__PURE__ */ jsxs(
|
|
37609
|
+
return /* @__PURE__ */ jsxs(React96__default.Fragment, { children: [
|
|
37526
37610
|
/* @__PURE__ */ jsx(
|
|
37527
37611
|
Button,
|
|
37528
37612
|
{
|
|
@@ -39955,7 +40039,7 @@ var init_DetailPanel = __esm({
|
|
|
39955
40039
|
}
|
|
39956
40040
|
});
|
|
39957
40041
|
function extractTitle(children) {
|
|
39958
|
-
if (!
|
|
40042
|
+
if (!React96__default.isValidElement(children)) return void 0;
|
|
39959
40043
|
const props = children.props;
|
|
39960
40044
|
if (typeof props.title === "string") {
|
|
39961
40045
|
return props.title;
|
|
@@ -40305,12 +40389,12 @@ var init_Form = __esm({
|
|
|
40305
40389
|
const isSchemaEntity = isOrbitalEntitySchema(entity);
|
|
40306
40390
|
const resolvedEntity = isSchemaEntity ? entity : void 0;
|
|
40307
40391
|
const entityName = typeof entity === "string" ? entity : resolvedEntity?.name;
|
|
40308
|
-
const normalizedInitialData =
|
|
40392
|
+
const normalizedInitialData = React96__default.useMemo(() => {
|
|
40309
40393
|
const entityRowAsInitial = isPlainEntityRow(entity) ? entity : void 0;
|
|
40310
40394
|
const callerInitial = initialData !== null && typeof initialData === "object" && !Array.isArray(initialData) ? initialData : {};
|
|
40311
40395
|
return entityRowAsInitial !== void 0 ? { ...entityRowAsInitial, ...callerInitial } : callerInitial;
|
|
40312
40396
|
}, [entity, initialData]);
|
|
40313
|
-
const entityDerivedFields =
|
|
40397
|
+
const entityDerivedFields = React96__default.useMemo(() => {
|
|
40314
40398
|
if (fields && fields.length > 0) return void 0;
|
|
40315
40399
|
if (!resolvedEntity) return void 0;
|
|
40316
40400
|
return resolvedEntity.fields.map(
|
|
@@ -40331,16 +40415,16 @@ var init_Form = __esm({
|
|
|
40331
40415
|
const conditionalFields = typeof conditionalFieldsRaw === "boolean" ? {} : conditionalFieldsRaw;
|
|
40332
40416
|
const hiddenCalculations = typeof hiddenCalculationsRaw === "boolean" ? [] : hiddenCalculationsRaw;
|
|
40333
40417
|
const violationTriggers = typeof violationTriggersRaw === "boolean" ? [] : violationTriggersRaw;
|
|
40334
|
-
const [formData, setFormData] =
|
|
40418
|
+
const [formData, setFormData] = React96__default.useState(
|
|
40335
40419
|
normalizedInitialData
|
|
40336
40420
|
);
|
|
40337
|
-
const [collapsedSections, setCollapsedSections] =
|
|
40421
|
+
const [collapsedSections, setCollapsedSections] = React96__default.useState(
|
|
40338
40422
|
/* @__PURE__ */ new Set()
|
|
40339
40423
|
);
|
|
40340
|
-
const [submitError, setSubmitError] =
|
|
40341
|
-
const formRef =
|
|
40424
|
+
const [submitError, setSubmitError] = React96__default.useState(null);
|
|
40425
|
+
const formRef = React96__default.useRef(null);
|
|
40342
40426
|
const formMode = props.mode;
|
|
40343
|
-
const mountedRef =
|
|
40427
|
+
const mountedRef = React96__default.useRef(false);
|
|
40344
40428
|
if (!mountedRef.current) {
|
|
40345
40429
|
mountedRef.current = true;
|
|
40346
40430
|
debug("forms", "mount", {
|
|
@@ -40353,7 +40437,7 @@ var init_Form = __esm({
|
|
|
40353
40437
|
});
|
|
40354
40438
|
}
|
|
40355
40439
|
const shouldShowCancel = showCancel ?? (fields && fields.length > 0);
|
|
40356
|
-
const evalContext =
|
|
40440
|
+
const evalContext = React96__default.useMemo(
|
|
40357
40441
|
() => ({
|
|
40358
40442
|
formValues: formData,
|
|
40359
40443
|
globalVariables: externalContext?.globalVariables ?? {},
|
|
@@ -40362,7 +40446,7 @@ var init_Form = __esm({
|
|
|
40362
40446
|
}),
|
|
40363
40447
|
[formData, externalContext]
|
|
40364
40448
|
);
|
|
40365
|
-
|
|
40449
|
+
React96__default.useEffect(() => {
|
|
40366
40450
|
debug("forms", "initialData-sync", {
|
|
40367
40451
|
mode: formMode,
|
|
40368
40452
|
normalizedInitialData,
|
|
@@ -40373,7 +40457,7 @@ var init_Form = __esm({
|
|
|
40373
40457
|
setFormData(normalizedInitialData);
|
|
40374
40458
|
}
|
|
40375
40459
|
}, [normalizedInitialData]);
|
|
40376
|
-
const processCalculations =
|
|
40460
|
+
const processCalculations = React96__default.useCallback(
|
|
40377
40461
|
(changedFieldId, newFormData) => {
|
|
40378
40462
|
if (!hiddenCalculations.length) return;
|
|
40379
40463
|
const context = {
|
|
@@ -40398,7 +40482,7 @@ var init_Form = __esm({
|
|
|
40398
40482
|
},
|
|
40399
40483
|
[hiddenCalculations, externalContext, eventBus]
|
|
40400
40484
|
);
|
|
40401
|
-
const checkViolations =
|
|
40485
|
+
const checkViolations = React96__default.useCallback(
|
|
40402
40486
|
(changedFieldId, newFormData) => {
|
|
40403
40487
|
if (!violationTriggers.length) return;
|
|
40404
40488
|
const context = {
|
|
@@ -40436,7 +40520,7 @@ var init_Form = __esm({
|
|
|
40436
40520
|
processCalculations(name, newFormData);
|
|
40437
40521
|
checkViolations(name, newFormData);
|
|
40438
40522
|
};
|
|
40439
|
-
const isFieldVisible =
|
|
40523
|
+
const isFieldVisible = React96__default.useCallback(
|
|
40440
40524
|
(fieldName) => {
|
|
40441
40525
|
const condition = conditionalFields[fieldName];
|
|
40442
40526
|
if (!condition) return true;
|
|
@@ -40444,7 +40528,7 @@ var init_Form = __esm({
|
|
|
40444
40528
|
},
|
|
40445
40529
|
[conditionalFields, evalContext]
|
|
40446
40530
|
);
|
|
40447
|
-
const isSectionVisible =
|
|
40531
|
+
const isSectionVisible = React96__default.useCallback(
|
|
40448
40532
|
(section) => {
|
|
40449
40533
|
if (!section.condition) return true;
|
|
40450
40534
|
return Boolean(evaluateFormExpression(section.condition, evalContext));
|
|
@@ -40520,7 +40604,7 @@ var init_Form = __esm({
|
|
|
40520
40604
|
eventBus.emit(`UI:${onCancel}`);
|
|
40521
40605
|
}
|
|
40522
40606
|
};
|
|
40523
|
-
const renderField =
|
|
40607
|
+
const renderField = React96__default.useCallback(
|
|
40524
40608
|
(field) => {
|
|
40525
40609
|
const fieldName = field.name || field.field;
|
|
40526
40610
|
if (!fieldName) return null;
|
|
@@ -40541,7 +40625,7 @@ var init_Form = __esm({
|
|
|
40541
40625
|
[formData, isFieldVisible, relationsData, relationsLoading, isLoading]
|
|
40542
40626
|
);
|
|
40543
40627
|
const effectiveFields = entityDerivedFields ?? fields;
|
|
40544
|
-
const normalizedFields =
|
|
40628
|
+
const normalizedFields = React96__default.useMemo(() => {
|
|
40545
40629
|
if (!effectiveFields || effectiveFields.length === 0) return [];
|
|
40546
40630
|
return effectiveFields.map((field) => {
|
|
40547
40631
|
if (typeof field === "string") {
|
|
@@ -40565,7 +40649,7 @@ var init_Form = __esm({
|
|
|
40565
40649
|
return field;
|
|
40566
40650
|
});
|
|
40567
40651
|
}, [effectiveFields, resolvedEntity]);
|
|
40568
|
-
const schemaFields =
|
|
40652
|
+
const schemaFields = React96__default.useMemo(() => {
|
|
40569
40653
|
if (normalizedFields.length === 0) return null;
|
|
40570
40654
|
if (isDebugEnabled()) {
|
|
40571
40655
|
debugGroup(`Form: ${entityName || "unknown"}`);
|
|
@@ -40575,7 +40659,7 @@ var init_Form = __esm({
|
|
|
40575
40659
|
}
|
|
40576
40660
|
return normalizedFields.map(renderField).filter(Boolean);
|
|
40577
40661
|
}, [normalizedFields, renderField, entityName, conditionalFields]);
|
|
40578
|
-
const sectionElements =
|
|
40662
|
+
const sectionElements = React96__default.useMemo(() => {
|
|
40579
40663
|
if (!sections || sections.length === 0) return null;
|
|
40580
40664
|
return sections.map((section) => {
|
|
40581
40665
|
if (!isSectionVisible(section)) {
|
|
@@ -41300,7 +41384,7 @@ var init_List = __esm({
|
|
|
41300
41384
|
if (entity && typeof entity === "object" && "id" in entity) return [entity];
|
|
41301
41385
|
return [];
|
|
41302
41386
|
}, [entity]);
|
|
41303
|
-
const getItemActions =
|
|
41387
|
+
const getItemActions = React96__default.useCallback(
|
|
41304
41388
|
(item) => {
|
|
41305
41389
|
if (!itemActions) return [];
|
|
41306
41390
|
if (typeof itemActions === "function") {
|
|
@@ -41775,7 +41859,7 @@ var init_MediaGallery = __esm({
|
|
|
41775
41859
|
[selectable, selectedItems, selectionEvent, eventBus]
|
|
41776
41860
|
);
|
|
41777
41861
|
const entityData = Array.isArray(entity) ? entity : [];
|
|
41778
|
-
const items =
|
|
41862
|
+
const items = React96__default.useMemo(() => {
|
|
41779
41863
|
if (propItems) return propItems;
|
|
41780
41864
|
if (entityData.length === 0) return [];
|
|
41781
41865
|
return entityData.map((record, idx) => {
|
|
@@ -41938,7 +42022,7 @@ var init_MediaGallery = __esm({
|
|
|
41938
42022
|
}
|
|
41939
42023
|
});
|
|
41940
42024
|
function extractTitle2(children) {
|
|
41941
|
-
if (!
|
|
42025
|
+
if (!React96__default.isValidElement(children)) return void 0;
|
|
41942
42026
|
const props = children.props;
|
|
41943
42027
|
if (typeof props.title === "string") {
|
|
41944
42028
|
return props.title;
|
|
@@ -42212,7 +42296,7 @@ var init_debugRegistry = __esm({
|
|
|
42212
42296
|
}
|
|
42213
42297
|
});
|
|
42214
42298
|
function useDebugData() {
|
|
42215
|
-
const [data, setData] =
|
|
42299
|
+
const [data, setData] = React96.useState(() => ({
|
|
42216
42300
|
traits: [],
|
|
42217
42301
|
ticks: [],
|
|
42218
42302
|
guards: [],
|
|
@@ -42226,7 +42310,7 @@ function useDebugData() {
|
|
|
42226
42310
|
},
|
|
42227
42311
|
lastUpdate: Date.now()
|
|
42228
42312
|
}));
|
|
42229
|
-
|
|
42313
|
+
React96.useEffect(() => {
|
|
42230
42314
|
const updateData = () => {
|
|
42231
42315
|
setData({
|
|
42232
42316
|
traits: getAllTraits(),
|
|
@@ -42335,12 +42419,12 @@ function layoutGraph(states, transitions, initialState, width, height) {
|
|
|
42335
42419
|
return positions;
|
|
42336
42420
|
}
|
|
42337
42421
|
function WalkMinimap() {
|
|
42338
|
-
const [walkStep, setWalkStep] =
|
|
42339
|
-
const [traits2, setTraits] =
|
|
42340
|
-
const [coveredEdges, setCoveredEdges] =
|
|
42341
|
-
const [completedTraits, setCompletedTraits] =
|
|
42342
|
-
const prevTraitRef =
|
|
42343
|
-
|
|
42422
|
+
const [walkStep, setWalkStep] = React96.useState(null);
|
|
42423
|
+
const [traits2, setTraits] = React96.useState([]);
|
|
42424
|
+
const [coveredEdges, setCoveredEdges] = React96.useState([]);
|
|
42425
|
+
const [completedTraits, setCompletedTraits] = React96.useState(/* @__PURE__ */ new Set());
|
|
42426
|
+
const prevTraitRef = React96.useRef(null);
|
|
42427
|
+
React96.useEffect(() => {
|
|
42344
42428
|
const interval = setInterval(() => {
|
|
42345
42429
|
const w = window;
|
|
42346
42430
|
const step = w.__orbitalWalkStep;
|
|
@@ -42776,15 +42860,15 @@ var init_EntitiesTab = __esm({
|
|
|
42776
42860
|
});
|
|
42777
42861
|
function EventFlowTab({ events: events2 }) {
|
|
42778
42862
|
const { t } = useTranslate();
|
|
42779
|
-
const [filter, setFilter] =
|
|
42780
|
-
const containerRef =
|
|
42781
|
-
const [autoScroll, setAutoScroll] =
|
|
42782
|
-
|
|
42863
|
+
const [filter, setFilter] = React96.useState("all");
|
|
42864
|
+
const containerRef = React96.useRef(null);
|
|
42865
|
+
const [autoScroll, setAutoScroll] = React96.useState(true);
|
|
42866
|
+
React96.useEffect(() => {
|
|
42783
42867
|
if (autoScroll && containerRef.current) {
|
|
42784
42868
|
containerRef.current.scrollTop = containerRef.current.scrollHeight;
|
|
42785
42869
|
}
|
|
42786
42870
|
}, [events2.length, autoScroll]);
|
|
42787
|
-
const filteredEvents =
|
|
42871
|
+
const filteredEvents = React96.useMemo(() => {
|
|
42788
42872
|
if (filter === "all") return events2;
|
|
42789
42873
|
return events2.filter((e) => e.type === filter);
|
|
42790
42874
|
}, [events2, filter]);
|
|
@@ -42900,7 +42984,7 @@ var init_EventFlowTab = __esm({
|
|
|
42900
42984
|
});
|
|
42901
42985
|
function GuardsPanel({ guards }) {
|
|
42902
42986
|
const { t } = useTranslate();
|
|
42903
|
-
const [filter, setFilter] =
|
|
42987
|
+
const [filter, setFilter] = React96.useState("all");
|
|
42904
42988
|
if (guards.length === 0) {
|
|
42905
42989
|
return /* @__PURE__ */ jsx(
|
|
42906
42990
|
EmptyState,
|
|
@@ -42913,7 +42997,7 @@ function GuardsPanel({ guards }) {
|
|
|
42913
42997
|
}
|
|
42914
42998
|
const passedCount = guards.filter((g) => g.result).length;
|
|
42915
42999
|
const failedCount = guards.length - passedCount;
|
|
42916
|
-
const filteredGuards =
|
|
43000
|
+
const filteredGuards = React96.useMemo(() => {
|
|
42917
43001
|
if (filter === "all") return guards;
|
|
42918
43002
|
if (filter === "passed") return guards.filter((g) => g.result);
|
|
42919
43003
|
return guards.filter((g) => !g.result);
|
|
@@ -43076,10 +43160,10 @@ function EffectBadge({ effect }) {
|
|
|
43076
43160
|
}
|
|
43077
43161
|
function TransitionTimeline({ transitions }) {
|
|
43078
43162
|
const { t } = useTranslate();
|
|
43079
|
-
const containerRef =
|
|
43080
|
-
const [autoScroll, setAutoScroll] =
|
|
43081
|
-
const [expandedId, setExpandedId] =
|
|
43082
|
-
|
|
43163
|
+
const containerRef = React96.useRef(null);
|
|
43164
|
+
const [autoScroll, setAutoScroll] = React96.useState(true);
|
|
43165
|
+
const [expandedId, setExpandedId] = React96.useState(null);
|
|
43166
|
+
React96.useEffect(() => {
|
|
43083
43167
|
if (autoScroll && containerRef.current) {
|
|
43084
43168
|
containerRef.current.scrollTop = containerRef.current.scrollHeight;
|
|
43085
43169
|
}
|
|
@@ -43359,9 +43443,9 @@ function getAllEvents(traits2) {
|
|
|
43359
43443
|
function EventDispatcherTab({ traits: traits2, schema }) {
|
|
43360
43444
|
const eventBus = useEventBus();
|
|
43361
43445
|
const { t } = useTranslate();
|
|
43362
|
-
const [log9, setLog] =
|
|
43363
|
-
const prevStatesRef =
|
|
43364
|
-
|
|
43446
|
+
const [log9, setLog] = React96.useState([]);
|
|
43447
|
+
const prevStatesRef = React96.useRef(/* @__PURE__ */ new Map());
|
|
43448
|
+
React96.useEffect(() => {
|
|
43365
43449
|
for (const trait of traits2) {
|
|
43366
43450
|
const prev = prevStatesRef.current.get(trait.id);
|
|
43367
43451
|
if (prev && prev !== trait.currentState) {
|
|
@@ -43530,10 +43614,10 @@ function VerifyModePanel({
|
|
|
43530
43614
|
localCount
|
|
43531
43615
|
}) {
|
|
43532
43616
|
const { t } = useTranslate();
|
|
43533
|
-
const [expanded, setExpanded] =
|
|
43534
|
-
const scrollRef =
|
|
43535
|
-
const prevCountRef =
|
|
43536
|
-
|
|
43617
|
+
const [expanded, setExpanded] = React96.useState(true);
|
|
43618
|
+
const scrollRef = React96.useRef(null);
|
|
43619
|
+
const prevCountRef = React96.useRef(0);
|
|
43620
|
+
React96.useEffect(() => {
|
|
43537
43621
|
if (expanded && transitions.length > prevCountRef.current && scrollRef.current) {
|
|
43538
43622
|
scrollRef.current.scrollTop = scrollRef.current.scrollHeight;
|
|
43539
43623
|
}
|
|
@@ -43590,10 +43674,10 @@ function RuntimeDebugger({
|
|
|
43590
43674
|
schema
|
|
43591
43675
|
}) {
|
|
43592
43676
|
const { t } = useTranslate();
|
|
43593
|
-
const [isCollapsed, setIsCollapsed] =
|
|
43594
|
-
const [isVisible, setIsVisible] =
|
|
43677
|
+
const [isCollapsed, setIsCollapsed] = React96.useState(mode === "verify" ? true : defaultCollapsed);
|
|
43678
|
+
const [isVisible, setIsVisible] = React96.useState(mode === "inline" || mode === "verify" || isDebugEnabled2());
|
|
43595
43679
|
const debugData = useDebugData();
|
|
43596
|
-
|
|
43680
|
+
React96.useEffect(() => {
|
|
43597
43681
|
if (mode === "inline") return;
|
|
43598
43682
|
return onDebugToggle((enabled) => {
|
|
43599
43683
|
setIsVisible(enabled);
|
|
@@ -43602,7 +43686,7 @@ function RuntimeDebugger({
|
|
|
43602
43686
|
}
|
|
43603
43687
|
});
|
|
43604
43688
|
}, [mode]);
|
|
43605
|
-
|
|
43689
|
+
React96.useEffect(() => {
|
|
43606
43690
|
if (mode === "inline") return;
|
|
43607
43691
|
const handleKeyDown = (e) => {
|
|
43608
43692
|
if (e.key === "`" && isVisible) {
|
|
@@ -44122,7 +44206,7 @@ var init_StatCard = __esm({
|
|
|
44122
44206
|
const labelToUse = propLabel ?? propTitle;
|
|
44123
44207
|
const eventBus = useEventBus();
|
|
44124
44208
|
const { t } = useTranslate();
|
|
44125
|
-
const handleActionClick =
|
|
44209
|
+
const handleActionClick = React96__default.useCallback(() => {
|
|
44126
44210
|
if (action?.event) {
|
|
44127
44211
|
eventBus.emit(`UI:${action.event}`, {});
|
|
44128
44212
|
}
|
|
@@ -44133,7 +44217,7 @@ var init_StatCard = __esm({
|
|
|
44133
44217
|
const data = Array.isArray(entity) ? entity : entity ? [entity] : [];
|
|
44134
44218
|
const isLoading = externalLoading ?? false;
|
|
44135
44219
|
const error = externalError;
|
|
44136
|
-
const computeMetricValue =
|
|
44220
|
+
const computeMetricValue = React96__default.useCallback(
|
|
44137
44221
|
(metric, items) => {
|
|
44138
44222
|
if (metric.value !== void 0) {
|
|
44139
44223
|
return metric.value;
|
|
@@ -44172,7 +44256,7 @@ var init_StatCard = __esm({
|
|
|
44172
44256
|
},
|
|
44173
44257
|
[]
|
|
44174
44258
|
);
|
|
44175
|
-
const schemaStats =
|
|
44259
|
+
const schemaStats = React96__default.useMemo(() => {
|
|
44176
44260
|
if (!metrics || metrics.length === 0) return null;
|
|
44177
44261
|
return metrics.map((metric) => ({
|
|
44178
44262
|
label: metric.label,
|
|
@@ -44180,7 +44264,7 @@ var init_StatCard = __esm({
|
|
|
44180
44264
|
format: metric.format
|
|
44181
44265
|
}));
|
|
44182
44266
|
}, [metrics, data, computeMetricValue]);
|
|
44183
|
-
const calculatedTrend =
|
|
44267
|
+
const calculatedTrend = React96__default.useMemo(() => {
|
|
44184
44268
|
if (manualTrend !== void 0) return manualTrend;
|
|
44185
44269
|
if (previousValue === void 0 || currentValue === void 0)
|
|
44186
44270
|
return void 0;
|
|
@@ -44820,8 +44904,8 @@ var init_SubagentTracePanel = __esm({
|
|
|
44820
44904
|
] });
|
|
44821
44905
|
};
|
|
44822
44906
|
InlineActivityStream = ({ activities, autoScroll = true, className }) => {
|
|
44823
|
-
const endRef =
|
|
44824
|
-
|
|
44907
|
+
const endRef = React96__default.useRef(null);
|
|
44908
|
+
React96__default.useEffect(() => {
|
|
44825
44909
|
if (!autoScroll) return;
|
|
44826
44910
|
endRef.current?.scrollIntoView({ behavior: "smooth", block: "end" });
|
|
44827
44911
|
}, [activities.length, autoScroll]);
|
|
@@ -44915,7 +44999,7 @@ var init_SubagentTracePanel = __esm({
|
|
|
44915
44999
|
};
|
|
44916
45000
|
SubagentRichCard = ({ subagent }) => {
|
|
44917
45001
|
const { t } = useTranslate();
|
|
44918
|
-
const activities =
|
|
45002
|
+
const activities = React96__default.useMemo(
|
|
44919
45003
|
() => subagentMessagesToActivities(subagent.messages),
|
|
44920
45004
|
[subagent.messages]
|
|
44921
45005
|
);
|
|
@@ -44992,8 +45076,8 @@ var init_SubagentTracePanel = __esm({
|
|
|
44992
45076
|
] });
|
|
44993
45077
|
};
|
|
44994
45078
|
CoordinatorConversation = ({ messages, autoScroll = true, className }) => {
|
|
44995
|
-
const endRef =
|
|
44996
|
-
|
|
45079
|
+
const endRef = React96__default.useRef(null);
|
|
45080
|
+
React96__default.useEffect(() => {
|
|
44997
45081
|
if (!autoScroll) return;
|
|
44998
45082
|
endRef.current?.scrollIntoView({ behavior: "smooth", block: "end" });
|
|
44999
45083
|
}, [messages.length, autoScroll]);
|
|
@@ -45423,7 +45507,7 @@ var init_Timeline = __esm({
|
|
|
45423
45507
|
}) => {
|
|
45424
45508
|
const { t } = useTranslate();
|
|
45425
45509
|
const entityData = entity ?? [];
|
|
45426
|
-
const items =
|
|
45510
|
+
const items = React96__default.useMemo(() => {
|
|
45427
45511
|
if (propItems) return propItems;
|
|
45428
45512
|
if (entityData.length === 0) return [];
|
|
45429
45513
|
return entityData.map((record, idx) => {
|
|
@@ -45525,7 +45609,7 @@ var init_Timeline = __esm({
|
|
|
45525
45609
|
}
|
|
45526
45610
|
});
|
|
45527
45611
|
function extractToastProps(children) {
|
|
45528
|
-
if (!
|
|
45612
|
+
if (!React96__default.isValidElement(children)) {
|
|
45529
45613
|
if (typeof children === "string") {
|
|
45530
45614
|
return { message: children };
|
|
45531
45615
|
}
|
|
@@ -45567,7 +45651,7 @@ var init_ToastSlot = __esm({
|
|
|
45567
45651
|
eventBus.emit(`${prefix}CLOSE`);
|
|
45568
45652
|
};
|
|
45569
45653
|
if (!isVisible) return null;
|
|
45570
|
-
const isCustomContent =
|
|
45654
|
+
const isCustomContent = React96__default.isValidElement(children) && !message;
|
|
45571
45655
|
return /* @__PURE__ */ jsx(Box, { className: "fixed bottom-4 right-4 z-50", children: isCustomContent ? children : /* @__PURE__ */ jsx(
|
|
45572
45656
|
Toast,
|
|
45573
45657
|
{
|
|
@@ -45584,7 +45668,7 @@ var init_ToastSlot = __esm({
|
|
|
45584
45668
|
}
|
|
45585
45669
|
});
|
|
45586
45670
|
function lazyThree(name, loader) {
|
|
45587
|
-
const Lazy =
|
|
45671
|
+
const Lazy = React96__default.lazy(
|
|
45588
45672
|
() => loader().then((m) => {
|
|
45589
45673
|
const Resolved = m[name];
|
|
45590
45674
|
if (!Resolved) {
|
|
@@ -45596,13 +45680,13 @@ function lazyThree(name, loader) {
|
|
|
45596
45680
|
})
|
|
45597
45681
|
);
|
|
45598
45682
|
function ThreeWrapper(props) {
|
|
45599
|
-
return
|
|
45683
|
+
return React96__default.createElement(
|
|
45600
45684
|
ThreeBoundary,
|
|
45601
45685
|
{ name },
|
|
45602
|
-
|
|
45603
|
-
|
|
45686
|
+
React96__default.createElement(
|
|
45687
|
+
React96__default.Suspense,
|
|
45604
45688
|
{ fallback: null },
|
|
45605
|
-
|
|
45689
|
+
React96__default.createElement(Lazy, props)
|
|
45606
45690
|
)
|
|
45607
45691
|
);
|
|
45608
45692
|
}
|
|
@@ -45824,6 +45908,7 @@ var init_component_registry_generated = __esm({
|
|
|
45824
45908
|
init_StatCard();
|
|
45825
45909
|
init_StatDisplay();
|
|
45826
45910
|
init_StateArchitectBoard();
|
|
45911
|
+
init_StateGraph();
|
|
45827
45912
|
init_StateIndicator();
|
|
45828
45913
|
init_StateMachineView();
|
|
45829
45914
|
init_StatsGrid();
|
|
@@ -45878,7 +45963,7 @@ var init_component_registry_generated = __esm({
|
|
|
45878
45963
|
init_WizardContainer();
|
|
45879
45964
|
init_WizardNavigation();
|
|
45880
45965
|
init_WizardProgress();
|
|
45881
|
-
ThreeBoundary = class extends
|
|
45966
|
+
ThreeBoundary = class extends React96__default.Component {
|
|
45882
45967
|
constructor() {
|
|
45883
45968
|
super(...arguments);
|
|
45884
45969
|
__publicField(this, "state", { failed: false });
|
|
@@ -45888,7 +45973,7 @@ var init_component_registry_generated = __esm({
|
|
|
45888
45973
|
}
|
|
45889
45974
|
render() {
|
|
45890
45975
|
if (this.state.failed) {
|
|
45891
|
-
return
|
|
45976
|
+
return React96__default.createElement(
|
|
45892
45977
|
"div",
|
|
45893
45978
|
{
|
|
45894
45979
|
"data-testid": "three-unavailable",
|
|
@@ -46135,6 +46220,7 @@ var init_component_registry_generated = __esm({
|
|
|
46135
46220
|
"StatCard": StatCard,
|
|
46136
46221
|
"StatDisplay": StatDisplay,
|
|
46137
46222
|
"StateArchitectBoard": StateArchitectBoard,
|
|
46223
|
+
"StateGraph": StateGraph,
|
|
46138
46224
|
"StateIndicator": StateIndicator,
|
|
46139
46225
|
"StateMachineView": StateMachineView,
|
|
46140
46226
|
"StatsGrid": StatsGrid,
|
|
@@ -46208,7 +46294,7 @@ function SuspenseConfigProvider({
|
|
|
46208
46294
|
config,
|
|
46209
46295
|
children
|
|
46210
46296
|
}) {
|
|
46211
|
-
return
|
|
46297
|
+
return React96__default.createElement(
|
|
46212
46298
|
SuspenseConfigContext.Provider,
|
|
46213
46299
|
{ value: config },
|
|
46214
46300
|
children
|
|
@@ -46250,7 +46336,7 @@ function enrichFormFields(fields, entityDef) {
|
|
|
46250
46336
|
}
|
|
46251
46337
|
return { name: field, label: field.replace(/([a-z])([A-Z])/g, "$1 $2").replace(/\b\w/g, (c) => c.toUpperCase()) };
|
|
46252
46338
|
}
|
|
46253
|
-
if (field && typeof field === "object" && !Array.isArray(field) && !
|
|
46339
|
+
if (field && typeof field === "object" && !Array.isArray(field) && !React96__default.isValidElement(field) && !(field instanceof Date)) {
|
|
46254
46340
|
const obj = field;
|
|
46255
46341
|
const fieldName = typeof obj.name === "string" ? obj.name : typeof obj.field === "string" ? obj.field : void 0;
|
|
46256
46342
|
if (!fieldName) return field;
|
|
@@ -46703,7 +46789,7 @@ function renderPatternChildren(children, onDismiss, parentId = "root", parentPat
|
|
|
46703
46789
|
const key = `${parentId}-${index}-trait:${traitName}`;
|
|
46704
46790
|
return /* @__PURE__ */ jsx(TraitFrame, { traitName }, key);
|
|
46705
46791
|
}
|
|
46706
|
-
return /* @__PURE__ */ jsx(
|
|
46792
|
+
return /* @__PURE__ */ jsx(React96__default.Fragment, { children: child }, `${parentId}-${index}`);
|
|
46707
46793
|
}
|
|
46708
46794
|
if (!child || typeof child !== "object") return null;
|
|
46709
46795
|
const childId = `${parentId}-${index}`;
|
|
@@ -46743,14 +46829,14 @@ function isPatternConfig(value) {
|
|
|
46743
46829
|
if (value === null || value === void 0) return false;
|
|
46744
46830
|
if (typeof value !== "object") return false;
|
|
46745
46831
|
if (Array.isArray(value)) return false;
|
|
46746
|
-
if (
|
|
46832
|
+
if (React96__default.isValidElement(value)) return false;
|
|
46747
46833
|
if (value instanceof Date) return false;
|
|
46748
46834
|
if (typeof value === "function") return false;
|
|
46749
46835
|
const record = value;
|
|
46750
46836
|
return "type" in record && typeof record.type === "string" && getComponentForPattern$1(record.type) !== null;
|
|
46751
46837
|
}
|
|
46752
46838
|
function isPlainConfigObject(value) {
|
|
46753
|
-
if (
|
|
46839
|
+
if (React96__default.isValidElement(value)) return false;
|
|
46754
46840
|
if (value instanceof Date) return false;
|
|
46755
46841
|
const proto = Object.getPrototypeOf(value);
|
|
46756
46842
|
return proto === Object.prototype || proto === null;
|
|
@@ -46876,7 +46962,7 @@ function SlotContentRenderer({
|
|
|
46876
46962
|
for (const slotKey of CONTENT_NODE_SLOTS) {
|
|
46877
46963
|
const slotVal = restProps[slotKey];
|
|
46878
46964
|
if (slotVal === void 0 || slotVal === null) continue;
|
|
46879
|
-
if (
|
|
46965
|
+
if (React96__default.isValidElement(slotVal) || typeof slotVal === "string" || typeof slotVal === "number" || typeof slotVal === "boolean") continue;
|
|
46880
46966
|
if (Array.isArray(slotVal) || typeof slotVal === "object" && "type" in slotVal) {
|
|
46881
46967
|
nodeSlotOverrides[slotKey] = renderPatternChildren(
|
|
46882
46968
|
slotVal,
|
|
@@ -46925,7 +47011,7 @@ function SlotContentRenderer({
|
|
|
46925
47011
|
const resolvedItems = Array.isArray(entityVal) && entityVal[0] !== "fn" ? entityVal : null;
|
|
46926
47012
|
if (resolvedItems && resolvedItems.length > 0 && !finalProps.fields && !finalProps.columns) {
|
|
46927
47013
|
const sample = resolvedItems[0];
|
|
46928
|
-
if (sample && typeof sample === "object" && !Array.isArray(sample) && !
|
|
47014
|
+
if (sample && typeof sample === "object" && !Array.isArray(sample) && !React96__default.isValidElement(sample) && !(sample instanceof Date)) {
|
|
46929
47015
|
const keys = Object.keys(sample).filter((k) => k !== "id" && k !== "_id");
|
|
46930
47016
|
finalProps.fields = keys.map((k, i) => ({ name: k, variant: i === 0 ? "h4" : "body" }));
|
|
46931
47017
|
}
|
|
@@ -47217,7 +47303,7 @@ function resolveLambdaBindings(body, params, item, index) {
|
|
|
47217
47303
|
if (Array.isArray(body)) {
|
|
47218
47304
|
return body.map((b) => recur(b));
|
|
47219
47305
|
}
|
|
47220
|
-
if (body !== null && typeof body === "object" && !
|
|
47306
|
+
if (body !== null && typeof body === "object" && !React96__default.isValidElement(body) && !(body instanceof Date) && typeof body !== "function") {
|
|
47221
47307
|
const out = {};
|
|
47222
47308
|
for (const [k, v] of Object.entries(body)) {
|
|
47223
47309
|
out[k] = recur(v);
|
|
@@ -47236,7 +47322,7 @@ function getSlotContentRenderer2() {
|
|
|
47236
47322
|
function makeLambdaFn(params, lambdaBody, callerKey) {
|
|
47237
47323
|
return (item, index) => {
|
|
47238
47324
|
const resolvedBody = resolveLambdaBindings(lambdaBody, params, item, index);
|
|
47239
|
-
if (resolvedBody === null || typeof resolvedBody !== "object" || Array.isArray(resolvedBody) || typeof resolvedBody === "function" ||
|
|
47325
|
+
if (resolvedBody === null || typeof resolvedBody !== "object" || Array.isArray(resolvedBody) || typeof resolvedBody === "function" || React96__default.isValidElement(resolvedBody) || resolvedBody instanceof Date) {
|
|
47240
47326
|
return null;
|
|
47241
47327
|
}
|
|
47242
47328
|
const record = resolvedBody;
|
|
@@ -47255,7 +47341,7 @@ function makeLambdaFn(params, lambdaBody, callerKey) {
|
|
|
47255
47341
|
props: childProps,
|
|
47256
47342
|
priority: 0
|
|
47257
47343
|
};
|
|
47258
|
-
return
|
|
47344
|
+
return React96__default.createElement(SlotContentRenderer2, { content: childContent });
|
|
47259
47345
|
};
|
|
47260
47346
|
}
|
|
47261
47347
|
function convertNode(node, callerKey) {
|
|
@@ -47274,7 +47360,7 @@ function convertNode(node, callerKey) {
|
|
|
47274
47360
|
});
|
|
47275
47361
|
return anyChanged ? mapped : node;
|
|
47276
47362
|
}
|
|
47277
|
-
if (typeof node === "object" && !
|
|
47363
|
+
if (typeof node === "object" && !React96__default.isValidElement(node) && !(node instanceof Date)) {
|
|
47278
47364
|
return convertObjectProps(node);
|
|
47279
47365
|
}
|
|
47280
47366
|
return node;
|