@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.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",
@@ -22270,7 +22270,7 @@ var CodeBlock = React125__default.memo(
22270
22270
  }
22271
22271
  };
22272
22272
  const hasHeader = showLanguageBadge || showCopyButton;
22273
- return /* @__PURE__ */ jsxs(Box, { className: `relative group ${className || ""}`, children: [
22273
+ return /* @__PURE__ */ jsxs(Box, { className: `relative group ${className || ""}`, style: { display: "flex", flexDirection: "column", height: "100%" }, children: [
22274
22274
  hasHeader && /* @__PURE__ */ jsxs(
22275
22275
  HStack,
22276
22276
  {
@@ -22323,8 +22323,8 @@ var CodeBlock = React125__default.memo(
22323
22323
  {
22324
22324
  style: {
22325
22325
  position: "relative",
22326
- height: "100%",
22327
- minHeight: "160px",
22326
+ flex: 1,
22327
+ minHeight: 0,
22328
22328
  maxHeight,
22329
22329
  backgroundColor: "#1e1e1e",
22330
22330
  borderRadius: hasHeader ? "0 0 0.5rem 0.5rem" : "0.5rem",
@@ -22420,6 +22420,8 @@ var CodeBlock = React125__default.memo(
22420
22420
  {
22421
22421
  ref: scrollRef,
22422
22422
  style: {
22423
+ flex: 1,
22424
+ minHeight: 0,
22423
22425
  overflowX: "auto",
22424
22426
  overflowY: "auto",
22425
22427
  WebkitOverflowScrolling: "touch",
@@ -23356,7 +23358,7 @@ var StateMachineView = ({
23356
23358
  style: { top: title ? 30 : 0 },
23357
23359
  children: [
23358
23360
  entity && /* @__PURE__ */ jsx(EntityBox, { entity, config }),
23359
- states.map((state) => renderStateNode ? /* @__PURE__ */ jsx(React125__default.Fragment, { children: renderStateNode(state, config) }, state.id) : /* @__PURE__ */ jsx(
23361
+ states.map((state) => renderStateNode ? /* @__PURE__ */ jsx(React126__default.Fragment, { children: renderStateNode(state, config) }, state.id) : /* @__PURE__ */ jsx(
23360
23362
  StateNode,
23361
23363
  {
23362
23364
  state,
@@ -28882,7 +28884,7 @@ function CraftingRecipe({
28882
28884
  className
28883
28885
  }) {
28884
28886
  const eventBus = useEventBus();
28885
- const handleCraft = React125.useCallback(() => {
28887
+ const handleCraft = React126.useCallback(() => {
28886
28888
  onCraft?.();
28887
28889
  if (craftEvent) {
28888
28890
  eventBus.emit(craftEvent, { output: output.label });
@@ -28899,7 +28901,7 @@ function CraftingRecipe({
28899
28901
  children: [
28900
28902
  /* @__PURE__ */ jsx(HStack, { gap: "xs", className: "flex-wrap items-center", children: inputs.map((ingredient, index) => {
28901
28903
  const hasSufficient = ingredient.available >= ingredient.required;
28902
- return /* @__PURE__ */ jsxs(React125.Fragment, { children: [
28904
+ return /* @__PURE__ */ jsxs(React126.Fragment, { children: [
28903
28905
  /* @__PURE__ */ jsx(Box, { className: "relative", children: /* @__PURE__ */ jsx(
28904
28906
  ItemSlot,
28905
28907
  {
@@ -29188,8 +29190,8 @@ function DPad({
29188
29190
  }) {
29189
29191
  const eventBus = useEventBus();
29190
29192
  const sizes = sizeMap15[size];
29191
- const [activeDirections, setActiveDirections] = React125.useState(/* @__PURE__ */ new Set());
29192
- const handlePress = React125.useCallback(
29193
+ const [activeDirections, setActiveDirections] = React126.useState(/* @__PURE__ */ new Set());
29194
+ const handlePress = React126.useCallback(
29193
29195
  (direction) => {
29194
29196
  setActiveDirections((prev) => new Set(prev).add(direction));
29195
29197
  if (directionEvent) eventBus.emit(`UI:${directionEvent}`, { direction, pressed: true });
@@ -29197,7 +29199,7 @@ function DPad({
29197
29199
  },
29198
29200
  [directionEvent, eventBus, onDirection]
29199
29201
  );
29200
- const handleRelease = React125.useCallback(
29202
+ const handleRelease = React126.useCallback(
29201
29203
  (direction) => {
29202
29204
  setActiveDirections((prev) => {
29203
29205
  const next = new Set(prev);
@@ -30008,7 +30010,7 @@ var DataList = ({
30008
30010
  }) => {
30009
30011
  const eventBus = useEventBus();
30010
30012
  const { t } = useTranslate();
30011
- const [visibleCount, setVisibleCount] = React125__default.useState(pageSize || Infinity);
30013
+ const [visibleCount, setVisibleCount] = React126__default.useState(pageSize || Infinity);
30012
30014
  const fields = fieldsProp ?? columnsProp ?? [];
30013
30015
  const allData = Array.isArray(entity) ? entity : entity ? [entity] : [];
30014
30016
  const data = pageSize > 0 ? allData.slice(0, visibleCount) : allData;
@@ -30045,7 +30047,7 @@ var DataList = ({
30045
30047
  const items2 = data.map((item) => item);
30046
30048
  const groups2 = groupBy ? groupData(items2, groupBy) : [{ label: "", items: items2 }];
30047
30049
  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: [
30050
+ return /* @__PURE__ */ jsx(VStack, { gap: "sm", className: cn("py-2", className), children: groups2.map((group, gi) => /* @__PURE__ */ jsxs(React126__default.Fragment, { children: [
30049
30051
  group.label && /* @__PURE__ */ jsx(Divider, { label: group.label, className: "my-2" }),
30050
30052
  group.items.map((itemData, index) => {
30051
30053
  const id = itemData.id || `${gi}-${index}`;
@@ -30248,7 +30250,7 @@ var DataList = ({
30248
30250
  className
30249
30251
  ),
30250
30252
  children: [
30251
- groups.map((group, gi) => /* @__PURE__ */ jsxs(React125__default.Fragment, { children: [
30253
+ groups.map((group, gi) => /* @__PURE__ */ jsxs(React126__default.Fragment, { children: [
30252
30254
  group.label && /* @__PURE__ */ jsx(Divider, { label: group.label, className: gi > 0 ? "mt-4" : "mt-0" }),
30253
30255
  group.items.map(
30254
30256
  (itemData, index) => renderItem(itemData, index, gi === groups.length - 1 && index === group.items.length - 1)
@@ -30289,6 +30291,10 @@ init_Box();
30289
30291
  init_Stack();
30290
30292
  init_Typography();
30291
30293
 
30294
+ // components/molecules/FileTree.tsx
30295
+ init_Box();
30296
+ init_Typography();
30297
+
30292
30298
  // components/molecules/FormField.tsx
30293
30299
  init_cn();
30294
30300
  init_Typography();
@@ -31315,7 +31321,7 @@ var WizardProgress = ({
31315
31321
  children: /* @__PURE__ */ jsx("div", { className: "flex items-center gap-2", children: steps.map((step, index) => {
31316
31322
  const isActive = index === currentStep;
31317
31323
  const isCompleted = index < currentStep;
31318
- return /* @__PURE__ */ jsxs(React125__default.Fragment, { children: [
31324
+ return /* @__PURE__ */ jsxs(React126__default.Fragment, { children: [
31319
31325
  /* @__PURE__ */ jsx(
31320
31326
  "button",
31321
31327
  {
@@ -32185,7 +32191,7 @@ function InventoryGrid({
32185
32191
  const eventBus = useEventBus();
32186
32192
  const slotCount = totalSlots ?? items.length;
32187
32193
  const emptySlotCount = Math.max(0, slotCount - items.length);
32188
- const handleSelect = React125.useCallback(
32194
+ const handleSelect = React126.useCallback(
32189
32195
  (id) => {
32190
32196
  onSelect?.(id);
32191
32197
  if (selectEvent) {
@@ -32374,15 +32380,15 @@ function GameCanvas2D({
32374
32380
  fps = 60,
32375
32381
  className
32376
32382
  }) {
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);
32383
+ const canvasRef = React126.useRef(null);
32384
+ const rafRef = React126.useRef(0);
32385
+ const frameRef = React126.useRef(0);
32386
+ const lastTimeRef = React126.useRef(0);
32387
+ const onDrawRef = React126.useRef(onDraw);
32382
32388
  onDrawRef.current = onDraw;
32383
- const onTickRef = React125.useRef(onTick);
32389
+ const onTickRef = React126.useRef(onTick);
32384
32390
  onTickRef.current = onTick;
32385
- React125.useEffect(() => {
32391
+ React126.useEffect(() => {
32386
32392
  const canvas = canvasRef.current;
32387
32393
  if (!canvas) return;
32388
32394
  const ctx = canvas.getContext("2d");
@@ -32653,7 +32659,7 @@ function TurnPanel({
32653
32659
  className
32654
32660
  }) {
32655
32661
  const eventBus = useEventBus();
32656
- const handleAction = React125.useCallback(
32662
+ const handleAction = React126.useCallback(
32657
32663
  (event) => {
32658
32664
  if (event) {
32659
32665
  eventBus.emit(event, { turn: currentTurn, phase, activeTeam });
@@ -32789,7 +32795,7 @@ function UnitCommandBar({
32789
32795
  className
32790
32796
  }) {
32791
32797
  const eventBus = useEventBus();
32792
- const handleCommand = React125.useCallback(
32798
+ const handleCommand = React126.useCallback(
32793
32799
  (event) => {
32794
32800
  if (event) {
32795
32801
  eventBus.emit(event, { unitId: selectedUnitId });
@@ -33263,7 +33269,7 @@ function GameMenu({
33263
33269
  } catch {
33264
33270
  }
33265
33271
  const eventBus = eventBusProp || eventBusFromHook;
33266
- const handleOptionClick = React125.useCallback(
33272
+ const handleOptionClick = React126.useCallback(
33267
33273
  (option) => {
33268
33274
  if (option.event && eventBus) {
33269
33275
  eventBus.emit(`UI:${option.event}`, { option });
@@ -33390,7 +33396,7 @@ function GameOverScreen({
33390
33396
  } catch {
33391
33397
  }
33392
33398
  const eventBus = eventBusProp || eventBusFromHook;
33393
- const handleActionClick = React125.useCallback(
33399
+ const handleActionClick = React126.useCallback(
33394
33400
  (action) => {
33395
33401
  if (action.event && eventBus) {
33396
33402
  eventBus.emit(`UI:${action.event}`, { action });
@@ -36795,7 +36801,7 @@ var DocumentViewer = ({
36795
36801
  DocumentViewer.displayName = "DocumentViewer";
36796
36802
  init_useEventBus();
36797
36803
  function extractTitle(children) {
36798
- if (!React125__default.isValidElement(children)) return void 0;
36804
+ if (!React126__default.isValidElement(children)) return void 0;
36799
36805
  const props = children.props;
36800
36806
  if (typeof props.title === "string") {
36801
36807
  return props.title;
@@ -36855,7 +36861,7 @@ function LinearView({
36855
36861
  /* @__PURE__ */ jsx(HStack, { className: "flex-wrap items-center", gap: "xs", children: trait.states.map((state, i) => {
36856
36862
  const isDone = i < currentIdx;
36857
36863
  const isCurrent = i === currentIdx;
36858
- return /* @__PURE__ */ jsxs(React125__default.Fragment, { children: [
36864
+ return /* @__PURE__ */ jsxs(React126__default.Fragment, { children: [
36859
36865
  i > 0 && /* @__PURE__ */ jsx(
36860
36866
  Typography,
36861
36867
  {
@@ -37531,7 +37537,7 @@ var Form = ({
37531
37537
  const normalizedInitialData = initialData ?? {};
37532
37538
  const resolvedEntity = entity && typeof entity === "object" && !Array.isArray(entity) ? entity : void 0;
37533
37539
  const entityName = typeof entity === "string" ? entity : resolvedEntity?.name;
37534
- const entityDerivedFields = React125__default.useMemo(() => {
37540
+ const entityDerivedFields = React126__default.useMemo(() => {
37535
37541
  if (fields && fields.length > 0) return void 0;
37536
37542
  if (!resolvedEntity) return void 0;
37537
37543
  return resolvedEntity.fields.map(
@@ -37550,14 +37556,14 @@ var Form = ({
37550
37556
  const conditionalFields = typeof conditionalFieldsRaw === "boolean" ? {} : conditionalFieldsRaw;
37551
37557
  const hiddenCalculations = typeof hiddenCalculationsRaw === "boolean" ? [] : hiddenCalculationsRaw;
37552
37558
  const violationTriggers = typeof violationTriggersRaw === "boolean" ? [] : violationTriggersRaw;
37553
- const [formData, setFormData] = React125__default.useState(
37559
+ const [formData, setFormData] = React126__default.useState(
37554
37560
  normalizedInitialData
37555
37561
  );
37556
- const [collapsedSections, setCollapsedSections] = React125__default.useState(
37562
+ const [collapsedSections, setCollapsedSections] = React126__default.useState(
37557
37563
  /* @__PURE__ */ new Set()
37558
37564
  );
37559
37565
  const shouldShowCancel = showCancel ?? (fields && fields.length > 0);
37560
- const evalContext = React125__default.useMemo(
37566
+ const evalContext = React126__default.useMemo(
37561
37567
  () => ({
37562
37568
  formValues: formData,
37563
37569
  globalVariables: externalContext?.globalVariables ?? {},
@@ -37566,13 +37572,13 @@ var Form = ({
37566
37572
  }),
37567
37573
  [formData, externalContext]
37568
37574
  );
37569
- React125__default.useEffect(() => {
37575
+ React126__default.useEffect(() => {
37570
37576
  const data = initialData;
37571
37577
  if (data && Object.keys(data).length > 0) {
37572
37578
  setFormData(data);
37573
37579
  }
37574
37580
  }, [initialData]);
37575
- const processCalculations = React125__default.useCallback(
37581
+ const processCalculations = React126__default.useCallback(
37576
37582
  (changedFieldId, newFormData) => {
37577
37583
  if (!hiddenCalculations.length) return;
37578
37584
  const context = {
@@ -37597,7 +37603,7 @@ var Form = ({
37597
37603
  },
37598
37604
  [hiddenCalculations, externalContext, eventBus]
37599
37605
  );
37600
- const checkViolations = React125__default.useCallback(
37606
+ const checkViolations = React126__default.useCallback(
37601
37607
  (changedFieldId, newFormData) => {
37602
37608
  if (!violationTriggers.length) return;
37603
37609
  const context = {
@@ -37634,7 +37640,7 @@ var Form = ({
37634
37640
  processCalculations(name, newFormData);
37635
37641
  checkViolations(name, newFormData);
37636
37642
  };
37637
- const isFieldVisible = React125__default.useCallback(
37643
+ const isFieldVisible = React126__default.useCallback(
37638
37644
  (fieldName) => {
37639
37645
  const condition = conditionalFields[fieldName];
37640
37646
  if (!condition) return true;
@@ -37642,7 +37648,7 @@ var Form = ({
37642
37648
  },
37643
37649
  [conditionalFields, evalContext]
37644
37650
  );
37645
- const isSectionVisible = React125__default.useCallback(
37651
+ const isSectionVisible = React126__default.useCallback(
37646
37652
  (section) => {
37647
37653
  if (!section.condition) return true;
37648
37654
  return Boolean(evaluateFormExpression(section.condition, evalContext));
@@ -37674,7 +37680,7 @@ var Form = ({
37674
37680
  eventBus.emit(`UI:${onCancel}`);
37675
37681
  }
37676
37682
  };
37677
- const renderField = React125__default.useCallback(
37683
+ const renderField = React126__default.useCallback(
37678
37684
  (field) => {
37679
37685
  const fieldName = field.name || field.field;
37680
37686
  if (!fieldName) return null;
@@ -37695,7 +37701,7 @@ var Form = ({
37695
37701
  [formData, isFieldVisible, relationsData, relationsLoading, isLoading]
37696
37702
  );
37697
37703
  const effectiveFields = entityDerivedFields ?? fields;
37698
- const normalizedFields = React125__default.useMemo(() => {
37704
+ const normalizedFields = React126__default.useMemo(() => {
37699
37705
  if (!effectiveFields || effectiveFields.length === 0) return [];
37700
37706
  return effectiveFields.map((field) => {
37701
37707
  if (typeof field === "string") {
@@ -37717,7 +37723,7 @@ var Form = ({
37717
37723
  return field;
37718
37724
  });
37719
37725
  }, [effectiveFields, resolvedEntity]);
37720
- const schemaFields = React125__default.useMemo(() => {
37726
+ const schemaFields = React126__default.useMemo(() => {
37721
37727
  if (normalizedFields.length === 0) return null;
37722
37728
  if (isDebugEnabled()) {
37723
37729
  debugGroup(`Form: ${entityName || "unknown"}`);
@@ -37727,7 +37733,7 @@ var Form = ({
37727
37733
  }
37728
37734
  return normalizedFields.map(renderField).filter(Boolean);
37729
37735
  }, [normalizedFields, renderField, entityName, conditionalFields]);
37730
- const sectionElements = React125__default.useMemo(() => {
37736
+ const sectionElements = React126__default.useMemo(() => {
37731
37737
  if (!sections || sections.length === 0) return null;
37732
37738
  return sections.map((section) => {
37733
37739
  if (!isSectionVisible(section)) {
@@ -39165,7 +39171,7 @@ var List2 = ({
39165
39171
  if (entity && typeof entity === "object" && "id" in entity) return [entity];
39166
39172
  return [];
39167
39173
  }, [entity]);
39168
- const getItemActions = React125__default.useCallback(
39174
+ const getItemActions = React126__default.useCallback(
39169
39175
  (item) => {
39170
39176
  if (!itemActions) return [];
39171
39177
  if (typeof itemActions === "function") {
@@ -39600,7 +39606,7 @@ var MediaGallery = ({
39600
39606
  [selectable, selectedItems, selectionEvent, eventBus]
39601
39607
  );
39602
39608
  const entityData = Array.isArray(entity) ? entity : [];
39603
- const items = React125__default.useMemo(() => {
39609
+ const items = React126__default.useMemo(() => {
39604
39610
  if (propItems) return propItems;
39605
39611
  if (entityData.length === 0) return [];
39606
39612
  return entityData.map((record, idx) => ({
@@ -39763,7 +39769,7 @@ var MediaGallery = ({
39763
39769
  MediaGallery.displayName = "MediaGallery";
39764
39770
  init_useEventBus();
39765
39771
  function extractTitle2(children) {
39766
- if (!React125__default.isValidElement(children)) return void 0;
39772
+ if (!React126__default.isValidElement(children)) return void 0;
39767
39773
  const props = children.props;
39768
39774
  if (typeof props.title === "string") {
39769
39775
  return props.title;
@@ -40449,7 +40455,7 @@ var PageHeader = ({
40449
40455
  info: "bg-info/10 text-info"
40450
40456
  };
40451
40457
  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: [
40458
+ 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
40459
  idx > 0 && /* @__PURE__ */ jsx(Typography, { variant: "small", color: "muted", children: "/" }),
40454
40460
  crumb.href ? /* @__PURE__ */ jsx(
40455
40461
  "a",
@@ -40608,7 +40614,7 @@ function subscribeToDebugEvents(listener) {
40608
40614
 
40609
40615
  // components/organisms/debug/hooks/useDebugData.ts
40610
40616
  function useDebugData() {
40611
- const [data, setData] = React125.useState(() => ({
40617
+ const [data, setData] = React126.useState(() => ({
40612
40618
  traits: [],
40613
40619
  ticks: [],
40614
40620
  guards: [],
@@ -40622,7 +40628,7 @@ function useDebugData() {
40622
40628
  },
40623
40629
  lastUpdate: Date.now()
40624
40630
  }));
40625
- React125.useEffect(() => {
40631
+ React126.useEffect(() => {
40626
40632
  const updateData = () => {
40627
40633
  setData({
40628
40634
  traits: getAllTraits(),
@@ -40723,12 +40729,12 @@ function layoutGraph(states, transitions, initialState, width, height) {
40723
40729
  return positions;
40724
40730
  }
40725
40731
  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(() => {
40732
+ const [walkStep, setWalkStep] = React126.useState(null);
40733
+ const [traits2, setTraits] = React126.useState([]);
40734
+ const [coveredEdges, setCoveredEdges] = React126.useState([]);
40735
+ const [completedTraits, setCompletedTraits] = React126.useState(/* @__PURE__ */ new Set());
40736
+ const prevTraitRef = React126.useRef(null);
40737
+ React126.useEffect(() => {
40732
40738
  const interval = setInterval(() => {
40733
40739
  const w = window;
40734
40740
  const step = w.__orbitalWalkStep;
@@ -41160,15 +41166,15 @@ var TYPE_BADGES = {
41160
41166
  state: { variant: "danger", icon: "\u{1F4CA}" }
41161
41167
  };
41162
41168
  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(() => {
41169
+ const [filter, setFilter] = React126.useState("all");
41170
+ const containerRef = React126.useRef(null);
41171
+ const [autoScroll, setAutoScroll] = React126.useState(true);
41172
+ React126.useEffect(() => {
41167
41173
  if (autoScroll && containerRef.current) {
41168
41174
  containerRef.current.scrollTop = containerRef.current.scrollHeight;
41169
41175
  }
41170
41176
  }, [events2.length, autoScroll]);
41171
- const filteredEvents = React125.useMemo(() => {
41177
+ const filteredEvents = React126.useMemo(() => {
41172
41178
  if (filter === "all") return events2;
41173
41179
  return events2.filter((e) => e.type === filter);
41174
41180
  }, [events2, filter]);
@@ -41269,7 +41275,7 @@ EventFlowTab.displayName = "EventFlowTab";
41269
41275
  init_Typography();
41270
41276
  init_Stack();
41271
41277
  function GuardsPanel({ guards }) {
41272
- const [filter, setFilter] = React125.useState("all");
41278
+ const [filter, setFilter] = React126.useState("all");
41273
41279
  if (guards.length === 0) {
41274
41280
  return /* @__PURE__ */ jsx(
41275
41281
  EmptyState,
@@ -41282,7 +41288,7 @@ function GuardsPanel({ guards }) {
41282
41288
  }
41283
41289
  const passedCount = guards.filter((g) => g.result).length;
41284
41290
  const failedCount = guards.length - passedCount;
41285
- const filteredGuards = React125.useMemo(() => {
41291
+ const filteredGuards = React126.useMemo(() => {
41286
41292
  if (filter === "all") return guards;
41287
41293
  if (filter === "passed") return guards.filter((g) => g.result);
41288
41294
  return guards.filter((g) => !g.result);
@@ -41431,10 +41437,10 @@ function EffectBadge({ effect }) {
41431
41437
  ] });
41432
41438
  }
41433
41439
  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(() => {
41440
+ const containerRef = React126.useRef(null);
41441
+ const [autoScroll, setAutoScroll] = React126.useState(true);
41442
+ const [expandedId, setExpandedId] = React126.useState(null);
41443
+ React126.useEffect(() => {
41438
41444
  if (autoScroll && containerRef.current) {
41439
41445
  containerRef.current.scrollTop = containerRef.current.scrollHeight;
41440
41446
  }
@@ -41702,9 +41708,9 @@ function getAllEvents(traits2) {
41702
41708
  }
41703
41709
  function EventDispatcherTab({ traits: traits2, schema }) {
41704
41710
  const eventBus = useEventBus();
41705
- const [log4, setLog] = React125.useState([]);
41706
- const prevStatesRef = React125.useRef(/* @__PURE__ */ new Map());
41707
- React125.useEffect(() => {
41711
+ const [log4, setLog] = React126.useState([]);
41712
+ const prevStatesRef = React126.useRef(/* @__PURE__ */ new Map());
41713
+ React126.useEffect(() => {
41708
41714
  for (const trait of traits2) {
41709
41715
  const prev = prevStatesRef.current.get(trait.id);
41710
41716
  if (prev && prev !== trait.currentState) {
@@ -41857,9 +41863,9 @@ function VerifyModePanel({
41857
41863
  serverCount,
41858
41864
  localCount
41859
41865
  }) {
41860
- const scrollRef = React125.useRef(null);
41861
- const prevCountRef = React125.useRef(0);
41862
- React125.useEffect(() => {
41866
+ const scrollRef = React126.useRef(null);
41867
+ const prevCountRef = React126.useRef(0);
41868
+ React126.useEffect(() => {
41863
41869
  if (transitions.length > prevCountRef.current && scrollRef.current) {
41864
41870
  scrollRef.current.scrollTop = scrollRef.current.scrollHeight;
41865
41871
  }
@@ -41907,10 +41913,10 @@ function RuntimeDebugger({
41907
41913
  defaultTab,
41908
41914
  schema
41909
41915
  }) {
41910
- const [isCollapsed, setIsCollapsed] = React125.useState(mode === "verify" ? true : defaultCollapsed);
41911
- const [isVisible, setIsVisible] = React125.useState(mode === "inline" || mode === "verify" || isDebugEnabled2());
41916
+ const [isCollapsed, setIsCollapsed] = React126.useState(mode === "verify" ? true : defaultCollapsed);
41917
+ const [isVisible, setIsVisible] = React126.useState(mode === "inline" || mode === "verify" || isDebugEnabled2());
41912
41918
  const debugData = useDebugData();
41913
- React125.useEffect(() => {
41919
+ React126.useEffect(() => {
41914
41920
  if (mode === "inline") return;
41915
41921
  return onDebugToggle((enabled) => {
41916
41922
  setIsVisible(enabled);
@@ -41919,7 +41925,7 @@ function RuntimeDebugger({
41919
41925
  }
41920
41926
  });
41921
41927
  }, [mode]);
41922
- React125.useEffect(() => {
41928
+ React126.useEffect(() => {
41923
41929
  if (mode === "inline") return;
41924
41930
  const handleKeyDown = (e) => {
41925
41931
  if (e.key === "`" && isVisible) {
@@ -42437,7 +42443,7 @@ function SequenceBar({
42437
42443
  onSlotRemove(index);
42438
42444
  }, [onSlotRemove, playing]);
42439
42445
  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: [
42446
+ return /* @__PURE__ */ jsx(HStack, { className: cn("items-center", className), gap: "sm", children: paddedSlots.map((slot, i) => /* @__PURE__ */ jsxs(React126__default.Fragment, { children: [
42441
42447
  i > 0 && /* @__PURE__ */ jsx(
42442
42448
  Typography,
42443
42449
  {
@@ -43706,7 +43712,7 @@ var StatCard = ({
43706
43712
  const labelToUse = propLabel ?? propTitle;
43707
43713
  const eventBus = useEventBus();
43708
43714
  const { t } = useTranslate();
43709
- const handleActionClick = React125__default.useCallback(() => {
43715
+ const handleActionClick = React126__default.useCallback(() => {
43710
43716
  if (action?.event) {
43711
43717
  eventBus.emit(`UI:${action.event}`, {});
43712
43718
  }
@@ -43717,7 +43723,7 @@ var StatCard = ({
43717
43723
  const data = Array.isArray(entity) ? entity : entity ? [entity] : [];
43718
43724
  const isLoading = externalLoading ?? false;
43719
43725
  const error = externalError;
43720
- const computeMetricValue = React125__default.useCallback(
43726
+ const computeMetricValue = React126__default.useCallback(
43721
43727
  (metric, items) => {
43722
43728
  if (metric.value !== void 0) {
43723
43729
  return metric.value;
@@ -43756,7 +43762,7 @@ var StatCard = ({
43756
43762
  },
43757
43763
  []
43758
43764
  );
43759
- const schemaStats = React125__default.useMemo(() => {
43765
+ const schemaStats = React126__default.useMemo(() => {
43760
43766
  if (!metrics || metrics.length === 0) return null;
43761
43767
  return metrics.map((metric) => ({
43762
43768
  label: metric.label,
@@ -43764,7 +43770,7 @@ var StatCard = ({
43764
43770
  format: metric.format
43765
43771
  }));
43766
43772
  }, [metrics, data, computeMetricValue]);
43767
- const calculatedTrend = React125__default.useMemo(() => {
43773
+ const calculatedTrend = React126__default.useMemo(() => {
43768
43774
  if (manualTrend !== void 0) return manualTrend;
43769
43775
  if (previousValue === void 0 || currentValue === void 0)
43770
43776
  return void 0;
@@ -44699,7 +44705,7 @@ var Timeline = ({
44699
44705
  }) => {
44700
44706
  const { t } = useTranslate();
44701
44707
  const entityData = Array.isArray(entity) ? entity : [];
44702
- const items = React125__default.useMemo(() => {
44708
+ const items = React126__default.useMemo(() => {
44703
44709
  if (propItems) return propItems;
44704
44710
  if (entityData.length === 0) return [];
44705
44711
  return entityData.map((record, idx) => {
@@ -44803,7 +44809,7 @@ Timeline.displayName = "Timeline";
44803
44809
  init_Box();
44804
44810
  init_useEventBus();
44805
44811
  function extractToastProps(children) {
44806
- if (!React125__default.isValidElement(children)) {
44812
+ if (!React126__default.isValidElement(children)) {
44807
44813
  if (typeof children === "string") {
44808
44814
  return { message: children };
44809
44815
  }
@@ -44834,7 +44840,7 @@ var ToastSlot = ({
44834
44840
  eventBus.emit("UI:CLOSE");
44835
44841
  };
44836
44842
  if (!isVisible) return null;
44837
- const isCustomContent = React125__default.isValidElement(children) && !message;
44843
+ const isCustomContent = React126__default.isValidElement(children) && !message;
44838
44844
  return /* @__PURE__ */ jsx(Box, { className: "fixed bottom-4 right-4 z-50", children: isCustomContent ? children : /* @__PURE__ */ jsx(
44839
44845
  Toast,
44840
44846
  {
@@ -45088,7 +45094,7 @@ var WizardContainer = ({
45088
45094
  const isCompleted = index < currentStep;
45089
45095
  const stepKey = step.id ?? step.tabId ?? `step-${index}`;
45090
45096
  const stepTitle = step.title ?? step.name ?? `Step ${index + 1}`;
45091
- return /* @__PURE__ */ jsxs(React125__default.Fragment, { children: [
45097
+ return /* @__PURE__ */ jsxs(React126__default.Fragment, { children: [
45092
45098
  /* @__PURE__ */ jsx(
45093
45099
  Button,
45094
45100
  {
@@ -45459,12 +45465,12 @@ WorldMapTemplate.displayName = "WorldMapTemplate";
45459
45465
 
45460
45466
  // components/organisms/component-registry.generated.ts
45461
45467
  function lazyThree(name, loader) {
45462
- const Lazy = React125__default.lazy(() => loader().then((m) => ({ default: m[name] })));
45468
+ const Lazy = React126__default.lazy(() => loader().then((m) => ({ default: m[name] })));
45463
45469
  function ThreeWrapper(props) {
45464
- return React125__default.createElement(
45465
- React125__default.Suspense,
45470
+ return React126__default.createElement(
45471
+ React126__default.Suspense,
45466
45472
  { fallback: null },
45467
- React125__default.createElement(Lazy, props)
45473
+ React126__default.createElement(Lazy, props)
45468
45474
  );
45469
45475
  }
45470
45476
  ThreeWrapper.displayName = `Lazy(${name})`;
@@ -45752,7 +45758,7 @@ function SuspenseConfigProvider({
45752
45758
  config,
45753
45759
  children
45754
45760
  }) {
45755
- return React125__default.createElement(
45761
+ return React126__default.createElement(
45756
45762
  SuspenseConfigContext.Provider,
45757
45763
  { value: config },
45758
45764
  children
@@ -47499,7 +47505,7 @@ function SchemaRunner({ schema, serverUrl, mockData, pageName, onNavigate, onLoc
47499
47505
  const entityStore = useEntityStore();
47500
47506
  const seededRef = useRef("");
47501
47507
  const mockKey = mockData ? Object.keys(mockData).sort().join(",") : "";
47502
- React125__default.useLayoutEffect(() => {
47508
+ React126__default.useLayoutEffect(() => {
47503
47509
  if (!serverUrl && mockData && seededRef.current !== mockKey) {
47504
47510
  seededRef.current = mockKey;
47505
47511
  for (const [entityType, records] of Object.entries(mockData)) {
@@ -48006,7 +48012,7 @@ var OrbPreviewNodeInner = (props) => {
48006
48012
  }
48007
48013
  );
48008
48014
  };
48009
- var OrbPreviewNode = React125__default.memo(OrbPreviewNodeInner);
48015
+ var OrbPreviewNode = React126__default.memo(OrbPreviewNodeInner);
48010
48016
  OrbPreviewNode.displayName = "OrbPreviewNode";
48011
48017
  var EventFlowEdgeInner = (props) => {
48012
48018
  const {
@@ -48083,7 +48089,7 @@ var EventFlowEdgeInner = (props) => {
48083
48089
  ) })
48084
48090
  ] });
48085
48091
  };
48086
- var EventFlowEdge = React125__default.memo(EventFlowEdgeInner);
48092
+ var EventFlowEdge = React126__default.memo(EventFlowEdgeInner);
48087
48093
  EventFlowEdge.displayName = "EventFlowEdge";
48088
48094
 
48089
48095
  // components/molecules/avl/BehaviorComposeNode.tsx
@@ -48221,7 +48227,7 @@ var BehaviorComposeNodeInner = (props) => {
48221
48227
  }
48222
48228
  );
48223
48229
  };
48224
- var BehaviorComposeNode = React125__default.memo(BehaviorComposeNodeInner);
48230
+ var BehaviorComposeNode = React126__default.memo(BehaviorComposeNodeInner);
48225
48231
  BehaviorComposeNode.displayName = "BehaviorComposeNode";
48226
48232
 
48227
48233
  // components/molecules/avl/avl-behavior-compose-converter.ts
@@ -49155,7 +49161,7 @@ var ZoomBreadcrumb = ({
49155
49161
  if (eventName && band === "detail") {
49156
49162
  segments.push({ icon: "\u26A1", label: eventName });
49157
49163
  }
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: [
49164
+ 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
49165
  i > 0 && /* @__PURE__ */ jsx("span", { className: "opacity-40", children: ">" }),
49160
49166
  /* @__PURE__ */ jsx("span", { className: "opacity-60", children: seg.icon }),
49161
49167
  /* @__PURE__ */ jsx("span", { children: seg.label })
@@ -49612,7 +49618,7 @@ var EventWireOverlay = ({
49612
49618
  containerW,
49613
49619
  containerH
49614
49620
  }) => {
49615
- const ids = React125__default.useMemo(() => {
49621
+ const ids = React126__default.useMemo(() => {
49616
49622
  avlOczWireId += 1;
49617
49623
  return { arrow: `avl-ocz-wire-${avlOczWireId}-arrow` };
49618
49624
  }, []);
@@ -49930,7 +49936,7 @@ var AvlOrbitalsCosmicZoom = ({
49930
49936
  borderRadius: 6,
49931
49937
  border: `1px solid ${color}`
49932
49938
  },
49933
- children: /* @__PURE__ */ jsx(HStack, { gap: "xs", align: "center", children: breadcrumbs.map((crumb, i) => /* @__PURE__ */ jsxs(React125__default.Fragment, { children: [
49939
+ children: /* @__PURE__ */ jsx(HStack, { gap: "xs", align: "center", children: breadcrumbs.map((crumb, i) => /* @__PURE__ */ jsxs(React126__default.Fragment, { children: [
49934
49940
  i > 0 && /* @__PURE__ */ jsx(Typography, { variant: "small", style: { opacity: 0.5, color }, children: "/" }),
49935
49941
  i < breadcrumbs.length - 1 ? /* @__PURE__ */ jsx(
49936
49942
  Box,