@almadar/ui 2.56.0 → 2.57.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.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
2
2
  import { OrbitControls, Grid as Grid$1, Stars, Sparkles, Html, RoundedBox } from '@react-three/drei';
3
- import * as React125 from 'react';
4
- import React125__default, { createContext, useState, useRef, useCallback, useEffect, lazy, useMemo, useLayoutEffect, useContext, Suspense, useSyncExternalStore, useId, forwardRef, useImperativeHandle, useReducer, Component } from 'react';
3
+ import * as React126 from 'react';
4
+ import React126__default, { createContext, useState, useRef, useCallback, useEffect, lazy, useMemo, useLayoutEffect, useContext, Suspense, useSyncExternalStore, useId, forwardRef, useImperativeHandle, useReducer, Component } from 'react';
5
5
  import { useThree, useFrame, Canvas } from '@react-three/fiber';
6
6
  import * as THREE6 from 'three';
7
7
  import { MathUtils, Vector3, Quaternion, QuadraticBezierCurve3 } from 'three';
@@ -3239,7 +3239,7 @@ var init_Box = __esm({
3239
3239
  fixed: "fixed",
3240
3240
  sticky: "sticky"
3241
3241
  };
3242
- Box = React125__default.forwardRef(
3242
+ Box = React126__default.forwardRef(
3243
3243
  ({
3244
3244
  padding,
3245
3245
  paddingX,
@@ -5586,7 +5586,7 @@ function UnitRenderer({
5586
5586
  onAnimationStateChange,
5587
5587
  animationSpeed = 1
5588
5588
  }) {
5589
- const handleUnitClick = React125__default.useCallback(
5589
+ const handleUnitClick = React126__default.useCallback(
5590
5590
  (unit) => {
5591
5591
  onUnitClick?.(unit);
5592
5592
  },
@@ -8780,7 +8780,7 @@ var init_Avl3DViewer = __esm({
8780
8780
  const handleTraitClick = useCallback((name) => {
8781
8781
  dispatch({ type: "ZOOM_INTO_TRAIT", trait: name, targetPosition: { x: 0, y: 0 } });
8782
8782
  }, []);
8783
- const [highlightedTrait, setHighlightedTrait] = React125__default.useState(null);
8783
+ const [highlightedTrait, setHighlightedTrait] = React126__default.useState(null);
8784
8784
  const handleTransitionClick = useCallback((index) => {
8785
8785
  dispatch({ type: "ZOOM_INTO_TRANSITION", transitionIndex: index, targetPosition: { x: 0, y: 0 } });
8786
8786
  }, []);
@@ -8867,7 +8867,7 @@ var init_Avl3DViewer = __esm({
8867
8867
  gap: "xs",
8868
8868
  align: "center",
8869
8869
  className: "absolute top-2 left-2 z-10 bg-surface/80 backdrop-blur rounded-md px-3 py-1.5",
8870
- children: breadcrumbs.map((crumb, i) => /* @__PURE__ */ jsxs(React125__default.Fragment, { children: [
8870
+ children: breadcrumbs.map((crumb, i) => /* @__PURE__ */ jsxs(React126__default.Fragment, { children: [
8871
8871
  i > 0 && /* @__PURE__ */ jsx(Typography, { variant: "small", color: "muted", className: "mx-1", children: "/" }),
8872
8872
  i < breadcrumbs.length - 1 ? /* @__PURE__ */ jsx(
8873
8873
  Box,
@@ -9618,7 +9618,7 @@ var AvlTransition = ({
9618
9618
  opacity = 1,
9619
9619
  className
9620
9620
  }) => {
9621
- const ids = React125__default.useMemo(() => {
9621
+ const ids = React126__default.useMemo(() => {
9622
9622
  avlTransitionId += 1;
9623
9623
  return { arrow: `avl-tr-${avlTransitionId}-arrow` };
9624
9624
  }, []);
@@ -10383,7 +10383,7 @@ var AvlStateMachine = ({
10383
10383
  color = "var(--color-primary)",
10384
10384
  animated = false
10385
10385
  }) => {
10386
- const ids = React125__default.useMemo(() => {
10386
+ const ids = React126__default.useMemo(() => {
10387
10387
  avlSmId += 1;
10388
10388
  const base = `avl-sm-${avlSmId}`;
10389
10389
  return { glow: `${base}-glow`, grad: `${base}-grad` };
@@ -10578,7 +10578,7 @@ var AvlOrbitalUnit = ({
10578
10578
  color = "var(--color-primary)",
10579
10579
  animated = false
10580
10580
  }) => {
10581
- const ids = React125__default.useMemo(() => {
10581
+ const ids = React126__default.useMemo(() => {
10582
10582
  avlOuId += 1;
10583
10583
  const base = `avl-ou-${avlOuId}`;
10584
10584
  return { glow: `${base}-glow`, grad: `${base}-grad` };
@@ -10670,7 +10670,7 @@ var AvlClosedCircuit = ({
10670
10670
  color = "var(--color-primary)",
10671
10671
  animated = false
10672
10672
  }) => {
10673
- const ids = React125__default.useMemo(() => {
10673
+ const ids = React126__default.useMemo(() => {
10674
10674
  avlCcId += 1;
10675
10675
  const base = `avl-cc-${avlCcId}`;
10676
10676
  return { glow: `${base}-glow`, grad: `${base}-grad`, arrow: `${base}-arrow` };
@@ -10823,7 +10823,7 @@ var AvlEmitListen = ({
10823
10823
  color = "var(--color-primary)",
10824
10824
  animated = false
10825
10825
  }) => {
10826
- const ids = React125__default.useMemo(() => {
10826
+ const ids = React126__default.useMemo(() => {
10827
10827
  avlElId += 1;
10828
10828
  const base = `avl-el-${avlElId}`;
10829
10829
  return { arrow: `${base}-arrow`, grad: `${base}-grad` };
@@ -11096,7 +11096,7 @@ function renderNode(node, color, glowId) {
11096
11096
  const baseR = node.type === "operator" ? 20 : 16;
11097
11097
  const r2 = Math.max(baseR, labelLen * 3.5 + 6);
11098
11098
  const nc = nodeColor(node.type, color);
11099
- return /* @__PURE__ */ jsxs(React125__default.Fragment, { children: [
11099
+ return /* @__PURE__ */ jsxs(React126__default.Fragment, { children: [
11100
11100
  node.children.map((child, i) => {
11101
11101
  const childR = Math.max(
11102
11102
  child.type === "operator" ? 20 : 16,
@@ -11153,7 +11153,7 @@ var AvlExprTree = ({
11153
11153
  className,
11154
11154
  color = "var(--color-primary)"
11155
11155
  }) => {
11156
- const ids = React125__default.useMemo(() => {
11156
+ const ids = React126__default.useMemo(() => {
11157
11157
  avlEtId += 1;
11158
11158
  return { glow: `avl-et-${avlEtId}-glow` };
11159
11159
  }, []);
@@ -12127,7 +12127,7 @@ var SystemNode = ({ data }) => {
12127
12127
  stateChain.length > 0 && /* @__PURE__ */ jsx("svg", { width: stateChain.length * 14 + 2, height: 10, viewBox: `0 0 ${stateChain.length * 14 + 2} 10`, children: stateChain.map((s, i) => {
12128
12128
  const tc = transitionCounts[s.name] ?? 0;
12129
12129
  const role = getStateRole(s.name, s.isInitial, s.isTerminal, tc, maxTC);
12130
- return /* @__PURE__ */ jsxs(React125__default.Fragment, { children: [
12130
+ return /* @__PURE__ */ jsxs(React126__default.Fragment, { children: [
12131
12131
  /* @__PURE__ */ jsx(AvlState, { x: i * 14 + 1, y: 1, width: 10, height: 8, name: "", role, isInitial: s.isInitial, isTerminal: s.isTerminal }),
12132
12132
  i < stateChain.length - 1 && /* @__PURE__ */ jsx("line", { x1: i * 14 + 12, y1: 5, x2: i * 14 + 15, y2: 5, stroke: "var(--color-border)", strokeWidth: 0.5 })
12133
12133
  ] }, s.name);
@@ -12167,7 +12167,7 @@ var MiniStateMachine = ({ data, className }) => {
12167
12167
  const x = 2 + i * (NODE_W + GAP + ARROW_W + GAP);
12168
12168
  const tc = transitionCounts[s.name] ?? 0;
12169
12169
  const role = getStateRole(s.name, s.isInitial, s.isTerminal, tc, maxTC);
12170
- return /* @__PURE__ */ jsxs(React125__default.Fragment, { children: [
12170
+ return /* @__PURE__ */ jsxs(React126__default.Fragment, { children: [
12171
12171
  /* @__PURE__ */ jsx(
12172
12172
  AvlState,
12173
12173
  {
@@ -13491,7 +13491,7 @@ function subscribeToStore(listener) {
13491
13491
  function useEntityRef(entityType) {
13492
13492
  const versionRef = useRef(0);
13493
13493
  const dataRef = useRef([]);
13494
- const getSnapshotStable = React125__default.useCallback(() => {
13494
+ const getSnapshotStable = React126__default.useCallback(() => {
13495
13495
  const currentVersion = getVersion(entityType);
13496
13496
  if (currentVersion !== versionRef.current) {
13497
13497
  versionRef.current = currentVersion;
@@ -14358,7 +14358,7 @@ function resolveIconProp(value, sizeClass) {
14358
14358
  const IconComp = value;
14359
14359
  return /* @__PURE__ */ jsx(IconComp, { className: sizeClass });
14360
14360
  }
14361
- if (React125__default.isValidElement(value)) {
14361
+ if (React126__default.isValidElement(value)) {
14362
14362
  return value;
14363
14363
  }
14364
14364
  if (typeof value === "object" && value !== null && "render" in value) {
@@ -14367,7 +14367,7 @@ function resolveIconProp(value, sizeClass) {
14367
14367
  }
14368
14368
  return value;
14369
14369
  }
14370
- var Button = React125__default.forwardRef(
14370
+ var Button = React126__default.forwardRef(
14371
14371
  ({
14372
14372
  className,
14373
14373
  variant = "primary",
@@ -14466,7 +14466,7 @@ var sizeStyles3 = {
14466
14466
  md: "px-2.5 py-1 text-sm",
14467
14467
  lg: "px-3 py-1.5 text-base"
14468
14468
  };
14469
- var Badge = React125__default.forwardRef(
14469
+ var Badge = React126__default.forwardRef(
14470
14470
  ({ className, variant = "default", size = "sm", amount, label, icon, children, ...props }, ref) => {
14471
14471
  const iconSizes2 = { sm: "w-3 h-3", md: "w-3.5 h-3.5", lg: "w-4 h-4" };
14472
14472
  const resolvedIcon = typeof icon === "string" ? (() => {
@@ -14607,7 +14607,7 @@ init_cn();
14607
14607
 
14608
14608
  // components/atoms/Input.tsx
14609
14609
  init_cn();
14610
- var Input = React125__default.forwardRef(
14610
+ var Input = React126__default.forwardRef(
14611
14611
  ({
14612
14612
  className,
14613
14613
  inputType,
@@ -14722,7 +14722,7 @@ Input.displayName = "Input";
14722
14722
 
14723
14723
  // components/atoms/Label.tsx
14724
14724
  init_cn();
14725
- var Label = React125__default.forwardRef(
14725
+ var Label = React126__default.forwardRef(
14726
14726
  ({ className, required, children, ...props }, ref) => {
14727
14727
  return /* @__PURE__ */ jsxs(
14728
14728
  "label",
@@ -14745,7 +14745,7 @@ Label.displayName = "Label";
14745
14745
 
14746
14746
  // components/atoms/Textarea.tsx
14747
14747
  init_cn();
14748
- var Textarea = React125__default.forwardRef(
14748
+ var Textarea = React126__default.forwardRef(
14749
14749
  ({ className, error, ...props }, ref) => {
14750
14750
  return /* @__PURE__ */ jsx(
14751
14751
  "textarea",
@@ -14771,7 +14771,7 @@ Textarea.displayName = "Textarea";
14771
14771
 
14772
14772
  // components/atoms/Select.tsx
14773
14773
  init_cn();
14774
- var Select = React125__default.forwardRef(
14774
+ var Select = React126__default.forwardRef(
14775
14775
  ({ className, options, placeholder, error, ...props }, ref) => {
14776
14776
  return /* @__PURE__ */ jsxs("div", { className: "relative", children: [
14777
14777
  /* @__PURE__ */ jsxs(
@@ -14810,7 +14810,7 @@ Select.displayName = "Select";
14810
14810
 
14811
14811
  // components/atoms/Checkbox.tsx
14812
14812
  init_cn();
14813
- var Checkbox = React125__default.forwardRef(
14813
+ var Checkbox = React126__default.forwardRef(
14814
14814
  ({ className, label, id, ...props }, ref) => {
14815
14815
  const inputId = id || `checkbox-${Math.random().toString(36).substr(2, 9)}`;
14816
14816
  return /* @__PURE__ */ jsxs("div", { className: "flex items-center", children: [
@@ -14889,7 +14889,7 @@ var shadowStyles2 = {
14889
14889
  md: "shadow",
14890
14890
  lg: "shadow-lg"
14891
14891
  };
14892
- var Card = React125__default.forwardRef(
14892
+ var Card = React126__default.forwardRef(
14893
14893
  ({
14894
14894
  className,
14895
14895
  variant = "bordered",
@@ -14925,9 +14925,9 @@ var Card = React125__default.forwardRef(
14925
14925
  }
14926
14926
  );
14927
14927
  Card.displayName = "Card";
14928
- var CardHeader = React125__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn("mb-4", className), ...props }));
14928
+ var CardHeader = React126__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn("mb-4", className), ...props }));
14929
14929
  CardHeader.displayName = "CardHeader";
14930
- var CardTitle = React125__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
14930
+ var CardTitle = React126__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
14931
14931
  "h3",
14932
14932
  {
14933
14933
  ref,
@@ -14940,11 +14940,11 @@ var CardTitle = React125__default.forwardRef(({ className, ...props }, ref) => /
14940
14940
  }
14941
14941
  ));
14942
14942
  CardTitle.displayName = "CardTitle";
14943
- var CardContent = React125__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn("", className), ...props }));
14943
+ var CardContent = React126__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn("", className), ...props }));
14944
14944
  CardContent.displayName = "CardContent";
14945
14945
  var CardBody = CardContent;
14946
14946
  CardBody.displayName = "CardBody";
14947
- var CardFooter = React125__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
14947
+ var CardFooter = React126__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
14948
14948
  "div",
14949
14949
  {
14950
14950
  ref,
@@ -14962,7 +14962,7 @@ var sizeStyles4 = {
14962
14962
  md: "h-6 w-6",
14963
14963
  lg: "h-8 w-8"
14964
14964
  };
14965
- var Spinner = React125__default.forwardRef(
14965
+ var Spinner = React126__default.forwardRef(
14966
14966
  ({ className, size = "md", ...props }, ref) => {
14967
14967
  return /* @__PURE__ */ jsx(
14968
14968
  "div",
@@ -15397,7 +15397,7 @@ ProgressBar.displayName = "ProgressBar";
15397
15397
 
15398
15398
  // components/atoms/Radio.tsx
15399
15399
  init_cn();
15400
- var Radio = React125__default.forwardRef(
15400
+ var Radio = React126__default.forwardRef(
15401
15401
  ({
15402
15402
  label,
15403
15403
  helperText,
@@ -15504,7 +15504,7 @@ Radio.displayName = "Radio";
15504
15504
 
15505
15505
  // components/atoms/Switch.tsx
15506
15506
  init_cn();
15507
- var Switch = React125.forwardRef(
15507
+ var Switch = React126.forwardRef(
15508
15508
  ({
15509
15509
  checked,
15510
15510
  defaultChecked = false,
@@ -15515,10 +15515,10 @@ var Switch = React125.forwardRef(
15515
15515
  name,
15516
15516
  className
15517
15517
  }, ref) => {
15518
- const [isChecked, setIsChecked] = React125.useState(
15518
+ const [isChecked, setIsChecked] = React126.useState(
15519
15519
  checked !== void 0 ? checked : defaultChecked
15520
15520
  );
15521
- React125.useEffect(() => {
15521
+ React126.useEffect(() => {
15522
15522
  if (checked !== void 0) {
15523
15523
  setIsChecked(checked);
15524
15524
  }
@@ -15834,8 +15834,8 @@ var LawReferenceTooltip = ({
15834
15834
  position = "top",
15835
15835
  className
15836
15836
  }) => {
15837
- const [isVisible, setIsVisible] = React125__default.useState(false);
15838
- const timeoutRef = React125__default.useRef(null);
15837
+ const [isVisible, setIsVisible] = React126__default.useState(false);
15838
+ const timeoutRef = React126__default.useRef(null);
15839
15839
  const handleMouseEnter = () => {
15840
15840
  if (timeoutRef.current) clearTimeout(timeoutRef.current);
15841
15841
  timeoutRef.current = setTimeout(() => setIsVisible(true), 200);
@@ -15844,7 +15844,7 @@ var LawReferenceTooltip = ({
15844
15844
  if (timeoutRef.current) clearTimeout(timeoutRef.current);
15845
15845
  setIsVisible(false);
15846
15846
  };
15847
- React125__default.useEffect(() => {
15847
+ React126__default.useEffect(() => {
15848
15848
  return () => {
15849
15849
  if (timeoutRef.current) clearTimeout(timeoutRef.current);
15850
15850
  };
@@ -16044,7 +16044,7 @@ var sizeStyles5 = {
16044
16044
  md: "w-2.5 h-2.5",
16045
16045
  lg: "w-3 h-3"
16046
16046
  };
16047
- var StatusDot = React125__default.forwardRef(
16047
+ var StatusDot = React126__default.forwardRef(
16048
16048
  ({ className, status = "offline", pulse = false, size = "md", label, ...props }, ref) => {
16049
16049
  return /* @__PURE__ */ jsx(
16050
16050
  "span",
@@ -16094,7 +16094,7 @@ var iconMap2 = {
16094
16094
  down: TrendingDown,
16095
16095
  flat: ArrowRight
16096
16096
  };
16097
- var TrendIndicator = React125__default.forwardRef(
16097
+ var TrendIndicator = React126__default.forwardRef(
16098
16098
  ({
16099
16099
  className,
16100
16100
  value,
@@ -16157,7 +16157,7 @@ var thumbSizes = {
16157
16157
  md: "w-4 h-4",
16158
16158
  lg: "w-5 h-5"
16159
16159
  };
16160
- var RangeSlider = React125__default.forwardRef(
16160
+ var RangeSlider = React126__default.forwardRef(
16161
16161
  ({
16162
16162
  className,
16163
16163
  min = 0,
@@ -16671,7 +16671,7 @@ var paddingClasses = {
16671
16671
  md: "py-16",
16672
16672
  lg: "py-24"
16673
16673
  };
16674
- var ContentSection = React125__default.forwardRef(
16674
+ var ContentSection = React126__default.forwardRef(
16675
16675
  ({ children, background = "default", padding = "lg", id, className }, ref) => {
16676
16676
  return /* @__PURE__ */ jsx(
16677
16677
  Box,
@@ -16713,7 +16713,7 @@ var animatedStyles = {
16713
16713
  "scale-up": { opacity: 1, transform: "scale(1) translateY(0)" },
16714
16714
  "none": {}
16715
16715
  };
16716
- var AnimatedReveal = React125__default.forwardRef(
16716
+ var AnimatedReveal = React126__default.forwardRef(
16717
16717
  ({
16718
16718
  trigger = "scroll",
16719
16719
  animation = "fade-up",
@@ -16869,7 +16869,7 @@ function applyMorphAnimation(container, animate, duration, delay, easing) {
16869
16869
  el.style.opacity = animate ? "1" : "0";
16870
16870
  });
16871
16871
  }
16872
- var AnimatedGraphic = React125__default.forwardRef(
16872
+ var AnimatedGraphic = React126__default.forwardRef(
16873
16873
  ({
16874
16874
  src,
16875
16875
  svgContent,
@@ -16892,7 +16892,7 @@ var AnimatedGraphic = React125__default.forwardRef(
16892
16892
  const fetchedSvg = useFetchedSvg(svgContent ? void 0 : src);
16893
16893
  const resolvedSvg = svgContent ?? fetchedSvg;
16894
16894
  const prevAnimateRef = useRef(animate);
16895
- const setRef = React125__default.useCallback(
16895
+ const setRef = React126__default.useCallback(
16896
16896
  (node) => {
16897
16897
  containerRef.current = node;
16898
16898
  if (typeof ref === "function") ref(node);
@@ -17069,9 +17069,9 @@ function ScoreDisplay({
17069
17069
  ...rest
17070
17070
  }) {
17071
17071
  const resolvedValue = typeof value === "number" && !Number.isNaN(value) ? value : typeof rest.score === "number" && !Number.isNaN(rest.score) ? rest.score : 0;
17072
- const [displayValue, setDisplayValue] = React125.useState(resolvedValue);
17073
- const [isAnimating, setIsAnimating] = React125.useState(false);
17074
- React125.useEffect(() => {
17072
+ const [displayValue, setDisplayValue] = React126.useState(resolvedValue);
17073
+ const [isAnimating, setIsAnimating] = React126.useState(false);
17074
+ React126.useEffect(() => {
17075
17075
  if (!animated || displayValue === resolvedValue) {
17076
17076
  setDisplayValue(resolvedValue);
17077
17077
  return;
@@ -17148,9 +17148,9 @@ function ControlButton({
17148
17148
  className
17149
17149
  }) {
17150
17150
  const eventBus = useEventBus();
17151
- const [isPressed, setIsPressed] = React125.useState(false);
17151
+ const [isPressed, setIsPressed] = React126.useState(false);
17152
17152
  const actualPressed = pressed ?? isPressed;
17153
- const handlePointerDown = React125.useCallback(
17153
+ const handlePointerDown = React126.useCallback(
17154
17154
  (e) => {
17155
17155
  e.preventDefault();
17156
17156
  if (disabled) return;
@@ -17160,7 +17160,7 @@ function ControlButton({
17160
17160
  },
17161
17161
  [disabled, pressEvent, eventBus, onPress]
17162
17162
  );
17163
- const handlePointerUp = React125.useCallback(
17163
+ const handlePointerUp = React126.useCallback(
17164
17164
  (e) => {
17165
17165
  e.preventDefault();
17166
17166
  if (disabled) return;
@@ -17170,7 +17170,7 @@ function ControlButton({
17170
17170
  },
17171
17171
  [disabled, releaseEvent, eventBus, onRelease]
17172
17172
  );
17173
- const handlePointerLeave = React125.useCallback(
17173
+ const handlePointerLeave = React126.useCallback(
17174
17174
  (e) => {
17175
17175
  if (isPressed) {
17176
17176
  setIsPressed(false);
@@ -18006,9 +18006,9 @@ function MiniMap({
18006
18006
  viewportRect,
18007
18007
  className
18008
18008
  }) {
18009
- const canvasRef = React125.useRef(null);
18010
- const frameRef = React125.useRef(0);
18011
- React125.useEffect(() => {
18009
+ const canvasRef = React126.useRef(null);
18010
+ const frameRef = React126.useRef(0);
18011
+ React126.useEffect(() => {
18012
18012
  const canvas = canvasRef.current;
18013
18013
  if (!canvas) return;
18014
18014
  const ctx = canvas.getContext("2d");
@@ -18244,7 +18244,7 @@ var ErrorState = ({
18244
18244
  );
18245
18245
  };
18246
18246
  ErrorState.displayName = "ErrorState";
18247
- var ErrorBoundary = class extends React125__default.Component {
18247
+ var ErrorBoundary = class extends React126__default.Component {
18248
18248
  constructor(props) {
18249
18249
  super(props);
18250
18250
  __publicField(this, "reset", () => {
@@ -18647,8 +18647,8 @@ var Tooltip = ({
18647
18647
  if (hideTimeoutRef.current) clearTimeout(hideTimeoutRef.current);
18648
18648
  };
18649
18649
  }, []);
18650
- const triggerElement = React125__default.isValidElement(children) ? children : /* @__PURE__ */ jsx("span", { children });
18651
- const trigger = React125__default.cloneElement(triggerElement, {
18650
+ const triggerElement = React126__default.isValidElement(children) ? children : /* @__PURE__ */ jsx("span", { children });
18651
+ const trigger = React126__default.cloneElement(triggerElement, {
18652
18652
  ref: triggerRef,
18653
18653
  onMouseEnter: handleMouseEnter,
18654
18654
  onMouseLeave: handleMouseLeave,
@@ -18765,8 +18765,8 @@ var Popover = ({
18765
18765
  onMouseEnter: handleOpen,
18766
18766
  onMouseLeave: handleClose
18767
18767
  };
18768
- const childElement = React125__default.isValidElement(children) ? children : /* @__PURE__ */ jsx("span", { children });
18769
- const triggerElement = React125__default.cloneElement(
18768
+ const childElement = React126__default.isValidElement(children) ? children : /* @__PURE__ */ jsx("span", { children });
18769
+ const triggerElement = React126__default.cloneElement(
18770
18770
  childElement,
18771
18771
  {
18772
18772
  ref: triggerRef,
@@ -18873,8 +18873,8 @@ var Menu = ({
18873
18873
  "bottom-start": "top-full left-0 mt-2",
18874
18874
  "bottom-end": "top-full right-0 mt-2"
18875
18875
  };
18876
- const triggerChild = React125__default.isValidElement(trigger) ? trigger : /* @__PURE__ */ jsx("span", { children: trigger });
18877
- const triggerElement = React125__default.cloneElement(
18876
+ const triggerChild = React126__default.isValidElement(trigger) ? trigger : /* @__PURE__ */ jsx("span", { children: trigger });
18877
+ const triggerElement = React126__default.cloneElement(
18878
18878
  triggerChild,
18879
18879
  {
18880
18880
  ref: triggerRef,
@@ -19347,7 +19347,7 @@ var MapViewImpl = lazy(async () => {
19347
19347
  shadowSize: [41, 41]
19348
19348
  });
19349
19349
  L.Marker.prototype.options.icon = defaultIcon;
19350
- const { useEffect: useEffect88, useRef: useRef88, useCallback: useCallback124, useState: useState124 } = React125__default;
19350
+ const { useEffect: useEffect88, useRef: useRef88, useCallback: useCallback125, useState: useState125 } = React126__default;
19351
19351
  const { Typography: Typography2 } = await Promise.resolve().then(() => (init_Typography(), Typography_exports));
19352
19352
  const { useEventBus: useEventBus3 } = await Promise.resolve().then(() => (init_useEventBus(), useEventBus_exports));
19353
19353
  function MapUpdater({ centerLat, centerLng, zoom }) {
@@ -19391,8 +19391,8 @@ var MapViewImpl = lazy(async () => {
19391
19391
  showAttribution = true
19392
19392
  }) {
19393
19393
  const eventBus = useEventBus3();
19394
- const [clickedPosition, setClickedPosition] = useState124(null);
19395
- const handleMapClick = useCallback124((lat, lng) => {
19394
+ const [clickedPosition, setClickedPosition] = useState125(null);
19395
+ const handleMapClick = useCallback125((lat, lng) => {
19396
19396
  if (showClickedPin) {
19397
19397
  setClickedPosition({ lat, lng });
19398
19398
  }
@@ -19401,7 +19401,7 @@ var MapViewImpl = lazy(async () => {
19401
19401
  eventBus.emit(`UI:${mapClickEvent}`, { latitude: lat, longitude: lng });
19402
19402
  }
19403
19403
  }, [onMapClick, mapClickEvent, eventBus, showClickedPin]);
19404
- const handleMarkerClick = useCallback124((marker) => {
19404
+ const handleMarkerClick = useCallback125((marker) => {
19405
19405
  onMarkerClick?.(marker);
19406
19406
  if (markerClickEvent) {
19407
19407
  eventBus.emit(`UI:${markerClickEvent}`, { ...marker });
@@ -19621,7 +19621,7 @@ function InputPattern({
19621
19621
  className
19622
19622
  }) {
19623
19623
  const { emit } = useEventBus();
19624
- const [localValue, setLocalValue] = React125__default.useState(value);
19624
+ const [localValue, setLocalValue] = React126__default.useState(value);
19625
19625
  const handleChange = (e) => {
19626
19626
  setLocalValue(e.target.value);
19627
19627
  if (onChange) {
@@ -19658,7 +19658,7 @@ function TextareaPattern({
19658
19658
  className
19659
19659
  }) {
19660
19660
  const { emit } = useEventBus();
19661
- const [localValue, setLocalValue] = React125__default.useState(value);
19661
+ const [localValue, setLocalValue] = React126__default.useState(value);
19662
19662
  const handleChange = (e) => {
19663
19663
  setLocalValue(e.target.value);
19664
19664
  if (onChange) {
@@ -19689,7 +19689,7 @@ function SelectPattern({
19689
19689
  className
19690
19690
  }) {
19691
19691
  const { emit } = useEventBus();
19692
- const [localValue, setLocalValue] = React125__default.useState(value);
19692
+ const [localValue, setLocalValue] = React126__default.useState(value);
19693
19693
  const handleChange = (e) => {
19694
19694
  setLocalValue(e.target.value);
19695
19695
  if (onChange) {
@@ -19718,7 +19718,7 @@ function CheckboxPattern({
19718
19718
  className
19719
19719
  }) {
19720
19720
  const { emit } = useEventBus();
19721
- const [localChecked, setLocalChecked] = React125__default.useState(checked);
19721
+ const [localChecked, setLocalChecked] = React126__default.useState(checked);
19722
19722
  const handleChange = (e) => {
19723
19723
  setLocalChecked(e.target.checked);
19724
19724
  if (onChange) {
@@ -19923,8 +19923,8 @@ function ActionButtons({
19923
19923
  disabled
19924
19924
  }) {
19925
19925
  const eventBus = useEventBus();
19926
- const [activeButtons, setActiveButtons] = React125.useState(/* @__PURE__ */ new Set());
19927
- const handlePress = React125.useCallback(
19926
+ const [activeButtons, setActiveButtons] = React126.useState(/* @__PURE__ */ new Set());
19927
+ const handlePress = React126.useCallback(
19928
19928
  (id) => {
19929
19929
  setActiveButtons((prev) => new Set(prev).add(id));
19930
19930
  if (actionEvent) eventBus.emit(`UI:${actionEvent}`, { id, pressed: true });
@@ -19932,7 +19932,7 @@ function ActionButtons({
19932
19932
  },
19933
19933
  [actionEvent, eventBus, onAction]
19934
19934
  );
19935
- const handleRelease = React125.useCallback(
19935
+ const handleRelease = React126.useCallback(
19936
19936
  (id) => {
19937
19937
  setActiveButtons((prev) => {
19938
19938
  const next = new Set(prev);
@@ -21859,7 +21859,7 @@ ScaledDiagram.displayName = "ScaledDiagram";
21859
21859
  init_Stack();
21860
21860
  init_Box();
21861
21861
  init_cn();
21862
- var MarkdownContent = React125__default.memo(
21862
+ var MarkdownContent = React126__default.memo(
21863
21863
  ({ content, direction, className }) => {
21864
21864
  const { t: _t } = useTranslate();
21865
21865
  const safeContent = typeof content === "string" ? content : String(content ?? "");
@@ -22069,7 +22069,7 @@ function computeFoldRegions(code) {
22069
22069
  }
22070
22070
  var LINE_PROPS_FN = (n) => ({ "data-line": String(n - 1) });
22071
22071
  var HIDDEN_LINE_NUMBERS = { display: "none" };
22072
- var CodeBlock = React125__default.memo(
22072
+ var CodeBlock = React126__default.memo(
22073
22073
  ({
22074
22074
  code: rawCode,
22075
22075
  language = "text",
@@ -23356,7 +23356,7 @@ var StateMachineView = ({
23356
23356
  style: { top: title ? 30 : 0 },
23357
23357
  children: [
23358
23358
  entity && /* @__PURE__ */ jsx(EntityBox, { entity, config }),
23359
- states.map((state) => renderStateNode ? /* @__PURE__ */ jsx(React125__default.Fragment, { children: renderStateNode(state, config) }, state.id) : /* @__PURE__ */ jsx(
23359
+ states.map((state) => renderStateNode ? /* @__PURE__ */ jsx(React126__default.Fragment, { children: renderStateNode(state, config) }, state.id) : /* @__PURE__ */ jsx(
23360
23360
  StateNode,
23361
23361
  {
23362
23362
  state,
@@ -28882,7 +28882,7 @@ function CraftingRecipe({
28882
28882
  className
28883
28883
  }) {
28884
28884
  const eventBus = useEventBus();
28885
- const handleCraft = React125.useCallback(() => {
28885
+ const handleCraft = React126.useCallback(() => {
28886
28886
  onCraft?.();
28887
28887
  if (craftEvent) {
28888
28888
  eventBus.emit(craftEvent, { output: output.label });
@@ -28899,7 +28899,7 @@ function CraftingRecipe({
28899
28899
  children: [
28900
28900
  /* @__PURE__ */ jsx(HStack, { gap: "xs", className: "flex-wrap items-center", children: inputs.map((ingredient, index) => {
28901
28901
  const hasSufficient = ingredient.available >= ingredient.required;
28902
- return /* @__PURE__ */ jsxs(React125.Fragment, { children: [
28902
+ return /* @__PURE__ */ jsxs(React126.Fragment, { children: [
28903
28903
  /* @__PURE__ */ jsx(Box, { className: "relative", children: /* @__PURE__ */ jsx(
28904
28904
  ItemSlot,
28905
28905
  {
@@ -29188,8 +29188,8 @@ function DPad({
29188
29188
  }) {
29189
29189
  const eventBus = useEventBus();
29190
29190
  const sizes = sizeMap15[size];
29191
- const [activeDirections, setActiveDirections] = React125.useState(/* @__PURE__ */ new Set());
29192
- const handlePress = React125.useCallback(
29191
+ const [activeDirections, setActiveDirections] = React126.useState(/* @__PURE__ */ new Set());
29192
+ const handlePress = React126.useCallback(
29193
29193
  (direction) => {
29194
29194
  setActiveDirections((prev) => new Set(prev).add(direction));
29195
29195
  if (directionEvent) eventBus.emit(`UI:${directionEvent}`, { direction, pressed: true });
@@ -29197,7 +29197,7 @@ function DPad({
29197
29197
  },
29198
29198
  [directionEvent, eventBus, onDirection]
29199
29199
  );
29200
- const handleRelease = React125.useCallback(
29200
+ const handleRelease = React126.useCallback(
29201
29201
  (direction) => {
29202
29202
  setActiveDirections((prev) => {
29203
29203
  const next = new Set(prev);
@@ -30008,7 +30008,7 @@ var DataList = ({
30008
30008
  }) => {
30009
30009
  const eventBus = useEventBus();
30010
30010
  const { t } = useTranslate();
30011
- const [visibleCount, setVisibleCount] = React125__default.useState(pageSize || Infinity);
30011
+ const [visibleCount, setVisibleCount] = React126__default.useState(pageSize || Infinity);
30012
30012
  const fields = fieldsProp ?? columnsProp ?? [];
30013
30013
  const allData = Array.isArray(entity) ? entity : entity ? [entity] : [];
30014
30014
  const data = pageSize > 0 ? allData.slice(0, visibleCount) : allData;
@@ -30045,7 +30045,7 @@ var DataList = ({
30045
30045
  const items2 = data.map((item) => item);
30046
30046
  const groups2 = groupBy ? groupData(items2, groupBy) : [{ label: "", items: items2 }];
30047
30047
  const contentField = titleField?.name ?? fields[0]?.name ?? "";
30048
- return /* @__PURE__ */ jsx(VStack, { gap: "sm", className: cn("py-2", className), children: groups2.map((group, gi) => /* @__PURE__ */ jsxs(React125__default.Fragment, { children: [
30048
+ return /* @__PURE__ */ jsx(VStack, { gap: "sm", className: cn("py-2", className), children: groups2.map((group, gi) => /* @__PURE__ */ jsxs(React126__default.Fragment, { children: [
30049
30049
  group.label && /* @__PURE__ */ jsx(Divider, { label: group.label, className: "my-2" }),
30050
30050
  group.items.map((itemData, index) => {
30051
30051
  const id = itemData.id || `${gi}-${index}`;
@@ -30248,7 +30248,7 @@ var DataList = ({
30248
30248
  className
30249
30249
  ),
30250
30250
  children: [
30251
- groups.map((group, gi) => /* @__PURE__ */ jsxs(React125__default.Fragment, { children: [
30251
+ groups.map((group, gi) => /* @__PURE__ */ jsxs(React126__default.Fragment, { children: [
30252
30252
  group.label && /* @__PURE__ */ jsx(Divider, { label: group.label, className: gi > 0 ? "mt-4" : "mt-0" }),
30253
30253
  group.items.map(
30254
30254
  (itemData, index) => renderItem(itemData, index, gi === groups.length - 1 && index === group.items.length - 1)
@@ -30289,6 +30289,10 @@ init_Box();
30289
30289
  init_Stack();
30290
30290
  init_Typography();
30291
30291
 
30292
+ // components/molecules/FileTree.tsx
30293
+ init_Box();
30294
+ init_Typography();
30295
+
30292
30296
  // components/molecules/FormField.tsx
30293
30297
  init_cn();
30294
30298
  init_Typography();
@@ -31315,7 +31319,7 @@ var WizardProgress = ({
31315
31319
  children: /* @__PURE__ */ jsx("div", { className: "flex items-center gap-2", children: steps.map((step, index) => {
31316
31320
  const isActive = index === currentStep;
31317
31321
  const isCompleted = index < currentStep;
31318
- return /* @__PURE__ */ jsxs(React125__default.Fragment, { children: [
31322
+ return /* @__PURE__ */ jsxs(React126__default.Fragment, { children: [
31319
31323
  /* @__PURE__ */ jsx(
31320
31324
  "button",
31321
31325
  {
@@ -32185,7 +32189,7 @@ function InventoryGrid({
32185
32189
  const eventBus = useEventBus();
32186
32190
  const slotCount = totalSlots ?? items.length;
32187
32191
  const emptySlotCount = Math.max(0, slotCount - items.length);
32188
- const handleSelect = React125.useCallback(
32192
+ const handleSelect = React126.useCallback(
32189
32193
  (id) => {
32190
32194
  onSelect?.(id);
32191
32195
  if (selectEvent) {
@@ -32374,15 +32378,15 @@ function GameCanvas2D({
32374
32378
  fps = 60,
32375
32379
  className
32376
32380
  }) {
32377
- const canvasRef = React125.useRef(null);
32378
- const rafRef = React125.useRef(0);
32379
- const frameRef = React125.useRef(0);
32380
- const lastTimeRef = React125.useRef(0);
32381
- const onDrawRef = React125.useRef(onDraw);
32381
+ const canvasRef = React126.useRef(null);
32382
+ const rafRef = React126.useRef(0);
32383
+ const frameRef = React126.useRef(0);
32384
+ const lastTimeRef = React126.useRef(0);
32385
+ const onDrawRef = React126.useRef(onDraw);
32382
32386
  onDrawRef.current = onDraw;
32383
- const onTickRef = React125.useRef(onTick);
32387
+ const onTickRef = React126.useRef(onTick);
32384
32388
  onTickRef.current = onTick;
32385
- React125.useEffect(() => {
32389
+ React126.useEffect(() => {
32386
32390
  const canvas = canvasRef.current;
32387
32391
  if (!canvas) return;
32388
32392
  const ctx = canvas.getContext("2d");
@@ -32653,7 +32657,7 @@ function TurnPanel({
32653
32657
  className
32654
32658
  }) {
32655
32659
  const eventBus = useEventBus();
32656
- const handleAction = React125.useCallback(
32660
+ const handleAction = React126.useCallback(
32657
32661
  (event) => {
32658
32662
  if (event) {
32659
32663
  eventBus.emit(event, { turn: currentTurn, phase, activeTeam });
@@ -32789,7 +32793,7 @@ function UnitCommandBar({
32789
32793
  className
32790
32794
  }) {
32791
32795
  const eventBus = useEventBus();
32792
- const handleCommand = React125.useCallback(
32796
+ const handleCommand = React126.useCallback(
32793
32797
  (event) => {
32794
32798
  if (event) {
32795
32799
  eventBus.emit(event, { unitId: selectedUnitId });
@@ -33263,7 +33267,7 @@ function GameMenu({
33263
33267
  } catch {
33264
33268
  }
33265
33269
  const eventBus = eventBusProp || eventBusFromHook;
33266
- const handleOptionClick = React125.useCallback(
33270
+ const handleOptionClick = React126.useCallback(
33267
33271
  (option) => {
33268
33272
  if (option.event && eventBus) {
33269
33273
  eventBus.emit(`UI:${option.event}`, { option });
@@ -33390,7 +33394,7 @@ function GameOverScreen({
33390
33394
  } catch {
33391
33395
  }
33392
33396
  const eventBus = eventBusProp || eventBusFromHook;
33393
- const handleActionClick = React125.useCallback(
33397
+ const handleActionClick = React126.useCallback(
33394
33398
  (action) => {
33395
33399
  if (action.event && eventBus) {
33396
33400
  eventBus.emit(`UI:${action.event}`, { action });
@@ -36795,7 +36799,7 @@ var DocumentViewer = ({
36795
36799
  DocumentViewer.displayName = "DocumentViewer";
36796
36800
  init_useEventBus();
36797
36801
  function extractTitle(children) {
36798
- if (!React125__default.isValidElement(children)) return void 0;
36802
+ if (!React126__default.isValidElement(children)) return void 0;
36799
36803
  const props = children.props;
36800
36804
  if (typeof props.title === "string") {
36801
36805
  return props.title;
@@ -36855,7 +36859,7 @@ function LinearView({
36855
36859
  /* @__PURE__ */ jsx(HStack, { className: "flex-wrap items-center", gap: "xs", children: trait.states.map((state, i) => {
36856
36860
  const isDone = i < currentIdx;
36857
36861
  const isCurrent = i === currentIdx;
36858
- return /* @__PURE__ */ jsxs(React125__default.Fragment, { children: [
36862
+ return /* @__PURE__ */ jsxs(React126__default.Fragment, { children: [
36859
36863
  i > 0 && /* @__PURE__ */ jsx(
36860
36864
  Typography,
36861
36865
  {
@@ -37531,7 +37535,7 @@ var Form = ({
37531
37535
  const normalizedInitialData = initialData ?? {};
37532
37536
  const resolvedEntity = entity && typeof entity === "object" && !Array.isArray(entity) ? entity : void 0;
37533
37537
  const entityName = typeof entity === "string" ? entity : resolvedEntity?.name;
37534
- const entityDerivedFields = React125__default.useMemo(() => {
37538
+ const entityDerivedFields = React126__default.useMemo(() => {
37535
37539
  if (fields && fields.length > 0) return void 0;
37536
37540
  if (!resolvedEntity) return void 0;
37537
37541
  return resolvedEntity.fields.map(
@@ -37550,14 +37554,14 @@ var Form = ({
37550
37554
  const conditionalFields = typeof conditionalFieldsRaw === "boolean" ? {} : conditionalFieldsRaw;
37551
37555
  const hiddenCalculations = typeof hiddenCalculationsRaw === "boolean" ? [] : hiddenCalculationsRaw;
37552
37556
  const violationTriggers = typeof violationTriggersRaw === "boolean" ? [] : violationTriggersRaw;
37553
- const [formData, setFormData] = React125__default.useState(
37557
+ const [formData, setFormData] = React126__default.useState(
37554
37558
  normalizedInitialData
37555
37559
  );
37556
- const [collapsedSections, setCollapsedSections] = React125__default.useState(
37560
+ const [collapsedSections, setCollapsedSections] = React126__default.useState(
37557
37561
  /* @__PURE__ */ new Set()
37558
37562
  );
37559
37563
  const shouldShowCancel = showCancel ?? (fields && fields.length > 0);
37560
- const evalContext = React125__default.useMemo(
37564
+ const evalContext = React126__default.useMemo(
37561
37565
  () => ({
37562
37566
  formValues: formData,
37563
37567
  globalVariables: externalContext?.globalVariables ?? {},
@@ -37566,13 +37570,13 @@ var Form = ({
37566
37570
  }),
37567
37571
  [formData, externalContext]
37568
37572
  );
37569
- React125__default.useEffect(() => {
37573
+ React126__default.useEffect(() => {
37570
37574
  const data = initialData;
37571
37575
  if (data && Object.keys(data).length > 0) {
37572
37576
  setFormData(data);
37573
37577
  }
37574
37578
  }, [initialData]);
37575
- const processCalculations = React125__default.useCallback(
37579
+ const processCalculations = React126__default.useCallback(
37576
37580
  (changedFieldId, newFormData) => {
37577
37581
  if (!hiddenCalculations.length) return;
37578
37582
  const context = {
@@ -37597,7 +37601,7 @@ var Form = ({
37597
37601
  },
37598
37602
  [hiddenCalculations, externalContext, eventBus]
37599
37603
  );
37600
- const checkViolations = React125__default.useCallback(
37604
+ const checkViolations = React126__default.useCallback(
37601
37605
  (changedFieldId, newFormData) => {
37602
37606
  if (!violationTriggers.length) return;
37603
37607
  const context = {
@@ -37634,7 +37638,7 @@ var Form = ({
37634
37638
  processCalculations(name, newFormData);
37635
37639
  checkViolations(name, newFormData);
37636
37640
  };
37637
- const isFieldVisible = React125__default.useCallback(
37641
+ const isFieldVisible = React126__default.useCallback(
37638
37642
  (fieldName) => {
37639
37643
  const condition = conditionalFields[fieldName];
37640
37644
  if (!condition) return true;
@@ -37642,7 +37646,7 @@ var Form = ({
37642
37646
  },
37643
37647
  [conditionalFields, evalContext]
37644
37648
  );
37645
- const isSectionVisible = React125__default.useCallback(
37649
+ const isSectionVisible = React126__default.useCallback(
37646
37650
  (section) => {
37647
37651
  if (!section.condition) return true;
37648
37652
  return Boolean(evaluateFormExpression(section.condition, evalContext));
@@ -37674,7 +37678,7 @@ var Form = ({
37674
37678
  eventBus.emit(`UI:${onCancel}`);
37675
37679
  }
37676
37680
  };
37677
- const renderField = React125__default.useCallback(
37681
+ const renderField = React126__default.useCallback(
37678
37682
  (field) => {
37679
37683
  const fieldName = field.name || field.field;
37680
37684
  if (!fieldName) return null;
@@ -37695,7 +37699,7 @@ var Form = ({
37695
37699
  [formData, isFieldVisible, relationsData, relationsLoading, isLoading]
37696
37700
  );
37697
37701
  const effectiveFields = entityDerivedFields ?? fields;
37698
- const normalizedFields = React125__default.useMemo(() => {
37702
+ const normalizedFields = React126__default.useMemo(() => {
37699
37703
  if (!effectiveFields || effectiveFields.length === 0) return [];
37700
37704
  return effectiveFields.map((field) => {
37701
37705
  if (typeof field === "string") {
@@ -37717,7 +37721,7 @@ var Form = ({
37717
37721
  return field;
37718
37722
  });
37719
37723
  }, [effectiveFields, resolvedEntity]);
37720
- const schemaFields = React125__default.useMemo(() => {
37724
+ const schemaFields = React126__default.useMemo(() => {
37721
37725
  if (normalizedFields.length === 0) return null;
37722
37726
  if (isDebugEnabled()) {
37723
37727
  debugGroup(`Form: ${entityName || "unknown"}`);
@@ -37727,7 +37731,7 @@ var Form = ({
37727
37731
  }
37728
37732
  return normalizedFields.map(renderField).filter(Boolean);
37729
37733
  }, [normalizedFields, renderField, entityName, conditionalFields]);
37730
- const sectionElements = React125__default.useMemo(() => {
37734
+ const sectionElements = React126__default.useMemo(() => {
37731
37735
  if (!sections || sections.length === 0) return null;
37732
37736
  return sections.map((section) => {
37733
37737
  if (!isSectionVisible(section)) {
@@ -39165,7 +39169,7 @@ var List2 = ({
39165
39169
  if (entity && typeof entity === "object" && "id" in entity) return [entity];
39166
39170
  return [];
39167
39171
  }, [entity]);
39168
- const getItemActions = React125__default.useCallback(
39172
+ const getItemActions = React126__default.useCallback(
39169
39173
  (item) => {
39170
39174
  if (!itemActions) return [];
39171
39175
  if (typeof itemActions === "function") {
@@ -39600,7 +39604,7 @@ var MediaGallery = ({
39600
39604
  [selectable, selectedItems, selectionEvent, eventBus]
39601
39605
  );
39602
39606
  const entityData = Array.isArray(entity) ? entity : [];
39603
- const items = React125__default.useMemo(() => {
39607
+ const items = React126__default.useMemo(() => {
39604
39608
  if (propItems) return propItems;
39605
39609
  if (entityData.length === 0) return [];
39606
39610
  return entityData.map((record, idx) => ({
@@ -39763,7 +39767,7 @@ var MediaGallery = ({
39763
39767
  MediaGallery.displayName = "MediaGallery";
39764
39768
  init_useEventBus();
39765
39769
  function extractTitle2(children) {
39766
- if (!React125__default.isValidElement(children)) return void 0;
39770
+ if (!React126__default.isValidElement(children)) return void 0;
39767
39771
  const props = children.props;
39768
39772
  if (typeof props.title === "string") {
39769
39773
  return props.title;
@@ -40449,7 +40453,7 @@ var PageHeader = ({
40449
40453
  info: "bg-info/10 text-info"
40450
40454
  };
40451
40455
  return /* @__PURE__ */ jsxs(Box, { className: cn("mb-6", className), children: [
40452
- 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(React125__default.Fragment, { children: [
40456
+ 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(React126__default.Fragment, { children: [
40453
40457
  idx > 0 && /* @__PURE__ */ jsx(Typography, { variant: "small", color: "muted", children: "/" }),
40454
40458
  crumb.href ? /* @__PURE__ */ jsx(
40455
40459
  "a",
@@ -40608,7 +40612,7 @@ function subscribeToDebugEvents(listener) {
40608
40612
 
40609
40613
  // components/organisms/debug/hooks/useDebugData.ts
40610
40614
  function useDebugData() {
40611
- const [data, setData] = React125.useState(() => ({
40615
+ const [data, setData] = React126.useState(() => ({
40612
40616
  traits: [],
40613
40617
  ticks: [],
40614
40618
  guards: [],
@@ -40622,7 +40626,7 @@ function useDebugData() {
40622
40626
  },
40623
40627
  lastUpdate: Date.now()
40624
40628
  }));
40625
- React125.useEffect(() => {
40629
+ React126.useEffect(() => {
40626
40630
  const updateData = () => {
40627
40631
  setData({
40628
40632
  traits: getAllTraits(),
@@ -40723,12 +40727,12 @@ function layoutGraph(states, transitions, initialState, width, height) {
40723
40727
  return positions;
40724
40728
  }
40725
40729
  function WalkMinimap() {
40726
- const [walkStep, setWalkStep] = React125.useState(null);
40727
- const [traits2, setTraits] = React125.useState([]);
40728
- const [coveredEdges, setCoveredEdges] = React125.useState([]);
40729
- const [completedTraits, setCompletedTraits] = React125.useState(/* @__PURE__ */ new Set());
40730
- const prevTraitRef = React125.useRef(null);
40731
- React125.useEffect(() => {
40730
+ const [walkStep, setWalkStep] = React126.useState(null);
40731
+ const [traits2, setTraits] = React126.useState([]);
40732
+ const [coveredEdges, setCoveredEdges] = React126.useState([]);
40733
+ const [completedTraits, setCompletedTraits] = React126.useState(/* @__PURE__ */ new Set());
40734
+ const prevTraitRef = React126.useRef(null);
40735
+ React126.useEffect(() => {
40732
40736
  const interval = setInterval(() => {
40733
40737
  const w = window;
40734
40738
  const step = w.__orbitalWalkStep;
@@ -41160,15 +41164,15 @@ var TYPE_BADGES = {
41160
41164
  state: { variant: "danger", icon: "\u{1F4CA}" }
41161
41165
  };
41162
41166
  function EventFlowTab({ events: events2 }) {
41163
- const [filter, setFilter] = React125.useState("all");
41164
- const containerRef = React125.useRef(null);
41165
- const [autoScroll, setAutoScroll] = React125.useState(true);
41166
- React125.useEffect(() => {
41167
+ const [filter, setFilter] = React126.useState("all");
41168
+ const containerRef = React126.useRef(null);
41169
+ const [autoScroll, setAutoScroll] = React126.useState(true);
41170
+ React126.useEffect(() => {
41167
41171
  if (autoScroll && containerRef.current) {
41168
41172
  containerRef.current.scrollTop = containerRef.current.scrollHeight;
41169
41173
  }
41170
41174
  }, [events2.length, autoScroll]);
41171
- const filteredEvents = React125.useMemo(() => {
41175
+ const filteredEvents = React126.useMemo(() => {
41172
41176
  if (filter === "all") return events2;
41173
41177
  return events2.filter((e) => e.type === filter);
41174
41178
  }, [events2, filter]);
@@ -41269,7 +41273,7 @@ EventFlowTab.displayName = "EventFlowTab";
41269
41273
  init_Typography();
41270
41274
  init_Stack();
41271
41275
  function GuardsPanel({ guards }) {
41272
- const [filter, setFilter] = React125.useState("all");
41276
+ const [filter, setFilter] = React126.useState("all");
41273
41277
  if (guards.length === 0) {
41274
41278
  return /* @__PURE__ */ jsx(
41275
41279
  EmptyState,
@@ -41282,7 +41286,7 @@ function GuardsPanel({ guards }) {
41282
41286
  }
41283
41287
  const passedCount = guards.filter((g) => g.result).length;
41284
41288
  const failedCount = guards.length - passedCount;
41285
- const filteredGuards = React125.useMemo(() => {
41289
+ const filteredGuards = React126.useMemo(() => {
41286
41290
  if (filter === "all") return guards;
41287
41291
  if (filter === "passed") return guards.filter((g) => g.result);
41288
41292
  return guards.filter((g) => !g.result);
@@ -41431,10 +41435,10 @@ function EffectBadge({ effect }) {
41431
41435
  ] });
41432
41436
  }
41433
41437
  function TransitionTimeline({ transitions }) {
41434
- const containerRef = React125.useRef(null);
41435
- const [autoScroll, setAutoScroll] = React125.useState(true);
41436
- const [expandedId, setExpandedId] = React125.useState(null);
41437
- React125.useEffect(() => {
41438
+ const containerRef = React126.useRef(null);
41439
+ const [autoScroll, setAutoScroll] = React126.useState(true);
41440
+ const [expandedId, setExpandedId] = React126.useState(null);
41441
+ React126.useEffect(() => {
41438
41442
  if (autoScroll && containerRef.current) {
41439
41443
  containerRef.current.scrollTop = containerRef.current.scrollHeight;
41440
41444
  }
@@ -41702,9 +41706,9 @@ function getAllEvents(traits2) {
41702
41706
  }
41703
41707
  function EventDispatcherTab({ traits: traits2, schema }) {
41704
41708
  const eventBus = useEventBus();
41705
- const [log4, setLog] = React125.useState([]);
41706
- const prevStatesRef = React125.useRef(/* @__PURE__ */ new Map());
41707
- React125.useEffect(() => {
41709
+ const [log4, setLog] = React126.useState([]);
41710
+ const prevStatesRef = React126.useRef(/* @__PURE__ */ new Map());
41711
+ React126.useEffect(() => {
41708
41712
  for (const trait of traits2) {
41709
41713
  const prev = prevStatesRef.current.get(trait.id);
41710
41714
  if (prev && prev !== trait.currentState) {
@@ -41857,9 +41861,9 @@ function VerifyModePanel({
41857
41861
  serverCount,
41858
41862
  localCount
41859
41863
  }) {
41860
- const scrollRef = React125.useRef(null);
41861
- const prevCountRef = React125.useRef(0);
41862
- React125.useEffect(() => {
41864
+ const scrollRef = React126.useRef(null);
41865
+ const prevCountRef = React126.useRef(0);
41866
+ React126.useEffect(() => {
41863
41867
  if (transitions.length > prevCountRef.current && scrollRef.current) {
41864
41868
  scrollRef.current.scrollTop = scrollRef.current.scrollHeight;
41865
41869
  }
@@ -41907,10 +41911,10 @@ function RuntimeDebugger({
41907
41911
  defaultTab,
41908
41912
  schema
41909
41913
  }) {
41910
- const [isCollapsed, setIsCollapsed] = React125.useState(mode === "verify" ? true : defaultCollapsed);
41911
- const [isVisible, setIsVisible] = React125.useState(mode === "inline" || mode === "verify" || isDebugEnabled2());
41914
+ const [isCollapsed, setIsCollapsed] = React126.useState(mode === "verify" ? true : defaultCollapsed);
41915
+ const [isVisible, setIsVisible] = React126.useState(mode === "inline" || mode === "verify" || isDebugEnabled2());
41912
41916
  const debugData = useDebugData();
41913
- React125.useEffect(() => {
41917
+ React126.useEffect(() => {
41914
41918
  if (mode === "inline") return;
41915
41919
  return onDebugToggle((enabled) => {
41916
41920
  setIsVisible(enabled);
@@ -41919,7 +41923,7 @@ function RuntimeDebugger({
41919
41923
  }
41920
41924
  });
41921
41925
  }, [mode]);
41922
- React125.useEffect(() => {
41926
+ React126.useEffect(() => {
41923
41927
  if (mode === "inline") return;
41924
41928
  const handleKeyDown = (e) => {
41925
41929
  if (e.key === "`" && isVisible) {
@@ -42437,7 +42441,7 @@ function SequenceBar({
42437
42441
  onSlotRemove(index);
42438
42442
  }, [onSlotRemove, playing]);
42439
42443
  const paddedSlots = Array.from({ length: maxSlots }, (_, i) => slots[i]);
42440
- return /* @__PURE__ */ jsx(HStack, { className: cn("items-center", className), gap: "sm", children: paddedSlots.map((slot, i) => /* @__PURE__ */ jsxs(React125__default.Fragment, { children: [
42444
+ return /* @__PURE__ */ jsx(HStack, { className: cn("items-center", className), gap: "sm", children: paddedSlots.map((slot, i) => /* @__PURE__ */ jsxs(React126__default.Fragment, { children: [
42441
42445
  i > 0 && /* @__PURE__ */ jsx(
42442
42446
  Typography,
42443
42447
  {
@@ -43706,7 +43710,7 @@ var StatCard = ({
43706
43710
  const labelToUse = propLabel ?? propTitle;
43707
43711
  const eventBus = useEventBus();
43708
43712
  const { t } = useTranslate();
43709
- const handleActionClick = React125__default.useCallback(() => {
43713
+ const handleActionClick = React126__default.useCallback(() => {
43710
43714
  if (action?.event) {
43711
43715
  eventBus.emit(`UI:${action.event}`, {});
43712
43716
  }
@@ -43717,7 +43721,7 @@ var StatCard = ({
43717
43721
  const data = Array.isArray(entity) ? entity : entity ? [entity] : [];
43718
43722
  const isLoading = externalLoading ?? false;
43719
43723
  const error = externalError;
43720
- const computeMetricValue = React125__default.useCallback(
43724
+ const computeMetricValue = React126__default.useCallback(
43721
43725
  (metric, items) => {
43722
43726
  if (metric.value !== void 0) {
43723
43727
  return metric.value;
@@ -43756,7 +43760,7 @@ var StatCard = ({
43756
43760
  },
43757
43761
  []
43758
43762
  );
43759
- const schemaStats = React125__default.useMemo(() => {
43763
+ const schemaStats = React126__default.useMemo(() => {
43760
43764
  if (!metrics || metrics.length === 0) return null;
43761
43765
  return metrics.map((metric) => ({
43762
43766
  label: metric.label,
@@ -43764,7 +43768,7 @@ var StatCard = ({
43764
43768
  format: metric.format
43765
43769
  }));
43766
43770
  }, [metrics, data, computeMetricValue]);
43767
- const calculatedTrend = React125__default.useMemo(() => {
43771
+ const calculatedTrend = React126__default.useMemo(() => {
43768
43772
  if (manualTrend !== void 0) return manualTrend;
43769
43773
  if (previousValue === void 0 || currentValue === void 0)
43770
43774
  return void 0;
@@ -44699,7 +44703,7 @@ var Timeline = ({
44699
44703
  }) => {
44700
44704
  const { t } = useTranslate();
44701
44705
  const entityData = Array.isArray(entity) ? entity : [];
44702
- const items = React125__default.useMemo(() => {
44706
+ const items = React126__default.useMemo(() => {
44703
44707
  if (propItems) return propItems;
44704
44708
  if (entityData.length === 0) return [];
44705
44709
  return entityData.map((record, idx) => {
@@ -44803,7 +44807,7 @@ Timeline.displayName = "Timeline";
44803
44807
  init_Box();
44804
44808
  init_useEventBus();
44805
44809
  function extractToastProps(children) {
44806
- if (!React125__default.isValidElement(children)) {
44810
+ if (!React126__default.isValidElement(children)) {
44807
44811
  if (typeof children === "string") {
44808
44812
  return { message: children };
44809
44813
  }
@@ -44834,7 +44838,7 @@ var ToastSlot = ({
44834
44838
  eventBus.emit("UI:CLOSE");
44835
44839
  };
44836
44840
  if (!isVisible) return null;
44837
- const isCustomContent = React125__default.isValidElement(children) && !message;
44841
+ const isCustomContent = React126__default.isValidElement(children) && !message;
44838
44842
  return /* @__PURE__ */ jsx(Box, { className: "fixed bottom-4 right-4 z-50", children: isCustomContent ? children : /* @__PURE__ */ jsx(
44839
44843
  Toast,
44840
44844
  {
@@ -45088,7 +45092,7 @@ var WizardContainer = ({
45088
45092
  const isCompleted = index < currentStep;
45089
45093
  const stepKey = step.id ?? step.tabId ?? `step-${index}`;
45090
45094
  const stepTitle = step.title ?? step.name ?? `Step ${index + 1}`;
45091
- return /* @__PURE__ */ jsxs(React125__default.Fragment, { children: [
45095
+ return /* @__PURE__ */ jsxs(React126__default.Fragment, { children: [
45092
45096
  /* @__PURE__ */ jsx(
45093
45097
  Button,
45094
45098
  {
@@ -45459,12 +45463,12 @@ WorldMapTemplate.displayName = "WorldMapTemplate";
45459
45463
 
45460
45464
  // components/organisms/component-registry.generated.ts
45461
45465
  function lazyThree(name, loader) {
45462
- const Lazy = React125__default.lazy(() => loader().then((m) => ({ default: m[name] })));
45466
+ const Lazy = React126__default.lazy(() => loader().then((m) => ({ default: m[name] })));
45463
45467
  function ThreeWrapper(props) {
45464
- return React125__default.createElement(
45465
- React125__default.Suspense,
45468
+ return React126__default.createElement(
45469
+ React126__default.Suspense,
45466
45470
  { fallback: null },
45467
- React125__default.createElement(Lazy, props)
45471
+ React126__default.createElement(Lazy, props)
45468
45472
  );
45469
45473
  }
45470
45474
  ThreeWrapper.displayName = `Lazy(${name})`;
@@ -45752,7 +45756,7 @@ function SuspenseConfigProvider({
45752
45756
  config,
45753
45757
  children
45754
45758
  }) {
45755
- return React125__default.createElement(
45759
+ return React126__default.createElement(
45756
45760
  SuspenseConfigContext.Provider,
45757
45761
  { value: config },
45758
45762
  children
@@ -47499,7 +47503,7 @@ function SchemaRunner({ schema, serverUrl, mockData, pageName, onNavigate, onLoc
47499
47503
  const entityStore = useEntityStore();
47500
47504
  const seededRef = useRef("");
47501
47505
  const mockKey = mockData ? Object.keys(mockData).sort().join(",") : "";
47502
- React125__default.useLayoutEffect(() => {
47506
+ React126__default.useLayoutEffect(() => {
47503
47507
  if (!serverUrl && mockData && seededRef.current !== mockKey) {
47504
47508
  seededRef.current = mockKey;
47505
47509
  for (const [entityType, records] of Object.entries(mockData)) {
@@ -48006,7 +48010,7 @@ var OrbPreviewNodeInner = (props) => {
48006
48010
  }
48007
48011
  );
48008
48012
  };
48009
- var OrbPreviewNode = React125__default.memo(OrbPreviewNodeInner);
48013
+ var OrbPreviewNode = React126__default.memo(OrbPreviewNodeInner);
48010
48014
  OrbPreviewNode.displayName = "OrbPreviewNode";
48011
48015
  var EventFlowEdgeInner = (props) => {
48012
48016
  const {
@@ -48083,7 +48087,7 @@ var EventFlowEdgeInner = (props) => {
48083
48087
  ) })
48084
48088
  ] });
48085
48089
  };
48086
- var EventFlowEdge = React125__default.memo(EventFlowEdgeInner);
48090
+ var EventFlowEdge = React126__default.memo(EventFlowEdgeInner);
48087
48091
  EventFlowEdge.displayName = "EventFlowEdge";
48088
48092
 
48089
48093
  // components/molecules/avl/BehaviorComposeNode.tsx
@@ -48221,7 +48225,7 @@ var BehaviorComposeNodeInner = (props) => {
48221
48225
  }
48222
48226
  );
48223
48227
  };
48224
- var BehaviorComposeNode = React125__default.memo(BehaviorComposeNodeInner);
48228
+ var BehaviorComposeNode = React126__default.memo(BehaviorComposeNodeInner);
48225
48229
  BehaviorComposeNode.displayName = "BehaviorComposeNode";
48226
48230
 
48227
48231
  // components/molecules/avl/avl-behavior-compose-converter.ts
@@ -49155,7 +49159,7 @@ var ZoomBreadcrumb = ({
49155
49159
  if (eventName && band === "detail") {
49156
49160
  segments.push({ icon: "\u26A1", label: eventName });
49157
49161
  }
49158
- return /* @__PURE__ */ jsx("div", { className: "absolute top-2 left-2 z-10 flex items-center gap-1 px-2 py-1 rounded-md bg-card/90 border border-border text-[11px] text-muted-foreground backdrop-blur-sm", children: segments.map((seg, i) => /* @__PURE__ */ jsxs(React125__default.Fragment, { children: [
49162
+ return /* @__PURE__ */ jsx("div", { className: "absolute top-2 left-2 z-10 flex items-center gap-1 px-2 py-1 rounded-md bg-card/90 border border-border text-[11px] text-muted-foreground backdrop-blur-sm", children: segments.map((seg, i) => /* @__PURE__ */ jsxs(React126__default.Fragment, { children: [
49159
49163
  i > 0 && /* @__PURE__ */ jsx("span", { className: "opacity-40", children: ">" }),
49160
49164
  /* @__PURE__ */ jsx("span", { className: "opacity-60", children: seg.icon }),
49161
49165
  /* @__PURE__ */ jsx("span", { children: seg.label })
@@ -49612,7 +49616,7 @@ var EventWireOverlay = ({
49612
49616
  containerW,
49613
49617
  containerH
49614
49618
  }) => {
49615
- const ids = React125__default.useMemo(() => {
49619
+ const ids = React126__default.useMemo(() => {
49616
49620
  avlOczWireId += 1;
49617
49621
  return { arrow: `avl-ocz-wire-${avlOczWireId}-arrow` };
49618
49622
  }, []);
@@ -49930,7 +49934,7 @@ var AvlOrbitalsCosmicZoom = ({
49930
49934
  borderRadius: 6,
49931
49935
  border: `1px solid ${color}`
49932
49936
  },
49933
- children: /* @__PURE__ */ jsx(HStack, { gap: "xs", align: "center", children: breadcrumbs.map((crumb, i) => /* @__PURE__ */ jsxs(React125__default.Fragment, { children: [
49937
+ children: /* @__PURE__ */ jsx(HStack, { gap: "xs", align: "center", children: breadcrumbs.map((crumb, i) => /* @__PURE__ */ jsxs(React126__default.Fragment, { children: [
49934
49938
  i > 0 && /* @__PURE__ */ jsx(Typography, { variant: "small", style: { opacity: 0.5, color }, children: "/" }),
49935
49939
  i < breadcrumbs.length - 1 ? /* @__PURE__ */ jsx(
49936
49940
  Box,