@almadar/ui 2.56.0 → 2.58.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 +1245 -1239
- package/dist/avl/index.js +174 -168
- package/dist/components/index.cjs +1180 -1056
- package/dist/components/index.js +277 -154
- package/dist/components/molecules/FileTree.d.ts +37 -0
- package/dist/components/molecules/index.d.ts +1 -0
- package/dist/providers/index.cjs +185 -182
- package/dist/providers/index.js +48 -45
- package/dist/runtime/index.cjs +916 -913
- package/dist/runtime/index.js +152 -149
- package/package.json +1 -1
package/dist/components/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { clsx } from 'clsx';
|
|
2
2
|
import { twMerge } from 'tailwind-merge';
|
|
3
|
-
import * as
|
|
4
|
-
import
|
|
3
|
+
import * as React91 from 'react';
|
|
4
|
+
import React91__default, { useCallback, createContext, useState, useRef, useEffect, useMemo, useLayoutEffect, lazy, useContext, useId, Suspense, useSyncExternalStore } from 'react';
|
|
5
5
|
import { EventBusContext, useEntityRef, SelectionContext } from '@almadar/ui/providers';
|
|
6
6
|
import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
|
|
7
7
|
import * as LucideIcons from 'lucide-react';
|
|
@@ -547,7 +547,7 @@ function resolveIconProp(value, sizeClass) {
|
|
|
547
547
|
const IconComp = value;
|
|
548
548
|
return /* @__PURE__ */ jsx(IconComp, { className: sizeClass });
|
|
549
549
|
}
|
|
550
|
-
if (
|
|
550
|
+
if (React91__default.isValidElement(value)) {
|
|
551
551
|
return value;
|
|
552
552
|
}
|
|
553
553
|
if (typeof value === "object" && value !== null && "render" in value) {
|
|
@@ -556,7 +556,7 @@ function resolveIconProp(value, sizeClass) {
|
|
|
556
556
|
}
|
|
557
557
|
return value;
|
|
558
558
|
}
|
|
559
|
-
var Button =
|
|
559
|
+
var Button = React91__default.forwardRef(
|
|
560
560
|
({
|
|
561
561
|
className,
|
|
562
562
|
variant = "primary",
|
|
@@ -618,7 +618,7 @@ Button.displayName = "Button";
|
|
|
618
618
|
|
|
619
619
|
// components/atoms/Input.tsx
|
|
620
620
|
init_cn();
|
|
621
|
-
var Input =
|
|
621
|
+
var Input = React91__default.forwardRef(
|
|
622
622
|
({
|
|
623
623
|
className,
|
|
624
624
|
inputType,
|
|
@@ -733,7 +733,7 @@ Input.displayName = "Input";
|
|
|
733
733
|
|
|
734
734
|
// components/atoms/Label.tsx
|
|
735
735
|
init_cn();
|
|
736
|
-
var Label =
|
|
736
|
+
var Label = React91__default.forwardRef(
|
|
737
737
|
({ className, required, children, ...props }, ref) => {
|
|
738
738
|
return /* @__PURE__ */ jsxs(
|
|
739
739
|
"label",
|
|
@@ -756,7 +756,7 @@ Label.displayName = "Label";
|
|
|
756
756
|
|
|
757
757
|
// components/atoms/Textarea.tsx
|
|
758
758
|
init_cn();
|
|
759
|
-
var Textarea =
|
|
759
|
+
var Textarea = React91__default.forwardRef(
|
|
760
760
|
({ className, error, ...props }, ref) => {
|
|
761
761
|
return /* @__PURE__ */ jsx(
|
|
762
762
|
"textarea",
|
|
@@ -782,7 +782,7 @@ Textarea.displayName = "Textarea";
|
|
|
782
782
|
|
|
783
783
|
// components/atoms/Select.tsx
|
|
784
784
|
init_cn();
|
|
785
|
-
var Select =
|
|
785
|
+
var Select = React91__default.forwardRef(
|
|
786
786
|
({ className, options, placeholder, error, ...props }, ref) => {
|
|
787
787
|
return /* @__PURE__ */ jsxs("div", { className: "relative", children: [
|
|
788
788
|
/* @__PURE__ */ jsxs(
|
|
@@ -821,7 +821,7 @@ Select.displayName = "Select";
|
|
|
821
821
|
|
|
822
822
|
// components/atoms/Checkbox.tsx
|
|
823
823
|
init_cn();
|
|
824
|
-
var Checkbox =
|
|
824
|
+
var Checkbox = React91__default.forwardRef(
|
|
825
825
|
({ className, label, id, ...props }, ref) => {
|
|
826
826
|
const inputId = id || `checkbox-${Math.random().toString(36).substr(2, 9)}`;
|
|
827
827
|
return /* @__PURE__ */ jsxs("div", { className: "flex items-center", children: [
|
|
@@ -900,7 +900,7 @@ var shadowStyles = {
|
|
|
900
900
|
md: "shadow",
|
|
901
901
|
lg: "shadow-lg"
|
|
902
902
|
};
|
|
903
|
-
var Card =
|
|
903
|
+
var Card = React91__default.forwardRef(
|
|
904
904
|
({
|
|
905
905
|
className,
|
|
906
906
|
variant = "bordered",
|
|
@@ -936,9 +936,9 @@ var Card = React90__default.forwardRef(
|
|
|
936
936
|
}
|
|
937
937
|
);
|
|
938
938
|
Card.displayName = "Card";
|
|
939
|
-
var CardHeader =
|
|
939
|
+
var CardHeader = React91__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn("mb-4", className), ...props }));
|
|
940
940
|
CardHeader.displayName = "CardHeader";
|
|
941
|
-
var CardTitle =
|
|
941
|
+
var CardTitle = React91__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
942
942
|
"h3",
|
|
943
943
|
{
|
|
944
944
|
ref,
|
|
@@ -951,11 +951,11 @@ var CardTitle = React90__default.forwardRef(({ className, ...props }, ref) => /*
|
|
|
951
951
|
}
|
|
952
952
|
));
|
|
953
953
|
CardTitle.displayName = "CardTitle";
|
|
954
|
-
var CardContent =
|
|
954
|
+
var CardContent = React91__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn("", className), ...props }));
|
|
955
955
|
CardContent.displayName = "CardContent";
|
|
956
956
|
var CardBody = CardContent;
|
|
957
957
|
CardBody.displayName = "CardBody";
|
|
958
|
-
var CardFooter =
|
|
958
|
+
var CardFooter = React91__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
959
959
|
"div",
|
|
960
960
|
{
|
|
961
961
|
ref,
|
|
@@ -1004,7 +1004,7 @@ var sizeStyles2 = {
|
|
|
1004
1004
|
md: "px-2.5 py-1 text-sm",
|
|
1005
1005
|
lg: "px-3 py-1.5 text-base"
|
|
1006
1006
|
};
|
|
1007
|
-
var Badge =
|
|
1007
|
+
var Badge = React91__default.forwardRef(
|
|
1008
1008
|
({ className, variant = "default", size = "sm", amount, label, icon, children, ...props }, ref) => {
|
|
1009
1009
|
const iconSizes2 = { sm: "w-3 h-3", md: "w-3.5 h-3.5", lg: "w-4 h-4" };
|
|
1010
1010
|
const resolvedIcon = typeof icon === "string" ? (() => {
|
|
@@ -1040,7 +1040,7 @@ var sizeStyles3 = {
|
|
|
1040
1040
|
md: "h-6 w-6",
|
|
1041
1041
|
lg: "h-8 w-8"
|
|
1042
1042
|
};
|
|
1043
|
-
var Spinner =
|
|
1043
|
+
var Spinner = React91__default.forwardRef(
|
|
1044
1044
|
({ className, size = "md", ...props }, ref) => {
|
|
1045
1045
|
return /* @__PURE__ */ jsx(
|
|
1046
1046
|
"div",
|
|
@@ -1313,7 +1313,7 @@ var positionStyles = {
|
|
|
1313
1313
|
fixed: "fixed",
|
|
1314
1314
|
sticky: "sticky"
|
|
1315
1315
|
};
|
|
1316
|
-
var Box =
|
|
1316
|
+
var Box = React91__default.forwardRef(
|
|
1317
1317
|
({
|
|
1318
1318
|
padding,
|
|
1319
1319
|
paddingX,
|
|
@@ -1674,7 +1674,7 @@ ProgressBar.displayName = "ProgressBar";
|
|
|
1674
1674
|
|
|
1675
1675
|
// components/atoms/Radio.tsx
|
|
1676
1676
|
init_cn();
|
|
1677
|
-
var Radio =
|
|
1677
|
+
var Radio = React91__default.forwardRef(
|
|
1678
1678
|
({
|
|
1679
1679
|
label,
|
|
1680
1680
|
helperText,
|
|
@@ -1781,7 +1781,7 @@ Radio.displayName = "Radio";
|
|
|
1781
1781
|
|
|
1782
1782
|
// components/atoms/Switch.tsx
|
|
1783
1783
|
init_cn();
|
|
1784
|
-
var Switch =
|
|
1784
|
+
var Switch = React91.forwardRef(
|
|
1785
1785
|
({
|
|
1786
1786
|
checked,
|
|
1787
1787
|
defaultChecked = false,
|
|
@@ -1792,10 +1792,10 @@ var Switch = React90.forwardRef(
|
|
|
1792
1792
|
name,
|
|
1793
1793
|
className
|
|
1794
1794
|
}, ref) => {
|
|
1795
|
-
const [isChecked, setIsChecked] =
|
|
1795
|
+
const [isChecked, setIsChecked] = React91.useState(
|
|
1796
1796
|
checked !== void 0 ? checked : defaultChecked
|
|
1797
1797
|
);
|
|
1798
|
-
|
|
1798
|
+
React91.useEffect(() => {
|
|
1799
1799
|
if (checked !== void 0) {
|
|
1800
1800
|
setIsChecked(checked);
|
|
1801
1801
|
}
|
|
@@ -2469,8 +2469,8 @@ var LawReferenceTooltip = ({
|
|
|
2469
2469
|
position = "top",
|
|
2470
2470
|
className
|
|
2471
2471
|
}) => {
|
|
2472
|
-
const [isVisible, setIsVisible] =
|
|
2473
|
-
const timeoutRef =
|
|
2472
|
+
const [isVisible, setIsVisible] = React91__default.useState(false);
|
|
2473
|
+
const timeoutRef = React91__default.useRef(null);
|
|
2474
2474
|
const handleMouseEnter = () => {
|
|
2475
2475
|
if (timeoutRef.current) clearTimeout(timeoutRef.current);
|
|
2476
2476
|
timeoutRef.current = setTimeout(() => setIsVisible(true), 200);
|
|
@@ -2479,7 +2479,7 @@ var LawReferenceTooltip = ({
|
|
|
2479
2479
|
if (timeoutRef.current) clearTimeout(timeoutRef.current);
|
|
2480
2480
|
setIsVisible(false);
|
|
2481
2481
|
};
|
|
2482
|
-
|
|
2482
|
+
React91__default.useEffect(() => {
|
|
2483
2483
|
return () => {
|
|
2484
2484
|
if (timeoutRef.current) clearTimeout(timeoutRef.current);
|
|
2485
2485
|
};
|
|
@@ -2677,7 +2677,7 @@ var sizeStyles5 = {
|
|
|
2677
2677
|
md: "w-2.5 h-2.5",
|
|
2678
2678
|
lg: "w-3 h-3"
|
|
2679
2679
|
};
|
|
2680
|
-
var StatusDot =
|
|
2680
|
+
var StatusDot = React91__default.forwardRef(
|
|
2681
2681
|
({ className, status = "offline", pulse = false, size = "md", label, ...props }, ref) => {
|
|
2682
2682
|
return /* @__PURE__ */ jsx(
|
|
2683
2683
|
"span",
|
|
@@ -2727,7 +2727,7 @@ var iconMap = {
|
|
|
2727
2727
|
down: TrendingDown,
|
|
2728
2728
|
flat: ArrowRight
|
|
2729
2729
|
};
|
|
2730
|
-
var TrendIndicator =
|
|
2730
|
+
var TrendIndicator = React91__default.forwardRef(
|
|
2731
2731
|
({
|
|
2732
2732
|
className,
|
|
2733
2733
|
value,
|
|
@@ -2790,7 +2790,7 @@ var thumbSizes = {
|
|
|
2790
2790
|
md: "w-4 h-4",
|
|
2791
2791
|
lg: "w-5 h-5"
|
|
2792
2792
|
};
|
|
2793
|
-
var RangeSlider =
|
|
2793
|
+
var RangeSlider = React91__default.forwardRef(
|
|
2794
2794
|
({
|
|
2795
2795
|
className,
|
|
2796
2796
|
min = 0,
|
|
@@ -3350,7 +3350,7 @@ var paddingClasses = {
|
|
|
3350
3350
|
md: "py-16",
|
|
3351
3351
|
lg: "py-24"
|
|
3352
3352
|
};
|
|
3353
|
-
var ContentSection =
|
|
3353
|
+
var ContentSection = React91__default.forwardRef(
|
|
3354
3354
|
({ children, background = "default", padding = "lg", id, className }, ref) => {
|
|
3355
3355
|
return /* @__PURE__ */ jsx(
|
|
3356
3356
|
Box,
|
|
@@ -3874,7 +3874,7 @@ var animatedStyles = {
|
|
|
3874
3874
|
"scale-up": { opacity: 1, transform: "scale(1) translateY(0)" },
|
|
3875
3875
|
"none": {}
|
|
3876
3876
|
};
|
|
3877
|
-
var AnimatedReveal =
|
|
3877
|
+
var AnimatedReveal = React91__default.forwardRef(
|
|
3878
3878
|
({
|
|
3879
3879
|
trigger = "scroll",
|
|
3880
3880
|
animation = "fade-up",
|
|
@@ -4030,7 +4030,7 @@ function applyMorphAnimation(container, animate, duration, delay, easing) {
|
|
|
4030
4030
|
el.style.opacity = animate ? "1" : "0";
|
|
4031
4031
|
});
|
|
4032
4032
|
}
|
|
4033
|
-
var AnimatedGraphic =
|
|
4033
|
+
var AnimatedGraphic = React91__default.forwardRef(
|
|
4034
4034
|
({
|
|
4035
4035
|
src,
|
|
4036
4036
|
svgContent,
|
|
@@ -4053,7 +4053,7 @@ var AnimatedGraphic = React90__default.forwardRef(
|
|
|
4053
4053
|
const fetchedSvg = useFetchedSvg(svgContent ? void 0 : src);
|
|
4054
4054
|
const resolvedSvg = svgContent ?? fetchedSvg;
|
|
4055
4055
|
const prevAnimateRef = useRef(animate);
|
|
4056
|
-
const setRef =
|
|
4056
|
+
const setRef = React91__default.useCallback(
|
|
4057
4057
|
(node) => {
|
|
4058
4058
|
containerRef.current = node;
|
|
4059
4059
|
if (typeof ref === "function") ref(node);
|
|
@@ -4230,9 +4230,9 @@ function ScoreDisplay({
|
|
|
4230
4230
|
...rest
|
|
4231
4231
|
}) {
|
|
4232
4232
|
const resolvedValue = typeof value === "number" && !Number.isNaN(value) ? value : typeof rest.score === "number" && !Number.isNaN(rest.score) ? rest.score : 0;
|
|
4233
|
-
const [displayValue, setDisplayValue] =
|
|
4234
|
-
const [isAnimating, setIsAnimating] =
|
|
4235
|
-
|
|
4233
|
+
const [displayValue, setDisplayValue] = React91.useState(resolvedValue);
|
|
4234
|
+
const [isAnimating, setIsAnimating] = React91.useState(false);
|
|
4235
|
+
React91.useEffect(() => {
|
|
4236
4236
|
if (!animated || displayValue === resolvedValue) {
|
|
4237
4237
|
setDisplayValue(resolvedValue);
|
|
4238
4238
|
return;
|
|
@@ -4309,9 +4309,9 @@ function ControlButton({
|
|
|
4309
4309
|
className
|
|
4310
4310
|
}) {
|
|
4311
4311
|
const eventBus = useEventBus();
|
|
4312
|
-
const [isPressed, setIsPressed] =
|
|
4312
|
+
const [isPressed, setIsPressed] = React91.useState(false);
|
|
4313
4313
|
const actualPressed = pressed ?? isPressed;
|
|
4314
|
-
const handlePointerDown =
|
|
4314
|
+
const handlePointerDown = React91.useCallback(
|
|
4315
4315
|
(e) => {
|
|
4316
4316
|
e.preventDefault();
|
|
4317
4317
|
if (disabled) return;
|
|
@@ -4321,7 +4321,7 @@ function ControlButton({
|
|
|
4321
4321
|
},
|
|
4322
4322
|
[disabled, pressEvent, eventBus, onPress]
|
|
4323
4323
|
);
|
|
4324
|
-
const handlePointerUp =
|
|
4324
|
+
const handlePointerUp = React91.useCallback(
|
|
4325
4325
|
(e) => {
|
|
4326
4326
|
e.preventDefault();
|
|
4327
4327
|
if (disabled) return;
|
|
@@ -4331,7 +4331,7 @@ function ControlButton({
|
|
|
4331
4331
|
},
|
|
4332
4332
|
[disabled, releaseEvent, eventBus, onRelease]
|
|
4333
4333
|
);
|
|
4334
|
-
const handlePointerLeave =
|
|
4334
|
+
const handlePointerLeave = React91.useCallback(
|
|
4335
4335
|
(e) => {
|
|
4336
4336
|
if (isPressed) {
|
|
4337
4337
|
setIsPressed(false);
|
|
@@ -5202,9 +5202,9 @@ function MiniMap({
|
|
|
5202
5202
|
viewportRect,
|
|
5203
5203
|
className
|
|
5204
5204
|
}) {
|
|
5205
|
-
const canvasRef =
|
|
5206
|
-
const frameRef =
|
|
5207
|
-
|
|
5205
|
+
const canvasRef = React91.useRef(null);
|
|
5206
|
+
const frameRef = React91.useRef(0);
|
|
5207
|
+
React91.useEffect(() => {
|
|
5208
5208
|
const canvas = canvasRef.current;
|
|
5209
5209
|
if (!canvas) return;
|
|
5210
5210
|
const ctx = canvas.getContext("2d");
|
|
@@ -5453,7 +5453,7 @@ var ErrorState = ({
|
|
|
5453
5453
|
);
|
|
5454
5454
|
};
|
|
5455
5455
|
ErrorState.displayName = "ErrorState";
|
|
5456
|
-
var ErrorBoundary = class extends
|
|
5456
|
+
var ErrorBoundary = class extends React91__default.Component {
|
|
5457
5457
|
constructor(props) {
|
|
5458
5458
|
super(props);
|
|
5459
5459
|
__publicField(this, "reset", () => {
|
|
@@ -5494,6 +5494,127 @@ var ErrorBoundary = class extends React90__default.Component {
|
|
|
5494
5494
|
}
|
|
5495
5495
|
};
|
|
5496
5496
|
__publicField(ErrorBoundary, "displayName", "ErrorBoundary");
|
|
5497
|
+
init_Typography();
|
|
5498
|
+
function fileIcon(name) {
|
|
5499
|
+
const ext = name.split(".").pop()?.toLowerCase() ?? "";
|
|
5500
|
+
switch (ext) {
|
|
5501
|
+
case "ts":
|
|
5502
|
+
case "tsx":
|
|
5503
|
+
return "file-code";
|
|
5504
|
+
case "js":
|
|
5505
|
+
case "jsx":
|
|
5506
|
+
return "file-code";
|
|
5507
|
+
case "json":
|
|
5508
|
+
case "orb":
|
|
5509
|
+
return "file-json";
|
|
5510
|
+
case "css":
|
|
5511
|
+
case "scss":
|
|
5512
|
+
return "file-text";
|
|
5513
|
+
case "md":
|
|
5514
|
+
return "file-text";
|
|
5515
|
+
case "py":
|
|
5516
|
+
return "file-code";
|
|
5517
|
+
case "html":
|
|
5518
|
+
return "file-code";
|
|
5519
|
+
default:
|
|
5520
|
+
return "file";
|
|
5521
|
+
}
|
|
5522
|
+
}
|
|
5523
|
+
var TreeNodeItem = ({
|
|
5524
|
+
node,
|
|
5525
|
+
depth,
|
|
5526
|
+
indent,
|
|
5527
|
+
selectedPath,
|
|
5528
|
+
onFileSelect,
|
|
5529
|
+
defaultExpanded = false
|
|
5530
|
+
}) => {
|
|
5531
|
+
const [expanded, setExpanded] = useState(defaultExpanded || depth < 1);
|
|
5532
|
+
const isDir = node.type === "dir";
|
|
5533
|
+
const isSelected = node.path === selectedPath;
|
|
5534
|
+
const handleClick = useCallback(() => {
|
|
5535
|
+
if (isDir) {
|
|
5536
|
+
setExpanded((prev) => !prev);
|
|
5537
|
+
} else {
|
|
5538
|
+
onFileSelect?.(node.path);
|
|
5539
|
+
}
|
|
5540
|
+
}, [isDir, node.path, onFileSelect]);
|
|
5541
|
+
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
5542
|
+
/* @__PURE__ */ jsxs(
|
|
5543
|
+
Box,
|
|
5544
|
+
{
|
|
5545
|
+
className: `flex items-center gap-1.5 py-0.5 px-2 cursor-pointer rounded-sm transition-colors ${isSelected ? "bg-[var(--color-primary)] bg-opacity-15 text-[var(--color-primary)]" : "hover:bg-[var(--color-muted)] hover:bg-opacity-30"}`,
|
|
5546
|
+
style: { paddingLeft: depth * indent + 8 },
|
|
5547
|
+
onClick: handleClick,
|
|
5548
|
+
role: "treeitem",
|
|
5549
|
+
"aria-selected": isSelected,
|
|
5550
|
+
"aria-expanded": isDir ? expanded : void 0,
|
|
5551
|
+
children: [
|
|
5552
|
+
isDir ? /* @__PURE__ */ jsx(
|
|
5553
|
+
Icon,
|
|
5554
|
+
{
|
|
5555
|
+
name: expanded ? "chevron-down" : "chevron-right",
|
|
5556
|
+
size: "xs",
|
|
5557
|
+
className: "text-[var(--color-muted-foreground)] flex-shrink-0"
|
|
5558
|
+
}
|
|
5559
|
+
) : /* @__PURE__ */ jsx(Box, { style: { width: 12, flexShrink: 0 } }),
|
|
5560
|
+
/* @__PURE__ */ jsx(
|
|
5561
|
+
Icon,
|
|
5562
|
+
{
|
|
5563
|
+
name: isDir ? expanded ? "folder-open" : "folder" : fileIcon(node.name),
|
|
5564
|
+
size: "xs",
|
|
5565
|
+
className: isDir ? "text-[var(--color-warning)]" : "text-[var(--color-muted-foreground)]"
|
|
5566
|
+
}
|
|
5567
|
+
),
|
|
5568
|
+
/* @__PURE__ */ jsx(
|
|
5569
|
+
Typography,
|
|
5570
|
+
{
|
|
5571
|
+
variant: "caption",
|
|
5572
|
+
className: `truncate font-mono text-[11px] ${isSelected ? "font-semibold" : ""}`,
|
|
5573
|
+
children: node.name
|
|
5574
|
+
}
|
|
5575
|
+
),
|
|
5576
|
+
!isDir && node.size !== void 0 && /* @__PURE__ */ jsx(Typography, { variant: "caption", className: "text-[var(--color-muted-foreground)] text-[9px] ml-auto flex-shrink-0", children: node.size < 1024 ? `${node.size}B` : `${Math.round(node.size / 1024)}KB` })
|
|
5577
|
+
]
|
|
5578
|
+
}
|
|
5579
|
+
),
|
|
5580
|
+
isDir && expanded && node.children && /* @__PURE__ */ jsx(Box, { role: "group", children: node.children.map((child) => /* @__PURE__ */ jsx(
|
|
5581
|
+
TreeNodeItem,
|
|
5582
|
+
{
|
|
5583
|
+
node: child,
|
|
5584
|
+
depth: depth + 1,
|
|
5585
|
+
indent,
|
|
5586
|
+
selectedPath,
|
|
5587
|
+
onFileSelect,
|
|
5588
|
+
defaultExpanded: depth < 0
|
|
5589
|
+
},
|
|
5590
|
+
child.path
|
|
5591
|
+
)) })
|
|
5592
|
+
] });
|
|
5593
|
+
};
|
|
5594
|
+
var FileTree = ({
|
|
5595
|
+
tree,
|
|
5596
|
+
selectedPath,
|
|
5597
|
+
onFileSelect,
|
|
5598
|
+
className,
|
|
5599
|
+
indent = 16
|
|
5600
|
+
}) => {
|
|
5601
|
+
if (tree.length === 0) {
|
|
5602
|
+
return /* @__PURE__ */ jsx(Box, { className: `p-4 ${className ?? ""}`, children: /* @__PURE__ */ jsx(Typography, { variant: "caption", color: "muted", children: "No files" }) });
|
|
5603
|
+
}
|
|
5604
|
+
return /* @__PURE__ */ jsx(Box, { className: `py-1 overflow-y-auto ${className ?? ""}`, role: "tree", children: tree.map((node) => /* @__PURE__ */ jsx(
|
|
5605
|
+
TreeNodeItem,
|
|
5606
|
+
{
|
|
5607
|
+
node,
|
|
5608
|
+
depth: 0,
|
|
5609
|
+
indent,
|
|
5610
|
+
selectedPath,
|
|
5611
|
+
onFileSelect,
|
|
5612
|
+
defaultExpanded: true
|
|
5613
|
+
},
|
|
5614
|
+
node.path
|
|
5615
|
+
)) });
|
|
5616
|
+
};
|
|
5617
|
+
FileTree.displayName = "FileTree";
|
|
5497
5618
|
|
|
5498
5619
|
// components/molecules/FormField.tsx
|
|
5499
5620
|
init_cn();
|
|
@@ -7246,8 +7367,8 @@ var Menu = ({
|
|
|
7246
7367
|
"bottom-start": "top-full left-0 mt-2",
|
|
7247
7368
|
"bottom-end": "top-full right-0 mt-2"
|
|
7248
7369
|
};
|
|
7249
|
-
const triggerChild =
|
|
7250
|
-
const triggerElement =
|
|
7370
|
+
const triggerChild = React91__default.isValidElement(trigger) ? trigger : /* @__PURE__ */ jsx("span", { children: trigger });
|
|
7371
|
+
const triggerElement = React91__default.cloneElement(
|
|
7251
7372
|
triggerChild,
|
|
7252
7373
|
{
|
|
7253
7374
|
ref: triggerRef,
|
|
@@ -7780,8 +7901,8 @@ var Popover = ({
|
|
|
7780
7901
|
onMouseEnter: handleOpen,
|
|
7781
7902
|
onMouseLeave: handleClose
|
|
7782
7903
|
};
|
|
7783
|
-
const childElement =
|
|
7784
|
-
const triggerElement =
|
|
7904
|
+
const childElement = React91__default.isValidElement(children) ? children : /* @__PURE__ */ jsx("span", { children });
|
|
7905
|
+
const triggerElement = React91__default.cloneElement(
|
|
7785
7906
|
childElement,
|
|
7786
7907
|
{
|
|
7787
7908
|
ref: triggerRef,
|
|
@@ -8558,8 +8679,8 @@ var Tooltip = ({
|
|
|
8558
8679
|
if (hideTimeoutRef.current) clearTimeout(hideTimeoutRef.current);
|
|
8559
8680
|
};
|
|
8560
8681
|
}, []);
|
|
8561
|
-
const triggerElement =
|
|
8562
|
-
const trigger =
|
|
8682
|
+
const triggerElement = React91__default.isValidElement(children) ? children : /* @__PURE__ */ jsx("span", { children });
|
|
8683
|
+
const trigger = React91__default.cloneElement(triggerElement, {
|
|
8563
8684
|
ref: triggerRef,
|
|
8564
8685
|
onMouseEnter: handleMouseEnter,
|
|
8565
8686
|
onMouseLeave: handleMouseLeave,
|
|
@@ -8816,7 +8937,7 @@ var WizardProgress = ({
|
|
|
8816
8937
|
children: /* @__PURE__ */ jsx("div", { className: "flex items-center gap-2", children: steps.map((step, index) => {
|
|
8817
8938
|
const isActive = index === currentStep;
|
|
8818
8939
|
const isCompleted = index < currentStep;
|
|
8819
|
-
return /* @__PURE__ */ jsxs(
|
|
8940
|
+
return /* @__PURE__ */ jsxs(React91__default.Fragment, { children: [
|
|
8820
8941
|
/* @__PURE__ */ jsx(
|
|
8821
8942
|
"button",
|
|
8822
8943
|
{
|
|
@@ -8950,7 +9071,7 @@ var WizardNavigation = ({
|
|
|
8950
9071
|
};
|
|
8951
9072
|
WizardNavigation.displayName = "WizardNavigation";
|
|
8952
9073
|
init_cn();
|
|
8953
|
-
var MarkdownContent =
|
|
9074
|
+
var MarkdownContent = React91__default.memo(
|
|
8954
9075
|
({ content, direction, className }) => {
|
|
8955
9076
|
const { t: _t } = useTranslate();
|
|
8956
9077
|
const safeContent = typeof content === "string" ? content : String(content ?? "");
|
|
@@ -9156,7 +9277,7 @@ function computeFoldRegions(code) {
|
|
|
9156
9277
|
}
|
|
9157
9278
|
var LINE_PROPS_FN = (n) => ({ "data-line": String(n - 1) });
|
|
9158
9279
|
var HIDDEN_LINE_NUMBERS = { display: "none" };
|
|
9159
|
-
var CodeBlock =
|
|
9280
|
+
var CodeBlock = React91__default.memo(
|
|
9160
9281
|
({
|
|
9161
9282
|
code: rawCode,
|
|
9162
9283
|
language = "text",
|
|
@@ -9357,7 +9478,7 @@ var CodeBlock = React90__default.memo(
|
|
|
9357
9478
|
}
|
|
9358
9479
|
};
|
|
9359
9480
|
const hasHeader = showLanguageBadge || showCopyButton;
|
|
9360
|
-
return /* @__PURE__ */ jsxs(Box, { className: `relative group ${className || ""}`, children: [
|
|
9481
|
+
return /* @__PURE__ */ jsxs(Box, { className: `relative group ${className || ""}`, style: { display: "flex", flexDirection: "column", height: "100%" }, children: [
|
|
9361
9482
|
hasHeader && /* @__PURE__ */ jsxs(
|
|
9362
9483
|
HStack,
|
|
9363
9484
|
{
|
|
@@ -9410,8 +9531,8 @@ var CodeBlock = React90__default.memo(
|
|
|
9410
9531
|
{
|
|
9411
9532
|
style: {
|
|
9412
9533
|
position: "relative",
|
|
9413
|
-
|
|
9414
|
-
minHeight:
|
|
9534
|
+
flex: 1,
|
|
9535
|
+
minHeight: 0,
|
|
9415
9536
|
maxHeight,
|
|
9416
9537
|
backgroundColor: "#1e1e1e",
|
|
9417
9538
|
borderRadius: hasHeader ? "0 0 0.5rem 0.5rem" : "0.5rem",
|
|
@@ -9507,6 +9628,8 @@ var CodeBlock = React90__default.memo(
|
|
|
9507
9628
|
{
|
|
9508
9629
|
ref: scrollRef,
|
|
9509
9630
|
style: {
|
|
9631
|
+
flex: 1,
|
|
9632
|
+
minHeight: 0,
|
|
9510
9633
|
overflowX: "auto",
|
|
9511
9634
|
overflowY: "auto",
|
|
9512
9635
|
WebkitOverflowScrolling: "touch",
|
|
@@ -10578,8 +10701,8 @@ function DPad({
|
|
|
10578
10701
|
}) {
|
|
10579
10702
|
const eventBus = useEventBus();
|
|
10580
10703
|
const sizes = sizeMap15[size];
|
|
10581
|
-
const [activeDirections, setActiveDirections] =
|
|
10582
|
-
const handlePress =
|
|
10704
|
+
const [activeDirections, setActiveDirections] = React91.useState(/* @__PURE__ */ new Set());
|
|
10705
|
+
const handlePress = React91.useCallback(
|
|
10583
10706
|
(direction) => {
|
|
10584
10707
|
setActiveDirections((prev) => new Set(prev).add(direction));
|
|
10585
10708
|
if (directionEvent) eventBus.emit(`UI:${directionEvent}`, { direction, pressed: true });
|
|
@@ -10587,7 +10710,7 @@ function DPad({
|
|
|
10587
10710
|
},
|
|
10588
10711
|
[directionEvent, eventBus, onDirection]
|
|
10589
10712
|
);
|
|
10590
|
-
const handleRelease =
|
|
10713
|
+
const handleRelease = React91.useCallback(
|
|
10591
10714
|
(direction) => {
|
|
10592
10715
|
setActiveDirections((prev) => {
|
|
10593
10716
|
const next = new Set(prev);
|
|
@@ -10649,8 +10772,8 @@ function ActionButtons({
|
|
|
10649
10772
|
disabled
|
|
10650
10773
|
}) {
|
|
10651
10774
|
const eventBus = useEventBus();
|
|
10652
|
-
const [activeButtons, setActiveButtons] =
|
|
10653
|
-
const handlePress =
|
|
10775
|
+
const [activeButtons, setActiveButtons] = React91.useState(/* @__PURE__ */ new Set());
|
|
10776
|
+
const handlePress = React91.useCallback(
|
|
10654
10777
|
(id) => {
|
|
10655
10778
|
setActiveButtons((prev) => new Set(prev).add(id));
|
|
10656
10779
|
if (actionEvent) eventBus.emit(`UI:${actionEvent}`, { id, pressed: true });
|
|
@@ -10658,7 +10781,7 @@ function ActionButtons({
|
|
|
10658
10781
|
},
|
|
10659
10782
|
[actionEvent, eventBus, onAction]
|
|
10660
10783
|
);
|
|
10661
|
-
const handleRelease =
|
|
10784
|
+
const handleRelease = React91.useCallback(
|
|
10662
10785
|
(id) => {
|
|
10663
10786
|
setActiveButtons((prev) => {
|
|
10664
10787
|
const next = new Set(prev);
|
|
@@ -10850,7 +10973,7 @@ function InventoryGrid({
|
|
|
10850
10973
|
const eventBus = useEventBus();
|
|
10851
10974
|
const slotCount = totalSlots ?? items.length;
|
|
10852
10975
|
const emptySlotCount = Math.max(0, slotCount - items.length);
|
|
10853
|
-
const handleSelect =
|
|
10976
|
+
const handleSelect = React91.useCallback(
|
|
10854
10977
|
(id) => {
|
|
10855
10978
|
onSelect?.(id);
|
|
10856
10979
|
if (selectEvent) {
|
|
@@ -10982,7 +11105,7 @@ function CraftingRecipe({
|
|
|
10982
11105
|
className
|
|
10983
11106
|
}) {
|
|
10984
11107
|
const eventBus = useEventBus();
|
|
10985
|
-
const handleCraft =
|
|
11108
|
+
const handleCraft = React91.useCallback(() => {
|
|
10986
11109
|
onCraft?.();
|
|
10987
11110
|
if (craftEvent) {
|
|
10988
11111
|
eventBus.emit(craftEvent, { output: output.label });
|
|
@@ -10999,7 +11122,7 @@ function CraftingRecipe({
|
|
|
10999
11122
|
children: [
|
|
11000
11123
|
/* @__PURE__ */ jsx(HStack, { gap: "xs", className: "flex-wrap items-center", children: inputs.map((ingredient, index) => {
|
|
11001
11124
|
const hasSufficient = ingredient.available >= ingredient.required;
|
|
11002
|
-
return /* @__PURE__ */ jsxs(
|
|
11125
|
+
return /* @__PURE__ */ jsxs(React91.Fragment, { children: [
|
|
11003
11126
|
/* @__PURE__ */ jsx(Box, { className: "relative", children: /* @__PURE__ */ jsx(
|
|
11004
11127
|
ItemSlot,
|
|
11005
11128
|
{
|
|
@@ -11108,15 +11231,15 @@ function GameCanvas2D({
|
|
|
11108
11231
|
fps = 60,
|
|
11109
11232
|
className
|
|
11110
11233
|
}) {
|
|
11111
|
-
const canvasRef =
|
|
11112
|
-
const rafRef =
|
|
11113
|
-
const frameRef =
|
|
11114
|
-
const lastTimeRef =
|
|
11115
|
-
const onDrawRef =
|
|
11234
|
+
const canvasRef = React91.useRef(null);
|
|
11235
|
+
const rafRef = React91.useRef(0);
|
|
11236
|
+
const frameRef = React91.useRef(0);
|
|
11237
|
+
const lastTimeRef = React91.useRef(0);
|
|
11238
|
+
const onDrawRef = React91.useRef(onDraw);
|
|
11116
11239
|
onDrawRef.current = onDraw;
|
|
11117
|
-
const onTickRef =
|
|
11240
|
+
const onTickRef = React91.useRef(onTick);
|
|
11118
11241
|
onTickRef.current = onTick;
|
|
11119
|
-
|
|
11242
|
+
React91.useEffect(() => {
|
|
11120
11243
|
const canvas = canvasRef.current;
|
|
11121
11244
|
if (!canvas) return;
|
|
11122
11245
|
const ctx = canvas.getContext("2d");
|
|
@@ -11383,7 +11506,7 @@ function TurnPanel({
|
|
|
11383
11506
|
className
|
|
11384
11507
|
}) {
|
|
11385
11508
|
const eventBus = useEventBus();
|
|
11386
|
-
const handleAction =
|
|
11509
|
+
const handleAction = React91.useCallback(
|
|
11387
11510
|
(event) => {
|
|
11388
11511
|
if (event) {
|
|
11389
11512
|
eventBus.emit(event, { turn: currentTurn, phase, activeTeam });
|
|
@@ -11517,7 +11640,7 @@ function UnitCommandBar({
|
|
|
11517
11640
|
className
|
|
11518
11641
|
}) {
|
|
11519
11642
|
const eventBus = useEventBus();
|
|
11520
|
-
const handleCommand =
|
|
11643
|
+
const handleCommand = React91.useCallback(
|
|
11521
11644
|
(event) => {
|
|
11522
11645
|
if (event) {
|
|
11523
11646
|
eventBus.emit(event, { unitId: selectedUnitId });
|
|
@@ -12072,7 +12195,7 @@ function GameMenu({
|
|
|
12072
12195
|
} catch {
|
|
12073
12196
|
}
|
|
12074
12197
|
const eventBus = eventBusProp || eventBusFromHook;
|
|
12075
|
-
const handleOptionClick =
|
|
12198
|
+
const handleOptionClick = React91.useCallback(
|
|
12076
12199
|
(option) => {
|
|
12077
12200
|
if (option.event && eventBus) {
|
|
12078
12201
|
eventBus.emit(`UI:${option.event}`, { option });
|
|
@@ -12199,7 +12322,7 @@ function GameOverScreen({
|
|
|
12199
12322
|
} catch {
|
|
12200
12323
|
}
|
|
12201
12324
|
const eventBus = eventBusProp || eventBusFromHook;
|
|
12202
|
-
const handleActionClick =
|
|
12325
|
+
const handleActionClick = React91.useCallback(
|
|
12203
12326
|
(action) => {
|
|
12204
12327
|
if (action.event && eventBus) {
|
|
12205
12328
|
eventBus.emit(`UI:${action.event}`, { action });
|
|
@@ -13858,7 +13981,7 @@ var MapViewImpl = lazy(async () => {
|
|
|
13858
13981
|
shadowSize: [41, 41]
|
|
13859
13982
|
});
|
|
13860
13983
|
L.Marker.prototype.options.icon = defaultIcon;
|
|
13861
|
-
const { useEffect: useEffect66, useRef: useRef64, useCallback:
|
|
13984
|
+
const { useEffect: useEffect66, useRef: useRef64, useCallback: useCallback114, useState: useState99 } = React91__default;
|
|
13862
13985
|
const { Typography: Typography2 } = await Promise.resolve().then(() => (init_Typography(), Typography_exports));
|
|
13863
13986
|
const { useEventBus: useEventBus2 } = await Promise.resolve().then(() => (init_useEventBus(), useEventBus_exports));
|
|
13864
13987
|
function MapUpdater({ centerLat, centerLng, zoom }) {
|
|
@@ -13902,8 +14025,8 @@ var MapViewImpl = lazy(async () => {
|
|
|
13902
14025
|
showAttribution = true
|
|
13903
14026
|
}) {
|
|
13904
14027
|
const eventBus = useEventBus2();
|
|
13905
|
-
const [clickedPosition, setClickedPosition] =
|
|
13906
|
-
const handleMapClick =
|
|
14028
|
+
const [clickedPosition, setClickedPosition] = useState99(null);
|
|
14029
|
+
const handleMapClick = useCallback114((lat, lng) => {
|
|
13907
14030
|
if (showClickedPin) {
|
|
13908
14031
|
setClickedPosition({ lat, lng });
|
|
13909
14032
|
}
|
|
@@ -13912,7 +14035,7 @@ var MapViewImpl = lazy(async () => {
|
|
|
13912
14035
|
eventBus.emit(`UI:${mapClickEvent}`, { latitude: lat, longitude: lng });
|
|
13913
14036
|
}
|
|
13914
14037
|
}, [onMapClick, mapClickEvent, eventBus, showClickedPin]);
|
|
13915
|
-
const handleMarkerClick =
|
|
14038
|
+
const handleMarkerClick = useCallback114((marker) => {
|
|
13916
14039
|
onMarkerClick?.(marker);
|
|
13917
14040
|
if (markerClickEvent) {
|
|
13918
14041
|
eventBus.emit(`UI:${markerClickEvent}`, { ...marker });
|
|
@@ -15088,7 +15211,7 @@ var DataList = ({
|
|
|
15088
15211
|
}) => {
|
|
15089
15212
|
const eventBus = useEventBus();
|
|
15090
15213
|
const { t } = useTranslate();
|
|
15091
|
-
const [visibleCount, setVisibleCount] =
|
|
15214
|
+
const [visibleCount, setVisibleCount] = React91__default.useState(pageSize || Infinity);
|
|
15092
15215
|
const fields = fieldsProp ?? columnsProp ?? [];
|
|
15093
15216
|
const allData = Array.isArray(entity) ? entity : entity ? [entity] : [];
|
|
15094
15217
|
const data = pageSize > 0 ? allData.slice(0, visibleCount) : allData;
|
|
@@ -15125,7 +15248,7 @@ var DataList = ({
|
|
|
15125
15248
|
const items2 = data.map((item) => item);
|
|
15126
15249
|
const groups2 = groupBy ? groupData(items2, groupBy) : [{ label: "", items: items2 }];
|
|
15127
15250
|
const contentField = titleField?.name ?? fields[0]?.name ?? "";
|
|
15128
|
-
return /* @__PURE__ */ jsx(VStack, { gap: "sm", className: cn("py-2", className), children: groups2.map((group, gi) => /* @__PURE__ */ jsxs(
|
|
15251
|
+
return /* @__PURE__ */ jsx(VStack, { gap: "sm", className: cn("py-2", className), children: groups2.map((group, gi) => /* @__PURE__ */ jsxs(React91__default.Fragment, { children: [
|
|
15129
15252
|
group.label && /* @__PURE__ */ jsx(Divider, { label: group.label, className: "my-2" }),
|
|
15130
15253
|
group.items.map((itemData, index) => {
|
|
15131
15254
|
const id = itemData.id || `${gi}-${index}`;
|
|
@@ -15328,7 +15451,7 @@ var DataList = ({
|
|
|
15328
15451
|
className
|
|
15329
15452
|
),
|
|
15330
15453
|
children: [
|
|
15331
|
-
groups.map((group, gi) => /* @__PURE__ */ jsxs(
|
|
15454
|
+
groups.map((group, gi) => /* @__PURE__ */ jsxs(React91__default.Fragment, { children: [
|
|
15332
15455
|
group.label && /* @__PURE__ */ jsx(Divider, { label: group.label, className: gi > 0 ? "mt-4" : "mt-0" }),
|
|
15333
15456
|
group.items.map(
|
|
15334
15457
|
(itemData, index) => renderItem(itemData, index, gi === groups.length - 1 && index === group.items.length - 1)
|
|
@@ -17138,7 +17261,7 @@ var StepFlow = ({
|
|
|
17138
17261
|
className
|
|
17139
17262
|
}) => {
|
|
17140
17263
|
if (orientation === "vertical") {
|
|
17141
|
-
return /* @__PURE__ */ jsx(VStack, { gap: "none", className: cn("w-full", className), children: steps.map((step, index) => /* @__PURE__ */ jsx(
|
|
17264
|
+
return /* @__PURE__ */ jsx(VStack, { gap: "none", className: cn("w-full", className), children: steps.map((step, index) => /* @__PURE__ */ jsx(React91__default.Fragment, { children: /* @__PURE__ */ jsxs(HStack, { gap: "md", align: "start", className: "w-full", children: [
|
|
17142
17265
|
/* @__PURE__ */ jsxs(VStack, { gap: "none", align: "center", children: [
|
|
17143
17266
|
/* @__PURE__ */ jsx(StepCircle, { step, index }),
|
|
17144
17267
|
showConnectors && index < steps.length - 1 && /* @__PURE__ */ jsx(Box, { className: "w-px h-8 bg-border" })
|
|
@@ -17149,7 +17272,7 @@ var StepFlow = ({
|
|
|
17149
17272
|
] })
|
|
17150
17273
|
] }) }, index)) });
|
|
17151
17274
|
}
|
|
17152
|
-
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(
|
|
17275
|
+
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(React91__default.Fragment, { children: [
|
|
17153
17276
|
/* @__PURE__ */ jsxs(VStack, { gap: "sm", align: "center", className: "flex-1 w-full md:w-auto", children: [
|
|
17154
17277
|
/* @__PURE__ */ jsx(StepCircle, { step, index }),
|
|
17155
17278
|
/* @__PURE__ */ jsx(Typography, { variant: "h4", className: "text-center", children: step.title }),
|
|
@@ -18349,7 +18472,7 @@ var StatCard = ({
|
|
|
18349
18472
|
const labelToUse = propLabel ?? propTitle;
|
|
18350
18473
|
const eventBus = useEventBus();
|
|
18351
18474
|
const { t } = useTranslate();
|
|
18352
|
-
const handleActionClick =
|
|
18475
|
+
const handleActionClick = React91__default.useCallback(() => {
|
|
18353
18476
|
if (action?.event) {
|
|
18354
18477
|
eventBus.emit(`UI:${action.event}`, {});
|
|
18355
18478
|
}
|
|
@@ -18360,7 +18483,7 @@ var StatCard = ({
|
|
|
18360
18483
|
const data = Array.isArray(entity) ? entity : entity ? [entity] : [];
|
|
18361
18484
|
const isLoading = externalLoading ?? false;
|
|
18362
18485
|
const error = externalError;
|
|
18363
|
-
const computeMetricValue =
|
|
18486
|
+
const computeMetricValue = React91__default.useCallback(
|
|
18364
18487
|
(metric, items) => {
|
|
18365
18488
|
if (metric.value !== void 0) {
|
|
18366
18489
|
return metric.value;
|
|
@@ -18399,7 +18522,7 @@ var StatCard = ({
|
|
|
18399
18522
|
},
|
|
18400
18523
|
[]
|
|
18401
18524
|
);
|
|
18402
|
-
const schemaStats =
|
|
18525
|
+
const schemaStats = React91__default.useMemo(() => {
|
|
18403
18526
|
if (!metrics || metrics.length === 0) return null;
|
|
18404
18527
|
return metrics.map((metric) => ({
|
|
18405
18528
|
label: metric.label,
|
|
@@ -18407,7 +18530,7 @@ var StatCard = ({
|
|
|
18407
18530
|
format: metric.format
|
|
18408
18531
|
}));
|
|
18409
18532
|
}, [metrics, data, computeMetricValue]);
|
|
18410
|
-
const calculatedTrend =
|
|
18533
|
+
const calculatedTrend = React91__default.useMemo(() => {
|
|
18411
18534
|
if (manualTrend !== void 0) return manualTrend;
|
|
18412
18535
|
if (previousValue === void 0 || currentValue === void 0)
|
|
18413
18536
|
return void 0;
|
|
@@ -18576,7 +18699,7 @@ var PageHeader = ({
|
|
|
18576
18699
|
info: "bg-info/10 text-info"
|
|
18577
18700
|
};
|
|
18578
18701
|
return /* @__PURE__ */ jsxs(Box, { className: cn("mb-6", className), children: [
|
|
18579
|
-
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(
|
|
18702
|
+
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(React91__default.Fragment, { children: [
|
|
18580
18703
|
idx > 0 && /* @__PURE__ */ jsx(Typography, { variant: "small", color: "muted", children: "/" }),
|
|
18581
18704
|
crumb.href ? /* @__PURE__ */ jsx(
|
|
18582
18705
|
"a",
|
|
@@ -19109,7 +19232,7 @@ var FormSection = ({
|
|
|
19109
19232
|
columns = 1,
|
|
19110
19233
|
className
|
|
19111
19234
|
}) => {
|
|
19112
|
-
const [collapsed, setCollapsed] =
|
|
19235
|
+
const [collapsed, setCollapsed] = React91__default.useState(defaultCollapsed);
|
|
19113
19236
|
const { t } = useTranslate();
|
|
19114
19237
|
const eventBus = useEventBus();
|
|
19115
19238
|
const gridClass = {
|
|
@@ -19117,7 +19240,7 @@ var FormSection = ({
|
|
|
19117
19240
|
2: "grid-cols-1 md:grid-cols-2",
|
|
19118
19241
|
3: "grid-cols-1 md:grid-cols-2 lg:grid-cols-3"
|
|
19119
19242
|
}[columns];
|
|
19120
|
-
|
|
19243
|
+
React91__default.useCallback(() => {
|
|
19121
19244
|
if (collapsible) {
|
|
19122
19245
|
setCollapsed((prev) => !prev);
|
|
19123
19246
|
eventBus.emit("UI:TOGGLE_COLLAPSE", { collapsed: !collapsed });
|
|
@@ -19334,7 +19457,7 @@ var Form = ({
|
|
|
19334
19457
|
const normalizedInitialData = initialData ?? {};
|
|
19335
19458
|
const resolvedEntity = entity && typeof entity === "object" && !Array.isArray(entity) ? entity : void 0;
|
|
19336
19459
|
const entityName = typeof entity === "string" ? entity : resolvedEntity?.name;
|
|
19337
|
-
const entityDerivedFields =
|
|
19460
|
+
const entityDerivedFields = React91__default.useMemo(() => {
|
|
19338
19461
|
if (fields && fields.length > 0) return void 0;
|
|
19339
19462
|
if (!resolvedEntity) return void 0;
|
|
19340
19463
|
return resolvedEntity.fields.map(
|
|
@@ -19353,14 +19476,14 @@ var Form = ({
|
|
|
19353
19476
|
const conditionalFields = typeof conditionalFieldsRaw === "boolean" ? {} : conditionalFieldsRaw;
|
|
19354
19477
|
const hiddenCalculations = typeof hiddenCalculationsRaw === "boolean" ? [] : hiddenCalculationsRaw;
|
|
19355
19478
|
const violationTriggers = typeof violationTriggersRaw === "boolean" ? [] : violationTriggersRaw;
|
|
19356
|
-
const [formData, setFormData] =
|
|
19479
|
+
const [formData, setFormData] = React91__default.useState(
|
|
19357
19480
|
normalizedInitialData
|
|
19358
19481
|
);
|
|
19359
|
-
const [collapsedSections, setCollapsedSections] =
|
|
19482
|
+
const [collapsedSections, setCollapsedSections] = React91__default.useState(
|
|
19360
19483
|
/* @__PURE__ */ new Set()
|
|
19361
19484
|
);
|
|
19362
19485
|
const shouldShowCancel = showCancel ?? (fields && fields.length > 0);
|
|
19363
|
-
const evalContext =
|
|
19486
|
+
const evalContext = React91__default.useMemo(
|
|
19364
19487
|
() => ({
|
|
19365
19488
|
formValues: formData,
|
|
19366
19489
|
globalVariables: externalContext?.globalVariables ?? {},
|
|
@@ -19369,13 +19492,13 @@ var Form = ({
|
|
|
19369
19492
|
}),
|
|
19370
19493
|
[formData, externalContext]
|
|
19371
19494
|
);
|
|
19372
|
-
|
|
19495
|
+
React91__default.useEffect(() => {
|
|
19373
19496
|
const data = initialData;
|
|
19374
19497
|
if (data && Object.keys(data).length > 0) {
|
|
19375
19498
|
setFormData(data);
|
|
19376
19499
|
}
|
|
19377
19500
|
}, [initialData]);
|
|
19378
|
-
const processCalculations =
|
|
19501
|
+
const processCalculations = React91__default.useCallback(
|
|
19379
19502
|
(changedFieldId, newFormData) => {
|
|
19380
19503
|
if (!hiddenCalculations.length) return;
|
|
19381
19504
|
const context = {
|
|
@@ -19400,7 +19523,7 @@ var Form = ({
|
|
|
19400
19523
|
},
|
|
19401
19524
|
[hiddenCalculations, externalContext, eventBus]
|
|
19402
19525
|
);
|
|
19403
|
-
const checkViolations =
|
|
19526
|
+
const checkViolations = React91__default.useCallback(
|
|
19404
19527
|
(changedFieldId, newFormData) => {
|
|
19405
19528
|
if (!violationTriggers.length) return;
|
|
19406
19529
|
const context = {
|
|
@@ -19437,7 +19560,7 @@ var Form = ({
|
|
|
19437
19560
|
processCalculations(name, newFormData);
|
|
19438
19561
|
checkViolations(name, newFormData);
|
|
19439
19562
|
};
|
|
19440
|
-
const isFieldVisible =
|
|
19563
|
+
const isFieldVisible = React91__default.useCallback(
|
|
19441
19564
|
(fieldName) => {
|
|
19442
19565
|
const condition = conditionalFields[fieldName];
|
|
19443
19566
|
if (!condition) return true;
|
|
@@ -19445,7 +19568,7 @@ var Form = ({
|
|
|
19445
19568
|
},
|
|
19446
19569
|
[conditionalFields, evalContext]
|
|
19447
19570
|
);
|
|
19448
|
-
const isSectionVisible =
|
|
19571
|
+
const isSectionVisible = React91__default.useCallback(
|
|
19449
19572
|
(section) => {
|
|
19450
19573
|
if (!section.condition) return true;
|
|
19451
19574
|
return Boolean(evaluateFormExpression(section.condition, evalContext));
|
|
@@ -19477,7 +19600,7 @@ var Form = ({
|
|
|
19477
19600
|
eventBus.emit(`UI:${onCancel}`);
|
|
19478
19601
|
}
|
|
19479
19602
|
};
|
|
19480
|
-
const renderField =
|
|
19603
|
+
const renderField = React91__default.useCallback(
|
|
19481
19604
|
(field) => {
|
|
19482
19605
|
const fieldName = field.name || field.field;
|
|
19483
19606
|
if (!fieldName) return null;
|
|
@@ -19498,7 +19621,7 @@ var Form = ({
|
|
|
19498
19621
|
[formData, isFieldVisible, relationsData, relationsLoading, isLoading]
|
|
19499
19622
|
);
|
|
19500
19623
|
const effectiveFields = entityDerivedFields ?? fields;
|
|
19501
|
-
const normalizedFields =
|
|
19624
|
+
const normalizedFields = React91__default.useMemo(() => {
|
|
19502
19625
|
if (!effectiveFields || effectiveFields.length === 0) return [];
|
|
19503
19626
|
return effectiveFields.map((field) => {
|
|
19504
19627
|
if (typeof field === "string") {
|
|
@@ -19520,7 +19643,7 @@ var Form = ({
|
|
|
19520
19643
|
return field;
|
|
19521
19644
|
});
|
|
19522
19645
|
}, [effectiveFields, resolvedEntity]);
|
|
19523
|
-
const schemaFields =
|
|
19646
|
+
const schemaFields = React91__default.useMemo(() => {
|
|
19524
19647
|
if (normalizedFields.length === 0) return null;
|
|
19525
19648
|
if (isDebugEnabled()) {
|
|
19526
19649
|
debugGroup(`Form: ${entityName || "unknown"}`);
|
|
@@ -19530,7 +19653,7 @@ var Form = ({
|
|
|
19530
19653
|
}
|
|
19531
19654
|
return normalizedFields.map(renderField).filter(Boolean);
|
|
19532
19655
|
}, [normalizedFields, renderField, entityName, conditionalFields]);
|
|
19533
|
-
const sectionElements =
|
|
19656
|
+
const sectionElements = React91__default.useMemo(() => {
|
|
19534
19657
|
if (!sections || sections.length === 0) return null;
|
|
19535
19658
|
return sections.map((section) => {
|
|
19536
19659
|
if (!isSectionVisible(section)) {
|
|
@@ -20675,7 +20798,7 @@ var List = ({
|
|
|
20675
20798
|
if (entity && typeof entity === "object" && "id" in entity) return [entity];
|
|
20676
20799
|
return [];
|
|
20677
20800
|
}, [entity]);
|
|
20678
|
-
const getItemActions =
|
|
20801
|
+
const getItemActions = React91__default.useCallback(
|
|
20679
20802
|
(item) => {
|
|
20680
20803
|
if (!itemActions) return [];
|
|
20681
20804
|
if (typeof itemActions === "function") {
|
|
@@ -21450,7 +21573,7 @@ var WizardContainer = ({
|
|
|
21450
21573
|
const isCompleted = index < currentStep;
|
|
21451
21574
|
const stepKey = step.id ?? step.tabId ?? `step-${index}`;
|
|
21452
21575
|
const stepTitle = step.title ?? step.name ?? `Step ${index + 1}`;
|
|
21453
|
-
return /* @__PURE__ */ jsxs(
|
|
21576
|
+
return /* @__PURE__ */ jsxs(React91__default.Fragment, { children: [
|
|
21454
21577
|
/* @__PURE__ */ jsx(
|
|
21455
21578
|
Button,
|
|
21456
21579
|
{
|
|
@@ -22679,7 +22802,7 @@ var StateMachineView = ({
|
|
|
22679
22802
|
style: { top: title ? 30 : 0 },
|
|
22680
22803
|
children: [
|
|
22681
22804
|
entity && /* @__PURE__ */ jsx(EntityBox, { entity, config }),
|
|
22682
|
-
states.map((state) => renderStateNode ? /* @__PURE__ */ jsx(
|
|
22805
|
+
states.map((state) => renderStateNode ? /* @__PURE__ */ jsx(React91__default.Fragment, { children: renderStateNode(state, config) }, state.id) : /* @__PURE__ */ jsx(
|
|
22683
22806
|
StateNode,
|
|
22684
22807
|
{
|
|
22685
22808
|
state,
|
|
@@ -27190,7 +27313,7 @@ function LinearView({
|
|
|
27190
27313
|
/* @__PURE__ */ jsx(HStack, { className: "flex-wrap items-center", gap: "xs", children: trait.states.map((state, i) => {
|
|
27191
27314
|
const isDone = i < currentIdx;
|
|
27192
27315
|
const isCurrent = i === currentIdx;
|
|
27193
|
-
return /* @__PURE__ */ jsxs(
|
|
27316
|
+
return /* @__PURE__ */ jsxs(React91__default.Fragment, { children: [
|
|
27194
27317
|
i > 0 && /* @__PURE__ */ jsx(
|
|
27195
27318
|
Typography,
|
|
27196
27319
|
{
|
|
@@ -27857,7 +27980,7 @@ function SequenceBar({
|
|
|
27857
27980
|
onSlotRemove(index);
|
|
27858
27981
|
}, [onSlotRemove, playing]);
|
|
27859
27982
|
const paddedSlots = Array.from({ length: maxSlots }, (_, i) => slots[i]);
|
|
27860
|
-
return /* @__PURE__ */ jsx(HStack, { className: cn("items-center", className), gap: "sm", children: paddedSlots.map((slot, i) => /* @__PURE__ */ jsxs(
|
|
27983
|
+
return /* @__PURE__ */ jsx(HStack, { className: cn("items-center", className), gap: "sm", children: paddedSlots.map((slot, i) => /* @__PURE__ */ jsxs(React91__default.Fragment, { children: [
|
|
27861
27984
|
i > 0 && /* @__PURE__ */ jsx(
|
|
27862
27985
|
Typography,
|
|
27863
27986
|
{
|
|
@@ -30382,7 +30505,7 @@ function InputPattern({
|
|
|
30382
30505
|
className
|
|
30383
30506
|
}) {
|
|
30384
30507
|
const { emit } = useEventBus();
|
|
30385
|
-
const [localValue, setLocalValue] =
|
|
30508
|
+
const [localValue, setLocalValue] = React91__default.useState(value);
|
|
30386
30509
|
const handleChange = (e) => {
|
|
30387
30510
|
setLocalValue(e.target.value);
|
|
30388
30511
|
if (onChange) {
|
|
@@ -30419,7 +30542,7 @@ function TextareaPattern({
|
|
|
30419
30542
|
className
|
|
30420
30543
|
}) {
|
|
30421
30544
|
const { emit } = useEventBus();
|
|
30422
|
-
const [localValue, setLocalValue] =
|
|
30545
|
+
const [localValue, setLocalValue] = React91__default.useState(value);
|
|
30423
30546
|
const handleChange = (e) => {
|
|
30424
30547
|
setLocalValue(e.target.value);
|
|
30425
30548
|
if (onChange) {
|
|
@@ -30450,7 +30573,7 @@ function SelectPattern({
|
|
|
30450
30573
|
className
|
|
30451
30574
|
}) {
|
|
30452
30575
|
const { emit } = useEventBus();
|
|
30453
|
-
const [localValue, setLocalValue] =
|
|
30576
|
+
const [localValue, setLocalValue] = React91__default.useState(value);
|
|
30454
30577
|
const handleChange = (e) => {
|
|
30455
30578
|
setLocalValue(e.target.value);
|
|
30456
30579
|
if (onChange) {
|
|
@@ -30479,7 +30602,7 @@ function CheckboxPattern({
|
|
|
30479
30602
|
className
|
|
30480
30603
|
}) {
|
|
30481
30604
|
const { emit } = useEventBus();
|
|
30482
|
-
const [localChecked, setLocalChecked] =
|
|
30605
|
+
const [localChecked, setLocalChecked] = React91__default.useState(checked);
|
|
30483
30606
|
const handleChange = (e) => {
|
|
30484
30607
|
setLocalChecked(e.target.checked);
|
|
30485
30608
|
if (onChange) {
|
|
@@ -32391,7 +32514,7 @@ var DocumentViewer = ({
|
|
|
32391
32514
|
DocumentViewer.displayName = "DocumentViewer";
|
|
32392
32515
|
init_useEventBus();
|
|
32393
32516
|
function extractTitle(children) {
|
|
32394
|
-
if (!
|
|
32517
|
+
if (!React91__default.isValidElement(children)) return void 0;
|
|
32395
32518
|
const props = children.props;
|
|
32396
32519
|
if (typeof props.title === "string") {
|
|
32397
32520
|
return props.title;
|
|
@@ -33009,7 +33132,7 @@ var MediaGallery = ({
|
|
|
33009
33132
|
[selectable, selectedItems, selectionEvent, eventBus]
|
|
33010
33133
|
);
|
|
33011
33134
|
const entityData = Array.isArray(entity) ? entity : [];
|
|
33012
|
-
const items =
|
|
33135
|
+
const items = React91__default.useMemo(() => {
|
|
33013
33136
|
if (propItems) return propItems;
|
|
33014
33137
|
if (entityData.length === 0) return [];
|
|
33015
33138
|
return entityData.map((record, idx) => ({
|
|
@@ -33172,7 +33295,7 @@ var MediaGallery = ({
|
|
|
33172
33295
|
MediaGallery.displayName = "MediaGallery";
|
|
33173
33296
|
init_useEventBus();
|
|
33174
33297
|
function extractTitle2(children) {
|
|
33175
|
-
if (!
|
|
33298
|
+
if (!React91__default.isValidElement(children)) return void 0;
|
|
33176
33299
|
const props = children.props;
|
|
33177
33300
|
if (typeof props.title === "string") {
|
|
33178
33301
|
return props.title;
|
|
@@ -33261,7 +33384,7 @@ function subscribeToDebugEvents(listener) {
|
|
|
33261
33384
|
|
|
33262
33385
|
// components/organisms/debug/hooks/useDebugData.ts
|
|
33263
33386
|
function useDebugData() {
|
|
33264
|
-
const [data, setData] =
|
|
33387
|
+
const [data, setData] = React91.useState(() => ({
|
|
33265
33388
|
traits: [],
|
|
33266
33389
|
ticks: [],
|
|
33267
33390
|
guards: [],
|
|
@@ -33275,7 +33398,7 @@ function useDebugData() {
|
|
|
33275
33398
|
},
|
|
33276
33399
|
lastUpdate: Date.now()
|
|
33277
33400
|
}));
|
|
33278
|
-
|
|
33401
|
+
React91.useEffect(() => {
|
|
33279
33402
|
const updateData = () => {
|
|
33280
33403
|
setData({
|
|
33281
33404
|
traits: getAllTraits(),
|
|
@@ -33372,12 +33495,12 @@ function layoutGraph(states, transitions, initialState, width, height) {
|
|
|
33372
33495
|
return positions;
|
|
33373
33496
|
}
|
|
33374
33497
|
function WalkMinimap() {
|
|
33375
|
-
const [walkStep, setWalkStep] =
|
|
33376
|
-
const [traits2, setTraits] =
|
|
33377
|
-
const [coveredEdges, setCoveredEdges] =
|
|
33378
|
-
const [completedTraits, setCompletedTraits] =
|
|
33379
|
-
const prevTraitRef =
|
|
33380
|
-
|
|
33498
|
+
const [walkStep, setWalkStep] = React91.useState(null);
|
|
33499
|
+
const [traits2, setTraits] = React91.useState([]);
|
|
33500
|
+
const [coveredEdges, setCoveredEdges] = React91.useState([]);
|
|
33501
|
+
const [completedTraits, setCompletedTraits] = React91.useState(/* @__PURE__ */ new Set());
|
|
33502
|
+
const prevTraitRef = React91.useRef(null);
|
|
33503
|
+
React91.useEffect(() => {
|
|
33381
33504
|
const interval = setInterval(() => {
|
|
33382
33505
|
const w = window;
|
|
33383
33506
|
const step = w.__orbitalWalkStep;
|
|
@@ -33806,15 +33929,15 @@ var TYPE_BADGES = {
|
|
|
33806
33929
|
state: { variant: "danger", icon: "\u{1F4CA}" }
|
|
33807
33930
|
};
|
|
33808
33931
|
function EventFlowTab({ events: events2 }) {
|
|
33809
|
-
const [filter, setFilter] =
|
|
33810
|
-
const containerRef =
|
|
33811
|
-
const [autoScroll, setAutoScroll] =
|
|
33812
|
-
|
|
33932
|
+
const [filter, setFilter] = React91.useState("all");
|
|
33933
|
+
const containerRef = React91.useRef(null);
|
|
33934
|
+
const [autoScroll, setAutoScroll] = React91.useState(true);
|
|
33935
|
+
React91.useEffect(() => {
|
|
33813
33936
|
if (autoScroll && containerRef.current) {
|
|
33814
33937
|
containerRef.current.scrollTop = containerRef.current.scrollHeight;
|
|
33815
33938
|
}
|
|
33816
33939
|
}, [events2.length, autoScroll]);
|
|
33817
|
-
const filteredEvents =
|
|
33940
|
+
const filteredEvents = React91.useMemo(() => {
|
|
33818
33941
|
if (filter === "all") return events2;
|
|
33819
33942
|
return events2.filter((e) => e.type === filter);
|
|
33820
33943
|
}, [events2, filter]);
|
|
@@ -33914,7 +34037,7 @@ function EventFlowTab({ events: events2 }) {
|
|
|
33914
34037
|
EventFlowTab.displayName = "EventFlowTab";
|
|
33915
34038
|
init_Typography();
|
|
33916
34039
|
function GuardsPanel({ guards }) {
|
|
33917
|
-
const [filter, setFilter] =
|
|
34040
|
+
const [filter, setFilter] = React91.useState("all");
|
|
33918
34041
|
if (guards.length === 0) {
|
|
33919
34042
|
return /* @__PURE__ */ jsx(
|
|
33920
34043
|
EmptyState,
|
|
@@ -33927,7 +34050,7 @@ function GuardsPanel({ guards }) {
|
|
|
33927
34050
|
}
|
|
33928
34051
|
const passedCount = guards.filter((g) => g.result).length;
|
|
33929
34052
|
const failedCount = guards.length - passedCount;
|
|
33930
|
-
const filteredGuards =
|
|
34053
|
+
const filteredGuards = React91.useMemo(() => {
|
|
33931
34054
|
if (filter === "all") return guards;
|
|
33932
34055
|
if (filter === "passed") return guards.filter((g) => g.result);
|
|
33933
34056
|
return guards.filter((g) => !g.result);
|
|
@@ -34075,10 +34198,10 @@ function EffectBadge({ effect }) {
|
|
|
34075
34198
|
] });
|
|
34076
34199
|
}
|
|
34077
34200
|
function TransitionTimeline({ transitions }) {
|
|
34078
|
-
const containerRef =
|
|
34079
|
-
const [autoScroll, setAutoScroll] =
|
|
34080
|
-
const [expandedId, setExpandedId] =
|
|
34081
|
-
|
|
34201
|
+
const containerRef = React91.useRef(null);
|
|
34202
|
+
const [autoScroll, setAutoScroll] = React91.useState(true);
|
|
34203
|
+
const [expandedId, setExpandedId] = React91.useState(null);
|
|
34204
|
+
React91.useEffect(() => {
|
|
34082
34205
|
if (autoScroll && containerRef.current) {
|
|
34083
34206
|
containerRef.current.scrollTop = containerRef.current.scrollHeight;
|
|
34084
34207
|
}
|
|
@@ -34344,9 +34467,9 @@ function getAllEvents(traits2) {
|
|
|
34344
34467
|
}
|
|
34345
34468
|
function EventDispatcherTab({ traits: traits2, schema }) {
|
|
34346
34469
|
const eventBus = useEventBus();
|
|
34347
|
-
const [log3, setLog] =
|
|
34348
|
-
const prevStatesRef =
|
|
34349
|
-
|
|
34470
|
+
const [log3, setLog] = React91.useState([]);
|
|
34471
|
+
const prevStatesRef = React91.useRef(/* @__PURE__ */ new Map());
|
|
34472
|
+
React91.useEffect(() => {
|
|
34350
34473
|
for (const trait of traits2) {
|
|
34351
34474
|
const prev = prevStatesRef.current.get(trait.id);
|
|
34352
34475
|
if (prev && prev !== trait.currentState) {
|
|
@@ -34499,9 +34622,9 @@ function VerifyModePanel({
|
|
|
34499
34622
|
serverCount,
|
|
34500
34623
|
localCount
|
|
34501
34624
|
}) {
|
|
34502
|
-
const scrollRef =
|
|
34503
|
-
const prevCountRef =
|
|
34504
|
-
|
|
34625
|
+
const scrollRef = React91.useRef(null);
|
|
34626
|
+
const prevCountRef = React91.useRef(0);
|
|
34627
|
+
React91.useEffect(() => {
|
|
34505
34628
|
if (transitions.length > prevCountRef.current && scrollRef.current) {
|
|
34506
34629
|
scrollRef.current.scrollTop = scrollRef.current.scrollHeight;
|
|
34507
34630
|
}
|
|
@@ -34549,10 +34672,10 @@ function RuntimeDebugger({
|
|
|
34549
34672
|
defaultTab,
|
|
34550
34673
|
schema
|
|
34551
34674
|
}) {
|
|
34552
|
-
const [isCollapsed, setIsCollapsed] =
|
|
34553
|
-
const [isVisible, setIsVisible] =
|
|
34675
|
+
const [isCollapsed, setIsCollapsed] = React91.useState(mode === "verify" ? true : defaultCollapsed);
|
|
34676
|
+
const [isVisible, setIsVisible] = React91.useState(mode === "inline" || mode === "verify" || isDebugEnabled2());
|
|
34554
34677
|
const debugData = useDebugData();
|
|
34555
|
-
|
|
34678
|
+
React91.useEffect(() => {
|
|
34556
34679
|
if (mode === "inline") return;
|
|
34557
34680
|
return onDebugToggle((enabled) => {
|
|
34558
34681
|
setIsVisible(enabled);
|
|
@@ -34561,7 +34684,7 @@ function RuntimeDebugger({
|
|
|
34561
34684
|
}
|
|
34562
34685
|
});
|
|
34563
34686
|
}, [mode]);
|
|
34564
|
-
|
|
34687
|
+
React91.useEffect(() => {
|
|
34565
34688
|
if (mode === "inline") return;
|
|
34566
34689
|
const handleKeyDown = (e) => {
|
|
34567
34690
|
if (e.key === "`" && isVisible) {
|
|
@@ -34982,7 +35105,7 @@ var Timeline = ({
|
|
|
34982
35105
|
}) => {
|
|
34983
35106
|
const { t } = useTranslate();
|
|
34984
35107
|
const entityData = Array.isArray(entity) ? entity : [];
|
|
34985
|
-
const items =
|
|
35108
|
+
const items = React91__default.useMemo(() => {
|
|
34986
35109
|
if (propItems) return propItems;
|
|
34987
35110
|
if (entityData.length === 0) return [];
|
|
34988
35111
|
return entityData.map((record, idx) => {
|
|
@@ -35085,7 +35208,7 @@ var Timeline = ({
|
|
|
35085
35208
|
Timeline.displayName = "Timeline";
|
|
35086
35209
|
init_useEventBus();
|
|
35087
35210
|
function extractToastProps(children) {
|
|
35088
|
-
if (!
|
|
35211
|
+
if (!React91__default.isValidElement(children)) {
|
|
35089
35212
|
if (typeof children === "string") {
|
|
35090
35213
|
return { message: children };
|
|
35091
35214
|
}
|
|
@@ -35116,7 +35239,7 @@ var ToastSlot = ({
|
|
|
35116
35239
|
eventBus.emit("UI:CLOSE");
|
|
35117
35240
|
};
|
|
35118
35241
|
if (!isVisible) return null;
|
|
35119
|
-
const isCustomContent =
|
|
35242
|
+
const isCustomContent = React91__default.isValidElement(children) && !message;
|
|
35120
35243
|
return /* @__PURE__ */ jsx(Box, { className: "fixed bottom-4 right-4 z-50", children: isCustomContent ? children : /* @__PURE__ */ jsx(
|
|
35121
35244
|
Toast,
|
|
35122
35245
|
{
|
|
@@ -35161,12 +35284,12 @@ WorldMapTemplate.displayName = "WorldMapTemplate";
|
|
|
35161
35284
|
|
|
35162
35285
|
// components/organisms/component-registry.generated.ts
|
|
35163
35286
|
function lazyThree(name, loader) {
|
|
35164
|
-
const Lazy =
|
|
35287
|
+
const Lazy = React91__default.lazy(() => loader().then((m) => ({ default: m[name] })));
|
|
35165
35288
|
function ThreeWrapper(props) {
|
|
35166
|
-
return
|
|
35167
|
-
|
|
35289
|
+
return React91__default.createElement(
|
|
35290
|
+
React91__default.Suspense,
|
|
35168
35291
|
{ fallback: null },
|
|
35169
|
-
|
|
35292
|
+
React91__default.createElement(Lazy, props)
|
|
35170
35293
|
);
|
|
35171
35294
|
}
|
|
35172
35295
|
ThreeWrapper.displayName = `Lazy(${name})`;
|
|
@@ -35454,7 +35577,7 @@ function SuspenseConfigProvider({
|
|
|
35454
35577
|
config,
|
|
35455
35578
|
children
|
|
35456
35579
|
}) {
|
|
35457
|
-
return
|
|
35580
|
+
return React91__default.createElement(
|
|
35458
35581
|
SuspenseConfigContext.Provider,
|
|
35459
35582
|
{ value: config },
|
|
35460
35583
|
children
|
|
@@ -37953,7 +38076,7 @@ function EntityDataProvider({
|
|
|
37953
38076
|
adapter,
|
|
37954
38077
|
children
|
|
37955
38078
|
}) {
|
|
37956
|
-
return
|
|
38079
|
+
return React91__default.createElement(
|
|
37957
38080
|
EntityDataContext.Provider,
|
|
37958
38081
|
{ value: adapter },
|
|
37959
38082
|
children
|
|
@@ -38877,4 +39000,4 @@ function useGitHubBranches(owner, repo, enabled = true) {
|
|
|
38877
39000
|
});
|
|
38878
39001
|
}
|
|
38879
39002
|
|
|
38880
|
-
export { ALL_PRESETS, ALMADAR_DND_MIME, AR_BOOK_FIELDS, AboutPageTemplate, Accordion, ActionButton, ActionButtons, Card2 as ActionCard, ActionPalette, ActionTile, Alert, AnimatedCounter, AnimatedGraphic, AnimatedReveal, ArticleSection, AuthLayout, Avatar, Badge, BattleBoard, BattleTemplate, BookChapterView, BookCoverPage, BookNavBar, BookTableOfContents, BookViewer, Box, Breadcrumb, BuilderBoard, Button, ButtonGroup, CTABanner, CalendarGrid, CanvasEffect, Card, CardBody, CardContent, CardFooter, CardGrid, CardHeader, CardTitle, Carousel, CaseStudyCard, CaseStudyOrganism, CastleBoard, CastleTemplate, Center, Chart, ChartLegend, Checkbox, ChoiceButton, ClassifierBoard, CodeBlock, CodeExample, CodeView, CodeViewer, CollapsibleSection, CombatLog, ComboCounter, CommunityLinks, ConditionalWrapper, ConfettiEffect, ConfirmDialog, Container, ContentRenderer, ContentSection, ControlButton, CounterTemplate, CraftingRecipe, DEFAULT_SLOTS, DIAMOND_TOP_Y, DPad, DamageNumber, DashboardGrid, DashboardLayout, DataGrid, DataList, DataTable, DateRangeSelector, DayCell, DebuggerBoard, DetailPanel, DialogueBox, DialogueBubble, Divider, DocumentViewer, StateMachineView as DomStateMachineVisualizer, Drawer, DrawerSlot, ENTITY_EVENTS, EdgeDecoration, EditorCheckbox, EditorSelect, EditorSlider, EditorTextInput, EditorToolbar, EmptyState, EnemyPlate, EntityDataProvider, EntityDisplayEvents, ErrorBoundary, ErrorState, EventHandlerBoard, EventLog, FEATURE_COLORS, FEATURE_TYPES, FLOOR_HEIGHT, FeatureCard, FeatureDetailPageTemplate, FeatureGrid, FeatureGridOrganism, FilterGroup, Flex, FlipCard, FlipContainer, FloatingActionButton, Form, FormActions, FormField, FormLayout, FormSection, FormSectionHeader, GameAudioContext, GameAudioProvider, GameAudioToggle, GameCanvas2D, GameHud, GameMenu, GameOverScreen, GameShell, GameTemplate, GenericAppTemplate, GeometricPattern, GraphCanvas, GraphView, Grid, HStack, Header, Heading, HealthBar, HealthPanel, HeroOrganism, HeroSection, I18nProvider, IDENTITY_BOOK_FIELDS, Icon, InfiniteScrollSentinel, Input, InputGroup, InstallBox, InventoryGrid, InventoryPanel, IsometricCanvas, ItemSlot, JazariStateMachine, Label, LandingPageTemplate, LawReferenceTooltip, Lightbox, LineChart, List, LoadingState, MapView, MarkdownContent, MarketingStatCard, MasterDetail, MediaGallery, Menu, Meter, MiniMap, Modal, ModalSlot, Navigation, NegotiatorBoard, NotifyListener, NumberStepper, ObjectRulePanel, StateMachineView as OrbitalStateMachineView, OrbitalVisualization, Overlay, PageHeader, Pagination, PatternTile, PhysicsManager, PlatformerCanvas, Popover, PowerupSlots, PricingCard, PricingGrid, PricingOrganism, PricingPageTemplate, ProgressBar, ProgressDots, PullToRefresh, QuestTracker, QuizBlock, Radio, RangeSlider, RelationSelect, RepeatableFormSection, ResourceBar, ResourceCounter, RuleEditor, RuntimeDebugger, SHEET_COLUMNS, SPRITE_SHEET_LAYOUT, ScaledDiagram, ScoreBoard, ScoreDisplay, SearchInput, Section, SectionHeader, Select, SequenceBar, SequencerBoard, ServiceCatalog, ShowcaseCard, ShowcaseOrganism, SidePanel, Sidebar, SignaturePad, SimpleGrid, SimulationCanvas, SimulationControls, SimulationGraph, SimulatorBoard, Skeleton, SlotContentRenderer, SocialProof, SortableList, Spacer, Spinner, Split, SplitPane, SplitSection, Sprite, Stack, StarRating, StatBadge, StatCard, StatDisplay, StateArchitectBoard, StateIndicator, StateMachineView, StateNode2 as StateNode, StatsGrid, StatsOrganism, StatusBar, StatusDot, StatusEffect, StepFlow, StepFlowOrganism, SwipeableRow, Switch, TERRAIN_COLORS, TILE_HEIGHT, TILE_WIDTH, TabbedContainer, Table, Tabs, TagCloud, TeamCard, TeamOrganism, TerrainPalette, Text, TextHighlight, Textarea, ThemeSelector, ThemeToggle, TimeSlotCell, Timeline, TimerDisplay, Toast, ToastSlot, Tooltip, TraitSlot, TraitStateViewer, TransitionArrow, TrendIndicator, TurnIndicator, TurnPanel, TypewriterText, Typography, UISlotComponent, UISlotRenderer, UncontrolledBattleBoard, UnitCommandBar, UploadDropZone, VStack, VariablePanel, ViolationAlert, WaypointMarker, WizardContainer, WizardNavigation, WizardProgress, WorldMapBoard, WorldMapTemplate, XPBar, applyTemporaryEffect, calculateAttackTargets, calculateDamage, calculateValidMoves, clearEntities, cn, combatAnimations, combatClasses, combatEffects, createInitialGameState, createTranslate, createUnitAnimationState, drawSprite, entityDataKeys, generateCombatMessage, getAllEntities, getByType, getCurrentFrame, getEntity, getSingleton, getTileDimensions, inferDirection, isoToScreen, mapBookData, parseQueryBinding, pendulum, projectileMotion, removeEntity, resolveFieldMap, resolveFrame, resolveSheetDirection, screenToIso, spawnEntity, springOscillator, tickAnimationState, transitionAnimation, updateEntity, updateSingleton, useAgentChat, useAuthContext, useBattleState, useCamera, useCompile, useConnectGitHub, useCreateEntity, useDeepAgentGeneration, useDeleteEntity, useDisconnectGitHub, useDragReorder, useDraggable, useDropZone, useEmitEvent, useEntities, useEntitiesByType, useEntity, useEntity2 as useEntityById, useEntityDataAdapter, useEntityDetail, useEntityList, useEntityListSuspense, useEntityMutations, useEntitySuspense, useEventBus, useEventListener, useExtensions, useFileEditor, useFileSystem, useGameAudio, useGameAudioContext, useGitHubBranches, useGitHubRepo, useGitHubRepos, useGitHubStatus, useImageCache, useInfiniteScroll, useInput, useLongPress, useOrbitalHistory, useOrbitalMutations, usePhysics, usePhysics2D, usePinchZoom, usePlayer, usePreview, usePullToRefresh, useQuerySingleton, useResolvedEntity, useSelectedEntity, useSendOrbitalEvent, useSingletonEntity, useSpriteAnimations, useSwipeGesture, useTranslate, useUIEvents, useUISlotManager, useUpdateEntity, useValidation };
|
|
39003
|
+
export { ALL_PRESETS, ALMADAR_DND_MIME, AR_BOOK_FIELDS, AboutPageTemplate, Accordion, ActionButton, ActionButtons, Card2 as ActionCard, ActionPalette, ActionTile, Alert, AnimatedCounter, AnimatedGraphic, AnimatedReveal, ArticleSection, AuthLayout, Avatar, Badge, BattleBoard, BattleTemplate, BookChapterView, BookCoverPage, BookNavBar, BookTableOfContents, BookViewer, Box, Breadcrumb, BuilderBoard, Button, ButtonGroup, CTABanner, CalendarGrid, CanvasEffect, Card, CardBody, CardContent, CardFooter, CardGrid, CardHeader, CardTitle, Carousel, CaseStudyCard, CaseStudyOrganism, CastleBoard, CastleTemplate, Center, Chart, ChartLegend, Checkbox, ChoiceButton, ClassifierBoard, CodeBlock, CodeExample, CodeView, CodeViewer, CollapsibleSection, CombatLog, ComboCounter, CommunityLinks, ConditionalWrapper, ConfettiEffect, ConfirmDialog, Container, ContentRenderer, ContentSection, ControlButton, CounterTemplate, CraftingRecipe, DEFAULT_SLOTS, DIAMOND_TOP_Y, DPad, DamageNumber, DashboardGrid, DashboardLayout, DataGrid, DataList, DataTable, DateRangeSelector, DayCell, DebuggerBoard, DetailPanel, DialogueBox, DialogueBubble, Divider, DocumentViewer, StateMachineView as DomStateMachineVisualizer, Drawer, DrawerSlot, ENTITY_EVENTS, EdgeDecoration, EditorCheckbox, EditorSelect, EditorSlider, EditorTextInput, EditorToolbar, EmptyState, EnemyPlate, EntityDataProvider, EntityDisplayEvents, ErrorBoundary, ErrorState, EventHandlerBoard, EventLog, FEATURE_COLORS, FEATURE_TYPES, FLOOR_HEIGHT, FeatureCard, FeatureDetailPageTemplate, FeatureGrid, FeatureGridOrganism, FileTree, FilterGroup, Flex, FlipCard, FlipContainer, FloatingActionButton, Form, FormActions, FormField, FormLayout, FormSection, FormSectionHeader, GameAudioContext, GameAudioProvider, GameAudioToggle, GameCanvas2D, GameHud, GameMenu, GameOverScreen, GameShell, GameTemplate, GenericAppTemplate, GeometricPattern, GraphCanvas, GraphView, Grid, HStack, Header, Heading, HealthBar, HealthPanel, HeroOrganism, HeroSection, I18nProvider, IDENTITY_BOOK_FIELDS, Icon, InfiniteScrollSentinel, Input, InputGroup, InstallBox, InventoryGrid, InventoryPanel, IsometricCanvas, ItemSlot, JazariStateMachine, Label, LandingPageTemplate, LawReferenceTooltip, Lightbox, LineChart, List, LoadingState, MapView, MarkdownContent, MarketingStatCard, MasterDetail, MediaGallery, Menu, Meter, MiniMap, Modal, ModalSlot, Navigation, NegotiatorBoard, NotifyListener, NumberStepper, ObjectRulePanel, StateMachineView as OrbitalStateMachineView, OrbitalVisualization, Overlay, PageHeader, Pagination, PatternTile, PhysicsManager, PlatformerCanvas, Popover, PowerupSlots, PricingCard, PricingGrid, PricingOrganism, PricingPageTemplate, ProgressBar, ProgressDots, PullToRefresh, QuestTracker, QuizBlock, Radio, RangeSlider, RelationSelect, RepeatableFormSection, ResourceBar, ResourceCounter, RuleEditor, RuntimeDebugger, SHEET_COLUMNS, SPRITE_SHEET_LAYOUT, ScaledDiagram, ScoreBoard, ScoreDisplay, SearchInput, Section, SectionHeader, Select, SequenceBar, SequencerBoard, ServiceCatalog, ShowcaseCard, ShowcaseOrganism, SidePanel, Sidebar, SignaturePad, SimpleGrid, SimulationCanvas, SimulationControls, SimulationGraph, SimulatorBoard, Skeleton, SlotContentRenderer, SocialProof, SortableList, Spacer, Spinner, Split, SplitPane, SplitSection, Sprite, Stack, StarRating, StatBadge, StatCard, StatDisplay, StateArchitectBoard, StateIndicator, StateMachineView, StateNode2 as StateNode, StatsGrid, StatsOrganism, StatusBar, StatusDot, StatusEffect, StepFlow, StepFlowOrganism, SwipeableRow, Switch, TERRAIN_COLORS, TILE_HEIGHT, TILE_WIDTH, TabbedContainer, Table, Tabs, TagCloud, TeamCard, TeamOrganism, TerrainPalette, Text, TextHighlight, Textarea, ThemeSelector, ThemeToggle, TimeSlotCell, Timeline, TimerDisplay, Toast, ToastSlot, Tooltip, TraitSlot, TraitStateViewer, TransitionArrow, TrendIndicator, TurnIndicator, TurnPanel, TypewriterText, Typography, UISlotComponent, UISlotRenderer, UncontrolledBattleBoard, UnitCommandBar, UploadDropZone, VStack, VariablePanel, ViolationAlert, WaypointMarker, WizardContainer, WizardNavigation, WizardProgress, WorldMapBoard, WorldMapTemplate, XPBar, applyTemporaryEffect, calculateAttackTargets, calculateDamage, calculateValidMoves, clearEntities, cn, combatAnimations, combatClasses, combatEffects, createInitialGameState, createTranslate, createUnitAnimationState, drawSprite, entityDataKeys, generateCombatMessage, getAllEntities, getByType, getCurrentFrame, getEntity, getSingleton, getTileDimensions, inferDirection, isoToScreen, mapBookData, parseQueryBinding, pendulum, projectileMotion, removeEntity, resolveFieldMap, resolveFrame, resolveSheetDirection, screenToIso, spawnEntity, springOscillator, tickAnimationState, transitionAnimation, updateEntity, updateSingleton, useAgentChat, useAuthContext, useBattleState, useCamera, useCompile, useConnectGitHub, useCreateEntity, useDeepAgentGeneration, useDeleteEntity, useDisconnectGitHub, useDragReorder, useDraggable, useDropZone, useEmitEvent, useEntities, useEntitiesByType, useEntity, useEntity2 as useEntityById, useEntityDataAdapter, useEntityDetail, useEntityList, useEntityListSuspense, useEntityMutations, useEntitySuspense, useEventBus, useEventListener, useExtensions, useFileEditor, useFileSystem, useGameAudio, useGameAudioContext, useGitHubBranches, useGitHubRepo, useGitHubRepos, useGitHubStatus, useImageCache, useInfiniteScroll, useInput, useLongPress, useOrbitalHistory, useOrbitalMutations, usePhysics, usePhysics2D, usePinchZoom, usePlayer, usePreview, usePullToRefresh, useQuerySingleton, useResolvedEntity, useSelectedEntity, useSendOrbitalEvent, useSingletonEntity, useSpriteAnimations, useSwipeGesture, useTranslate, useUIEvents, useUISlotManager, useUpdateEntity, useValidation };
|